From bfb28441b4aaf86a77d2949c7ea09931da01cc68 Mon Sep 17 00:00:00 2001 From: Eric Nakagawa Date: Thu, 19 Oct 2017 09:57:10 -0700 Subject: [PATCH 1/3] This PR will create a default set of docs to use when localization is enabled. This allows seeing using the site without having synced with crowdin. Once synced, those files will replace the default set generated by this PR. --- lib/server/readMetadata.js | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/lib/server/readMetadata.js b/lib/server/readMetadata.js index 7c71981c47..4429668741 100644 --- a/lib/server/readMetadata.js +++ b/lib/server/readMetadata.js @@ -191,6 +191,7 @@ function generateMetadataDocs() { }); const metadatas = {}; + const defaultMetadatas = {}; // metadata for english files let files = glob.sync(CWD + "/../docs/**"); @@ -206,6 +207,34 @@ function generateMetadataDocs() { } let metadata = res.metadata; metadatas[metadata.id] = metadata; + + // create a default list of documents for each enabled language based on docs in English + // these will get replaced if/when the localized file is downloaded from crowdin + enabledLanguages + .filter(language => { + return language != "en"; + }) + .map(language => { + let baseMetadata = Object.assign({}, metadata); + baseMetadata["id"] = baseMetadata["id"] + .toString() + .replace(/^en-/, language + "-"); + if (baseMetadata["permalink"]) + baseMetadata["permalink"] = baseMetadata["permalink"] + .toString() + .replace(/^ddocs\/en/, "docs/" + language + "/"); + if (baseMetadata["next"]) + baseMetadata["next"] = baseMetadata["next"] + .toString() + .replace(/^en-/, language + "-"); + if (baseMetadata["previous"]) + baseMetadata["previous"] = baseMetadata["previous"] + .toString() + .replace(/^en-/, language + "-"); + baseMetadata["language"] = language; + defaultMetadatas[baseMetadata["id"]] = baseMetadata; + }); + Object.assign(metadatas, defaultMetadatas); } }); From bf2f0cf93547c665efabcf366345abdebeede3c5 Mon Sep 17 00:00:00 2001 From: Eric Nakagawa Date: Thu, 19 Oct 2017 10:27:03 -0700 Subject: [PATCH 2/3] Typo fix --- lib/server/readMetadata.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/server/readMetadata.js b/lib/server/readMetadata.js index 4429668741..e1c828d081 100644 --- a/lib/server/readMetadata.js +++ b/lib/server/readMetadata.js @@ -222,7 +222,7 @@ function generateMetadataDocs() { if (baseMetadata["permalink"]) baseMetadata["permalink"] = baseMetadata["permalink"] .toString() - .replace(/^ddocs\/en/, "docs/" + language + "/"); + .replace(/^docs\/en/, "docs/" + language + "/"); if (baseMetadata["next"]) baseMetadata["next"] = baseMetadata["next"] .toString() From 7c80becb872ea3af2b39ba1bde9015da2e91e221 Mon Sep 17 00:00:00 2001 From: Eric Nakagawa Date: Thu, 19 Oct 2017 12:58:57 -0700 Subject: [PATCH 3/3] Fix bug in when running local server --- lib/core/nav/HeaderNav.js | 3 ++- lib/server/readMetadata.js | 17 +++++++++-------- 2 files changed, 11 insertions(+), 9 deletions(-) diff --git a/lib/core/nav/HeaderNav.js b/lib/core/nav/HeaderNav.js index 1278ae168d..b44d60d775 100644 --- a/lib/core/nav/HeaderNav.js +++ b/lib/core/nav/HeaderNav.js @@ -13,6 +13,7 @@ const siteConfig = require(CWD + "/siteConfig.js"); const translation = require("../../server/translation.js"); const translate = require("../../server/translate.js").translate; +const setLanguage = require("../../server/translate.js").setLanguage; const ENABLE_TRANSLATION = fs.existsSync(CWD + "/languages.js"); const ENABLE_VERSIONING = fs.existsSync(CWD + "/versions.json"); @@ -20,7 +21,6 @@ let versions; if (ENABLE_VERSIONING) { versions = require(CWD + "/versions.json"); } -require("../../server/readMetadata.js").generateMetadataDocs(); const Metadata = require("../metadata.js"); // language dropdown nav item for when translations are enabled @@ -28,6 +28,7 @@ class LanguageDropDown extends React.Component { render() { const enabledLanguages = []; let currentLanguage = "English"; + setLanguage(this.props.language); let helpTranslateString = translate( "Help Translate|recruit community translators for your project" ); diff --git a/lib/server/readMetadata.js b/lib/server/readMetadata.js index e1c828d081..792afc9a5c 100644 --- a/lib/server/readMetadata.js +++ b/lib/server/readMetadata.js @@ -181,6 +181,7 @@ function processMetadata(file) { // process metadata for all docs and save into core/metadata.js function generateMetadataDocs() { + console.log("Generating Metadata for Docs...."); const order = readSidebar(); const regexSubFolder = /translated_docs\/(.*)\/.*/; @@ -211,27 +212,27 @@ function generateMetadataDocs() { // create a default list of documents for each enabled language based on docs in English // these will get replaced if/when the localized file is downloaded from crowdin enabledLanguages - .filter(language => { - return language != "en"; + .filter(currentLanguage => { + return currentLanguage != "en"; }) - .map(language => { + .map(currentLanguage => { let baseMetadata = Object.assign({}, metadata); baseMetadata["id"] = baseMetadata["id"] .toString() - .replace(/^en-/, language + "-"); + .replace(/^en-/, currentLanguage + "-"); if (baseMetadata["permalink"]) baseMetadata["permalink"] = baseMetadata["permalink"] .toString() - .replace(/^docs\/en/, "docs/" + language + "/"); + .replace(/^docs\/en\//, "docs/" + currentLanguage + "/"); if (baseMetadata["next"]) baseMetadata["next"] = baseMetadata["next"] .toString() - .replace(/^en-/, language + "-"); + .replace(/^en-/, currentLanguage + "-"); if (baseMetadata["previous"]) baseMetadata["previous"] = baseMetadata["previous"] .toString() - .replace(/^en-/, language + "-"); - baseMetadata["language"] = language; + .replace(/^en-/, currentLanguage + "-"); + baseMetadata["language"] = currentLanguage; defaultMetadatas[baseMetadata["id"]] = baseMetadata; }); Object.assign(metadatas, defaultMetadatas);