i18n/L10n fixes and translator documentation addded/updated.
This commit is contained in:
parent
a65362f7fa
commit
973a48bded
|
@ -66,17 +66,19 @@ class ShowstreamAction extends ProfileAction
|
||||||
$base = $this->profile->getFancyName();
|
$base = $this->profile->getFancyName();
|
||||||
if (!empty($this->tag)) {
|
if (!empty($this->tag)) {
|
||||||
if ($this->page == 1) {
|
if ($this->page == 1) {
|
||||||
// TRANS: Page title showing tagged notices in one user's stream. Param 1 is the username, 2 is the hash tag.
|
// TRANS: Page title showing tagged notices in one user's stream. %1$s is the username, %2$s is the hash tag.
|
||||||
return sprintf(_('%1$s tagged %2$s'), $base, $this->tag);
|
return sprintf(_('%1$s tagged %2$s'), $base, $this->tag);
|
||||||
} else {
|
} else {
|
||||||
// TRANS: Page title showing tagged notices in one user's stream. Param 1 is the username, 2 is the hash tag, 3 is the page number.
|
// TRANS: Page title showing tagged notices in one user's stream.
|
||||||
|
// TRANS: %1$s is the username, %2$s is the hash tag, %1$d is the page number.
|
||||||
return sprintf(_('%1$s tagged %2$s, page %3$d'), $base, $this->tag, $this->page);
|
return sprintf(_('%1$s tagged %2$s, page %3$d'), $base, $this->tag, $this->page);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
if ($this->page == 1) {
|
if ($this->page == 1) {
|
||||||
return $base;
|
return $base;
|
||||||
} else {
|
} else {
|
||||||
// TRANS: Extended page title showing tagged notices in one user's stream. Param 1 is the username, param 2 is the page number.
|
// TRANS: Extended page title showing tagged notices in one user's stream.
|
||||||
|
// TRANS: %1$s is the username, %2$d is the page number.
|
||||||
return sprintf(_('%1$s, page %2$d'),
|
return sprintf(_('%1$s, page %2$d'),
|
||||||
$base,
|
$base,
|
||||||
$this->page);
|
$this->page);
|
||||||
|
@ -120,6 +122,8 @@ class ShowstreamAction extends ProfileAction
|
||||||
common_local_url('userrss',
|
common_local_url('userrss',
|
||||||
array('nickname' => $this->user->nickname,
|
array('nickname' => $this->user->nickname,
|
||||||
'tag' => $this->tag)),
|
'tag' => $this->tag)),
|
||||||
|
// TRANS: Title for link to notice feed.
|
||||||
|
// TRANS: %1$s is a user nickname, %2$s is a hashtag.
|
||||||
sprintf(_('Notice feed for %1$s tagged %2$s (RSS 1.0)'),
|
sprintf(_('Notice feed for %1$s tagged %2$s (RSS 1.0)'),
|
||||||
$this->user->nickname, $this->tag)));
|
$this->user->nickname, $this->tag)));
|
||||||
}
|
}
|
||||||
|
@ -127,6 +131,8 @@ class ShowstreamAction extends ProfileAction
|
||||||
return array(new Feed(Feed::RSS1,
|
return array(new Feed(Feed::RSS1,
|
||||||
common_local_url('userrss',
|
common_local_url('userrss',
|
||||||
array('nickname' => $this->user->nickname)),
|
array('nickname' => $this->user->nickname)),
|
||||||
|
// TRANS: Title for link to notice feed.
|
||||||
|
// TRANS: %s is a user nickname.
|
||||||
sprintf(_('Notice feed for %s (RSS 1.0)'),
|
sprintf(_('Notice feed for %s (RSS 1.0)'),
|
||||||
$this->user->nickname)),
|
$this->user->nickname)),
|
||||||
new Feed(Feed::RSS2,
|
new Feed(Feed::RSS2,
|
||||||
|
@ -134,6 +140,8 @@ class ShowstreamAction extends ProfileAction
|
||||||
array(
|
array(
|
||||||
'id' => $this->user->id,
|
'id' => $this->user->id,
|
||||||
'format' => 'rss')),
|
'format' => 'rss')),
|
||||||
|
// TRANS: Title for link to notice feed.
|
||||||
|
// TRANS: %s is a user nickname.
|
||||||
sprintf(_('Notice feed for %s (RSS 2.0)'),
|
sprintf(_('Notice feed for %s (RSS 2.0)'),
|
||||||
$this->user->nickname)),
|
$this->user->nickname)),
|
||||||
new Feed(Feed::ATOM,
|
new Feed(Feed::ATOM,
|
||||||
|
@ -146,6 +154,8 @@ class ShowstreamAction extends ProfileAction
|
||||||
new Feed(Feed::FOAF,
|
new Feed(Feed::FOAF,
|
||||||
common_local_url('foaf', array('nickname' =>
|
common_local_url('foaf', array('nickname' =>
|
||||||
$this->user->nickname)),
|
$this->user->nickname)),
|
||||||
|
// TRANS: Title for link to notice feed. FOAF stands for Friend of a Friend.
|
||||||
|
// TRANS: More information at http://www.foaf-project.org. %s is a user nickname.
|
||||||
sprintf(_('FOAF for %s'), $this->user->nickname)));
|
sprintf(_('FOAF for %s'), $this->user->nickname)));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -197,17 +207,23 @@ class ShowstreamAction extends ProfileAction
|
||||||
|
|
||||||
function showEmptyListMessage()
|
function showEmptyListMessage()
|
||||||
{
|
{
|
||||||
$message = sprintf(_('This is the timeline for %1$s but %2$s hasn\'t posted anything yet.'), $this->user->nickname, $this->user->nickname) . ' ';
|
// TRANS: First sentence of empty list message for a stream. $1%s is a user nickname.
|
||||||
|
$message = sprintf(_('This is the timeline for %1$s, but %1$s hasn\'t posted anything yet.'), $this->user->nickname) . ' ';
|
||||||
|
|
||||||
if (common_logged_in()) {
|
if (common_logged_in()) {
|
||||||
$current_user = common_current_user();
|
$current_user = common_current_user();
|
||||||
if ($this->user->id === $current_user->id) {
|
if ($this->user->id === $current_user->id) {
|
||||||
|
// TRANS: Second sentence of empty list message for a stream for the user themselves.
|
||||||
$message .= _('Seen anything interesting recently? You haven\'t posted any notices yet, now would be a good time to start :)');
|
$message .= _('Seen anything interesting recently? You haven\'t posted any notices yet, now would be a good time to start :)');
|
||||||
} else {
|
} else {
|
||||||
|
// TRANS: Second sentence of empty list message for a non-self stream. %1$s is a user nickname, %2$s is a part of a URL.
|
||||||
|
// TRANS: This message contains a Markdown link. Keep "](" together.
|
||||||
$message .= sprintf(_('You can try to nudge %1$s or [post something to them](%%%%action.newnotice%%%%?status_textarea=%2$s).'), $this->user->nickname, '@' . $this->user->nickname);
|
$message .= sprintf(_('You can try to nudge %1$s or [post something to them](%%%%action.newnotice%%%%?status_textarea=%2$s).'), $this->user->nickname, '@' . $this->user->nickname);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
|
// TRANS: Second sentence of empty message for anonymous users. %s is a user nickname.
|
||||||
|
// TRANS: This message contains a Markdown link. Keep "](" together.
|
||||||
$message .= sprintf(_('Why not [register an account](%%%%action.register%%%%) and then nudge %s or post a notice to them.'), $this->user->nickname);
|
$message .= sprintf(_('Why not [register an account](%%%%action.register%%%%) and then nudge %s or post a notice to them.'), $this->user->nickname);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -243,11 +259,15 @@ class ShowstreamAction extends ProfileAction
|
||||||
function showAnonymousMessage()
|
function showAnonymousMessage()
|
||||||
{
|
{
|
||||||
if (!(common_config('site','closed') || common_config('site','inviteonly'))) {
|
if (!(common_config('site','closed') || common_config('site','inviteonly'))) {
|
||||||
|
// TRANS: Announcement for anonymous users showing a stream if site registrations are open.
|
||||||
|
// TRANS: This message contains a Markdown link. Keep "](" together.
|
||||||
$m = sprintf(_('**%s** has an account on %%%%site.name%%%%, a [micro-blogging](http://en.wikipedia.org/wiki/Micro-blogging) service ' .
|
$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. ' .
|
'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%%%%))'),
|
'[Join now](%%%%action.register%%%%) to follow **%s**\'s notices and many more! ([Read more](%%%%doc.help%%%%))'),
|
||||||
$this->user->nickname, $this->user->nickname);
|
$this->user->nickname, $this->user->nickname);
|
||||||
} else {
|
} else {
|
||||||
|
// TRANS: Announcement for anonymous users showing a stream if site registrations are closed or invite only.
|
||||||
|
// TRANS: This message contains a Markdown link. Keep "](" together.
|
||||||
$m = sprintf(_('**%s** has an account on %%%%site.name%%%%, a [micro-blogging](http://en.wikipedia.org/wiki/Micro-blogging) service ' .
|
$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. '),
|
'based on the Free Software [StatusNet](http://status.net/) tool. '),
|
||||||
$this->user->nickname, $this->user->nickname);
|
$this->user->nickname, $this->user->nickname);
|
||||||
|
@ -287,7 +307,6 @@ class ProfileNoticeListItem extends DoFollowListItem
|
||||||
*
|
*
|
||||||
* @return void
|
* @return void
|
||||||
*/
|
*/
|
||||||
|
|
||||||
function showRepeat()
|
function showRepeat()
|
||||||
{
|
{
|
||||||
if (!empty($this->repeat)) {
|
if (!empty($this->repeat)) {
|
||||||
|
@ -298,13 +317,14 @@ class ProfileNoticeListItem extends DoFollowListItem
|
||||||
'class' => 'url');
|
'class' => 'url');
|
||||||
|
|
||||||
if (!empty($this->profile->fullname)) {
|
if (!empty($this->profile->fullname)) {
|
||||||
$attrs['title'] = $this->profile->fullname . ' (' . $this->profile->nickname . ')';
|
$attrs['title'] = $this->getFancyName();
|
||||||
}
|
}
|
||||||
|
|
||||||
$this->out->elementStart('span', 'repeat');
|
$this->out->elementStart('span', 'repeat');
|
||||||
|
|
||||||
$text_link = XMLStringer::estring('a', $attrs, $this->profile->nickname);
|
$text_link = XMLStringer::estring('a', $attrs, $this->profile->nickname);
|
||||||
|
|
||||||
|
// TRANS: Link to the author of a repeated notice. %s is a linked nickname.
|
||||||
$this->out->raw(sprintf(_('Repeat of %s'), $text_link));
|
$this->out->raw(sprintf(_('Repeat of %s'), $text_link));
|
||||||
|
|
||||||
$this->out->elementEnd('span');
|
$this->out->elementEnd('span');
|
||||||
|
|
|
@ -873,16 +873,17 @@ class Action extends HTMLOutputter // lawsuit
|
||||||
// TRANS: Secondary navigation menu option leading to privacy policy.
|
// TRANS: Secondary navigation menu option leading to privacy policy.
|
||||||
_('Privacy'));
|
_('Privacy'));
|
||||||
$this->menuItem(common_local_url('doc', array('title' => 'source')),
|
$this->menuItem(common_local_url('doc', array('title' => 'source')),
|
||||||
// TRANS: Secondary navigation menu option.
|
// TRANS: Secondary navigation menu option. Leads to information about StatusNet and its license.
|
||||||
_('Source'));
|
_('Source'));
|
||||||
$this->menuItem(common_local_url('version'),
|
$this->menuItem(common_local_url('version'),
|
||||||
// TRANS: Secondary navigation menu option leading to version information on the StatusNet site.
|
// TRANS: Secondary navigation menu option leading to version information on the StatusNet site.
|
||||||
_('Version'));
|
_('Version'));
|
||||||
$this->menuItem(common_local_url('doc', array('title' => 'contact')),
|
$this->menuItem(common_local_url('doc', array('title' => 'contact')),
|
||||||
// TRANS: Secondary navigation menu option leading to contact information on the StatusNet site.
|
// TRANS: Secondary navigation menu option leading to e-mail contact information on the
|
||||||
|
// TRANS: StatusNet site, where to report bugs, ...
|
||||||
_('Contact'));
|
_('Contact'));
|
||||||
$this->menuItem(common_local_url('doc', array('title' => 'badge')),
|
$this->menuItem(common_local_url('doc', array('title' => 'badge')),
|
||||||
// TRANS: Secondary navigation menu option.
|
// TRANS: Secondary navigation menu option. Leads to information about embedding a timeline widget.
|
||||||
_('Badge'));
|
_('Badge'));
|
||||||
Event::handle('EndSecondaryNav', array($this));
|
Event::handle('EndSecondaryNav', array($this));
|
||||||
}
|
}
|
||||||
|
|
|
@ -188,10 +188,10 @@ class Ostatus_profile extends Memcached_DataObject
|
||||||
} else if ($this->group_id && !$this->profile_id) {
|
} else if ($this->group_id && !$this->profile_id) {
|
||||||
return true;
|
return true;
|
||||||
} else if ($this->group_id && $this->profile_id) {
|
} else if ($this->group_id && $this->profile_id) {
|
||||||
// TRANS: Server exception.
|
// TRANS: Server exception. %s is a URI.
|
||||||
throw new ServerException(sprintf(_m('Invalid ostatus_profile state: both group and profile IDs set for %s.'),$this->uri));
|
throw new ServerException(sprintf(_m('Invalid ostatus_profile state: both group and profile IDs set for %s.'),$this->uri));
|
||||||
} else {
|
} else {
|
||||||
// TRANS: Server exception.
|
// TRANS: Server exception. %s is a URI.
|
||||||
throw new ServerException(sprintf(_m('Invalid ostatus_profile state: both group and profile IDs empty for %s.'),$this->uri));
|
throw new ServerException(sprintf(_m('Invalid ostatus_profile state: both group and profile IDs empty for %s.'),$this->uri));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -405,6 +405,7 @@ class Ostatus_profile extends Memcached_DataObject
|
||||||
} else if ($feed->localName == 'rss') { // @fixme check namespace
|
} else if ($feed->localName == 'rss') { // @fixme check namespace
|
||||||
$this->processRssFeed($feed, $source);
|
$this->processRssFeed($feed, $source);
|
||||||
} else {
|
} else {
|
||||||
|
// TRANS: Exception.
|
||||||
throw new Exception(_m('Unknown feed format.'));
|
throw new Exception(_m('Unknown feed format.'));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -428,6 +429,7 @@ class Ostatus_profile extends Memcached_DataObject
|
||||||
$channels = $rss->getElementsByTagName('channel');
|
$channels = $rss->getElementsByTagName('channel');
|
||||||
|
|
||||||
if ($channels->length == 0) {
|
if ($channels->length == 0) {
|
||||||
|
// TRANS: Exception.
|
||||||
throw new Exception(_m('RSS feed without a channel.'));
|
throw new Exception(_m('RSS feed without a channel.'));
|
||||||
} else if ($channels->length > 1) {
|
} else if ($channels->length > 1) {
|
||||||
common_log(LOG_WARNING, __METHOD__ . ": more than one channel in an RSS feed");
|
common_log(LOG_WARNING, __METHOD__ . ": more than one channel in an RSS feed");
|
||||||
|
@ -555,7 +557,7 @@ class Ostatus_profile extends Memcached_DataObject
|
||||||
$sourceContent = $note->title;
|
$sourceContent = $note->title;
|
||||||
} else {
|
} else {
|
||||||
// @fixme fetch from $sourceUrl?
|
// @fixme fetch from $sourceUrl?
|
||||||
// TRANS: Client exception. %s is a source URL.
|
// TRANS: Client exception. %s is a source URI.
|
||||||
throw new ClientException(sprintf(_m('No content for notice %s.'),$sourceUri));
|
throw new ClientException(sprintf(_m('No content for notice %s.'),$sourceUri));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -589,7 +591,8 @@ class Ostatus_profile extends Memcached_DataObject
|
||||||
// so we can fold-out the full version inline.
|
// so we can fold-out the full version inline.
|
||||||
|
|
||||||
// @fixme I18N this tooltip will be saved with the site's default language
|
// @fixme I18N this tooltip will be saved with the site's default language
|
||||||
// TRANS: Shown when a notice is longer than supported and/or when attachments are present. At runtime this will usually be replaced with localized text from StatusNet core messages.
|
// TRANS: Shown when a notice is longer than supported and/or when attachments are present. At runtime
|
||||||
|
// TRANS: this will usually be replaced with localised text from StatusNet core messages.
|
||||||
$showMoreText = _m('Show more');
|
$showMoreText = _m('Show more');
|
||||||
$attachUrl = common_local_url('attachment',
|
$attachUrl = common_local_url('attachment',
|
||||||
array('attachment' => $attachment->id));
|
array('attachment' => $attachment->id));
|
||||||
|
@ -840,7 +843,7 @@ class Ostatus_profile extends Memcached_DataObject
|
||||||
return self::ensureFeedURL($feedurl, $hints);
|
return self::ensureFeedURL($feedurl, $hints);
|
||||||
}
|
}
|
||||||
|
|
||||||
// TRANS: Exception.
|
// TRANS: Exception. %s is a URL.
|
||||||
throw new Exception(sprintf(_m('Could not find a feed URL for profile page %s.'),$finalUrl));
|
throw new Exception(sprintf(_m('Could not find a feed URL for profile page %s.'),$finalUrl));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -978,6 +981,7 @@ class Ostatus_profile extends Memcached_DataObject
|
||||||
}
|
}
|
||||||
|
|
||||||
// XXX: make some educated guesses here
|
// XXX: make some educated guesses here
|
||||||
|
// TRANS: Feed sub exception.
|
||||||
throw new FeedSubException(_m('Can\'t find enough profile information to make a feed.'));
|
throw new FeedSubException(_m('Can\'t find enough profile information to make a feed.'));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1037,6 +1041,7 @@ class Ostatus_profile extends Memcached_DataObject
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (!common_valid_http_url($url)) {
|
if (!common_valid_http_url($url)) {
|
||||||
|
// TRANS: Server exception. %s is a URL.
|
||||||
throw new ServerException(sprintf(_m("Invalid avatar URL %s."), $url));
|
throw new ServerException(sprintf(_m("Invalid avatar URL %s."), $url));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1047,6 +1052,7 @@ class Ostatus_profile extends Memcached_DataObject
|
||||||
}
|
}
|
||||||
if (!$self) {
|
if (!$self) {
|
||||||
throw new ServerException(sprintf(
|
throw new ServerException(sprintf(
|
||||||
|
// TRANS: Server exception. %s is a URI.
|
||||||
_m("Tried to update avatar for unsaved remote profile %s."),
|
_m("Tried to update avatar for unsaved remote profile %s."),
|
||||||
$this->uri));
|
$this->uri));
|
||||||
}
|
}
|
||||||
|
@ -1056,6 +1062,7 @@ class Ostatus_profile extends Memcached_DataObject
|
||||||
$temp_filename = tempnam(sys_get_temp_dir(), 'listener_avatar');
|
$temp_filename = tempnam(sys_get_temp_dir(), 'listener_avatar');
|
||||||
try {
|
try {
|
||||||
if (!copy($url, $temp_filename)) {
|
if (!copy($url, $temp_filename)) {
|
||||||
|
// TRANS: Server exception. %s is a URL.
|
||||||
throw new ServerException(sprintf(_m("Unable to fetch avatar from %s."), $url));
|
throw new ServerException(sprintf(_m("Unable to fetch avatar from %s."), $url));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1338,7 +1345,7 @@ class Ostatus_profile extends Memcached_DataObject
|
||||||
|
|
||||||
$oprofile->profile_id = $profile->insert();
|
$oprofile->profile_id = $profile->insert();
|
||||||
if (!$oprofile->profile_id) {
|
if (!$oprofile->profile_id) {
|
||||||
// TRANS: Exception.
|
// TRANS: Server exception.
|
||||||
throw new ServerException(_m('Can\'t save local profile.'));
|
throw new ServerException(_m('Can\'t save local profile.'));
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
|
@ -1349,7 +1356,7 @@ class Ostatus_profile extends Memcached_DataObject
|
||||||
|
|
||||||
$oprofile->group_id = $group->insert();
|
$oprofile->group_id = $group->insert();
|
||||||
if (!$oprofile->group_id) {
|
if (!$oprofile->group_id) {
|
||||||
// TRANS: Exception.
|
// TRANS: Server exception.
|
||||||
throw new ServerException(_m('Can\'t save local profile.'));
|
throw new ServerException(_m('Can\'t save local profile.'));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1357,7 +1364,7 @@ class Ostatus_profile extends Memcached_DataObject
|
||||||
$ok = $oprofile->insert();
|
$ok = $oprofile->insert();
|
||||||
|
|
||||||
if (!$ok) {
|
if (!$ok) {
|
||||||
// TRANS: Exception.
|
// TRANS: Server exception.
|
||||||
throw new ServerException(_m('Can\'t save OStatus profile.'));
|
throw new ServerException(_m('Can\'t save OStatus profile.'));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1796,6 +1803,7 @@ class Ostatus_profile extends Memcached_DataObject
|
||||||
|
|
||||||
if ($file_id === false) {
|
if ($file_id === false) {
|
||||||
common_log_db_error($file, "INSERT", __FILE__);
|
common_log_db_error($file, "INSERT", __FILE__);
|
||||||
|
// TRANS: Server exception.
|
||||||
throw new ServerException(_m('Could not store HTML content of long post as file.'));
|
throw new ServerException(_m('Could not store HTML content of long post as file.'));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user