diff --git a/src/js/app/index.js b/src/js/app/index.js
index 69e1fdce..072b7945 100644
--- a/src/js/app/index.js
+++ b/src/js/app/index.js
@@ -1,6 +1,7 @@
var Backbone = require('backbone');
var EventEmitter = require('events').EventEmitter;
var React = require('react');
+var _ = require('underscore');
var assign = require('object-assign');
var util = require('../util');
@@ -86,6 +87,22 @@ var vcsModeRefresh = function(eventData) {
$('body').toggleClass('hgMode', !isGit);
};
+var insertAlternateLinks = function(pageId) {
+ // For now pageId is null, which would link to the main page.
+ // In future if pageId is provided this method should link to a specific page
+
+ // The value of the hreflang attribute identifies the language (in ISO 639-1 format)
+ // and optionally a region (in ISO 3166-1 Alpha 2 format) of an alternate URL
+ var altLinks = _.map(LocaleStore.getSupportedLocales(), function(langCode) {
+ var url = "https://learngitbranching.js.org/?locale=" + langCode;
+ return '';
+ });
+ var defaultUrl = "https://learngitbranching.js.org/?locale=" + LocaleStore.getDefaultLocale();
+ altLinks.push('');
+ $('head').prepend(altLinks);
+
+};
+
var intlRefresh = function() {
if (!window.$) { return; }
$('span.intl-aware').each(function(i, el) {
@@ -249,6 +266,8 @@ var initDemo = function(sandbox) {
tryLocaleDetect();
}
+ insertAlternateLinks();
+
if (params.command) {
var command = unescape(params.command);
sandbox.mainVis.customEvents.on('gitEngineReady', function() {
@@ -328,4 +347,3 @@ exports.getLevelDropdown = function() {
};
exports.init = init;
-
diff --git a/src/js/stores/LocaleStore.js b/src/js/stores/LocaleStore.js
index 3b1a27b4..227bdd67 100644
--- a/src/js/stores/LocaleStore.js
+++ b/src/js/stores/LocaleStore.js
@@ -3,6 +3,7 @@
var AppConstants = require('../constants/AppConstants');
var AppDispatcher = require('../dispatcher/AppDispatcher');
var EventEmitter = require('events').EventEmitter;
+var _ = require('underscore');
var assign = require('object-assign');
@@ -30,6 +31,8 @@ var headerLocaleMap = {
'pt-BR': 'pt_BR'
};
+var supportedLocalesList = _.values(langLocaleMap).concat(_.values(headerLocaleMap));
+
function _getLocaleFromHeader(langString) {
var languages = langString.split(',');
var desiredLocale;
@@ -73,6 +76,10 @@ AppConstants.StoreSubscribePrototype,
return _locale;
},
+ getSupportedLocales: function() {
+ return assign({}, supportedLocalesList);
+ },
+
dispatchToken: AppDispatcher.register(function(payload) {
var action = payload.action;
var shouldInform = false;