Comments (2)
After tweaking with the config a bit, here is what I came up with. I am using the environment variable LANG
in gatsby-config.js
to set the default language and a onPostBuild
function in gatsby-node.js
to rename the public
directory to public-${process.env.LANG}
and removing the subdirectories en
and ja
from the generated build.
Here is my config in the gatsby-config.js
{
resolve: `gatsby-plugin-intl`,
options: {
path: `${__dirname}/src/i18n/translations`,
languages: ['en', 'ja'],
defaultLanguage: process.env.LANG || 'en',
},
},
And here is the gatsby-node.js
const path = require('path')
const fs = require('fs-extra')
exports.onPostBuild = function() {
const language = process.env.LANG
const publicDir = `public-${language}`
fs.removeSync(path.join(__dirname, publicDir))
fs.removeSync(path.join(__dirname, 'public', 'en'))
fs.removeSync(path.join(__dirname, 'public', 'ja'))
fs.renameSync(path.join(__dirname, 'public'), path.join(__dirname, publicDir))
}
And some scripts I am using in package.json
.
"build": "yarn && rm -rf public/* && LANG=en gatsby build",
"build:prod": "LANG=en gatsby build",
"build:jp": "LANG=ja gatsby build",
This works fine as per my requirements. I would still be interested in knowing if there is any downside to this approach or is there any better (recommended) way to accomplish what I am doing.
from gatsby-plugin-intl.
I think this would actually perhaps be the preferred approach at scale. You could easily have all this automated and have CI build and deploy individual builds where the env variable is set to language for that build.
from gatsby-plugin-intl.
Related Issues (20)
- Updated json needs clear cache in order to show changes on the page HOT 2
- Sitemap problems HOT 4
- redirect option creates problems with routers HOT 1
- Getting Error: Cannot find react-intl/locale-data/hk in Safari HOT 1
- Updating locales requires cleaning .cache HOT 2
- Distinguish between default display/redirect language and default messages language
- Is this project abandoned? HOT 8
- Fork and link this repo? HOT 1
- Styling a specific language HOT 1
- gatsby-plugin-intl is not compatible with your gatsby version 3 HOT 2
- How to use with Storybook? HOT 3
- Problem when using gatsby-plugin-transition-link and gatsby-plugin-intl. HOT 1
- Best practice for translate keywords ( react helmet ) & alt image description HOT 1
- ngeLoc
- Load component inside `wrapPageElement` fails HOT 1
- Is this plugin going to be updated to supported gatsby version 4.x.x? HOT 7
- Dynamic translation keys from json are not extracted
- How do I use this together with slices? HOT 1
- Wrong import of @formatjs locale-data
- All locale data included in bundle HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from gatsby-plugin-intl.