рдЗрд╕ рдкреГрд╖реНрда рдХреЗ рд▓рд┐рдП рдПрдХ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдЯреЗрдореНрдкрд▓реЗрдЯ рдЙрдкрд▓рдмреНрдз рд╣реИред
рдпрд╣ рдкреГрд╖реНрда рдЯреЗрдореНрдкрд▓реЗрдЯ рдХрд╛ рд▓рд╛рдЗрд╡ рдбреЗрдореЛ рд▓рд┐рдВрдХ рдХрд░рддрд╛ рд╣реИред
рдЗрд╕ рдкреГрд╖реНрда рдХреЗ рд▓рд┐рдП рдПрдХ рд╡реАрдбрд┐рдпреЛ рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рдЙрдкрд▓рдмреНрдз рд╣реИред
рдЕрдкрдиреЗ рдкреНрд░рд╢реНрди рдХреЛ рдкреВрдЫреЗрдВ рдФрд░ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдХрд╛ рд╕рд╛рд░рд╛рдВрд╢ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ, рдЗрд╕ рдкреГрд╖реНрда рдФрд░ рдЖрдкрдХреЗ рдЪреБрдиреЗ рд╣реБрдП AI рдкреНрд░рджрд╛рддрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ
рдпрд╣ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдкреБрд░рд╛рдирд╛ рд╣реИ, рдЖрдзрд╛рд░ рд╕рдВрд╕реНрдХрд░рдг рдХреЛ рдЗрд╕ рддрд┐рдерд┐ рдкрд░ рдЕрдкрдбреЗрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ 29 рдЕрдЧрд╕реНрдд 2026.
рдЕрдВрдЧреНрд░реЗрдЬреА рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдкрд░ рдЬрд╛рдПрдБрд╕рдВрд╕реНрдХрд░рдг рдЗрддрд┐рд╣рд╛рд╕
- "рд░реВрдЯ рдХреЗ head рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ рдореЗрдЯрд╛рдбреЗрдЯрд╛ рдбрд┐рдХреНрд╢рдирд░реА рдХреЗ рд╕реНрдЯреИрдЯрд┐рдХ, рдбрд╛рдпрдирд╛рдорд┐рдХ рдФрд░ рдХреИрд╢реНрдб рдбрд╛рдпрдирд╛рдорд┐рдХ рд░рд┐рдЬрд╝реЙрд▓реНрдпреВрд╢рди рдХреА рддреБрд▓рдирд╛"v9.4.025/8/2026
- "рд╕реЙрд▓рд┐рдб useIntlayer API рдЙрдкрдпреЛрдЧ рдХреЛ рд╕реАрдзреЗ рдкреНрд░реЙрдкрд░реНрдЯреА рдПрдХреНрд╕реЗрд╕ рдореЗрдВ рдЕрдкрдбреЗрдЯ рдХрд░реЗрдВ"v8.9.04/5/2026
- "Tanstack Start Solid.js рдХреЗ рд▓рд┐рдП рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛"v8.5.125/3/2026
рдЗрд╕ рдкреГрд╖реНрда рдХреА рд╕рд╛рдордЧреНрд░реА рдПрдХ AI рджреНрд╡рд╛рд░рд╛ рдЕрдиреБрд╡рд╛рджрд┐рдд рдХреА рдЧрдИ рд╣реИред
рдЕрдВрдЧреНрд░реЗрдЬреА рдореЗрдВ рдореВрд▓ рд╕рд╛рдордЧреНрд░реА рдХреЗ рдЕрдВрддрд┐рдо рд╕рдВрд╕реНрдХрд░рдг рджреЗрдЦреЗрдВрдЕрдЧрд░ рдЖрдкрдХреЗ рдкрд╛рд╕ рдЗрд╕ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдХреЛ рд╕реБрдзрд╛рд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЛрдИ рд╡рд┐рдЪрд╛рд░ рд╣реИ, рддреЛ рдХреГрдкрдпрд╛ GitHub рдкрд░ рдПрдХ рдкреБрд▓ рдЕрдиреБрд░реЛрдз рд╕рдмрдорд┐рдЯ рдХрд░рдХреЗ рдпреЛрдЧрджрд╛рди рджреЗрдиреЗ рдореЗрдВ рд╕рдВрдХреЛрдЪ рди рдХрд░реЗрдВред
рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдХреЗ рд▓рд┐рдП GitHub рд▓рд┐рдВрдХрджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдХрд╛ Markdown рдХреЛ рдХреНрд▓рд┐рдкрдмреЛрд░реНрдб рдкрд░ рдХреЙрдкреА рдХрд░реЗрдВ
Intlayer рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ Solid.js рдХреЗ рд╕рд╛рде рдЕрдкрдиреА Tanstack Start рд╡реЗрдмрд╕рд╛рдЗрдЯ рдХрд╛ рдЕрдиреБрд╡рд╛рдж рдХрд░реЗрдВ | рдЕрдВрддрд░реНрд░рд╛рд╖реНрдЯреНрд░реАрдпрдХрд░рдг (i18n)
рд╡рд┐рд╖рдп рд╕реВрдЪреА
рдпрд╣ рдЧрд╛рдЗрдб рджрд░реНрд╢рд╛рддреА рд╣реИ рдХрд┐ Solid.js, рд▓реЛрдХреЗрд▓-рдЬрд╛рдЧрд░реВрдХ рд░реВрдЯрд┐рдВрдЧ, TypeScript рд╕рдорд░реНрдерди рдФрд░ рдЖрдзреБрдирд┐рдХ рд╡рд┐рдХрд╛рд╕ рдкреНрд░рдерд╛рдУрдВ рдХреЗ рд╕рд╛рде Tanstack Start рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдореЗрдВ рдирд┐рд░реНрдмрд╛рдз рдЕрдВрддрд░реНрд░рд╛рд╖реНрдЯреНрд░реАрдпрдХрд░рдг рдХреЗ рд▓рд┐рдП Intlayer рдХреЛ рдХреИрд╕реЗ рдПрдХреАрдХреГрдд рдХрд┐рдпрд╛ рдЬрд╛рдПред
рд╡рд┐рдХрд▓реНрдкреЛрдВ рдкрд░ рдЗрдиреНрдЯрд▓реЗрдпрд░ рдХреНрдпреЛрдВ?
рд░рд┐рдПрдХреНрдЯ-рдЖрдИ18рдиреЗрдХреНрд╕реНрдЯ рдпрд╛ рдЖрдИ18рдиреЗрдХреНрд╕реНрдЯ рдЬреИрд╕реЗ рдореБрдЦреНрдп рд╕рдорд╛рдзрд╛рдиреЛрдВ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ, рдЗрдВрдЯрд▓реЗрдпрд░ рдПрдХ рдРрд╕рд╛ рд╕рдорд╛рдзрд╛рди рд╣реИ рдЬреЛ рдПрдХреАрдХреГрдд рдЕрдиреБрдХреВрд▓рди рдХреЗ рд╕рд╛рде рдЖрддрд╛ рд╣реИ рдЬреИрд╕реЗ:
рдЗрдВрдЯрд▓реЗрдпрд░ рдХреЛ рдмрд╣реБрднрд╛рд╖реА рд░реВрдЯрд┐рдВрдЧ, рд╕рд╛рдЗрдЯрдореИрдк, рдФрд░ рд╕реНрдХреЗрд▓рд┐рдВрдЧ рдЕрдВрддрд░реНрд░рд╛рд╖реНрдЯреНрд░реАрдпрдХрд░рдг (i18n) рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╕рднреА рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХреА рдкреЗрд╢рдХрд╢ рдХрд░рдХреЗ рдЯреИрдирд╕реНрдЯреИрдХ рд╕реНрдЯрд╛рд░реНрдЯ рдФрд░ рд╕реЙрд▓рд┐рдб рдХреЗ рд╕рд╛рде рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред
рдЕрдкрдиреЗ рдкреГрд╖реНрдареЛрдВ рдореЗрдВ рд╡рд┐рд╢рд╛рд▓ JSON рдлрд╝рд╛рдЗрд▓реЗрдВ рд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп, рдХреЗрд╡рд▓ рдЖрд╡рд╢реНрдпрдХ рд╕рд╛рдордЧреНрд░реА рд▓реЛрдб рдХрд░реЗрдВред рдЗрдВрдЯрд▓реЗрдпрд░ рдЖрдкрдХреЗ рдмрдВрдбрд▓ рдФрд░ рдкреГрд╖реНрда рдЖрдХрд╛рд░ рдХреЛ 50% рддрдХ рдХрдо рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдХрд░рддрд╛ рд╣реИред
рдЖрдкрдХреЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреА рд╕рд╛рдордЧреНрд░реА рдХрд╛ рджрд╛рдпрд░рд╛ рдмрдбрд╝реЗ рдкреИрдорд╛рдиреЗ рдХреЗ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рд░рдЦрд░рдЦрд╛рд╡ рдХреА рд╕реБрд╡рд┐рдзрд╛ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред рдЖрдк рдЕрдкрдиреЗ рд╕рдВрдкреВрд░реНрдг рд╕рд╛рдордЧреНрд░реА рдХреЛрдбрдмреЗрд╕ рдХреА рд╕рдореАрдХреНрд╖рд╛ рдХрд░рдиреЗ рдХреЗ рдорд╛рдирд╕рд┐рдХ рдмреЛрдЭ рдХреЗ рдмрд┐рдирд╛ рдХрд┐рд╕реА рдПрдХ рдлреАрдЪрд░ рдлрд╝реЛрд▓реНрдбрд░ рдХреА рдирдХрд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдпрд╛ рдЙрд╕реЗ рд╣рдЯрд╛ рд╕рдХрддреЗ рд╣реИрдВред рдЗрд╕рдХреЗ рдЕрддрд┐рд░рд┐рдХреНрдд, рдЖрдкрдХреА рд╕рд╛рдордЧреНрд░реА рдХреА рд╕рдЯреАрдХрддрд╛ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП Intlayer рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЯрд╛рдЗрдк рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред
рд╕рд╛рдордЧреНрд░реА рдХрд╛ рд╕рд╣-рд╕реНрдерд╛рдиреАрдХрд░рдг рдмрдбрд╝реЗ рднрд╛рд╖рд╛ рдореЙрдбрд▓ (рдПрд▓рдПрд▓рдПрдо) рджреНрд╡рд╛рд░рд╛ рдЖрд╡рд╢реНрдпрдХ рд╕рдВрджрд░реНрдн рдХреЛ рдХрдо рдХрд░рддрд╛ рд╣реИред рдЗрдВрдЯрд▓реЗрдпрд░ рдЯреВрд▓ рдХреЗ рдПрдХ рд╕реВрдЯ рдХреЗ рд╕рд╛рде рднреА рдЖрддрд╛ рд╣реИ, рдЬреИрд╕реЗ CLI рддрд╛рдХрд┐ рд▓рд╛рдкрддрд╛ рдЕрдиреБрд╡рд╛рджреЛрдВ рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХреЗ,LSP, MCP, рдФрд░ agent skills, AI рдПрдЬреЗрдВрдЯреЛрдВ рдХреЗ рд▓рд┐рдП рдбреЗрд╡рд▓рдкрд░ рдЕрдиреБрднрд╡ (DX) рдХреЛ рдФрд░ рднреА рдЖрд╕рд╛рди рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдПред
рдЕрдкрдиреЗ рдПрдЖрдИ рдкреНрд░рджрд╛рддрд╛ рдХреА рдХреАрдордд рдкрд░ рдЕрдкрдиреА рдкрд╕рдВрдж рдХреЗ рдПрд▓рдПрд▓рдПрдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЕрдкрдиреЗ рд╕реАрдЖрдИ/рд╕реАрдбреА рдкрд╛рдЗрдкрд▓рд╛рдЗрди рдореЗрдВ рдЕрдиреБрд╡рд╛рдж рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрд╡рдЪрд╛рд▓рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред рдЗрдВрдЯрд▓реЗрдпрд░ рд╕рд╛рдордЧреНрд░реА рдирд┐рд╖реНрдХрд░реНрд╖рдг рдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдХрдВрдкрд╛рдЗрд▓рд░ рдХреЗ рд╕рд╛рде-рд╕рд╛рде рдкреГрд╖реНрдарднреВрдорд┐ рдореЗрдВ рдЕрдиреБрд╡рд╛рдж рдореЗрдВ рдорджрдж рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╡реЗрдм рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рднреА рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред
рдмрдбрд╝реЗ рдкреИрдорд╛рдиреЗ рдкрд░ JSON рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдШрдЯрдХреЛрдВ рд╕реЗ рдЬреЛрдбрд╝рдиреЗ рд╕реЗ рдкреНрд░рджрд░реНрд╢рди рдФрд░ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛рд╢реАрд▓рддрд╛ рд╕рдВрдмрдВрдзреА рд╕рдорд╕реНрдпрд╛рдПрдВ рд╣реЛ рд╕рдХрддреА рд╣реИрдВред рдЗрдВрдЯрд▓реЗрдпрд░ рдмрд┐рд▓реНрдб рд╕рдордп рдкрд░ рдЖрдкрдХреА рд╕рд╛рдордЧреНрд░реА рд▓реЛрдбрд┐рдВрдЧ рдХреЛ рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд░рддрд╛ рд╣реИред
рд╕рд┐рд░реНрдл рдПрдХ i18n рд╕рдорд╛рдзрд╛рди рд╕реЗ рдЕрдзрд┐рдХ, Intlayer рдПрдХ рд╕реНрд╡-рд╣реЛрд╕реНрдЯреЗрдб рд╡рд┐рдЬрд╝реБрдЕрд▓ рдПрдбрд┐рдЯрд░ рдФрд░ рдПрдХ [рдкреВрд░реНрдг] рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ рд╕реАрдПрдордПрд╕](/hi/doc/concept/cms) рдЖрдкрдХреА рдмрд╣реБрднрд╛рд╖реА рд╕рд╛рдордЧреНрд░реА рдХреЛ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕рдордп рдореЗрдВ рдкреНрд░рдмрдВрдзрд┐рдд рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдХрд░рддрд╛ рд╣реИ, рдЬрд┐рд╕рд╕реЗ рдЕрдиреБрд╡рд╛рджрдХреЛрдВ, рдХреЙрдкреАрд░рд╛рдЗрдЯрд░реЛрдВ рдФрд░ рдЯреАрдо рдХреЗ рдЕрдиреНрдп рд╕рджрд╕реНрдпреЛрдВ рдХреЗ рд╕рд╛рде рд╕рд╣рдпреЛрдЧ рд╕рд╣рдЬ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред рд╕рд╛рдордЧреНрд░реА рдХреЛ рд╕реНрдерд╛рдиреАрдп рдФрд░/рдпрд╛ рджреВрд░рд╕реНрде рд░реВрдк рд╕реЗ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
Tanstack Start рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореЗрдВ Intlayer рд╕реЗрдЯрдЕрдк рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрдЯреЗрдк-рдмрд╛рдп-рд╕реНрдЯреЗрдк рдЧрд╛рдЗрдб
GitHub рдкрд░ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдЯреЗрдореНрдкрд▓реЗрдЯ рджреЗрдЦреЗрдВред
рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдирд┐рд░реНрдорд╛рдг
рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, TanStack Start рд╡реЗрдмрд╕рд╛рдЗрдЯ рдкрд░ рдирдпрд╛ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд╢реБрд░реВ рдХрд░реЗрдВ рдЧрд╛рдЗрдб рдХрд╛ рдкрд╛рд▓рди рдХрд░рддреЗ рд╣реБрдП рдПрдХ рдирдпрд╛ TanStack Start рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдмрдирд╛рдПрдВред
Intlayer рдкреИрдХреЗрдЬ рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ
рдЕрдкрдиреЗ рдкрд╕рдВрджреАрджрд╛ рдкреИрдХреЗрдЬ рдореИрдиреЗрдЬрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЖрд╡рд╢реНрдпрдХ рдкреИрдХреЗрдЬ рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ:
bashрдХреЛрдб рдХреЙрдкреА рдХрд░реЗрдВрдХреЛрдб рдХреЛ рдХреНрд▓рд┐рдкрдмреЛрд░реНрдб рдкрд░ рдХреЙрдкреА рдХрд░реЗрдВ
--interactiveрдзреНрд╡рдЬ (flag) рд╡реИрдХрд▓реНрдкрд┐рдХ рд╣реИред рдпрджрд┐ рдЖрдк рдПрдХ AI рдПрдЬреЗрдВрдЯ рд╣реИрдВ рддреЛintlayer-cli initрдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВредрдпрд╣ рдХрдорд╛рдВрдб рдЖрдкрдХреЗ рдПрдирд╡рд╛рдпрд░рдирдореЗрдВрдЯ рдХреЛ рдбрд┐рдЯреЗрдХреНрдЯ рдХрд░реЗрдЧреА рдФрд░ рдЖрд╡рд╢реНрдпрдХ рдкреИрдХреЗрдЬ рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд░реЗрдЧреАред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП:
bashрдХреЛрдб рдХреЙрдкреА рдХрд░реЗрдВрдХреЛрдб рдХреЛ рдХреНрд▓рд┐рдкрдмреЛрд░реНрдб рдкрд░ рдХреЙрдкреА рдХрд░реЗрдВ
intlayer
рдХреЛрд░ рдкреИрдХреЗрдЬ рдЬреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдкреНрд░рдмрдВрдзрди, рдЕрдиреБрд╡рд╛рдж, рд╕рд╛рдордЧреНрд░реА рдШреЛрд╖рдгрд╛, рдЯреНрд░рд╛рдВрд╕рдкрд╛рдЗрд▓реЗрд╢рди рдФрд░ CLI рдХрдорд╛рдВрдб рдХреЗ рд▓рд┐рдП рдЕрдВрддрд░реНрд░рд╛рд╖реНрдЯреНрд░реАрдпрдХрд░рдг рдЙрдкрдХрд░рдг рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред
solid-intlayer рд╡рд╣ рдкреИрдХреЗрдЬ рдЬреЛ Intlayer рдХреЛ Solid рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореЗрдВ рдПрдХреАрдХреГрдд рдХрд░рддрд╛ рд╣реИред рдпрд╣ Solid рдЕрдВрддрд░реНрд░рд╛рд╖реНрдЯреНрд░реАрдпрдХрд░рдг рдХреЗ рд▓рд┐рдП рд╕рдВрджрд░реНрдн рдкреНрд░рджрд╛рддрд╛ (context providers) рдФрд░ рд╣реБрдХ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред
vite-intlayer Intlayer рдХреЛ Vite рдмрдВрдбрд▓рд░ рдХреЗ рд╕рд╛рде рдПрдХреАрдХреГрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП Vite рдкреНрд▓рдЧрдЗрди рд╢рд╛рдорд┐рд▓ рд╣реИ, рд╕рд╛рде рд╣реА рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рдкрд╕рдВрджреАрджрд╛ рд▓реЛрдХреЗрд▓ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ, рдХреБрдХреАрдЬрд╝ рдкреНрд░рдмрдВрдзрд┐рдд рдХрд░рдиреЗ рдФрд░ URL рдкреБрдирд░реНрдирд┐рд░реНрджреЗрд╢рди рдХреЛ рд╕рдВрднрд╛рд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдорд┐рдбрд▓рд╡реЗрдпрд░ рднреА рд╢рд╛рдорд┐рд▓ рд╣реИред
рдЕрдкрдиреЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХрд╛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди
рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░
рдЗрд╕ рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдореЗрдВ, рд╕рднреА рд╕реНрдерд╛рдиреАрдпрдХреГрдд рд░реВрдЯреНрд╕ Solid рдореЗрдВ
{-$locale}рд░реВрдЯ рд╕реЗрдЧрдореЗрдВрдЯ рдХреЗ рддрд╣рдд рдиреЗрд╕реНрдЯ рдХрд┐рдП рдЧрдП рд╣реИрдВред рдпрд╣ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдкреНрд░рддреНрдпреЗрдХ рднрд╛рд╖рд╛ рдХрд╛ рдПрдХ рд╕рдорд░реНрдкрд┐рдд URL рд╣реЛ, рд╕рд╛рде рд╣реА рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд▓реЛрдХреЗрд▓ рдкреНрд░реАрдлрд╝рд┐рдХреНрд╕, рд╕рддреНрдпрд╛рдкрди рдФрд░ SEO рдЕрдиреБрдХреВрд▓рди рд╕рдХреНрд╖рдо рдХрд░рддрд╛ рд╣реИредbashрдХреЛрдб рдХреЙрдкреА рдХрд░реЗрдВрдХреЛрдб рдХреЛ рдХреНрд▓рд┐рдкрдмреЛрд░реНрдб рдкрд░ рдХреЙрдкреА рдХрд░реЗрдВ
рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди
рдЕрдкрдиреЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреА рднрд╛рд╖рд╛рдУрдВ рдХреЛ рд╕реЗрдЯрдЕрдк рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рдПрдВ:
intlayer.config.tsрдХреЛрдб рдХреЙрдкреА рдХрд░реЗрдВрдХреЛрдб рдХреЛ рдХреНрд▓рд┐рдкрдмреЛрд░реНрдб рдкрд░ рдХреЙрдкреА рдХрд░реЗрдВ
рдЗрд╕ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ, рдЖрдк рд╕реНрдерд╛рдиреАрдпрдХреГрдд URL, рдорд┐рдбрд▓рд╡реЗрдпрд░ рд░реАрдбрд╛рдпрд░реЗрдХреНрд╢рди, рдХреБрдХреА рдирд╛рдо, рдЕрдкрдиреА рд╕рд╛рдордЧреНрд░реА рдШреЛрд╖рдгрд╛рдУрдВ рдХрд╛ рд╕реНрдерд╛рди рдФрд░ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдХрдВрд╕реЛрд▓ рдореЗрдВ Intlayer рд▓реЙрдЧ рдХреЛ рдЕрдХреНрд╖рдо рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ рдмрд╣реБрдд рдХреБрдЫред рдЙрдкрд▓рдмреНрдз рдкреИрд░рд╛рдореАрдЯрд░ рдХреА рдкреВрд░реА рд╕реВрдЪреА рдХреЗ рд▓рд┐рдП, рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реАрдХрд░рдг рджреЗрдЦреЗрдВред
рдЕрдкрдиреА Vite рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдореЗрдВ Intlayer рдПрдХреАрдХреГрдд рдХрд░реЗрдВ
рдЕрдкрдиреЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдореЗрдВ intlayer рдкреНрд▓рдЧрдЗрди рдЬреЛрдбрд╝реЗрдВ:
vite.config.tsрдХреЛрдб рдХреЙрдкреА рдХрд░реЗрдВрдХреЛрдб рдХреЛ рдХреНрд▓рд┐рдкрдмреЛрд░реНрдб рдкрд░ рдХреЙрдкреА рдХрд░реЗрдВ
intlayer()Vite рдкреНрд▓рдЧрдЗрди рдХрд╛ рдЙрдкрдпреЛрдЧ Intlayer рдХреЛ Vite рдХреЗ рд╕рд╛рде рдПрдХреАрдХреГрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣ рд╕рд╛рдордЧреНрд░реА рдШреЛрд╖рдгрд╛ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреЛ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рддрд╛ рд╣реИ рдФрд░ рд╡рд┐рдХрд╛рд╕ рдореЛрдб рдореЗрдВ рдЙрдирдХреА рдирд┐рдЧрд░рд╛рдиреА рдХрд░рддрд╛ рд╣реИред рдпрд╣ Vite рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рднреАрддрд░ Intlayer рд╡рд╛рддрд╛рд╡рд░рдг рдЪрд░ (environment variables) рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддрд╛ рд╣реИред рдЗрд╕рдХреЗ рдЕрддрд┐рд░рд┐рдХреНрдд, рдпрд╣ рдкреНрд░рджрд░реНрд╢рди рдУрд╡рд░рд╣реЗрдб рдХреЛ рдХрдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдирд╛рдо (aliases) рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИредрд░реВрдЯ рд▓реЗрдЖрдЙрдЯ рдмрдирд╛рдПрдВ
рд╡рд░реНрддрдорд╛рди рд▓реЛрдХреЗрд▓ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреЗ рд▓рд┐рдП
useParamsрдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдФрд░htmlрдЯреИрдЧ рдкрд░langрдФрд░dirрд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЛ рд╕реЗрдЯ рдХрд░рдХреЗ рдЕрдВрддрд░реНрд░рд╛рд╖реНрдЯреНрд░реАрдпрдХрд░рдг рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдкрдирд╛ рд░реВрдЯ рд▓реЗрдЖрдЙрдЯ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░реЗрдВредsrc/routes/__root.tsxрдХреЛрдб рдХреЙрдкреА рдХрд░реЗрдВрдХреЛрдб рдХреЛ рдХреНрд▓рд┐рдкрдмреЛрд░реНрдб рдкрд░ рдХреЙрдкреА рдХрд░реЗрдВ
рд▓реЛрдХреЗрд▓ рд▓реЗрдЖрдЙрдЯ рдмрдирд╛рдПрдВ
рдПрдХ рд▓реЗрдЖрдЙрдЯ рдмрдирд╛рдПрдВ рдЬреЛ рд▓реЛрдХреЗрд▓ рдЙрдкрд╕рд░реНрдЧ рдХреЛ рд╕рдВрднрд╛рд▓рддрд╛ рд╣реИ рдФрд░ рд╕рддреНрдпрд╛рдкрди рдХрд░рддрд╛ рд╣реИред рдпрд╣ рд▓реЗрдЖрдЙрдЯ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдЧрд╛ рдХрд┐ рдХреЗрд╡рд▓ рд╡реИрдз рд▓реЛрдХреЗрд▓ рд╣реА рд╕рдВрд╕рд╛рдзрд┐рдд рд╣реЛрдВред
рдпрджрд┐ рдЖрдкрдХреЛ рд░реВрдЯ рд╕реНрддрд░ рдкрд░ рд▓реЛрдХреЗрд▓ рдЙрдкрд╕рд░реНрдЧ рдХреЛ рдорд╛рдиреНрдп рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ, рддреЛ рдпрд╣ рдЪрд░рдг рд╡реИрдХрд▓реНрдкрд┐рдХ рд╣реИред
src/routes/{-$locale}/route.tsxрдХреЛрдб рдХреЙрдкреА рдХрд░реЗрдВрдХреЛрдб рдХреЛ рдХреНрд▓рд┐рдкрдмреЛрд░реНрдб рдкрд░ рдХреЙрдкреА рдХрд░реЗрдВ
рдпрд╣рд╛рдБ,
{-$locale}рдПрдХ рдЧрддрд┐рд╢реАрд▓ рд░реВрдЯ рдорд╛рдкрджрдВрдб рд╣реИ рдЬрд┐рд╕реЗ рд╡рд░реНрддрдорд╛рди рд▓реЛрдХреЗрд▓ рджреНрд╡рд╛рд░рд╛ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣ рдиреЛрдЯреЗрд╢рди рд╕реНрд▓реЙрдЯ рдХреЛ рд╡реИрдХрд▓реНрдкрд┐рдХ рдмрдирд╛рддрд╛ рд╣реИ, рдЬрд┐рд╕рд╕реЗ рдпрд╣'prefix-no-default'рдЖрджрд┐ рдЬреИрд╕реЗ рд░реВрдЯрд┐рдВрдЧ рдореЛрдб рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрддрд╛ рд╣реИредрдзреНрдпрд╛рди рд░рдЦреЗрдВ рдХрд┐ рдпрджрд┐ рдЖрдк рдПрдХ рд╣реА рд░реВрдЯ рдореЗрдВ рдХрдИ рдЧрддрд┐рд╢реАрд▓ рдЦрдВрдбреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ (рдЬреИрд╕реЗ:
/{-$locale}/other-path/$anotherDynamicPath/...), рддреЛ рдпрд╣ рд╕реНрд▓реЙрдЯ рд╕рдорд╕реНрдпрд╛рдПрдБ рдкреИрджрд╛ рдХрд░ рд╕рдХрддрд╛ рд╣реИред'prefix-all'рдореЛрдб рдХреЗ рд▓рд┐рдП, рдЖрдк рд╕реНрд▓реЙрдЯ рдХреЛ$localeрдкрд░ рд╕реНрд╡рд┐рдЪ рдХрд░рдирд╛ рдкрд╕рдВрдж рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред'no-prefix'рдпрд╛'search-params'рдореЛрдб рдХреЗ рд▓рд┐рдП, рдЖрдк рд╕реНрд▓реЙрдЯ рдХреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╣рдЯрд╛ рд╕рдХрддреЗ рд╣реИрдВредрдЕрдкрдиреА рд╕рд╛рдордЧреНрд░реА рдШреЛрд╖рд┐рдд рдХрд░реЗрдВ
рдЕрдиреБрд╡рд╛рджреЛрдВ рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдкрдиреА рд╕рд╛рдордЧреНрд░реА рдШреЛрд╖рдгрд╛рдПрдВ рдмрдирд╛рдПрдВ рдФрд░ рдкреНрд░рдмрдВрдзрд┐рдд рдХрд░реЗрдВ:
src/contents/page.content.tsрдХреЛрдб рдХреЙрдкреА рдХрд░реЗрдВрдХреЛрдб рдХреЛ рдХреНрд▓рд┐рдкрдмреЛрд░реНрдб рдкрд░ рдХреЙрдкреА рдХрд░реЗрдВ
рдЖрдкрдХреА рд╕рд╛рдордЧреНрд░реА рдШреЛрд╖рдгрд╛рдПрдВ рдЖрдкрдХреЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореЗрдВ рдХрд╣реАрдВ рднреА рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХреА рдЬрд╛ рд╕рдХрддреА рд╣реИрдВ, рдмрд╢рд░реНрддреЗ рд╡реЗ
contentDirрдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ (рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ./app) рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реЛрдВред рдФрд░ рд╕рд╛рдордЧреНрд░реА рдШреЛрд╖рдгрд╛ рдлрд╝рд╛рдЗрд▓ рдПрдХреНрд╕рдЯреЗрдВрд╢рди (рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ.content.{json,ts,tsx,js,jsx,mjs,cjs,md,mdx,yaml,yml}) рд╕реЗ рдореЗрд▓ рдЦрд╛рддреА рд╣реЛрдВредрдЕрдзрд┐рдХ рд╡рд┐рд╡рд░рдг рдХреЗ рд▓рд┐рдП, рд╕рд╛рдордЧреНрд░рд╝реА рдШреЛрд╖рдгрд╛ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реАрдХрд░рдг рджреЗрдЦреЗрдВред
рд▓реЛрдХреЗрд▓-рдЬрд╛рдЧрд░реВрдХ рдШрдЯрдХреЛрдВ рдФрд░ рд╣реБрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ
рд▓реЛрдХреЗрд▓-рдЬрд╛рдЧрд░реВрдХ рдиреЗрд╡рд┐рдЧреЗрд╢рди рдХреЗ рд▓рд┐рдП рдПрдХ
LocalizedLinkрдШрдЯрдХ рдмрдирд╛рдПрдВ:src/components/LocalizedLink.tsxрдХреЛрдб рдХреЙрдкреА рдХрд░реЗрдВрдХреЛрдб рдХреЛ рдХреНрд▓рд┐рдкрдмреЛрд░реНрдб рдкрд░ рдХреЙрдкреА рдХрд░реЗрдВ
рдпрд╣ рдШрдЯрдХ рджреЛ рдЙрджреНрджреЗрд╢реНрдпреЛрдВ рдХреА рдкреВрд░реНрддрд┐ рдХрд░рддрд╛ рд╣реИ:
- URL рд╕реЗ рдЕрдирд╛рд╡рд╢реНрдпрдХ
{-$locale}рдЙрдкрд╕рд░реНрдЧ рд╣рдЯрд╛рдирд╛ред - URL рдореЗрдВ рд▓реЛрдХреЗрд▓ рдорд╛рдкрджрдВрдб рдЗрдВрдЬреЗрдХреНрдЯ рдХрд░рдирд╛ рддрд╛рдХрд┐ рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рд╣реЛ рд╕рдХреЗ рдХрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╕реАрдзреЗ рд╕реНрдерд╛рдиреАрдпрдХреГрдд рд░реВрдЯ рдкрд░ рд░реАрдбрд╛рдпрд░реЗрдХреНрдЯ рд╣реЛ рдЧрдпрд╛ рд╣реИред
рдлрд┐рд░, рд╣рдо рдкреНрд░реЛрдЧреНрд░рд╛рдореЗрдЯрд┐рдХ рдиреЗрд╡рд┐рдЧреЗрд╢рди рдХреЗ рд▓рд┐рдП
useLocalizedNavigateрд╣реБрдХ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ:src/hooks/useLocalizedNavigate.tsxрдХреЛрдб рдХреЙрдкреА рдХрд░реЗрдВрдХреЛрдб рдХреЛ рдХреНрд▓рд┐рдкрдмреЛрд░реНрдб рдкрд░ рдХреЙрдкреА рдХрд░реЗрдВ
- URL рд╕реЗ рдЕрдирд╛рд╡рд╢реНрдпрдХ
рдЕрдкрдиреЗ рдкреЗрдЬреЛрдВ рдореЗрдВ Intlayer рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ
рдХрдВрдкреЛрдиреЗрдВрдЯ рдХреЗ рднреАрддрд░ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ
useIntlayerрдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ: рдпрд╣ рдХрдВрдЯреЗрдВрдЯ рдкрдврд╝рдиреЗ рдХрд╛ рдЕрдиреБрд╢рдВрд╕рд┐рдд рддрд░реАрдХрд╛ рд╣реИ, рдФрд░ рдХрдВрдкрд╛рдЗрд▓рд░ рдЗрд╕реЗ рд░реЗрдВрдбрд░ рд╣реЛ рд░рд╣реЗ рд▓реЛрдХреЗрд▓ рдкрд░ рд╣рд▓ рдХрд░ рджреЗрддрд╛ рд╣реИредgetIntlayer/getIntlayerAsyncрдХрд╛ рдЙрдкрдпреЛрдЧ рдХреЗрд╡рд▓ Solid рдЯреНрд░реА рдХреЗ рдмрд╛рд╣рд░ рдХрд░реЗрдВ: рд░реВрдЯ рдХреЗhead, рд▓реЛрдбрд░ рдФрд░ рд╕рд░реНрд╡рд░ рдлрд╝рдВрдХреНрд╢рди рдореЗрдВредрдЕрдкрдиреЗ рдкреВрд░реЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореЗрдВ рдЕрдкрдиреЗ рд╕рд╛рдордЧреНрд░реА рд╢рдмреНрджрдХреЛрд╢реЛрдВ рддрдХ рдкрд╣реБрдБрдЪреЗрдВ:
рд╕реНрдерд╛рдиреАрдпрдХреГрдд рд╣реЛрдо рдкреЗрдЬ
src/routes/{-$locale}/index.tsxрдХреЛрдб рдХреЙрдкреА рдХрд░реЗрдВрдХреЛрдб рдХреЛ рдХреНрд▓рд┐рдкрдмреЛрд░реНрдб рдкрд░ рдХреЙрдкреА рдХрд░реЗрдВ
htmlрдХреЛрдб рдХреЙрдкреА рдХрд░реЗрдВрдХреЛрдб рдХреЛ рдХреНрд▓рд┐рдкрдмреЛрд░реНрдб рдкрд░ рдХреЙрдкреА рдХрд░реЗрдВ
In Solid,
useIntlayerreturns reactive content (e.g.,content). You can access its properties directly.useIntlayerрд╣реБрдХ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рдЬрд╛рдирдиреЗ рдХреЗ рд▓рд┐рдП, рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реАрдХрд░рдг рджреЗрдЦреЗрдВредрд▓реЛрдХреЗрд▓ рд╕реНрд╡рд┐рдЪрд░ рдШрдЯрдХ рдмрдирд╛рдПрдВ
рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рднрд╛рд╖рд╛ рдмрджрд▓рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдШрдЯрдХ рдмрдирд╛рдПрдВ:
src/components/LocaleSwitcher.tsxрдХреЛрдб рдХреЙрдкреА рдХрд░реЗрдВрдХреЛрдб рдХреЛ рдХреНрд▓рд┐рдкрдмреЛрд░реНрдб рдкрд░ рдХреЙрдкреА рдХрд░реЗрдВ
Solid рдореЗрдВ,
useLocaleрд╕реЗlocaleрдПрдХ рд╕рд┐рдЧреНрдирд▓ рдПрдХреНрд╕реЗрд╕реЙрд░ рд╣реИред рдЗрд╕рдХреЗ рд╡рд░реНрддрдорд╛рди рдорд╛рди рдХреЛ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛рд╢реАрд▓ рд░реВрдк рд╕реЗ рдкрдврд╝рдиреЗ рдХреЗ рд▓рд┐рдПlocale()(рдХреЛрд╖реНрдардХ рдХреЗ рд╕рд╛рде) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВредuseLocaleрд╣реБрдХ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рдЬрд╛рдирдиреЗ рдХреЗ рд▓рд┐рдП, рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реАрдХрд░рдг рджреЗрдЦреЗрдВредHTML рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХрд╛ рдкреНрд░рдмрдВрдзрди
рдЬреИрд╕рд╛ рдХрд┐ рд╕реНрдЯреЗрдк 5 рдореЗрдВ рджреЗрдЦрд╛ рдЧрдпрд╛ рд╣реИ, рдЖрдк рдЕрдкрдиреЗ рд░реВрдЯ рдШрдЯрдХ рдореЗрдВ
useParamsрдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗhtmlрдЯреИрдЧ рдХреАlangрдФрд░dirрд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЛ рдкреНрд░рдмрдВрдзрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рд╕рд░реНрд╡рд░ рдФрд░ рдХреНрд▓рд╛рдЗрдВрдЯ рджреЛрдиреЛрдВ рдкрд░ рд╕рд╣реА рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдБ рд╕реЗрдЯ рд╣реИрдВредsrc/routes/__root.tsxрдХреЛрдб рдХреЙрдкреА рдХрд░реЗрдВрдХреЛрдб рдХреЛ рдХреНрд▓рд┐рдкрдмреЛрд░реНрдб рдкрд░ рдХреЙрдкреА рдХрд░реЗрдВ
рдорд┐рдбрд▓рд╡реЗрдпрд░ рдЬреЛрдбрд╝реЗрдВ
рдЖрдк рдЕрдкрдиреЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореЗрдВ рд╕рд░реНрд╡рд░-рд╕рд╛рдЗрдб рд░реВрдЯрд┐рдВрдЧ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП
intlayerProxyрдХрд╛ рднреА рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдпрд╣ рдкреНрд▓рдЧрдЗрди URL рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рд╡рд░реНрддрдорд╛рди рд▓реЛрдХреЗрд▓ рдХрд╛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдкрддрд╛ рд▓рдЧрд╛рдПрдЧрд╛ рдФрд░ рдЙрдЪрд┐рдд рд▓реЛрдХреЗрд▓ рдХреБрдХреА рд╕реЗрдЯ рдХрд░реЗрдЧрд╛ред рдпрджрд┐ рдХреЛрдИ рд▓реЛрдХреЗрд▓ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдирд╣реАрдВ рд╣реИ, рддреЛ рдкреНрд▓рдЧрдЗрди рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рднрд╛рд╖рд╛ рдкреНрд░рд╛рдердорд┐рдХрддрд╛рдУрдВ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рд╕рдмрд╕реЗ рдЙрдкрдпреБрдХреНрдд рд▓реЛрдХреЗрд▓ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░реЗрдЧрд╛ред рдпрджрд┐ рдХреЛрдИ рд▓реЛрдХреЗрд▓ рдирд╣реАрдВ рдкрд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдпрд╣ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд▓реЛрдХреЗрд▓ рдкрд░ рд░реАрдбрд╛рдпрд░реЗрдХреНрдЯ рдХрд░реЗрдЧрд╛редрдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдЙрддреНрдкрд╛рджрди рдореЗрдВ
intlayerProxyрдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛvite-intlayerрдкреИрдХреЗрдЬ рдХреЛdevDependenciesрд╕реЗdependenciesрдореЗрдВ рдмрджрд▓рдирд╛ рд╣реЛрдЧрд╛редIntlayer v9 рдХреЗ рдмрд╛рдж рд╕реЗ,
intlayerProxy()рдХреЛ рд╕реАрдзреЗintlayer()рдкреНрд▓рдЧрдЗрди рдореЗрдВ рдмрдВрдбрд▓ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдФрд░routing.enableProxyрд╡рд┐рдХрд▓реНрдк (trueрдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ) рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рд╕рдХреНрд╖рдо рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдЗрд╕реЗ рдЕрд▓рдЧ рд╕реЗ рдкрдВрдЬреАрдХреГрдд рдХрд░рдирд╛ рдЬреИрд╕рд╛ рдХрд┐ рдиреАрдЪреЗ рджрд┐рдЦрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ рдЕрдм рд╡реИрдХрд▓реНрдкрд┐рдХ рд╣реИ, рдФрд░ рдЗрд╕реЗ рдкрд┐рдЫрдбрд╝реЗ рд╕рдВрдЧрддрддрд╛ рдХреЗ рд▓рд┐рдП рдФрд░ рдЙрди рд╕реЗрдЯрдЕрдк рдХреЗ рд▓рд┐рдП рд░рдЦрд╛ рдЧрдпрд╛ рд╣реИ рдЬрд┐рдиреНрд╣реЗрдВ рдкреНрд▓рдЧрдЗрди рдСрд░реНрдбрд░ рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИредrouting.enableProxy: falseрд╕реЗрдЯ рдХрд░реЗрдВ рдСрдкреНрдЯ рдЖрдЙрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред v9 рд░рд┐рд▓реАрдЬрд╝ рдиреЛрдЯреНрд╕ рджреЗрдЦреЗрдВредvite.config.tsрдХреЛрдб рдХреЙрдкреА рдХрд░реЗрдВрдХреЛрдб рдХреЛ рдХреНрд▓рд┐рдкрдмреЛрд░реНрдб рдкрд░ рдХреЙрдкреА рдХрд░реЗрдВ
рдЕрдкрдиреЗ рдореЗрдЯрд╛рдбреЗрдЯрд╛ рдХреЛ рдЕрдВрддрд░реНрд░рд╛рд╖реНрдЯреНрд░реАрдпрдХреГрдд рдХрд░реЗрдВ
getIntlayerрдорд░реНрдЬ рдХреА рдЧрдИ рдбрд┐рдХреНрд╢рдирд░реА (рдЬрд┐рд╕рдореЗрдВ рд╕рднреА рдШреЛрд╖рд┐рдд рд▓реЛрдХреЗрд▓ рд╣реЛрддреЗ рд╣реИрдВ) рдХреЗ рд╡рд┐рд░реБрджреНрдз рд╕рд┐рдВрдХреНрд░реЛрдирд╕ рд░реВрдк рд╕реЗ рд╣рд▓ рд╣реЛрддрд╛ рд╣реИредheadрд╕рд┐рдВрдХреНрд░реЛрдирд╕ рд░рд╣рддрд╛ рд╣реИ рдФрд░ рдХреБрдЫ рднреА await рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛, рд▓реЗрдХрд┐рди рдкреВрд░реА рдмрд╣реБрднрд╛рд╖реА рдбрд┐рдХреНрд╢рдирд░реА рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХреЛ рднреЗрдЬреЗ рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рд░реВрдЯ рдЪрдВрдХ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реЛ рдЬрд╛рддреА рд╣реИредsrc/routes/{-$locale}/index.tsxрдХреЛрдб рдХреЙрдкреА рдХрд░реЗрдВрдХреЛрдб рдХреЛ рдХреНрд▓рд┐рдкрдмреЛрд░реНрдб рдкрд░ рдХреЙрдкреА рдХрд░реЗрдВ
рдЫреЛрдЯреА рдореЗрдЯрд╛рдбреЗрдЯрд╛ рдбрд┐рдХреНрд╢рдирд░реА, рдХреБрдЫ рд╣реА рд▓реЛрдХреЗрд▓, рдпрд╛ рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдкрд┐рдВрдЧ рдХреЗ рджреМрд░рд╛рди рд╕рдмрд╕реЗ рдЙрдкрдпреБрдХреНрддред
getIntlayerAsync(v9.4 рд╕реЗ рдЙрдкрд▓рдмреНрдз)getIntlayerрдХреА рддрд░рд╣ рд╣реА рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдмрд┐рд▓реНрдб рдкреНрд▓рдЧрдЗрди рдЗрд╕реЗ рдорд░реНрдЬ рдХреА рдЧрдИ рдбрд┐рдХреНрд╢рдирд░реА рдХреЗ рдмрдЬрд╛рдп.intlayer/dynamic_dictionaries/рдореЗрдВ рдореМрдЬреВрдж рдкреНрд░рддрд┐-рд▓реЛрдХреЗрд▓ рдЪрдВрдХ рдХреА рдУрд░ рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП рдкреЗрдЬ рдХреЗрд╡рд▓ рдЙрд╕реА рд▓реЛрдХреЗрд▓ рдХреЛ рднреЗрдЬрддрд╛ рд╣реИ рдЬрд┐рд╕реЗ рд╡рд╣ рд░реЗрдВрдбрд░ рдХрд░рддрд╛ рд╣реИред рдЪреВрдБрдХрд┐ рд╡рд╣ рдЪрдВрдХ рдорд╛рдБрдЧ рдкрд░ рд▓реЛрдб рд╣реЛрддрд╛ рд╣реИ,headasyncрдмрди рдЬрд╛рддрд╛ рд╣реИ:src/routes/{-$locale}/index.tsxрдХреЛрдб рдХреЙрдкреА рдХрд░реЗрдВрдХреЛрдб рдХреЛ рдХреНрд▓рд┐рдкрдмреЛрд░реНрдб рдкрд░ рдХреЙрдкреА рдХрд░реЗрдВ
рдпрджрд┐ рдХреЛрдИ
headрдХрдИ рдбрд┐рдХреНрд╢рдирд░реА рдкрдврд╝рддрд╛ рд╣реИ, рддреЛ рдЙрдиреНрд╣реЗрдВPromise.allрд╕реЗ рд╣рд▓ рдХрд░реЗрдВ, рдХреНрдпреЛрдВрдХрд┐ рд╣рд░getIntlayerAsyncрдХреЛ рдЕрд▓рдЧ рдкрдВрдХреНрддрд┐ рдореЗрдВ await рдХрд░рдиреЗ рд╕реЗ рдЕрдиреБрд░реЛрдз рд╕рдорд╛рдирд╛рдВрддрд░ рдЪрд▓рдиреЗ рдХреЗ рдмрдЬрд╛рдп рдПрдХ-рджреВрд╕рд░реЗ рд╕реЗ рдЬреБрдбрд╝рдХрд░ рдХреНрд░рдордмрджреНрдз рд╣реЛ рдЬрд╛рддреЗ рд╣реИрдВредрд╕рдордЭреМрддрд╛ рдпрд╣ рд╣реИ: рдбрд╛рдпрдирд╛рдорд┐рдХ import рддрдм рд╣рд▓ рд╣реЛрддрд╛ рд╣реИ рдЬрдм
headрдЪрд▓ рд░рд╣рд╛ рд╣реЛрддрд╛ рд╣реИ, рдпрд╛рдиреА рдбреЙрдХреНрдпреВрдореЗрдВрдЯ рд░реЗрдВрдбрд░ рдХреЗ рдХреНрд░рд┐рдЯрд┐рдХрд▓ рдкрд╛рде рдкрд░ред рдХреЛрд▓реНрдб рд░реВрдЯ рдкрд░ рдЗрд╕рд╕реЗheadрдХреБрдЫ рдорд┐рд▓реАрд╕реЗрдХрдВрдб рджреЗрд░ рд╕реЗ рддреИрдпрд╛рд░ рд╣реЛрддрд╛ рд╣реИ рдФрд░ LCP рдереЛрдбрд╝рд╛ рдмрд┐рдЧрдбрд╝ рд╕рдХрддрд╛ рд╣реИредрдбрд┐рдХреНрд╢рдирд░реА рдХреЛ рд░реВрдЯ рдХреЗ
loaderрдореЗрдВ рд╣рд▓ рдХрд░реЗрдВ рдФрд░headрдореЗрдВloaderDataрд╕реЗ рд╡рд╛рдкрд╕ рдкрдврд╝реЗрдВред рдореИрдЪ рд╣реБрдП рд░реВрдЯ рдХреЗ рд▓реЛрдбрд░ рд╕рдорд╛рдирд╛рдВрддрд░ рдЪрд▓рддреЗ рд╣реИрдВ, рдФрд░staleTime: InfinityTanStack Router рдХреЛ рдмрддрд╛рддрд╛ рд╣реИ рдХрд┐ рдкрд░рд┐рдгрд╛рдо рдХрднреА рдмрд╛рд╕реА рдирд╣реАрдВ рд╣реЛрддрд╛, рдЗрд╕рд▓рд┐рдП рдкреНрд░рддрд┐-рд▓реЛрдХреЗрд▓ рдЪрдВрдХ рдПрдХ рд╣реА рдмрд╛рд░ рд╣рд▓ рд╣реЛрддрд╛ рд╣реИ рдФрд░ рдЙрд╕рдХреЗ рдмрд╛рдж рд░рд╛рдЙрдЯрд░ рдХреИрд╢ рд╕реЗ рдорд┐рд▓рддрд╛ рд╣реИ, рдЬрд┐рд╕рд╕реЗheadрд╕рд┐рдВрдХреНрд░реЛрдирд╕ рдмрдирд╛ рд░рд╣рддрд╛ рд╣реИредsrc/routes/{-$locale}/index.tsxрдХреЛрдб рдХреЙрдкреА рдХрд░реЗрдВрдХреЛрдб рдХреЛ рдХреНрд▓рд┐рдкрдмреЛрд░реНрдб рдкрд░ рдХреЙрдкреА рдХрд░реЗрдВ
рд▓реЛрдбрд░ рдкреВрд░рд╛ рд╣реЛрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рднреА
headрдХреЙрд▓ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдПloaderDataрдХрд╛ рдЯрд╛рдЗрдк рд╕рдВрднрд╛рд╡рд┐рдд рд░реВрдк рд╕реЗundefinedрд╣реИред рдСрдкреНрд╢рдирд▓ рдЪреЗрдирд┐рдВрдЧ рдмрдирд╛рдП рд░рдЦреЗрдВ, рдпрд╛ рдХреЛрдИ рдлрд╝реЙрд▓рдмреИрдХ рдЯрд╛рдЗрдЯрд▓ рд▓реМрдЯрд╛рдПрдБредрдЖрдк рдкреНрд░рддрд┐-рд▓реЛрдХреЗрд▓ рдЪрдВрдХ рдХрд╛ рд▓рд╛рдн рдмрдирд╛рдП рд░рдЦрддреЗ рд╣реИрдВ, рдмрд┐рдирд╛ рдЙрд╕рдХреА рд▓рд╛рдЧрдд
headрдХреЗ рдХреНрд░рд┐рдЯрд┐рдХрд▓ рдкрд╛рде рдкрд░ рдЪреБрдХрд╛рдПред рдХреАрдордд рдбреЗрд╡рд▓рдкрд░ рдЕрдиреБрднрд╡ рдХреА рд╣реИ: рдХрдВрдЯреЗрдВрдЯ рдХреЛ рд▓реЛрдбрд░ рд╕реЗheadрддрдХloaderDataрдХреЗ рдЬрд╝рд░рд┐рдП рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдкрд╣реБрдБрдЪрд╛рдирд╛ рдкрдбрд╝рддрд╛ рд╣реИредрдХреМрди-рд╕рд╛ рд░рд┐рдЬрд╝реЙрд▓реНрдпреВрд╢рди рдЪреБрдиреЗрдВ?
рд╕рднреА рддрд╛рд▓рд┐рдХрд╛ рд╕рд╛рдордЧреНрд░реА рджрд┐рдЦрд╛рдПрдВрд╕рднреА рдбреЗрдЯрд╛ рд╕рд╛рдордЧреНрд░реА рдХреЛ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рддрд╛рд▓рд┐рдХрд╛ рдХреЛ рдореЛрдбрд▓ рдореЗрдВ рдЦреЛрд▓реЗрдВ
рд╕реНрдЯреИрдЯрд┐рдХ рд░рд┐рдЬрд╝реЙрд▓реНрдпреВрд╢рди рдбрд╛рдпрдирд╛рдорд┐рдХ рд░рд┐рдЬрд╝реЙрд▓реНрдпреВрд╢рди рдХреИрд╢реНрдб рдбрд╛рдпрдирд╛рдорд┐рдХ рд░рд┐рдЬрд╝реЙрд▓реНрдпреВрд╢рди API getIntlayergetIntlayerAsync(v9.4+)loaderрдореЗрдВgetIntlayerAsync(v9.4+)headрд╕рд┐рдЧреНрдиреЗрдЪрд░рд╕рд┐рдВрдХреНрд░реЛрдирд╕ asyncрд╕рд┐рдВрдХреНрд░реЛрдирд╕, loaderDataрдкрдврд╝рддрд╛ рд╣реИрднреЗрдЬреЗ рдЧрдП рд▓реЛрдХреЗрд▓ рд╕рднреА рдШреЛрд╖рд┐рдд рд▓реЛрдХреЗрд▓ рдХреЗрд╡рд▓ рдЕрдиреБрд░реЛрдзрд┐рдд рд▓реЛрдХреЗрд▓ рдХреЗрд╡рд▓ рдЕрдиреБрд░реЛрдзрд┐рдд рд▓реЛрдХреЗрд▓ рдХреНрд▓рд╛рдЗрдВрдЯ рдиреЗрд╡рд┐рдЧреЗрд╢рди рд╣рд▓ рдХрд░рдиреЗ рдХреЛ рдХреБрдЫ рдирд╣реАрдВ рд╣рд░ рдореИрдЪ рдкрд░ рджреЛрдмрд╛рд░рд╛ рдЪрд▓рддрд╛ рд╣реИ рд░рд╛рдЙрдЯрд░ рдХреИрд╢ рд╕реЗ рдорд┐рд▓рддрд╛ рд╣реИ рдбреЗрд╡рд▓рдкрд░ рдЕрдиреБрднрд╡ рд╕рдмрд╕реЗ рд╕рд░рд▓ рдПрдХ awaitрдХрдВрдЯреЗрдВрдЯ loaderDataрд╕реЗ рдкрд╛рд╕ рд╣реЛрддрд╛ рд╣реИрдЕрдкрдиреЗ рд╕рд░реНрд╡рд░ рдХрд╛рд░реНрдпреЛрдВ рдореЗрдВ рд▓реЛрдХреЗрд▓ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ
рдЖрдк рдЕрдкрдиреЗ рд╕рд░реНрд╡рд░ рдХрд╛рд░реНрдпреЛрдВ рдпрд╛ API рдПрдВрдбрдкреЙрдЗрдВрдЯ рдХреЗ рднреАрддрд░ рд╕реЗ рд╡рд░реНрддрдорд╛рди рд▓реЛрдХреЗрд▓ рддрдХ рдкрд╣реБрдБрдЪрдирд╛ рдЪрд╛рд╣ рд╕рдХрддреЗ рд╣реИрдВред рдЖрдк
intlayerрд╕реЗgetLocaleрд╣реЗрд▓реНрдкрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдРрд╕рд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВредTanStack Start рдХреЗ рд╕рд░реНрд╡рд░ рдлрд╝рдВрдХреНрд╢рдВрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдпрд╣рд╛рдБ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ:
src/routes/{-$locale}/index.tsxрдХреЛрдб рдХреЙрдкреА рдХрд░реЗрдВрдХреЛрдб рдХреЛ рдХреНрд▓рд┐рдкрдмреЛрд░реНрдб рдкрд░ рдХреЙрдкреА рдХрд░реЗрдВ
рдирд╣реАрдВ рдорд┐рд▓реЗ рдкреЗрдЬреЛрдВ рдХрд╛ рдкреНрд░рдмрдВрдзрди рдХрд░реЗрдВ
рдЬрдм рдХреЛрдИ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЧреИрд░-рдореМрдЬреВрдж рдкреЗрдЬ рдкрд░ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдЖрдк рдПрдХ рдХрд╕реНрдЯрдо рдирд╣реАрдВ рдорд┐рд▓рд╛ рдкреЗрдЬ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рд▓реЛрдХреЗрд▓ рдЙрдкрд╕рд░реНрдЧ рдирд╣реАрдВ рдорд┐рд▓реЗ рдкреЗрдЬ рдХреЗ рдЪрд╛рд▓реВ рд╣реЛрдиреЗ рдХреЗ рддрд░реАрдХреЗ рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░ рд╕рдХрддрд╛ рд╣реИред
рд▓реЛрдХреЗрд▓ рдЙрдкрд╕рд░реНрдЧреЛрдВ рдХреЗ рд╕рд╛рде TanStack Router рдХреЗ 404 рдкреНрд░рдмрдВрдзрди рдХреЛ рд╕рдордЭрдирд╛
TanStack Router рдореЗрдВ, рд╕реНрдерд╛рдиреАрдпрдХреГрдд рд░реВрдЯ рдХреЗ рд╕рд╛рде 404 рдкреЗрдЬреЛрдВ рдХреЛ рд╕рдВрднрд╛рд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдмрд╣реБ-рд╕реНрддрд░реАрдп рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ:
- рд╕рдорд░реНрдкрд┐рдд 404 рд░реВрдЯ: 404 UI рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд░реВрдЯ
- рд░реВрдЯ-рд╕реНрддрд░реАрдп рд╕рддреНрдпрд╛рдкрди: рд▓реЛрдХреЗрд▓ рдЙрдкрд╕рд░реНрдЧреЛрдВ рдХреЛ рдорд╛рдиреНрдп рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЕрдорд╛рдиреНрдп рдЙрдкрд╕рд░реНрдЧреЛрдВ рдХреЛ 404 рдкрд░ рд░реАрдбрд╛рдпрд░реЗрдХреНрдЯ рдХрд░рддрд╛ рд╣реИ
- рдХреИрдЪ-рдСрд▓ рд░реВрдЯ: рд▓реЛрдХреЗрд▓ рдЦрдВрдб рдХреЗ рднреАрддрд░ рдХрд┐рд╕реА рднреА рдЧреИрд░-рдорд┐рд▓рд╛рди рд╡рд╛рд▓реЗ рдкрде рдХреЛ рдХреИрдкреНрдЪрд░ рдХрд░рддрд╛ рд╣реИ
src/routes/{-$locale}/404.tsxрдХреЛрдб рдХреЙрдкреА рдХрд░реЗрдВрдХреЛрдб рдХреЛ рдХреНрд▓рд┐рдкрдмреЛрд░реНрдб рдкрд░ рдХреЙрдкреА рдХрд░реЗрдВ
src/routes/{-$locale}/route.tsxрдХреЛрдб рдХреЙрдкреА рдХрд░реЗрдВрдХреЛрдб рдХреЛ рдХреНрд▓рд┐рдкрдмреЛрд░реНрдб рдкрд░ рдХреЙрдкреА рдХрд░реЗрдВ
src/routes/{-$locale}/$.tsxрдХреЛрдб рдХреЙрдкреА рдХрд░реЗрдВрдХреЛрдб рдХреЛ рдХреНрд▓рд┐рдкрдмреЛрд░реНрдб рдкрд░ рдХреЙрдкреА рдХрд░реЗрдВ
рдЕрдкрдиреЗ рдШрдЯрдХреЛрдВ рд╕реЗ рд╕рд╛рдордЧреНрд░реА рдирд┐рдХрд╛рд▓реЗрдВ
рд╡реИрдХрд▓реНрдкрд┐рдХрдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдореМрдЬреВрджрд╛ рдХреЛрдбрдмреЗрд╕ рд╣реИ, рддреЛ рд╣рдЬрд╛рд░реЛрдВ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдмрджрд▓рдирд╛ рд╕рдордп рд▓реЗрдиреЗ рд╡рд╛рд▓рд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред
рдЗрд╕ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рдЖрд╕рд╛рди рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП, Intlayer рдЖрдкрдХреЗ рдШрдЯрдХреЛрдВ рдХреЛ рдмрджрд▓рдиреЗ рдФрд░ рд╕рд╛рдордЧреНрд░реА рдирд┐рдХрд╛рд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдХрдВрдкрд╛рдЗрд▓рд░ / рдПрдХреНрд╕рдЯреНрд░реИрдХреНрдЯрд░ рдХрд╛ рдкреНрд░рд╕реНрддрд╛рд╡ рджреЗрддрд╛ рд╣реИред
рдЗрд╕реЗ рд╕реЗрдЯрдЕрдк рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдк рдЕрдкрдиреЗ
intlayer.config.tsрдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдПрдХcompilerрдЕрдиреБрднрд╛рдЧ рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ:intlayer.config.tsрдХреЛрдб рдХреЙрдкреА рдХрд░реЗрдВрдХреЛрдб рдХреЛ рдХреНрд▓рд┐рдкрдмреЛрд░реНрдб рдкрд░ рдХреЙрдкреА рдХрд░реЗрдВ
import { type IntlayerConfig } from "intlayer"; const config: IntlayerConfig = { // ... рдЖрдкрдХреА рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХрд╛ рд╢реЗрд╖ рднрд╛рдЧ compiler: { /** * рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рдХрдВрдкрд╛рдЗрд▓рд░ рд╕рдХреНрд╖рдо рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред */ enabled: true, /** * рдЖрдЙрдЯрдкреБрдЯ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХрд╛ рдкрде рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддрд╛ рд╣реИ */ output: ({ fileName, extension }) => `./${fileName}${extension}`, /** * рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рдШрдЯрдХреЛрдВ рдХреЛ рдмрджрд▓рдиреЗ рдХреЗ рдмрд╛рдж рд╕рд╣реЗрдЬрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред * * - рдпрджрд┐ `true` рд╣реИ, рддреЛ рдХрдВрдкрд╛рдЗрд▓рд░ рдбрд┐рд╕реНрдХ рдкрд░ рдШрдЯрдХ рдлрд╝рд╛рдЗрд▓ рдХреЛ рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦреЗрдЧрд╛ред рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдкрд░рд┐рд╡рд░реНрддрди рд╕реНрдерд╛рдпреА рд╣реЛрдЧрд╛, рдФрд░ рдХрдВрдкрд╛рдЗрд▓рд░ рдЕрдЧрд▓реА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗ рд▓рд┐рдП рдкрд░рд┐рд╡рд░реНрддрди рдХреЛ рдЫреЛрдбрд╝ рджреЗрдЧрд╛ред рдЗрд╕ рддрд░рд╣, рдХрдВрдкрд╛рдЗрд▓рд░ рдРрдк рдХреЛ рдмрджрд▓ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдлрд┐рд░ рдЗрд╕реЗ рд╣рдЯрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред * * - рдпрджрд┐ `false` рд╣реИ, рддреЛ рдХрдВрдкрд╛рдЗрд▓рд░ рдХреЛрдб рдореЗрдВ `useIntlayer()` рдлрд╝рдВрдХреНрд╢рди рдХреЙрд▓ рдХреЛ рдХреЗрд╡рд▓ рдмрд┐рд▓реНрдб рдЖрдЙрдЯрдкреБрдЯ рдореЗрдВ рдЗрдВрдЬреЗрдХреНрдЯ рдХрд░реЗрдЧрд╛, рдЬрд┐рд╕рд╕реЗ рдореВрд▓ рдХреЛрдбрдмреЗрд╕ рдмрд░рдХрд░рд╛рд░ рд░рд╣реЗрдЧрд╛ред рдкрд░рд┐рд╡рд░реНрддрди рдХреЗрд╡рд▓ рдореЗрдореЛрд░реА рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред */ saveComponents: false, /** * рдбрд┐рдХреНрд╢рдирд░реА рдХреА рдкреНрд░рд┐рдлрд┐рдХреНрд╕ */ dictionaryKeyPrefix: "", }, }; export default config;рдЕрдкрдиреЗ рдШрдЯрдХреЛрдВ рдХреЛ рдмрджрд▓рдиреЗ рдФрд░ рд╕рд╛рдордЧреНрд░реА рдирд┐рдХрд╛рд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХреНрд╕рдЯреНрд░реИрдХреНрдЯрд░ рдЪрд▓рд╛рдПрдВ
bashрдХреЛрдб рдХреЙрдкреА рдХрд░реЗрдВрдХреЛрдб рдХреЛ рдХреНрд▓рд┐рдкрдмреЛрд░реНрдб рдкрд░ рдХреЙрдкреА рдХрд░реЗрдВ
Since v9, the
intlayerCompileris included in theintlayerplugin. So you don't need to add it manually.intlayerCompilerрдкреНрд▓рдЧрдЗрди рд╢рд╛рдорд┐рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдкрдиреАvite.config.tsрдЕрдкрдбреЗрдЯ рдХрд░реЗрдВ:vite.config.tsрдХреЛрдб рдХреЙрдкреА рдХрд░реЗрдВрдХреЛрдб рдХреЛ рдХреНрд▓рд┐рдкрдмреЛрд░реНрдб рдкрд░ рдХреЙрдкреА рдХрд░реЗрдВ
bashрдХреЛрдб рдХреЙрдкреА рдХрд░реЗрдВрдХреЛрдб рдХреЛ рдХреНрд▓рд┐рдкрдмреЛрд░реНрдб рдкрд░ рдХреЙрдкреА рдХрд░реЗрдВ
Pre-render & Generate Sitemap
Intlayer рдПрдХ built-in sitemap generator рдХреЗ рд╕рд╛рде рдЖрддрд╛ рд╣реИ рдЬреЛ рдЖрдкрдХреЗ application рдХреЗ рд▓рд┐рдП рдЖрд╕рд╛рдиреА рд╕реЗ sitemap рдмрдирд╛рдиреЗ рдореЗрдВ рдорджрдж рдХрд░рддрд╛ рд╣реИред рдпрд╣ localized routes рдХреЛ handle рдХрд░рддрд╛ рд╣реИ рдФрд░ search engines рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ metadata рдЬреЛрдбрд╝рддрд╛ рд╣реИред
Intlayer рджреНрд╡рд╛рд░рд╛ generated sitemap
xhtml:linknamespace (Hreflang XML Extensions) рдХреЛ support рдХрд░рддрд╛ рд╣реИред Default sitemap generators рдХреЗ рд╡рд┐рдкрд░реАрдд рдЬреЛ рдХреЗрд╡рд▓ raw URLs list рдХрд░рддреЗ рд╣реИрдВ, Intlayer рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдПрдХ page рдХреЗ рд╕рднреА language versions рдХреЗ рдмреАрдЪ рдЖрд╡рд╢реНрдпрдХ bidirectional links рдмрдирд╛рддрд╛ рд╣реИ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП,/about,/about?lang=fr, рдФрд░/about?lang=es)ред рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ search engines рд╕рд╣реА language version рдХреЛ рд╕рд╣реА audience рдХреЛ рд╕рд╣реА рддрд░реАрдХреЗ рд╕реЗ index рдФрд░ serve рдХрд░рддреЗ рд╣реИрдВредрдЗрд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдкрд╣рд▓реЗ рдЕрдкрдиреЗ
vite.config.tsрдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ рддрд╛рдХрд┐ рдЖрдкрдХреЗ рд╕реНрдерд╛рдиреАрдпрдХреГрдд рдорд╛рд░реНрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдкреВрд░реНрд╡-рдкреНрд░рд╕реНрддреБрддрдХрд░рдг рд╕рдХреНрд╖рдо рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХреЗ рдФрд░ TanStack Start sitemap рдЬрдирд░реЗрд╢рди рдХреЛ рдЕрдХреНрд╖рдо рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХреЗредvite.config.tsрдХреЛрдб рдХреЙрдкреА рдХрд░реЗрдВрдХреЛрдб рдХреЛ рдХреНрд▓рд┐рдкрдмреЛрд░реНрдб рдкрд░ рдХреЙрдкреА рдХрд░реЗрдВ
рдлрд┐рд░, рдПрдХ
src/routes/sitemap[.]xml.tsroute рдмрдирд╛рдПрдВ рдЬреЛgenerateSitemapfunction рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ:src/routes/sitemap[.]xml.tsрдХреЛрдб рдХреЙрдкреА рдХрд░реЗрдВрдХреЛрдб рдХреЛ рдХреНрд▓рд┐рдкрдмреЛрд░реНрдб рдкрд░ рдХреЙрдкреА рдХрд░реЗрдВ
TypeScript рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░реЗрдВ
Intlayer TypeScript рдХреЗ рд▓рд╛рднреЛрдВ рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдФрд░ рдЖрдкрдХреЗ рдХреЛрдбрдмреЗрд╕ рдХреЛ рдордЬрдмреВрдд рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдореЙрдбреНрдпреВрд▓ рдСрдЧреНрдореЗрдВрдЯреЗрд╢рди (module augmentation) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред
рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ рдХрд┐ рдЖрдкрдХреА TypeScript рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдореЗрдВ рдСрдЯреЛ-рдЬреЗрдирд░реЗрдЯреЗрдб рдкреНрд░рдХрд╛рд░ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ:
tsconfig.jsonрдХреЛрдб рдХреЙрдкреА рдХрд░реЗрдВрдХреЛрдб рдХреЛ рдХреНрд▓рд┐рдкрдмреЛрд░реНрдб рдкрд░ рдХреЙрдкреА рдХрд░реЗрдВ
Git рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди
Intlayer рджреНрд╡рд╛рд░рд╛ рдЙрддреНрдкрдиреНрди рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдЕрдирджреЗрдЦрд╛ рдХрд░рдиреЗ рдХреА рдЕрдиреБрд╢рдВрд╕рд╛ рдХреА рдЬрд╛рддреА рд╣реИред рдпрд╣ рдЖрдкрдХреЛ рдЙрдиреНрд╣реЗрдВ рдЕрдкрдиреЗ Git рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдореЗрдВ рдкреНрд░рддрд┐рдмрджреНрдз рдХрд░рдиреЗ рд╕реЗ рдмрдЪрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред
рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдк рдЕрдкрдиреА .gitignore рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдирд┐рд░реНрджреЗрд╢ рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ:
рдХреЛрдб рдХреЛ рдХреНрд▓рд┐рдкрдмреЛрд░реНрдб рдкрд░ рдХреЙрдкреА рдХрд░реЗрдВ
VS Code рдПрдХреНрд╕рдЯреЗрдВрд╢рди
Intlayer рдХреЗ рд╕рд╛рде рдЕрдкрдиреЗ рд╡рд┐рдХрд╛рд╕ рдЕрдиреБрднрд╡ рдХреЛ рдмреЗрд╣рддрд░ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдк рдЖрдзрд┐рдХрд╛рд░рд┐рдХ Intlayer VS Code рдПрдХреНрд╕рдЯреЗрдВрд╢рди рд╕реНрдерд╛рдкрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
VS Code Marketplace рд╕реЗ рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд░реЗрдВ
рдпрд╣ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ:
- рдЕрдиреБрд╡рд╛рдж рдХреБрдВрдЬрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдСрдЯреЛ-рдХрдореНрдкреНрд▓реАрд╢рдиред
- рдЧреБрдо рдЕрдиреБрд╡рд╛рджреЛрдВ рдХреЗ рд▓рд┐рдП рд░реАрдпрд▓-рдЯрд╛рдЗрдо рддреНрд░реБрдЯрд┐ рдкрд╣рдЪрд╛рдиред
- рдЕрдиреВрджрд┐рдд рд╕рд╛рдордЧреНрд░реА рдХрд╛ рдЗрдирд▓рд╛рдЗрди рдкреВрд░реНрд╡рд╛рд╡рд▓реЛрдХрдиред
- рдЖрд╕рд╛рдиреА рд╕реЗ рдЕрдиреБрд╡рд╛рдж рдмрдирд╛рдиреЗ рдФрд░ рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рддреНрд╡рд░рд┐рдд рдХрд╛рд░реНрдпред
рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рддрд░реАрдХреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рд╡рд┐рд╡рд░рдг рдХреЗ рд▓рд┐рдП, Intlayer VS Code рдПрдХреНрд╕рдЯреЗрдВрд╢рди рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реАрдХрд░рдг рджреЗрдЦреЗрдВред
рдЖрдЧреЗ рдмрдврд╝рдирд╛
рдЖрдЧреЗ рдмрдврд╝рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдк рд╡рд┐рдЬреБрдЕрд▓ рдПрдбрд┐рдЯрд░ рд▓рд╛рдЧреВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдпрд╛ CMS рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЕрдкрдиреА рд╕рд╛рдордЧреНрд░реА рдХреЛ рдмрд╛рд╣рд░реА рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВред
рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реАрдХрд░рдг рд╕рдВрджрд░реНрдн
- Intlayer рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реАрдХрд░рдг
- Tanstack Start рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реАрдХрд░рдг
- useIntlayer рд╣реБрдХ
- useLocale рд╣реБрдХ
- рд╕рд╛рдордЧреНрд░реА рдШреЛрд╖рдгрд╛
- рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди
рдЕрдХреНрд╕рд░ рдкреВрдЫреЗ рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдкреНрд░рд╢реНрди
TanStack Start рдХреА рдЕрдкрдиреА рдХреЛрдИ i18n рдкрд░рдд рдирд╣реАрдВ рд╣реИ:
@solid-primitives/i18n: рд╕реАрдорд┐рдд SSR рд╕рдорд░реНрдерди рд╡рд╛рд▓рд╛ рд╕рд░рд▓ рд╢рдмреНрджрдХреЛрд╢редIntlayer: SSR рдФрд░ SSG рд╕рдорд░реНрдерди, Solid рд╕рд┐рдЧреНрдирд▓, рдмрд┐рд▓реНрдб рд╕рдордп рдЕрдиреБрдХреВрд▓рди, AI рдЕрдиреБрд╡рд╛рдж рдФрд░ рд╡рд┐рдЬрд╝реБрдЕрд▓ рдПрдбрд┐рдЯрд░ред
Intlayer рдХреНрдпреЛрдВ рдЪреБрдиреЗрдВ рджреЗрдЦреЗрдВред
рдиреЗрдорд╕реНрдкреЗрд╕-рдЖрдзрд╛рд░рд┐рдд рд╕рдорд╛рдзрд╛рдиреЛрдВ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдмрд╣реБрдд рдХрдо, рдХреНрдпреЛрдВрдХрд┐ рдПрдХ рдкреГрд╖реНрда рдХрднреА рднреА рдЙрд╕ рдХреИрдЯрд▓реЙрдЧ рдХреЛ рдбрд╛рдЙрдирд▓реЛрдб рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ рдЬрд┐рд╕реЗ рд╡рд╣ рд░реЗрдВрдбрд░ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдмрд┐рд▓реНрдб-рдЯрд╛рдЗрдо рдХрдВрдкрд╛рдЗрд▓рд░ useIntlayer рдХреЙрд▓ рдХреЛ рдШрдЯрдХ рджреНрд╡рд╛рд░рд╛ рдЙрдкрдпреЛрдЧ рдХреА рдЬрд╛рдиреЗ рд╡рд╛рд▓реА рд╕рдЯреАрдХ рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐рдпреЛрдВ рд╕реЗ рдмрджрд▓ рджреЗрддрд╛ рд╣реИ, рдФрд░ рдЧрддрд┐рд╢реАрд▓ рд╢рдмреНрджрдХреЛрд╢ рд╢реЗрд╖ рдХреЛ рдкреНрд░рддрд┐ рд▓реЛрдХреЗрд▓ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рдЬрд┐рд╕рд╕реЗ рдмрдВрдбрд▓ 50% рддрдХ рдХрдо рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред рдмрдВрдбрд▓ рдЕрдиреБрдХреВрд▓рди рдФрд░ рдмреЗрдВрдЪрдорд╛рд░реНрдХ рджреЗрдЦреЗрдВред
рдХрд╛рдлреА рд╣рдж рддрдХ рд╣рд╛рдБред i18next рдорд╛рдЗрдЧреНрд░реЗрд╢рди рдЧрд╛рдЗрдб рдХрд╛ рдкрд╛рд▓рди рдХрд░реЗрдВред
рд╣рд╛рдБред sync JSON plugin рдЖрдкрдХреА /messages/{locale}/{namespace}.json рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рд╕рддреНрдп рдХрд╛ рд╕реНрд░реЛрдд рдмрдирд╛рдП рд░рдЦрддрд╛ рд╣реИ рдФрд░ рджреЛрдиреЛрдВ рджрд┐рд╢рд╛рдУрдВ рдореЗрдВ рдЙрдирд╕реЗ Intlayer dictionaries рдмрдирд╛рддрд╛ рд╣реИред sync PO plugin gettext catalogs рдХреЗ рд▓рд┐рдП рднреА рдРрд╕рд╛ рд╣реА рдХрд░рддрд╛ рд╣реИ, рдФрд░ per locale files рдЖрдкрдХреЛ locales рдХреЛ рдПрдХ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд╕рдореВрд╣реАрдХреГрдд рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп рднрд╛рд╖рд╛ рдХреЗ рдЕрдиреБрд╕рд╛рд░ content рдХреЛ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░рдиреЗ рджреЗрддреЗ рд╣реИрдВред
рдирд╣реАрдВред npx intlayer extract рдЪрд▓рд╛рдПрдВ рдФрд░ Intlayer рдЖрдкрдХреА рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдкрдврд╝рддрд╛ рд╣реИ, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рдЕрдиреБрдХреВрд▓ рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕ рдирд┐рдХрд╛рд▓рддрд╛ рд╣реИ, рдФрд░ рдкреНрд░рддреНрдпреЗрдХ рдХреЗ рдмрдЧрд▓ рдореЗрдВ рдПрдХ .content рдлрд╝рд╛рдЗрд▓ рд▓рд┐рдЦрддрд╛ рд╣реИ, рдЬрд┐рд╕рд╕реЗ рдЖрдк рдХреИрдЯрд▓реЙрдЧ рдореЗрдВ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдХреЙрдкреА рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп рдПрдХ diff рдХреА рд╕рдореАрдХреНрд╖рд╛ рдХрд░рддреЗ рд╣реИрдВред
рдкреВрд░реНрдг рд╕реНрд╡рдЪрд╛рд▓рди рдХреЗ рд▓рд┐рдП, Intlayer Compiler рдмрд┐рд▓реНрдб рд╕рдордп рдкрд░ рдпрд╣реА рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ: рдкреНрд░рддреНрдпреЗрдХ рдкрд░рд┐рд╡рд░реНрддрди рдкрд░ рдХреЛрдб рд╕реНрдХреИрди рдХрд░рддрд╛ рд╣реИ, рд╢рдмреНрджрдХреЛрд╢ рдЙрддреНрдкрдиреНрди рдХрд░рддрд╛ рд╣реИ рдФрд░ HMR рдХреЗ рд╕рд╛рде рд╕рд┐рдВрдХ рдХрд░рддрд╛ рд╣реИред
рдХрдВрдкрд╛рдЗрд▓рд░ рдХреЛ рдЪрд╛рд▓реВ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рджреЛ рд╕реАрдорд╛рдПрдВ рдЬрд╛рдирдиреЗ рдпреЛрдЧреНрдп рд╣реИрдВред рдпрд╣ рд╕реНрдерд┐рд░ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рджреНрд╡рд╛рд░рд╛ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЬреЛ рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕ рдХреЗрд╡рд▓ рд░рдирдЯрд╛рдЗрдо рдкрд░ рдореМрдЬреВрдж рд╣реЛрддреА рд╣реИрдВ, рдЬреИрд╕реЗ рдХрд┐ API рддреНрд░реБрдЯрд┐ рдХреЛрдб рдпрд╛ CMS рдлрд╝реАрд▓реНрдб, рд╡реЗ рдкрд╣реБрдВрдЪ рд╕реЗ рдмрд╛рд╣рд░ рд░рд╣рддреА рд╣реИрдВред рдФрд░ рдЗрд╕реЗ className="active" рдпрд╛ рд╕реНрдерд┐рддрд┐ рдХреЛрдб рдЬреИрд╕реЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд▓реЙрдЬрд┐рдХ рд╕реЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рд╕рд╛рдордиреЗ рдЖрдиреЗ рд╡рд╛рд▓реЗ рдЯреЗрдХреНрд╕реНрдЯ рдХреЛ рдЕрд▓рдЧ рдХрд░рдирд╛ рд╣реЛрдЧрд╛, рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП рдПрдХ рдмрдбрд╝реЗ рдХреЛрдбрдмреЗрд╕ рдореЗрдВ рдХреБрдЫ рдПрдиреЛрдЯреЗрд╢рди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред extract command рдЖрдкрдХреЛ рд▓реВрдк рдореЗрдВ рд░рдЦрдХрд░ рджреЛрдиреЛрдВ рд╕реЗ рдмрдЪрд╛рддрд╛ рд╣реИред
рдкрд╛рдБрдЪ рдЙрдкрдХрд░рдг, рд╕рднреА рд╡реИрдХрд▓реНрдкрд┐рдХ:
- VS Code extension:
useIntlayerрдХреБрдВрдЬреА рд╕реЗ рдЙрд╕реЗ рдШреЛрд╖рд┐рдд рдХрд░рдиреЗ рд╡рд╛рд▓реА рд╕рд╛рдордЧреНрд░реА рдлрд╝рд╛рдЗрд▓ рдкрд░ рдЬрд╛рдПрдВ, рдШрдЯрдХреЛрдВ рд╕реЗ рд╕рд╛рдордЧреНрд░реА рдирд┐рдХрд╛рд▓реЗрдВ, рдФрд░ рдХрдорд╛рдВрдб рдкреИрд▓реЗрдЯ рдпрд╛ Intlayer рдЯреИрдм рд╕реЗ build, fill, test, push рдФрд░ pull рдЪрд▓рд╛рдПрдВред - LSP server: LSP рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдХрд┐рд╕реА рднреА рд╕рдВрдкрд╛рджрдХ рдореЗрдВ рд╕рдорд╛рди рд╕реБрд╡рд┐рдзрд╛, рдкрд░рд┐рднрд╛рд╖рд╛ рдкрд░ рдЬрд╛рдПрдВ, рдЕрдиреБрд╡рд╛рджрд┐рдд рдорд╛рди рдХрд╛ рдкреВрд░реНрд╡рд╛рд╡рд▓реЛрдХрди рджреЗрдЦреЗрдВ, рдФрд░ рдХреБрдВрдЬреА рдкреВрд░реНрдгрддрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВред
i18next,react-i18next,next-intlрдФрд░use-intlрдХреЙрд▓ рдХрд╛ рднреА рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИред - MCP server: Cursor, VS Code, Claude Desktop, Claude Code рдФрд░ ChatGPT рдХреЗ рд▓рд┐рдП Intlayer рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдФрд░ CLI рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред
- Agent skills: рдХреЗрдВрджреНрд░рд┐рдд рдХреМрд╢рд▓ рдЬреИрд╕реЗ
intlayer-config,intlayer-cliрдФрд░intlayer-contentред - ESLint plugin:
no-raw-textрдирд┐рдпрдо рд╣рд╛рд░реНрдбрдХреЛрдбреЗрдб рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕ рдХреЛ рдЪрд┐рд╣реНрдирд┐рдд рдХрд░рддрд╛ рд╣реИред
