Gatsby plugin i18n
This plugin is meant to be used with netlify and its gatsby-plugin-netlify to correctly handle redirects server side. A less SEO friendly alternative would be to use this plugin alongside gatsby-plugin-meta-redirect or gatsby-plugin-client-side-redirect, they all exploit the gatsby’s createRedirect
action.
Localised messages
- Components specific string are prefixed by the component name in PascalCase, e.g. for component
Header
the string prefix isHeader.
- Pages and templates specific strings are prefixed by the page component name all lowercase minus the prefix
Pages
orTemplate
, e.g. for page about the component would bePagesAbout
and the string prefix isabout.
, for the template blog-single the component would beTemplateBlogSingle
and the string prefix isblogsingle
- Generic strings not tight to any component or page in particular are prefxed with a
.
dot and begin lowercase, e.g..globalMessage
Resources
- Netlify redirects adn localization
- Gatsby netlify plugin
-
Examples of internationalised Gatsby sites:
- overreacted.io We might get from there the mechanism that scan the markdown files and auto-localise links.
-
Articles:
-
About 404:
Similar projects
There are many on npm
.
- gatsby-plugin-intl
- using-i18n
- gatsby-plugin-i18n
- gatsby-i18n-plugin
- gatsby-plugin-intl-url
- gatsby-theme-i18n
- gatsby-plugin-translate-urls
- gatsby-theme-localization
Issues
Language based redirects
Those that use Language: locale
in the createRedirect
method, they seem to do not work at the moment, see this issue or this one for instance.
Trailing slashes
Netlify when loading a page directly or refreshing the browser when you are on a page without a trailing slash it will redirect to the same url with a trailing slash, this happens even with Pretty URLS
setting disabled on Netlify panel. See this issue. Until this issue with netlify is not solved we set by default trailing slashed on all paths with the util normaliseUrlPath
.
Custom slugs
TODO:
- Add support for server side redirects in frontmatter, see Programmatic Redirects in Gatsby