рдЕрдкрдиреЗ рдкреНрд░рд╢реНрди рдХреЛ рдкреВрдЫреЗрдВ рдФрд░ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдХрд╛ рд╕рд╛рд░рд╛рдВрд╢ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ, рдЗрд╕ рдкреГрд╖реНрда рдФрд░ рдЖрдкрдХреЗ рдЪреБрдиреЗ рд╣реБрдП AI рдкреНрд░рджрд╛рддрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ
рд╕рдВрд╕реНрдХрд░рдг рдЗрддрд┐рд╣рд╛рд╕
- "рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдЗрддрд┐рд╣рд╛рд╕"v5.5.1029/6/2025
рдЗрд╕ рдкреГрд╖реНрда рдХреА рд╕рд╛рдордЧреНрд░реА рдПрдХ AI рджреНрд╡рд╛рд░рд╛ рдЕрдиреБрд╡рд╛рджрд┐рдд рдХреА рдЧрдИ рд╣реИред
рдЕрдВрдЧреНрд░реЗрдЬреА рдореЗрдВ рдореВрд▓ рд╕рд╛рдордЧреНрд░реА рдХреЗ рдЕрдВрддрд┐рдо рд╕рдВрд╕реНрдХрд░рдг рджреЗрдЦреЗрдВрдЕрдЧрд░ рдЖрдкрдХреЗ рдкрд╛рд╕ рдЗрд╕ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдХреЛ рд╕реБрдзрд╛рд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЛрдИ рд╡рд┐рдЪрд╛рд░ рд╣реИ, рддреЛ рдХреГрдкрдпрд╛ GitHub рдкрд░ рдПрдХ рдкреБрд▓ рдЕрдиреБрд░реЛрдз рд╕рдмрдорд┐рдЯ рдХрд░рдХреЗ рдпреЛрдЧрджрд╛рди рджреЗрдиреЗ рдореЗрдВ рд╕рдВрдХреЛрдЪ рди рдХрд░реЗрдВред
рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдХреЗ рд▓рд┐рдП GitHub рд▓рд┐рдВрдХрджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдХрд╛ Markdown рдХреЛ рдХреНрд▓рд┐рдкрдмреЛрд░реНрдб рдкрд░ рдХреЙрдкреА рдХрд░реЗрдВ
рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реАрдХрд░рдг: express-intlayer рдореЗрдВ t рдлрд╝рдВрдХреНрд╢рди
express-intlayer рдкреИрдХреЗрдЬ рдореЗрдВ t рдлрд╝рдВрдХреНрд╢рди рдЖрдкрдХреЗ Express рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореЗрдВ рд╕реНрдерд╛рдиреАрдпрдХреГрдд рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛рдПрдБ рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдореБрдЦреНрдп рдЙрдкрдпреЛрдЧрд┐рддрд╛ рд╣реИред рдпрд╣ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреА рдкрд╕рдВрджреАрджрд╛ рднрд╛рд╖рд╛ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рд╕рд╛рдордЧреНрд░реА рдХреЛ рдЧрддрд┐рд╢реАрд▓ рд░реВрдк рд╕реЗ рдЪрдпрдирд┐рдд рдХрд░рдХреЗ рдЕрдВрддрд░рд░рд╛рд╖реНрдЯреНрд░реАрдпрдХрд░рдг (i18n) рдХреЛ рд╕рд░рд▓ рдмрдирд╛рддрд╛ рд╣реИред
рдЕрд╡рд▓реЛрдХрди
t рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдПрдХ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рднрд╛рд╖рд╛рдУрдВ рдХреЗ рд╕реЗрдЯ рдХреЗ рд▓рд┐рдП рдЕрдиреБрд╡рд╛рджреЛрдВ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдиреЗ рдФрд░ рдкреБрдирдГ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЗ рдЕрдиреБрд░реЛрдз рд╕реЗрдЯрд┐рдВрдЧреНрд╕, рдЬреИрд╕реЗ рдХрд┐ Accept-Language рд╣реЗрдбрд░ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдЙрдкрдпреБрдХреНрдд рднрд╛рд╖рд╛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддрд╛ рд╣реИред рдпрджрд┐ рдкрд╕рдВрджреАрджрд╛ рднрд╛рд╖рд╛ рдЙрдкрд▓рдмреНрдз рдирд╣реАрдВ рд╣реИ, рддреЛ рдпрд╣ рдЖрдкрдХреЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд▓реЛрдХрд▓ рдкрд░ рд╕рд╣рдЬрддрд╛ рд╕реЗ рд╡рд╛рдкрд╕ рдЪрд▓рд╛ рдЬрд╛рддрд╛ рд╣реИред
рдореБрдЦреНрдп рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдБ
- рдЧрддрд┐рд╢реАрд▓ рд╕реНрдерд╛рдиреАрдпрдХрд░рдг: рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рдЙрдкрдпреБрдХреНрдд рдЕрдиреБрд╡рд╛рдж рдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдЪрдпрдирд┐рдд рдХрд░рддрд╛ рд╣реИред
- рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд▓реЛрдХрд▓ рдкрд░ рд╡рд╛рдкрд╕ рдЬрд╛рдирд╛: рдпрджрд┐ рдХреНрд▓рд╛рдЗрдВрдЯ рдХреА рдкрд╕рдВрджреАрджрд╛ рднрд╛рд╖рд╛ рдЙрдкрд▓рдмреНрдз рдирд╣реАрдВ рд╣реИ, рддреЛ рдпрд╣ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд▓реЛрдХрд▓ рдкрд░ рд╡рд╛рдкрд╕ рдЪрд▓рд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрд┐рд╕рд╕реЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЕрдиреБрднрд╡ рдореЗрдВ рдирд┐рд░рдВрддрд░рддрд╛ рдмрдиреА рд░рд╣рддреА рд╣реИред
- рд╣рд▓реНрдХрд╛ рдФрд░ рддреЗрдЬрд╝: рдЙрдЪреНрдЪ рдкреНрд░рджрд░реНрд╢рди рд╡рд╛рд▓реЗ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдпрд╛ рдЧрдпрд╛, рдЬреЛ рдиреНрдпреВрдирддрдо рдУрд╡рд░рд╣реЗрдб рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рддрд╛ рд╣реИред
- рд╕рдЦреНрдд рдореЛрдб рд╕рдорд░реНрдерди: рд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЗ рд▓рд┐рдП рдШреЛрд╖рд┐рдд рд▓реЛрдХрд▓реЛрдВ рдХрд╛ рд╕рдЦреНрддреА рд╕реЗ рдкрд╛рд▓рди рд▓рд╛рдЧреВ рдХрд░рддрд╛ рд╣реИред
рдлрд╝рдВрдХреНрд╢рди рд╣рд╕реНрддрд╛рдХреНрд╖рд░
рдХреЛрдб рдХреЛ рдХреНрд▓рд┐рдкрдмреЛрд░реНрдб рдкрд░ рдХреЙрдкреА рдХрд░реЗрдВ
рдкреИрд░рд╛рдореАрдЯрд░
translations: рдПрдХ рдСрдмреНрдЬреЗрдХреНрдЯ рдЬрд┐рд╕рдореЗрдВ рдХреБрдВрдЬреА рд▓реЛрдХрд▓ рдХреЛрдб рд╣реЛрддреЗ рд╣реИрдВ (рдЬреИрд╕реЗ,en,fr,es-MX) рдФрд░ рдорд╛рди рд╕рдВрдмрдВрдзрд┐рдд рдЕрдиреБрд╡рд╛рджрд┐рдд рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕ рд╣реЛрддреЗ рд╣реИрдВред
рд░рд┐рдЯрд░реНрди рдХрд░рддрд╛ рд╣реИ
- рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдЬреЛ рдХреНрд▓рд╛рдЗрдВрдЯ рдХреА рдкрд╕рдВрджреАрджрд╛ рднрд╛рд╖рд╛ рдореЗрдВ рд╕рд╛рдордЧреНрд░реА рдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░рддреА рд╣реИред
рдЕрдВрддрд░рд░рд╛рд╖реНрдЯреНрд░реАрдпрдХрд░рдг рдЕрдиреБрд░реЛрдз рд╣реИрдВрдбрд▓рд░ рд▓реЛрдб рдХрд░рдирд╛
express-intlayer рджреНрд╡рд╛рд░рд╛ рдкреНрд░рджрд╛рди рдХреА рдЧрдИ рдЕрдВрддрд░рд░рд╛рд╖реНрдЯреНрд░реАрдпрдХрд░рдг рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреЛ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдЕрдкрдиреЗ Express рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ рдЕрдВрддрд░рд░рд╛рд╖реНрдЯреНрд░реАрдпрдХрд░рдг рдорд┐рдбрд▓рд╡реЗрдпрд░ рдХреЛ рдЬрд╝рд░реВрд░ рд▓реЛрдб рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рдпрд╣ t рдлрд╝рдВрдХреНрд╢рди рдХреЛ рд╕рдХреНрд╖рдо рдмрдирд╛рддрд╛ рд╣реИ рдФрд░ рд▓реЛрдХрд▓ рдбрд┐рдЯреЗрдХреНрд╢рди рдФрд░ рдЕрдиреБрд╡рд╛рдж рдХреЗ рд╕рд╣реА рд╣реИрдВрдбрд▓рд┐рдВрдЧ рдХреЛ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рддрд╛ рд╣реИред
рдЕрдкрдиреЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореЗрдВ рдХрд┐рд╕реА рднреА рд░реВрдЯ рд╕реЗ рдкрд╣рд▓реЗ app.use(intlayer()) рдорд┐рдбрд▓рд╡реЗрдпрд░ рдХреЛ рд░рдЦреЗрдВ рддрд╛рдХрд┐ рд╕рднреА рд░реВрдЯреНрд╕ рдЕрдВрддрд░рд░рд╛рд╖реНрдЯреНрд░реАрдпрдХрд░рдг рдХрд╛ рд▓рд╛рдн рдЙрдард╛ рд╕рдХреЗрдВ:
рдХреЛрдб рдХреЛ рдХреНрд▓рд┐рдкрдмреЛрд░реНрдб рдкрд░ рдХреЙрдкреА рдХрд░реЗрдВ
import express, { type Express } from "express";
import { intlayer } from "express-intlayer";
const app: Express = express();
// рдЕрдВрддрд░рд░рд╛рд╖реНрдЯреНрд░реАрдпрдХрд░рдг рдЕрдиреБрд░реЛрдз рд╣реИрдВрдбрд▓рд░ рд▓реЛрдб рдХрд░реЗрдВ
app.use(intlayer());
// рдорд┐рдбрд▓рд╡реЗрдпрд░ рд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рдЕрдкрдиреЗ рд░реВрдЯреНрд╕ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░реЗрдВ
app.get("/", (_req, res) => {
res.send(
t({
en: "Hello, World!",
fr: "Bonjour le monde!",
es: "┬бHola, Mundo!",
})
);
});
рдпрд╣ рдХреНрдпреЛрдВ рдЖрд╡рд╢реНрдпрдХ рд╣реИ
- рд▓реЛрдХрд▓ рдбрд┐рдЯреЗрдХреНрд╢рди:
intlayerрдорд┐рдбрд▓рд╡реЗрдпрд░ рдЖрдиреЗ рд╡рд╛рд▓реЗ рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рддрд╛ рд╣реИ рддрд╛рдХрд┐ рд╣реЗрдбрд░, рдХреБрдХреАрдЬрд╝, рдпрд╛ рдЕрдиреНрдп рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдП рдЧрдП рддрд░реАрдХреЛрдВ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреА рдкрд╕рдВрджреАрджрд╛ рд▓реЛрдХрд▓ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдпрд╛ рдЬрд╛ рд╕рдХреЗред - рдЕрдиреБрд╡рд╛рдж рд╕рдВрджрд░реНрдн:
tрдлрд╝рдВрдХреНрд╢рди рдХреЛ рд╕рд╣реА рддрд░реАрдХреЗ рд╕реЗ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╕рдВрджрд░реНрдн рд╕реЗрдЯ рдХрд░рддрд╛ рд╣реИ, рдЬрд┐рд╕рд╕реЗ рдЕрдиреБрд╡рд╛рдж рд╕рд╣реА рднрд╛рд╖рд╛ рдореЗрдВ рд▓реМрдЯрд╛рдП рдЬрд╛рддреЗ рд╣реИрдВред - рддреНрд░реБрдЯрд┐ рд░реЛрдХрдерд╛рдо: рдЗрд╕ рдорд┐рдбрд▓рд╡реЗрдпрд░ рдХреЗ рдмрд┐рдирд╛,
tрдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рд░рдирдЯрд╛рдЗрдо рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХрд╛ рдХрд╛рд░рдг рдмрдиреЗрдЧрд╛ рдХреНрдпреЛрдВрдХрд┐ рдЖрд╡рд╢реНрдпрдХ рд▓реЛрдХрд▓ рдЬрд╛рдирдХрд╛рд░реА рдЙрдкрд▓рдмреНрдз рдирд╣реАрдВ рд╣реЛрдЧреАред
рдЙрдкрдпреЛрдЧ рдЙрджрд╛рд╣рд░рдг
рдмреБрдирд┐рдпрд╛рджреА рдЙрджрд╛рд╣рд░рдг
рд╡рд┐рднрд┐рдиреНрди рднрд╛рд╖рд╛рдУрдВ рдореЗрдВ рд╕реНрдерд╛рдиреАрдпрдХреГрдд рд╕рд╛рдордЧреНрд░реА рдкрд░реЛрд╕реЗрдВ:
рдХреЛрдб рдХреЛ рдХреНрд▓рд┐рдкрдмреЛрд░реНрдб рдкрд░ рдХреЙрдкреА рдХрд░реЗрдВ
app.get("/", (_req, res) => {
res.send(
t({
en: "Welcome!",
fr: "Bienvenue!",
es: "┬бBienvenido!",
})
);
});
рдХреНрд▓рд╛рдЗрдВрдЯ рдЕрдиреБрд░реЛрдз:
Accept-Language: frрд╡рд╛рд▓реЗ рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЛBienvenue!рдкреНрд░рд╛рдкреНрдд рд╣реЛрдЧрд╛редAccept-Language: esрд╡рд╛рд▓реЗ рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЛ┬бBienvenido!рдкреНрд░рд╛рдкреНрдд рд╣реЛрдЧрд╛редAccept-Language: deрд╡рд╛рд▓реЗ рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЛWelcome!(рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд▓реЛрдХрд▓) рдкреНрд░рд╛рдкреНрдд рд╣реЛрдЧрд╛ред
рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЛ рд╕рдВрднрд╛рд▓рдирд╛
рдХрдИ рднрд╛рд╖рд╛рдУрдВ рдореЗрдВ рддреНрд░реБрдЯрд┐ рд╕рдВрджреЗрд╢ рдкреНрд░рджрд╛рди рдХрд░реЗрдВ:
рдХреЛрдб рдХреЛ рдХреНрд▓рд┐рдкрдмреЛрд░реНрдб рдкрд░ рдХреЙрдкреА рдХрд░реЗрдВ
app.get("/error", (_req, res) => {
res.status(500).send(
t({
en: "An unexpected error occurred.",
fr: "Une erreur inattendue s'est produite.",
es: "Ocurri├│ un error inesperado.",
})
);
});
рд▓реЛрдХрд▓ рд╡реЗрд░рд┐рдПрдВрдЯреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛
рд▓реЛрдХрд▓-рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╡реЗрд░рд┐рдПрдВрдЯреНрд╕ рдХреЗ рд▓рд┐рдП рдЕрдиреБрд╡рд╛рдж рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░реЗрдВ:
рдХреЛрдб рдХреЛ рдХреНрд▓рд┐рдкрдмреЛрд░реНрдб рдкрд░ рдХреЙрдкреА рдХрд░реЗрдВ
рдЙрдиреНрдирдд рд╡рд┐рд╖рдп
рдлреЙрд▓рдмреИрдХ рддрдВрддреНрд░
рдпрджрд┐ рдкрд╕рдВрджреАрджрд╛ рд▓реЛрдХрд▓ рдЙрдкрд▓рдмреНрдз рдирд╣реАрдВ рд╣реИ, рддреЛ t рдлрд╝рдВрдХреНрд╢рди рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдореЗрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд▓реЛрдХрд▓ рдкрд░ рдлреЙрд▓рдмреИрдХ рдХрд░реЗрдЧрд╛:
рдХреЛрдб рдХреЛ рдХреНрд▓рд┐рдкрдмреЛрд░реНрдб рдкрд░ рдХреЙрдкреА рдХрд░реЗрдВ
import { Locales, type IntlayerConfig } from "intlayer";
const config = {
internationalization: {
locales: [Locales.ENGLISH, Locales.FRENCH, Locales.SPANISH],
defaultLocale: Locales.ENGLISH,
},
} satisfies IntlayerConfig;
export default config;
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП:
- рдпрджрд┐
defaultLocaleLocales.CHINESEрд╣реИ рдФрд░ рдХреЛрдИ рдХреНрд▓рд╛рдЗрдВрдЯLocales.DUTCHрдХрд╛ рдЕрдиреБрд░реЛрдз рдХрд░рддрд╛ рд╣реИ, рддреЛ рд▓реМрдЯрд╛рдИ рдЧрдИ рдЕрдиреБрд╡рд╛рджрд┐рдд рд╕рд╛рдордЧреНрд░реА рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗLocales.CHINESEрдорд╛рди рд╣реЛрдЧреАред - рдпрджрд┐
defaultLocaleрдкрд░рд┐рднрд╛рд╖рд┐рдд рдирд╣реАрдВ рд╣реИ, рддреЛtрдлрд╝рдВрдХреНрд╢рдиLocales.ENGLISHрдорд╛рди рдкрд░ рд╡рд╛рдкрд╕ рд▓реМрдЯреЗрдЧрд╛ред
рд╕рдЦреНрдд рдореЛрдб рдкреНрд░рд╡рд░реНрддрди
рдШреЛрд╖рд┐рдд рд╕реНрдерд╛рдиреАрдпрддрд╛рдУрдВ рдХреЗ рдХрдбрд╝рд╛рдИ рд╕реЗ рдкрд╛рд▓рди рдХреЗ рд▓рд┐рдП t рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░реЗрдВ:
рд╕рднреА рдбреЗрдЯрд╛ рд╕рд╛рдордЧреНрд░реА рдХреЛ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рддрд╛рд▓рд┐рдХрд╛ рдХреЛ рдореЛрдбрд▓ рдореЗрдВ рдЦреЛрд▓реЗрдВ
| рдореЛрдб | рд╡реНрдпрд╡рд╣рд╛рд░ |
|---|---|
strict | рд╕рднреА рдШреЛрд╖рд┐рдд рд╕реНрдерд╛рдиреАрдпрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдЕрдиреБрд╡рд╛рдж рдкреНрд░рджрд╛рди рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИред рдЧрд╛рдпрдм рд╕реНрдерд╛рдиреАрдпрддрд╛рдПрдБ рддреНрд░реБрдЯрд┐рдпрд╛рдБ рдЙрддреНрдкрдиреНрди рдХрд░реЗрдВрдЧреАред |
inclusive | рдШреЛрд╖рд┐рдд рд╕реНрдерд╛рдиреАрдпрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдЕрдиреБрд╡рд╛рдж рд╣реЛрдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИред рдЧрд╛рдпрдм рд╕реНрдерд╛рдиреАрдпрддрд╛рдПрдБ рдЪреЗрддрд╛рд╡рдирд┐рдпрд╛рдБ рдЙрддреНрдкрдиреНрди рдХрд░реЗрдВрдЧреА рд▓реЗрдХрд┐рди рд╕реНрд╡реАрдХрд╛рд░реНрдп рд╣реИрдВред |
loose | рдХреЛрдИ рднреА рдореМрдЬреВрджрд╛ рд╕реНрдерд╛рдиреАрдпрддрд╛ рд╕реНрд╡реАрдХрд╛рд░реНрдп рд╣реИ, рднрд▓реЗ рд╣реА рд╡рд╣ рдШреЛрд╖рд┐рдд рди рд╣реЛред |
рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдЙрджрд╛рд╣рд░рдг:
рдХреЛрдб рдХреЛ рдХреНрд▓рд┐рдкрдмреЛрд░реНрдб рдкрд░ рдХреЙрдкреА рдХрд░реЗрдВ
import { type IntlayerConfig } from "intlayer";
const config = {
// ... рдЖрдкрдХреА рдореМрдЬреВрджрд╛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди
internationalization: {
// ... рдЖрдкрдХреА рдореМрдЬреВрджрд╛ рдЕрдВрддрд░рд░рд╛рд╖реНрдЯреНрд░реАрдпрдХрд░рдг рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди
strictMode: "strict", // рд╕рдЦреНрдд рдореЛрдб рд▓рд╛рдЧреВ рдХрд░реЗрдВ
},
} satisfies IntlayerConfig;
export default config;
рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдПрдХреАрдХрд░рдг
рдЬрдм рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рд╕рд╛рде t рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдпрд╣ рдЯрд╛рдЗрдк-рд╕реБрд░рдХреНрд╖рд┐рдд рд╣реЛрддрд╛ рд╣реИред рдПрдХ рдЯрд╛рдЗрдк-рд╕реБрд░рдХреНрд╖рд┐рдд рдЕрдиреБрд╡рд╛рдж рдСрдмреНрдЬреЗрдХреНрдЯ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░реЗрдВ:
рдХреЛрдб рдХреЛ рдХреНрд▓рд┐рдкрдмреЛрд░реНрдб рдкрд░ рдХреЙрдкреА рдХрд░реЗрдВ
import { type LanguageContent } from "express-intlayer";
const translations: LanguageContent<string> = {
en: "Good morning!",
fr: "Bonjour!",
es: "┬бBuenos d├нas!",
};
app.get("/morning", (_req, res) => {
res.send(t(translations));
});
рд╕рд╛рдорд╛рдиреНрдп рддреНрд░реБрдЯрд┐рдпрд╛рдБ рдФрд░ рд╕рдорд╕реНрдпрд╛ рдирд┐рд╡рд╛рд░рдг
рд╕рднреА рдбреЗрдЯрд╛ рд╕рд╛рдордЧреНрд░реА рдХреЛ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рддрд╛рд▓рд┐рдХрд╛ рдХреЛ рдореЛрдбрд▓ рдореЗрдВ рдЦреЛрд▓реЗрдВ
| рд╕рдорд╕реНрдпрд╛ | рдХрд╛рд░рдг | рд╕рдорд╛рдзрд╛рди |
|---|---|---|
t рдлрд╝рдВрдХреНрд╢рди рдХрд╛рдо рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ | рдорд┐рдбрд▓рд╡реЗрдпрд░ рд▓реЛрдб рдирд╣реАрдВ рд╣реБрдЖ | рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ рдХрд┐ app.use(intlayer()) рд░реВрдЯреНрд╕ рд╕реЗ рдкрд╣рд▓реЗ рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ рд╣реИред |
| рдЕрдиреБрд╡рд╛рдж рдЧрд╛рдпрдм рддреНрд░реБрдЯрд┐ | рд╕рднреА рднрд╛рд╖рд╛рдУрдВ рдХреЗ рдмрд┐рдирд╛ рд╕рдЦреНрдд рдореЛрдб рд╕рдХреНрд╖рдо рд╣реИ | рд╕рднреА рдЖрд╡рд╢реНрдпрдХ рдЕрдиреБрд╡рд╛рдж рдкреНрд░рджрд╛рди рдХрд░реЗрдВред |
рдкреНрд░рднрд╛рд╡реА рдЙрдкрдпреЛрдЧ рдХреЗ рд▓рд┐рдП рд╕реБрдЭрд╛рд╡
- рдЕрдиреБрд╡рд╛рджреЛрдВ рдХреЛ рдХреЗрдВрджреНрд░реАрдХреГрдд рдХрд░реЗрдВ: рд░рдЦрд░рдЦрд╛рд╡ рдореЗрдВ рд╕реБрдзрд╛рд░ рдХреЗ рд▓рд┐рдП рдЕрдиреБрд╡рд╛рджреЛрдВ рдХрд╛ рдкреНрд░рдмрдВрдзрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдХреЗрдВрджреНрд░реАрдХреГрдд рдореЙрдбреНрдпреВрд▓ рдпрд╛ JSON рдлрд╝рд╛рдЗрд▓реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред
- рдЕрдиреБрд╡рд╛рджреЛрдВ рдХреЛ рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд░реЗрдВ: рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ рдХрд┐ рдкреНрд░рддреНрдпреЗрдХ рднрд╛рд╖рд╛ рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рдВрдмрдВрдзрд┐рдд рдЕрдиреБрд╡рд╛рдж рдореМрдЬреВрдж рд╣реЛ рддрд╛рдХрд┐ рдЕрдирд╛рд╡рд╢реНрдпрдХ рд░реВрдк рд╕реЗ рдлреЙрд▓ рдмреИрдХ рди рд╣реЛред
- рдлреНрд░рдВрдЯреЗрдВрдб i18n рдХреЗ рд╕рд╛рде рд╕рдВрдпреЛрдЬрди рдХрд░реЗрдВ: рдРрдк рдореЗрдВ рдПрдХ рд╕рд╣рдЬ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЕрдиреБрднрд╡ рдХреЗ рд▓рд┐рдП рдлреНрд░рдВрдЯреЗрдВрдб рдЕрдВрддрд░рд░рд╛рд╖реНрдЯреНрд░реАрдпрдХрд░рдг рдХреЗ рд╕рд╛рде рд╕рд┐рдВрдХреНрд░рдирд╛рдЗрдЬрд╝ рдХрд░реЗрдВред
- рдкреНрд░рджрд░реНрд╢рди рдХрд╛ рдмреЗрдВрдЪрдорд╛рд░реНрдХ рдХрд░реЗрдВ: рдЕрдиреБрд╡рд╛рдж рдЬреЛрдбрд╝рддреЗ рд╕рдордп рдЕрдкрдиреЗ рдРрдк рдХреЗ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рд╕рдордп рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░реЗрдВ рддрд╛рдХрд┐ рдиреНрдпреВрдирддрдо рдкреНрд░рднрд╛рд╡ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХреЗред
рдирд┐рд╖реНрдХрд░реНрд╖
t рдлрд╝рдВрдХреНрд╢рди рдмреИрдХрдПрдВрдб рдЕрдВрддрд░рд░рд╛рд╖реНрдЯреНрд░реАрдпрдХрд░рдг рдХреЗ рд▓рд┐рдП рдПрдХ рд╢рдХреНрддрд┐рд╢рд╛рд▓реА рдЙрдкрдХрд░рдг рд╣реИред рдЗрд╕реЗ рдкреНрд░рднрд╛рд╡реА рдврдВрдЧ рд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ, рдЖрдк рдПрдХ рдЕрдзрд┐рдХ рд╕рдорд╛рд╡реЗрд╢реА рдФрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛-рдЕрдиреБрдХреВрд▓ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рд╡реИрд╢реНрд╡рд┐рдХ рджрд░реНрд╢рдХреЛрдВ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреБрдХреНрдд рд╣реЛред рдЙрдиреНрдирдд рдЙрдкрдпреЛрдЧ рдФрд░ рд╡рд┐рд╕реНрддреГрдд рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреЗ рд▓рд┐рдП, рдХреГрдкрдпрд╛ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рджреЗрдЦреЗрдВред
