Add new translate functionality to dev server

This commit is contained in:
Frank Li 2017-07-12 11:38:02 -07:00
parent 099a13a264
commit 2d2f324c7d
2 changed files with 12 additions and 1 deletions

View file

@ -21,6 +21,7 @@ function execute(port) {
const toSlug = require("../core/toSlug.js"); const toSlug = require("../core/toSlug.js");
const mkdirp = require("mkdirp"); const mkdirp = require("mkdirp");
const glob = require("glob"); const glob = require("glob");
const translate = require("./translate.js");
let siteConfig = require(CWD + "/siteConfig.js"); let siteConfig = require(CWD + "/siteConfig.js");
/** /**
@ -289,6 +290,13 @@ function execute(port) {
language = parts[i]; language = parts[i];
} }
} }
let englishFile = CWD + "/pages/" + file;
if (language !== "en") {
englishFile = englishFile.replace("/" + language + "/", "/en/");
}
/* check for: a file for the page, an english file for page with unspecified language,
english file for the page */
if ( if (
fs.existsSync(userFile) || fs.existsSync(userFile) ||
fs.existsSync( fs.existsSync(
@ -296,7 +304,8 @@ function execute(port) {
path.basename(userFile), path.basename(userFile),
"en/" + path.basename(userFile) "en/" + path.basename(userFile)
)) ))
) ) ||
fs.existsSync((userFile = englishFile))
) { ) {
/* copy into docusaurus so require paths work */ /* copy into docusaurus so require paths work */
let parts = userFile.split("pages/"); let parts = userFile.split("pages/");
@ -313,6 +322,7 @@ function execute(port) {
const ReactComp = require(tempFile); const ReactComp = require(tempFile);
purgeCache("../core/Site.js"); purgeCache("../core/Site.js");
const Site = require("../core/Site.js"); const Site = require("../core/Site.js");
translate.setLanguage(language);
const str = renderToStaticMarkup( const str = renderToStaticMarkup(
<Site language={language} config={siteConfig}> <Site language={language} config={siteConfig}>
<ReactComp language={language} /> <ReactComp language={language} />

View file

@ -11,6 +11,7 @@
require("babel-register")({ require("babel-register")({
ignore: false, ignore: false,
plugins: [require("./server/translate-plugin.js")],
presets: ["react"] presets: ["react"]
}); });