The easiest way to translate your NextJs apps. With Koa support only. Forked from next-i18next
.
next-i18next-koa
is a fork of next-i18next
with Koa server support only. This fork uses koa-i18next-middleware-fixed
instead of i18next-express-middleware
.
npm i @winstrike/next-i18next-koa
or yarn add @winstrike/next-i18next-koa
nextI18NextMiddleware()
returns an array of middleware. You should use all of them, as in this example:
const Koa = require("koa");
const Router = require("koa-router");
const serve = require("koa-static");
const mount = require("koa-mount");
const nextApp = require("next");
const nextI18NextMiddleware = require("@winstrike/next-i18next-koa/middleware");
const nextI18Next = require("./lib/i18n");
const app = nextApp({
dev: process.env.NODE_ENV !== "production",
});
const handle = app.getRequestHandler();
app.prepare().then(() => {
const server = new Koa();
const router = new Router();
// Access to locales for preloading them from client-side i18next
server.use(mount("/locales", serve("./locales")));
router.get("*", async (ctx) => {
await handle(ctx.req, ctx.res);
ctx.respond = false;
});
// Use all of middlewares
const middlewares = nextI18NextMiddleware(nextI18Next);
middlewares.forEach((middleware) => {
server.use(middleware);
});
server.use(router.routes());
server.listen(port, () => {
console.log(`> Ready on http://localhost:${port}`);
});
});
You can find other information about next-i18next
in the original readme.