forked from GNUsocial/gnu-social
Merge branch '0.9.x' of git@gitorious.org:statusnet/mainline into 0.9.x
This commit is contained in:
commit
ac47015e2b
2
.gitignore
vendored
2
.gitignore
vendored
@ -24,4 +24,4 @@ config-*.php
|
||||
good-config.php
|
||||
lac08.log
|
||||
php.log
|
||||
|
||||
.DS_Store
|
||||
|
164
EVENTS.txt
164
EVENTS.txt
@ -291,3 +291,167 @@ EndShowHeadElements: Right before the </head> tag; put <script>s here if you nee
|
||||
- $action: the current action
|
||||
|
||||
CheckSchema: chance to check the schema
|
||||
|
||||
StartProfilePageProfileSection: Starting to show the section of the
|
||||
profile page with the actual profile data;
|
||||
hook to prevent showing the profile (e.g.)
|
||||
- $action: the current action
|
||||
- &$profile: the profile being shown
|
||||
|
||||
StartProfilePageProfileElements: inside the section, before the first
|
||||
element; prepend elements here
|
||||
- $action: the current action
|
||||
- &$profile: the profile being shown
|
||||
|
||||
EndProfilePageProfileElements: inside the section, after the last element;
|
||||
append elements here
|
||||
- $action: the current action
|
||||
- &$profile: the profile being shown
|
||||
|
||||
EndProfilePageProfileSection: After showing the section of the profile
|
||||
page with the profile elements
|
||||
- $action: the current action
|
||||
- &$profile: the profile being shown
|
||||
|
||||
StartProfilePageActionsSection: Starting to show the section of the
|
||||
profile page with action links; hook
|
||||
to hide them (for example)
|
||||
- $action: the current action
|
||||
- &$profile: the profile being shown
|
||||
|
||||
StartProfilePageActionsElements: inside the list, before the first
|
||||
element; prepend elements here
|
||||
- $action: the current action
|
||||
- &$profile: the profile being shown
|
||||
|
||||
EndProfilePageActionsElements: inside the list, after the last element;
|
||||
append elements here
|
||||
- $action: the current action
|
||||
- &$profile: the profile being shown
|
||||
|
||||
EndProfilePageActionsSection: After showing the section of the profile
|
||||
page with the entity actions
|
||||
- $action: the current action
|
||||
- &$profile: the profile being shown
|
||||
|
||||
StartProfilePageAvatar: before showing the avatar on the profile page
|
||||
- $action: the current action
|
||||
- &$profile: the profile being shown
|
||||
|
||||
EndProfilePageAvatar: after showing the avatar on the profile page
|
||||
- $action: the current action
|
||||
- &$profile: the profile being shown
|
||||
|
||||
StartProfilePageNickname: before showing the nickname on the profile page
|
||||
- $action: the current action
|
||||
- &$profile: the profile being shown
|
||||
|
||||
EndProfilePageNickname: after showing the nickname on the profile page
|
||||
- $action: the current action
|
||||
- &$profile: the profile being shown
|
||||
|
||||
StartProfilePageFullName: before showing the fullname on the profile page
|
||||
- $action: the current action
|
||||
- &$profile: the profile being shown
|
||||
|
||||
EndProfilePageFullName: after showing the fullname on the profile page
|
||||
- $action: the current action
|
||||
- &$profile: the profile being shown
|
||||
|
||||
StartProfilePageLocation: before showing the location on the profile page
|
||||
- $action: the current action
|
||||
- &$profile: the profile being shown
|
||||
|
||||
EndProfilePageLocation: after showing the location on the profile page
|
||||
- $action: the current action
|
||||
- &$profile: the profile being shown
|
||||
|
||||
StartProfilePageHomepage: before showing the homepage link on the profile page
|
||||
- $action: the current action
|
||||
- &$profile: the profile being shown
|
||||
|
||||
EndProfilePageHomepage: after showing the homepage on the profile page
|
||||
- $action: the current action
|
||||
- &$profile: the profile being shown
|
||||
|
||||
StartProfilePageBio: before showing the bio on the profile page
|
||||
- $action: the current action
|
||||
- &$profile: the profile being shown
|
||||
|
||||
EndProfilePageBio: after showing the bio on the profile page
|
||||
- $action: the current action
|
||||
- &$profile: the profile being shown
|
||||
|
||||
StartProfilePageProfileTags: before showing the tags on the profile page
|
||||
- $action: the current action
|
||||
- &$profile: the profile being shown
|
||||
|
||||
EndProfilePageProfileTags: after showing the tags on the profile page
|
||||
- $action: the current action
|
||||
- &$profile: the profile being shown
|
||||
|
||||
StartProfileList: when starting a list of profiles (before <ul>)
|
||||
- $profilelist: ProfileList widget, with $profile, $action, and $out
|
||||
|
||||
EndProfileList: when ending a list of profiles (after </ul>)
|
||||
- $profilelist: ProfileList widget
|
||||
|
||||
StartProfileListItem: when starting to show a profile list item
|
||||
- $item: ProfileListItem widget
|
||||
|
||||
EndProfileListItem: after showing a profile list item
|
||||
- $item: ProfileListItem widget
|
||||
|
||||
StartProfileListItemProfile: the profile data part of the item
|
||||
- $item: ProfileListItem widget
|
||||
|
||||
EndProfileListItemProfile: the profile data part of the item
|
||||
- $item: ProfileListItem widget
|
||||
|
||||
StartProfileListItemActions: the actions (buttons) for an item
|
||||
- $item: ProfileListItem widget
|
||||
|
||||
EndProfileListItemActions: the actions (buttons) for an item
|
||||
- $item: ProfileListItem widget
|
||||
|
||||
StartProfileListItemProfileElements: inside the <div>
|
||||
- $item: ProfileListItem widget
|
||||
|
||||
EndProfileListItemProfileElements: inside the <div>
|
||||
- $item: ProfileListItem widget
|
||||
|
||||
StartProfileListItemAvatar: Showing a profile list avatar
|
||||
- $item: ProfileListItem widget
|
||||
|
||||
EndProfileListItemAvatar: Showing a profile list avatar
|
||||
- $item: ProfileListItem widget
|
||||
|
||||
StartProfileListItemFullName: Showing the profile list full name
|
||||
- $item: ProfileListItem widget
|
||||
|
||||
EndProfileListItemFullName: Showing the profile list full name
|
||||
- $item: ProfileListItem widget
|
||||
|
||||
StartProfileListItemLocation: Showing the profile list location
|
||||
- $item: ProfileListItem widget
|
||||
|
||||
EndProfileListItemLocation: Showing the profile list location
|
||||
- $item: ProfileListItem widget
|
||||
|
||||
StartProfileListItemHomepage: Showing the profile list homepage
|
||||
- $item: ProfileListItem widget
|
||||
|
||||
EndProfileListItemHomepage: Showing the profile list homepage
|
||||
- $item: ProfileListItem widget
|
||||
|
||||
StartProfileListItemBio: Showing the profile list bio
|
||||
- $item: ProfileListItem widget
|
||||
|
||||
EndProfileListItemBio: Showing the profile list bio
|
||||
- $item: ProfileListItem widget
|
||||
|
||||
StartProfileListItemActionElements: Showing the profile list actions (prepend a button here, or replace all buttons)
|
||||
- $item: ProfileListItem widget
|
||||
|
||||
EndProfileListItemActionElements: Showing profile list actions (append a button here)
|
||||
- $item: ProfileListItem widget
|
||||
|
164
README
164
README
@ -2,7 +2,7 @@
|
||||
README
|
||||
------
|
||||
|
||||
StatusNet 0.8.1 ("Second Guessing")
|
||||
StatusNet 0.8.2 ("Life and How to Live It")
|
||||
26 Aug 2009
|
||||
|
||||
This is the README file for StatusNet (formerly Laconica), the Open
|
||||
@ -526,10 +526,6 @@ This will run eight (for now) queue handlers:
|
||||
of registered users.
|
||||
* xmppconfirmhandler.php - sends confirmation messages to registered
|
||||
users.
|
||||
* twitterqueuehandler.php - sends queued notices to Twitter for user
|
||||
who have opted to set up Twitter bridging.
|
||||
* facebookqueuehandler.php - sends queued notices to Facebook for users
|
||||
of the built-in Facebook application.
|
||||
|
||||
Note that these queue daemons are pretty raw, and need your care. In
|
||||
particular, they leak memory, and you may want to restart them on a
|
||||
@ -547,101 +543,6 @@ our kind of hacky home-grown DB-based queue solution. See the "queues"
|
||||
config section below for how to configure to use STOMP. As of this
|
||||
writing, the software has been tested with ActiveMQ (
|
||||
|
||||
Twitter Bridge
|
||||
--------------
|
||||
|
||||
* OAuth
|
||||
|
||||
As of 0.8.1, OAuth is used to to access protected resources on Twitter
|
||||
instead of HTTP Basic Auth. To use Twitter bridging you will need
|
||||
to register your instance of StatusNet as an application on Twitter
|
||||
(http://twitter.com/apps), and update the following variables in your
|
||||
config.php with the consumer key and secret Twitter generates for you:
|
||||
|
||||
$config['twitter']['consumer_key'] = 'YOURKEY';
|
||||
$config['twitter']['consumer_secret'] = 'YOURSECRET';
|
||||
|
||||
When registering your application with Twitter set the type to "Browser"
|
||||
and your Callback URL to:
|
||||
|
||||
http://example.org/mublog/twitter/authorization
|
||||
|
||||
The default access type should be, "Read & Write".
|
||||
|
||||
* Importing statuses from Twitter
|
||||
|
||||
To allow your users to import their friends' Twitter statuses, you will
|
||||
need to enable the bidirectional Twitter bridge in config.php:
|
||||
|
||||
$config['twitterbridge']['enabled'] = true;
|
||||
|
||||
and run the TwitterStatusFetcher daemon (scripts/twitterstatusfetcher.php).
|
||||
Additionally, you will want to set the integration source variable,
|
||||
which will keep notices posted to Twitter via StatusNet from looping
|
||||
back. The integration source should be set to the name of your
|
||||
application, exactly as you specified it on the settings page for your
|
||||
StatusNet application on Twitter, e.g.:
|
||||
|
||||
$config['integration']['source'] = 'YourApp';
|
||||
|
||||
* Twitter Friends Syncing
|
||||
|
||||
Users may set a flag in their settings ("Subscribe to my Twitter friends
|
||||
here" under the Twitter tab) to have StatusNet attempt to locate and
|
||||
subscribe to "friends" (people they "follow") on Twitter who also have
|
||||
accounts on your StatusNet system, and who have previously set up a link
|
||||
for automatically posting notices to Twitter.
|
||||
|
||||
As of 0.8.0, this is no longer accomplished via a cron job. Instead you
|
||||
must run the SyncTwitterFriends daemon (scripts/synctwitterfreinds.php).
|
||||
|
||||
Built-in Facebook Application
|
||||
-----------------------------
|
||||
|
||||
StatusNet's Facebook application allows your users to automatically
|
||||
update their Facebook statuses with their latest notices, invite
|
||||
their friends to use the app (and thus your site), view their notice
|
||||
timelines, and post notices -- all from within Facebook. The application
|
||||
is built into StatusNet and runs on your host. For automatic Facebook
|
||||
status updating to work you will need to enable queuing and run the
|
||||
facebookqueuehandler.php daemon (see the "Queues and daemons" section
|
||||
above).
|
||||
|
||||
Quick setup instructions*:
|
||||
|
||||
Install the Facebook Developer application on Facebook:
|
||||
|
||||
http://www.facebook.com/developers/
|
||||
|
||||
Use it to create a new application and generate an API key and secret.
|
||||
Uncomment the Facebook app section of your config.php and copy in the
|
||||
key and secret, e.g.:
|
||||
|
||||
# Config section for the built-in Facebook application
|
||||
$config['facebook']['apikey'] = 'APIKEY';
|
||||
$config['facebook']['secret'] = 'SECRET';
|
||||
|
||||
In Facebook's application editor, specify the following URLs for your app:
|
||||
|
||||
- Canvas Callback URL: http://example.net/mublog/facebook/
|
||||
- Post-Remove Callback URL: http://example.net/mublog/facebook/remove
|
||||
- Post-Add Redirect URL: http://apps.facebook.com/yourapp/
|
||||
- Canvas Page URL: http://apps.facebook.com/yourapp/
|
||||
|
||||
(Replace 'example.net' with your host's URL, 'mublog' with the path
|
||||
to your StatusNet installation, and 'yourapp' with the name of the
|
||||
Facebook application you created.)
|
||||
|
||||
Additionally, Choose "Web" for Application type in the Advanced tab.
|
||||
In the "Canvas setting" section, choose the "FBML" for Render Method,
|
||||
"Smart Size" for IFrame size, and "Full width (760px)" for Canvas Width.
|
||||
Everything else can be left with default values.
|
||||
|
||||
*For more detailed instructions please see the installation guide on the
|
||||
StatusNet wiki:
|
||||
|
||||
http://status.net/trac/wiki/FacebookApplication
|
||||
|
||||
Sitemaps
|
||||
--------
|
||||
|
||||
@ -839,40 +740,8 @@ to update it.
|
||||
Notice inboxes
|
||||
--------------
|
||||
|
||||
Before version 0.6.2, the page showing all notices from people the
|
||||
user is subscribed to ("so-and-so with friends") was calculated at run
|
||||
time. Starting with 0.6.2, we have a new data structure for holding a
|
||||
user's "notice inbox". (Note: distinct from the "message inbox", which
|
||||
is the "inbox" tab in the UI. The notice inbox appears under the
|
||||
"Personal" tab.)
|
||||
|
||||
Notices are added to the inbox when they're created. This speeds up
|
||||
the query considerably, and also allows us the opportunity, in the
|
||||
future, to add different kind of notices to an inbox -- like @-replies
|
||||
or subscriptions to search terms or hashtags.
|
||||
|
||||
Notice inboxes are enabled by default for new installations. If you
|
||||
are upgrading an existing site, this means that your users will see
|
||||
empty "Personal" pages. The following steps will help you fix the
|
||||
problem.
|
||||
|
||||
0. $config['inboxes']['enabled'] can be set to one of three values. If
|
||||
you set it to 'false', the site will work as before. Support for this
|
||||
will probably be dropped in future versions.
|
||||
1. Setting the flag to 'transitional' means that you're in transition.
|
||||
In this mode, the code will run the "new query" or the "old query"
|
||||
based on whether the user's inbox has been updated.
|
||||
2. After setting the flag to "transitional", you can run the
|
||||
fixup_inboxes.php script to create the inboxes. You may want to set
|
||||
the memory limit high. You can re-run it without ill effect.
|
||||
3. When fixup_inboxes is finished, you can set the enabled flag to
|
||||
'true'.
|
||||
|
||||
NOTE: As of version 0.8.1 notice inboxes are automatically trimmed back
|
||||
to ~1000 notices every once in a while.
|
||||
|
||||
NOTE: we will drop support for non-inboxed sites in the 0.9.x version
|
||||
of StatusNet. It's time to switch now!
|
||||
Notice inboxes are now required. If you don't have inboxes enabled,
|
||||
StatusNet will no longer run.
|
||||
|
||||
UTF-8 Database
|
||||
--------------
|
||||
@ -1283,24 +1152,11 @@ For SMS integration.
|
||||
enabled: Whether to enable SMS integration. Defaults to true. Queues
|
||||
should also be enabled.
|
||||
|
||||
twitter
|
||||
-------
|
||||
|
||||
For Twitter integration
|
||||
|
||||
enabled: Whether to enable Twitter integration. Defaults to true.
|
||||
Queues should also be enabled.
|
||||
|
||||
integration
|
||||
-----------
|
||||
|
||||
A catch-all for integration with other systems.
|
||||
|
||||
source: The name to use for the source of posts to Twitter. Defaults
|
||||
to 'statusnet', but if you request your own source name from
|
||||
Twitter <http://twitter.com/help/request_source>, you can use
|
||||
that here instead. Status updates on Twitter will then have
|
||||
links to your site.
|
||||
taguri: base for tag:// URIs. Defaults to site-server + ',2009'.
|
||||
|
||||
inboxes
|
||||
@ -1308,9 +1164,8 @@ inboxes
|
||||
|
||||
For notice inboxes.
|
||||
|
||||
enabled: A three-valued flag for whether to use notice inboxes (see
|
||||
upgrading info above for notes about this change). Can be
|
||||
'false', 'true', or '"transitional"'.
|
||||
enabled: No longer used. If you set this to something other than true,
|
||||
StatusNet will no longer run.
|
||||
|
||||
throttle
|
||||
--------
|
||||
@ -1479,15 +1334,6 @@ dir: directory to write backgrounds too. Default is '/background/'
|
||||
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.
|
||||
|
||||
twitterbridge
|
||||
-------------
|
||||
|
||||
A bi-direction bridge to Twitter (http://twitter.com/).
|
||||
|
||||
enabled: default false. If true, will show user's Twitter friends'
|
||||
notices in their inbox and faves pages, only to the user. You
|
||||
must also run the twitterstatusfetcher.php script.
|
||||
|
||||
ping
|
||||
----
|
||||
|
||||
|
@ -157,7 +157,7 @@ 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.'
|
||||
'just say it to yourself quietly instead.';
|
||||
|
||||
$this->clientError(_($errmsg), 403, $this->format);
|
||||
return;
|
||||
|
@ -127,7 +127,7 @@ class ApiFavoriteCreateAction extends ApiAuthAction
|
||||
|
||||
if (empty($fave)) {
|
||||
$this->clientError(
|
||||
_('Could not create favorite.')
|
||||
_('Could not create favorite.'),
|
||||
403,
|
||||
$this->format
|
||||
);
|
||||
|
@ -99,15 +99,6 @@ class ApiGroupCreateAction extends ApiAuthAction
|
||||
{
|
||||
parent::handle($args);
|
||||
|
||||
if (!common_config('inboxes', 'enabled')) {
|
||||
$this->serverError(
|
||||
_('Inboxes must be enabled for groups to work'),
|
||||
400,
|
||||
$this->format
|
||||
);
|
||||
return false;
|
||||
}
|
||||
|
||||
if ($_SERVER['REQUEST_METHOD'] != 'POST') {
|
||||
$this->clientError(
|
||||
_('This method requires a POST.'),
|
||||
|
@ -64,11 +64,6 @@ class EditgroupAction extends GroupDesignAction
|
||||
{
|
||||
parent::prepare($args);
|
||||
|
||||
if (!common_config('inboxes','enabled')) {
|
||||
$this->serverError(_('Inboxes must be enabled for groups to work'));
|
||||
return false;
|
||||
}
|
||||
|
||||
if (!common_logged_in()) {
|
||||
$this->clientError(_('You must be logged in to create a group.'));
|
||||
return false;
|
||||
|
@ -326,7 +326,7 @@ class EmailsettingsAction extends AccountSettingsAction
|
||||
$this->showForm(_('Cannot normalize that email address'));
|
||||
return;
|
||||
}
|
||||
if (!Validate::email($email, true)) {
|
||||
if (!Validate::email($email, common_config('email', 'check_domain'))) {
|
||||
$this->showForm(_('Not a valid email address'));
|
||||
return;
|
||||
} else if ($user->email == $email) {
|
||||
|
@ -68,11 +68,6 @@ class GroupbyidAction extends Action
|
||||
{
|
||||
parent::prepare($args);
|
||||
|
||||
if (!common_config('inboxes','enabled')) {
|
||||
$this->serverError(_('Inboxes must be enabled for groups to work'));
|
||||
return false;
|
||||
}
|
||||
|
||||
$id = $this->arg('id');
|
||||
|
||||
if (!$id) {
|
||||
|
@ -64,11 +64,6 @@ class GroupDesignSettingsAction extends DesignSettingsAction
|
||||
{
|
||||
parent::prepare($args);
|
||||
|
||||
if (!common_config('inboxes', 'enabled')) {
|
||||
$this->serverError(_('Inboxes must be enabled for groups to work'));
|
||||
return false;
|
||||
}
|
||||
|
||||
if (!common_logged_in()) {
|
||||
$this->clientError(_('You must be logged in to edit a group.'));
|
||||
return false;
|
||||
|
@ -66,11 +66,6 @@ class GrouplogoAction extends GroupDesignAction
|
||||
{
|
||||
parent::prepare($args);
|
||||
|
||||
if (!common_config('inboxes','enabled')) {
|
||||
$this->serverError(_('Inboxes must be enabled for groups to work'));
|
||||
return false;
|
||||
}
|
||||
|
||||
if (!common_logged_in()) {
|
||||
$this->clientError(_('You must be logged in to create a group.'));
|
||||
return false;
|
||||
|
@ -179,9 +179,12 @@ class GroupMemberListItem extends ProfileListItem
|
||||
function showActions()
|
||||
{
|
||||
$this->startActions();
|
||||
$this->showSubscribeButton();
|
||||
$this->showMakeAdminForm();
|
||||
$this->showGroupBlockForm();
|
||||
if (Event::handle('StartProfileListItemActionElements', array($this))) {
|
||||
$this->showSubscribeButton();
|
||||
$this->showMakeAdminForm();
|
||||
$this->showGroupBlockForm();
|
||||
Event::handle('EndProfileListItemActionElements', array($this));
|
||||
}
|
||||
$this->endActions();
|
||||
}
|
||||
|
||||
|
@ -76,11 +76,6 @@ class groupRssAction extends Rss10Action
|
||||
{
|
||||
parent::prepare($args);
|
||||
|
||||
if (!common_config('inboxes','enabled')) {
|
||||
$this->serverError(_('Inboxes must be enabled for groups to work'));
|
||||
return false;
|
||||
}
|
||||
|
||||
$nickname_arg = $this->arg('nickname');
|
||||
$nickname = common_canonical_nickname($nickname_arg);
|
||||
|
||||
|
@ -68,7 +68,7 @@ class InviteAction extends CurrentUserDesignAction
|
||||
|
||||
foreach ($addresses as $email) {
|
||||
$email = trim($email);
|
||||
if (!Validate::email($email, true)) {
|
||||
if (!Validate::email($email, common_config('email', 'check_domain'))) {
|
||||
$this->showForm(sprintf(_('Invalid email address: %s'), $email));
|
||||
return;
|
||||
}
|
||||
|
@ -56,11 +56,6 @@ class JoingroupAction extends Action
|
||||
{
|
||||
parent::prepare($args);
|
||||
|
||||
if (!common_config('inboxes','enabled')) {
|
||||
$this->serverError(_('Inboxes must be enabled for groups to work'));
|
||||
return false;
|
||||
}
|
||||
|
||||
if (!common_logged_in()) {
|
||||
$this->clientError(_('You must be logged in to join a group.'));
|
||||
return false;
|
||||
|
@ -56,11 +56,6 @@ class LeavegroupAction extends Action
|
||||
{
|
||||
parent::prepare($args);
|
||||
|
||||
if (!common_config('inboxes','enabled')) {
|
||||
$this->serverError(_('Inboxes must be enabled for groups to work.'));
|
||||
return false;
|
||||
}
|
||||
|
||||
if (!common_logged_in()) {
|
||||
$this->clientError(_('You must be logged in to leave a group.'));
|
||||
return false;
|
||||
|
@ -61,11 +61,6 @@ class NewgroupAction extends Action
|
||||
{
|
||||
parent::prepare($args);
|
||||
|
||||
if (!common_config('inboxes','enabled')) {
|
||||
$this->serverError(_('Inboxes must be enabled for groups to work'));
|
||||
return false;
|
||||
}
|
||||
|
||||
if (!common_logged_in()) {
|
||||
$this->clientError(_('You must be logged in to create a group.'));
|
||||
return false;
|
||||
|
@ -191,7 +191,7 @@ class RegisterAction extends Action
|
||||
if (!$this->boolean('license')) {
|
||||
$this->showForm(_('You can\'t register if you don\'t '.
|
||||
'agree to the license.'));
|
||||
} else if ($email && !Validate::email($email, true)) {
|
||||
} 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,
|
||||
|
@ -101,11 +101,6 @@ class ShowgroupAction extends GroupDesignAction
|
||||
{
|
||||
parent::prepare($args);
|
||||
|
||||
if (!common_config('inboxes','enabled')) {
|
||||
$this->serverError(_('Inboxes must be enabled for groups to work'));
|
||||
return false;
|
||||
}
|
||||
|
||||
$this->page = ($this->arg('page')) ? ($this->arg('page')+0) : 1;
|
||||
|
||||
$nickname_arg = $this->arg('nickname');
|
||||
|
@ -115,11 +115,11 @@ class ShowstreamAction extends ProfileAction
|
||||
{
|
||||
if (!empty($this->tag)) {
|
||||
return array(new Feed(Feed::RSS1,
|
||||
common_local_url('userrss',
|
||||
array('nickname' => $this->user->nickname,
|
||||
'tag' => $this->tag)),
|
||||
sprintf(_('Notice feed for %s tagged %s (RSS 1.0)'),
|
||||
$this->user->nickname, $this->tag)));
|
||||
common_local_url('userrss',
|
||||
array('nickname' => $this->user->nickname,
|
||||
'tag' => $this->tag)),
|
||||
sprintf(_('Notice feed for %s tagged %s (RSS 1.0)'),
|
||||
$this->user->nickname, $this->tag)));
|
||||
}
|
||||
|
||||
return array(new Feed(Feed::RSS1,
|
||||
@ -181,159 +181,251 @@ class ShowstreamAction extends ProfileAction
|
||||
|
||||
function showProfile()
|
||||
{
|
||||
$this->elementStart('div', 'entity_profile vcard author');
|
||||
$this->element('h2', null, _('User profile'));
|
||||
$this->showProfileData();
|
||||
$this->showEntityActions();
|
||||
}
|
||||
|
||||
$avatar = $this->profile->getAvatar(AVATAR_PROFILE_SIZE);
|
||||
$this->elementStart('dl', 'entity_depiction');
|
||||
$this->element('dt', null, _('Photo'));
|
||||
$this->elementStart('dd');
|
||||
$this->element('img', array('src' => ($avatar) ? $avatar->displayUrl() : Avatar::defaultImage(AVATAR_PROFILE_SIZE),
|
||||
'class' => 'photo avatar',
|
||||
'width' => AVATAR_PROFILE_SIZE,
|
||||
'height' => AVATAR_PROFILE_SIZE,
|
||||
'alt' => $this->profile->nickname));
|
||||
$this->elementEnd('dd');
|
||||
function showProfileData()
|
||||
{
|
||||
if (Event::handle('StartProfilePageProfileSection', array(&$this, $this->profile))) {
|
||||
|
||||
$user = User::staticGet('id', $this->profile->id);
|
||||
$cur = common_current_user();
|
||||
if ($cur && $cur->id == $user->id) {
|
||||
$this->elementStart('dd');
|
||||
$this->element('a', array('href' => common_local_url('avatarsettings')), _('Edit Avatar'));
|
||||
$this->elementEnd('dd');
|
||||
$this->elementStart('div', 'entity_profile vcard author');
|
||||
$this->element('h2', null, _('User profile'));
|
||||
|
||||
if (Event::handle('StartProfilePageProfileElements', array(&$this, $this->profile))) {
|
||||
|
||||
$this->showAvatar();
|
||||
$this->showNickname();
|
||||
$this->showFullName();
|
||||
$this->showLocation();
|
||||
$this->showHomepage();
|
||||
$this->showBio();
|
||||
$this->showProfileTags();
|
||||
|
||||
Event::handle('EndProfilePageProfileElements', array(&$this, $this->profile));
|
||||
}
|
||||
|
||||
$this->elementEnd('div');
|
||||
Event::handle('EndProfilePageProfileSection', array(&$this, $this->profile));
|
||||
}
|
||||
}
|
||||
|
||||
$this->elementEnd('dl');
|
||||
function showAvatar()
|
||||
{
|
||||
if (Event::handle('StartProfilePageAvatar', array($this, $this->profile))) {
|
||||
|
||||
$this->elementStart('dl', 'entity_nickname');
|
||||
$this->element('dt', null, _('Nickname'));
|
||||
$this->elementStart('dd');
|
||||
$hasFN = ($this->profile->fullname) ? 'nickname url uid' : 'fn nickname url uid';
|
||||
$this->element('a', array('href' => $this->profile->profileurl,
|
||||
'rel' => 'me', 'class' => $hasFN),
|
||||
$this->profile->nickname);
|
||||
$this->elementEnd('dd');
|
||||
$this->elementEnd('dl');
|
||||
$avatar = $this->profile->getAvatar(AVATAR_PROFILE_SIZE);
|
||||
|
||||
if ($this->profile->fullname) {
|
||||
$this->elementStart('dl', 'entity_fn');
|
||||
$this->element('dt', null, _('Full name'));
|
||||
$this->elementStart('dl', 'entity_depiction');
|
||||
$this->element('dt', null, _('Photo'));
|
||||
$this->elementStart('dd');
|
||||
$this->element('span', 'fn', $this->profile->fullname);
|
||||
$this->element('img', array('src' => ($avatar) ? $avatar->displayUrl() : Avatar::defaultImage(AVATAR_PROFILE_SIZE),
|
||||
'class' => 'photo avatar',
|
||||
'width' => AVATAR_PROFILE_SIZE,
|
||||
'height' => AVATAR_PROFILE_SIZE,
|
||||
'alt' => $this->profile->nickname));
|
||||
$this->elementEnd('dd');
|
||||
|
||||
$user = User::staticGet('id', $this->profile->id);
|
||||
|
||||
$cur = common_current_user();
|
||||
if ($cur && $cur->id == $user->id) {
|
||||
$this->elementStart('dd');
|
||||
$this->element('a', array('href' => common_local_url('avatarsettings')), _('Edit Avatar'));
|
||||
$this->elementEnd('dd');
|
||||
}
|
||||
|
||||
$this->elementEnd('dl');
|
||||
|
||||
Event::handle('EndProfilePageAvatar', array($this, $this->profile));
|
||||
}
|
||||
}
|
||||
|
||||
function showNickname()
|
||||
{
|
||||
if (Event::handle('StartProfilePageNickname', array($this, $this->profile))) {
|
||||
|
||||
$this->elementStart('dl', 'entity_nickname');
|
||||
$this->element('dt', null, _('Nickname'));
|
||||
$this->elementStart('dd');
|
||||
$hasFN = ($this->profile->fullname) ? 'nickname url uid' : 'fn nickname url uid';
|
||||
$this->element('a', array('href' => $this->profile->profileurl,
|
||||
'rel' => 'me', 'class' => $hasFN),
|
||||
$this->profile->nickname);
|
||||
$this->elementEnd('dd');
|
||||
$this->elementEnd('dl');
|
||||
}
|
||||
|
||||
if ($this->profile->location) {
|
||||
$this->elementStart('dl', 'entity_location');
|
||||
$this->element('dt', null, _('Location'));
|
||||
$this->element('dd', 'label', $this->profile->location);
|
||||
$this->elementEnd('dl');
|
||||
Event::handle('EndProfilePageNickname', array($this, $this->profile));
|
||||
}
|
||||
}
|
||||
|
||||
if ($this->profile->homepage) {
|
||||
$this->elementStart('dl', 'entity_url');
|
||||
$this->element('dt', null, _('URL'));
|
||||
$this->elementStart('dd');
|
||||
$this->element('a', array('href' => $this->profile->homepage,
|
||||
'rel' => 'me', 'class' => 'url'),
|
||||
$this->profile->homepage);
|
||||
$this->elementEnd('dd');
|
||||
$this->elementEnd('dl');
|
||||
function showFullName()
|
||||
{
|
||||
if (Event::handle('StartProfilePageFullName', array($this, $this->profile))) {
|
||||
if ($this->profile->fullname) {
|
||||
$this->elementStart('dl', 'entity_fn');
|
||||
$this->element('dt', null, _('Full name'));
|
||||
$this->elementStart('dd');
|
||||
$this->element('span', 'fn', $this->profile->fullname);
|
||||
$this->elementEnd('dd');
|
||||
$this->elementEnd('dl');
|
||||
}
|
||||
Event::handle('EndProfilePageFullName', array($this, $this->profile));
|
||||
}
|
||||
}
|
||||
|
||||
if ($this->profile->bio) {
|
||||
$this->elementStart('dl', 'entity_note');
|
||||
$this->element('dt', null, _('Note'));
|
||||
$this->element('dd', 'note', $this->profile->bio);
|
||||
$this->elementEnd('dl');
|
||||
function showLocation()
|
||||
{
|
||||
if (Event::handle('StartProfilePageLocation', array($this, $this->profile))) {
|
||||
if ($this->profile->location) {
|
||||
$this->elementStart('dl', 'entity_location');
|
||||
$this->element('dt', null, _('Location'));
|
||||
$this->element('dd', 'label', $this->profile->location);
|
||||
$this->elementEnd('dl');
|
||||
}
|
||||
Event::handle('EndProfilePageLocation', array($this, $this->profile));
|
||||
}
|
||||
}
|
||||
|
||||
$tags = Profile_tag::getTags($this->profile->id, $this->profile->id);
|
||||
if (count($tags) > 0) {
|
||||
$this->elementStart('dl', 'entity_tags');
|
||||
$this->element('dt', null, _('Tags'));
|
||||
$this->elementStart('dd');
|
||||
$this->elementStart('ul', 'tags xoxo');
|
||||
foreach ($tags as $tag) {
|
||||
$this->elementStart('li');
|
||||
// Avoid space by using raw output.
|
||||
$pt = '<span class="mark_hash">#</span><a rel="tag" href="' .
|
||||
function showHomepage()
|
||||
{
|
||||
if (Event::handle('StartProfilePageHomepage', array($this, $this->profile))) {
|
||||
if ($this->profile->homepage) {
|
||||
$this->elementStart('dl', 'entity_url');
|
||||
$this->element('dt', null, _('URL'));
|
||||
$this->elementStart('dd');
|
||||
$this->element('a', array('href' => $this->profile->homepage,
|
||||
'rel' => 'me', 'class' => 'url'),
|
||||
$this->profile->homepage);
|
||||
$this->elementEnd('dd');
|
||||
$this->elementEnd('dl');
|
||||
}
|
||||
Event::handle('EndProfilePageHomepage', array($this, $this->profile));
|
||||
}
|
||||
}
|
||||
|
||||
function showBio()
|
||||
{
|
||||
if (Event::handle('StartProfilePageBio', array($this, $this->profile))) {
|
||||
if ($this->profile->bio) {
|
||||
$this->elementStart('dl', 'entity_note');
|
||||
$this->element('dt', null, _('Note'));
|
||||
$this->element('dd', 'note', $this->profile->bio);
|
||||
$this->elementEnd('dl');
|
||||
}
|
||||
Event::handle('EndProfilePageBio', array($this, $this->profile));
|
||||
}
|
||||
}
|
||||
|
||||
function showProfileTags()
|
||||
{
|
||||
if (Event::handle('StartProfilePageProfileTags', array($this, $this->profile))) {
|
||||
$tags = Profile_tag::getTags($this->profile->id, $this->profile->id);
|
||||
|
||||
if (count($tags) > 0) {
|
||||
$this->elementStart('dl', 'entity_tags');
|
||||
$this->element('dt', null, _('Tags'));
|
||||
$this->elementStart('dd');
|
||||
$this->elementStart('ul', 'tags xoxo');
|
||||
foreach ($tags as $tag) {
|
||||
$this->elementStart('li');
|
||||
// Avoid space by using raw output.
|
||||
$pt = '<span class="mark_hash">#</span><a rel="tag" href="' .
|
||||
common_local_url('peopletag', array('tag' => $tag)) .
|
||||
'">' . $tag . '</a>';
|
||||
$this->raw($pt);
|
||||
$this->elementEnd('li');
|
||||
}
|
||||
$this->elementEnd('ul');
|
||||
$this->elementEnd('dd');
|
||||
$this->elementEnd('dl');
|
||||
}
|
||||
$this->elementEnd('div');
|
||||
|
||||
$this->elementStart('div', 'entity_actions');
|
||||
$this->element('h2', null, _('User actions'));
|
||||
$this->elementStart('ul');
|
||||
$cur = common_current_user();
|
||||
|
||||
if ($cur && $cur->id == $this->profile->id) {
|
||||
$this->elementStart('li', 'entity_edit');
|
||||
$this->element('a', array('href' => common_local_url('profilesettings'),
|
||||
'title' => _('Edit profile settings')),
|
||||
_('Edit'));
|
||||
$this->elementEnd('li');
|
||||
}
|
||||
|
||||
if ($cur) {
|
||||
if ($cur->id != $this->profile->id) {
|
||||
$this->elementStart('li', 'entity_subscribe');
|
||||
if ($cur->isSubscribed($this->profile)) {
|
||||
$usf = new UnsubscribeForm($this, $this->profile);
|
||||
$usf->show();
|
||||
} else {
|
||||
$sf = new SubscribeForm($this, $this->profile);
|
||||
$sf->show();
|
||||
$this->raw($pt);
|
||||
$this->elementEnd('li');
|
||||
}
|
||||
$this->elementEnd('li');
|
||||
$this->elementEnd('ul');
|
||||
$this->elementEnd('dd');
|
||||
$this->elementEnd('dl');
|
||||
}
|
||||
} else {
|
||||
$this->elementStart('li', 'entity_subscribe');
|
||||
$this->showRemoteSubscribeLink();
|
||||
$this->elementEnd('li');
|
||||
Event::handle('EndProfilePageProfileTags', array($this, $this->profile));
|
||||
}
|
||||
}
|
||||
|
||||
if ($cur && $cur->id != $user->id && $cur->mutuallySubscribed($user)) {
|
||||
$this->elementStart('li', 'entity_send-a-message');
|
||||
$this->element('a', array('href' => common_local_url('newmessage', array('to' => $user->id)),
|
||||
'title' => _('Send a direct message to this user')),
|
||||
_('Message'));
|
||||
$this->elementEnd('li');
|
||||
function showEntityActions()
|
||||
{
|
||||
if (Event::handle('StartProfilePageActionsSection', array(&$this, $this->profile))) {
|
||||
|
||||
if ($user->email && $user->emailnotifynudge) {
|
||||
$this->elementStart('li', 'entity_nudge');
|
||||
$nf = new NudgeForm($this, $user);
|
||||
$nf->show();
|
||||
$this->elementEnd('li');
|
||||
$this->elementStart('div', 'entity_actions');
|
||||
$this->element('h2', null, _('User actions'));
|
||||
$this->elementStart('ul');
|
||||
|
||||
if (Event::handle('StartProfilePageActionsElements', array(&$this, $this->profile))) {
|
||||
if (empty($cur)) { // not logged in
|
||||
$this->elementStart('li', 'entity_subscribe');
|
||||
$this->showRemoteSubscribeLink();
|
||||
$this->elementEnd('li');
|
||||
} else {
|
||||
if ($cur->id == $this->profile->id) { // your own page
|
||||
$this->elementStart('li', 'entity_edit');
|
||||
$this->element('a', array('href' => common_local_url('profilesettings'),
|
||||
'title' => _('Edit profile settings')),
|
||||
_('Edit'));
|
||||
$this->elementEnd('li');
|
||||
} else { // someone else's page
|
||||
|
||||
// subscribe/unsubscribe button
|
||||
|
||||
$this->elementStart('li', 'entity_subscribe');
|
||||
|
||||
if ($cur->isSubscribed($this->profile)) {
|
||||
$usf = new UnsubscribeForm($this, $this->profile);
|
||||
$usf->show();
|
||||
} else {
|
||||
$sf = new SubscribeForm($this, $this->profile);
|
||||
$sf->show();
|
||||
}
|
||||
$this->elementEnd('li');
|
||||
|
||||
if ($cur->mutuallySubscribed($user)) {
|
||||
|
||||
// message
|
||||
|
||||
$this->elementStart('li', 'entity_send-a-message');
|
||||
$this->element('a', array('href' => common_local_url('newmessage', array('to' => $user->id)),
|
||||
'title' => _('Send a direct message to this user')),
|
||||
_('Message'));
|
||||
$this->elementEnd('li');
|
||||
|
||||
// nudge
|
||||
|
||||
if ($user->email && $user->emailnotifynudge) {
|
||||
$this->elementStart('li', 'entity_nudge');
|
||||
$nf = new NudgeForm($this, $user);
|
||||
$nf->show();
|
||||
$this->elementEnd('li');
|
||||
}
|
||||
}
|
||||
|
||||
// block/unblock
|
||||
|
||||
$blocked = $cur->hasBlocked($this->profile);
|
||||
$this->elementStart('li', 'entity_block');
|
||||
if ($blocked) {
|
||||
$ubf = new UnblockForm($this, $this->profile,
|
||||
array('action' => 'showstream',
|
||||
'nickname' => $this->profile->nickname));
|
||||
$ubf->show();
|
||||
} else {
|
||||
$bf = new BlockForm($this, $this->profile,
|
||||
array('action' => 'showstream',
|
||||
'nickname' => $this->profile->nickname));
|
||||
$bf->show();
|
||||
}
|
||||
$this->elementEnd('li');
|
||||
}
|
||||
}
|
||||
|
||||
Event::handle('EndProfilePageActionsElements', array(&$this, $this->profile));
|
||||
}
|
||||
}
|
||||
|
||||
if ($cur && $cur->id != $this->profile->id) {
|
||||
$blocked = $cur->hasBlocked($this->profile);
|
||||
$this->elementStart('li', 'entity_block');
|
||||
if ($blocked) {
|
||||
$ubf = new UnblockForm($this, $this->profile,
|
||||
array('action' => 'showstream',
|
||||
'nickname' => $this->profile->nickname));
|
||||
$ubf->show();
|
||||
} else {
|
||||
$bf = new BlockForm($this, $this->profile,
|
||||
array('action' => 'showstream',
|
||||
'nickname' => $this->profile->nickname));
|
||||
$bf->show();
|
||||
}
|
||||
$this->elementEnd('li');
|
||||
$this->elementEnd('ul');
|
||||
$this->elementEnd('div');
|
||||
|
||||
Event::handle('EndProfilePageActionsSection', array(&$this, $this->profile));
|
||||
}
|
||||
$this->elementEnd('ul');
|
||||
$this->elementEnd('div');
|
||||
}
|
||||
|
||||
function showRemoteSubscribeLink()
|
||||
@ -369,7 +461,7 @@ class ShowstreamAction extends ProfileAction
|
||||
function showNotices()
|
||||
{
|
||||
$notice = empty($this->tag)
|
||||
? $this->user->getNotices(($this->page-1)*NOTICES_PER_PAGE, NOTICES_PER_PAGE + 1)
|
||||
? $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);
|
||||
@ -391,14 +483,14 @@ class ShowstreamAction extends ProfileAction
|
||||
{
|
||||
if (!(common_config('site','closed') || common_config('site','inviteonly'))) {
|
||||
$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);
|
||||
'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 {
|
||||
$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);
|
||||
}
|
||||
'based on the Free Software [StatusNet](http://status.net/) tool. '),
|
||||
$this->user->nickname, $this->user->nickname);
|
||||
}
|
||||
$this->elementStart('div', array('id' => 'anon_notice'));
|
||||
$this->raw(common_markup_to_html($m));
|
||||
$this->elementEnd('div');
|
||||
|
@ -111,10 +111,9 @@ class Notice extends Memcached_DataObject
|
||||
'Fave',
|
||||
'Notice_tag',
|
||||
'Group_inbox',
|
||||
'Queue_item');
|
||||
if (common_config('inboxes', 'enabled')) {
|
||||
$related[] = 'Notice_inbox';
|
||||
}
|
||||
'Queue_item',
|
||||
'Notice_inbox');
|
||||
|
||||
foreach ($related as $cls) {
|
||||
$inst = new $cls();
|
||||
$inst->notice_id = $this->id;
|
||||
@ -883,66 +882,61 @@ class Notice extends Memcached_DataObject
|
||||
|
||||
function addToInboxes()
|
||||
{
|
||||
$enabled = common_config('inboxes', 'enabled');
|
||||
// XXX: loads constants
|
||||
|
||||
if ($enabled === true || $enabled === 'transitional') {
|
||||
$inbox = new Notice_inbox();
|
||||
|
||||
// XXX: loads constants
|
||||
$users = $this->getSubscribedUsers();
|
||||
|
||||
$inbox = new Notice_inbox();
|
||||
// FIXME: kind of ignoring 'transitional'...
|
||||
// we'll probably stop supporting inboxless mode
|
||||
// in 0.9.x
|
||||
|
||||
$users = $this->getSubscribedUsers();
|
||||
$ni = array();
|
||||
|
||||
// FIXME: kind of ignoring 'transitional'...
|
||||
// we'll probably stop supporting inboxless mode
|
||||
// in 0.9.x
|
||||
foreach ($users as $id) {
|
||||
$ni[$id] = NOTICE_INBOX_SOURCE_SUB;
|
||||
}
|
||||
|
||||
$ni = array();
|
||||
$groups = $this->saveGroups();
|
||||
|
||||
foreach ($groups as $group) {
|
||||
$users = $group->getUserMembers();
|
||||
foreach ($users as $id) {
|
||||
$ni[$id] = NOTICE_INBOX_SOURCE_SUB;
|
||||
}
|
||||
|
||||
$groups = $this->saveGroups();
|
||||
|
||||
foreach ($groups as $group) {
|
||||
$users = $group->getUserMembers();
|
||||
foreach ($users as $id) {
|
||||
if (!array_key_exists($id, $ni)) {
|
||||
$ni[$id] = NOTICE_INBOX_SOURCE_GROUP;
|
||||
}
|
||||
if (!array_key_exists($id, $ni)) {
|
||||
$ni[$id] = NOTICE_INBOX_SOURCE_GROUP;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$cnt = 0;
|
||||
$cnt = 0;
|
||||
|
||||
$qryhdr = 'INSERT INTO notice_inbox (user_id, notice_id, source, created) VALUES ';
|
||||
$qry = $qryhdr;
|
||||
|
||||
foreach ($ni as $id => $source) {
|
||||
if ($cnt > 0) {
|
||||
$qry .= ', ';
|
||||
}
|
||||
$qry .= '('.$id.', '.$this->id.', '.$source.", '".$this->created. "') ";
|
||||
$cnt++;
|
||||
if (rand() % NOTICE_INBOX_SOFT_LIMIT == 0) {
|
||||
// FIXME: Causes lag in replicated servers
|
||||
// Notice_inbox::gc($id);
|
||||
}
|
||||
if ($cnt >= MAX_BOXCARS) {
|
||||
$inbox = new Notice_inbox();
|
||||
$inbox->query($qry);
|
||||
$qry = $qryhdr;
|
||||
$cnt = 0;
|
||||
}
|
||||
}
|
||||
$qryhdr = 'INSERT INTO notice_inbox (user_id, notice_id, source, created) VALUES ';
|
||||
$qry = $qryhdr;
|
||||
|
||||
foreach ($ni as $id => $source) {
|
||||
if ($cnt > 0) {
|
||||
$qry .= ', ';
|
||||
}
|
||||
$qry .= '('.$id.', '.$this->id.', '.$source.", '".$this->created. "') ";
|
||||
$cnt++;
|
||||
if (rand() % NOTICE_INBOX_SOFT_LIMIT == 0) {
|
||||
// FIXME: Causes lag in replicated servers
|
||||
// Notice_inbox::gc($id);
|
||||
}
|
||||
if ($cnt >= MAX_BOXCARS) {
|
||||
$inbox = new Notice_inbox();
|
||||
$inbox->query($qry);
|
||||
$qry = $qryhdr;
|
||||
$cnt = 0;
|
||||
}
|
||||
}
|
||||
|
||||
if ($cnt > 0) {
|
||||
$inbox = new Notice_inbox();
|
||||
$inbox->query($qry);
|
||||
}
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
@ -977,11 +971,6 @@ class Notice extends Memcached_DataObject
|
||||
{
|
||||
$groups = array();
|
||||
|
||||
$enabled = common_config('inboxes', 'enabled');
|
||||
if ($enabled !== true && $enabled !== 'transitional') {
|
||||
return $groups;
|
||||
}
|
||||
|
||||
/* extract all !group */
|
||||
$count = preg_match_all('/(?:^|\s)!([A-Za-z0-9]{1,64})/',
|
||||
strtolower($this->content),
|
||||
|
@ -46,6 +46,11 @@ class Profile extends Memcached_DataObject
|
||||
/* the code above is auto generated do not remove the tag below */
|
||||
###END_AUTOCODE
|
||||
|
||||
function getUser()
|
||||
{
|
||||
return User::staticGet('id', $this->id);
|
||||
}
|
||||
|
||||
function getAvatar($width, $height=null)
|
||||
{
|
||||
if (is_null($height)) {
|
||||
|
@ -227,11 +227,9 @@ class User extends Memcached_DataObject
|
||||
}
|
||||
}
|
||||
|
||||
$inboxes = common_config('inboxes', 'enabled');
|
||||
// This flag is ignored but still set to 1
|
||||
|
||||
if ($inboxes === true || $inboxes == 'transitional') {
|
||||
$user->inboxed = 1;
|
||||
}
|
||||
$user->inboxed = 1;
|
||||
|
||||
$user->created = common_sql_now();
|
||||
$user->uri = common_user_uri($user);
|
||||
@ -433,55 +431,16 @@ class User extends Memcached_DataObject
|
||||
|
||||
function noticesWithFriends($offset=0, $limit=NOTICES_PER_PAGE, $since_id=0, $before_id=0, $since=null)
|
||||
{
|
||||
$enabled = common_config('inboxes', 'enabled');
|
||||
$ids = Notice_inbox::stream($this->id, $offset, $limit, $since_id, $before_id, $since, false);
|
||||
|
||||
// Complicated code, depending on whether we support inboxes yet
|
||||
// XXX: make this go away when inboxes become mandatory
|
||||
|
||||
if ($enabled === false ||
|
||||
($enabled == 'transitional' && $this->inboxed == 0)) {
|
||||
$qry =
|
||||
'SELECT notice.* ' .
|
||||
'FROM notice JOIN subscription ON notice.profile_id = subscription.subscribed ' .
|
||||
'WHERE subscription.subscriber = %d ' .
|
||||
'AND notice.is_local != ' . Notice::GATEWAY;
|
||||
return Notice::getStream(sprintf($qry, $this->id),
|
||||
'user:notices_with_friends:' . $this->id,
|
||||
$offset, $limit, $since_id, $before_id,
|
||||
$order, $since);
|
||||
} else if ($enabled === true ||
|
||||
($enabled == 'transitional' && $this->inboxed == 1)) {
|
||||
|
||||
$ids = Notice_inbox::stream($this->id, $offset, $limit, $since_id, $before_id, $since, false);
|
||||
|
||||
return Notice::getStreamByIds($ids);
|
||||
}
|
||||
return Notice::getStreamByIds($ids);
|
||||
}
|
||||
|
||||
function noticeInbox($offset=0, $limit=NOTICES_PER_PAGE, $since_id=0, $before_id=0, $since=null)
|
||||
{
|
||||
$enabled = common_config('inboxes', 'enabled');
|
||||
$ids = Notice_inbox::stream($this->id, $offset, $limit, $since_id, $before_id, $since, true);
|
||||
|
||||
// Complicated code, depending on whether we support inboxes yet
|
||||
// XXX: make this go away when inboxes become mandatory
|
||||
|
||||
if ($enabled === false ||
|
||||
($enabled == 'transitional' && $this->inboxed == 0)) {
|
||||
$qry =
|
||||
'SELECT notice.* ' .
|
||||
'FROM notice JOIN subscription ON notice.profile_id = subscription.subscribed ' .
|
||||
'WHERE subscription.subscriber = %d ';
|
||||
return Notice::getStream(sprintf($qry, $this->id),
|
||||
'user:notices_with_friends:' . $this->id,
|
||||
$offset, $limit, $since_id, $before_id,
|
||||
$order, $since);
|
||||
} else if ($enabled === true ||
|
||||
($enabled == 'transitional' && $this->inboxed == 1)) {
|
||||
|
||||
$ids = Notice_inbox::stream($this->id, $offset, $limit, $since_id, $before_id, $since, true);
|
||||
|
||||
return Notice::getStreamByIds($ids);
|
||||
}
|
||||
return Notice::getStreamByIds($ids);
|
||||
}
|
||||
|
||||
function blowFavesCache()
|
||||
@ -752,12 +711,9 @@ class User extends Memcached_DataObject
|
||||
'Remember_me',
|
||||
'Foreign_link',
|
||||
'Invitation',
|
||||
'Notice_inbox',
|
||||
);
|
||||
|
||||
if (common_config('inboxes', 'enabled')) {
|
||||
$related[] = 'Notice_inbox';
|
||||
}
|
||||
|
||||
foreach ($related as $cls) {
|
||||
$inst = new $cls();
|
||||
$inst->user_id = $this->id;
|
||||
|
@ -104,6 +104,10 @@ $config['sphinx']['port'] = 3312;
|
||||
// $config['site']['timezone'] = 'Pacific/Auckland';
|
||||
// $config['site']['language'] = 'en_NZ';
|
||||
|
||||
// When validating user supplied email addresses, validate if the domain
|
||||
// is running an SMTP server.
|
||||
// $config['mail']['check_domain'] = true;
|
||||
|
||||
// Email info, used for all outbound email
|
||||
// $config['mail']['notifyfrom'] = 'microblog@example.net';
|
||||
// $config['mail']['domain'] = 'microblog.example.net';
|
||||
|
@ -235,7 +235,7 @@ class DB_DataObject extends DB_DataObject_Overload
|
||||
* @access private
|
||||
* @var string
|
||||
*/
|
||||
var $_DB_DataObject_version = "1.8.11";
|
||||
var $_DB_DataObject_version = "1.8.12";
|
||||
|
||||
/**
|
||||
* The Database table (used by table extends)
|
||||
|
@ -6,9 +6,9 @@
|
||||
*
|
||||
* PHP versions 4 and 5
|
||||
*
|
||||
* LICENSE: This source file is subject to version 3.0 of the PHP license
|
||||
* LICENSE: This source file is subject to version 3.01 of the PHP license
|
||||
* that is available through the world-wide-web at the following URI:
|
||||
* http://www.php.net/license/3_0.txt. If you did not receive a copy of
|
||||
* http://www.php.net/license/3_01.txt. If you did not receive a copy of
|
||||
* the PHP License and are unable to obtain it through the web, please
|
||||
* send a note to license@php.net so we can mail you a copy immediately.
|
||||
*
|
||||
@ -16,8 +16,8 @@
|
||||
* @package DB_DataObject
|
||||
* @author Alan Knowles <alan@akbkhome.com>
|
||||
* @copyright 1997-2008 The PHP Group
|
||||
* @license http://www.php.net/license/3_0.txt PHP License 3.0
|
||||
* @version CVS: $Id: Cast.php 264148 2008-08-04 03:44:59Z alan_k $
|
||||
* @license http://www.php.net/license/3_01.txt PHP License 3.01
|
||||
* @version CVS: $Id: Cast.php 287158 2009-08-12 13:58:31Z alan_k $
|
||||
* @link http://pear.php.net/package/DB_DataObject
|
||||
*/
|
||||
|
||||
|
@ -7,9 +7,9 @@
|
||||
*
|
||||
* PHP versions 4 and 5
|
||||
*
|
||||
* LICENSE: This source file is subject to version 3.0 of the PHP license
|
||||
* LICENSE: This source file is subject to version 3.01 of the PHP license
|
||||
* that is available through the world-wide-web at the following URI:
|
||||
* http://www.php.net/license/3_0.txt. If you did not receive a copy of
|
||||
* http://www.php.net/license/3_01.txt. If you did not receive a copy of
|
||||
* the PHP License and are unable to obtain it through the web, please
|
||||
* send a note to license@php.net so we can mail you a copy immediately.
|
||||
*
|
||||
@ -17,8 +17,8 @@
|
||||
* @package DB_DataObject
|
||||
* @author Alan Knowles <alan@akbkhome.com>
|
||||
* @copyright 1997-2006 The PHP Group
|
||||
* @license http://www.php.net/license/3_0.txt PHP License 3.0
|
||||
* @version CVS: $Id: Error.php 277015 2009-03-12 05:51:03Z alan_k $
|
||||
* @license http://www.php.net/license/3_01.txt PHP License 3.01
|
||||
* @version CVS: $Id: Error.php 287158 2009-08-12 13:58:31Z alan_k $
|
||||
* @link http://pear.php.net/package/DB_DataObject
|
||||
*/
|
||||
|
||||
|
@ -1,3 +1,19 @@
|
||||
2006-02-28 Danilo Šegan <danilo@gnome.org>
|
||||
|
||||
* gettext.php: Added some comments about these workarounds for
|
||||
different PHP versions and architectures.
|
||||
|
||||
2006-02-28 Danilo Šegan <danilo@gnome.org>
|
||||
|
||||
Fixes bug #15923.
|
||||
|
||||
* gettext.php (gettext_reader): make magic check work on 64-bit
|
||||
platforms as well (by Steffen Pingel).
|
||||
|
||||
2006-02-20 Danilo Šegan <danilo@gnome.org>
|
||||
|
||||
* gettext.inc (_bindtextdomain): Use php_uname to detect Windows.
|
||||
|
||||
2006-02-07 Danilo Šegan <danilo@gnome.org>
|
||||
|
||||
* examples/pigs_dropin.php: comment-out bind_textdomain_codeset
|
||||
|
@ -129,7 +129,7 @@ function _setlocale($category, $locale) {
|
||||
$ret = 0;
|
||||
if (function_exists('setlocale')) // I don't know if this ever happens ;)
|
||||
$ret = setlocale($category, $locale);
|
||||
if (($ret and $locale == '') or ($ret == $locale)) {
|
||||
if ($ret and ($locale == '' or $ret == $locale)) {
|
||||
$EMULATEGETTEXT = 0;
|
||||
$CURRENTLOCALE = $ret;
|
||||
} else {
|
||||
@ -148,9 +148,9 @@ function _setlocale($category, $locale) {
|
||||
*/
|
||||
function _bindtextdomain($domain, $path) {
|
||||
global $text_domains;
|
||||
// ensure $path ends with a slash
|
||||
if ($path[strlen($path) - 1] != '/') $path .= '/';
|
||||
elseif ($path[strlen($path) - 1] != '\\') $path .= '\\';
|
||||
// ensure $path ends with a slash
|
||||
if ($path[strlen($path) - 1] != '/') $path .= '/';
|
||||
elseif ($path[strlen($path) - 1] != '\\') $path .= '\\';
|
||||
$text_domains[$domain]->path = $path;
|
||||
}
|
||||
|
||||
|
@ -102,16 +102,16 @@ class gettext_reader {
|
||||
// Caching can be turned off
|
||||
$this->enable_cache = $enable_cache;
|
||||
|
||||
// $MAGIC1 = (int)0x950412de; //bug in PHP 5
|
||||
// $MAGIC1 = (int)0x950412de; //bug in PHP 5.0.2, see https://savannah.nongnu.org/bugs/?func=detailitem&item_id=10565
|
||||
$MAGIC1 = (int) - 1794895138;
|
||||
// $MAGIC2 = (int)0xde120495; //bug
|
||||
$MAGIC2 = (int) - 569244523;
|
||||
|
||||
$this->STREAM = $Reader;
|
||||
$magic = $this->readint();
|
||||
if ($magic == $MAGIC1) {
|
||||
if ($magic == ($MAGIC1 & 0xFFFFFFFF)) { // to make sure it works for 64-bit platforms
|
||||
$this->BYTEORDER = 0;
|
||||
} elseif ($magic == $MAGIC2) {
|
||||
} elseif ($magic == ($MAGIC2 & 0xFFFFFFFF)) {
|
||||
$this->BYTEORDER = 1;
|
||||
} else {
|
||||
$this->error = 1; // not MO file
|
||||
|
@ -372,7 +372,7 @@ function showLibs()
|
||||
}
|
||||
echo<<<E_O_T
|
||||
<div class="instructions">
|
||||
<p>Laconica comes bundled with a number of libraries required for the application to work. However, it is best that you use PEAR or you distribution to manage
|
||||
<p>StatusNet comes bundled with a number of libraries required for the application to work. However, it is best that you use PEAR or you distribution to manage
|
||||
libraries instead, as they tend to provide security updates faster, and may offer improved performance.</p>
|
||||
<p>On Debian based distributions, such as Ubuntu, use a package manager (such as "aptitude", "apt-get", and "synaptic") to install the package listed.</p>
|
||||
<p>On RPM based distributions, such as Red Hat, Fedora, CentOS, Scientific Linux, Yellow Dog Linux and Oracle Enterprise Linux, use a package manager (such as "yum", "apt-rpm", and "up2date") to install the package listed.</p>
|
||||
@ -384,7 +384,7 @@ E_O_T;
|
||||
foreach ($absent_libraries as $library) {
|
||||
echo '<li>';
|
||||
if (isset($library['url'])) {
|
||||
echo '<a href=">'.$library['url'].'">'.htmlentities($library['name']).'</a>';
|
||||
echo '<a href="'.$library['url'].'">'.htmlentities($library['name']).'</a>';
|
||||
} else {
|
||||
echo htmlentities($library['name']);
|
||||
}
|
||||
@ -408,7 +408,7 @@ E_O_T;
|
||||
foreach ($present_libraries as $library) {
|
||||
echo '<li>';
|
||||
if (isset($library['url'])) {
|
||||
echo '<a href=">'.$library['url'].'">'.htmlentities($library['name']).'</a>';
|
||||
echo '<a href="'.$library['url'].'">'.htmlentities($library['name']).'</a>';
|
||||
} else {
|
||||
echo htmlentities($library['name']);
|
||||
}
|
||||
@ -439,7 +439,7 @@ function showForm()
|
||||
<dd>
|
||||
<div class="instructions">
|
||||
<p>Enter your database connection information below to initialize the database.</p>
|
||||
<p>Laconica bundles a number of libraries for ease of installation. <a href="?checklibs=true">You can see what bundled libraries you are using, versus what libraries are installed on your server.</a>
|
||||
<p>StatusNet bundles a number of libraries for ease of installation. <a href="?checklibs=true">You can see what bundled libraries you are using, versus what libraries are installed on your server.</a>
|
||||
</div>
|
||||
</dd>
|
||||
</dl>
|
||||
|
20
lib/api.php
20
lib/api.php
@ -134,11 +134,19 @@ class ApiAction extends Action
|
||||
$twitter_user['protected'] = false; # not supported by StatusNet yet
|
||||
$twitter_user['followers_count'] = $profile->subscriberCount();
|
||||
|
||||
// To be supported soon...
|
||||
$twitter_user['profile_background_color'] = '';
|
||||
$twitter_user['profile_text_color'] = '';
|
||||
$twitter_user['profile_link_color'] = '';
|
||||
$twitter_user['profile_sidebar_fill_color'] = '';
|
||||
// Need to pull up the user for some of this
|
||||
$user = $profile->getUser();
|
||||
$design = $user->getDesign();
|
||||
$defaultDesign = Design::siteDesign();
|
||||
if (!$design) $design = $defaultDesign;
|
||||
$color = Design::toWebColor(empty($design->backgroundcolor) ? $defaultDesign->backgroundcolor : $design->backgroundcolor);
|
||||
$twitter_user['profile_background_color'] = ($color == null) ? '' : '#'.$color->hexValue();
|
||||
$color = Design::toWebColor(empty($design->textcolor) ? $defaultDesign->textcolor : $design->textcolor);
|
||||
$twitter_user['profile_text_color'] = ($color == null) ? '' : '#'.$color->hexValue();
|
||||
$color = Design::toWebColor(empty($design->linkcolor) ? $defaultDesign->linkcolor : $design->linkcolor);
|
||||
$twitter_user['profile_link_color'] = ($color == null) ? '' : '#'.$color->hexValue();
|
||||
$color = Design::toWebColor(empty($design->sidebarcolor) ? $defaultDesign->sidebarcolor : $design->sidebarcolor);
|
||||
$twitter_user['profile_sidebar_fill_color'] = ($color == null) ? '' : '#'.$color->hexValue();
|
||||
$twitter_user['profile_sidebar_border_color'] = '';
|
||||
|
||||
$twitter_user['friends_count'] = $profile->subscriptionCount();
|
||||
@ -147,8 +155,6 @@ class ApiAction extends Action
|
||||
|
||||
$twitter_user['favourites_count'] = $profile->faveCount(); // British spelling!
|
||||
|
||||
// Need to pull up the user for some of this
|
||||
$user = User::staticGet($profile->id);
|
||||
|
||||
$timezone = 'UTC';
|
||||
|
||||
|
@ -84,7 +84,8 @@ $default =
|
||||
'image' => 'http://i.creativecommons.org/l/by/3.0/80x15.png'),
|
||||
'mail' =>
|
||||
array('backend' => 'mail',
|
||||
'params' => null),
|
||||
'params' => null,
|
||||
'domain_check' => true),
|
||||
'nickname' =>
|
||||
array('blacklist' => array(),
|
||||
'featured' => array()),
|
||||
@ -140,24 +141,24 @@ $default =
|
||||
array('enabled' => true),
|
||||
'sms' =>
|
||||
array('enabled' => true),
|
||||
'twitterbridge' =>
|
||||
'twitterimport' =>
|
||||
array('enabled' => false),
|
||||
'integration' =>
|
||||
array('source' => 'StatusNet', # source attribute for Twitter
|
||||
'taguri' => $_server.',2009'), # base for tag URIs
|
||||
'twitter' =>
|
||||
array('enabled' => true,
|
||||
'consumer_key' => null,
|
||||
'consumer_secret' => null),
|
||||
'twitter' =>
|
||||
array('enabled' => true,
|
||||
'consumer_key' => null,
|
||||
'consumer_secret' => null),
|
||||
'memcached' =>
|
||||
array('enabled' => false,
|
||||
'server' => 'localhost',
|
||||
'base' => null,
|
||||
'port' => 11211),
|
||||
'ping' =>
|
||||
'ping' =>
|
||||
array('notify' => array()),
|
||||
'inboxes' =>
|
||||
array('enabled' => true), # on by default for new sites
|
||||
array('enabled' => true), # ignored after 0.9.x
|
||||
'newuser' =>
|
||||
array('default' => null,
|
||||
'welcome' => null),
|
||||
@ -200,12 +201,12 @@ $default =
|
||||
'video/mp4',
|
||||
'video/quicktime',
|
||||
'video/mpeg'),
|
||||
'file_quota' => 5000000,
|
||||
'user_quota' => 50000000,
|
||||
'monthly_quota' => 15000000,
|
||||
'uploads' => true,
|
||||
'filecommand' => '/usr/bin/file',
|
||||
),
|
||||
'file_quota' => 5000000,
|
||||
'user_quota' => 50000000,
|
||||
'monthly_quota' => 15000000,
|
||||
'uploads' => true,
|
||||
'filecommand' => '/usr/bin/file',
|
||||
),
|
||||
'group' =>
|
||||
array('maxaliases' => 3,
|
||||
'desclimit' => null),
|
||||
|
@ -48,7 +48,7 @@ if (!defined('STATUSNET')) {
|
||||
class HTTPResponse
|
||||
{
|
||||
public $code = null;
|
||||
public $headers = null;
|
||||
public $headers = array();
|
||||
public $body = null;
|
||||
}
|
||||
|
||||
|
@ -101,35 +101,36 @@ function get_nice_language_list()
|
||||
*/
|
||||
function get_all_languages() {
|
||||
return array(
|
||||
'bg' => array('q' => 0.8, 'lang' => 'bg_BG', 'name' => 'Bulgarian', 'direction' => 'ltr'),
|
||||
'ca' => array('q' => 0.5, 'lang' => 'ca_ES', 'name' => 'Catalan', 'direction' => 'ltr'),
|
||||
'cs' => array('q' => 0.5, 'lang' => 'cs_CZ', 'name' => 'Czech', 'direction' => 'ltr'),
|
||||
'de' => array('q' => 0.8, 'lang' => 'de_DE', 'name' => 'German', 'direction' => 'ltr'),
|
||||
'bg' => array('q' => 0.8, 'lang' => 'bg', 'name' => 'Bulgarian', 'direction' => 'ltr'),
|
||||
'ca' => array('q' => 0.5, 'lang' => 'ca', 'name' => 'Catalan', 'direction' => 'ltr'),
|
||||
'cs' => array('q' => 0.5, 'lang' => 'cs', 'name' => 'Czech', 'direction' => 'ltr'),
|
||||
'de' => array('q' => 0.8, 'lang' => 'de', 'name' => 'German', 'direction' => 'ltr'),
|
||||
'el' => array('q' => 0.1, 'lang' => 'el', 'name' => 'Greek', 'direction' => 'ltr'),
|
||||
'en-us' => array('q' => 1, 'lang' => 'en_US', 'name' => 'English (US)', 'direction' => 'ltr'),
|
||||
'en-us' => array('q' => 1, 'lang' => 'en', 'name' => 'English (US)', 'direction' => 'ltr'),
|
||||
'en-gb' => array('q' => 1, 'lang' => 'en_GB', 'name' => 'English (British)', 'direction' => 'ltr'),
|
||||
'en' => array('q' => 1, 'lang' => 'en_US', 'name' => 'English (US)', 'direction' => 'ltr'),
|
||||
'en' => array('q' => 1, 'lang' => 'en', 'name' => 'English (US)', 'direction' => 'ltr'),
|
||||
'es' => array('q' => 1, 'lang' => 'es', 'name' => 'Spanish', 'direction' => 'ltr'),
|
||||
'fi' => array('q' => 1, 'lang' => 'fi', 'name' => 'Finnish', 'direction' => 'ltr'),
|
||||
'fr-fr' => array('q' => 1, 'lang' => 'fr_FR', 'name' => 'French', 'direction' => 'ltr'),
|
||||
'he' => array('q' => 0.5, 'lang' => 'he_IL', 'name' => 'Hebrew', 'direction' => 'rtl'),
|
||||
'it' => array('q' => 1, 'lang' => 'it_IT', 'name' => 'Italian', 'direction' => 'ltr'),
|
||||
'jp' => array('q' => 0.5, 'lang' => 'ja_JP', 'name' => 'Japanese', 'direction' => 'ltr'),
|
||||
'ko' => array('q' => 0.9, 'lang' => 'ko_KR', 'name' => 'Korean', 'direction' => 'ltr'),
|
||||
'mk' => array('q' => 0.5, 'lang' => 'mk_MK', 'name' => 'Macedonian', 'direction' => 'ltr'),
|
||||
'nb' => array('q' => 0.1, 'lang' => 'nb_NO', 'name' => 'Norwegian (Bokmål)', 'direction' => 'ltr'),
|
||||
'no' => array('q' => 0.1, 'lang' => 'nb_NO', 'name' => 'Norwegian (Bokmål)', 'direction' => 'ltr'),
|
||||
'nn' => array('q' => 1, 'lang' => 'nn_NO', 'name' => 'Norwegian (Nynorsk)', 'direction' => 'ltr'),
|
||||
'nl' => array('q' => 0.5, 'lang' => 'nl_NL', 'name' => 'Dutch', 'direction' => 'ltr'),
|
||||
'pl' => array('q' => 0.5, 'lang' => 'pl_PL', 'name' => 'Polish', 'direction' => 'ltr'),
|
||||
'fr-fr' => array('q' => 1, 'lang' => 'fr', 'name' => 'French', 'direction' => 'ltr'),
|
||||
'ga' => array('q' => 0.5, 'lang' => 'ga', 'name' => 'Galician', 'direction' => 'ltr'),
|
||||
'he' => array('q' => 0.5, 'lang' => 'he', 'name' => 'Hebrew', 'direction' => 'rtl'),
|
||||
'it' => array('q' => 1, 'lang' => 'it', 'name' => 'Italian', 'direction' => 'ltr'),
|
||||
'jp' => array('q' => 0.5, 'lang' => 'ja', 'name' => 'Japanese', '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'),
|
||||
'no' => array('q' => 0.1, 'lang' => 'nb', 'name' => 'Norwegian (Bokmål)', 'direction' => 'ltr'),
|
||||
'nn' => array('q' => 1, 'lang' => 'nn', 'name' => 'Norwegian (Nynorsk)', 'direction' => 'ltr'),
|
||||
'nl' => array('q' => 0.5, 'lang' => 'nl', 'name' => 'Dutch', 'direction' => 'ltr'),
|
||||
'pl' => array('q' => 0.5, 'lang' => 'pl', 'name' => 'Polish', 'direction' => 'ltr'),
|
||||
'pt' => array('q' => 0.1, 'lang' => 'pt', 'name' => 'Portuguese', 'direction' => 'ltr'),
|
||||
'pt-br' => array('q' => 0.9, 'lang' => 'pt_BR', 'name' => 'Portuguese Brazil', 'direction' => 'ltr'),
|
||||
'ru' => array('q' => 0.9, 'lang' => 'ru_RU', 'name' => 'Russian', 'direction' => 'ltr'),
|
||||
'sv' => array('q' => 0.8, 'lang' => 'sv_SE', 'name' => 'Swedish', 'direction' => 'ltr'),
|
||||
'te' => array('q' => 0.3, 'lang' => 'te_IN', 'name' => 'Telugu', 'direction' => 'ltr'),
|
||||
'tr' => array('q' => 0.5, 'lang' => 'tr_TR', 'name' => 'Turkish', 'direction' => 'ltr'),
|
||||
'uk' => array('q' => 1, 'lang' => 'uk_UA', 'name' => 'Ukrainian', 'direction' => 'ltr'),
|
||||
'vi' => array('q' => 0.8, 'lang' => 'vi_VN', 'name' => 'Vietnamese', 'direction' => 'ltr'),
|
||||
'ru' => array('q' => 0.9, 'lang' => 'ru', 'name' => 'Russian', 'direction' => 'ltr'),
|
||||
'sv' => array('q' => 0.8, 'lang' => 'sv', 'name' => 'Swedish', 'direction' => 'ltr'),
|
||||
'te' => array('q' => 0.3, 'lang' => 'te', 'name' => 'Telugu', 'direction' => 'ltr'),
|
||||
'tr' => array('q' => 0.5, 'lang' => 'tr', 'name' => 'Turkish', 'direction' => 'ltr'),
|
||||
'uk' => array('q' => 1, 'lang' => 'uk', 'name' => 'Ukrainian', 'direction' => 'ltr'),
|
||||
'vi' => array('q' => 0.8, 'lang' => 'vi', 'name' => 'Vietnamese', 'direction' => 'ltr'),
|
||||
'zh-cn' => array('q' => 0.9, 'lang' => 'zh_CN', 'name' => 'Chinese (Simplified)', 'direction' => 'ltr'),
|
||||
'zh-hant' => array('q' => 0.2, 'lang' => 'zh_TW', 'name' => 'Chinese (Taiwanese)', 'direction' => 'ltr'),
|
||||
);
|
||||
|
72
lib/mail.php
72
lib/mail.php
@ -640,75 +640,3 @@ function mail_notify_attn($user, $notice)
|
||||
mail_to_user($user, $subject, $body);
|
||||
}
|
||||
|
||||
/**
|
||||
* Send a mail message to notify a user that her Twitter bridge link
|
||||
* has stopped working, and therefore has been removed. This can
|
||||
* happen when the user changes her Twitter password, or otherwise
|
||||
* revokes access.
|
||||
*
|
||||
* @param User $user user whose Twitter bridge link has been removed
|
||||
*
|
||||
* @return boolean success flag
|
||||
*/
|
||||
|
||||
function mail_twitter_bridge_removed($user)
|
||||
{
|
||||
common_init_locale($user->language);
|
||||
|
||||
$profile = $user->getProfile();
|
||||
|
||||
$subject = sprintf(_('Your Twitter bridge has been disabled.'));
|
||||
|
||||
$site_name = common_config('site', 'name');
|
||||
|
||||
$body = sprintf(_('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" .
|
||||
'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"),
|
||||
$profile->getBestName(),
|
||||
common_local_url('twittersettings'),
|
||||
common_config('site', 'name'));
|
||||
|
||||
common_init_locale();
|
||||
return mail_to_user($user, $subject, $body);
|
||||
}
|
||||
|
||||
/**
|
||||
* Send a mail message to notify a user that her Facebook Application
|
||||
* access has been removed.
|
||||
*
|
||||
* @param User $user user whose Facebook app link has been removed
|
||||
*
|
||||
* @return boolean success flag
|
||||
*/
|
||||
|
||||
function mail_facebook_app_removed($user)
|
||||
{
|
||||
common_init_locale($user->language);
|
||||
|
||||
$profile = $user->getProfile();
|
||||
|
||||
$site_name = common_config('site', 'name');
|
||||
|
||||
$subject = sprintf(
|
||||
_('Your %1$s Facebook application access has been disabled.',
|
||||
$site_name));
|
||||
|
||||
$body = sprintf(_("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\nRegards,\n\n%2\$s"),
|
||||
$user->nickname, $site_name);
|
||||
|
||||
common_init_locale();
|
||||
return mail_to_user($user, $subject, $body);
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
@ -87,7 +87,7 @@ function omb_broadcast_notice($notice)
|
||||
common_debug('Posting to ' . $rp->postnoticeurl, __FILE__);
|
||||
|
||||
/* Post notice. */
|
||||
$service = new Laconica_OMB_Service_Consumer(
|
||||
$service = new StatusNet_OMB_Service_Consumer(
|
||||
array(OMB_ENDPOINT_POSTNOTICE => $rp->postnoticeurl));
|
||||
try {
|
||||
$service->setToken($rp->token, $rp->secret);
|
||||
|
@ -62,9 +62,15 @@ class ProfileList extends Widget
|
||||
|
||||
function show()
|
||||
{
|
||||
$this->startList();
|
||||
$cnt = $this->showProfiles();
|
||||
$this->endList();
|
||||
$cnt = 0;
|
||||
|
||||
if (Event::handle('StartProfileList', array($this))) {
|
||||
$this->startList();
|
||||
$cnt = $this->showProfiles();
|
||||
$this->endList();
|
||||
Event::handle('EndProfileList', array($this));
|
||||
}
|
||||
|
||||
return $cnt;
|
||||
}
|
||||
|
||||
@ -117,10 +123,19 @@ class ProfileListItem extends Widget
|
||||
|
||||
function show()
|
||||
{
|
||||
$this->startItem();
|
||||
$this->showProfile();
|
||||
$this->showActions();
|
||||
$this->endItem();
|
||||
if (Event::handle('StartProfileListItem', array($this))) {
|
||||
$this->startItem();
|
||||
if (Event::handle('StartProfileListItemProfile', array($this))) {
|
||||
$this->showProfile();
|
||||
Event::handle('EndProfileListItemProfile', array($this));
|
||||
}
|
||||
if (Event::handle('StartProfileListItemActions', array($this))) {
|
||||
$this->showActions();
|
||||
Event::handle('EndProfileListItemActions', array($this));
|
||||
}
|
||||
$this->endItem();
|
||||
Event::handle('EndProfileListItem', array($this));
|
||||
}
|
||||
}
|
||||
|
||||
function startItem()
|
||||
@ -132,11 +147,29 @@ class ProfileListItem extends Widget
|
||||
function showProfile()
|
||||
{
|
||||
$this->startProfile();
|
||||
$this->showAvatar();
|
||||
$this->showFullName();
|
||||
$this->showLocation();
|
||||
$this->showHomepage();
|
||||
$this->showBio();
|
||||
if (Event::handle('StartProfileListItemProfileElements', array($this))) {
|
||||
if (Event::handle('StartProfileListItemAvatar', array($this))) {
|
||||
$this->showAvatar();
|
||||
Event::handle('EndProfileListItemAvatar', array($this));
|
||||
}
|
||||
if (Event::handle('StartProfileListItemFullName', array($this))) {
|
||||
$this->showFullName();
|
||||
Event::handle('EndProfileListItemFullName', array($this));
|
||||
}
|
||||
if (Event::handle('StartProfileListItemLocation', array($this))) {
|
||||
$this->showLocation();
|
||||
Event::handle('EndProfileListItemLocation', array($this));
|
||||
}
|
||||
if (Event::handle('StartProfileListItemHomepage', array($this))) {
|
||||
$this->showHomepage();
|
||||
Event::handle('EndProfileListItemHomepage', array($this));
|
||||
}
|
||||
if (Event::handle('StartProfileListItemBio', array($this))) {
|
||||
$this->showBio();
|
||||
Event::handle('EndProfileListItemBio', array($this));
|
||||
}
|
||||
Event::handle('EndProfileListItemProfileElements', array($this));
|
||||
}
|
||||
$this->endProfile();
|
||||
}
|
||||
|
||||
@ -225,7 +258,10 @@ class ProfileListItem extends Widget
|
||||
function showActions()
|
||||
{
|
||||
$this->startActions();
|
||||
$this->showSubscribeButton();
|
||||
if (Event::handle('StartProfileListItemActionElements', array($this))) {
|
||||
$this->showSubscribeButton();
|
||||
Event::handle('EndProfileListItemActionElements', array($this));
|
||||
}
|
||||
$this->endActions();
|
||||
}
|
||||
|
||||
|
@ -27,6 +27,22 @@ define('CLAIM_TIMEOUT', 1200);
|
||||
define('QUEUE_HANDLER_MISS_IDLE', 10);
|
||||
define('QUEUE_HANDLER_HIT_IDLE', 0);
|
||||
|
||||
/**
|
||||
* Base class for queue handlers.
|
||||
*
|
||||
* As extensions of the Daemon class, each queue handler has the ability
|
||||
* to launch itself in the background, at which point it'll pass control
|
||||
* to the configured QueueManager class to poll for updates.
|
||||
*
|
||||
* Subclasses must override at least the following methods:
|
||||
* - transport
|
||||
* - start
|
||||
* - finish
|
||||
* - handle_notice
|
||||
*
|
||||
* Some subclasses will also want to override the idle handler:
|
||||
* - idle
|
||||
*/
|
||||
class QueueHandler extends Daemon
|
||||
{
|
||||
|
||||
@ -39,6 +55,14 @@ class QueueHandler extends Daemon
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* How many seconds a polling-based queue manager should wait between
|
||||
* checks for new items to handle.
|
||||
*
|
||||
* Defaults to 60 seconds; override to speed up or slow down.
|
||||
*
|
||||
* @return int timeout in seconds
|
||||
*/
|
||||
function timeout()
|
||||
{
|
||||
return 60;
|
||||
@ -54,24 +78,69 @@ class QueueHandler extends Daemon
|
||||
return strtolower($this->class_name().'.'.$this->get_id());
|
||||
}
|
||||
|
||||
/**
|
||||
* 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 null;
|
||||
}
|
||||
|
||||
/**
|
||||
* Initialization, run when the queue handler starts.
|
||||
* If this function indicates failure, the handler run will be aborted.
|
||||
*
|
||||
* @fixme run() will abort if this doesn't return true,
|
||||
* but some subclasses don't bother.
|
||||
* @return boolean true on success, false on failure
|
||||
*/
|
||||
function start()
|
||||
{
|
||||
}
|
||||
|
||||
/**
|
||||
* Cleanup, run when the queue handler ends.
|
||||
* If this function indicates failure, a warning will be logged.
|
||||
*
|
||||
* @fixme run() will throw warnings if this doesn't return true,
|
||||
* but many subclasses don't bother.
|
||||
* @return boolean true on success, false on failure
|
||||
*/
|
||||
function finish()
|
||||
{
|
||||
}
|
||||
|
||||
/**
|
||||
* Here's the meat of your queue handler -- you're handed a Notice
|
||||
* object, which you may do as you will with.
|
||||
*
|
||||
* If this function indicates failure, a warning will be logged
|
||||
* and the item is placed back in the queue to be re-run.
|
||||
*
|
||||
* @param Notice $notice
|
||||
* @return boolean true on success, false on failure
|
||||
*/
|
||||
function handle_notice($notice)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Setup and start of run loop for this queue handler as a daemon.
|
||||
* Most of the heavy lifting is passed on to the QueueManager's service()
|
||||
* method, which passes control back to our handle_notice() method for
|
||||
* each notice that comes in on the queue.
|
||||
*
|
||||
* Most of the time this won't need to be overridden in a subclass.
|
||||
*
|
||||
* @return boolean true on success, false on failure
|
||||
*/
|
||||
function run()
|
||||
{
|
||||
if (!$this->start()) {
|
||||
@ -100,6 +169,14 @@ class QueueHandler extends Daemon
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Called by QueueHandler after each handled item or empty polling cycle.
|
||||
* This is a good time to e.g. service your XMPP connection.
|
||||
*
|
||||
* Doesn't need to be overridden if there's no maintenance to do.
|
||||
*
|
||||
* @param int $timeout seconds to sleep if there's nothing to do
|
||||
*/
|
||||
function idle($timeout=0)
|
||||
{
|
||||
if ($timeout > 0) {
|
||||
|
@ -86,14 +86,6 @@ class Router
|
||||
|
||||
$m->connect('doc/:title', array('action' => 'doc'));
|
||||
|
||||
// facebook
|
||||
|
||||
$m->connect('facebook', array('action' => 'facebookhome'));
|
||||
$m->connect('facebook/index.php', array('action' => 'facebookhome'));
|
||||
$m->connect('facebook/settings.php', array('action' => 'facebooksettings'));
|
||||
$m->connect('facebook/invite.php', array('action' => 'facebookinvite'));
|
||||
$m->connect('facebook/remove', array('action' => 'facebookremove'));
|
||||
|
||||
// main stuff is repetitive
|
||||
|
||||
$main = array('login', 'logout', 'register', 'subscribe',
|
||||
|
@ -48,17 +48,6 @@ class UnQueueManager
|
||||
jabber_public_notice($notice);
|
||||
}
|
||||
break;
|
||||
case 'twitter':
|
||||
if ($this->_isLocal($notice)) {
|
||||
broadcast_twitter($notice);
|
||||
}
|
||||
break;
|
||||
case 'facebook':
|
||||
if ($this->_isLocal($notice)) {
|
||||
require_once INSTALLDIR . '/lib/facebookutil.php';
|
||||
return facebookBroadcastNotice($notice);
|
||||
}
|
||||
break;
|
||||
case 'ping':
|
||||
if ($this->_isLocal($notice)) {
|
||||
require_once INSTALLDIR . '/lib/ping.php';
|
||||
@ -77,7 +66,7 @@ class UnQueueManager
|
||||
break;
|
||||
default:
|
||||
if (Event::handle('UnqueueHandleNotice', array(&$notice, $queue))) {
|
||||
throw ServerException("UnQueueManager: Unknown queue: $queue");
|
||||
throw new ServerException("UnQueueManager: Unknown queue: $queue");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
20
lib/util.php
20
lib/util.php
@ -51,13 +51,23 @@ function common_init_locale($language=null)
|
||||
function common_init_language()
|
||||
{
|
||||
mb_internal_encoding('UTF-8');
|
||||
|
||||
// gettext seems very picky... We first need to setlocale()
|
||||
// to a locale which _does_ exist on the system, and _then_
|
||||
// we can set in another locale that may not be set up
|
||||
// (say, ga_ES for Galego/Galician) it seems to take it.
|
||||
common_init_locale("en_US");
|
||||
|
||||
$language = common_language();
|
||||
// So we don't have to make people install the gettext locales
|
||||
$locale_set = common_init_locale($language);
|
||||
bindtextdomain("statusnet", common_config('site','locale_path'));
|
||||
setlocale(LC_CTYPE, 'C');
|
||||
|
||||
// So we don't have to make people install the gettext locales
|
||||
$path = common_config('site','locale_path');
|
||||
bindtextdomain("statusnet", $path);
|
||||
bind_textdomain_codeset("statusnet", "UTF-8");
|
||||
textdomain("statusnet");
|
||||
setlocale(LC_CTYPE, 'C');
|
||||
|
||||
if(!$locale_set) {
|
||||
common_log(LOG_INFO, 'Language requested:' . $language . ' - locale could not be set. Perhaps that system locale is not installed.', __FILE__);
|
||||
}
|
||||
@ -391,7 +401,7 @@ function common_render_content($text, $notice)
|
||||
{
|
||||
$r = common_render_text($text);
|
||||
$id = $notice->profile_id;
|
||||
$r = preg_replace('/(^|[\s\.\,\:\;]+)@([A-Za-z0-9]{1,64})/e', "'\\1@'.common_at_link($id, '\\2')", $r);
|
||||
$r = preg_replace('/(^|\s+)@(['.NICKNAME_FMT.']{1,64})/e', "'\\1@'.common_at_link($id, '\\2')", $r);
|
||||
$r = preg_replace('/^T ([A-Z0-9]{1,64}) /e', "'T '.common_at_link($id, '\\1').' '", $r);
|
||||
$r = preg_replace('/(^|[\s\.\,\:\;]+)@#([A-Za-z0-9]{1,64})/e', "'\\1@#'.common_at_hash_link($id, '\\2')", $r);
|
||||
$r = preg_replace('/(^|[\s\.\,\:\;]+)!([A-Za-z0-9]{1,64})/e', "'\\1!'.common_group_link($id, '\\2')", $r);
|
||||
@ -896,8 +906,6 @@ function common_broadcast_notice($notice, $remote=false)
|
||||
function common_enqueue_notice($notice)
|
||||
{
|
||||
static $localTransports = array('omb',
|
||||
'twitter',
|
||||
'facebook',
|
||||
'ping');
|
||||
|
||||
static $allTransports = array('sms', 'plugin');
|
||||
|
BIN
locale/bg/LC_MESSAGES/statusnet.mo
Normal file
BIN
locale/bg/LC_MESSAGES/statusnet.mo
Normal file
Binary file not shown.
Binary file not shown.
BIN
locale/cs/LC_MESSAGES/statusnet.mo
Normal file
BIN
locale/cs/LC_MESSAGES/statusnet.mo
Normal file
Binary file not shown.
Binary file not shown.
BIN
locale/de/LC_MESSAGES/statusnet.mo
Normal file
BIN
locale/de/LC_MESSAGES/statusnet.mo
Normal file
Binary file not shown.
Binary file not shown.
BIN
locale/el/LC_MESSAGES/statusnet.mo
Normal file
BIN
locale/el/LC_MESSAGES/statusnet.mo
Normal file
Binary file not shown.
@ -3,24 +3,24 @@
|
||||
# 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: 2009-01-25 16:24+0000\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"PO-Revision-Date: 2009-09-08 20:21+0000\n"
|
||||
"Last-Translator: Giannis Pappas <papasj@mailinator.com>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Generator: Pootle 1.1.0\n"
|
||||
|
||||
#: ../actions/noticesearchrss.php:64 actions/noticesearchrss.php:68
|
||||
#: actions/noticesearchrss.php:88
|
||||
#, php-format
|
||||
msgid " Search Stream for \"%s\""
|
||||
msgstr ""
|
||||
msgstr "Αναζήτηση ροής για \"%s\""
|
||||
|
||||
#: ../actions/finishopenidlogin.php:82 ../actions/register.php:191
|
||||
#: actions/finishopenidlogin.php:88 actions/register.php:205
|
||||
@ -28,11 +28,13 @@ msgstr ""
|
||||
msgid ""
|
||||
" except this private data: password, email address, IM address, phone number."
|
||||
msgstr ""
|
||||
"εκτός από τα εξής προσωπικά δεδομένα: κωδικός πρόσβασης, διεύθυνση email, "
|
||||
"διεύθυνση IM, τηλεφωνικό νούμερο."
|
||||
|
||||
#: ../actions/showstream.php:400 ../lib/stream.php:109
|
||||
#: actions/showstream.php:418 lib/mailbox.php:164 lib/stream.php:76
|
||||
msgid " from "
|
||||
msgstr ""
|
||||
msgstr "από"
|
||||
|
||||
#: ../actions/twitapistatuses.php:478 actions/twitapistatuses.php:412
|
||||
#: actions/twitapistatuses.php:347
|
||||
@ -108,7 +110,7 @@ msgstr ""
|
||||
#: actions/invite.php:99 actions/invite.php:123 actions/invite.php:131
|
||||
#, php-format
|
||||
msgid "%s (%s)"
|
||||
msgstr ""
|
||||
msgstr "%s (%s)"
|
||||
|
||||
#: ../actions/publicrss.php:62 actions/publicrss.php:48
|
||||
#: actions/publicrss.php:90
|
||||
@ -134,13 +136,14 @@ msgstr ""
|
||||
#: ../lib/mail.php:206 lib/mail.php:212 lib/mail.php:411
|
||||
#, php-format
|
||||
msgid "%s status"
|
||||
msgstr ""
|
||||
msgstr "Κατάσταση του/της %s"
|
||||
|
||||
#: ../actions/twitapistatuses.php:338 actions/twitapistatuses.php:265
|
||||
#: actions/twitapistatuses.php:199
|
||||
#, php-format
|
||||
#, fuzzy
|
||||
msgid "%s timeline"
|
||||
msgstr ""
|
||||
msgstr "Χρονοδιάγραμμα του χρήστη %s"
|
||||
|
||||
#: ../actions/twitapistatuses.php:52 actions/twitapistatuses.php:52
|
||||
#: actions/twitapistatuses.php:36
|
||||
@ -153,18 +156,25 @@ msgid ""
|
||||
"(You should receive a message by email momentarily, with instructions on how "
|
||||
"to confirm your email address.)"
|
||||
msgstr ""
|
||||
"(Σύντομα θα λάβετε μέσω ηλεκτρονικού ταχυδρομείου ένα μήνυμα με οδηγίες για "
|
||||
"την επιβεβαίωση της ηλεκτρονικής σας διεύθυνσης.)"
|
||||
|
||||
#: ../lib/util.php:257 lib/util.php:273 lib/action.php:605
|
||||
#, php-format
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
"**%%site.name%%** is a microblogging service brought to you by [%%site."
|
||||
"broughtby%%](%%site.broughtbyurl%%). "
|
||||
msgstr ""
|
||||
"To **%%site.name%%** είναι μία υπηρεσία microblogging (μικρο-ιστολογίου) που "
|
||||
"έφερε κοντά σας το [%%site.broughtby%%](%%site.broughtbyurl%%). "
|
||||
|
||||
#: ../lib/util.php:259 lib/util.php:275 lib/action.php:607
|
||||
#, php-format
|
||||
#, fuzzy
|
||||
msgid "**%%site.name%%** is a microblogging service. "
|
||||
msgstr ""
|
||||
"Το **%%site.name%%** είναι μία υπηρεσία microblogging (μικρο-ιστολογίου). "
|
||||
|
||||
#: ../lib/util.php:274 lib/util.php:290
|
||||
msgid ". Contributors should be attributed by full name or nickname."
|
||||
@ -175,11 +185,11 @@ msgstr ""
|
||||
#: actions/finishopenidlogin.php:101 actions/profilesettings.php:100
|
||||
#: lib/groupeditform.php:139
|
||||
msgid "1-64 lowercase letters or numbers, no punctuation or spaces"
|
||||
msgstr ""
|
||||
msgstr "1-64 μικρά γράμματα ή αριθμοί, χωρίς σημεία στίξης ή κενά"
|
||||
|
||||
#: ../actions/register.php:152 actions/register.php:166
|
||||
msgid "1-64 lowercase letters or numbers, no punctuation or spaces. Required."
|
||||
msgstr ""
|
||||
msgstr "1-64 μικρά γράμματα ή αριθμοί, χωρίς σημεία στίξης ή κενά. Απαραίτητο."
|
||||
|
||||
#: ../actions/password.php:42 actions/profilesettings.php:181
|
||||
#: actions/passwordsettings.php:102
|
||||
@ -194,7 +204,7 @@ msgstr "6 ή περισσότεροι χαρακτήρες και μην το ξ
|
||||
#: ../actions/register.php:154 actions/register.php:168
|
||||
#: actions/register.php:373
|
||||
msgid "6 or more characters. Required."
|
||||
msgstr ""
|
||||
msgstr "6 ή περισσότεροι χαρακτήρες. Απαραίτητο."
|
||||
|
||||
#: ../actions/imsettings.php:197 actions/imsettings.php:205
|
||||
#, php-format
|
||||
@ -202,18 +212,26 @@ msgid ""
|
||||
"A confirmation code was sent to the IM address you added. You must approve %"
|
||||
"s for sending messages to you."
|
||||
msgstr ""
|
||||
"Έχει αποσταλεί ένας κωδικός επιβεβαίωσης στην διεύθυνση IM που προσθέσατε. "
|
||||
"Πρέπει να αποδεχτείτε τον/την %s για αποστολή μηνυμάτων προς εσας. "
|
||||
|
||||
#: ../actions/emailsettings.php:213 actions/emailsettings.php:231
|
||||
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 ""
|
||||
"Έχει αποσταλεί ένας κωδικός επιβεβαίωσης στην διεύθυνση email που "
|
||||
"προσθέσατε. Ελέγξτε τα εισερχόμενα (και τον φάκελο ανεπιθύμητης "
|
||||
"αλληλογραφίας) για τον κωδικό και για το πως να τον χρησιμοποιήσετε."
|
||||
|
||||
#: ../actions/smssettings.php:216 actions/smssettings.php:224
|
||||
msgid ""
|
||||
"A confirmation code was sent to the phone number you added. Check your inbox "
|
||||
"(and spam box!) for the code and instructions on how to use it."
|
||||
msgstr ""
|
||||
"Έχει αποσταλεί ένας κωδικός επιβεβαίωσης στο τηλεφωνικό νούμερο που "
|
||||
"προσθέσατε. Ελέγξτε τα εισερχόμενα (και τον φάκελο ανεπιθύμητης "
|
||||
"αλληλογραφίας) για τον κωδικό και για το πως να τον χρησιμοποιήσετε."
|
||||
|
||||
#: ../actions/twitapiaccount.php:49 ../actions/twitapihelp.php:45
|
||||
#: ../actions/twitapistatuses.php:88 ../actions/twitapistatuses.php:259
|
||||
@ -235,7 +253,7 @@ msgstr ""
|
||||
#: actions/twitapistatuses.php:402 actions/twitapistatuses.php:429
|
||||
#: actions/twitapiusers.php:32
|
||||
msgid "API method not found!"
|
||||
msgstr ""
|
||||
msgstr "Η μέθοδος του ΑΡΙ δε βρέθηκε!"
|
||||
|
||||
#: ../actions/twitapiaccount.php:57 ../actions/twitapiaccount.php:113
|
||||
#: ../actions/twitapiaccount.php:119 ../actions/twitapiblocks.php:28
|
||||
@ -258,7 +276,7 @@ msgstr ""
|
||||
#: actions/twitapinotifications.php:31 actions/twitapinotifications.php:37
|
||||
#: actions/twitapistatuses.php:562
|
||||
msgid "API method under construction."
|
||||
msgstr ""
|
||||
msgstr "Η μέθοδος του ΑΡΙ είναι υπό κατασκευή."
|
||||
|
||||
#: ../lib/util.php:324 lib/util.php:340 lib/action.php:568
|
||||
msgid "About"
|
||||
@ -287,7 +305,7 @@ msgstr "Προσθήκη OpenID"
|
||||
#: ../lib/settingsaction.php:97 lib/settingsaction.php:91
|
||||
#: lib/accountsettingsaction.php:117
|
||||
msgid "Add or remove OpenIDs"
|
||||
msgstr ""
|
||||
msgstr "Προσθήκη ή διαγραφή OpenIDs"
|
||||
|
||||
#: ../actions/emailsettings.php:38 ../actions/imsettings.php:39
|
||||
#: ../actions/smssettings.php:39 actions/emailsettings.php:39
|
||||
@ -299,24 +317,24 @@ msgstr "Διεύθυνση"
|
||||
|
||||
#: ../actions/invite.php:131 actions/invite.php:139 actions/invite.php:176
|
||||
msgid "Addresses of friends to invite (one per line)"
|
||||
msgstr ""
|
||||
msgstr "Διευθύνσεις φίλων σου που θες να προσκαλέσεις (μία ανά γραμμή)"
|
||||
|
||||
#: ../actions/showstream.php:273 actions/showstream.php:288
|
||||
#: actions/showstream.php:422
|
||||
msgid "All subscriptions"
|
||||
msgstr ""
|
||||
msgstr "Όλες οι συνδρομές"
|
||||
|
||||
#: ../actions/publicrss.php:64 actions/publicrss.php:50
|
||||
#: actions/publicrss.php:92
|
||||
#, php-format
|
||||
msgid "All updates for %s"
|
||||
msgstr ""
|
||||
msgstr "Όλες οι ενημερώσεις για %s"
|
||||
|
||||
#: ../actions/noticesearchrss.php:66 actions/noticesearchrss.php:70
|
||||
#: actions/noticesearchrss.php:90
|
||||
#, php-format
|
||||
msgid "All updates matching search term \"%s\""
|
||||
msgstr ""
|
||||
msgstr "Όλες οι ενημερώσεις που ταιριάζουν με τον όρο αναζήτησης \"%s\""
|
||||
|
||||
#: ../actions/finishopenidlogin.php:29 ../actions/login.php:31
|
||||
#: ../actions/openidlogin.php:29 ../actions/register.php:30
|
||||
@ -325,31 +343,34 @@ msgstr ""
|
||||
#: actions/finishopenidlogin.php:34 actions/login.php:77
|
||||
#: actions/openidlogin.php:30 actions/register.php:92
|
||||
msgid "Already logged in."
|
||||
msgstr ""
|
||||
msgstr "Ήδη συνδεδεμένος."
|
||||
|
||||
#: ../lib/subs.php:42 lib/subs.php:42 lib/subs.php:49
|
||||
msgid "Already subscribed!."
|
||||
msgstr ""
|
||||
msgstr "Είσαι ήδη συνδρομητής!."
|
||||
|
||||
#: ../actions/deletenotice.php:54 actions/deletenotice.php:55
|
||||
#: actions/deletenotice.php:113
|
||||
msgid "Are you sure you want to delete this notice?"
|
||||
msgstr ""
|
||||
msgstr "Είσαι σίγουρος ότι θες να διαγράψεις αυτό το μήνυμα;"
|
||||
|
||||
#: ../actions/userauthorization.php:77 actions/userauthorization.php:83
|
||||
#: actions/userauthorization.php:81
|
||||
msgid "Authorize subscription"
|
||||
msgstr ""
|
||||
msgstr "Εξουσιοδοτημένη συνδρομή"
|
||||
|
||||
#: ../actions/login.php:104 ../actions/register.php:178
|
||||
#: actions/register.php:192
|
||||
msgid "Automatically login in the future; not for shared computers!"
|
||||
msgstr ""
|
||||
msgstr "Αυτόματη σύνδεση στο μέλλον. ΟΧΙ για κοινόχρηστους υπολογιστές!"
|
||||
|
||||
#: ../actions/profilesettings.php:65 actions/profilesettings.php:98
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
"Automatically subscribe to whoever subscribes to me (best for non-humans)"
|
||||
msgstr ""
|
||||
"Αυτόματα γίνε συνδρομητής σε όσους γίνονται συνδρομητές σε μένα (χρήση "
|
||||
"κυρίως από λογισμικό και όχι ανθρώπους)"
|
||||
|
||||
#: ../actions/avatar.php:32 ../lib/settingsaction.php:90
|
||||
#: actions/profilesettings.php:34 actions/avatarsettings.php:65
|
||||
@ -364,25 +385,33 @@ msgstr ""
|
||||
|
||||
#: ../actions/imsettings.php:55 actions/imsettings.php:56
|
||||
#, php-format
|
||||
#, fuzzy
|
||||
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 στη "
|
||||
"λίστα φίλων?)"
|
||||
|
||||
#: ../actions/emailsettings.php:54 actions/emailsettings.php:55
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
"Awaiting confirmation on this address. Check your inbox (and spam box!) for "
|
||||
"a message with further instructions."
|
||||
msgstr ""
|
||||
"Αναμένωντας επιβεβαίωση σε αυτή τη διεύθυνση. Έλεγξε το mail σου (και το "
|
||||
"φάκελο spam!) για μήνυμα με περαιτέρω οδηγίες. "
|
||||
|
||||
#: ../actions/smssettings.php:58 actions/smssettings.php:58
|
||||
#: actions/smssettings.php:111
|
||||
msgid "Awaiting confirmation on this phone number."
|
||||
msgstr ""
|
||||
msgstr "Αναμένωντας επιβεβαίωση σ' αυτό το νούμερο τηλεφώνου."
|
||||
|
||||
#: ../lib/util.php:1318 lib/util.php:1452
|
||||
#, fuzzy
|
||||
msgid "Before »"
|
||||
msgstr ""
|
||||
msgstr "Προηγούμενο »"
|
||||
|
||||
#: ../actions/profilesettings.php:49 ../actions/register.php:170
|
||||
#: actions/profilesettings.php:82 actions/register.php:184
|
||||
@ -399,8 +428,9 @@ msgid "Bio is too long (max 140 chars)."
|
||||
msgstr "Το βιογραφικό είναι πολύ μεγάλο (μέγιστο 140 χαρακτ.)."
|
||||
|
||||
#: ../lib/deleteaction.php:41 lib/deleteaction.php:41 lib/deleteaction.php:69
|
||||
#, fuzzy
|
||||
msgid "Can't delete this notice."
|
||||
msgstr ""
|
||||
msgstr "Αδυναμία διαγραφής αυτού του μηνύματος."
|
||||
|
||||
#: ../actions/updateprofile.php:119 actions/updateprofile.php:120
|
||||
#: actions/updateprofile.php:123
|
||||
@ -424,17 +454,17 @@ msgstr "Ακύρωση"
|
||||
|
||||
#: ../lib/openid.php:121 lib/openid.php:121 lib/openid.php:130
|
||||
msgid "Cannot instantiate OpenID consumer object."
|
||||
msgstr ""
|
||||
msgstr "Απέτυχη η χρήση αντικειμένου OpenID consumer."
|
||||
|
||||
#: ../actions/imsettings.php:163 actions/imsettings.php:171
|
||||
#: actions/imsettings.php:286
|
||||
msgid "Cannot normalize that Jabber ID"
|
||||
msgstr ""
|
||||
msgstr "Αδυναμία κανονικοποίησης του Jabber ID"
|
||||
|
||||
#: ../actions/emailsettings.php:181 actions/emailsettings.php:199
|
||||
#: actions/emailsettings.php:311
|
||||
msgid "Cannot normalize that email address"
|
||||
msgstr ""
|
||||
msgstr "Αδυναμία κανονικοποίησης αυτής της email διεύθυνσης"
|
||||
|
||||
#: ../actions/password.php:45 actions/profilesettings.php:184
|
||||
#: actions/passwordsettings.php:110
|
||||
@ -453,12 +483,12 @@ msgstr "Αλλαγή κωδικού"
|
||||
|
||||
#: ../lib/settingsaction.php:94 lib/accountsettingsaction.php:111
|
||||
msgid "Change your password"
|
||||
msgstr ""
|
||||
msgstr "Αλλάξτε τον κωδικό σας"
|
||||
|
||||
#: ../lib/settingsaction.php:85 lib/settingsaction.php:85
|
||||
#: lib/accountsettingsaction.php:105
|
||||
msgid "Change your profile settings"
|
||||
msgstr ""
|
||||
msgstr "Αλλάξτε τις ρυθμίσεις του προφίλ σας"
|
||||
|
||||
#: ../actions/password.php:43 ../actions/recoverpassword.php:181
|
||||
#: ../actions/register.php:155 ../actions/smssettings.php:65
|
||||
@ -494,6 +524,7 @@ msgstr "Ο κωδικός επιβεβαίωσης δεν βρέθηκε."
|
||||
|
||||
#: ../actions/register.php:202
|
||||
#, php-format
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
"Congratulations, %s! And welcome to %%%%site.name%%%%. From here, you may "
|
||||
"want to...\n"
|
||||
@ -510,6 +541,22 @@ msgid ""
|
||||
"\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/finishopenidlogin.php:91 actions/finishopenidlogin.php:97
|
||||
#: actions/finishopenidlogin.php:119 lib/action.php:330
|
||||
@ -528,29 +575,29 @@ msgstr "Επικοινωνία"
|
||||
#: ../lib/openid.php:178 lib/openid.php:178 lib/openid.php:187
|
||||
#, php-format
|
||||
msgid "Could not create OpenID form: %s"
|
||||
msgstr ""
|
||||
msgstr "Αδυναμία δημιουργίας φόρμας OpenID: %s "
|
||||
|
||||
#: ../actions/twitapifriendships.php:60 ../actions/twitapifriendships.php:76
|
||||
#: actions/twitapifriendships.php:60 actions/twitapifriendships.php:76
|
||||
#: actions/twitapifriendships.php:48 actions/twitapifriendships.php:64
|
||||
#, php-format
|
||||
msgid "Could not follow user: %s is already on your list."
|
||||
msgstr ""
|
||||
msgstr "Δε μπορώ να ακολουθήσω το χρήστη: ο χρήστης %s είναι ήδη στη λίστα σου."
|
||||
|
||||
#: ../actions/twitapifriendships.php:53 actions/twitapifriendships.php:53
|
||||
#: actions/twitapifriendships.php:41
|
||||
msgid "Could not follow user: User not found."
|
||||
msgstr ""
|
||||
msgstr "Δε μπορώ να ακολουθήσω το χρήστη: ο χρήστης δε βρέθηκε."
|
||||
|
||||
#: ../lib/openid.php:160 lib/openid.php:160 lib/openid.php:169
|
||||
#, php-format
|
||||
msgid "Could not redirect to server: %s"
|
||||
msgstr ""
|
||||
msgstr "Αδυναμία ανακατεύθηνσης στο διακομιστή: %s"
|
||||
|
||||
#: ../actions/updateprofile.php:162 actions/updateprofile.php:163
|
||||
#: actions/updateprofile.php:166
|
||||
msgid "Could not save avatar info"
|
||||
msgstr ""
|
||||
msgstr "Δε μπόρεσα να σώσω την πληροφορία του avatar"
|
||||
|
||||
#: ../actions/updateprofile.php:155 actions/updateprofile.php:156
|
||||
#: actions/updateprofile.php:159
|
||||
@ -559,21 +606,21 @@ msgstr "Αδύνατη η αποθήκευση των νέων πληροφορ
|
||||
|
||||
#: ../lib/subs.php:54 lib/subs.php:61 lib/subs.php:72
|
||||
msgid "Could not subscribe other to you."
|
||||
msgstr ""
|
||||
msgstr "Δεν επιτρέπεται να κάνεις συνδρομητές του λογαριασμού σου άλλους."
|
||||
|
||||
#: ../lib/subs.php:46 lib/subs.php:46 lib/subs.php:57
|
||||
msgid "Could not subscribe."
|
||||
msgstr ""
|
||||
msgstr "Απέτυχε η συνδρομή."
|
||||
|
||||
#: ../actions/recoverpassword.php:102 actions/recoverpassword.php:105
|
||||
#: actions/recoverpassword.php:111
|
||||
msgid "Could not update user with confirmed email address."
|
||||
msgstr ""
|
||||
msgstr "Απέτυχε η ενημέρωση χρήστη μέσω επιβεβαιωμένης email διεύθυνσης."
|
||||
|
||||
#: ../actions/finishremotesubscribe.php:99
|
||||
#: actions/finishremotesubscribe.php:101 actions/finishremotesubscribe.php:114
|
||||
msgid "Couldn't convert request tokens to access tokens."
|
||||
msgstr ""
|
||||
msgstr "Απέτυχε η μετατροπή αιτούμενων tokens σε tokens πρόσβασης."
|
||||
|
||||
#: ../actions/confirmaddress.php:84 ../actions/emailsettings.php:234
|
||||
#: ../actions/imsettings.php:218 ../actions/smssettings.php:241
|
||||
@ -582,16 +629,16 @@ msgstr ""
|
||||
#: actions/confirmaddress.php:126 actions/emailsettings.php:375
|
||||
#: actions/imsettings.php:357 actions/smssettings.php:370
|
||||
msgid "Couldn't delete email confirmation."
|
||||
msgstr ""
|
||||
msgstr "Απέτυχε η διαγραφή email επιβεβαίωσης."
|
||||
|
||||
#: ../lib/subs.php:103 lib/subs.php:116 lib/subs.php:134
|
||||
msgid "Couldn't delete subscription."
|
||||
msgstr ""
|
||||
msgstr "Απέτυχε η διαγραφή συνδρομής."
|
||||
|
||||
#: ../actions/twitapistatuses.php:93 actions/twitapistatuses.php:98
|
||||
#: actions/twitapistatuses.php:84
|
||||
msgid "Couldn't find any statuses."
|
||||
msgstr ""
|
||||
msgstr "Απέτυχε η εύρεση οποιασδήποτε κατάστασης."
|
||||
|
||||
#: ../actions/remotesubscribe.php:127 actions/remotesubscribe.php:136
|
||||
#: actions/remotesubscribe.php:178
|
||||
@ -604,29 +651,29 @@ msgstr ""
|
||||
#: actions/emailsettings.php:337 actions/imsettings.php:311
|
||||
#: actions/smssettings.php:325
|
||||
msgid "Couldn't insert confirmation code."
|
||||
msgstr ""
|
||||
msgstr "Απέτυχε η εισαγωγή κωδικού επιβεβαίωσης."
|
||||
|
||||
#: ../actions/finishremotesubscribe.php:180
|
||||
#: actions/finishremotesubscribe.php:182 actions/finishremotesubscribe.php:218
|
||||
msgid "Couldn't insert new subscription."
|
||||
msgstr ""
|
||||
msgstr "Απέτυχε η εισαγωγή νέας συνδρομής."
|
||||
|
||||
#: ../actions/profilesettings.php:184 ../actions/twitapiaccount.php:96
|
||||
#: actions/profilesettings.php:299 actions/twitapiaccount.php:94
|
||||
#: actions/profilesettings.php:302 actions/twitapiaccount.php:81
|
||||
msgid "Couldn't save profile."
|
||||
msgstr "Αδύνατη η αποθήκευση του προφίλ."
|
||||
msgstr "Απέτυχε η αποθήκευση του προφίλ."
|
||||
|
||||
#: ../actions/profilesettings.php:161 actions/profilesettings.php:276
|
||||
#: actions/profilesettings.php:279
|
||||
msgid "Couldn't update user for autosubscribe."
|
||||
msgstr ""
|
||||
msgstr "Απέτυχε η ενημέρωση του χρήστη για την αυτόματη συνδρομή."
|
||||
|
||||
#: ../actions/emailsettings.php:280 ../actions/emailsettings.php:294
|
||||
#: actions/emailsettings.php:298 actions/emailsettings.php:312
|
||||
#: actions/emailsettings.php:440 actions/emailsettings.php:462
|
||||
msgid "Couldn't update user record."
|
||||
msgstr ""
|
||||
msgstr "Απέτυχε η ενημέρωση εγγραφής του χρήστη."
|
||||
|
||||
#: ../actions/confirmaddress.php:72 ../actions/emailsettings.php:156
|
||||
#: ../actions/emailsettings.php:259 ../actions/imsettings.php:138
|
||||
@ -642,7 +689,7 @@ msgstr ""
|
||||
#: actions/profilesettings.php:259 actions/smssettings.php:266
|
||||
#: actions/smssettings.php:408
|
||||
msgid "Couldn't update user."
|
||||
msgstr ""
|
||||
msgstr "Απέτυχε η ενημέρωση του χρήστη."
|
||||
|
||||
#: ../actions/finishopenidlogin.php:84 actions/finishopenidlogin.php:90
|
||||
#: actions/finishopenidlogin.php:112
|
||||
@ -661,23 +708,24 @@ msgstr "Δημιουργία νέου λογαριασμού"
|
||||
|
||||
#: ../actions/finishopenidlogin.php:191 actions/finishopenidlogin.php:197
|
||||
#: actions/finishopenidlogin.php:231
|
||||
#, fuzzy
|
||||
msgid "Creating new account for OpenID that already has a user."
|
||||
msgstr ""
|
||||
msgstr "Μετατροπή υπάρχοντος λογαριασμού σε λογαριασμό OpenID."
|
||||
|
||||
#: ../actions/imsettings.php:45 actions/imsettings.php:46
|
||||
#: actions/imsettings.php:100
|
||||
msgid "Current confirmed Jabber/GTalk address."
|
||||
msgstr ""
|
||||
msgstr "Τρέχουσα επιβεβαιωμένη Jabber/GTalk διεύθυνση."
|
||||
|
||||
#: ../actions/smssettings.php:46 actions/smssettings.php:46
|
||||
#: actions/smssettings.php:100
|
||||
msgid "Current confirmed SMS-enabled phone number."
|
||||
msgstr ""
|
||||
msgstr "Τρέχων επιβεβαιωμένο, μέσω SMS, νούμερο κινητού τηλεφώνου."
|
||||
|
||||
#: ../actions/emailsettings.php:44 actions/emailsettings.php:45
|
||||
#: actions/emailsettings.php:99
|
||||
msgid "Current confirmed email address."
|
||||
msgstr ""
|
||||
msgstr "Τρέχουσα επιβεβαιωμένη email διεύθυνση."
|
||||
|
||||
#: ../actions/showstream.php:356 actions/showstream.php:367
|
||||
msgid "Currently"
|
||||
@ -686,40 +734,40 @@ msgstr ""
|
||||
#: ../classes/Notice.php:72 classes/Notice.php:86 classes/Notice.php:91
|
||||
#, php-format
|
||||
msgid "DB error inserting hashtag: %s"
|
||||
msgstr ""
|
||||
msgstr "Σφάλμα στη βάση δεδομένων κατά την εισαγωγή hashtag: %s"
|
||||
|
||||
#: ../lib/util.php:1061 lib/util.php:1110 classes/Notice.php:698
|
||||
#, php-format
|
||||
msgid "DB error inserting reply: %s"
|
||||
msgstr ""
|
||||
msgstr "Σφάλμα βάσης δεδομένων κατά την εισαγωγή απάντησης: %s"
|
||||
|
||||
#: ../actions/deletenotice.php:41 actions/deletenotice.php:41
|
||||
#: actions/deletenotice.php:79
|
||||
msgid "Delete notice"
|
||||
msgstr ""
|
||||
msgstr "Διαγραφή μηνύματος"
|
||||
|
||||
#: ../actions/profilesettings.php:51 ../actions/register.php:172
|
||||
#: actions/profilesettings.php:84 actions/register.php:186
|
||||
#: actions/profilesettings.php:114
|
||||
msgid "Describe yourself and your interests in 140 chars"
|
||||
msgstr ""
|
||||
msgstr "Περιέγραψε τον εαυτό σου και τα ενδιαφέροντά σου σε 140 χαρακτήρες"
|
||||
|
||||
#: ../actions/register.php:158 ../actions/register.php:161
|
||||
#: ../lib/settingsaction.php:87 actions/register.php:172
|
||||
#: actions/register.php:175 lib/settingsaction.php:87 actions/register.php:381
|
||||
#: actions/register.php:385 lib/accountsettingsaction.php:113
|
||||
msgid "Email"
|
||||
msgstr ""
|
||||
msgstr "Email"
|
||||
|
||||
#: ../actions/emailsettings.php:59 actions/emailsettings.php:60
|
||||
#: actions/emailsettings.php:115
|
||||
msgid "Email Address"
|
||||
msgstr ""
|
||||
msgstr "Διεύθυνση Email"
|
||||
|
||||
#: ../actions/emailsettings.php:32 actions/emailsettings.php:32
|
||||
#: actions/emailsettings.php:60
|
||||
msgid "Email Settings"
|
||||
msgstr ""
|
||||
msgstr "Ρυθμίσεις Email"
|
||||
|
||||
#: ../actions/register.php:73 actions/register.php:80 actions/register.php:163
|
||||
msgid "Email address already exists."
|
||||
@ -732,11 +780,11 @@ msgstr "Επιβεβαίωση διεύθυνσης email"
|
||||
#: ../actions/emailsettings.php:61 actions/emailsettings.php:62
|
||||
#: actions/emailsettings.php:117
|
||||
msgid "Email address, like \"UserName@example.org\""
|
||||
msgstr ""
|
||||
msgstr "Διεύθυνση email, π.χ: \"UserName@example.org\""
|
||||
|
||||
#: ../actions/invite.php:129 actions/invite.php:137 actions/invite.php:174
|
||||
msgid "Email addresses"
|
||||
msgstr ""
|
||||
msgstr "Διευθύνσεις email"
|
||||
|
||||
#: ../actions/recoverpassword.php:191 actions/recoverpassword.php:197
|
||||
#: actions/recoverpassword.php:231
|
||||
@ -917,22 +965,22 @@ msgstr "Η αρχική σελίδα δεν είναι έγκυρο URL."
|
||||
#: ../actions/emailsettings.php:91 actions/emailsettings.php:98
|
||||
#: actions/emailsettings.php:173
|
||||
msgid "I want to post notices by email."
|
||||
msgstr ""
|
||||
msgstr "Θέλω να δημοσιεύω ενημερώσεις μέσω email"
|
||||
|
||||
#: ../lib/settingsaction.php:102 lib/settingsaction.php:96
|
||||
#: lib/connectsettingsaction.php:104
|
||||
msgid "IM"
|
||||
msgstr ""
|
||||
msgstr "ΙΜ"
|
||||
|
||||
#: ../actions/imsettings.php:60 actions/imsettings.php:61
|
||||
#: actions/imsettings.php:118
|
||||
msgid "IM Address"
|
||||
msgstr ""
|
||||
msgstr "Διεύθυνση ΙΜ"
|
||||
|
||||
#: ../actions/imsettings.php:33 actions/imsettings.php:33
|
||||
#: actions/imsettings.php:59
|
||||
msgid "IM Settings"
|
||||
msgstr ""
|
||||
msgstr "Ρυθμίσεις ΙΜ"
|
||||
|
||||
#: ../actions/finishopenidlogin.php:88 actions/finishopenidlogin.php:94
|
||||
#: actions/finishopenidlogin.php:116
|
||||
@ -940,29 +988,35 @@ msgid ""
|
||||
"If you already have an account, login with your username and password to "
|
||||
"connect it to your OpenID."
|
||||
msgstr ""
|
||||
"Εάν έχετε ήδη λογαριασμό, συνδεθείτε με το όνομα χρήστη και τον κωδικό για "
|
||||
"να τον συνδέσετε στο OpenID σας."
|
||||
|
||||
#: ../actions/openidsettings.php:45
|
||||
msgid ""
|
||||
"If you want to add an OpenID to your account, enter it in the box below and "
|
||||
"click \"Add\"."
|
||||
msgstr ""
|
||||
"Εάν θέλετε να προσθέσετε ένα OpenID στον λογαριασμό σας, πληκτρολογήστε τον "
|
||||
"από κάτω και πατήστε \"Προσθήκη\"."
|
||||
|
||||
#: ../actions/recoverpassword.php:137
|
||||
msgid ""
|
||||
"If you've forgotten or lost your password, you can get a new one sent to the "
|
||||
"email address you have stored in your account."
|
||||
msgstr ""
|
||||
"Εάν έχετε ξεχάσει ή χάσει τον κωδικό σας, μπορεί να σας αποσταλλεί "
|
||||
"καινούριος στην διεύθυνση email που έχετε καταχωρήσει στον λογαριασμό σας."
|
||||
|
||||
#: ../actions/emailsettings.php:67 ../actions/smssettings.php:76
|
||||
#: actions/emailsettings.php:68 actions/smssettings.php:76
|
||||
#: actions/emailsettings.php:127 actions/smssettings.php:140
|
||||
msgid "Incoming email"
|
||||
msgstr ""
|
||||
msgstr "Εισερχόμενο email"
|
||||
|
||||
#: ../actions/emailsettings.php:283 actions/emailsettings.php:301
|
||||
#: actions/emailsettings.php:443
|
||||
msgid "Incoming email address removed."
|
||||
msgstr ""
|
||||
msgstr "Η διεύθυνση του εισερχόμενου email αφαιρέθηκε."
|
||||
|
||||
#: ../actions/password.php:69 actions/profilesettings.php:388
|
||||
#: actions/passwordsettings.php:153
|
||||
@ -4225,20 +4279,19 @@ msgstr ""
|
||||
|
||||
#: actions/twittersettings.php:119
|
||||
msgid "Twitter user name"
|
||||
msgstr ""
|
||||
msgstr "Όνομα χρήστη στο Twitter"
|
||||
|
||||
#: actions/twittersettings.php:126
|
||||
#, fuzzy
|
||||
msgid "Twitter password"
|
||||
msgstr "Νέος κωδικός"
|
||||
msgstr "Κωδικός στο Twitter"
|
||||
|
||||
#: actions/twittersettings.php:228
|
||||
msgid "Twitter Friends"
|
||||
msgstr ""
|
||||
msgstr "Φίλοι στο Twitter"
|
||||
|
||||
#: actions/twittersettings.php:327
|
||||
msgid "Username must have only numbers, "
|
||||
msgstr ""
|
||||
msgstr "Το όνομα χρήστη πρέπει να έχει μόνο νούμερα,"
|
||||
|
||||
#: actions/twittersettings.php:341
|
||||
#, php-format
|
||||
@ -4440,47 +4493,46 @@ msgstr ""
|
||||
|
||||
#: lib/groupeditform.php:151
|
||||
msgid "Description"
|
||||
msgstr ""
|
||||
msgstr "Περιγραφή"
|
||||
|
||||
#: lib/groupeditform.php:153
|
||||
msgid "Describe the group or topic in 140 chars"
|
||||
msgstr ""
|
||||
msgstr "Περιγράψτε την ομάδα ή το θέμα μέχρι 140 χαρακτήρες"
|
||||
|
||||
#: lib/groupeditform.php:158
|
||||
msgid ""
|
||||
"Location for the group, if any, like \"City, State (or Region), Country\""
|
||||
msgstr ""
|
||||
msgstr "Τοποθεσία της ομάδας (εάν υπάρχει), πχ: \"Πόλη, Περιοχή, Χώρα)"
|
||||
|
||||
#: lib/groupnav.php:84 lib/searchgroupnav.php:84
|
||||
msgid "Group"
|
||||
msgstr ""
|
||||
msgstr "Ομάδα"
|
||||
|
||||
#: lib/groupnav.php:100
|
||||
msgid "Admin"
|
||||
msgstr ""
|
||||
msgstr "Διαχειριστής"
|
||||
|
||||
#: lib/groupnav.php:101
|
||||
#, php-format
|
||||
msgid "Edit %s group properties"
|
||||
msgstr ""
|
||||
msgstr "Επεξεργασία ιδιοτήτων της ομάδας %s"
|
||||
|
||||
#: lib/groupnav.php:106
|
||||
#, fuzzy
|
||||
msgid "Logo"
|
||||
msgstr "Αποσύνδεση"
|
||||
msgstr "Λογότυπο"
|
||||
|
||||
#: lib/groupnav.php:107
|
||||
#, php-format
|
||||
msgid "Add or edit %s logo"
|
||||
msgstr ""
|
||||
msgstr "Προσθήκη ή επεξεργασία λογότυπου για την ομάδα %s"
|
||||
|
||||
#: lib/groupsbymemberssection.php:71
|
||||
msgid "Groups with most members"
|
||||
msgstr ""
|
||||
msgstr "Ομάδες με τα περισσότερα μέλη"
|
||||
|
||||
#: lib/groupsbypostssection.php:71
|
||||
msgid "Groups with most posts"
|
||||
msgstr ""
|
||||
msgstr "Ομάδες με τις περισσότερες δημοσιεύσεις"
|
||||
|
||||
#: lib/grouptagcloudsection.php:56
|
||||
#, php-format
|
||||
@ -4495,16 +4547,15 @@ msgstr "Η αρχική σελίδα δεν είναι έγκυρο URL."
|
||||
#: lib/joinform.php:114
|
||||
#, fuzzy
|
||||
msgid "Join"
|
||||
msgstr "Σύνδεση"
|
||||
msgstr "Συμμετοχή"
|
||||
|
||||
#: lib/leaveform.php:114
|
||||
msgid "Leave"
|
||||
msgstr ""
|
||||
msgstr "Αποχώρηση"
|
||||
|
||||
#: lib/logingroupnav.php:76
|
||||
#, fuzzy
|
||||
msgid "Login with a username and password"
|
||||
msgstr "Λάθος όνομα χρήστη ή κωδικός"
|
||||
msgstr "Σύνδεση με όνομα χρήστη και κωδικό"
|
||||
|
||||
#: lib/logingroupnav.php:79
|
||||
#, fuzzy
|
||||
@ -4513,7 +4564,7 @@ msgstr "Δημιουργία νέου λογαριασμού"
|
||||
|
||||
#: lib/logingroupnav.php:82
|
||||
msgid "Login or register with OpenID"
|
||||
msgstr ""
|
||||
msgstr "Σύνδεση ή δημιουργία λογαριασμού με OpenID"
|
||||
|
||||
#: lib/mail.php:175
|
||||
#, php-format
|
||||
@ -4521,6 +4572,8 @@ msgid ""
|
||||
"Hey, %s.\n"
|
||||
"\n"
|
||||
msgstr ""
|
||||
"Γεια σου, %s.\n"
|
||||
"\n"
|
||||
|
||||
#: lib/mail.php:236
|
||||
#, php-format
|
||||
@ -4530,12 +4583,12 @@ msgstr ""
|
||||
#: lib/mail.php:254
|
||||
#, fuzzy, php-format
|
||||
msgid "Location: %s\n"
|
||||
msgstr "Τοποθεσία"
|
||||
msgstr "Τοποθεσία: %s\n"
|
||||
|
||||
#: lib/mail.php:256
|
||||
#, fuzzy, php-format
|
||||
msgid "Homepage: %s\n"
|
||||
msgstr "Αρχική σελίδα"
|
||||
msgstr "Αρχική σελίδα: %s\n"
|
||||
|
||||
#: lib/mail.php:258
|
||||
#, php-format
|
||||
@ -4543,6 +4596,8 @@ msgid ""
|
||||
"Bio: %s\n"
|
||||
"\n"
|
||||
msgstr ""
|
||||
"Βιογραφικό: %s\n"
|
||||
"\n"
|
||||
|
||||
#: lib/mail.php:461
|
||||
#, php-format
|
||||
@ -4561,7 +4616,7 @@ msgstr ""
|
||||
|
||||
#: lib/mailbox.php:229 lib/noticelist.php:380
|
||||
msgid "From"
|
||||
msgstr ""
|
||||
msgstr "Από"
|
||||
|
||||
#: lib/messageform.php:110
|
||||
msgid "Send a direct notice"
|
||||
@ -4614,40 +4669,41 @@ msgid "Tags in %s's notices"
|
||||
msgstr ""
|
||||
|
||||
#: lib/profilelist.php:182
|
||||
#, fuzzy
|
||||
msgid "(none)"
|
||||
msgstr ""
|
||||
msgstr "(κανένα)"
|
||||
|
||||
#: lib/publicgroupnav.php:76
|
||||
msgid "Public"
|
||||
msgstr ""
|
||||
msgstr "Δημόσια"
|
||||
|
||||
#: lib/publicgroupnav.php:80
|
||||
msgid "User groups"
|
||||
msgstr ""
|
||||
msgstr "Ομάδες χρηστών"
|
||||
|
||||
#: lib/publicgroupnav.php:82 lib/publicgroupnav.php:83
|
||||
msgid "Recent tags"
|
||||
msgstr ""
|
||||
msgstr "Πρόσφατες ετικέτες "
|
||||
|
||||
#: lib/publicgroupnav.php:86
|
||||
msgid "Featured"
|
||||
msgstr ""
|
||||
msgstr "Προτεινόμενα"
|
||||
|
||||
#: lib/publicgroupnav.php:90
|
||||
msgid "Popular"
|
||||
msgstr ""
|
||||
msgstr "Δημοφιλή"
|
||||
|
||||
#: lib/searchgroupnav.php:82
|
||||
msgid "Notice"
|
||||
msgstr ""
|
||||
msgstr "Μήνυμα"
|
||||
|
||||
#: lib/searchgroupnav.php:85
|
||||
msgid "Find groups on this site"
|
||||
msgstr ""
|
||||
msgstr "Βρες ομάδες στο site"
|
||||
|
||||
#: lib/section.php:89
|
||||
msgid "Untitled section"
|
||||
msgstr ""
|
||||
msgstr "Ενότητα χωρίς τίτλο"
|
||||
|
||||
#: lib/subgroupnav.php:81
|
||||
#, php-format
|
||||
@ -4667,7 +4723,7 @@ msgstr ""
|
||||
#: lib/subgroupnav.php:104
|
||||
#, php-format
|
||||
msgid "Invite friends and colleagues to join you on %s"
|
||||
msgstr ""
|
||||
msgstr "Προσκάλεσε φίλους και συναδέλφους σου να γίνουν μέλη στο %s"
|
||||
|
||||
#: lib/subs.php:53
|
||||
msgid "User has blocked you."
|
||||
@ -4675,15 +4731,15 @@ msgstr ""
|
||||
|
||||
#: lib/subscribeform.php:115 lib/subscribeform.php:139
|
||||
msgid "Subscribe to this user"
|
||||
msgstr ""
|
||||
msgstr "Γίνε συνδρομητής αυτού του χρήστη"
|
||||
|
||||
#: lib/tagcloudsection.php:56
|
||||
msgid "None"
|
||||
msgstr ""
|
||||
msgstr "Κανένα"
|
||||
|
||||
#: lib/topposterssection.php:74
|
||||
msgid "Top posters"
|
||||
msgstr ""
|
||||
msgstr "Κορυφαίοι δημοσιευτές"
|
||||
|
||||
#: lib/unblockform.php:120 lib/unblockform.php:150
|
||||
msgid "Unblock this user"
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
locale/fr/LC_MESSAGES/statusnet.mo
Normal file
BIN
locale/fr/LC_MESSAGES/statusnet.mo
Normal file
Binary file not shown.
Binary file not shown.
BIN
locale/ga/LC_MESSAGES/statusnet.mo
Normal file
BIN
locale/ga/LC_MESSAGES/statusnet.mo
Normal file
Binary file not shown.
4713
locale/ga/LC_MESSAGES/statusnet.po
Normal file
4713
locale/ga/LC_MESSAGES/statusnet.po
Normal file
File diff suppressed because it is too large
Load Diff
BIN
locale/he/LC_MESSAGES/statusnet.mo
Normal file
BIN
locale/he/LC_MESSAGES/statusnet.mo
Normal file
Binary file not shown.
@ -3705,7 +3705,7 @@ msgstr ""
|
||||
#: actions/groups.php:62 actions/showstream.php:518 lib/publicgroupnav.php:79
|
||||
#: lib/subgroupnav.php:96
|
||||
msgid "Groups"
|
||||
msgstr ""
|
||||
msgstr "קבוצות"
|
||||
|
||||
#: actions/groups.php:64
|
||||
#, php-format
|
||||
@ -4645,12 +4645,12 @@ msgstr "%1$s כעת מאזין להודעות שלך ב-%2$s"
|
||||
#: lib/mail.php:254
|
||||
#, fuzzy, php-format
|
||||
msgid "Location: %s\n"
|
||||
msgstr "מיקום"
|
||||
msgstr ""
|
||||
|
||||
#: lib/mail.php:256
|
||||
#, fuzzy, php-format
|
||||
msgid "Homepage: %s\n"
|
||||
msgstr "אתר בית"
|
||||
msgstr ""
|
||||
|
||||
#: lib/mail.php:258
|
||||
#, php-format
|
Binary file not shown.
BIN
locale/is/LC_MESSAGES/statusnet.mo
Normal file
BIN
locale/is/LC_MESSAGES/statusnet.mo
Normal file
Binary file not shown.
File diff suppressed because it is too large
Load Diff
BIN
locale/it/LC_MESSAGES/statusnet.mo
Normal file
BIN
locale/it/LC_MESSAGES/statusnet.mo
Normal file
Binary file not shown.
Binary file not shown.
BIN
locale/ja/LC_MESSAGES/statusnet.mo
Normal file
BIN
locale/ja/LC_MESSAGES/statusnet.mo
Normal file
Binary file not shown.
Binary file not shown.
BIN
locale/mk/LC_MESSAGES/statusnet.mo
Normal file
BIN
locale/mk/LC_MESSAGES/statusnet.mo
Normal file
Binary file not shown.
@ -4670,12 +4670,12 @@ msgstr "%1$s сега ги следи вашите забелешки за %2$s.
|
||||
#: lib/mail.php:254
|
||||
#, fuzzy, php-format
|
||||
msgid "Location: %s\n"
|
||||
msgstr "Локација"
|
||||
msgstr ""
|
||||
|
||||
#: lib/mail.php:256
|
||||
#, fuzzy, php-format
|
||||
msgid "Homepage: %s\n"
|
||||
msgstr "Домашна страница"
|
||||
msgstr ""
|
||||
|
||||
#: lib/mail.php:258
|
||||
#, php-format
|
Binary file not shown.
BIN
locale/nb/LC_MESSAGES/statusnet.mo
Normal file
BIN
locale/nb/LC_MESSAGES/statusnet.mo
Normal file
Binary file not shown.
@ -9,8 +9,8 @@ msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2009-01-25 16:24+0000\n"
|
||||
"PO-Revision-Date: 2009-04-09 22:44+0000\n"
|
||||
"Last-Translator: Charlie Ball <staselig@gmail.com>\n"
|
||||
"PO-Revision-Date: 2009-09-26 22:45+0000\n"
|
||||
"Last-Translator: Eivind Uggedal <eivind@uggedal.com>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
@ -23,7 +23,7 @@ msgstr ""
|
||||
#: actions/noticesearchrss.php:88
|
||||
#, php-format
|
||||
msgid " Search Stream for \"%s\""
|
||||
msgstr ""
|
||||
msgstr "Søkestrøm for «%s»"
|
||||
|
||||
#: ../actions/finishopenidlogin.php:82 ../actions/register.php:191
|
||||
#: actions/finishopenidlogin.php:88 actions/register.php:205
|
||||
@ -31,22 +31,24 @@ msgstr ""
|
||||
msgid ""
|
||||
" except this private data: password, email address, IM address, phone number."
|
||||
msgstr ""
|
||||
"utenom disse private dataene: passord, epost, adresse, lynmeldingsadresse og "
|
||||
"telefonnummer."
|
||||
|
||||
#: ../actions/showstream.php:400 ../lib/stream.php:109
|
||||
#: actions/showstream.php:418 lib/mailbox.php:164 lib/stream.php:76
|
||||
msgid " from "
|
||||
msgstr ""
|
||||
msgstr "fra"
|
||||
|
||||
#: ../actions/twitapistatuses.php:478 actions/twitapistatuses.php:412
|
||||
#: actions/twitapistatuses.php:347
|
||||
#, php-format
|
||||
msgid "%1$s / Updates replying to %2$s"
|
||||
msgstr ""
|
||||
msgstr "%1$s / Oppdateringer som svarer til %2$s"
|
||||
|
||||
#: ../actions/invite.php:168 actions/invite.php:176 actions/invite.php:211
|
||||
#, php-format
|
||||
msgid "%1$s has invited you to join them on %2$s"
|
||||
msgstr ""
|
||||
msgstr "%1$s har invitert deg til %2$s"
|
||||
|
||||
#: ../actions/invite.php:170
|
||||
#, php-format
|
||||
@ -78,6 +80,27 @@ msgid ""
|
||||
"\n"
|
||||
"Sincerely, %2$s\n"
|
||||
msgstr ""
|
||||
"%$1s har invitert deg til %2$s (%3$s).\n"
|
||||
"\n"
|
||||
"%$2s er en mikrobloggingteneste som lar deg holde deg oppdatert på folk du "
|
||||
"kjenner og/eller som interesserer deg.\n"
|
||||
"\n"
|
||||
"Du kan også dele nyheter om deg sjelv, dine tanker eller livet ditt på "
|
||||
"nettet med folk som kjenner til deg. Det er supert for å møte nye folk med "
|
||||
"like interesser.\n"
|
||||
"\n"
|
||||
"%1$s sa:\n"
|
||||
"\n"
|
||||
"%4$s\n"
|
||||
"\n"
|
||||
"Du kan se profilsiden til %1$s på %2$s her:\n"
|
||||
"\n"
|
||||
"%5$s\n"
|
||||
"\n"
|
||||
"Hvis du vil prøva tjenesten, klikk på lenken nedenfor for å akseptere "
|
||||
"invitasjonen.\n"
|
||||
"\n"
|
||||
"Vennlig hilsen, %2$s\n"
|
||||
|
||||
#: ../lib/mail.php:124 lib/mail.php:124 lib/mail.php:126 lib/mail.php:241
|
||||
#, php-format
|
||||
@ -98,14 +121,14 @@ msgstr ""
|
||||
"\n"
|
||||
"\t%3$s\n"
|
||||
"\n"
|
||||
"Mvh,\n"
|
||||
"Vennlig hilsen,\n"
|
||||
"%4$s.\n"
|
||||
|
||||
#: ../actions/twitapistatuses.php:482 actions/twitapistatuses.php:415
|
||||
#: actions/twitapistatuses.php:350
|
||||
#, php-format
|
||||
msgid "%1$s updates that reply to updates from %2$s / %3$s."
|
||||
msgstr ""
|
||||
msgstr "%1$s oppdateringer som svarer på oppdateringer fra %2$s / %3$s."
|
||||
|
||||
#: ../actions/shownotice.php:45 actions/shownotice.php:45
|
||||
#: actions/shownotice.php:161
|
||||
@ -123,7 +146,7 @@ msgstr "%s (%s)"
|
||||
#: actions/publicrss.php:90
|
||||
#, php-format
|
||||
msgid "%s Public Stream"
|
||||
msgstr "%s Offentlig Strøm"
|
||||
msgstr "%s offentlig strøm"
|
||||
|
||||
#: ../actions/all.php:47 ../actions/allrss.php:60
|
||||
#: ../actions/twitapistatuses.php:238 ../lib/stream.php:51 actions/all.php:47
|
||||
@ -138,7 +161,7 @@ msgstr "%s og venner"
|
||||
#: actions/twitapistatuses.php:33
|
||||
#, php-format
|
||||
msgid "%s public timeline"
|
||||
msgstr "%s sin offentlige tidslinje"
|
||||
msgstr "%s offentlig tidslinje"
|
||||
|
||||
#: ../lib/mail.php:206 lib/mail.php:212 lib/mail.php:411
|
||||
#, php-format
|
||||
@ -155,15 +178,15 @@ msgstr "%s tidslinje"
|
||||
#: actions/twitapistatuses.php:36
|
||||
#, php-format
|
||||
msgid "%s updates from everyone!"
|
||||
msgstr "%s oppdateringer fra alle!"
|
||||
msgstr "%s oppdateringer fra alle sammen!"
|
||||
|
||||
#: ../actions/register.php:213
|
||||
msgid ""
|
||||
"(You should receive a message by email momentarily, with instructions on how "
|
||||
"to confirm your email address.)"
|
||||
msgstr ""
|
||||
"(Du vil straks motta en e-post med instruksjoner om hvordan du kan bekrefte "
|
||||
"din e-postadresse.)"
|
||||
"(Du vil straks motta en epost med instruksjoner om hvordan du kan bekrefte "
|
||||
"din epostadresse)"
|
||||
|
||||
#: ../lib/util.php:257 lib/util.php:273 lib/action.php:605
|
||||
#, php-format
|
||||
@ -171,32 +194,29 @@ msgid ""
|
||||
"**%%site.name%%** is a microblogging service brought to you by [%%site."
|
||||
"broughtby%%](%%site.broughtbyurl%%). "
|
||||
msgstr ""
|
||||
"**%%site.name%%** er en mikroblogging-tjeneste av "
|
||||
"**%%site.name%%** er en mikrobloggingtjeneste av "
|
||||
"[%%site.broughtby%%](%%site.broughtbyurl%%). "
|
||||
|
||||
#: ../lib/util.php:259 lib/util.php:275 lib/action.php:607
|
||||
#, php-format
|
||||
msgid "**%%site.name%%** is a microblogging service. "
|
||||
msgstr "**%%site.name%%** er en mikroblogging-tjeneste. "
|
||||
msgstr "**%%site.name%%** er en mikrobloggingtjeneste. "
|
||||
|
||||
#: ../lib/util.php:274 lib/util.php:290
|
||||
msgid ". Contributors should be attributed by full name or nickname."
|
||||
msgstr ". Bidragsytere burde være etterfulgt av fullt navn eller brukernavn."
|
||||
msgstr ". Bidragsytere burde være etterfulgt av fullt navn eller kallenavn."
|
||||
|
||||
#: ../actions/finishopenidlogin.php:73 ../actions/profilesettings.php:43
|
||||
#: actions/finishopenidlogin.php:79 actions/profilesettings.php:76
|
||||
#: actions/finishopenidlogin.php:101 actions/profilesettings.php:100
|
||||
#: lib/groupeditform.php:139
|
||||
msgid "1-64 lowercase letters or numbers, no punctuation or spaces"
|
||||
msgstr ""
|
||||
"1-64 småbokstaver eller nummer, ingen punktum eller mellomrom (ei heller æøå "
|
||||
"og lign.)"
|
||||
msgstr "1-64 små bokstaver eller nummer, ingen punktum eller mellomrom"
|
||||
|
||||
#: ../actions/register.php:152 actions/register.php:166
|
||||
msgid "1-64 lowercase letters or numbers, no punctuation or spaces. Required."
|
||||
msgstr ""
|
||||
"1-64 småbokstaver eller nummer, ingen punktum eller mellomrom (ei heller æøå "
|
||||
"og lign.) Påkrevd."
|
||||
"1-64 små bokstaver eller nummer, ingen punktum eller mellomrom. Påkrevd."
|
||||
|
||||
#: ../actions/password.php:42 actions/profilesettings.php:181
|
||||
#: actions/passwordsettings.php:102
|
||||
@ -227,14 +247,16 @@ 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 ""
|
||||
"En bekreftelseskode ble sendt til lynmeldingsadressen du la til. Sjekk "
|
||||
"innboksen din (og søppel-posten!) for koden, og hvordan du skal bruke den."
|
||||
"En bekreftelseskode ble sendt til epostadressen du la til. Sjekk innboksen "
|
||||
"din (og søppelboksen) for koden, og hvordan du skal bruke den."
|
||||
|
||||
#: ../actions/smssettings.php:216 actions/smssettings.php:224
|
||||
msgid ""
|
||||
"A confirmation code was sent to the phone number you added. Check your inbox "
|
||||
"(and spam box!) for the code and instructions on how to use it."
|
||||
msgstr ""
|
||||
"En bekreftelseskode ble sendt til telefonnummeret du la til. Sjekk innboksen "
|
||||
"din for koden, og hvordan du skal bruke den."
|
||||
|
||||
#: ../actions/twitapiaccount.php:49 ../actions/twitapihelp.php:45
|
||||
#: ../actions/twitapistatuses.php:88 ../actions/twitapistatuses.php:259
|
||||
@ -288,7 +310,7 @@ msgstr "Om"
|
||||
#: ../actions/userauthorization.php:119 actions/userauthorization.php:126
|
||||
#: actions/userauthorization.php:143
|
||||
msgid "Accept"
|
||||
msgstr "Aksepter"
|
||||
msgstr "Godta"
|
||||
|
||||
#: ../actions/emailsettings.php:62 ../actions/imsettings.php:63
|
||||
#: ../actions/openidsettings.php:57 ../actions/smssettings.php:71
|
||||
@ -308,7 +330,7 @@ msgstr "Legg til OpenID"
|
||||
#: ../lib/settingsaction.php:97 lib/settingsaction.php:91
|
||||
#: lib/accountsettingsaction.php:117
|
||||
msgid "Add or remove OpenIDs"
|
||||
msgstr "Legg til eller slett OpenID"
|
||||
msgstr "Legg til eller fjern OpenID-er"
|
||||
|
||||
#: ../actions/emailsettings.php:38 ../actions/imsettings.php:39
|
||||
#: ../actions/smssettings.php:39 actions/emailsettings.php:39
|
||||
@ -337,7 +359,7 @@ msgstr "Alle oppdateringer for %s"
|
||||
#: actions/noticesearchrss.php:90
|
||||
#, php-format
|
||||
msgid "All updates matching search term \"%s\""
|
||||
msgstr "Alle oppdateringer som passer søket: \"%s\""
|
||||
msgstr "Alle oppdateringer for søket: «%s»"
|
||||
|
||||
#: ../actions/finishopenidlogin.php:29 ../actions/login.php:31
|
||||
#: ../actions/openidlogin.php:29 ../actions/register.php:30
|
||||
@ -390,19 +412,21 @@ 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 ""
|
||||
"Venter på godkjenning. Sjekk din Jabber/GTalk-konto for en melding med "
|
||||
"instruksjoner (la du %s til vennelisten din?)"
|
||||
|
||||
#: ../actions/emailsettings.php:54 actions/emailsettings.php:55
|
||||
msgid ""
|
||||
"Awaiting confirmation on this address. Check your inbox (and spam box!) for "
|
||||
"a message with further instructions."
|
||||
msgstr ""
|
||||
"Venter på bekreftelse av adressen. Sjekk innboksen din (og søppel-post!) for "
|
||||
"Venter på bekreftelse av adressen. Sjekk innboksen din (og søppelboksen) for "
|
||||
"melding med videre veiledning."
|
||||
|
||||
#: ../actions/smssettings.php:58 actions/smssettings.php:58
|
||||
#: actions/smssettings.php:111
|
||||
msgid "Awaiting confirmation on this phone number."
|
||||
msgstr "Venter på bekreftelse på dette telefonnummeret"
|
||||
msgstr "Venter på bekreftelse for dette telefonnummeret."
|
||||
|
||||
#: ../lib/util.php:1318 lib/util.php:1452
|
||||
#, fuzzy
|
||||
@ -413,7 +437,7 @@ msgstr "Tidligere »"
|
||||
#: actions/profilesettings.php:82 actions/register.php:184
|
||||
#: actions/profilesettings.php:112 actions/register.php:402
|
||||
msgid "Bio"
|
||||
msgstr "Bio"
|
||||
msgstr "Om meg"
|
||||
|
||||
#: ../actions/profilesettings.php:101 ../actions/register.php:82
|
||||
#: ../actions/updateprofile.php:103 actions/profilesettings.php:216
|
||||
@ -421,7 +445,7 @@ msgstr "Bio"
|
||||
#: actions/profilesettings.php:205 actions/register.php:174
|
||||
#: actions/updateprofile.php:107
|
||||
msgid "Bio is too long (max 140 chars)."
|
||||
msgstr "Bioen er for lang (maks 140 tegn)."
|
||||
msgstr "«Om meg» er for lang (maks 140 tegn)."
|
||||
|
||||
#: ../lib/deleteaction.php:41 lib/deleteaction.php:41 lib/deleteaction.php:69
|
||||
msgid "Can't delete this notice."
|
||||
@ -431,13 +455,13 @@ msgstr "Kan ikke slette notisen."
|
||||
#: actions/updateprofile.php:123
|
||||
#, php-format
|
||||
msgid "Can't read avatar URL '%s'"
|
||||
msgstr "Kan ikke lese brukerbilde URL '%s'"
|
||||
msgstr "Kan ikke lese brukerbilde-URL «%s»"
|
||||
|
||||
#: ../actions/password.php:85 ../actions/recoverpassword.php:300
|
||||
#: actions/profilesettings.php:404 actions/recoverpassword.php:313
|
||||
#: actions/passwordsettings.php:169 actions/recoverpassword.php:347
|
||||
msgid "Can't save new password."
|
||||
msgstr "Klarer ikke å lagre det nye passordet"
|
||||
msgstr "Klarer ikke å lagre nytt passord."
|
||||
|
||||
#: ../actions/emailsettings.php:57 ../actions/imsettings.php:58
|
||||
#: ../actions/smssettings.php:62 actions/emailsettings.php:58
|
||||
@ -449,17 +473,17 @@ msgstr "Avbryt"
|
||||
|
||||
#: ../lib/openid.php:121 lib/openid.php:121 lib/openid.php:130
|
||||
msgid "Cannot instantiate OpenID consumer object."
|
||||
msgstr ""
|
||||
msgstr "Klarer ikke instansiere OpenID-objekt."
|
||||
|
||||
#: ../actions/imsettings.php:163 actions/imsettings.php:171
|
||||
#: actions/imsettings.php:286
|
||||
msgid "Cannot normalize that Jabber ID"
|
||||
msgstr ""
|
||||
msgstr "Klarer ikke normalisere Jabber-IDen"
|
||||
|
||||
#: ../actions/emailsettings.php:181 actions/emailsettings.php:199
|
||||
#: actions/emailsettings.php:311
|
||||
msgid "Cannot normalize that email address"
|
||||
msgstr "Kan ikke normalisere den e-postadressen"
|
||||
msgstr "Klarer ikke normalisere epostadressen"
|
||||
|
||||
#: ../actions/password.php:45 actions/profilesettings.php:184
|
||||
#: actions/passwordsettings.php:110
|
||||
@ -469,7 +493,7 @@ msgstr "Endre"
|
||||
#: ../lib/settingsaction.php:88 lib/settingsaction.php:88
|
||||
#: lib/accountsettingsaction.php:114
|
||||
msgid "Change email handling"
|
||||
msgstr "Endre e-post håndtering"
|
||||
msgstr "Endre eposthåndtering"
|
||||
|
||||
#: ../actions/password.php:32 actions/profilesettings.php:36
|
||||
#: actions/passwordsettings.php:58
|
||||
@ -483,7 +507,7 @@ msgstr "Endre passordet ditt"
|
||||
#: ../lib/settingsaction.php:85 lib/settingsaction.php:85
|
||||
#: lib/accountsettingsaction.php:105
|
||||
msgid "Change your profile settings"
|
||||
msgstr "Endre profil instillingene dine"
|
||||
msgstr "Endre profilinnstillingene dine"
|
||||
|
||||
#: ../actions/password.php:43 ../actions/recoverpassword.php:181
|
||||
#: ../actions/register.php:155 ../actions/smssettings.php:65
|
||||
@ -497,7 +521,7 @@ msgstr "Bekreft"
|
||||
#: ../actions/confirmaddress.php:90 actions/confirmaddress.php:90
|
||||
#: actions/confirmaddress.php:144
|
||||
msgid "Confirm Address"
|
||||
msgstr "Bekreft Adresse"
|
||||
msgstr "Bekreft adresse"
|
||||
|
||||
#: ../actions/emailsettings.php:238 ../actions/imsettings.php:222
|
||||
#: ../actions/smssettings.php:245 actions/emailsettings.php:256
|
||||
@ -515,7 +539,7 @@ msgstr "Bekreftelseskode"
|
||||
#: ../actions/confirmaddress.php:38 actions/confirmaddress.php:38
|
||||
#: actions/confirmaddress.php:80
|
||||
msgid "Confirmation code not found."
|
||||
msgstr "Bekreftelseskode ikke funnet."
|
||||
msgstr "Fant ikke bekreftelseskode."
|
||||
|
||||
#: ../actions/register.php:202
|
||||
#, php-format
|
Binary file not shown.
BIN
locale/nl/LC_MESSAGES/statusnet.mo
Normal file
BIN
locale/nl/LC_MESSAGES/statusnet.mo
Normal file
Binary file not shown.
Binary file not shown.
BIN
locale/pl/LC_MESSAGES/statusnet.mo
Normal file
BIN
locale/pl/LC_MESSAGES/statusnet.mo
Normal file
Binary file not shown.
6966
locale/pl/LC_MESSAGES/statusnet.po
Normal file
6966
locale/pl/LC_MESSAGES/statusnet.po
Normal file
File diff suppressed because it is too large
Load Diff
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
locale/sv/LC_MESSAGES/statusnet.mo
Normal file
BIN
locale/sv/LC_MESSAGES/statusnet.mo
Normal file
Binary file not shown.
Binary file not shown.
BIN
locale/te/LC_MESSAGES/statusnet.mo
Normal file
BIN
locale/te/LC_MESSAGES/statusnet.mo
Normal file
Binary file not shown.
Binary file not shown.
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user