рдЕрдкрдиреЗ рдкреНрд░рд╢реНрди рдХреЛ рдкреВрдЫреЗрдВ рдФрд░ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдХрд╛ рд╕рд╛рд░рд╛рдВрд╢ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ, рдЗрд╕ рдкреГрд╖реНрда рдФрд░ рдЖрдкрдХреЗ рдЪреБрдиреЗ рд╣реБрдП AI рдкреНрд░рджрд╛рддрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ
рд╕рдВрд╕реНрдХрд░рдг рдЗрддрд┐рд╣рд╛рд╕
- "рдЪрдпрди-рдЖрдзрд╛рд░рд┐рдд рд╕рд╛рдордЧреНрд░реА рдкреНрд░рд╕реНрддреБрдд рдХреА рдЧрдИ"v9.1.030/7/2026
рдЗрд╕ рдкреГрд╖реНрда рдХреА рд╕рд╛рдордЧреНрд░реА рдПрдХ AI рджреНрд╡рд╛рд░рд╛ рдЕрдиреБрд╡рд╛рджрд┐рдд рдХреА рдЧрдИ рд╣реИред
рдЕрдВрдЧреНрд░реЗрдЬреА рдореЗрдВ рдореВрд▓ рд╕рд╛рдордЧреНрд░реА рдХреЗ рдЕрдВрддрд┐рдо рд╕рдВрд╕реНрдХрд░рдг рджреЗрдЦреЗрдВрдЕрдЧрд░ рдЖрдкрдХреЗ рдкрд╛рд╕ рдЗрд╕ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдХреЛ рд╕реБрдзрд╛рд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЛрдИ рд╡рд┐рдЪрд╛рд░ рд╣реИ, рддреЛ рдХреГрдкрдпрд╛ GitHub рдкрд░ рдПрдХ рдкреБрд▓ рдЕрдиреБрд░реЛрдз рд╕рдмрдорд┐рдЯ рдХрд░рдХреЗ рдпреЛрдЧрджрд╛рди рджреЗрдиреЗ рдореЗрдВ рд╕рдВрдХреЛрдЪ рди рдХрд░реЗрдВред
рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдХреЗ рд▓рд┐рдП GitHub рд▓рд┐рдВрдХрджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдХрд╛ Markdown рдХреЛ рдХреНрд▓рд┐рдкрдмреЛрд░реНрдб рдкрд░ рдХреЙрдкреА рдХрд░реЗрдВ
рдЪрдпрди-рдЖрдзрд╛рд░рд┐рдд рд╕рд╛рдордЧреНрд░реА (Select) / Intlayer
Select рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ
Intlayer рдореЗрдВ, рдЪрдпрди-рдЖрдзрд╛рд░рд┐рдд рд╕рд╛рдордЧреНрд░реА рдХреЛ select рдлрд╝рдВрдХреНрд╢рди рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬреЛ рдордирдорд╛рдиреЗ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдорд╛рдиреЛрдВ рдХреЛ рдЙрдирдХреЗ рд╕рдВрдмрдВрдзрд┐рдд рд╕рд╛рдордЧреНрд░реА рдореЗрдВ рдореИрдк рдХрд░рддрд╛ рд╣реИред рдпрд╣ ICU рд╕рдВрджреЗрд╢ {value, select, тАж} рдХреЗ рдмрд░рд╛рдмрд░ рд╣реИ, рдпрд╛ рдЖрдкрдХреЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛрдб рдореЗрдВ switch рдХрдерди рдХреЗ рд╕рдорд╛рди рд╣реИред
select рдХрд╛ рдЙрдкрдпреЛрдЧ рддрдм рдХрд░реЗрдВ рдЬрдм рд╡рд┐рд╡реЗрдЪрдХ (discriminant) рдПрдХ рдореБрдХреНрдд-рд╕реНрд╡рд░реВрдк рд╕реНрдЯреНрд░рд┐рдВрдЧ рд╣реЛ: рдПрдХ рд╕реНрдерд┐рддрд┐ (status), рдПрдХ рдпреЛрдЬрдирд╛ (plan), рдПрдХ рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо (platform), рдПрдХ рднреВрдорд┐рдХрд╛ (role)ред рдЕрдиреНрдп рд╡рд┐рд╡реЗрдЪрдХреЛрдВ рдХреЗ рд▓рд┐рдП, Intlayer рд╕рдорд░реНрдкрд┐рдд рдиреЛрдбреНрд╕ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ:
рд╕рднреА рдбреЗрдЯрд╛ рд╕рд╛рдордЧреНрд░реА рдХреЛ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рддрд╛рд▓рд┐рдХрд╛ рдХреЛ рдореЛрдбрд▓ рдореЗрдВ рдЦреЛрд▓реЗрдВ
| рд╡рд┐рд╡реЗрдЪрдХ (Discriminant) | рдиреЛрдб |
|---|---|
| рдорд╛рддреНрд░рд╛ (Quantity) | enu() |
| рдмреВрд▓рд┐рдпрди (Boolean) | cond() |
| рд▓рд┐рдВрдЧ (Gender) | gender() |
| рдХреЛрдИ рдЕрдиреНрдп рд╕реНрдЯреНрд░рд┐рдВрдЧ | select() |
рдЪрдпрди-рдЖрдзрд╛рд░рд┐рдд рд╕рд╛рдордЧреНрд░реА рд╕реЗрдЯ рдЕрдк рдХрд░рдирд╛
рдЕрдкрдиреЗ Intlayer рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ рдЪрдпрди-рдЖрдзрд╛рд░рд┐рдд рд╕рд╛рдордЧреНрд░реА рд╕реЗрдЯ рдЕрдк рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдПрдХ рд╕рд╛рдордЧреНрд░реА рдореЙрдбреНрдпреВрд▓ (content module) рдмрдирд╛рдПрдВ рдЬрд┐рд╕рдореЗрдВ рдЖрдкрдХреА рдЪрдпрди рдкрд░рд┐рднрд╛рд╖рд╛рдПрдВ рд╢рд╛рдорд┐рд▓ рд╣реЛрдВред рдиреАрдЪреЗ рд╡рд┐рднрд┐рдиреНрди рдкреНрд░рд╛рд░реВрдкреЛрдВ рдореЗрдВ рдЙрджрд╛рд╣рд░рдг рджрд┐рдП рдЧрдП рд╣реИрдВред
рдХреЛрдб рдХреЛ рдХреНрд▓рд┐рдкрдмреЛрд░реНрдб рдкрд░ рдХреЙрдкреА рдХрд░реЗрдВ
import { select, type Dictionary } from "intlayer";
const myPostContent = {
key: "my_key",
content: {
publishStatus: select({
draft: "This post is a draft",
published: "This post is live",
scheduled: "This post is scheduled",
fallback: "Unknown status", // рд╡реИрдХрд▓реНрдкрд┐рдХ (Optional)
}),
},
} satisfies Dictionary;
export default myPostContent;
рдпрджрд┐ рдХреЛрдИfallbackрдШреЛрд╖рд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рддреЛ рдкреНрд░рджрд╛рди рдХрд┐рдпрд╛ рдЧрдпрд╛ рдорд╛рди рдХрд┐рд╕реА рднреА рдШреЛрд╖рд┐рдд рд╕реНрдерд┐рддрд┐ рд╕реЗ рдореЗрд▓ рди рдЦрд╛рдиреЗ рдкрд░ рдЕрдВрддрд┐рдо рдШреЛрд╖рд┐рдд рдХреБрдВрдЬреА (key) рдХреЛ рдлрд╝реЙрд▓рдмреИрдХ рдХреЗ рд░реВрдк рдореЗрдВ рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ: рдареАрдХcond()рдФрд░gender()рдЕрдиреБрдмрдВрдз (contract) рдХреА рддрд░рд╣ред
рдЯрд╛рдЗрдк рд╕реБрд░рдХреНрд╖рд╛ (Type Safety)
рд╕реНрд╡реАрдХреГрдд рддрд░реНрдХ (argument) рдШреЛрд╖рд┐рдд рд╕реНрдерд┐рддрд┐рдпреЛрдВ (cases) рд╕реЗ рдЕрдиреБрдорд╛рдирд┐рдд рд╣реЛрддреЗ рд╣реИрдВ:
fallbackрдХреЗ рдмрд┐рдирд╛, рдХреЗрд╡рд▓ рдШреЛрд╖рд┐рдд рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдХреЛ рд╣реА рд╕реНрд╡реАрдХрд╛рд░ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ: рдЯрд╛рдЗрдкреЛ рдЯрд╛рдЗрдк рддреНрд░реБрдЯрд┐ (type error) рдЙрддреНрдкрдиреНрди рдХрд░реЗрдЧрд╛редfallbackрдХреЗ рд╕рд╛рде, рдХрд┐рд╕реА рднреА рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЛ рд╕реНрд╡реАрдХрд╛рд░ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ (рдХреНрдпреЛрдВрдХрд┐ рдлрд╝реЙрд▓рдмреИрдХ рдмреЗрдореЗрд▓ рдорд╛рдиреЛрдВ рдХреЛ рдХрд╡рд░ рдХрд░рддрд╛ рд╣реИ) рдЬрдмрдХрд┐ рдШреЛрд╖рд┐рдд рд╕реНрдерд┐рддрд┐рдпрд╛рдВ рдЕрднреА рднреА рд╕реНрд╡рддрдГ рдкреВрд░реНрдгрддрд╛ (autocompletion) рдкреНрд░рджрд╛рди рдХрд░рддреА рд╣реИрдВред
рд╕рд╛рдзрд╛рд░рдг рдСрдмреНрдЬреЗрдХреНрдЯ (Plain Object) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреНрдпреЛрдВ рди рдХрд░реЗрдВ?
рд╕рд╛рдзрд╛рд░рдг рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рдШреЛрд╖рд┐рдд рдХрд░рдирд╛ рдФрд░ рд░рдирдЯрд╛рдЗрдо рдорд╛рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЙрд╕рдореЗрдВ рдЕрдиреБрдХреНрд░рдордг (indexing) рдХрд░рдирд╛ рдЖрдХрд░реНрд╖рдХ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ:
рдХреЛрдб рдХреЛ рдХреНрд▓рд┐рдкрдмреЛрд░реНрдб рдкрд░ рдХреЙрдкреА рдХрд░реЗрдВ
Intlayer рдХрдВрдкрд╛рдЗрд▓рд░ (compiler) рдЖрдкрдХреЗ рд╕реНрд░реЛрдд рдХреЛрдб (source code) рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░рддрд╛ рд╣реИ рддрд╛рдХрд┐ рдЕрдкреНрд░рдпреБрдХреНрдд рд╕рд╛рдордЧреНрд░реА рдХреЛ рдЫреЛрдбрд╝ рджрд┐рдпрд╛ рдЬрд╛ рд╕рдХреЗ рдФрд░ рд╢реЗрд╖ рдХреБрдВрдЬрд┐рдпреЛрдВ (keys) рдХреЛ рдЫреЛрдЯрд╛ (minify) рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХреЗред рдЧрддрд┐рд╢реАрд▓ рдЧрдгрдирд╛ рдХреА рдЧрдИ рдкрд╣реБрдВрдЪ (dynamic computed access) (obj[expr]) рдХреЛ рд╕реНрдерд┐рд░ (statically) рд░реВрдк рд╕реЗ рд╣рд▓ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдкреВрд░реЗ рд╢рд╛рдЦрд╛ рдХреЛ рдЕрдкрд╛рд░рджрд░реНрд╢реА (opaque) рдХреЗ рд░реВрдк рдореЗрдВ рдЪрд┐рд╣реНрдирд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛: рдпрд╣ рдмрдВрдбрд▓ рдореЗрдВ рд╕рдВрд░рдХреНрд╖рд┐рдд рд░рд╣реЗрдЧрд╛ рдФрд░ рдЗрд╕рдХреА рдХреБрдВрдЬрд┐рдпреЛрдВ рдХреЛ рдЫреЛрдЯрд╛ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред
select() рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ, рд╕реНрдерд┐рддрд┐ рд╕рдорд╛рдзрд╛рди (case resolution) рдкреНрд░реЙрдкрд░реНрдЯреА рдПрдХреНрд╕реЗрд╕ рдХреЗ рдмрдЬрд╛рдп рдПрдХ рдлрд╝рдВрдХреНрд╢рди рдХреЙрд▓ рдХреЗ рдЕрдВрджрд░ рд╣реЛрддрд╛ рд╣реИред рдХрдВрдкрд╛рдЗрд▓рд░ рдЗрд╕реЗ рдПрдХрд▓ рд╕реНрдерд┐рд░ рдлрд╝реАрд▓реНрдб рдкрд╣реБрдВрдЪ рдХреЗ рд░реВрдк рдореЗрдВ рджреЗрдЦрддрд╛ рд╣реИ, рдФрд░ рдиреЛрдб рдХреЛ рдмрд┐рд▓реНрдХреБрд▓ рд╡реИрд╕реЗ рд╣реА рдЕрдиреБрдХреВрд▓рд┐рдд (optimize) рдХрд░рддрд╛ рд╣реИ рдЬреИрд╕реЗ рд╡рд╣ enu(), cond(), рдпрд╛ gender() рдХреЗ рд╕рд╛рде рдХрд░рддрд╛ рд╣реИ:
рдХреЛрдб рдХреЛ рдХреНрд▓рд┐рдкрдмреЛрд░реНрдб рдкрд░ рдХреЙрдкреА рдХрд░реЗрдВ
рдЪрдпрди-рдЖрдзрд╛рд░рд┐рдд рд╕рд╛рдордЧреНрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛
React рдШрдЯрдХ рдХреЗ рднреАрддрд░ рдЪрдпрди-рдЖрдзрд╛рд░рд┐рдд рд╕рд╛рдордЧреНрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, react-intlayer рдкреИрдХреЗрдЬ рд╕реЗ useIntlayer рд╣реБрдХ рдЖрдпрд╛рдд рдХрд░реЗрдВ рдФрд░ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред рдпрд╣ рд╣реБрдХ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХреБрдВрдЬреА рдХреЗ рд▓рд┐рдП рд╕рд╛рдордЧреНрд░реА рдкреНрд░рд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЖрдкрдХреЛ рдЙрдЪрд┐рдд рдЖрдЙрдЯрдкреБрдЯ рдХрд╛ рдЪрдпрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдорд╛рди рдкрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред
рдХреЛрдб рдХреЛ рдХреНрд▓рд┐рдкрдмреЛрд░реНрдб рдкрд░ рдХреЙрдкреА рдХрд░реЗрдВ
import type { FC } from "react";
import { useIntlayer } from "react-intlayer";
const PostStatus: FC = () => {
const { publishStatus } = useIntlayer("my_key");
return (
<div>
<p>
{
/* рдЖрдЙрдЯрдкреБрдЯ: This post is a draft */
publishStatus("draft")
}
</p>
<p>
{
/* рдЖрдЙрдЯрдкреБрдЯ: This post is live */
publishStatus("published")
}
</p>
<p>
{
/* рдЖрдЙрдЯрдкреБрдЯ: Unknown status */
publishStatus("Archived")
}
</p>
</div>
);
};
export default PostStatus;
Next.js рдХреНрд▓рд╛рдЗрдВрдЯ рдШрдЯрдХреЛрдВ рдХреЗ рднреАрддрд░ рдЪрдпрди-рдЖрдзрд╛рд░рд┐рдд рд╕рд╛рдордЧреНрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЗрд╕реЗ useIntlayer рд╣реБрдХ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВред рдпрд╣рд╛рдБ рдПрдХ рдЙрджрд╛рд╣рд░рдг рд╣реИ:
рдХреЛрдб рдХреЛ рдХреНрд▓рд┐рдкрдмреЛрд░реНрдб рдкрд░ рдХреЙрдкреА рдХрд░реЗрдВ
"use client";
import type { FC } from "react";
import { useIntlayer } from "next-intlayer";
const PostStatus: FC = () => {
const { publishStatus } = useIntlayer("my_key");
return (
<div>
<p>{publishStatus("draft")}</p>
<p>{publishStatus("published")}</p>
</div>
);
};
export default PostStatus;
Vue рдШрдЯрдХреЛрдВ рдХреЗ рднреАрддрд░ рдЪрдпрди-рдЖрдзрд╛рд░рд┐рдд рд╕рд╛рдордЧреНрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЗрд╕реЗ useIntlayer рд╣реБрдХ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВред рдпрд╣рд╛рдБ рдПрдХ рдЙрджрд╛рд╣рд░рдг рд╣реИ:
рдХреЛрдб рдХреЛ рдХреНрд▓рд┐рдкрдмреЛрд░реНрдб рдкрд░ рдХреЙрдкреА рдХрд░реЗрдВ
Svelte рдШрдЯрдХреЛрдВ рдХреЗ рднреАрддрд░ рдЪрдпрди-рдЖрдзрд╛рд░рд┐рдд рд╕рд╛рдордЧреНрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЗрд╕реЗ useIntlayer рд╣реБрдХ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВред рд╕реНрдЯреЛрд░ рдХреЛ $ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХреНрд╕реЗрд╕ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣рд╛рдБ рдПрдХ рдЙрджрд╛рд╣рд░рдг рд╣реИ:
рдХреЛрдб рдХреЛ рдХреНрд▓рд┐рдкрдмреЛрд░реНрдб рдкрд░ рдХреЙрдкреА рдХрд░реЗрдВ
Preact рдШрдЯрдХреЛрдВ рдХреЗ рднреАрддрд░ рдЪрдпрди-рдЖрдзрд╛рд░рд┐рдд рд╕рд╛рдордЧреНрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЗрд╕реЗ useIntlayer рд╣реБрдХ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВред рдпрд╣рд╛рдБ рдПрдХ рдЙрджрд╛рд╣рд░рдг рд╣реИ:
рдХреЛрдб рдХреЛ рдХреНрд▓рд┐рдкрдмреЛрд░реНрдб рдкрд░ рдХреЙрдкреА рдХрд░реЗрдВ
import type { FC } from "preact";
import { useIntlayer } from "preact-intlayer";
const PostStatus: FC = () => {
const { publishStatus } = useIntlayer("my_key");
return (
<div>
<p>{publishStatus("draft")}</p>
<p>{publishStatus("published")}</p>
</div>
);
};
export default PostStatus;
SolidJS рдШрдЯрдХреЛрдВ рдХреЗ рднреАрддрд░ рдЪрдпрди-рдЖрдзрд╛рд░рд┐рдд рд╕рд╛рдордЧреНрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЗрд╕реЗ useIntlayer рд╣реБрдХ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВред рдпрд╣рд╛рдБ рдПрдХ рдЙрджрд╛рд╣рд░рдг рд╣реИ:
рдХреЛрдб рдХреЛ рдХреНрд▓рд┐рдкрдмреЛрд░реНрдб рдкрд░ рдХреЙрдкреА рдХрд░реЗрдВ
import type { Component } from "solid-js";
import { useIntlayer } from "solid-intlayer";
const PostStatus: Component = () => {
const { publishStatus } = useIntlayer("my_key");
return (
<div>
<p>{publishStatus("draft")}</p>
<p>{publishStatus("published")}</p>
</div>
);
};
export default PostStatus;
Angular рдШрдЯрдХреЛрдВ рдХреЗ рднреАрддрд░ рдЪрдпрди-рдЖрдзрд╛рд░рд┐рдд рд╕рд╛рдордЧреНрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЗрд╕реЗ useIntlayer рд╣реБрдХ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВред рдпрд╣рд╛рдБ рдПрдХ рдЙрджрд╛рд╣рд░рдг рд╣реИ:
рдХреЛрдб рдХреЛ рдХреНрд▓рд┐рдкрдмреЛрд░реНрдб рдкрд░ рдХреЙрдкреА рдХрд░реЗрдВ
vanilla-intlayer рдХреЗ рд╕рд╛рде рдЪрдпрди-рдЖрдзрд╛рд░рд┐рдд рд╕рд╛рдордЧреНрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЗрд╕реЗ useIntlayer рд╣реБрдХ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВред рдпрд╣рд╛рдБ рдПрдХ рдЙрджрд╛рд╣рд░рдг рд╣реИ:
рдХреЛрдб рдХреЛ рдХреНрд▓рд┐рдкрдмреЛрд░реНрдб рдкрд░ рдХреЙрдкреА рдХрд░реЗрдВ
import { installIntlayer, useIntlayer } from "vanilla-intlayer";
installIntlayer();
const content = useIntlayer("my_key").onChange((newContent) => {
document.getElementById("status")!.textContent =
newContent.publishStatus("draft");
});
// рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдкреНрд░рддрд┐рдкрд╛рджрди
document.getElementById("status")!.textContent = content.publishStatus("draft");
рдЕрдиреНрдп рдиреЛрдбреНрд╕ рдХреЗ рд╕рд╛рде Select рдХрд╛ рд╕рдВрдпреЛрдЬрди
рдЪреВрдВрдХрд┐ рдкреНрд░рддреНрдпреЗрдХ рд╕реНрдерд┐рддрд┐ (case) рдореЗрдВ рдПрдХ рдкреВрд░реНрдг рд╕рд╛рдордЧреНрд░реА рдиреЛрдб (content node) рд╣реЛрддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП select рдХреЛ t(), insert(), md() рдЖрджрд┐ рдХреЗ рд╕рд╛рде рд╕рдВрдпреЛрдЬрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:
рдХреЛрдб рдХреЛ рдХреНрд▓рд┐рдкрдмреЛрд░реНрдб рдкрд░ рдХреЙрдкреА рдХрд░реЗрдВ
рдХреЛрдб рдХреЛ рдХреНрд▓рд┐рдкрдмреЛрд░реНрдб рдкрд░ рдХреЙрдкреА рдХрд░реЗрдВ
ICU select рд╕реЗ рдкреНрд░рд╡рд╛рд╕рди (Migration)
рд╡реЗ рд╕рдВрджреЗрд╢ рдЬреЛ ICU select рддрд░реНрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рдЙрдиреНрд╣реЗрдВ select рдиреЛрдб рдХреЗ рд░реВрдк рдореЗрдВ рдЖрдпрд╛рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ:
рдХреЛрдб рдХреЛ рдХреНрд▓рд┐рдкрдмреЛрд░реНрдб рдкрд░ рдХреЙрдкреА рдХрд░реЗрдВ
рдпрд╣ рдмрди рдЬрд╛рдПрдЧрд╛:
рдХреЛрдб рдХреЛ рдХреНрд▓рд┐рдкрдмреЛрд░реНрдб рдкрд░ рдХреЙрдкреА рдХрд░реЗрдВ
ICU рдХреА other рд╕реНрдерд┐рддрд┐ рдХреЛ fallback рдХреЗ рд░реВрдк рдореЗрдВ рдирд╛рдо рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЬреЛ рдХрд┐ Intlayer рдореЗрдВ рд╕рднреА рдХреИрдЪ-рдСрд▓ (catch-all) рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рд╡рд┐рд╣рд┐рдд (canonical) рдирд╛рдо рд╣реИред рджреВрд╕рд░рд╛ рддрд░реНрдХ ICU рдЪрд░ рдирд╛рдо рдХреЛ рд░рд┐рдХреЙрд░реНрдб рдХрд░рддрд╛ рд╣реИ, рддрд╛рдХрд┐ рдирд┐рд░реНрдпрд╛рдд (export) рдХреЗ рд╕рдордп рд╕рдВрджреЗрд╢ рдмрд┐рд▓реНрдХреБрд▓ рдЙрд╕реА ICU рд╕реНрдЯреНрд░рд┐рдВрдЧ рдореЗрдВ рд╡рд╛рдкрд╕ рдЖ рд╕рдХреЗред
рдзреНрдпрд╛рди рджреЗрдВ, ICUselectрдЬрд┐рд╕рдореЗрдВ рд╕реНрдерд┐рддрд┐рдпрд╛рдВ рд▓рд┐рдВрдЧ рдорд╛рди (male/female/other) рд╣реИрдВ, рдЙрдиреНрд╣реЗрдВ рдЗрд╕рдХреЗ рдмрдЬрд╛рдпgenderрдиреЛрдб рдХреЗ рд░реВрдк рдореЗрдВ рдЖрдпрд╛рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдЕрддрд┐рд░рд┐рдХреНрдд рд╕рдВрд╕рд╛рдзрди
рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди (configuration) рдФрд░ рдЙрдкрдпреЛрдЧ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рд╡рд┐рд╕реНрддреГрдд рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд▓рд┐рдП, рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреЛ рджреЗрдЦреЗрдВ:
- Intlayer CLI рджрд╕реНрддрд╛рд╡реЗрдЬрд╝
- Intlayer React рджрд╕реНрддрд╛рд╡реЗрдЬрд╝
- Intlayer Next.js рджрд╕реНрддрд╛рд╡реЗрдЬрд╝
рдпреЗ рд╕рдВрд╕рд╛рдзрди рд╡рд┐рднрд┐рдиреНрди рдкрд░рд┐рд╡реЗрд╢реЛрдВ рдФрд░ рд░реВрдкрд░реЗрдЦрд╛рдУрдВ (frameworks) рдХреЗ рднреАрддрд░ Intlayer рдХреЛ рд╕реЗрдЯ рдЕрдк рдФрд░ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдореЗрдВ рдФрд░ рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рджрд╛рди рдХрд░рддреЗ рд╣реИрдВред
