mirror of
https://github.com/pcottle/learnGitBranching.git
synced 2025-06-28 08:50:06 +02:00
Generate alternate url for different locales so search engine could find them all.
This commit is contained in:
parent
c801f9ed46
commit
89f3a5177b
2 changed files with 26 additions and 1 deletions
|
@ -1,6 +1,7 @@
|
||||||
var Backbone = require('backbone');
|
var Backbone = require('backbone');
|
||||||
var EventEmitter = require('events').EventEmitter;
|
var EventEmitter = require('events').EventEmitter;
|
||||||
var React = require('react');
|
var React = require('react');
|
||||||
|
var _ = require('underscore');
|
||||||
|
|
||||||
var assign = require('object-assign');
|
var assign = require('object-assign');
|
||||||
var util = require('../util');
|
var util = require('../util');
|
||||||
|
@ -86,6 +87,22 @@ var vcsModeRefresh = function(eventData) {
|
||||||
$('body').toggleClass('hgMode', !isGit);
|
$('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 '<link rel="alternate" hreflang="'+langCode+'" href="' + url +'" />';
|
||||||
|
});
|
||||||
|
var defaultUrl = "https://learngitbranching.js.org/?locale=" + LocaleStore.getDefaultLocale();
|
||||||
|
altLinks.push('<link rel="alternate" hreflang="x-default" href="' + defaultUrl +'" />');
|
||||||
|
$('head').prepend(altLinks);
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
var intlRefresh = function() {
|
var intlRefresh = function() {
|
||||||
if (!window.$) { return; }
|
if (!window.$) { return; }
|
||||||
$('span.intl-aware').each(function(i, el) {
|
$('span.intl-aware').each(function(i, el) {
|
||||||
|
@ -249,6 +266,8 @@ var initDemo = function(sandbox) {
|
||||||
tryLocaleDetect();
|
tryLocaleDetect();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
insertAlternateLinks();
|
||||||
|
|
||||||
if (params.command) {
|
if (params.command) {
|
||||||
var command = unescape(params.command);
|
var command = unescape(params.command);
|
||||||
sandbox.mainVis.customEvents.on('gitEngineReady', function() {
|
sandbox.mainVis.customEvents.on('gitEngineReady', function() {
|
||||||
|
@ -328,4 +347,3 @@ exports.getLevelDropdown = function() {
|
||||||
};
|
};
|
||||||
|
|
||||||
exports.init = init;
|
exports.init = init;
|
||||||
|
|
||||||
|
|
|
@ -3,6 +3,7 @@
|
||||||
var AppConstants = require('../constants/AppConstants');
|
var AppConstants = require('../constants/AppConstants');
|
||||||
var AppDispatcher = require('../dispatcher/AppDispatcher');
|
var AppDispatcher = require('../dispatcher/AppDispatcher');
|
||||||
var EventEmitter = require('events').EventEmitter;
|
var EventEmitter = require('events').EventEmitter;
|
||||||
|
var _ = require('underscore');
|
||||||
|
|
||||||
var assign = require('object-assign');
|
var assign = require('object-assign');
|
||||||
|
|
||||||
|
@ -30,6 +31,8 @@ var headerLocaleMap = {
|
||||||
'pt-BR': 'pt_BR'
|
'pt-BR': 'pt_BR'
|
||||||
};
|
};
|
||||||
|
|
||||||
|
var supportedLocalesList = _.values(langLocaleMap).concat(_.values(headerLocaleMap));
|
||||||
|
|
||||||
function _getLocaleFromHeader(langString) {
|
function _getLocaleFromHeader(langString) {
|
||||||
var languages = langString.split(',');
|
var languages = langString.split(',');
|
||||||
var desiredLocale;
|
var desiredLocale;
|
||||||
|
@ -73,6 +76,10 @@ AppConstants.StoreSubscribePrototype,
|
||||||
return _locale;
|
return _locale;
|
||||||
},
|
},
|
||||||
|
|
||||||
|
getSupportedLocales: function() {
|
||||||
|
return assign({}, supportedLocalesList);
|
||||||
|
},
|
||||||
|
|
||||||
dispatchToken: AppDispatcher.register(function(payload) {
|
dispatchToken: AppDispatcher.register(function(payload) {
|
||||||
var action = payload.action;
|
var action = payload.action;
|
||||||
var shouldInform = false;
|
var shouldInform = false;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue