From 0bd7fcbf38d71df62904bd4c86046e9c85c9085d Mon Sep 17 00:00:00 2001
From: Angie Byron <webchick@24967.no-reply.drupal.org>
Date: Mon, 3 Aug 2009 03:04:34 +0000
Subject: [PATCH] #226587 by JohnAlbin, E.Z, et al: Make sidebar regions
 semantic and RTL-friendly.

---
 includes/theme.inc                      |  8 ++---
 includes/theme.maintenance.inc          |  8 ++---
 modules/block/block.module              |  4 +--
 modules/block/block.test                | 14 ++++----
 modules/blog/blog.test                  |  2 +-
 modules/comment/comment.test            |  4 +--
 modules/forum/forum.test                |  4 +--
 modules/locale/locale.test              |  2 +-
 modules/menu/menu.test                  |  2 +-
 modules/system/admin-rtl.css            | 11 +++++++
 modules/system/admin.css                |  8 ++---
 modules/system/maintenance-page.tpl.php | 16 ++++-----
 modules/system/page.tpl.php             | 24 +++++++-------
 modules/system/system.install           |  4 +++
 modules/system/system.module            |  4 +--
 profiles/default/default.profile        |  6 ++--
 themes/garland/maintenance-page.tpl.php | 12 +++----
 themes/garland/minnelli/minnelli.css    |  4 +--
 themes/garland/page.tpl.php             | 14 ++++----
 themes/garland/print.css                |  6 ++--
 themes/garland/style-rtl.css            | 43 +++++++++++++++++++++++--
 themes/garland/style.css                | 38 +++++++++++-----------
 themes/stark/layout.css                 | 22 ++++++-------
 23 files changed, 156 insertions(+), 104 deletions(-)

diff --git a/includes/theme.inc b/includes/theme.inc
index d91386166cc9..15795e68bfc6 100644
--- a/includes/theme.inc
+++ b/includes/theme.inc
@@ -1898,11 +1898,11 @@ function template_preprocess_page(&$variables) {
 
   // Set up layout variable.
   $variables['layout'] = 'none';
-  if (!empty($variables['page']['left'])) {
-    $variables['layout'] = 'left';
+  if (!empty($variables['page']['sidebar_first'])) {
+    $variables['layout'] = 'first';
   }
-  if (!empty($variables['page']['right'])) {
-    $variables['layout'] = ($variables['layout'] == 'left') ? 'both' : 'right';
+  if (!empty($variables['page']['sidebar_second'])) {
+    $variables['layout'] = ($variables['layout'] == 'first') ? 'both' : 'second';
   }
 
   // Construct page title
diff --git a/includes/theme.maintenance.inc b/includes/theme.maintenance.inc
index 291b927c558e..2dacf27ab826 100644
--- a/includes/theme.maintenance.inc
+++ b/includes/theme.maintenance.inc
@@ -238,11 +238,11 @@ function template_preprocess_maintenance_page(&$variables) {
 
   // Setup layout variable.
   $variables['layout'] = 'none';
-  if (!empty($variables['left'])) {
-    $variables['layout'] = 'left';
+  if (!empty($variables['sidebar_first'])) {
+    $variables['layout'] = 'first';
   }
-  if (!empty($variables['right'])) {
-    $variables['layout'] = ($variables['layout'] == 'left') ? 'both' : 'right';
+  if (!empty($variables['sidebar_second'])) {
+    $variables['layout'] = ($variables['layout'] == 'first') ? 'both' : 'second';
   }
 
   // Construct page title
diff --git a/modules/block/block.module b/modules/block/block.module
index 6566324653f5..2f139a6146e9 100644
--- a/modules/block/block.module
+++ b/modules/block/block.module
@@ -241,8 +241,8 @@ function block_page_alter($page) {
 
   // Load all region content assigned via blocks.
   foreach (array_keys($all_regions) as $region) {
-    // Prevent left and right regions from rendering blocks when 'show_blocks' == FALSE.
-    if (!empty($page['#show_blocks']) || ($region != 'left' && $region != 'right')) {
+    // Prevent sidebar regions from rendering blocks when 'show_blocks' == FALSE.
+    if (!empty($page['#show_blocks']) || (strpos($region, 'sidebar_') !== 0)) {
       // Assign blocks to region.
       if ($blocks = block_get_blocks_by_region($region)) {
         $page[$region] = $blocks;
diff --git a/modules/block/block.test b/modules/block/block.test
index ca2d771e4a81..e5217d3f9a00 100644
--- a/modules/block/block.test
+++ b/modules/block/block.test
@@ -27,9 +27,9 @@ class BlockTestCase extends DrupalWebTestCase {
     // Define the existing regions
     $this->regions = array();
     $this->regions[] = array('name' => 'header', 'id' => 'header-region');
-    $this->regions[] = array('name' => 'left', 'id' => 'sidebar-left');
+    $this->regions[] = array('name' => 'sidebar_first', 'id' => 'sidebar-first');
     $this->regions[] = array('name' => 'content', 'id' => 'center');
-    $this->regions[] = array('name' => 'right', 'id' => 'sidebar-right');
+    $this->regions[] = array('name' => 'sidebar_second', 'id' => 'sidebar-second');
     $this->regions[] = array('name' => 'footer');
   }
 
@@ -80,7 +80,7 @@ class BlockTestCase extends DrupalWebTestCase {
     // Set the created box to a specific region.
     $bid = db_query("SELECT bid FROM {box} WHERE info = :info", array(':info' => $box['info']))->fetchField();
     $edit = array();
-    $edit['block_' . $bid . '[region]'] = 'left';
+    $edit['block_' . $bid . '[region]'] = $this->regions[1]['name'];
     $this->drupalPost('admin/structure/block', $edit, t('Save blocks'));
 
     // Confirm that the box is being displayed using configured text format.
@@ -115,7 +115,7 @@ class BlockTestCase extends DrupalWebTestCase {
     $edit['roles[2]'] = TRUE;
     $this->drupalPost('admin/structure/block/configure/' . $block['module'] . '/' . $block['delta'], $edit, t('Save block'));
 
-    // Move block to the left sidebar.
+    // Move block to the first sidebar.
     $this->moveBlockToRegion($block, $this->regions[1]);
 
     $this->drupalGet('');
@@ -171,9 +171,9 @@ class BlockTestCase extends DrupalWebTestCase {
 
     // For convenience of developers, put the navigation block back.
     $edit = array();
-    $edit[$block['module'] . '_' . $block['delta'] . '[region]'] = 'left';
+    $edit[$block['module'] . '_' . $block['delta'] . '[region]'] = $this->regions[1]['name'];
     $this->drupalPost('admin/structure/block', $edit, t('Save blocks'));
-    $this->assertText(t('The block settings have been updated.'), t('Block successfully move to left region.'));
+    $this->assertText(t('The block settings have been updated.'), t('Block successfully move to first sidebar region.'));
 
     $this->drupalPost('admin/structure/block/configure/' . $block['module'] . '/' . $block['delta'], array('title' => 'Navigation'), t('Save block'));
     $this->assertText(t('The block configuration has been saved.'), t('Block title set.'));
@@ -262,7 +262,7 @@ class NewDefaultThemeBlocks extends DrupalWebTestCase {
     $result = db_query("SELECT * FROM {block} WHERE theme='stark'");
     foreach ($result as $block) {
       unset($block->theme, $block->bid);
-      $this->assertEqual($blocks[$block->module][$block->delta], $block, t('Block matched'));
+      $this->assertEqual($blocks[$block->module][$block->delta], $block, t('Block %name matched', array('%name' => $block->module . '-' . $block->delta)));
     }
   }
 }
diff --git a/modules/blog/blog.test b/modules/blog/blog.test
index 70a43ea3f2a2..fea8d6edb163 100644
--- a/modules/blog/blog.test
+++ b/modules/blog/blog.test
@@ -62,7 +62,7 @@ class BlogTestCase extends DrupalWebTestCase {
     $this->drupalLogin($this->big_user);
     // Enable the recent blog block.
     $edit = array();
-    $edit['blog_recent[region]'] = 'right';
+    $edit['blog_recent[region]'] = 'sidebar_second';
     $this->drupalPost('admin/structure/block', $edit, t('Save blocks'));
     $this->assertResponse(200);
 
diff --git a/modules/comment/comment.test b/modules/comment/comment.test
index d5de02a28f6e..588d7ae82fd7 100644
--- a/modules/comment/comment.test
+++ b/modules/comment/comment.test
@@ -651,10 +651,10 @@ class CommentBlockFunctionalTest extends CommentHelperCase {
 
     // Set the block to a region to confirm block is available.
     $edit = array(
-      'comment_recent[region]' => 'left',
+      'comment_recent[region]' => 'sidebar_first',
     );
     $this->drupalPost('admin/structure/block', $edit, t('Save blocks'));
-    $this->assertText(t('The block settings have been updated.'), t('Block saved to left region.'));
+    $this->assertText(t('The block settings have been updated.'), t('Block saved to first sidebar region.'));
 
     // Set block title and variables.
     $block = array(
diff --git a/modules/forum/forum.test b/modules/forum/forum.test
index 9abfc5f23a40..f3137edac4ec 100644
--- a/modules/forum/forum.test
+++ b/modules/forum/forum.test
@@ -76,14 +76,14 @@ class ForumTestCase extends DrupalWebTestCase {
 
     // Enable the active forum block.
     $edit = array();
-    $edit['forum_active[region]'] = 'right';
+    $edit['forum_active[region]'] = 'sidebar_second';
     $this->drupalPost('admin/structure/block', $edit, t('Save blocks'));
     $this->assertResponse(200);
     $this->assertText(t('The block settings have been updated.'), t('[Active forum topics] Forum block was enabled'));
 
     // Enable the new forum block.
     $edit = array();
-    $edit['forum_new[region]'] = 'right';
+    $edit['forum_new[region]'] = 'sidebar_second';
     $this->drupalPost('admin/structure/block', $edit, t('Save blocks'));
     $this->assertResponse(200);
     $this->assertText(t('The block settings have been updated.'), t('[New forum topics] Forum block was enabled'));
diff --git a/modules/locale/locale.test b/modules/locale/locale.test
index 57605f1a5cf8..3138348a5dba 100644
--- a/modules/locale/locale.test
+++ b/modules/locale/locale.test
@@ -1055,7 +1055,7 @@ class LanguageSwitchingFunctionalTest extends DrupalWebTestCase {
   function testLanguageBlock() {
     // Enable the language switching block.
     $edit = array(
-      'locale_language-switcher[region]' => 'left',
+      'locale_language-switcher[region]' => 'sidebar_first',
     );
     $this->drupalPost('admin/structure/block', $edit, t('Save blocks'));
 
diff --git a/modules/menu/menu.test b/modules/menu/menu.test
index afb1a2405ec9..6161843a0f59 100644
--- a/modules/menu/menu.test
+++ b/modules/menu/menu.test
@@ -125,7 +125,7 @@ class MenuTestCase extends DrupalWebTestCase {
     // Enable the custom menu block.
     $menu_name = 'menu-' . $menu_name; // Drupal prepends the name with 'menu-'.
     $edit = array();
-    $edit['menu_' . $menu_name . '[region]'] = 'left';
+    $edit['menu_' . $menu_name . '[region]'] = 'sidebar_first';
     $this->drupalPost('admin/structure/block', $edit, t('Save blocks'));
     $this->assertResponse(200);
     $this->assertText(t('The block settings have been updated.'), t('Custom menu block was enabled'));
diff --git a/modules/system/admin-rtl.css b/modules/system/admin-rtl.css
index 08f12acd7239..f9420333a480 100644
--- a/modules/system/admin-rtl.css
+++ b/modules/system/admin-rtl.css
@@ -4,6 +4,17 @@ div.admin-panel .body {
   padding: 0 8px 2px 4px;
 }
 
+div.admin .left {
+  float: right;
+  margin-left: 0;
+  margin-right: 1em;
+}
+div.admin .right {
+  float: left;
+  margin-left: 1em;
+  margin-right: 0;
+}
+
 div.admin .expert-link {
   text-align: left;
   margin-right: 0;
diff --git a/modules/system/admin.css b/modules/system/admin.css
index e37c696448af..0f11126e55e6 100644
--- a/modules/system/admin.css
+++ b/modules/system/admin.css
@@ -22,14 +22,14 @@ div.admin {
 }
 
 div.admin .left {
-  float: left;
+  float: left; /* LTR */
   width: 47%;
-  margin-left: 1em;
+  margin-left: 1em; /* LTR */
 }
 div.admin .right {
-  float: right;
+  float: right; /* LTR */
   width: 47%;
-  margin-right: 1em;
+  margin-right: 1em; /* LTR */
 }
 
 div.admin .expert-link {
diff --git a/modules/system/maintenance-page.tpl.php b/modules/system/maintenance-page.tpl.php
index e411afd11a5d..cd4127927ec0 100644
--- a/modules/system/maintenance-page.tpl.php
+++ b/modules/system/maintenance-page.tpl.php
@@ -57,10 +57,10 @@
 
     <div id="container" class="clearfix">
 
-      <?php if (!empty($left)): ?>
-        <div id="sidebar-left" class="column sidebar">
-          <?php print $left; ?>
-        </div> <!-- /sidebar-left -->
+      <?php if (!empty($sidebar_first)): ?>
+        <div id="sidebar-first" class="column sidebar">
+          <?php print $sidebar_first; ?>
+        </div> <!-- /sidebar-first -->
       <?php endif; ?>
 
       <div id="main" class="column"><div id="main-squeeze">
@@ -75,10 +75,10 @@
 
       </div></div> <!-- /main-squeeze /main -->
 
-      <?php if (!empty($right)): ?>
-        <div id="sidebar-right" class="column sidebar">
-          <?php print $right; ?>
-        </div> <!-- /sidebar-right -->
+      <?php if (!empty($sidebar_second)): ?>
+        <div id="sidebar-second" class="column sidebar">
+          <?php print $sidebar_second; ?>
+        </div> <!-- /sidebar-second -->
       <?php endif; ?>
 
     </div> <!-- /container -->
diff --git a/modules/system/page.tpl.php b/modules/system/page.tpl.php
index ac6e2c383787..7b4cc420e007 100644
--- a/modules/system/page.tpl.php
+++ b/modules/system/page.tpl.php
@@ -46,10 +46,10 @@
  *   - node-type-[node type]: When viewing a single node, the type of that node.
  *     For example, if the node is a "Blog entry" it would result in "node-type-blog".
  *     Note that the machine name will often be in a short form of the human readable label.
- *   The following only apply with the default 'left' and 'right' block regions:
+ *   The following only apply with the default 'sidebar_first' and 'sidebar_second' block regions:
  *     - two-sidebars: When both sidebars have content.
  *     - no-sidebars: When no sidebar content exists.
- *     - one-sidebar and sidebar-left or sidebar-right: A combination of the two classes
+ *     - one-sidebar and sidebar-first or sidebar-second: A combination of the two classes
  *       when only one of the two sidebars have content.
  *
  * Site identity:
@@ -77,8 +77,8 @@
  * - $help: Dynamic help text, mostly for admin pages.
  * - $content: The main content of the current page.
  * - $feed_icons: A string of all feed icons for the current page.
- * - $left: Items for the left sidebar.
- * - $right: Items for the right sidebar.
+ * - $sidebar_first: Items for the first sidebar.
+ * - $sidebar_second: Items for the second sidebar.
  * - $highlight: Items for the highlighted content region.
  *
  * Opening and closing data:
@@ -177,16 +177,16 @@
         <?php print $feed_icons; ?>
       </div></div> <!-- /.section, /#content -->
 
-      <?php if ($left): ?>
-        <div id="sidebar-left" class="column sidebar"><div class="section region">
-          <?php print $left; ?>
-        </div></div> <!-- /.section, /#sidebar-left -->
+      <?php if ($sidebar_first): ?>
+        <div id="sidebar-first" class="column sidebar"><div class="section region">
+          <?php print $sidebar_first; ?>
+        </div></div> <!-- /.section, /#sidebar-first -->
       <?php endif; ?>
 
-      <?php if ($right): ?>
-        <div id="sidebar-right" class="column sidebar"><div class="section region">
-          <?php print $right; ?>
-        </div></div> <!-- /.section, /#sidebar-right -->
+      <?php if ($sidebar_second): ?>
+        <div id="sidebar-second" class="column sidebar"><div class="section region">
+          <?php print $sidebar_second; ?>
+        </div></div> <!-- /.section, /#sidebar-second -->
       <?php endif; ?>
 
     </div></div> <!-- /#main, /#main-wrapper -->
diff --git a/modules/system/system.install b/modules/system/system.install
index 084248a0c462..3d22444156e0 100644
--- a/modules/system/system.install
+++ b/modules/system/system.install
@@ -1987,6 +1987,10 @@ function system_update_7021() {
     $ret[] = update_sql("INSERT INTO {block} (module, delta, theme, status, weight, region, pages, cache) VALUES ('system', 'main', '" . $theme->name . "', 1, 0, 'content', '', -1)");
   }
 
+  // Migrate blocks from left/right regions to first/second regions.
+  $ret[] = update_sql("UPDATE {block} SET region = 'sidebar_first' WHERE region = 'left'");
+  $ret[] = update_sql("UPDATE {block} SET region = 'sidebar_second' WHERE region = 'right'");
+
   // Migrate contact form information.
   if ($contact_help = variable_get('contact_form_information', '')) {
     $bid = db_insert('box')->fields(array('body' => $contact_help, 'info' => 'Contact page help', 'format' => FILTER_FORMAT_DEFAULT))->execute();
diff --git a/modules/system/system.module b/modules/system/system.module
index bcd4b8d7d6ec..b4e6ef55f180 100644
--- a/modules/system/system.module
+++ b/modules/system/system.module
@@ -1841,8 +1841,8 @@ function _system_get_theme_data() {
     // Set defaults for theme info.
     $defaults = array(
       'regions' => array(
-        'left' => 'Left sidebar',
-        'right' => 'Right sidebar',
+        'sidebar_first' => 'Left sidebar',
+        'sidebar_second' => 'Right sidebar',
         'content' => 'Content',
         'header' => 'Header',
         'footer' => 'Footer',
diff --git a/profiles/default/default.profile b/profiles/default/default.profile
index 67374ee3ef74..15a640749900 100644
--- a/profiles/default/default.profile
+++ b/profiles/default/default.profile
@@ -40,7 +40,7 @@ function default_profile_site_setup(&$install_state) {
       'theme' => 'garland',
       'status' => 1,
       'weight' => 0,
-      'region' => 'left',
+      'region' => 'sidebar_first',
       'pages' => '',
       'cache' => -1,
     ),
@@ -50,7 +50,7 @@ function default_profile_site_setup(&$install_state) {
       'theme' => 'garland',
       'status' => 1,
       'weight' => 0,
-      'region' => 'left',
+      'region' => 'sidebar_first',
       'pages' => '',
       'cache' => -1,
     ),
@@ -60,7 +60,7 @@ function default_profile_site_setup(&$install_state) {
       'theme' => 'garland',
       'status' => 1,
       'weight' => 1,
-      'region' => 'left',
+      'region' => 'sidebar_first',
       'pages' => '',
       'cache' => -1,
     ),
diff --git a/themes/garland/maintenance-page.tpl.php b/themes/garland/maintenance-page.tpl.php
index 74dc026cd7ce..3d888541ffa2 100644
--- a/themes/garland/maintenance-page.tpl.php
+++ b/themes/garland/maintenance-page.tpl.php
@@ -61,10 +61,10 @@
 
       </div> <!-- /header -->
 
-      <?php if ($left): ?>
-        <div id="sidebar-left" class="sidebar">
+      <?php if ($sidebar_first): ?>
+        <div id="sidebar-first" class="sidebar">
           <?php if ($search_box): ?><div class="block block-theme"><?php print $search_box ?></div><?php endif; ?>
-          <?php print $left ?>
+          <?php print $sidebar_first ?>
         </div>
       <?php endif; ?>
 
@@ -78,9 +78,9 @@
           <div id="footer"><?php print $footer ?></div>
       </div></div></div></div> <!-- /.left-corner, /.right-corner, /#squeeze, /#center -->
 
-      <?php if ($right): ?>
-        <div id="sidebar-right" class="sidebar">
-          <?php print $right ?>
+      <?php if ($sidebar_second): ?>
+        <div id="sidebar-second" class="sidebar">
+          <?php print $sidebar_second ?>
         </div>
       <?php endif; ?>
 
diff --git a/themes/garland/minnelli/minnelli.css b/themes/garland/minnelli/minnelli.css
index e55942cb2cf3..017801d9b4c1 100644
--- a/themes/garland/minnelli/minnelli.css
+++ b/themes/garland/minnelli/minnelli.css
@@ -8,7 +8,7 @@ body.two-sidebars #wrapper #container {
   width: 980px;
 }
 
-body.sidebar-left #wrapper #container,
-body.sidebar-right #wrapper #container {
+body.sidebar-first #wrapper #container,
+body.sidebar-second #wrapper #container {
   width: 770px;
 }
diff --git a/themes/garland/page.tpl.php b/themes/garland/page.tpl.php
index 0f05af6351bc..0bf43da70b9a 100644
--- a/themes/garland/page.tpl.php
+++ b/themes/garland/page.tpl.php
@@ -38,10 +38,10 @@
         <?php if ($secondary_nav): print $secondary_nav; endif; ?>
       </div> <!-- /#header -->
 
-      <?php if ($left): ?>
-        <div id="sidebar-left" class="sidebar">
+      <?php if ($sidebar_first): ?>
+        <div id="sidebar-first" class="sidebar">
           <?php if ($search_box): ?><div class="block block-theme"><?php print $search_box ?></div><?php endif; ?>
-          <?php print $left ?>
+          <?php print $sidebar_first ?>
         </div>
       <?php endif; ?>
 
@@ -61,10 +61,10 @@
           <div id="footer"><?php print $footer ?></div>
       </div></div></div></div> <!-- /.left-corner, /.right-corner, /#squeeze, /#center -->
 
-      <?php if ($right): ?>
-        <div id="sidebar-right" class="sidebar">
-          <?php if (!$left && $search_box): ?><div class="block block-theme"><?php print $search_box ?></div><?php endif; ?>
-          <?php print $right ?>
+      <?php if ($sidebar_second): ?>
+        <div id="sidebar-second" class="sidebar">
+          <?php if (!$sidebar_first && $search_box): ?><div class="block block-theme"><?php print $search_box ?></div><?php endif; ?>
+          <?php print $sidebar_second ?>
         </div>
       <?php endif; ?>
 
diff --git a/themes/garland/print.css b/themes/garland/print.css
index 36d7f2b20dcd..67c0f79dddd3 100644
--- a/themes/garland/print.css
+++ b/themes/garland/print.css
@@ -12,12 +12,12 @@ ul.main-menu, ul.secondary-menu,
   display: none;
 }
 
-body.two-sidebars, body.sidebar-left, body.sidebar-right, body {
+body.two-sidebars, body.sidebar-first, body.sidebar-second, body {
   width: 640px;
 }
 
-body.sidebar-left #center, body.sidebar-right #center, body.two-sidebars #center,
-body.sidebar-left #squeeze, body.sidebar-right #squeeze, body.two-sidebars #squeeze {
+body.sidebar-first #center, body.sidebar-second #center, body.two-sidebars #center,
+body.sidebar-first #squeeze, body.sidebar-second #squeeze, body.two-sidebars #squeeze {
   margin: 0;
 }
 
diff --git a/themes/garland/style-rtl.css b/themes/garland/style-rtl.css
index a8cf3557e6a9..5f9c1b308e39 100644
--- a/themes/garland/style-rtl.css
+++ b/themes/garland/style-rtl.css
@@ -86,11 +86,48 @@ dl dd {
   float: right;
 }
 
-#sidebar-left .block-region {
+#wrapper #container #center {
+  float: right;
+}
+
+body.sidebar-first #center {
+  margin-left: 0;
+  margin-right: -210px;
+}
+body.sidebar-second #center {
+  margin-left: -210px;
+  margin-right: 0;
+}
+
+/* And add blanks left and right for the sidebars to fill */
+body.sidebar-first #squeeze {
+  margin-left: 0;
+  margin-right: 210px;
+}
+body.sidebar-second #squeeze {
+  margin-left: 210px;
+  margin-right: 0;
+}
+
+#wrapper #container .sidebar {
+  float: right;
+}
+
+#sidebar-first .block {
+  padding: 0 0 0 15px;
+}
+
+#sidebar-second .block {
+  padding: 0 15px 0 0;
+}
+
+
+
+#sidebar-first .block-region {
   margin: 0 0 0 15px;
 }
 
-#sidebar-right .block-region {
+#sidebar-second .block-region {
   margin: 0 15px 0px 0;
 }
 
@@ -270,7 +307,7 @@ ul.secondary li a, ul.secondary li.active a, ul.secondary li a:hover, ul.seconda
   position: relative;
 }
 
-#sidebar-right{
+#sidebar-second {
   position: absolute;
   right: 0;
 }
diff --git a/themes/garland/style.css b/themes/garland/style.css
index f51c2c7e4a81..0b87e836a06c 100644
--- a/themes/garland/style.css
+++ b/themes/garland/style.css
@@ -377,33 +377,33 @@ body.two-sidebars {
   min-width: 980px;
 }
 /* With 2 columns, require a minimum width of 800px. */
-body.sidebar-left, body.sidebar-right {
+body.sidebar-first, body.sidebar-second {
   min-width: 780px;
 }
 
 /* We must define 100% width to avoid the body being too narrow for near-empty pages */
 #wrapper #container #center {
-  float: left;
+  float: left; /* LTR */
   width: 100%;
 }
 
 /* So we move the #center container over the sidebars to compensate */
-body.sidebar-left #center {
-  margin-left: -210px;
+body.sidebar-first #center {
+  margin-left: -210px; /* LTR */
 }
-body.sidebar-right #center {
-  margin-right: -210px;
+body.sidebar-second #center {
+  margin-right: -210px; /* LTR */
 }
 body.two-sidebars #center {
   margin: 0 -210px;
 }
 
 /* And add blanks left and right for the sidebars to fill */
-body.sidebar-left #squeeze {
-  margin-left: 210px;
+body.sidebar-first #squeeze {
+  margin-left: 210px; /* LTR */
 }
-body.sidebar-right #squeeze {
-  margin-right: 210px;
+body.sidebar-second #squeeze {
+  margin-right: 210px; /* LTR */
 }
 body.two-sidebars #squeeze {
   margin: 0 210px;
@@ -413,7 +413,7 @@ body.two-sidebars #squeeze {
 #wrapper #container .sidebar {
   margin: 60px 0 5em;
   width: 210px;
-  float: left;
+  float: left; /* LTR */
   z-index: 2;
   position: relative;
 }
@@ -422,23 +422,23 @@ body.two-sidebars #squeeze {
   margin: 0 0 1.5em 0;
 }
 
-#sidebar-left .block {
-  padding: 0 15px 0 0px;
+#sidebar-first .block {
+  padding: 0 15px 0 0; /* LTR */
 }
 
-#sidebar-right .block {
-  padding: 0 0px 0 15px;
+#sidebar-second .block {
+  padding: 0 0 0 15px; /* LTR */
 }
 
 .block .content {
   margin: 0.5em 0;
 }
 
-#sidebar-left .block-region {
+#sidebar-first .block-region {
   margin: 0 15px 0 0px; /* LTR */
 }
 
-#sidebar-right .block-region {
+#sidebar-second .block-region {
   margin: 0 0px 0 15px; /* LTR */
 }
 
@@ -486,11 +486,11 @@ body.two-sidebars #squeeze {
   z-index: 3;
 }
 
-body.sidebar-left #footer {
+body.sidebar-first #footer {
   margin-left: -210px;
 }
 
-body.sidebar-right #footer {
+body.sidebar-second #footer {
   margin-right: -210px;
 }
 
diff --git a/themes/stark/layout.css b/themes/stark/layout.css
index 0d87d6e2b6d0..67f3117c833a 100644
--- a/themes/stark/layout.css
+++ b/themes/stark/layout.css
@@ -17,8 +17,8 @@
  */
 
 #content,
-#sidebar-left,
-#sidebar-right {
+#sidebar-first,
+#sidebar-second {
   float: left;
   display: inline;
   position: relative;
@@ -27,11 +27,11 @@
 #content {
   width: 100%;
 }
-body.sidebar-left #content {
+body.sidebar-first #content {
   width: 80%;
-  left: 20%;
+  left: 20%; /* LTR */
 }
-body.sidebar-right #content {
+body.sidebar-second #content {
   width: 80%;
 }
 body.two-sidebars #content {
@@ -39,17 +39,17 @@ body.two-sidebars #content {
   left: 20%;
 }
 
-#sidebar-left {
+#sidebar-first {
   width: 20%;
-  left: -80%;
+  left: -80%; /* LTR */
 }
 
-body.two-sidebars #sidebar-left {
-  left: -60%;
+body.two-sidebars #sidebar-first {
+  left: -60%; /* LTR */
 }
 
-#sidebar-right {
-  float: right;
+#sidebar-second {
+  float: right; /* LTR */
   width: 20%;
 }
 
-- 
GitLab