рдЕрдкрдиреЗ рдкреНрд░рд╢реНрди рдХреЛ рдкреВрдЫреЗрдВ рдФрд░ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдХрд╛ рд╕рд╛рд░рд╛рдВрд╢ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ, рдЗрд╕ рдкреГрд╖реНрда рдФрд░ рдЖрдкрдХреЗ рдЪреБрдиреЗ рд╣реБрдП AI рдкреНрд░рджрд╛рддрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ
рдЗрд╕ рдкреГрд╖реНрда рдХреА рд╕рд╛рдордЧреНрд░реА рдПрдХ AI рджреНрд╡рд╛рд░рд╛ рдЕрдиреБрд╡рд╛рджрд┐рдд рдХреА рдЧрдИ рд╣реИред
рдЕрдВрдЧреНрд░реЗрдЬреА рдореЗрдВ рдореВрд▓ рд╕рд╛рдордЧреНрд░реА рдХреЗ рдЕрдВрддрд┐рдо рд╕рдВрд╕реНрдХрд░рдг рджреЗрдЦреЗрдВрдЕрдЧрд░ рдЖрдкрдХреЗ рдкрд╛рд╕ рдЗрд╕ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдХреЛ рд╕реБрдзрд╛рд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЛрдИ рд╡рд┐рдЪрд╛рд░ рд╣реИ, рддреЛ рдХреГрдкрдпрд╛ GitHub рдкрд░ рдПрдХ рдкреБрд▓ рдЕрдиреБрд░реЛрдз рд╕рдмрдорд┐рдЯ рдХрд░рдХреЗ рдпреЛрдЧрджрд╛рди рджреЗрдиреЗ рдореЗрдВ рд╕рдВрдХреЛрдЪ рди рдХрд░реЗрдВред
рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдХреЗ рд▓рд┐рдП GitHub рд▓рд┐рдВрдХрджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдХрд╛ Markdown рдХреЛ рдХреНрд▓рд┐рдкрдмреЛрд░реНрдб рдкрд░ рдХреЙрдкреА рдХрд░реЗрдВ
рдЦрд░рд╛рдм рдХреЙрдкреА рднреЗрдЬреЗ рдмрд┐рдирд╛ CI/CD рдореЗрдВ рдЕрдиреБрд╡рд╛рджреЛрдВ рдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдХрд░рдирд╛
рдореИрдиреНрдпреБрдЕрд▓ рдЕрдиреБрд╡рд╛рдж рд░рд┐рд▓реАрдЬрд╝ рдХреА рддреЗрдЬрд╝ рдЧрддрд┐ рдХреЗ рд╕рд╛рдордиреЗ рдЯрд┐рдХ рдирд╣реАрдВ рдкрд╛рддрд╛ред рдХреЛрдИ рд╢реБрдХреНрд░рд╡рд╛рд░ рдХреЛ рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдЬреЛрдбрд╝рддрд╛ рд╣реИ, рдирд┐рд░реНрдпрд╛рдд рдЕрдЧрд▓реЗ рд╕реНрдкреНрд░рд┐рдВрдЯ рдореЗрдВ рд╣реЛрддрд╛ рд╣реИ, рдФрд░ рддрдм рддрдХ рддреАрди рдФрд░ рднрд╛рд╖рд╛рдПрдБ рдкреАрдЫреЗ рдЫреВрдЯ рдЬрд╛рддреА рд╣реИрдВред рдЗрд╕реЗ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдХрд░рдирд╛ рд╕реАрдзрд╛ рд╣реИред рдмрд┐рдирд╛ рд╕рдореАрдХреНрд╖рд╛ рдХрд┐рдП рдорд╢реАрди рдЖрдЙрдЯрдкреБрдЯ рдХреЛ рдЪреБрдкрдЪрд╛рдк рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рддрдХ рдкрд╣реБрдВрдЪрд╛рдП рдмрд┐рдирд╛ рдЗрд╕реЗ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдХрд░рдирд╛ рд╣реА рд╡рд┐рдЪрд╛рд░рдгреАрдп рд╡рд┐рд╖рдп рд╣реИред
рд╡рд┐рд╖рдп рд╕реВрдЪреА
рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ рдорд╛рдЗрдЧреНрд░реЗрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ
рдиреАрдЪреЗ рджрд┐рдП рдЧрдП рдкрд╛рдЗрдкрд▓рд╛рдЗрди рдЖрдХрд╛рд░ рд▓рд╛рдЗрдмреНрд░реЗрд░реА-рдЕрдЬреНрдЮреЗрдпрд╡рд╛рджреА рд╣реИрдВ, рдФрд░ рдЯреВрд▓рд┐рдВрдЧ рднреА рд╡реИрд╕реА рд╣реА рд╣реИред рдпрджрд┐ рдЖрдкрдХреЗ рд╕рдВрджреЗрд╢ i18next, next-intl, react-intl, vue-i18n рдпрд╛ next-translate рдХреЗ рд▓рд┐рдП JSON рдХреИрдЯрд▓реЙрдЧ рд╣реИрдВ, рддреЛ Sync JSON рдкреНрд▓рдЧрдЗрди рдЙрди рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рд╕реАрдзреЗ рдкрдврд╝рддрд╛ рдФрд░ рд▓рд┐рдЦрддрд╛ рд╣реИ:
рдХреЛрдб рдХреЛ рдХреНрд▓рд┐рдкрдмреЛрд░реНрдб рдкрд░ рдХреЙрдкреА рдХрд░реЗрдВ
рдЖрдкрдХрд╛ рдРрдк рд╡рд╣реА рдЖрдпрд╛рдд рдХрд░рддрд╛ рд░рд╣рддрд╛ рд╣реИ рдЬреЛ рд╡рд╣ рдЖрдпрд╛рдд рдХрд░рддрд╛ рд╣реИред рдлрд┐рд░ рдиреАрдЪреЗ рджрд┐рдП рдЧрдП CI рдЬреЙрдмреНрд╕ рдЖрдкрдХреЗ рдореМрдЬреВрджрд╛ рдХреИрдЯрд▓реЙрдЧ рдХреЛ рднрд░рддреЗ рд╣реИрдВ рдФрд░ рдЬрд╛рдВрдЪрддреЗ рд╣реИрдВ, рдФрд░ рдПрдХ рд╕рдореАрдХреНрд╖рдХ рдЬреЛ рдбрд┐рдл рджреЗрдЦрддрд╛ рд╣реИ рд╡рд╣ locales/fr/checkout.json рдореЗрдВ рдмрджрд▓рд╛рд╡ рд╣реИ, рди рдХрд┐ рдХреЛрдИ рдорд╛рдЗрдЧреНрд░реЗрд╢рдиред gettext рд╡рд░реНрдХрдлрд╝реНрд▓реЛ рдХреЗ рд▓рд┐рдП рдПрдХ Sync PO рдкреНрд▓рдЧрдЗрди рд╣реИ, рдФрд░ рдпрджрд┐ рдЖрдк рд░рдирдЯрд╛рдЗрдо API рдХреЛ рдЕрдкрд░рд┐рд╡рд░реНрддрд┐рдд рд░рдЦрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рддреЛ рдХрдореНрдкреИрдЯ рдПрдбреЙрдкреНрдЯрд░ рднреА рдЙрдкрд▓рдмреНрдз рд╣реИрдВред
рдЧреЗрдЯ (Gate) рдХреЛ рднрд░рд╛рд╡ (Fill) рд╕реЗ рдЕрд▓рдЧ рдХрд░реЗрдВ
рджреЛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рд▓рдЧрд╛рддрд╛рд░ рдорд┐рд▓рд╛ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдПрдХ рдЧреЗрдЯ (Gate) рдПрдХ рдРрд╕реА рдЬрд╛рдВрдЪ рд╣реИ рдЬреЛ рд╡рд┐рдлрд▓ рд╣реЛ рдЬрд╛рддреА рд╣реИред рдпрд╣ рдХрд╣рддрд╛ рд╣реИ рдХрд┐ рдЗрд╕ рдмрд┐рд▓реНрдб рдХреЛ рд╢рд┐рдк рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдХреНрдпреЛрдВрдХрд┐ рдЖрд╡рд╢реНрдпрдХ рд▓реЛрдХреЗрд▓ рдЧрд╛рдпрдм рд╣реИрдВред рдпрд╣ рдХреБрдЫ рднреА рдирд╣реАрдВ рд▓рд┐рдЦрддрд╛ рд╣реИред
рдПрдХ рдлрд┐рд▓ (Fill) рдПрдХ рдореНрдпреВрдЯреЗрд╢рди рд╣реИред рдпрд╣ рдЧрд╛рдпрдм рдЕрдиреБрд╡рд╛рдж рдЙрддреНрдкрдиреНрди рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЙрдиреНрд╣реЗрдВ рдХрдорд┐рдЯ рдХрд░рддрд╛ рд╣реИред рдпрд╣ рдХрднреА рднреА рдмрд┐рд▓реНрдб рдХреЛ рд╡рд┐рдлрд▓ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред
рдХреЗрд╡рд▓ рдлрд┐рд▓ рдЪрд▓рд╛рдиреЗ рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдХреБрдЫ рднреА рдХрднреА рдмреНрд▓реЙрдХ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ, рдФрд░ рдорд╢реАрди рдЖрдЙрдЯрдкреБрдЯ рдмрд┐рдирд╛ рд╕рдореАрдХреНрд╖рд╛ рдХреЗ рдЙрддреНрдкрд╛рджрди рдореЗрдВ рдЪрд▓рд╛ рдЬрд╛рддрд╛ рд╣реИред рдХреЗрд╡рд▓ рдЧреЗрдЯ рдЪрд▓рд╛рдиреЗ рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдмрд┐рд▓реНрдб рд▓рд╛рд▓ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рд╣рд░ рдмрд╛рд░ рдХрд┐рд╕реА рдЗрдВрд╕рд╛рди рдХреЛ рдЗрд╕реЗ рдЕрдирдмреНрд▓реЙрдХ рдХрд░рдирд╛ рдкрдбрд╝рддрд╛ рд╣реИред рдЕрдзрд┐рдХрд╛рдВрд╢ рдЯреАрдореЗрдВ рджреЛрдиреЛрдВ рдЪрд╛рд╣рддреА рд╣реИрдВ, рдЬреЛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдЯреНрд░рд┐рдЧрд░реНрд╕ рд╕реЗ рдЬреБрдбрд╝реА рд╣реЛрдВ: рдкреБрд▓ рдЕрдиреБрд░реЛрдз рдкрд░ рдлрд┐рд▓, рд░рд┐рд▓реАрдЬрд╝ рд╢рд╛рдЦрд╛ рдореЗрдВ рдорд░реНрдЬ рдкрд░ рдЧреЗрдЯред
рд╕реНрд╡рдЪрд╛рд▓рди рдХрд╣рд╛рдБ рд░рд╣ рд╕рдХрддрд╛ рд╣реИ
рд╕рднреА рдбреЗрдЯрд╛ рд╕рд╛рдордЧреНрд░реА рдХреЛ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рддрд╛рд▓рд┐рдХрд╛ рдХреЛ рдореЛрдбрд▓ рдореЗрдВ рдЦреЛрд▓реЗрдВ
| рдЪрд░рдг | рдЯреНрд░рд┐рдЧрд░ | рдХрд┐рд╕рдХреЗ рд▓рд┐рдП рдЕрдЪреНрдЫрд╛ рд╣реИ | рд▓рд╛рдЧрдд |
|---|---|---|---|
| Pre-push рд╣реБрдХ | рд▓реЛрдХрд▓ рдЧрд┐рдЯ | рддреНрд╡рд░рд┐рдд рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛, рдХреЛрдИ CI рдорд┐рдирдЯ рдирд╣реАрдВ | рдбреЗрд╡рд▓рдкрд░ рдХреА рдорд╢реАрди рдФрд░ рдЙрдирдХреА API рдХреБрдВрдЬреА рдкрд░ рдЪрд▓рддрд╛ рд╣реИ |
| Pull request | CI рдЬреЙрдм | рдорд░реНрдЬ рд╕реЗ рдкрд╣рд▓реЗ рд╕рдореАрдХреНрд╖рд╛, рд░рд╣рд╕реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реНрдерд╛рди | CI рдорд┐рдирдЯ рдФрд░ рдкреНрд░рддрд┐ PR рдореЙрдбрд▓ рдХреЙрд▓ |
| рд░рд┐рд▓реАрдЬрд╝ рд╢рд╛рдЦрд╛ | CI рдЬреЙрдм | рдХрд╡рд░реЗрдЬ рдкрд░ рдХрдбрд╝рд╛ рдЧреЗрдЯ | рд╕рд╕реНрддрд╛, рдХреЛрдИ рдореЙрдбрд▓ рдХреЙрд▓ рдирд╣реАрдВ |
| рд░рдирдЯрд╛рдЗрдо | CMS | рдмрд┐рдирд╛ рдкреБрдирд░реНрдирд┐рд░реНрдорд╛рдг рдХреЗ рд╕рд╛рдордЧреНрд░реА рдкрд░рд┐рд╡рд░реНрддрди | рд╣реЛрд╕реНрдЯ рдХреА рдЧрдИ рдирд┐рд░реНрднрд░рддрд╛ |
Pre-push: рд╕рдмрд╕реЗ рддреЗрдЬрд╝ рд▓реВрдк
Husky рдХреЛрдб рдХреЗ рдорд╢реАрди рдЫреЛрдбрд╝рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдлрд┐рд▓ рдЪрд▓рд╛рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЕрдиреБрд╡рд╛рдж рдЙрд╕реА рдкреБрд╢ рдореЗрдВ рдЖрддреЗ рд╣реИрдВ рдЬрд┐рд╕рдореЗрдВ рдЙрди рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдереАред
рдХреЛрдб рдХреЛ рдХреНрд▓рд┐рдкрдмреЛрд░реНрдб рдкрд░ рдХреЙрдкреА рдХрд░реЗрдВ
--unpushed рдХрд╛рд░реНрдп рдХреЛ рдЙрд╕ рд╕рд╛рдордЧреНрд░реА рддрдХ рд╕реАрдорд┐рдд рдХрд░рддрд╛ рд╣реИ рдЬрд┐рд╕реЗ рдЕрднреА рддрдХ рдкреБрд╢ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЬреЛ рдЗрд╕реЗ рд╣рд░ рдкреБрд╢ рдкрд░ рдПрдХ рдорд┐рдирдЯ рд▓реЗрдиреЗ рд╕реЗ рд░реЛрдХрддрд╛ рд╣реИред --mode complete рдЬреЛ рдЧрд╛рдпрдм рд╣реИ рдЙрд╕реЗ рдмрд┐рдирд╛ рдЙрди рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐рдпреЛрдВ рдХреЛ рджреЛрдмрд╛рд░рд╛ рд▓рд┐рдЦреЗ рднрд░рддрд╛ рд╣реИ рдЬрд┐рдирдХреЗ рдкрд╛рд╕ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдПрдХ рдорд╛рди рд╣реИ, рдЗрд╕рд▓рд┐рдП рдПрдХ рд╕рдореАрдХреНрд╖рд┐рдд рдЕрдиреБрд╡рд╛рдж рдХрднреА рднреА рдЪреБрдкрдЪрд╛рдк рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИред
рдПрдХ рдореЛрдиреЛрд░реЗрдкреЛ рдХреЗ рд▓рд┐рдП, рдкреНрд░рддреНрдпреЗрдХ рдРрдк рдХрд╛ рджрд╛рдпрд░рд╛ рддрдп рдХрд░реЗрдВ:
рдХреЛрдб рдХреЛ рдХреНрд▓рд┐рдкрдмреЛрд░реНрдб рдкрд░ рдХреЙрдкреА рдХрд░реЗрдВ
рдиреБрдХрд╕рд╛рди рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╣реИ: рдкреНрд░рддреНрдпреЗрдХ рдбреЗрд╡рд▓рдкрд░ рдХреЛ рдПрдХ API рдХреБрдВрдЬреА рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рдФрд░ рд▓рд╛рдЧрдд рдЙрд╕ рд╡реНрдпрдХреНрддрд┐ рдкрд░ рдЖрддреА рд╣реИ рдЬреЛ рдкреБрд╢ рдХрд░рддрд╛ рд╣реИред рдпрд╣реА рдХрд╛рд░рдг рд╣реИ рдХрд┐ рдЕрдзрд┐рдХрд╛рдВрд╢ рдЯреАрдореЗрдВ рдХреБрдЫ рд╕реЗ рдЕрдзрд┐рдХ рд╣реЛрдиреЗ рдкрд░ рдЗрд╕реЗ CI рдореЗрдВ рд▓реЗ рдЬрд╛рддреА рд╣реИрдВред
Pull request: рдЬрд╣рд╛рдБ рд╕рдореАрдХреНрд╖рд╛ рд╣реИ рд╡рд╣рд╛рдБ рднрд░реЗрдВ
GitHub Actions рдореЗрдВ рд╡рд╣реА рдХрд╛рдо, рдбрд┐рдл рддрдХ рд╕реАрдорд┐рдд:
рдХреЛрдб рдХреЛ рдХреНрд▓рд┐рдкрдмреЛрд░реНрдб рдкрд░ рдХреЙрдкреА рдХрд░реЗрдВ
рд╡рд╣рд╛рдБ рдЪрд╛рд░ рд╡рд┐рд╡рд░рдг рд▓реЛрдб-рдЕрд╕рд░ рд╡рд╛рд▓реЗ рд╣реИрдВ:
fetch-depth: 0--git-diffрдХреЗ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╣реИред рдПрдХ рдЙрдерд▓реЗ рдХреНрд▓реЛрди рдХреЗ рдкрд╛рд╕ рдбрд┐рдл рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЛрдИ рдЖрдзрд╛рд░ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ, рдФрд░ рдлрд┐рд▓ рдЪреБрдкрдЪрд╛рдк рдХреБрдЫ рднреА рдХрд╡рд░ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред- рдХрдорд┐рдЯ рд╕рдВрджреЗрд╢ рдореЗрдВ
[skip ci]рд╡рд░реНрдХрдлрд╝реНрд▓реЛ рдХреЛ рдЦреБрдж рдХреЛ рдлрд┐рд░ рд╕реЗ рдЪрд╛рд▓реВ рдХрд░рдиреЗ рд╕реЗ рд░реЛрдХрддрд╛ рд╣реИред рдЗрд╕рдХреЗ рдмрд┐рдирд╛ рдЬреЙрдм рдХрдорд┐рдЯ рдХрд░рддрд╛ рд╣реИ, рдЬреЛ рдПрдХ рд░рди рдЦреЛрд▓рддрд╛ рд╣реИ, рдЬреЛ рдлрд┐рд░ рд╕реЗ рдХрдорд┐рдЯ рдХрд░рддрд╛ рд╣реИред рд░рд╛рддреЛрдВ-рд░рд╛рдд CI рдмрдЬрдЯ рдЬрд▓рд╛рдиреЗ рдХрд╛ рдпрд╣ рдХреНрд▓рд╛рд╕рд┐рдХ рддрд░реАрдХрд╛ рд╣реИред cancel-in-progressрдХреЗ рд╕рд╛рдеconcurrencyрджреЛ рдкреБрд╢ рдХреЛ рдПрдХ рд╣реА рдлрд╝рд╛рдЗрд▓ рд▓рд┐рдЦрдиреЗ рд╕реЗ рд░реЛрдХрддрд╛ рд╣реИред--git-diffрдлрд┐рд▓ рдХреЛ PR рдореЗрдВ рдмрджрд▓реЗ рдЧрдП рд╣рд┐рд╕реНрд╕реЗ рддрдХ рд╕реАрдорд┐рдд рдХрд░рддрд╛ рд╣реИред рдЗрд╕реЗ рдЫреЛрдбрд╝ рджреЗрдВ рдФрд░ рдЖрдк рд╣рд░ рд░рди рдкрд░ рдкреВрд░реЗ рдХреИрдЯрд▓реЙрдЧ рдХрд╛ рдлрд┐рд░ рд╕реЗ рдЕрдиреБрд╡рд╛рдж рдХрд░рддреЗ рд╣реИрдВред
рдЕрдиреБрд╡рд╛рдж PR рд╢рд╛рдЦрд╛ рдкрд░ рдПрдХ рдХрдорд┐рдЯ рдХреЗ рд░реВрдк рдореЗрдВ рдЖрддреЗ рд╣реИрдВ, рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рдПрдХ рд╕рдореАрдХреНрд╖рдХ рдЙрдиреНрд╣реЗрдВ рдбрд┐рдл рдореЗрдВ рджреЗрдЦрддрд╛ рд╣реИред рдорд░реНрдЬ рдХреЗ рдмрд╛рдж рдХреЗ рдмрдЬрд╛рдп рдЗрд╕реЗ рдпрд╣рд╛рдБ рдХрд░рдиреЗ рдХрд╛ рдкреВрд░рд╛ рдмрд┐рдВрджреБ рдпрд╣реА рд╣реИред
рд░рд┐рд▓реАрдЬрд╝ рд╢рд╛рдЦрд╛: рдЧреЗрдЯ
рдЧреЗрдЯ рдХреЛ рдХрд┐рд╕реА рдореЙрдбрд▓ рдПрдХреНрд╕реЗрд╕ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реЛрддреА рд╣реИ рдФрд░ рдЗрд╕реЗ рддреЗрдЬрд╝ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред
рдХреЛрдб рдХреЛ рдХреНрд▓рд┐рдкрдмреЛрд░реНрдб рдкрд░ рдХреЙрдкреА рдХрд░реЗрдВ
CLI рд░рд┐рдкреЛрд░реНрдЯ рдХреЗ рдмрдЬрд╛рдп рдХрд╡рд░реЗрдЬ рдХрд╛ рджрд╛рд╡рд╛ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдкрд░реАрдХреНрд╖рдг рджреНрд╡рд╛рд░рд╛ рд╕рдорд░реНрдерд┐рдд:
рдХреЛрдб рдХреЛ рдХреНрд▓рд┐рдкрдмреЛрд░реНрдб рдкрд░ рдХреЙрдкреА рдХрд░реЗрдВ
npx intlayer content test рдПрдХ рд░рд┐рдкреЛрд░реНрдЯ рдкреНрд░рд┐рдВрдЯ рдХрд░рддрд╛ рд╣реИ рд▓реЗрдХрд┐рди рд╢реВрдиреНрдп рд╕реЗ рдмрд╛рд╣рд░ рдирд┐рдХрд▓рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдпрд╣ рд╕реВрдЪрд┐рдд рдХрд░рддрд╛ рд╣реИ рдФрд░ рд░реЛрдХрддрд╛ рдирд╣реАрдВ рд╣реИред рдЗрд╕реЗ рд╕реНрдерд╛рдиреАрдп рд░реВрдк рд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ; CI рдореЗрдВ рдЕрд╕рд░реНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред рдЕрдиреБрдкрд╕реНрдерд┐рдд рдЕрдиреБрд╡рд╛рджреЛрдВ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдирд╛ рдореЗрдВ рдЕрдВрддрд░ рдкрд░ рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА рд╣реИред
requiredLocales рд╡рд╣ рд╣реИ рдЬреЛ рдЧреЗрдЯ рдХреЛ рдЬреАрд╡рд┐рдд рд░рдЦрдиреЗ рдпреЛрдЧреНрдп рдмрдирд╛рддрд╛ рд╣реИ
рд╕рднреА рдЕрдард╛рд░рд╣ рд▓реЛрдХреЗрд▓ рдХреА рдорд╛рдВрдЧ рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рдПрдХ рдЧреЗрдЯ рд╕рдмрд╕реЗ рдзреАрдореА рднрд╛рд╖рд╛ рдХреЗ рдЖрдиреЗ рддрдХ рд╣рд░ рд░рд┐рд▓реАрдЬрд╝ рдХреЛ рд░реЛрдХрддрд╛ рд╣реИ, рдФрд░ рдПрдХ рдорд╣реАрдиреЗ рдХреЗ рднреАрддрд░ рдЕрдХреНрд╖рдо рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред
рдХреЛрдб рдХреЛ рдХреНрд▓рд┐рдкрдмреЛрд░реНрдб рдкрд░ рдХреЙрдкреА рдХрд░реЗрдВ
рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рд╕реЗрд╡рд╛ рдкреНрд░рджрд╛рди рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рд▓реЛрдХреЗрд▓ рдШреЛрд╖рд┐рдд рдХрд░реЗрдВ, рдЙрди рд▓реЛрдХреЗрд▓ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд░рдЦреЗрдВ рдЬреЛ рд░рд┐рд▓реАрдЬрд╝ рдХреЛ рд░реЛрдХрддреЗ рд╣реИрдВред рдмрд╛рдХреА рдПрд╕рд┐рдВрдХреНрд░реЛрдирд╕ рд░реВрдк рд╕реЗ рднрд░реЗ рдЬрд╛рддреЗ рд╣реИрдВ рдФрд░ рдХрднреА рднреА рдкрд░рд┐рдирд┐рдпреЛрдЬрди рдореЗрдВ рджреЗрд░реА рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВред
рдЕрдиреБрд╡рд╛рджреЛрдВ рдХреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд░реЗрдкреЛ рд╕реЗ рдмрд╛рд╣рд░ рдирд┐рдХрд╛рд▓рдирд╛
рджреВрд╕рд░рд╛ рдореЙрдбрд▓ рдХреЛрдб рдореЗрдВ рдПрдХ рд▓реЛрдХреЗрд▓ рдШреЛрд╖рд┐рдд рдХрд░рдирд╛ рдФрд░ рдмрд╛рдХреА рдХреЛ рд▓рд╛рдЗрд╡ рд╕рд┐рдВрдХ рдХреЗ рд╕рд╛рде CMS рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рджреВрд░рд╕реНрде рд░реВрдк рд╕реЗ рдкреНрд░рдмрдВрдзрд┐рдд рдХрд░рдирд╛ рд╣реИред рддрдм рд╕рд╛рдордЧреНрд░реА рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЗ рд▓рд┐рдП рдмрд┐рд▓реНрдХреБрд▓ рднреА рдкреБрдирд░реНрдирд┐рд░реНрдорд╛рдг рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реЛрддреА рд╣реИ, рдЬреЛ рдХреЙрдкреА рдЧрддрд┐ рдХреЛ рдбрд┐рдкреНрд▓реЙрдп рдЧрддрд┐ рд╕реЗ рдЕрд▓рдЧ рдХрд░рддрд╛ рд╣реИред
рдХреЛрдб рдХреЛ рдХреНрд▓рд┐рдкрдмреЛрд░реНрдб рдкрд░ рдХреЙрдкреА рдХрд░реЗрдВ
рдпрд╣ рдЙрди рдЯреАрдореЛрдВ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреБрдХреНрдд рд╣реИ рдЬрд╣рд╛рдБ рдЧреИрд░-рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЙрдкреА рдХреЗ рдорд╛рд▓рд┐рдХ рд╣реИрдВред рдпрд╣ рдПрдХ рд╡реНрдпрд╛рдкрд╛рд░ рд╣реИ, рдЕрдкрдЧреНрд░реЗрдб рдирд╣реАрдВ: рдЖрдк рд╕рдВрдкрд╛рджрдХ рд╕реНрд╡рд╛рдпрддреНрддрддрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рд╕рдВрдкрддреНрддрд┐ рдЦреЛ рджреЗрддреЗ рд╣реИрдВ рдХрд┐ рдПрдХ рдЧрд┐рдЯ рдЪреЗрдХрдЖрдЙрдЯ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╡рд░реНрдгрди рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдРрдк рдХреНрдпрд╛ рд░реЗрдВрдбрд░ рдХрд░рддрд╛ рд╣реИред CMS рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реАрдХрд░рдг рдореЗрдВ рд╡рд┐рд╡рд░рдгред
рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ clientSecret рдПрдХ рд╕рд░реНрд╡рд░-рд╕рд╛рдЗрдб рдХреНрд░реЗрдбреЗрдВрд╢рд┐рдпрд▓ рд╣реИред рдпрд╣ CI рд░рд╣рд╕реНрдпреЛрдВ рдФрд░ рдЖрдкрдХреЗ рд╕рд░реНрд╡рд░ рд╡рд╛рддрд╛рд╡рд░рдг рдореЗрдВ рд░рд╣рддрд╛ рд╣реИ, рдХрднреА рднреА рдХрд┐рд╕реА рдРрд╕реА рдЪреАрдЬрд╝ рдореЗрдВ рдирд╣реАрдВ рдЬреЛ рдХреНрд▓рд╛рдЗрдВрдЯ рдмрдВрдбрд▓ рддрдХ рдкрд╣реБрдБрдЪрддреА рд╣реИред
рдИрдорд╛рдирджрд╛рд░ рд╕реАрдорд╛
рдКрдкрд░ рд╕рдм рдХреБрдЫ рдХрд╡рд░реЗрдЬ рдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдХрд░рддрд╛ рд╣реИ, рдЧреБрдгрд╡рддреНрддрд╛ рдХреЛ рдирд╣реАрдВред рдПрдХ рдорд╢реАрди рднрд░рд╛рд╡ рдПрдХ рджреГрд╢реНрдпрдорд╛рди рдЕрдВрддрд░ рдХреЛ рдПрдХ рдЕрджреГрд╢реНрдп рдЕрдВрддрд░ рдореЗрдВ рдмрджрд▓ рджреЗрддрд╛ рд╣реИ: рдСрдбрд┐рдЯ рд╣рд░рд╛ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдХреБрдВрдЬреА рдХрд╛ рдЕрдм рдПрдХ рдорд╛рди рд╣реИ, рдФрд░ рдХрд┐рд╕реА рдиреЗ рдЗрд╕реЗ рдкрдврд╝рд╛ рдирд╣реАрдВ рд╣реИред
рдпрд╣ рдПрдХ рдЖрдВрддрд░рд┐рдХ рдЙрдкрдХрд░рдг, рдПрдХ рдЪреЗрдВрдЬрд▓реЙрдЧ рдпрд╛ рдПрдХ рдмреАрдЯрд╛ рд▓реЛрдХреЗрд▓ рдХреЗ рд▓рд┐рдП рд╕реНрд╡реАрдХрд╛рд░реНрдп рд╣реИред рдпрд╣ рдореВрд▓реНрдп рдирд┐рд░реНрдзрд╛рд░рдг, рдХрд╛рдиреВрдиреА рдкреНрд░рддрд┐рд▓рд┐рдкрд┐, рднреБрдЧрддрд╛рди рд╡рд┐рдлрд▓ рд╣реЛрдиреЗ рд╡рд╛рд▓реЗ рддреНрд░реБрдЯрд┐ рд╕рдВрджреЗрд╢реЛрдВ, рдпрд╛ рдХрд┐рд╕реА рднреА рдЪреАрдЬрд╝ рдХреЗ рд▓рд┐рдП рд╕реНрд╡реАрдХрд╛рд░реНрдп рдирд╣реАрдВ рд╣реИ рдЬрд┐рд╕реЗ рдЧреНрд░рд╛рд╣рдХ рддрдп рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдкрдврд╝рддрд╛ рд╣реИред рдЙрдиреНрд╣реЗрдВ рдПрдХ рдорд╛рдирд╡ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд░реВрдЯ рдХрд░реЗрдВ, рдФрд░ рд╣рд░ рдЬрдЧрд╣ --mode complete рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ рддрд╛рдХрд┐ рдПрдХ рд╕рдореАрдХреНрд╖рд┐рдд рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХрднреА рднреА рдмрд╛рдж рдХреЗ рд░рди рджреНрд╡рд╛рд░рд╛ рдЕрдзрд┐рд▓реЗрдЦрд┐рдд рди рд╣реЛред
рдореЙрдбрд▓ рдХреЛ рд╕рдВрджрд░реНрдн рджреЗрдВ рддрд╛рдХрд┐ рдЗрд╕рдХрд╛ рдЖрдЙрдЯрдкреБрдЯ рдХрдо рд╕реЗ рдХрдо рд╕реБрд╕рдВрдЧрдд рд╣реЛ:
рдХреЛрдб рдХреЛ рдХреНрд▓рд┐рдкрдмреЛрд░реНрдб рдкрд░ рдХреЙрдкреА рдХрд░реЗрдВ
рд╕рд╛рдорд╛рдиреНрдп рдЧрд▓рддрд┐рдпрд╛рдБ
- рдСрдЯреЛ-рдХрдорд┐рдЯ рдкрд░ рдХреЛрдИ
[skip ci]рдирд╣реАрдВред рдХрд╛рдо рдПрдХ рд▓реВрдк рдореЗрдВ рдЦреБрдж рдХреЛ рдлрд┐рд░ рд╕реЗ рд╢реБрд░реВ рдХрд░рддрд╛ рд╣реИред --git-diffрдХреЗ рд╕рд╛рде рдЙрдерд▓рд╛ рдХреНрд▓реЛрдиред рдбрд┐рдл рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЛрдИ рдЖрдзрд╛рд░ рдирд╣реАрдВ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдХреБрдЫ рднреА рднрд░рд╛ рдирд╣реАрдВ рдЧрдпрд╛ рд╣реИ рдФрд░ рдХреБрдЫ рднреА рд╢рд┐рдХрд╛рдпрдд рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред- рд╣рд░ рд░рди рдкрд░ рдкреВрд░реЗ рдХреИрдЯрд▓реЙрдЧ рдХреЛ рднрд░рдирд╛ред
--git-diffрдпрд╛--unpushedрдХреЗ рд╕рд╛рде рд╕реНрдХреЛрдк рдХрд░реЗрдВ рдпрд╛ рдмрд┐рд▓ рджреЗрдЦреЗрдВред - рдЧреЗрдЯ рдХреЗ рд░реВрдк рдореЗрдВ CLI рд░рд┐рдкреЛрд░реНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ред рдпрд╣ рд╢реВрдиреНрдп рд╕реЗ рдмрд╛рд╣рд░ рдирд┐рдХрд▓рддрд╛ рд╣реИред
- рдкреНрд░рддреНрдпреЗрдХ рд▓реЛрдХреЗрд▓ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ред рдкрд╣рд▓реА рдмрд╛рд░ рдЬрдм рдпрд╣ рд░рд┐рд▓реАрдЬрд╝ рдХреЛ рд░реЛрдХрддрд╛ рд╣реИ рддреЛ рдЧреЗрдЯ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
- рдмрд┐рдирд╛ рдЧреЗрдЯ рд╡рд╛рд▓рд╛ рдлрд┐рд▓ рдЬреЙрдмред рдХреБрдЫ рднреА рдХрднреА рд╡рд┐рдлрд▓ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдорд╢реАрди рдХреЙрдкреА рдмрд┐рдирд╛ рд╕рдореАрдХреНрд╖рд╛ рдХреЗ рдЙрддреНрдкрд╛рджрди рддрдХ рдкрд╣реБрдБрдЪрддреА рд╣реИред
- рд░реЗрдкреЛ рдореЗрдВ рдореЙрдбрд▓ API рдХреБрдВрдЬрд┐рдпрд╛рдБред рд╡реЗ CI рд░рд╣рд╕реНрдпреЛрдВ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИрдВ, рдЬреИрд╕реЗ
clientSecretред
рдЖрдЧреЗ рдкрдврд╝реЗрдВ
рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ
рдЕрднреА рддрдХ рдХреЛрдИ рдЯрд┐рдкреНрдкрдгреА рдирд╣реАрдВред рдЕрдкрдиреЗ рд╡рд┐рдЪрд╛рд░ рд╕рд╛рдЭрд╛ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдкрд╣рд▓реЗ рд╡реНрдпрдХреНрддрд┐ рдмрдиреЗрдВред
