Issue 305 broken link because of language fixes (#322)

* without having having to worry about site design.

Let me know if double having is intentional

* distinguish case of no translation and en lang

* prettier recommends

* distinguish case of no translation and en lang

* prettier recommends

* merge with latest origin/master changes

* typo

* link with language fixes

* do not show language dropdown if only one enabled

* check translation outside of LanguageDropDown.render
This commit is contained in:
Richard Zhang 2017-12-19 17:44:43 -08:00 committed by Joel Marcey
parent 4a3da1f30a
commit a5e963dba1
8 changed files with 177 additions and 175 deletions

View file

@ -9,6 +9,7 @@
function execute(port) {
const extractTranslations = require('../write-translations.js');
const env = require('./env.js');
const translation = require('./translation.js');
const express = require('express');
const React = require('react');
@ -23,15 +24,12 @@ function execute(port) {
const glob = require('glob');
const chalk = require('chalk');
const translate = require('./translate.js');
const versionFallback = require('./versionFallback');
const feed = require('./feed.js');
const sitemap = require('./sitemap.js');
// const sitemap = require("sitemap");
const CWD = process.cwd();
const ENABLE_TRANSLATION = fs.existsSync(CWD + '/languages.js');
const ENABLE_VERSIONING = fs.existsSync(CWD + '/versions.json');
// remove a module and child modules from require cache, so server does not have
// to be restarted
@ -168,14 +166,14 @@ function execute(port) {
// determine what file to use according to its id
let file;
if (metadata.original_id) {
if (ENABLE_TRANSLATION && metadata.language !== 'en') {
if (env.translation.enabled && metadata.language !== 'en') {
file =
CWD + '/translated_docs/' + metadata.language + '/' + metadata.source;
} else {
file = CWD + '/versioned_docs/' + metadata.source;
}
} else {
if (metadata.language === 'en') {
if (!env.translation.enabled || metadata.language === 'en') {
file =
CWD + '/../' + readMetadata.getDocsPath() + '/' + metadata.source;
} else {
@ -197,12 +195,7 @@ function execute(port) {
rawContent = insertTableOfContents(rawContent);
}
let latestVersion;
if (ENABLE_VERSIONING) {
latestVersion = JSON.parse(
fs.readFileSync(CWD + '/versions.json', 'utf8')
)[0];
}
let latestVersion = env.latestVersion;
// replace any links to markdown files to their website html links
Object.keys(mdToHtml).forEach(function(key, index) {
@ -383,21 +376,21 @@ function execute(port) {
file = file.replace(siteConfig.baseUrl, '');
let userFile = CWD + '/pages/' + file;
let language = 'en';
let language = env.translation.enabled ? 'en' : '';
const regexLang = /(.*)\/.*\.html$/;
const match = regexLang.exec(req.path);
const parts = match[1].split('/');
const enabledLangTags = [];
for (let i = 0; i < translation['languages'].length; i++) {
enabledLangTags.push(translation['languages'][i].tag);
}
const enabledLangTags = env.translation
.enabledLanguages()
.map(lang => lang.tag);
for (let i = 0; i < parts.length; i++) {
if (enabledLangTags.indexOf(parts[i]) !== -1) {
language = parts[i];
}
}
let englishFile = CWD + '/pages/' + file;
if (language !== 'en') {
if (language && language !== 'en') {
englishFile = englishFile.replace('/' + language + '/', '/en/');
}