diff --git a/lib/action.php b/lib/action.php
index 8ba2abc9f9..251b1dadac 100644
--- a/lib/action.php
+++ b/lib/action.php
@@ -277,6 +277,13 @@ class Action extends HTMLOutputter // lawsuit
$this->cssLink('css/display.css', $baseTheme, $media);
}
$this->cssLink('css/display.css', $mainTheme, $media);
+
+ // Additional styles for RTL languages
+ if (is_rtl(common_language())) {
+ if (file_exists(Theme::file('css/rtl.css'))) {
+ $this->cssLink('css/rtl.css', $mainTheme, $media);
+ }
+ }
}
/**
diff --git a/lib/apiaction.php b/lib/apiaction.php
index 64b4284f6a..7b2f70c07c 100644
--- a/lib/apiaction.php
+++ b/lib/apiaction.php
@@ -241,13 +241,13 @@ class ApiAction extends Action
// Is the requesting user following this user?
$twitter_user['following'] = false;
- $twitter_user['statusnet:blocking'] = false;
+ $twitter_user['statusnet_blocking'] = false;
$twitter_user['notifications'] = false;
if (isset($this->auth_user)) {
$twitter_user['following'] = $this->auth_user->isSubscribed($profile);
- $twitter_user['statusnet:blocking'] = $this->auth_user->hasBlocked($profile);
+ $twitter_user['statusnet_blocking'] = $this->auth_user->hasBlocked($profile);
// Notifications on?
$sub = Subscription::pkeyGet(array('subscriber' =>
@@ -317,6 +317,7 @@ class ApiAction extends Action
$twitter_status['source'] = $source;
$twitter_status['id'] = intval($notice->id);
+ $twitter_status['statusnet_conversation_id'] = intval($notice->conversation);
$replier_profile = null;
diff --git a/lib/language.php b/lib/language.php
index 2af62fea0c..d72380e466 100644
--- a/lib/language.php
+++ b/lib/language.php
@@ -289,6 +289,21 @@ function get_nice_language_list()
return $nice_lang;
}
+/*
+ * Check whether a language is right-to-left
+ *
+ * @param string $lang language code of the language to check
+ *
+ * @return boolean true if language is rtl
+ */
+
+function is_rtl($lang)
+{
+ $all_languages = common_config('site', 'languages');
+ $lang = $all_languages[$lang];
+ return ($lang['direction'] == 'rtl');
+}
+
/**
* Get a list of all languages that are enabled in the default config
*
diff --git a/plugins/Activity/ActivityPlugin.php b/plugins/Activity/ActivityPlugin.php
index cd47427e0a..b21fa90653 100644
--- a/plugins/Activity/ActivityPlugin.php
+++ b/plugins/Activity/ActivityPlugin.php
@@ -84,7 +84,7 @@ class ActivityPlugin extends Plugin
if (!empty($user)) {
$sub = Subscription::pkeyGet(array('subscriber' => $subscriber->id,
'subscribed' => $other->id));
- $rendered = sprintf(_m('%s started following %s.'),
+ $rendered = sprintf(_m('%s started following %s.'),
$subscriber->profileurl,
$subscriber->getBestName(),
$other->profileurl,
@@ -114,7 +114,7 @@ class ActivityPlugin extends Plugin
if(!$this->StopFollowUser) return true;
$user = $subscriber->getUser();
if (!empty($user)) {
- $rendered = sprintf(_m('%s stopped following %s.'),
+ $rendered = sprintf(_m('%s stopped following %s.'),
$subscriber->profileurl,
$subscriber->getBestName(),
$other->profileurl,
@@ -156,7 +156,7 @@ class ActivityPlugin extends Plugin
$fave = Fave::pkeyGet(array('user_id' => $user->id,
'notice_id' => $notice->id));
- $rendered = sprintf(_m('%s liked %s\'s update.'),
+ $rendered = sprintf(_m('%s liked %s\'s update.'),
$profile->profileurl,
$profile->getBestName(),
$notice->bestUrl(),
@@ -189,7 +189,7 @@ class ActivityPlugin extends Plugin
if (!empty($user)) {
$author = Profile::staticGet('id', $notice->profile_id);
- $rendered = sprintf(_m('%s stopped liking %s\'s update.'),
+ $rendered = sprintf(_m('%s stopped liking %s\'s update.'),
$profile->profileurl,
$profile->getBestName(),
$notice->bestUrl(),
@@ -230,7 +230,7 @@ class ActivityPlugin extends Plugin
return true;
}
- $rendered = sprintf(_m('%s joined the group %s.'),
+ $rendered = sprintf(_m('%s joined the group %s.'),
$profile->profileurl,
$profile->getBestName(),
$group->homeUrl(),
@@ -267,7 +267,7 @@ class ActivityPlugin extends Plugin
return true;
}
- $rendered = sprintf(_m('%s left the group %s.'),
+ $rendered = sprintf(_m('%s left the group %s.'),
$profile->profileurl,
$profile->getBestName(),
$group->homeUrl(),
diff --git a/plugins/Activity/joinlistitem.php b/plugins/Activity/joinlistitem.php
index 1979524001..5764f1d2e6 100644
--- a/plugins/Activity/joinlistitem.php
+++ b/plugins/Activity/joinlistitem.php
@@ -58,7 +58,7 @@ class JoinListItem extends SystemListItem
$out->elementStart('div', 'join-activity');
$profile = $mem->getMember();
$group = $mem->getGroup();
- $out->raw(sprintf(_m('%s joined the group %s.'),
+ $out->raw(sprintf(_m('%s joined the group %s.'),
$profile->profileurl,
$profile->getBestName(),
$group->homeUrl(),
diff --git a/plugins/Activity/systemlistitem.php b/plugins/Activity/systemlistitem.php
index d2b99c802e..0b8d2f4c02 100644
--- a/plugins/Activity/systemlistitem.php
+++ b/plugins/Activity/systemlistitem.php
@@ -56,7 +56,7 @@ class SystemListItem extends NoticeListItemAdapter
function showNotice()
{
$out = $this->nli->out;
- $out->elementStart('div');
+ $out->elementStart('div', 'entry-title');
$this->showContent();
$out->elementEnd('div');
}
diff --git a/plugins/DirectionDetector/DirectionDetectorPlugin.php b/plugins/DirectionDetector/DirectionDetectorPlugin.php
index be8dbea8e5..890af06807 100644
--- a/plugins/DirectionDetector/DirectionDetectorPlugin.php
+++ b/plugins/DirectionDetector/DirectionDetectorPlugin.php
@@ -42,15 +42,6 @@ class DirectionDetectorPlugin extends Plugin {
return true;
}
- /**
- * SN plugin API, here we will add css needed for modifiyed rendered
- *
- * @param Action $xml
- */
- public function onEndShowStatusNetStyles($xml){
- $xml->element('style', array('type' => 'text/css'), 'span.rtl {display:block;direction:rtl;text-align:right;float:right;} .notice .author {float:left}');
- }
-
/**
* is passed string a rtl content or not
*
diff --git a/theme/base/css/display.css b/theme/base/css/display.css
index 9ad1b4ec15..5d65c14cc8 100644
--- a/theme/base/css/display.css
+++ b/theme/base/css/display.css
@@ -1514,6 +1514,22 @@ content:'☠';
font-size:150%;
}
+#content .notice-source-system div.entry-title, .notice-source-system div.entry-content {
+ margin-left: 0;
+}
+
+#content .notice-source-system div.entry-title {
+ font-style: italic;
+ min-height: 0;
+}
+
+span.rtl {
+ display: block;
+ direction: rtl;
+ text-align: right;
+ float: right;
+}
+
/* override OStatus plugin style */
#form_ostatus_connect.form_settings.dialogbox, #form_ostatus_sub.dialogbox {
diff --git a/theme/base/css/rtl.css b/theme/base/css/rtl.css
new file mode 100644
index 0000000000..a9b6e593cd
--- /dev/null
+++ b/theme/base/css/rtl.css
@@ -0,0 +1 @@
+/* placeholder for RTL style */
diff --git a/theme/neo/css/rtl.css b/theme/neo/css/rtl.css
new file mode 100644
index 0000000000..a9b6e593cd
--- /dev/null
+++ b/theme/neo/css/rtl.css
@@ -0,0 +1 @@
+/* placeholder for RTL style */