Author:
    Creation:2026-10-03Last update:2026-10-03

    ICU MessageFormat рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рд▓рд┐рдП рдХреНрдпреЛрдВ рдирд╣реАрдВ рдмрдирд╛ рд╣реИ

    ICU MessageFormat рдПрдХ рдмреЗрд╣рддрд░реАрди рдорд╛рдирдХ рд╣реИред рдпрд╣ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдкрд░рд┐рдкреВрд░реНрдг рд╣реИ, рдЕрдиреБрд╡рд╛рджрдХ рдЗрд╕реЗ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕рдордЭрддреЗ рд╣реИрдВ, рдФрд░ рдЕрдзрд┐рдХрд╛рдВрд╢ рдЕрдиреБрд╡рд╛рдж рдкреНрд░рдмрдВрдзрди рдкреНрд░рдгрд╛рд▓рд┐рдпрд╛рдБ (TMS) рдЗрд╕реЗ рдкрдврд╝ рд╕рдХрддреА рд╣реИрдВред рд╕рдорд╕реНрдпрд╛ рдЙрд╕ рд░рдирдЯрд╛рдЗрдо рдкрд░рд┐рд╡реЗрд╢ рдореЗрдВ рд╣реИ рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП рдЗрд╕реЗ рддреИрдпрд╛рд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред ICU рдХрд╛ рдЬрдиреНрдо C++ рдФрд░ Java рдХреА рджреБрдирд┐рдпрд╛ рдореЗрдВ рд╣реБрдЖ рдерд╛, рдЬрд╣рд╛рдБ рдкреВрд░реЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рдЖрдХрд╛рд░ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдПрдХ рд╕рдВрдкреВрд░реНрдг рд╕рдВрджреЗрд╢ рдкрд╛рд░реНрд╕рд░ рдФрд░ рдлреЙрд░реНрдореЗрдЯрд░ рдХрд╛ рдЖрдХрд╛рд░ рдирдЧрдгреНрдп рд╣реЛрддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдмрдВрдбрд▓ рдореЗрдВ рдпрд╣ рдЕрддрд┐рд░рд┐рдХреНрдд рд▓рд╛рдЧрдд рд╣рд░ рдкреЗрдЬ рд▓реЛрдб рдкрд░ рдЪреБрдХрд╛рдиреА рдкрдбрд╝рддреА рд╣реИред

    рдпрд╣ рд▓реЗрдЦ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░рддрд╛ рд╣реИ рдХрд┐ ICU рдХрд╣рд╛рдБ рд╕реЗ рдЖрдпрд╛, рдмрд╣реБрд╡рдЪрди рд░реВрдкреЛрдВ рдХреЗ рд▓рд┐рдП рдЗрд╕рдХрд╛ рд╕рд┐рдВрдЯреИрдХреНрд╕ рдЗрддрдирд╛ рднрд╛рд░реА рдХреНрдпреЛрдВ рд╣реИ, рдФрд░ рдкреВрд░реНрдг рд╕рдВрдЧрддрддрд╛ рдХрд┐рд╕реА рднреА рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ i18n рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЗ рдмрдВрдбрд▓ рдЖрдХрд╛рд░ рдХреЛ рдХреНрдпреЛрдВ рдмрдврд╝рд╛ рджреЗрддреА рд╣реИред рдпрджрд┐ рдЖрдкрдХреЛ рд╕реАрдзреЗ рдЗрд╕рдХреЗ рд╕рд┐рдВрдЯреИрдХреНрд╕ рдХреЛ рд╕рдордЭрдирд╛ рд╣реИ, рддреЛ рдкрд╣рд▓реЗ ICU Message Format рд╕рдВрджрд░реНрдн рдЧрд╛рдЗрдб рдкрдврд╝реЗрдВред

    IBM рд╕реЗ рдпреВрдирд┐рдХреЛрдб рдХрдВрд╕реЛрд░реНрдЯрд┐рдпрдо рддрдХ

    ICU рдХрд╛ рдкреВрд░рд╛ рдирд╛рдо International Components for Unicode рд╣реИред рдЗрд╕рдХреЗ рд╕рдВрджреЗрд╢ рд╕рд┐рдВрдЯреИрдХреНрд╕ рдХреА рд╢реБрд░реБрдЖрдд рдЬрд╛рд╡рд╛ рд╕реЗ рд╣реБрдИ: Apple рдФрд░ IBM рдХреЗ рдПрдХ рд╕рдВрдпреБрдХреНрдд рдЙрджреНрдпрдо Taligent рдиреЗ JDK 1.1 (1997) рдХреА рдЕрдВрддрд░реНрд░рд╛рд╖реНрдЯреНрд░реАрдпрдХрд░рдг рдХреНрд▓рд╛рд╕реЗрдВ рд▓рд┐рдЦреАрдВ, рдЬрд┐рд╕рдореЗрдВ java.text.MessageFormat рд╢рд╛рдорд┐рд▓ рдерд╛ред IBM рдиреЗ рдЗрдиреНрд╣реЗрдВ ICU4J рдХреЗ рд░реВрдк рдореЗрдВ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдирд╛ рдЬрд╛рд░реА рд░рдЦрд╛, C/C++ рдХреЗ рд▓рд┐рдП ICU4C рдХреЗ рд░реВрдк рдореЗрдВ рдкреЛрд░реНрдЯ рдХрд┐рдпрд╛ рдФрд░ 1999 рдореЗрдВ рдЗрд╕реЗ рдУрдкрди-рд╕реЛрд░реНрд╕ рдХрд┐рдпрд╛ред 2016 рдореЗрдВ, ICU рдпреВрдирд┐рдХреЛрдб рдХрдВрд╕реЛрд░реНрдЯрд┐рдпрдо рдХреЗ рдЕрдзреАрди рдЖ рдЧрдпрд╛, рдЬреЛ рдЙрд╕ CLDR рд▓реЛрдХреЗрд▓ рдбреЗрдЯрд╛ рдХрд╛ рдкреНрд░рдмрдВрдзрди рднреА рдХрд░рддрд╛ рд╣реИ рдЬрд┐рд╕ рдкрд░ ICU рдирд┐рд░реНрднрд░ рд╣реИред

    рдЗрд╕рдХрд╛ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдЙрдкрдпреЛрдЧ

    рдЗрд╕рдХрд╛ рдкреНрд░рд╛рдердорд┐рдХ рд▓рдХреНрд╖реНрдп рд╕рд░реНрд╡рд░ рдФрд░ рдбреЗрд╕реНрдХрдЯреЙрдк рд╕реЙрдлрд╝реНрдЯрд╡реЗрдпрд░ рдереЗ: рдЬрд╛рд╡рд╛ рдПрдВрдЯрд░рдкреНрд░рд╛рдЗрдЬ рдПрдкреНрд▓рд┐рдХреЗрд╢рди, рдЖрдИрдмреАрдПрдо рдЙрддреНрдкрд╛рдж рдФрд░ рдмрд╛рдж рдореЗрдВ рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдоред рд╕рдВрджреЗрд╢ ResourceBundle рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд▓реЛрдб рдХреА рдЬрд╛рдиреЗ рд╡рд╛рд▓реА рдЬрд╛рд╡рд╛ .properties рдлрд╝рд╛рдЗрд▓реЛрдВ рдореЗрдВ рдпрд╛ C/C++ рдХреЗ рд▓рд┐рдП ICU рдХреЗ рдЕрдкрдиреЗ рд╕рдВрд╕рд╛рдзрди рдмрдВрдбрд▓ рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рд░рдЦреЗ рдЬрд╛рддреЗ рдереЗ:

    messages_fr.properties
    inbox.unread={count, plural, one {# message non lu} other {# messages non lus}}
    
    java
    String pattern = bundle.getString("inbox.unread");
    String text = new MessageFormat(pattern, Locale.FRENCH)
        .format(Map.of("count", 5)); // "5 messages non lus"
    

    рдореВрд▓ JDK рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ plural рдХреАрд╡рд░реНрдб рдирд╣реАрдВ рдерд╛ред рдЗрд╕рдореЗрдВ рд╕рдВрдЦреНрдпрд╛рддреНрдордХ рд╢реНрд░реЗрдгрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде choice ({0,choice,0#no files|1#one file|1<{0} files}) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рдерд╛, рдЬреЛ рдХреЗрд╡рд▓ рдЕрдВрдЧреНрд░реЗрдЬреА рдЬреИрд╕реА рдмрд╣реБрд╡рдЪрди рд╕рдВрд░рдЪрдирд╛ рд╡рд╛рд▓реА рднрд╛рд╖рд╛рдУрдВ рдХреЗ рдЕрдиреБрдХреВрд▓ рдерд╛ред ICU рдиреЗ 2008 (ICU 4.0) рдореЗрдВ CLDR рдирд┐рдпрдореЛрдВ рдкрд░ рдЖрдзрд╛рд░рд┐рдд plural рдХреЛ рдЬреЛрдбрд╝рд╛ рдФрд░ 2010 (ICU 4.4) рдореЗрдВ select рдкреЗрд╢ рдХрд┐рдпрд╛ред

    .po рд╕реЗ рдЕрдВрддрд░

    рдЕрдХреНрд╕рд░ рд▓реЛрдЧ ICU рдХреЛ gettext рд╕рдордЭрдиреЗ рдХреА рднреВрд▓ рдХрд░ рдмреИрдарддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдпреЗ рджреЛрдиреЛрдВ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдкрд░рдВрдкрд░рд╛рдПрдБ рд╣реИрдВред .po рдлрд╝рд╛рдЗрд▓реЗрдВ GNU gettext (C, Linux, рдмрд╛рдж рдореЗрдВ PHP рдФрд░ Python) рд╕реЗ рдЖрддреА рд╣реИрдВред рдПрдХ .po рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐ рдореЗрдВ рд╕реАрдзреЗ msgid / msgstr рдЬреЛрдбрд╝реЗ рд╣реЛрддреЗ рд╣реИрдВ, рдФрд░ рдмрд╣реБрд╡рдЪрди рдХрд╛ рдирд┐рд░реНрдзрд╛рд░рдг рдлрд╝рд╛рдЗрд▓ рд╣реЗрдбрд░ рдореЗрдВ рджрд┐рдП рдЧрдП C рдПрдХреНрд╕рдкреНрд░реЗрд╢рди (Plural-Forms: nplurals=2; plural=(n > 1);) рджреНрд╡рд╛рд░рд╛ рд╣реЛрддрд╛ рд╣реИред рд╕рдВрджреЗрд╢ рдХреЗ рднреАрддрд░ рдХреЛрдИ рдмреНрд░рд╛рдВрдЪрд┐рдВрдЧ рдирд╣реАрдВ рд╣реЛрддреАред рдЗрд╕рдХреЗ рд╡рд┐рдкрд░реАрдд, ICU рдмреНрд░рд╛рдВрдЪрд┐рдВрдЧ рдХреЛ рд╕реАрдзреЗ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЗ рднреАрддрд░ рд░рдЦрддрд╛ рд╣реИ, рдЬрд┐рд╕рд╕реЗ рдПрдХ рд╣реА рд╕рдВрджреЗрд╢ рдореЗрдВ plural, select рдФрд░ рд╕рдВрдЦреНрдпрд╛ рд╕реНрд╡рд░реВрдкрдг рдХреЛ рдПрдХ рд╕рд╛рде рдЬреЛрдбрд╝рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

    рдЖрдЬ ICU рдХрд╣рд╛рдБ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ

    ICU4C рдЖрдЬ Android, iOS, macOS, Windows, Node.js рдФрд░ Chrome рддрдерд╛ Firefox рдХреЗ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЗрдВрдЬрдиреЛрдВ рдореЗрдВ рдореВрд▓ рд░реВрдк рд╕реЗ рдореМрдЬреВрдж рд╣реИред рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХреЗ рдорд╛рдирдХ Intl API рдХрд╛рдлреА рд╣рдж рддрдХ рдЗрд╕реА рдкрд░ рдмрдиреЗ рд╣реИрдВред рдЗрд╕рд▓рд┐рдП, рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ ICU рдХреЗ рдмрд╣реБрд╡рдЪрди рдирд┐рдпрдо рдФрд░ рджрд┐рдирд╛рдВрдХ рддрдерд╛ рд╕рдВрдЦреНрдпрд╛ рд╕реНрд╡рд░реВрдкрдг рдкрд╣рд▓реЗ рд╕реЗ рдореМрдЬреВрдж рд╣реИрдВред рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХреЗ рдкрд╛рд╕ рдЬреЛ рдирд╣реАрдВ рд╣реИ, рд╡рд╣ рд╣реИ рдЗрд╕рдХрд╛ рд╕рдВрджреЗрд╢ рдкрд╛рд░реНрд╕рд░: Intl.MessageFormat рдЕрднреА рднреА TC39 рдкреНрд░рд╕реНрддрд╛рд╡ рдХреЗ рд╢реБрд░реБрдЖрддреА рдЪрд░рдг рдореЗрдВ рд╣реИ, рдЬреЛ рдирдП MessageFormat 2 рд╕рд┐рдВрдЯреИрдХреНрд╕ рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╣реИ рдФрд░ ICU MessageFormat 1 рдХреЗ рд╕рд╛рде рд╕рдВрдЧрдд рдирд╣реАрдВ рд╣реИред

    рдпрд╣ рдЗрддрд┐рд╣рд╛рд╕ рдЗрд╕рдХреЗ рдбрд┐рдЬрд╝рд╛рдЗрди рдирд┐рд░реНрдгрдпреЛрдВ рдХреЛ рд╕реНрдкрд╖реНрдЯ рдХрд░рддрд╛ рд╣реИ:

    • рдпрд╣ рд╕рд░реНрд╡рд░ рдФрд░ рдбреЗрд╕реНрдХрдЯреЙрдк рд░рдирдЯрд╛рдЗрдо рдХреЛ рд▓рдХреНрд╖рд┐рдд рдХрд░рддрд╛ рд╣реИред рд░рдирдЯрд╛рдЗрдо рдкрд░ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдкрд╛рд░реНрд╕ рдХрд░рдирд╛ рд╡рд╣рд╛рдБ рдмрд╣реБрдд рд╕рд╕реНрддрд╛ рд╣реИ, рдФрд░ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рд╕реНрддрд░ рдкрд░ рдПрдХ рдмрд╛рд░ рд╕реНрдерд╛рдкрд┐рдд рд╣реЛрддреА рд╣реИ, рдЬрд┐рд╕реЗ рд╣рд░ рдЖрдЧрдВрддреБрдХ рджреНрд╡рд╛рд░рд╛ рдиреЗрдЯрд╡рд░реНрдХ рд╕реЗ рдбрд╛рдЙрдирд▓реЛрдб рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ред
    • рдпрд╣ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЗ рдЕрдВрджрд░ рдПрдХ DSL рд╣реИред рдмреНрд░рд╛рдВрдЪрд┐рдВрдЧ, рд╕рдВрдЦреНрдпрд╛рдУрдВ рдФрд░ рддрд┐рдерд┐рдпреЛрдВ рдХрд╛ рд╕реНрд╡рд░реВрдкрдг рдФрд░ рдиреЗрд╕реНрдЯрд┐рдВрдЧ рд╕рднреА рдПрдХ рд╣реА рд╕рд┐рдВрдЯреИрдХреНрд╕ рдореЗрдВ рд░рд╣рддреЗ рд╣реИрдВ рдЬрд┐рд╕реЗ рдЕрдиреБрд╡рд╛рджрдХ рдХреЛрдб рдЫреБрдП рдмрд┐рдирд╛ рд╕рдВрдкрд╛рджрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
    • рдпрд╣ рдкреВрд░реНрдгрддрд╛ рдХрд╛ рд▓рдХреНрд╖реНрдп рд░рдЦрддрд╛ рд╣реИред рдЕрдиреБрд╡рд╛рджрдХ рдХреЛ рдЬрд┐рд╕ рднреА рд╡реНрдпрд╛рдХрд░рдгрд┐рдХ рд╕реНрдерд┐рддрд┐ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛ рд╕рдХрддреА рд╣реИ, рдЙрд╕рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдСрдкрд░реЗрдЯрд░ рдореМрдЬреВрдж рд╣реИред

    рдЗрдирдореЗрдВ рд╕реЗ рдХреЛрдИ рднреА рдирд┐рд░реНрдгрдп рдЧрд╝рд▓рдд рдирд╣реАрдВ рд╣реИред рд╡реЗ рдХреЗрд╡рд▓ рдРрд╕реЗ рдкрд░рд┐рд╡реЗрд╢ рдХреЛ рдорд╛рдирдХрд░ рдЪрд▓реЗ рдереЗ рдЬреЛ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдирд╣реАрдВ рд╣реИред

    рдмрд╣реБрд╡рдЪрди рд╕рд┐рдВрдЯреИрдХреНрд╕ рдЕрддреНрдпрдзрд┐рдХ рдЬрдЯрд┐рд▓ рд╣реИ

    ICU рдХреА рд╕рдмрд╕реЗ рдЖрдо рд╕рдВрд░рдЪрдирд╛ рд╣реА рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ рднреА рд╣реИред рд╢реВрдиреНрдп рдХреА рд╕реНрдерд┐рддрд┐ рд╡рд╛рд▓реЗ рдХрд╛рдЙрдВрдЯ рдХреЛ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд▓рд┐рдЦрд╛ рдЬрд╛рддрд╛ рд╣реИ:

    text
    {count, plural,
      =0 {No unread messages}
      one {# unread message}
      other {# unread messages}
    }
    

    рдЗрд╕рдХреЗ рд▓рд┐рдП рддрд░реНрдХ рдХрд╛ рдирд╛рдо, рдХреАрд╡рд░реНрдб plural, рдкреНрд░рддреНрдпреЗрдХ рд╢рд╛рдЦрд╛ рдХреЗ рд▓рд┐рдП рдПрдХ рдХреЗрд╕ рд▓реЗрдмрд▓, рдиреЗрд╕реНрдЯреЗрдб рдХрд░реНрд▓реА рдмреНрд░реИрдХреЗрдЯ рдФрд░ # рдХреЛ рдПрдХ рд╡рд┐рд╢реЗрд╖ рдЯреЛрдХрди рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдкрдбрд╝рддрд╛ рд╣реИ рдЬреЛ рдХреЗрд╡рд▓ рдмрд╣реБрд╡рдЪрди рд╢рд╛рдЦрд╛рдУрдВ рдХреЗ рдЕрдВрджрд░ рдорд╛рдиреНрдп рд╣реЛрддрд╛ рд╣реИред рдпрджрд┐ рд▓рд┐рдВрдЧ (gender) рднреА рдЬреЛрдбрд╝ рджрд┐рдпрд╛ рдЬрд╛рдП, рддреЛ рд╕рдВрд░рдЪрдирд╛ рдФрд░ рдЕрдзрд┐рдХ рдЧрд╣рд░реА рд╣реЛ рдЬрд╛рддреА рд╣реИ:

    text
    {gender, select,
      female {{count, plural,
        one {She has # unread message}
        other {She has # unread messages}
      }}
      male {{count, plural,
        one {He has # unread message}
        other {He has # unread messages}
      }}
      other {{count, plural,
        one {They have # unread message}
        other {They have # unread messages}
      }}
    }
    

    рдкрдВрджреНрд░рд╣ рдореЗрдВ рд╕реЗ рдиреМ рдкрдВрдХреНрддрд┐рдпрд╛рдБ рдХреЗрд╡рд▓ рд╕рд┐рдВрдЯреИрдХреНрд╕ рдХреЗ рдврд╛рдБрдЪреЗ рдХреЗ рд▓рд┐рдП рд╣реИрдВред рдкреЛрд▓рд┐рд╢ рдЬреИрд╕реА рднрд╛рд╖рд╛ рдХреЛ рдЗрди рддреАрди рд▓рд┐рдВрдЧ рд╢рд╛рдЦрд╛рдУрдВ рдореЗрдВ рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдореЗрдВ рдЪрд╛рд░ рдмрд╣реБрд╡рдЪрди рд╢рд╛рдЦрд╛рдУрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рдЬрд┐рд╕рд╕реЗ рдЕрдиреБрд╡рд╛рджрд┐рдд рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЛрд╖реНрдардХреЛрдВ рдХрд╛ рдПрдХ рдШрдирд╛ рдЬрдВрдЧрд▓ рдмрди рдЬрд╛рддреА рд╣реИ рдЬрд╣рд╛рдБ рдПрдХ рднреА рдЫреВрдЯрд╛ рд╣реБрдЖ } рдкреВрд░реЗ рд╕рдВрджреЗрд╢ рдХреЛ рдХреНрд░реИрд╢ рдХрд░ рджреЗрддрд╛ рд╣реИ, рдФрд░ рдЕрдХреНрд╕рд░ рдЗрд╕рдХрд╛ рдкрддрд╛ рдХреЗрд╡рд▓ рд░рдирдЯрд╛рдЗрдо рдореЗрдВ рдЪрд▓рддрд╛ рд╣реИред

    рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдЗрд╕реА рд╕рдВрд░рдЪрдирд╛ рдХреЛ рд╢реБрджреНрдз рдбреЗрдЯрд╛ рдХреЗ рд░реВрдк рдореЗрдВ рд╡реНрдпрдХреНрдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ: рдПрдХ рдРрд╕рд╛ рдСрдмреНрдЬреЗрдХреНрдЯ рдЬрд┐рд╕рдХреА рдХреБрдВрдЬрд┐рдпрд╛рдБ рдмрд╣реБрд╡рдЪрди рд╢реНрд░реЗрдгрд┐рдпреЛрдВ рд╕реЗ рдореЗрд▓ рдЦрд╛рддреА рд╣реИрдВ, рдЬрд┐рд╕реЗ рдЯрд╛рдЗрдк рд╕рд┐рд╕реНрдЯрдо рдФрд░ рдХреЛрдб рдПрдбрд┐рдЯрд░ рджреНрд╡рд╛рд░рд╛ рдЬрд╛рдБрдЪрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдмрд┐рдирд╛ рдлрд╝рд╛рдЗрд▓ рдФрд░ рдорд╛рди рдХреЗ рдмреАрдЪ рдХрд┐рд╕реА рдкрд╛рд░реНрд╕рд░ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреЗред

    рдкреВрд░реНрдгрддрд╛ рдХреА рднрд╛рд░реА рдХреАрдордд

    ICU рдмрд╣реБрдд рд╕реЗ рдлреАрдЪрд░реНрд╕ рдХреЛ рдХрд╡рд░ рдХрд░рддрд╛ рд╣реИ:

    • рд╕рдЯреАрдХ рдорд┐рд▓рд╛рди (=0) рдФрд░ рдСрдлрд╝рд╕реЗрдЯ (offset:) рдХреЗ рд╕рд╛рде plural
    • рдЕрдкрдиреА рдЕрд▓рдЧ CLDR рдХреНрд░рдорд┐рдХ рддрд╛рд▓рд┐рдХрд╛ рдХреЗ рд╕рд╛рде selectordinal
    • рдЕрд╕реАрдорд┐рдд рдЧрд╣рд░рд╛рдИ рддрдХ рдиреЗрд╕реНрдЯ рд╣реЛрдиреЗ рд╡рд╛рд▓рд╛ select
    • рдкрд╛рд░рдВрдкрд░рд┐рдХ рд╢реИрд▓реА (number, currency) рдФрд░ рд╕реНрдХреЗрд▓реЗрдЯрди (::currency/EUR compact-short) рдореЗрдВ number, date рдФрд░ time рддрд░реНрдХ
    • рдПрд╕реНрдХреЗрдк рдФрд░ рдЙрджреНрдзрд░рдг рдирд┐рдпрдо ('{', '')
    • рдХреБрдЫ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрдиреЛрдВ рдореЗрдВ рд░рд┐рдЪ-рдЯреЗрдХреНрд╕реНрдЯ рдЯреИрдЧ (<b>тАж</b>)

    ICU рдХреЗ рд╕рд╛рде 1:1 рдкреВрд░реНрдг рд╕рдВрдЧрддрддрд╛ рдХрд╛ рджрд╛рд╡рд╛ рдХрд░рдиреЗ рд╡рд╛рд▓реА рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЛ рдпрд╣ рд╕рдм рдХреБрдЫ рдмрдВрдбрд▓ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдХрд░рдирд╛ рдкрдбрд╝рддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рд╡рд╣ рдмрд┐рд▓реНрдб-рдЯрд╛рдЗрдо рдкрд░ рдпрд╣ рдЕрдиреБрдорд╛рди рдирд╣реАрдВ рд▓рдЧрд╛ рд╕рдХрддреА рдХрд┐ рдЖрдкрдХреЗ рд╕рдВрджреЗрд╢ рдХрд┐рди рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗред рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рд░реВрдк рд╕реЗ рдЗрд╕рдХрд╛ рдЕрд░реНрде рд╣реИ:

    1. рдПрдХ рдкрд╛рд░реНрд╕рд░ рдЬреЛ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЛ AST рдореЗрдВ рдмрджрд▓рддрд╛ рд╣реИ рдФрд░ рддреНрд░реБрдЯрд┐рдкреВрд░реНрдг рдХреЛрд╖реНрдардХреЛрдВ рдХреЛ рд╕рдВрднрд╛рд▓рддрд╛ рд╣реИред
    2. рд╕рдВрдЦреНрдпрд╛ рдФрд░ рджрд┐рдирд╛рдВрдХ рдХреЗ :: рд╕рд┐рдВрдЯреИрдХреНрд╕ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реНрдХреЗрд▓реЗрдЯрди рдкрд╛рд░реНрд╕рд░, рдЬреЛ рдЕрдкрдиреЗ рдЖрдк рдореЗрдВ рдПрдХ рдЫреЛрдЯреА рднрд╛рд╖рд╛ рд╣реИред
    3. рдПрдХ рдлреЙрд░реНрдореЗрдЯрд░ рдЬреЛ AST рдХреЛ рдкрд╛рд░ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдкреНрд░рддреНрдпреЗрдХ рдиреЛрдб рдХреЛ Intl.PluralRules, Intl.NumberFormat рдФрд░ Intl.DateTimeFormat рд╕реЗ рдЬреЛрдбрд╝рддрд╛ рд╣реИред

    рддреАрд╕рд░рд╛ рднрд╛рдЧ рдмрд╣реБрдд рд╣рд▓реНрдХрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдЖрдзреБрдирд┐рдХ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ CLDR рд▓реЙрдЬрд┐рдХ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА Intl рдореЗрдВ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рд╣реИред рдкрд╣рд▓реЗ рджреЛ рдШрдЯрдХ рдХреЗрд╡рд▓ рд╕реНрдЯреНрд░рд┐рдВрдЧ рд╕рд┐рдВрдЯреИрдХреНрд╕ рдХреЛ рдкрдврд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдореМрдЬреВрдж рд╣реИрдВред FormatJS рдХреЗ intl-messageformat рдореЗрдВ (рдЬреЛ react-intl рдФрд░ next-intl рдХрд╛ рдЖрдзрд╛рд░ рд╣реИ) рдЗрд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рд▓рдЧрднрдЧ 10 KB рд╕рдВрдкреАрдбрд╝рд┐рдд рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛрдб рдЬреЛ рдЖрдкрдХреЗ рдЕрдкрдиреЗ рд╕рдВрджреЗрд╢ рд▓реЛрдб рд╣реЛрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рд╣рд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рднреЗрдЬрд╛ рдЬрд╛рддрд╛ рд╣реИред

    рдЕрдзрд┐рдХрд╛рдВрд╢ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдЗрд╕рдХреЗ рдПрдХ рдЫреЛрдЯреЗ рд╕реЗ рд╣рд┐рд╕реНрд╕реЗ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ: {name} рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди рдФрд░ рдХреБрдЫ plural рдмреНрд▓реЙрдХред рдлрд┐рд░ рднреА рд╡реЗ рд╕реНрдХреЗрд▓реЗрдЯрди, рдХреНрд░рдорд┐рдХ рд╕рдВрдЦреНрдпрд╛рдУрдВ рдФрд░ рдСрдлрд╝рд╕реЗрдЯ рдХреЗ рдкреВрд░реЗ рдкрд╛рд░реНрд╕рд░ рдХреЛ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рддреЗ рд╣реИрдВ, рдХреНрдпреЛрдВрдХрд┐ рд░рдирдЯрд╛рдЗрдо рдкрд░ рдкрд╛рд░реНрд╕ рдХреА рдЧрдИ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдмрдВрдбрд▓рд░ рдХреЛ рдпрд╣ рдирд╣реАрдВ рдмрддрд╛ рд╕рдХрддреА рдХрд┐ рдХреНрдпрд╛ рд╣рдЯрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

    next-intl рдХреЛ рднреА рдЗрд╕реА рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░рдирд╛ рдкрдбрд╝рд╛

    рдпрд╣ рдХреЗрд╡рд▓ рд╕реИрджреНрдзрд╛рдВрддрд┐рдХ рдЪрд┐рдВрддрд╛ рдирд╣реАрдВ рд╣реИред next-intl, рдЬреЛ рд╕рдмрд╕реЗ рд▓реЛрдХрдкреНрд░рд┐рдп ICU-рдЖрдзрд╛рд░рд┐рдд рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рд╣реИ, рдЗрд╕реА рдирд┐рд╖реНрдХрд░реНрд╖ рдкрд░ рдкрд╣реБрдБрдЪрд╛ред рд╕рдВрд╕реНрдХрд░рдг 4.8 (рдЬрдирд╡рд░реА 2026) рдореЗрдВ рдЗрд╕рдиреЗ рдПрдХ рдкреНрд░рд╛рдпреЛрдЧрд┐рдХ precompile рд╡рд┐рдХрд▓реНрдк рдЬреЛрдбрд╝рд╛ рдЬреЛ рдмрд┐рд▓реНрдб рд╕рдордп рдкрд░ ICU рд╕рдВрджреЗрд╢реЛрдВ рдХреЛ рдПрдХ рдХреЙрдореНрдкреИрдХреНрдЯ AST рдореЗрдВ рдкрд╛рд░реНрд╕ рдХрд░рддрд╛ рд╣реИ рдФрд░ рд░рдирдЯрд╛рдЗрдо рдкрд╛рд░реНрд╕рд░ рдХреЛ рдПрдХ рдЫреЛрдЯреЗ рдореВрд▓реНрдпрд╛рдВрдХрдирдХрд░реНрддрд╛ рд╕реЗ рдмрджрд▓ рджреЗрддрд╛ рд╣реИред рдЗрд╕ рд╡рд┐рдХрд▓реНрдк рдХреЛ рдЪрд╛рд▓реВ рдХрд░рдиреЗ рдкрд░ рд▓рдЧрднрдЧ 9 KB рд╕рдВрдкреАрдбрд╝рд┐рдд рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрдо рд╣реЛрдиреЗ рдХреА рдЬрд╛рдирдХрд╛рд░реА рджреА рдЧрдИ рд╣реИред

    рд▓реЗрдХрд┐рди рдпрд╣ рд╕рдордЭреМрддрд╛ рдЗрд╕ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреА рд╕реАрдорд╛рдУрдВ рдХреЛ рднреА рдЙрдЬрд╛рдЧрд░ рдХрд░рддрд╛ рд╣реИ: рдкреНрд░реАрдХрдВрдкрд╛рдЗрд▓реЗрд╢рди рдХреЗ рд╕рд╛рде t.raw рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛, рдХреНрдпреЛрдВрдХрд┐ рдХрдЪреНрдЪреА ICU рд╕реНрдЯреНрд░рд┐рдВрдЧ рд░рдирдЯрд╛рдЗрдо рдкрд░ рдореМрдЬреВрдж рдирд╣реАрдВ рд░рд╣рддреАред рдЬреИрд╕реЗ рд╣реА рдЖрдк рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ рдкрд╛рд░реНрд╕ рдХрд░рдирд╛ рдмрдВрдж рдХрд░рддреЗ рд╣реИрдВ, рдЖрдк рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ ICU рд╡рд┐рддрд░рд┐рдд рдирд╣реАрдВ рдХрд░ рд░рд╣реЗ рд╣реЛрддреЗред рдЖрдк рдЗрд╕рдХрд╛ рд╕рдВрдХрд▓рд┐рдд рд░реВрдк рднреЗрдЬ рд░рд╣реЗ рд╣реЛрддреЗ рд╣реИрдВ, рдФрд░ рд╕реНрдЯреНрд░рд┐рдВрдЧ рд╕рд┐рдВрдЯреИрдХреНрд╕ рдХреЗрд╡рд▓ рд▓рд┐рдЦрдиреЗ рдХрд╛ рдорд╛рдзреНрдпрдо рдмрдирдХрд░ рд░рд╣ рдЬрд╛рддрд╛ рд╣реИред

    рдЙрд╕ рдмрд┐рдВрджреБ рдкрд░ рдпрд╣ рдкреНрд░рд╢реНрди рд╕реНрд╡рд╛рднрд╛рд╡рд┐рдХ рд╣реИ: рдпрджрд┐ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХрднреА рдЙрд╕ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЛ рд╕реАрдзреЗ рдкрдврд╝рддрд╛ рд╣реА рдирд╣реАрдВ рд╣реИ, рддреЛ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдФрд░ рдЕрдиреБрд╡рд╛рджрдХреЛрдВ рдХреЛ рдЗрд╕реЗ рдЗрд╕ рдЬрдЯрд┐рд▓ рд░реВрдк рдореЗрдВ рдХреНрдпреЛрдВ рд▓рд┐рдЦрдирд╛ рдЪрд╛рд╣рд┐рдП?

    рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ-рдиреЗрдЯрд┐рд╡ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреИрд╕рд╛ рджрд┐рдЦрддрд╛ рд╣реИ

    рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕рдмрд╕реЗ рдЬрдЯрд┐рд▓ рд╣рд┐рд╕реНрд╕реЗ рдХреЛ рдкрд╣рд▓реЗ рд╣реА рдореВрд▓ рд░реВрдк рд╕реЗ рд╣рд▓ рдХрд░ рдЪреБрдХрд╛ рд╣реИред Intl.PluralRules рдЬрд╛рдирддрд╛ рд╣реИ рдХрд┐ рдкреЛрд▓рд┐рд╢ рдореЗрдВ рдЪрд╛рд░ рдмрд╣реБрд╡рдЪрди рд╢реНрд░реЗрдгрд┐рдпрд╛рдБ рд╣реИрдВ рдФрд░ рдЕрдВрдЧреНрд░реЗрдЬреА рдореЗрдВ рдЪрд╛рд░ рдХреНрд░рдорд┐рдХ рд╢реНрд░реЗрдгрд┐рдпрд╛рдБ рд╣реИрдВред Intl.NumberFormat рдФрд░ Intl.DateTimeFormat рдореБрджреНрд░рд╛рдУрдВ, рдЗрдХрд╛рдЗрдпреЛрдВ, рд╕рдВрдХреНрд╖рд┐рдкреНрдд рдиреЛрдЯреЗрд╢рди рдФрд░ рдХреИрд▓реЗрдВрдбрд░ рдХреЛ рд╕рдВрднрд╛рд▓рддреЗ рд╣реИрдВред рд╢реЗрд╖ рдХрд╛рдо рдХреЗрд╡рд▓ рдПрдХ рд╢рд╛рдЦрд╛ рдЪреБрдирдирд╛ рдФрд░ рдорд╛рди рдбрд╛рд▓рдирд╛ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рд╕рдВрд░рдЪрдирд╛ рдХреЗ рдбреЗрдЯрд╛ рд╣реЛрдиреЗ рдкрд░ рдХреЛрдб рдХреА рдХреБрдЫ рд╣реА рдкрдВрдХреНрддрд┐рдпрд╛рдБ рд▓рдЧрддреА рд╣реИрдВред

    рдпрд╣реА рдореЙрдбрд▓ Intlayer рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред рдмреНрд░рд╛рдВрдЪрд┐рдВрдЧ рдПрдХ рдЯрд╛рдЗрдк рдХрд┐рдП рдЧрдП рд╕рд╛рдордЧреНрд░реА рдШреЛрд╖рдгрд╛ рдореЗрдВ рдПрдХ рдлрд╝рдВрдХреНрд╢рди рд╣реИ, рдФрд░ рдкреНрд░рддреНрдпреЗрдХ рд▓реЛрдХреЗрд▓ рдХреЗрд╡рд▓ рдЙрдиреНрд╣реАрдВ рд╢реНрд░реЗрдгрд┐рдпреЛрдВ рдХреЛ рдШреЛрд╖рд┐рдд рдХрд░рддрд╛ рд╣реИ рдЬрд┐рдирдХреА рдЙрд╕рдХреЗ рд╡реНрдпрд╛рдХрд░рдг рдХреЛ рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ:

    **/*.content.ts
    import { gender, plural, t, type Dictionary } from "intlayer";
    
    const inboxContent = {
      key: "inbox",
      content: {
        unread: t({
          hi: plural({
            one: "{{count}} рдмрд┐рдирд╛ рдкрдврд╝рд╛ рд╕рдВрджреЗрд╢",
            other: "{{count}} рдмрд┐рдирд╛ рдкрдврд╝реЗ рд╕рдВрджреЗрд╢",
          }),
          en: plural({
            one: "{{count}} unread message",
            other: "{{count}} unread messages",
          }),
          pl: plural({
            one: "{{count}} nieprzeczytana wiadomo┼Ы─З",
            few: "{{count}} nieprzeczytane wiadomo┼Ыci",
            many: "{{count}} nieprzeczytanych wiadomo┼Ыci",
            other: "{{count}} nieprzeczytanej wiadomo┼Ыci",
          }),
        }),
      },
    } satisfies Dictionary;
    
    export default inboxContent;
    
    **/*.tsx
    const { unread } = useIntlayer("inbox");
    
    unread(5); // рдкреЛрд▓рд┐рд╢ рд▓реЛрдХреЗрд▓ тЖТ "5 nieprzeczytanych wiadomo┼Ыci"
    

    ICU рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдореБрдЦреНрдп рдЕрдВрддрд░:

    • рдмрдВрдбрд▓ рдореЗрдВ рдХреЛрдИ рдкрд╛рд░реНрд╕рд░ рдирд╣реАрдВред рдмреНрд░рд╛рдЙрдЬрд╝рд░ рддрдХ рдкрд╣реБрдБрдЪрдиреЗ рдкрд░ рд╕рдВрд░рдЪрдирд╛ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдПрдХ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдСрдмреНрдЬреЗрдХреНрдЯ рд╣реЛрддреА рд╣реИред plural рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ рдореМрдЬреВрдж Intl.PluralRules рдХреА рд╕рд╣рд╛рдпрддрд╛ рд╕реЗ рдХреБрдВрдЬреА рдЪреБрдирддрд╛ рд╣реИред
    • рдмрд┐рд▓реНрдб рд╕рдордп рдкрд░ рддреНрд░реБрдЯрд┐ рдкрд╣рдЪрд╛рдиред рдЫреВрдЯреА рд╣реБрдИ рд╢рд╛рдЦрд╛ рдпрд╛ рдЧрд▓рдд рд╕реНрдкреЗрд▓рд┐рдВрдЧ рд╡рд╛рд▓реА рдХреБрдВрдЬреА TypeScript рдЯрд╛рдЗрдк рддреНрд░реБрдЯрд┐ рдмрди рдЬрд╛рддреА рд╣реИ, рдЬрд┐рд╕рд╕реЗ рдкреНрд░реЛрдбрдХреНрд╢рди рдореЗрдВ рд╣реЛрдиреЗ рд╡рд╛рд▓реА рд╡рд┐рдлрд▓рддрд╛рдПрдВ рд░реБрдХрддреА рд╣реИрдВред
    • рд╕реНрд╡рд░реВрдкрдг рд╕рдВрджреЗрд╢ рд╕реЗ рдмрд╛рд╣рд░ рд░рд╣рддрд╛ рд╣реИред рд╕рдВрдЦреНрдпрд╛рдПрдБ, рддрд╛рд░реАрдЦреЗрдВ рдФрд░ рдореБрджреНрд░рд╛рдПрдБ рдлреЙрд░реНрдореЗрдЯрд░ рд╣реБрдХ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕рдВрд╕рд╛рдзрд┐рдд рд╣реЛрддреА рд╣реИрдВ рдЬреЛ рд╕реАрдзреЗ Intl рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рдЬрд┐рд╕рд╕реЗ рд╕реНрдХреЗрд▓реЗрдЯрди рдкрд╛рд░реНрд╕рд░ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд░рд╣рддреАред
    • рдЕрдкреНрд░рдпреБрдХреНрдд рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХреА рдХреЛрдИ рд▓рд╛рдЧрдд рдирд╣реАрдВред рдпрджрд┐ рдХреЛрдИ рд╕рдВрджреЗрд╢ gender рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рддреЛ рдмрдВрдбрд▓рд░ рдЗрд╕реЗ tree-shaking рджреНрд╡рд╛рд░рд╛ рд╣рдЯрд╛ рджреЗрддрд╛ рд╣реИред

    • рдлреЙрд░реНрдореЗрдЯрд░ рд╣реБрдХ

    рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдЗрд╕рдХреЗ рдЕрдкрдиреЗ рдкрд╣рд▓реВ рд╣реИрдВ: рдПрдХ рдмрд┐рд▓реНрдб рдЪрд░рдг рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рд╕рд╛рдордЧреНрд░реА рдлрд╝рд╛рдЗрд▓реЗрдВ рд╕рд╛рджреЗ рдкрд╛рда рдХреЗ рдмрдЬрд╛рдп рдХреЛрдб рд╣реЛрддреА рд╣реИрдВ, рдФрд░ рдХреБрдЫ рдЯреАрдПрдордПрд╕ рдЙрдкрдХрд░рдг рдЬреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЖрдИрд╕реАрдпреВ рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕ рдкрд░ рдирд┐рд░реНрднрд░ рд╣реИрдВ, рд╕реАрдзреЗ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдШреЛрд╖рдгрд╛ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдирд╣реАрдВ рдкрдврд╝ рдкрд╛рддреЗ рд╣реИрдВред

    рдЬрдм ICU рдЕрднреА рднреА рд╕рд╣реА рд╡рд┐рдХрд▓реНрдк рд╣реИ

    ICU рдЗрди рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдореЗрдВ рдмреЗрд╣рддрд░ рд╡рд┐рдХрд▓реНрдк рдмрдирд╛ рд╣реБрдЖ рд╣реИ:

    • рдЖрдкрдХреА рдЕрдиреБрд╡рд╛рдж рдкрд╛рдЗрдкрд▓рд╛рдЗрди рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЗрд╕ рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╣реИред рдХрдИ TMS рдЙрдкрдХрд░рдг ICU рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕ рдХрд╛ рдЖрдпрд╛рдд рдФрд░ рдирд┐рд░реНрдпрд╛рдд рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рдЕрдиреБрд╡рд╛рджрдХ рдЗрд╕ рд╕рд┐рдВрдЯреИрдХреНрд╕ рдореЗрдВ рдкреНрд░рд╢рд┐рдХреНрд╖рд┐рдд рд╣реЛрддреЗ рд╣реИрдВред
    • рд╕рдВрджреЗрд╢ рдХрдИ рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдореЛрдВ рдкрд░ рд╕рд╛рдЭрд╛ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред рдПрдХ рд╣реА рдХреИрдЯрд▓реЙрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ iOS рдРрдк, Android рдРрдк рдФрд░ рд╡реЗрдм рдРрдк рдХреЗ рд▓рд┐рдП рдХрд░рдирд╛ рдПрдХ рдорд╛рдирдХ рдкреНрд░рд╛рд░реВрдк рдмрдирд╛рдП рд░рдЦрдиреЗ рдХрд╛ рдПрдХ рдареЛрд╕ рдХрд╛рд░рдг рд╣реИред
    • рдЖрдкрдХреЗ рдкрд╛рд╕ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА ICU рд╕рдВрджреЗрд╢реЛрдВ рдХрд╛ рдПрдХ рд╡рд┐рд╢рд╛рд▓ рд╕рдВрдЧреНрд░рд╣ рд╣реИред рд╣рдЬрд╝рд╛рд░реЛрдВ рд╕рдВрджреЗрд╢реЛрдВ рдХреЛ рджреЛрдмрд╛рд░рд╛ рд▓рд┐рдЦрдирд╛ рдЕрдХреЗрд▓реЗ рд╢рд╛рдпрдж рд╣реА рдХрднреА рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рд╣реЛрддрд╛ рд╣реИред

    рдЕрдВрддрд┐рдо рдорд╛рдорд▓реЗ рдореЗрдВ, рдЖрдкрдХреЛ рдкреВрд░реЗ рдХреЛрдб рдХреЛ рджреЛрдмрд╛рд░рд╛ рд▓рд┐рдЦрдиреЗ рдпрд╛ рднрд╛рд░реА рдкрд╛рд░реНрд╕рд░ рдмрдирд╛рдП рд░рдЦрдиреЗ рдХреЗ рдмреАрдЪ рдЪрдпрди рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред Intlayer рдХрд╛ react-intl рдХрдореНрдкреИрдЯрд┐рдмрд┐рд▓рд┐рдЯреА рдПрдбреЗрдкреНрдЯрд░ рдореМрдЬреВрджрд╛ ICU рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕ (plural, select, selectordinal, #, рдкрд╛рд░рдВрдкрд░рд┐рдХ number / date / time) рдХреЛ рдкрдврд╝ рд╕рдХрддрд╛ рд╣реИ, рдЬрд┐рд╕рд╕реЗ рдЖрдк рдзреАрд░реЗ-рдзреАрд░реЗ рдорд╛рдЗрдЧреНрд░реЗрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ ICU рдХреА рд▓рд╛рдЧрдд рдХреЗрд╡рд▓ рд╡рд╣реАрдВ рддрдХ рд╕реАрдорд┐рдд рд░рдЦ рд╕рдХрддреЗ рд╣реИрдВ рдЬрд╣рд╛рдБ рдкреБрд░рд╛рдиреЗ рд╕рдВрджреЗрд╢реЛрдВ рдХреЛ рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред

    рдирд┐рд╖реНрдХрд░реНрд╖

    ICU MessageFormat рдиреЗ рдПрдХ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд┐рдпрд╛: рд╡реНрдпрд╛рдХрд░рдг рдЕрдиреБрд╡рд╛рджрдХреЛрдВ рдХрд╛ рдХрд╛рдо рд╣реИ, рди рдХрд┐ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛрдб рдореЗрдВ if (count === 1) рдЬреИрд╕реА рд╢рд░реНрддреЛрдВ рдХрд╛ред рдЗрд╕рдиреЗ рдЙрди рдкрд░рд┐рд╡реЗрд╢реЛрдВ рдХреЗ рд▓рд┐рдП рдЗрд╕реЗ рдкреВрд░реА рддрд░рд╣ рд╣рд▓ рдХрд┐рдпрд╛ рдЬрд╣рд╛рдБ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдЖрдзрд╛рд░рд┐рдд DSL рдХреЛ рдкрд╛рд░реНрд╕ рдХрд░рдиреЗ рдореЗрдВ рдХреЛрдИ рдЕрддрд┐рд░рд┐рдХреНрдд рд▓рд╛рдЧрдд рдирд╣реАрдВ рдЖрддреА рдереАред рд▓реЗрдХрд┐рди рд╡реЗрдм рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ рдкреВрд░реНрдг рд╕рдВрдЧрддрддрд╛ рдХрд╛ рдЕрд░реНрде рд╣реИ рдРрд╕реЗ рдкрд╛рд░реНрд╕рд░ рдХреЛрдб рдХреЛ рднреЗрдЬрдирд╛ рдЬрд┐рд╕рдХреА рдЕрдзрд┐рдХрд╛рдВрд╢ рдРрдкреНрд╕ рдХреЛ рдХрднреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реЛрддреА, рдФрд░ рдЕрдм ICU-рдЖрдзрд╛рд░рд┐рдд рд▓рд╛рдЗрдмреНрд░реЗрд░реА рднреА рдЗрд╕рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдкрдиреЗ рд╕рдВрджреЗрд╢реЛрдВ рдХреЛ рдкрд╣рд▓реЗ рд╕реЗ рд╕рдВрдХрд▓рд┐рдд рдХрд░ рд░рд╣реА рд╣реИрдВред

    рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА Intl рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ CLDR рдирд┐рдпрдо рдореМрдЬреВрдж рд╣реИрдВред рдЖрдзреБрдирд┐рдХ i18n рдкреНрд░рд╛рд░реВрдк рд╕реЗ рдЬреЛ рдЕрдкреЗрдХреНрд╖рд┐рдд рд╣реИ рд╡рд╣ рдХреЗрд╡рд▓ рдмреНрд░рд╛рдВрдЪрд┐рдВрдЧ рд╕рдВрд░рдЪрдирд╛ рд╣реИ, рдФрд░ рдЙрд╕реЗ рдЯрд╛рдЗрдк рдХрд┐рдП рдЧрдП рдбреЗрдЯрд╛ рдХреЗ рд░реВрдк рдореЗрдВ рдмрд╣реБрдд рд╕рд░рд▓рддрд╛ рдФрд░ рдХреБрд╢рд▓рддрд╛ рд╕реЗ рд╡реНрдпрдХреНрдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

    рдЖрдЧреЗ рдкрдврд╝реЗрдВ

    рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

    рдЕрднреА рддрдХ рдХреЛрдИ рдЯрд┐рдкреНрдкрдгреА рдирд╣реАрдВред рдЕрдкрдиреЗ рд╡рд┐рдЪрд╛рд░ рд╕рд╛рдЭрд╛ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдкрд╣рд▓реЗ рд╡реНрдпрдХреНрддрд┐ рдмрдиреЗрдВред

    рд╕рдВрдмрдВрдзрд┐рдд рдкреЛрд╕реНрдЯ

    рдирд╡реАрдирддрдо рдкреЛрд╕реНрдЯ