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