JGirault has uploaded a new change for review. ( 
https://gerrit.wikimedia.org/r/343214 )

Change subject: Add dir attribute to each language in the top10 section
......................................................................

Add dir attribute to each language in the top10 section

Ensures text for right-to-left languages is displayed RTL,
and text for left-to-right languages is displayed LTR.

Bug: T122053
Change-Id: I5b3156282a434a197f1ff14d61c1e83b992a0d61
---
M dev/wikipedia.org/assets/js/page-localized.js
M dev/wikipedia.org/assets/js/topten-localized.js
M dev/wikipedia.org/controller.js
M dev/wikipedia.org/index.handlebars
A dev/wikipedia.org/rtl-languages.json
M dev/wikipedia.org/templates/top10.handlebars
M hbs-helpers.global.js
7 files changed, 56 insertions(+), 34 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/wikimedia/portals 
refs/changes/14/343214/1

diff --git a/dev/wikipedia.org/assets/js/page-localized.js 
b/dev/wikipedia.org/assets/js/page-localized.js
index 8ce8380..f42caba 100644
--- a/dev/wikipedia.org/assets/js/page-localized.js
+++ b/dev/wikipedia.org/assets/js/page-localized.js
@@ -11,42 +11,13 @@
  * If a translation value is missing, page will default to english.
  */
 
-( function ( wmTest, translationsHash, mw ) {
+( function ( wmTest, translationsHash, mw, rtlLangs ) {
 
        var primaryLang = wmTest.userLangs[ 0 ],
                storedTranslationHash,
                storedTranslations,
                l10nReq,
-               l10nInfo,
-               rtlLangs = [
-                       'ar',
-                       'arc',
-                       'arz',
-                       'bcc',
-                       'bgn',
-                       'bqi',
-                       'ckb',
-                       'dv',
-                       'fa',
-                       'glk',
-                       'he',
-                       'kk-cn',
-                       'kk-arab',
-                       'khw',
-                       'ks',
-                       'ku-arab',
-                       'lki',
-                       'lrc',
-                       'luz',
-                       'mzn',
-                       'pnb',
-                       'ps',
-                       'sd',
-                       'sdh',
-                       'ug',
-                       'ur',
-                       'yi'
-               ];
+               l10nInfo;
 
        /**
         * Helper function to safely parse JSON an return empty string on error.
@@ -216,4 +187,4 @@
                replacel10nText( l10nInfo );
        }
 
-}( wmTest, translationsHash, mw ) );
+}( wmTest, translationsHash, mw, rtlLangs ) );
diff --git a/dev/wikipedia.org/assets/js/topten-localized.js 
b/dev/wikipedia.org/assets/js/topten-localized.js
index d2f8637..162b63a 100644
--- a/dev/wikipedia.org/assets/js/topten-localized.js
+++ b/dev/wikipedia.org/assets/js/topten-localized.js
@@ -18,6 +18,7 @@
                topLinkLangs,
                storedTranslationHash = mw.storage.get( 'translationHash' ),
                storedTranslations;
+
        /**
         * Helper function to safely parse JSON an return empty string on error.
         *
@@ -260,6 +261,7 @@
                                localizeTopLink( repurposedTopLink, topLinkLang 
);
                                topLinksContainer.insertBefore( 
repurposedTopLink, topLinks[ i ] );
                        }
+                       ( topLinkNode || repurposedTopLink ).setAttribute( 
'dir', rtlLangs.indexOf( topLinkLang ) >= 0 ? 'rtl' : 'ltr' );
                }
        }
 
diff --git a/dev/wikipedia.org/controller.js b/dev/wikipedia.org/controller.js
index 0d4c47a..a0070f5 100644
--- a/dev/wikipedia.org/controller.js
+++ b/dev/wikipedia.org/controller.js
@@ -6,6 +6,7 @@
        stats = require( '../../data/stats' ),
        otherProjects = require( './other-projects.json' ),
        otherLanguages = require( './other-languages.json' ),
+       rtlLanguages = require( './rtl-languages.json' ),
        crypto = require( 'crypto' ),
        exec = require( 'child_process' ).execSync,
        top100000List,
@@ -112,6 +113,9 @@
        top100000Dropdown: top100000Dropdown,
        otherProjects: otherProjects,
        otherLanguages: otherLanguages,
+       rtlLanguages: rtlLanguages,
+       // The only "advantage" to do this instead of JSON.stringify is to get 
single quotes.
+       rtlLanguagesStringified: '[\'' + rtlLanguages.join('\',\'') + '\']',
        translationChecksum: cachebuster
 };
 
diff --git a/dev/wikipedia.org/index.handlebars 
b/dev/wikipedia.org/index.handlebars
index 4f0be4f..020be79 100644
--- a/dev/wikipedia.org/index.handlebars
+++ b/dev/wikipedia.org/index.handlebars
@@ -56,7 +56,8 @@
 }}
 <![if gt IE 7]>
 <script>
-    var translationsHash = '{{translationChecksum}}',
+    var rtlLangs = {{{rtlLanguagesStringified}}},
+    translationsHash = '{{translationChecksum}}',
     /*
      This object is used by l10n scripts (page-localized.js, 
topten-localized.js)
      to reveal the page content after l10n json is loaded.
diff --git a/dev/wikipedia.org/rtl-languages.json 
b/dev/wikipedia.org/rtl-languages.json
new file mode 100644
index 0000000..c18d7da
--- /dev/null
+++ b/dev/wikipedia.org/rtl-languages.json
@@ -0,0 +1,29 @@
+[
+       "ar",
+       "arc",
+       "arz",
+       "bcc",
+       "bgn",
+       "bqi",
+       "ckb",
+       "dv",
+       "fa",
+       "glk",
+       "he",
+       "kk-cn",
+       "kk-arab",
+       "khw",
+       "ks",
+       "ku-arab",
+       "lki",
+       "lrc",
+       "luz",
+       "mzn",
+       "pnb",
+       "ps",
+       "sd",
+       "sdh",
+       "ug",
+       "ur",
+       "yi"
+]
diff --git a/dev/wikipedia.org/templates/top10.handlebars 
b/dev/wikipedia.org/templates/top10.handlebars
index 714c876..3030118 100644
--- a/dev/wikipedia.org/templates/top10.handlebars
+++ b/dev/wikipedia.org/templates/top10.handlebars
@@ -11,7 +11,7 @@
     {{#each top10views}}
 
         <!-- #{{index}}. {{url}} - {{formatNumber views thousandSeparator=true 
rounded=true}} views/day -->
-        <div class="central-featured-lang lang{{index}}" lang="{{lang}}">
+        <div class="central-featured-lang lang{{index}}" lang="{{lang}}" 
dir="{{#has ../rtlLanguages lang}}rtl{{else}}ltr{{/has}}">
         <a id="js-link-box-{{lang}}"
            href="//{{url}}/"
            title="{{#if latin}}{{latin}}{{else}}{{name}}{{/if}} — {{siteName}} 
— {{slogan}}"
diff --git a/hbs-helpers.global.js b/hbs-helpers.global.js
index 733ff62..55deea0 100644
--- a/hbs-helpers.global.js
+++ b/hbs-helpers.global.js
@@ -113,4 +113,19 @@
        return options.fn( this );
 };
 
+/**
+ * Checks if an array contains an element.
+ *
+ * @param {Mixed} list
+ * @param {array} elem
+ * @param {Object} options Handlebars options object.
+ * @return {Function}
+ */
+helpers.has = function ( list, elem, options ) {
+       if ( list.indexOf( elem ) > -1 ) {
+               return options.fn( this );
+       }
+       return options.inverse( this );
+};
+
 module.exports = helpers;

-- 
To view, visit https://gerrit.wikimedia.org/r/343214
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I5b3156282a434a197f1ff14d61c1e83b992a0d61
Gerrit-PatchSet: 1
Gerrit-Project: wikimedia/portals
Gerrit-Branch: master
Gerrit-Owner: JGirault <[email protected]>

_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to