{"id":417358,"date":"2024-06-30T01:31:12","date_gmt":"2024-06-30T01:31:12","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=417358"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=417358","title":{"rendered":"<span>JavaScript: \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u043e\u0431 \u0438\u043d\u0442\u0435\u0440\u043d\u0430\u0446\u0438\u043e\u043d\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0438 \u043b\u043e\u043a\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0432\u0435\u0431-\u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439<\/span>"},"content":{"rendered":"<div><!--[--><!--]--><\/div>\n<div id=\"post-content-body\">\n<div>\n<div class=\"article-formatted-body article-formatted-body article-formatted-body_version-1\">\n<div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/webt\/wn\/z2\/sg\/wnz2sghmffrl2zkuqtbm5w210ve.jpeg\" data-src=\"https:\/\/habrastorage.org\/webt\/wn\/z2\/sg\/wnz2sghmffrl2zkuqtbm5w210ve.jpeg\" data-blurred=\"true\"\/>  <\/p>\n<p>  \u041f\u0440\u0438\u0432\u0435\u0442, \u0434\u0440\u0443\u0437\u044c\u044f!<\/p>\n<p>  <\/p>\n<p>\u0412 \u0434\u0430\u043d\u043d\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u044f \u0445\u043e\u0447\u0443 \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u0430\u0442\u044c \u0432\u0430\u043c \u043e\u0431 <a href=\"https:\/\/tc39.es\/ecma402\/\"><code>Internationalization API<\/code><\/a> \u2014 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0435, \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u043c\u043e\u043c \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u043e\u043c, \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u044e\u0449\u0435\u043c \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0442\u044c \u0438\u043d\u0442\u0435\u0440\u043d\u0430\u0446\u0438\u043e\u043d\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044e \u0438 \u043b\u043e\u043a\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044e \u0432\u0435\u0431-\u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439.<\/p>\n<p>  <\/p>\n<p>\u0421\u0442\u0430\u0442\u044c\u044f \u0441\u043e\u0441\u0442\u043e\u0438\u0442 \u0438\u0437 2 \u0447\u0430\u0441\u0442\u0435\u0439: \u0442\u0435\u043e\u0440\u0435\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u0438 \u043f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0439. \u0412 \u0442\u0435\u043e\u0440\u0435\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u0447\u0430\u0441\u0442\u0438 \u043c\u044b \u043a\u0440\u0430\u0442\u043a\u043e \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438, \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u043c\u044b\u0435 <code>Internationalization API<\/code>. \u0412 \u043f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u2014 \u0441\u043e\u0437\u0434\u0430\u0434\u0438\u043c \u043f\u0440\u0438\u043c\u0435\u0440 \u043b\u043e\u043a\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d\u043d\u043e\u0433\u043e \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e <a href=\"https:\/\/www.npmjs.com\/package\/easy-intl\">\u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0430\u043d\u043d\u043e\u0439 \u043c\u043d\u043e\u0439 \u0443\u0442\u0438\u043b\u0438\u0442\u044b<\/a>.<\/p>\n<p><a name=\"habracut\"><\/a>  <\/p>\n<h2 id=\"teoriya\">\u0422\u0435\u043e\u0440\u0438\u044f<\/h2>\n<p>  <\/p>\n<p><code>Internationalization API<\/code> \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438:<\/p>\n<p>  <\/p>\n<ul>\n<li>\u043b\u043e\u043a\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d\u043d\u043e\u0435 (\u0434\u0430\u043b\u0435\u0435 \u043f\u0440\u0435\u0434\u043f\u043e\u043b\u0430\u0433\u0430\u0435\u0442\u0441\u044f) \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u0435 \u0441\u0442\u0440\u043e\u043a<\/li>\n<li>\u0444\u043e\u0440\u043c\u0430\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0447\u0438\u0441\u0435\u043b, \u0432\u043a\u043b\u044e\u0447\u0430\u044f \u0432\u0430\u043b\u044e\u0442\u0443, \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0435 \u0435\u0434\u0438\u043d\u0438\u0446\u044b \u0438\u0437\u043c\u0435\u0440\u0435\u043d\u0438\u044f \u0438 \u043f\u0440\u043e\u0446\u0435\u043d\u0442\u044b<\/li>\n<li>\u0444\u043e\u0440\u043c\u0430\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0434\u0430\u0442\u044b \u0438 \u0432\u0440\u0435\u043c\u0435\u043d\u0438, \u0432\u043a\u043b\u044e\u0447\u0430\u044f \u043e\u0442\u043d\u043e\u0441\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u043f\u0435\u0440\u0438\u043e\u0434\u044b, \u0442\u0430\u043a\u0438\u0435 \u043a\u0430\u043a \u0437\u0430\u0432\u0442\u0440\u0430, \u0432\u0447\u0435\u0440\u0430, \u0447\u0435\u0440\u0435\u0437 \u043d\u0435\u0434\u0435\u043b\u044e \u0438 \u0442.\u0434.<\/li>\n<li>\u0444\u043e\u0440\u043c\u0430\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0439 \u044f\u0437\u044b\u043a\u043e\u0432, \u0440\u0435\u0433\u0438\u043e\u043d\u043e\u0432, \u0441\u043a\u0440\u0438\u043f\u0442\u043e\u0432 \u0438 \u0432\u0430\u043b\u044e\u0442<\/li>\n<li>\u0444\u043e\u0440\u043c\u0430\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0441\u043f\u0438\u0441\u043a\u043e\u0432 \u0441 \u0441\u043e\u0435\u0434\u0438\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u043c \u0441\u043e\u044e\u0437\u043e\u043c <code>\u0418<\/code> \u0438\u043b\u0438 \u0440\u0430\u0437\u0434\u0435\u043b\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u043c \u0441\u043e\u044e\u0437\u043e\u043c <code>\u0418\u041b\u0418<\/code><\/li>\n<li>&#171;\u043f\u043b\u044e\u0440\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f&#187; \u2014 \u043f\u0435\u0440\u0435\u0432\u043e\u0434 \u0432\u043e \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0435 \u0447\u0438\u0441\u043b\u043e<\/li>\n<li>\u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430<\/li>\n<\/ul>\n<p>  <\/p>\n<p>\u0412 \u043d\u0430\u0441\u0442\u043e\u044f\u0449\u0435\u0435 \u0432\u0440\u0435\u043c\u044f <code>Internationalization API<\/code> <a href=\"https:\/\/caniuse.com\/internationalization\">\u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u0432\u0441\u0435\u043c\u0438 \u0441\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u043c\u0438 \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u0430\u043c\u0438<\/a>.<\/p>\n<p>  <\/p>\n<p>\u041d\u0435\u0441\u043c\u043e\u0442\u0440\u044f \u043d\u0430 \u0442\u043e, \u0447\u0442\u043e \u0432 <code>JavaScript<\/code> \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0442 \u0442\u0430\u043a\u0438\u0435 \u043c\u0435\u0442\u043e\u0434\u044b \u0434\u043b\u044f \u043b\u043e\u043a\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u043a\u0430\u043a:<\/p>\n<p>  <\/p>\n<ul>\n<li><a href=\"https:\/\/developer.mozilla.org\/en-US\/docs\/Web\/JavaScript\/Reference\/Global_Objects\/Array\/toLocaleString\"><code>Array.toLocaleString()<\/code><\/a><\/li>\n<li><a href=\"https:\/\/developer.mozilla.org\/en-US\/docs\/Web\/JavaScript\/Reference\/Global_Objects\/String\/localeCompare\"><code>String.localeCompare()<\/code><\/a>, <a href=\"https:\/\/developer.mozilla.org\/en-US\/docs\/Web\/JavaScript\/Reference\/Global_Objects\/String\/toLocaleLowerCase\"><code>.toLocalLowerCase()<\/code><\/a>, <a href=\"https:\/\/developer.mozilla.org\/en-US\/docs\/Web\/JavaScript\/Reference\/Global_Objects\/String\/toLocaleUpperCase\"><code>.toLocalUpperCase()<\/code><\/a><\/li>\n<li><a href=\"https:\/\/developer.mozilla.org\/en-US\/docs\/Web\/JavaScript\/Reference\/Global_Objects\/Number\/toLocaleString\"><code>Number.toLocaleString()<\/code><\/a><\/li>\n<li><a href=\"https:\/\/developer.mozilla.org\/en-US\/docs\/Web\/JavaScript\/Reference\/Global_Objects\/Date\/toLocaleString\"><code>Date.toLocaleString()<\/code><\/a>, <a href=\"https:\/\/developer.mozilla.org\/en-US\/docs\/Web\/JavaScript\/Reference\/Global_Objects\/Date\/toLocaleDateString\"><code>.toLocaleDateString()<\/code><\/a>, <a href=\"https:\/\/developer.mozilla.org\/en-US\/docs\/Web\/JavaScript\/Reference\/Global_Objects\/Date\/toLocaleTimeString\"><code>.toLocaleTimeString()<\/code><\/a><\/li>\n<\/ul>\n<p>  <\/p>\n<p>\u0438\u0445 \u0437\u0430\u0447\u0430\u0441\u0442\u0443\u044e \u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u043d\u0435\u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e.<\/p>\n<p>  <\/p>\n<p>\u041a\u0440\u043e\u043c\u0435 \u0442\u043e\u0433\u043e, \u043f\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u0434\u0430\u043d\u043d\u044b\u0445 \u043c\u0435\u0442\u043e\u0434\u043e\u0432 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442\u0441\u044f \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u043e\u0439 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0435\u0439 <code>ECMAScript<\/code>, \u0442.\u0435. \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u043e\u043c.<\/p>\n<p>  <\/p>\n<p>\u0424\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b, \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u044b\u0439 \u0432 <code>Internationalization API<\/code>, \u0438\u043d\u043a\u0430\u043f\u0441\u0443\u043b\u0438\u0440\u043e\u0432\u0430\u043d \u0432 \u043e\u0431\u044a\u0435\u043a\u0442\u0435 <a href=\"https:\/\/developer.mozilla.org\/ru\/docs\/Web\/JavaScript\/Reference\/Global_Objects\/Intl\"><code>Intl<\/code><\/a>. \u0414\u0430\u043d\u043d\u044b\u0439 \u043e\u0431\u044a\u0435\u043a\u0442 \u043d\u0435 \u0438\u043c\u0435\u0435\u0442 \u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u0435\u0433\u043e \u043c\u0435\u0442\u043e\u0434\u0430 <code>[[Construct]]<\/code>, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043d\u0435 \u043c\u043e\u0436\u0435\u0442 \u0432\u044b\u0437\u044b\u0432\u0430\u0442\u044c\u0441\u044f \u043a\u0430\u043a \u043a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0442\u043e\u0440 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043a\u043b\u044e\u0447\u0435\u0432\u043e\u0433\u043e \u0441\u043b\u043e\u0432\u0430 <code>new<\/code>. \u041e\u043d \u0442\u0430\u043a\u0436\u0435 \u043d\u0435 \u0438\u043c\u0435\u0435\u0442 \u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u0435\u0433\u043e \u043c\u0435\u0442\u043e\u0434\u0430 <code>[[Call]]<\/code>, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043d\u0435 \u043c\u043e\u0436\u0435\u0442 \u0432\u044b\u0437\u044b\u0432\u0430\u0442\u044c\u0441\u044f \u043a\u0430\u043a \u0444\u0443\u043d\u043a\u0446\u0438\u044f.<\/p>\n<p>  <\/p>\n<p><code>Intl<\/code> \u0432\u043a\u043b\u044e\u0447\u0430\u0435\u0442 \u0432 \u0441\u0435\u0431\u044f \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u044b-\u043a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0442\u043e\u0440\u044b:<\/p>\n<p>  <\/p>\n<ul>\n<li><code>Collator<\/code> \u2014 \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u0435 \u0441\u0442\u0440\u043e\u043a<\/li>\n<li><code>DateTimeFormat<\/code> \u2014 \u0444\u043e\u0440\u043c\u0430\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0434\u0430\u0442\u044b \u0438 \u0432\u0440\u0435\u043c\u0435\u043d\u0438<\/li>\n<li><code>DisplayNames<\/code> \u2014 \u0444\u043e\u0440\u043c\u0430\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0439 \u044f\u0437\u044b\u043a\u043e\u0432, \u0440\u0435\u0433\u0438\u043e\u043d\u043e\u0432 \u0438 \u0442.\u0434. \u043d\u0430 \u0434\u0440\u0443\u0433\u0438\u0445 \u044f\u0437\u044b\u043a\u0430\u0445<\/li>\n<li><code>ListFormat<\/code> \u2014 \u0444\u043e\u0440\u043c\u0430\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0441\u043f\u0438\u0441\u043a\u043e\u0432<\/li>\n<li><code>Locale<\/code> \u2014 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0435 \u043b\u043e\u043a\u0430\u043b\u0438<\/li>\n<li><code>NumberFormat<\/code> \u2014 \u0444\u043e\u0440\u043c\u0430\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0447\u0438\u0441\u0435\u043b<\/li>\n<li><code>PluralRules<\/code> \u2014 \u043f\u043b\u044e\u0440\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f<\/li>\n<li><code>RelativeTimeFormat<\/code> \u2014 \u0444\u043e\u0440\u043c\u0430\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u043e\u0442\u043d\u043e\u0441\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0445 \u043f\u0435\u0440\u0438\u043e\u0434\u043e\u0432 \u0432\u0440\u0435\u043c\u0435\u043d\u0438<\/li>\n<\/ul>\n<p>  <\/p>\n<p>\u0412\u043e\u0437\u043c\u043e\u0436\u043d\u044b\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f:<\/p>\n<p>  <\/p>\n<ul>\n<li><a href=\"https:\/\/github.com\/libyal\/libfwnt\/wiki\/Language-Code-identifiers\">\u0434\u043b\u044f \u044f\u0437\u044b\u043a\u043e\u0432 (\u044f\u0437\u044b\u043a\u043e\u0432 \u0438 \u0441\u0442\u0440\u0430\u043d)<\/a><\/li>\n<li><a href=\"https:\/\/en.wikipedia.org\/wiki\/ISO_4217#Active_codes\">\u0434\u043b\u044f \u0432\u0430\u043b\u044e\u0442<\/a><\/li>\n<li><a href=\"https:\/\/en.wikipedia.org\/wiki\/List_of_tz_database_time_zones#List\">\u0434\u043b\u044f \u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445 \u0437\u043e\u043d<\/a><\/li>\n<li><a href=\"https:\/\/unicode.org\/reports\/tr35\/tr35-general.html#Example_Units\">\u0434\u043b\u044f \u0435\u0434\u0438\u043d\u0438\u0446 \u0438\u0437\u043c\u0435\u0440\u0435\u043d\u0438\u044f \u2014 \u043f\u0440\u0438\u043c\u0435\u0440\u044b<\/a><\/li>\n<\/ul>\n<p>  <\/p>\n<p><em>\u041f\u0440\u0438\u043c\u0435\u0440 \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u044f \u0442\u0435\u043a\u0443\u0449\u0435\u0439 \u0434\u0430\u0442\u044b \u0438 \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u0432 \u0434\u0435\u0444\u043e\u043b\u0442\u043d\u043e\u0439 \u043b\u043e\u043a\u0430\u043b\u0438<\/em><\/p>\n<p>  <\/p>\n<pre><code class=\"javascript\">\/\/ [] \u043e\u0437\u043d\u0430\u0447\u0430\u0435\u0442 \u0442\u0435\u043a\u0443\u0449\u0443\u044e \u043b\u043e\u043a\u0430\u043b\u044c (\u043b\u043e\u043a\u0430\u043b\u044c \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e) const currentDateAndTime = new Intl.DateTimeFormat([], {   dateStyle: 'short',   timeStyle: 'short' }).format()  console.log(currentDateAndTime) \/\/ 03.08.2021, 15:57<\/code><\/pre>\n<p>  <\/p>\n<h3 id=\"a-hrefhttpsdevelopermozillaorgen-usdocswebjavascriptreferenceglobal_objectsintllocalelocalea\"><a href=\"https:\/\/developer.mozilla.org\/en-US\/docs\/Web\/JavaScript\/Reference\/Global_Objects\/Intl\/Locale\"><code>Locale<\/code><\/a><\/h3>\n<p>  <\/p>\n<p>\u041a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0442\u043e\u0440 <code>Locale<\/code> \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0434\u043b\u044f \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u044d\u043a\u0437\u0435\u043c\u043f\u043b\u044f\u0440\u043e\u0432 \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440\u043e\u0432 \u043b\u043e\u043a\u0430\u043b\u0438. \u041f\u0435\u0440\u0432\u044b\u043c \u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u043c \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u043e\u043c, \u043f\u0435\u0440\u0435\u0434\u0430\u0432\u0430\u0435\u043c\u044b\u043c <code>Locale<\/code>, \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043b\u043e\u043a\u0430\u043b\u044c, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u043c\u043e\u0436\u0435\u0442 \u0441\u043e\u0441\u0442\u043e\u044f\u0442\u044c \u0438\u0437 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0433\u043e:<\/p>\n<p>  <\/p>\n<ul>\n<li>\u043a\u043e\u0434 \u044f\u0437\u044b\u043a\u0430<\/li>\n<li>\u043a\u043e\u0434 \u0434\u0438\u0430\u043b\u0435\u043a\u0442\u0430<\/li>\n<li>\u043a\u043e\u0434 \u0440\u0435\u0433\u0438\u043e\u043d\u0430 \u0438\u043b\u0438 \u0441\u0442\u0440\u0430\u043d\u044b<\/li>\n<li>\u043e\u0434\u0438\u043d \u0438\u043b\u0438 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0443\u043d\u0438\u043a\u0430\u043b\u044c\u043d\u044b\u0445 \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u043d\u044b\u0445 \u043f\u043e\u0434\u0442\u0435\u0433\u043e\u0432 (subtags)<\/li>\n<li>\u043e\u0434\u043d\u0430 \u0438\u043b\u0438 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0435\u0439 \u0438\u0437 \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u044f <code>BCP 47<\/code><\/li>\n<li>\u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u0438\u0437 \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u044f \u0434\u043b\u044f \u0447\u0430\u0441\u0442\u043d\u043e\u0433\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f<\/li>\n<\/ul>\n<p>  <\/p>\n<p>\u0412 \u0431\u043e\u043b\u044c\u0448\u0438\u043d\u0441\u0442\u0432\u0435 \u0441\u043b\u0443\u0447\u0430\u0435\u0432 \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0443\u043a\u0430\u0437\u0430\u0442\u044c \u043a\u043e\u0434 \u044f\u0437\u044b\u043a\u0430 \u0438\u043b\u0438 \u043a\u043e\u0434 \u044f\u0437\u044b\u043a\u0430 \u0438 \u043a\u043e\u0434 \u0441\u0442\u0440\u0430\u043d\u044b \u0447\u0435\u0440\u0435\u0437 \u0434\u0435\u0444\u0438\u0441:<\/p>\n<p>  <\/p>\n<pre><code class=\"javascript\">const ru = new Intl.Locale('ru-RU')<\/code><\/pre>\n<p>  <\/p>\n<p>\u0412\u0442\u043e\u0440\u044b\u043c \u043e\u043f\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u044b\u043c \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u043e\u043c <code>Locale<\/code> \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043e\u0431\u044a\u0435\u043a\u0442 \u0441 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430\u043c\u0438:<\/p>\n<p>  <\/p>\n<pre><code class=\"javascript\">const ru = new Intl.Locale(   'ru',   { region: 'RU', hourCycle: 'h24', calendar: 'gregory' } )<\/code><\/pre>\n<p>  <\/p>\n<p>\u041b\u043e\u043a\u0430\u043b\u044c \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0441\u0442\u0440\u043e\u043a\u043e\u0439 \u0438\u043b\u0438 \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u043c. \u041f\u0443\u0441\u0442\u043e\u0439 \u043c\u0430\u0441\u0441\u0438\u0432 \u043e\u0437\u043d\u0430\u0447\u0430\u0435\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u0442\u0435\u043a\u0443\u0449\u0435\u0439 \u043b\u043e\u043a\u0430\u043b\u0438 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f:<\/p>\n<p>  <\/p>\n<pre><code class=\"javascript\">const now = new Intl.DateTimeFormat([], { timeStyle: 'short' }).format()<\/code><\/pre>\n<p>  <\/p>\n<h3 id=\"a-hrefhttpsdevelopermozillaorgrudocswebjavascriptreferenceglobal_objectsintldatetimeformatdatetimeformata\"><a href=\"https:\/\/developer.mozilla.org\/ru\/docs\/Web\/JavaScript\/Reference\/Global_Objects\/Intl\/DateTimeFormat\"><code>DateTimeFormat<\/code><\/a><\/h3>\n<p>  <\/p>\n<p>\u041a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0442\u043e\u0440 <code>DateTimeFormat<\/code> \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0434\u043b\u044f \u0444\u043e\u0440\u043c\u0430\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0434\u0430\u0442\u044b \u0438 \u0432\u0440\u0435\u043c\u0435\u043d\u0438. \u041e\u043d \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0435\u0442 \u043b\u043e\u043a\u0430\u043b\u044c \u0438 \u043e\u0431\u044a\u0435\u043a\u0442 \u0441 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430\u043c\u0438.<\/p>\n<p>  <\/p>\n<p><em>\u0421\u0438\u0433\u043d\u0430\u0442\u0443\u0440\u0430<\/em><\/p>\n<p>  <\/p>\n<pre><code class=\"javascript\">new Intl.DateTimeFormat(locale: object | string | [], options: object).format(date) \/\/ [] - \u043b\u043e\u043a\u0430\u043b\u044c \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \/\/ date - \u0434\u0430\u0442\u0430, \u0432\u0440\u0435\u043c\u044f \u0438\u043b\u0438 \u0434\u0430\u0442\u0430 \u0438 \u0432\u0440\u0435\u043c\u044f<\/code><\/pre>\n<p>  <\/p>\n<p><em>\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438<\/em><\/p>\n<p>  <\/p>\n<div class=\"scrollable-table\">\n<table>\n<thead>\n<tr>\n<th>\u0421\u0432\u043e\u0439\u0441\u0442\u0432\u043e<\/th>\n<th>\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>timeZone<\/td>\n<td>\u0447\u0430\u0441\u043e\u0432\u043e\u0439 \u043f\u043e\u044f\u0441: <code>UTC<\/code>, <code>America\/New_York<\/code>, <code>Europe\/Paris<\/code> \u0438 \u0442.\u0434.<\/td>\n<\/tr>\n<tr>\n<td>calendar<\/td>\n<td>\u043a\u0430\u043b\u0435\u043d\u0434\u0430\u0440\u044c: <code>chinese<\/code>, <code>gregory<\/code>, <code>hebrew<\/code>, <code>indian<\/code>, <code>islamic<\/code> \u0438 \u0442.\u0434.<\/td>\n<\/tr>\n<tr>\n<td>numberingSystem<\/td>\n<td>\u0441\u0438\u0441\u0442\u0435\u043c\u0430 \u0441\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u044f: <code>arab<\/code>, <code>beng<\/code>, <code>fullwide<\/code>, <code>latin<\/code> \u0438 \u0442.\u0434.<\/td>\n<\/tr>\n<tr>\n<td>localeMatcher<\/td>\n<td>\u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c \u0434\u043b\u044f \u043f\u043e\u0438\u0441\u043a\u0430 \u0441\u043e\u0432\u043f\u0430\u0434\u0435\u043d\u0438\u0439: <code>lookup<\/code>, <code>best fit<\/code><\/td>\n<\/tr>\n<tr>\n<td>formatMatcher<\/td>\n<td>\u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c \u0434\u043b\u044f \u0444\u043e\u0440\u043c\u0430\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f: <code>basic<\/code>, <code>best fit<\/code><\/td>\n<\/tr>\n<tr>\n<td>hour12<\/td>\n<td>\u0435\u0441\u043b\u0438 \u0438\u043c\u0435\u0435\u0442 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 <code>true<\/code>, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f 12-\u0447\u0430\u0441\u043e\u0432\u043e\u0439 \u0444\u043e\u0440\u043c\u0430\u0442<\/td>\n<\/tr>\n<tr>\n<td>hourCycle<\/td>\n<td>\u0447\u0430\u0441\u043e\u0432\u043e\u0439 \u0444\u043e\u0440\u043c\u0430\u0442: <code>h11<\/code>, <code>h12<\/code>, <code>h23<\/code>, <code>h24<\/code><\/td>\n<\/tr>\n<tr>\n<td>dateStyle<\/td>\n<td>\u0441\u0442\u0438\u043b\u044c \u0444\u043e\u0440\u043c\u0430\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0434\u0430\u0442\u044b: <code>full<\/code>, <code>long<\/code>, <code>medium<\/code>, <code>short<\/code><\/td>\n<\/tr>\n<tr>\n<td>weekday<\/td>\n<td>\u0434\u0435\u043d\u044c \u043d\u0435\u0434\u0435\u043b\u0438: <code>long<\/code>, <code>short<\/code>, <code>narrow<\/code><\/td>\n<\/tr>\n<tr>\n<td>day<\/td>\n<td>\u0434\u0435\u043d\u044c \u043c\u0435\u0441\u044f\u0446\u0430: <code>numeric<\/code>, <code>2-digit<\/code><\/td>\n<\/tr>\n<tr>\n<td>month<\/td>\n<td>\u043c\u0435\u0441\u044f\u0446: <code>numeric<\/code>, <code>2-digit<\/code>, <code>long<\/code>, <code>short<\/code>, <code>narrow<\/code><\/td>\n<\/tr>\n<tr>\n<td>year<\/td>\n<td>\u0433\u043e\u0434: <code>numeric<\/code>, <code>2-digit<\/code><\/td>\n<\/tr>\n<tr>\n<td>era<\/td>\n<td>\u044d\u043f\u043e\u0445\u0430: <code>long<\/code>, <code>short<\/code>, <code>narrow<\/code><\/td>\n<\/tr>\n<tr>\n<td>timeStyle<\/td>\n<td>\u0441\u0442\u0438\u043b\u044c \u0444\u043e\u0440\u043c\u0430\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0432\u0440\u0435\u043c\u0435\u043d\u0438: <code>full<\/code>, <code>long<\/code>, <code>medium<\/code>, <code>short<\/code><\/td>\n<\/tr>\n<tr>\n<td>hour<\/td>\n<td>\u0447\u0430\u0441\u044b: <code>numeric<\/code>, <code>2-digit<\/code><\/td>\n<\/tr>\n<tr>\n<td>minute<\/td>\n<td>\u043c\u0438\u043d\u0443\u0442\u044b: <code>numeric<\/code>, <code>2-digit<\/code><\/td>\n<\/tr>\n<tr>\n<td>second<\/td>\n<td>\u0441\u0435\u043a\u0443\u043d\u0434\u044b: <code>numeric<\/code>, <code>2-digit<\/code><\/td>\n<\/tr>\n<tr>\n<td>dayPeriod<\/td>\n<td>\u0447\u0430\u0441\u0442\u044c \u0434\u043d\u044f (\u0443\u0442\u0440\u043e, \u0432\u0435\u0447\u0435\u0440 \u0438 \u0442.\u043f.): <code>narrow<\/code>, <code>short<\/code>, <code>long<\/code><\/td>\n<\/tr>\n<tr>\n<td>timeZoneName<\/td>\n<td>\u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u0447\u0430\u0441\u043e\u0432\u043e\u0433\u043e \u043f\u043e\u044f\u0441\u0430 (UTC, PTC): <code>long<\/code>, <code>short<\/code><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<p>  <\/p>\n<p>\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 <code>localeMatcher<\/code> \u0438 <code>formatMatcher<\/code> \u043c\u043e\u0433\u0443\u0442 \u043f\u0435\u0440\u0435\u0434\u0430\u0432\u0430\u0442\u044c\u0441\u044f \u043b\u044e\u0431\u043e\u043c\u0443 \u043a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0442\u043e\u0440\u0443, \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u043c\u043e\u043c\u0443 <code>Intl<\/code>, \u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442\u0441\u044f \u0440\u0435\u0434\u043a\u043e.<\/p>\n<p>  <\/p>\n<p>\u041f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e <code>new Intl.DateTimeFormat().format()<\/code> \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u0442\u0435\u043a\u0443\u0449\u0443\u044e \u0434\u0430\u0442\u0443 \u0432 \u043a\u0440\u0430\u0442\u043a\u043e\u043c \u0432\u0438\u0434\u0435 (<code>dateStyle: short<\/code>).<\/p>\n<p>  <\/p>\n<p><em>\u041f\u0440\u0438\u043c\u0435\u0440\u044b<\/em><\/p>\n<p>  <\/p>\n<pre><code class=\"javascript\">const formatDateTime = ({ locale = [], date = Date.now(), ...options } = {}) =>   new Intl.DateTimeFormat(locale, options).format(date)  console.log(   '\\n',   \/\/ \u0440\u0443\u0441\u0441\u043a\u0438\u0439   formatDateTime(), \/\/ 17.08.2021   '\\n',   \/\/ \u0430\u043c\u0435\u0440\u0438\u043a\u0430\u043d\u0441\u043a\u0438\u0439 \u0430\u043d\u0433\u043b\u0438\u0439\u0441\u043a\u0438\u0439   formatDateTime({ locale: 'en-US', dateStyle: 'short', timeStyle: 'short' }), \/\/ 8\/17\/21, 3:56 PM,   '\\n',   \/\/ \u0431\u0440\u0438\u0442\u0430\u043d\u0441\u043a\u0438\u0439 \u0430\u043d\u0433\u043b\u0438\u0439\u0441\u043a\u0438\u0439   formatDateTime({ locale: 'en-GB', dateStyle: 'long', timeStyle: 'short' }), \/\/ 17 August 2021 at 15:57   '\\n',   \/\/ \u044f\u043f\u043e\u043d\u0441\u043a\u0438\u0439   formatDateTime({ locale: 'ja-JP', dateStyle: 'short' }), \/\/ 2021\/08\/17   '\\n',   \/\/ \u0438\u0441\u043f\u0430\u043d\u0441\u043a\u0438\u0439   formatDateTime({ locale: 'es-ES', dateStyle: 'full', timeStyle: 'full' }), \/\/ martes, 17 de agosto de 2021, 15:57:49 (hora est\u00e1ndar de Ekaterimburgo)   '\\n',   \/\/ \u0444\u0440\u0430\u043d\u0446\u0443\u0437\u0441\u043a\u0438\u0439   formatDateTime({     locale: 'fr-FR',     weekday: 'long',     day: '2-digit',     month: 'long',     year: 'numeric',     hour: '2-digit'   }) \/\/ mardi 17 ao\u00fbt 2021, 15 h )<\/code><\/pre>\n<p>  <\/p>\n<p><em>\u0414\u0440\u0443\u0433\u0438\u0435 \u043c\u0435\u0442\u043e\u0434\u044b<\/em><\/p>\n<p>  <\/p>\n<ul>\n<li><code>formatToParts()<\/code> \u2014 \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u043c\u0430\u0441\u0441\u0438\u0432 \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432, \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0449\u0438\u0445 \u0444\u043e\u0440\u043c\u0430\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u0443\u044e \u0434\u0430\u0442\u0443 \u0432 \u0432\u0438\u0434\u0435 \u043f\u0430\u0440 \u043a\u043b\u044e\u0447\/\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 (<code>{ type: 'weekday', value: 'Monday' }<\/code>)<\/li>\n<li><code>formatRange(startDate, endDate)<\/code> \u2014 \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u0434\u0438\u0430\u043f\u0430\u0437\u043e\u043d, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, <code>01\/10\/2022, 10:00 AM - 12:00 PM<\/code><\/li>\n<li><code>formatRangeToParts()<\/code><\/li>\n<li><code>resolveOptions()<\/code> \u2014 \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u043e\u0431\u044a\u0435\u043a\u0442 \u0441\u043e \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u0430\u043c\u0438, \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f\u043c\u0438 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u044f\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u043d\u044b\u0435 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u0444\u043e\u0440\u043c\u0430\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0434\u043b\u044f \u043b\u043e\u043a\u0430\u043b\u0438, \u0434\u0430\u0442\u044b \u0438 \u0432\u0440\u0435\u043c\u0435\u043d\u0438<\/li>\n<\/ul>\n<p>  <\/p>\n<h2 id=\"a-hrefhttpstc39esecma402relativetimeformat-objectsrelativetimeformata\"><a href=\"https:\/\/tc39.es\/ecma402\/#relativetimeformat-objects\"><code>RelativeTimeFormat<\/code><\/a><\/h2>\n<p>  <\/p>\n<p>\u041a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0442\u043e\u0440 <code>RelativeTimeFormat<\/code> \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0434\u043b\u044f \u043b\u043e\u043a\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u043e\u0442\u043d\u043e\u0441\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0433\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0438, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0432\u0447\u0435\u0440\u0430, \u0437\u0430\u0432\u0442\u0440\u0430, \u043d\u0430 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0439 \u043d\u0435\u0434\u0435\u043b\u0435, \u0432 \u043f\u0440\u043e\u0448\u043b\u043e\u043c \u043c\u0435\u0441\u044f\u0446\u0435 \u0438 \u0442.\u0434. \u0414\u0430\u043d\u043d\u044b\u0439 \u043c\u0435\u0442\u043e\u0434 \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0435\u0442 \u043b\u043e\u043a\u0430\u043b\u044c \u0438 \u043e\u0431\u044a\u0435\u043a\u0442 \u0441 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430\u043c\u0438.<\/p>\n<p>  <\/p>\n<p><em>\u0421\u0438\u0433\u043d\u0430\u0442\u0443\u0440\u0430<\/em><\/p>\n<p>  <\/p>\n<pre><code class=\"javascript\">new Intl.RelativeTimeFormat(locale, options).format(amount, unit) \/\/ amount - \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0435\u0434\u0438\u043d\u0438\u0446 \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \/\/ unit - \u0435\u0434\u0438\u043d\u0438\u0446\u0430 \u0432\u0440\u0435\u043c\u0435\u043d\u0438: `day`, `month`, `year` \u0438 \u0442.\u0434.<\/code><\/pre>\n<p>  <\/p>\n<p>\u041f\u043e\u043b\u043e\u0436\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0435 \u0447\u0438\u0441\u043b\u043e \u0432 <code>amount<\/code> \u043e\u0437\u043d\u0430\u0447\u0430\u0435\u0442 \u0431\u0443\u0434\u0443\u0449\u0435\u0435, \u043e\u0442\u0440\u0438\u0446\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0435 \u2014 \u043f\u0440\u043e\u0448\u043b\u043e\u0435.<\/p>\n<p>  <\/p>\n<p><em>\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438<\/em><\/p>\n<p>  <\/p>\n<div class=\"scrollable-table\">\n<table>\n<thead>\n<tr>\n<th>\u0421\u0432\u043e\u0439\u0441\u0442\u0432\u043e<\/th>\n<th>\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>numeric<\/td>\n<td><code>always<\/code> \u2014 &#171;1 \u0434\u0435\u043d\u044c \u043d\u0430\u0437\u0430\u0434&#187; (\u0434\u0435\u0444\u043e\u043b\u0442\u043d\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435), <code>auto<\/code> \u2014 &#171;\u0432\u0447\u0435\u0440\u0430&#187;<\/td>\n<\/tr>\n<tr>\n<td>style<\/td>\n<td><code>long<\/code> (\u0434\u0435\u0444\u043e\u043b\u0442\u043d\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435), <code>short<\/code>, <code>narrow<\/code><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<p>  <\/p>\n<p>\u0412 \u0434\u0430\u043d\u043d\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u043c\u0435\u0442\u043e\u0434 <code>format<\/code> \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u043e\u0432 \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0435\u0442 \u0447\u0438\u0441\u043b\u043e \u0438 \u0435\u0434\u0438\u043d\u0438\u0446\u0443 \u0432\u0440\u0435\u043c\u0435\u043d\u0438.<\/p>\n<p>  <\/p>\n<p><em>\u041f\u0440\u0438\u043c\u0435\u0440\u044b<\/em><\/p>\n<p>  <\/p>\n<pre><code class=\"javascript\">const formatRelativeTime = ({   locale = [],   value = '1 day',   ...options } = {}) => {   const [amount, unit] = value.split(\/[\\s_]\/)   return new Intl.RelativeTimeFormat(locale, options).format(amount, unit) }  console.log(   '\\n',   formatRelativeTime(), \/\/ \u0447\u0435\u0440\u0435\u0437 1 \u0434\u0435\u043d\u044c   '\\n',   formatRelativeTime({ locale: 'en-US', value: '-1 day', numeric: 'auto' }), \/\/ yesterday   '\\n',   formatRelativeTime({     locale: 'fr-FR',     value: '1 week',     style: 'long'   }), \/\/ dans 1 semaine   '\\n',   formatRelativeTime({     locale: 'ja-JP',     value: '-1 month',     numeric: 'auto',     style: 'long'   }) \/\/ \u5148\u6708 )<\/code><\/pre>\n<p>  <\/p>\n<h2 id=\"a-hrefhttpsdevelopermozillaorgrudocswebjavascriptreferenceglobal_objectsintlnumberformatnumberformata\"><a href=\"https:\/\/developer.mozilla.org\/ru\/docs\/Web\/JavaScript\/Reference\/Global_Objects\/Intl\/NumberFormat\"><code>NumberFormat<\/code><\/a><\/h2>\n<p>  <\/p>\n<p>\u041a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0442\u043e\u0440 <code>NumberFormat<\/code> \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0434\u043b\u044f \u0444\u043e\u0440\u043c\u0430\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0447\u0438\u0441\u0435\u043b, \u0432\u0430\u043b\u044e\u0442\u044b, \u043f\u0440\u043e\u0446\u0435\u043d\u0442\u043e\u0432 \u0438 \u0435\u0434\u0438\u043d\u0438\u0446 \u0438\u0437\u043c\u0435\u0440\u0435\u043d\u0438\u044f, \u0442\u0430\u043a\u0438\u0445 \u043a\u0430\u043a \u0434\u043b\u0438\u043d\u0430, \u0442\u0435\u043c\u043f\u0435\u0440\u0430\u0442\u0443\u0440\u0430 \u0438 \u0434\u0440. \u0414\u0430\u043d\u043d\u044b\u0439 \u043c\u0435\u0442\u043e\u0434 \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0435\u0442 \u043b\u043e\u043a\u0430\u043b\u044c \u0438 \u043e\u0431\u044a\u0435\u043a\u0442 \u0441 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430\u043c\u0438.<\/p>\n<p>  <\/p>\n<p><em>\u0421\u0438\u0433\u043d\u0430\u0442\u0443\u0440\u0430<\/em><\/p>\n<p>  <\/p>\n<pre><code class=\"javascript\">new Intl.NumberFormat(locale, options).format(number)<\/code><\/pre>\n<p>  <\/p>\n<p><em>\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438<\/em><\/p>\n<p>  <\/p>\n<div class=\"scrollable-table\">\n<table>\n<thead>\n<tr>\n<th>\u0421\u0432\u043e\u0439\u0441\u0442\u0432\u043e<\/th>\n<th>\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>style<\/td>\n<td>\u0432\u0438\u0434 \u0435\u0434\u0438\u043d\u0438\u0446: <code>decimal<\/code> \u2014 \u0447\u0438\u0441\u043b\u043e \u0441 \u043f\u043b\u0430\u0432\u0430\u044e\u0449\u0435\u0439 \u0442\u043e\u0447\u043a\u043e\u0439, <code>currency<\/code> \u2014 \u0432\u0430\u043b\u044e\u0442\u0430, <code>percent<\/code> \u2014 \u043f\u0440\u043e\u0446\u0435\u043d\u0442\u044b, <code>unit<\/code> \u2014 \u0435\u0434\u0438\u043d\u0438\u0446\u044b \u0438\u0437\u043c\u0435\u0440\u0435\u043d\u0438\u044f. \u041e\u0442 \u044d\u0442\u043e\u0439 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u0437\u0430\u0432\u0438\u0441\u044f\u0442 \u0434\u0440\u0443\u0433\u0438\u0435<\/td>\n<\/tr>\n<tr>\n<td>notation<\/td>\n<td>\u0441\u0442\u0438\u043b\u044c \u0444\u043e\u0440\u043c\u0430\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f: <code>standard<\/code>, <code>scientific<\/code>, <code>engineering<\/code>, <code>compact<\/code><\/td>\n<\/tr>\n<tr>\n<td>numberingSystem<\/td>\n<td>\u0441\u0438\u0441\u0442\u0435\u043c\u0430 \u0441\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u044f: <code>arab<\/code>, <code>beng<\/code>, <code>deva<\/code>, <code>fullwide<\/code>, <code>latn<\/code> \u0438 \u0434\u0440.<\/td>\n<\/tr>\n<tr>\n<td>minimumIntegerDigits<\/td>\n<td>\u043c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0446\u0438\u0444\u0440 \u0446\u0435\u043b\u043e\u0439 \u0447\u0430\u0441\u0442\u0438 \u0447\u0438\u0441\u043b\u0430 (\u043e\u0442 1 \u0434\u043e 21; \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e 1)<\/td>\n<\/tr>\n<tr>\n<td>minimumFractionDigits<\/td>\n<td>\u043c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0446\u0438\u0444\u0440 \u043f\u043e\u0441\u043b\u0435 \u0437\u0430\u043f\u044f\u0442\u043e\u0439 (\u043e\u0442 0 \u0434\u043e 20; \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e 0)<\/td>\n<\/tr>\n<tr>\n<td>maximumFractionDigits<\/td>\n<td>\u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0446\u0438\u0444\u0440 \u043f\u043e\u0441\u043b\u0435 \u0437\u0430\u043f\u044f\u0442\u043e\u0439 (\u043e\u0442 0 \u0434\u043e 20; \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u043d\u0430\u0438\u0431\u043e\u043b\u044c\u0448\u0435\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0438\u0437 minimumFractionDigits \u0438 3)<\/td>\n<\/tr>\n<tr>\n<td>minimumSignificantDigits<\/td>\n<td>\u043c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0437\u043d\u0430\u0447\u0430\u0449\u0438\u0445 \u0446\u0438\u0444\u0440 (\u043e\u0442 1 \u0434\u043e 21; \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e 1)<\/td>\n<\/tr>\n<tr>\n<td>maximumSignificantDigits<\/td>\n<td>\u043c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0437\u043d\u0430\u0447\u0430\u0449\u0438\u0445 \u0446\u0438\u0444\u0440 (\u043e\u0442 1 \u0434\u043e 21; \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e minimumSignificantDigits)<\/td>\n<\/tr>\n<tr>\n<td>signDisplay<\/td>\n<td>\u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u0441\u0438\u043c\u0432\u043e\u043b\u043e\u0432 <code>+\/-<\/code>: <code>auto<\/code>, <code>never<\/code>, <code>always<\/code>, <code>exceptZero<\/code><\/td>\n<\/tr>\n<tr>\n<td>useGrouping<\/td>\n<td>\u0435\u0441\u043b\u0438 \u0438\u043c\u0435\u0435\u0442 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 <code>false<\/code>, \u0440\u0430\u0437\u0434\u0435\u043b\u0438\u0442\u0435\u043b\u0438 \u0442\u044b\u0441\u044f\u0447 \u0431\u0443\u0434\u0443\u0442 \u0438\u0433\u043d\u043e\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c\u0441\u044f<\/td>\n<\/tr>\n<tr>\n<td>compactDisplay<\/td>\n<td>\u0444\u043e\u0440\u043c\u0430\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u043f\u0440\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0438 \u043d\u043e\u0442\u0430\u0446\u0438\u0438 <code>compact<\/code><\/td>\n<\/tr>\n<tr>\n<td>currency<\/td>\n<td>\u043a\u043e\u0434 \u0432\u0430\u043b\u044e\u0442\u044b \u043f\u0440\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0438 \u0441\u0442\u0438\u043b\u044f <code>currency<\/code>: <code>USD<\/code>, <code>EUR<\/code>, <code>RUB<\/code> \u0438 \u0442.\u0434.<\/td>\n<\/tr>\n<tr>\n<td>currencyDisplay<\/td>\n<td>\u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u0441\u0438\u043c\u0432\u043e\u043b\u0430\/\u043d\u0430\u0437\u0432\u0430\u043d\u0438\u044f \u0432\u0430\u043b\u044e\u0442\u044b \u043f\u0440\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0438 \u0441\u0442\u0438\u043b\u044f <code>currency<\/code>: <code>symbol<\/code>, <code>narrowSymbol<\/code>, <code>code<\/code>, <code>name<\/code><\/td>\n<\/tr>\n<tr>\n<td>currencySign<\/td>\n<td>\u0444\u043e\u0440\u043c\u0430\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u043e\u0442\u0440\u0438\u0446\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0445 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 \u043f\u0440\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0438 \u0441\u0442\u0438\u043b\u044f <code>currency<\/code>: <code>standard<\/code>, <code>accounting<\/code><\/td>\n<\/tr>\n<tr>\n<td>unit<\/td>\n<td>\u0432\u0438\u0434 \u0435\u0434\u0438\u043d\u0438\u0446\u044b \u0438\u0437\u043c\u0435\u0440\u0435\u043d\u0438\u044f: <code>centimeter<\/code>, <code>meter<\/code>, <code>minute<\/code>, <code>hour<\/code>, <code>byte<\/code> \u0438 \u0442.\u0434.<\/td>\n<\/tr>\n<tr>\n<td>unitDisplay<\/td>\n<td>\u0444\u043e\u0440\u043c\u0430\u0442 \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f \u0435\u0434\u0438\u043d\u0438\u0446\u044b \u0438\u0437\u043c\u0435\u0440\u0435\u043d\u0438\u044f: <code>long<\/code>, <code>short<\/code>, <code>narrow<\/code><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<p>  <\/p>\n<p><em>\u041f\u0440\u0438\u043c\u0435\u0440\u044b<\/em><\/p>\n<p>  <\/p>\n<pre><code class=\"javascript\">const formatNumber = ({ locale = [], number = 1234.56, ...options } = {}) =>   new Intl.NumberFormat(locale, options).format(number)  console.log(   '\\n',   formatNumber(),   '\\n', \/\/ 1 234,56   formatNumber({ locale: 'en-US' }),   '\\n', \/\/ 1,234.56   formatNumber({ locale: 'de-DE', style: 'currency', currency: 'EUR' }),   '\\n', \/\/ 1.234,56 \u20ac   formatNumber({ locale: 'fr-FR', style: 'percent' }),   '\\n', \/\/ 123\u202f456 %   formatNumber({     locale: 'it-IT',     style: 'unit',     unit: 'celsius',     minimumFractionDigits: 3   }),   '\\n' \/\/ 1.234,560 \u00b0C )<\/code><\/pre>\n<p>  <\/p>\n<h2 id=\"a-hrefhttpstc39esecma402intl-displaynames-objectsdisplaynamesa\"><a href=\"https:\/\/tc39.es\/ecma402\/#intl-displaynames-objects\"><code>DisplayNames<\/code><\/a><\/h2>\n<p>  <\/p>\n<p>\u041a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0442\u043e\u0440 <code>DisplayNames<\/code> \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0434\u043b\u044f \u0444\u043e\u0440\u043c\u0430\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0439 \u044f\u0437\u044b\u043a\u043e\u0432, \u0434\u0438\u0430\u043b\u0435\u043a\u0442\u043e\u0432, \u0440\u0435\u0433\u0438\u043e\u043d\u043e\u0432 \u0438 \u0432\u0430\u043b\u044e\u0442 \u043d\u0430 \u0434\u0440\u0443\u0433\u043e\u043c \u044f\u0437\u044b\u043a\u0435. \u0414\u0430\u043d\u043d\u044b\u0439 \u043c\u0435\u0442\u043e\u0434 \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0435\u0442 \u043b\u043e\u043a\u0430\u043b\u044c \u0438 \u043e\u0431\u044a\u0435\u043a\u0442 \u0441 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430\u043c\u0438.<\/p>\n<p>  <\/p>\n<p><em>\u0421\u0438\u0433\u043d\u0430\u0442\u0443\u0440\u0430<\/em><\/p>\n<p>  <\/p>\n<pre><code class=\"javascript\">new Intl.DisplayNames(locale, options).of(localeOf)<\/code><\/pre>\n<p>  <\/p>\n<p><strong>\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438<\/strong><\/p>\n<p>  <\/p>\n<div class=\"scrollable-table\">\n<table>\n<thead>\n<tr>\n<th>\u0421\u0432\u043e\u0439\u0441\u0442\u0432\u043e<\/th>\n<th>\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>type<\/td>\n<td>\u0442\u0438\u043f \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u044f: <code>language<\/code>, <code>region<\/code>, <code>script<\/code>, <code>currency<\/code><\/td>\n<\/tr>\n<tr>\n<td>style<\/td>\n<td>\u0441\u0442\u0438\u043b\u044c \u0444\u043e\u0440\u043c\u0430\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f: <code>long<\/code>, <code>short<\/code>, <code>narrow<\/code><\/td>\n<\/tr>\n<tr>\n<td>fallback<\/td>\n<td>\u0440\u0435\u0437\u0435\u0440\u0432: <code>code<\/code>, <code>none<\/code><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<p>  <\/p>\n<p><em>\u041e\u0431\u0440\u0430\u0442\u0438\u0442\u0435 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435<\/em>: \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 <code>type<\/code> \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0439. \u041f\u0440\u0438 \u044d\u0442\u043e\u043c \u0445\u043e\u0440\u043e\u0448\u043e \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u0442\u043e\u043b\u044c\u043a\u043e <code>type<\/code> \u0441\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435\u043c <code>language<\/code>.<\/p>\n<p>  <\/p>\n<p><strong>\u041f\u0440\u0438\u043c\u0435\u0440\u044b<\/strong><\/p>\n<p>  <\/p>\n<pre><code class=\"javascript\">const formatName = ({   locale = [],   localeOf = 'en-US',   type = 'language',   ...options } = {}) => new Intl.DisplayNames(locale, { type, ...options }).of(localeOf)  console.log(   '\\n',   formatName(),   '\\n', \/\/ \u0430\u043c\u0435\u0440\u0438\u043a\u0430\u043d\u0441\u043a\u0438\u0439 \u0430\u043d\u0433\u043b\u0438\u0439\u0441\u043a\u0438\u0439   formatName({     localeOf: 'Egyp',     type: 'script'   }),   '\\n', \/\/ \u0435\u0433\u0438\u043f\u0435\u0442\u0441\u043a\u0430\u044f \u0438\u0435\u0440\u043e\u0433\u043b\u0438\u0444\u0438\u0447\u0435\u0441\u043a\u0430\u044f   formatName({     locale: 'fr-FR',     localeOf: 'AU',     type: 'region'   }),   '\\n', \/\/ Australie - \u0410\u0432c\u0442\u0440\u0430\u043b\u0438\u044f \u043f\u043e-\u0444\u0440\u0430\u043d\u0446\u0443\u0437\u0441\u043a\u0438   formatName({     locale: 'pl-PL',     localeOf: 'GBP',     type: 'currency',     style: 'long'   }),   '\\n' \/\/ funt szterling - \u0430\u043d\u0433\u043b\u0438\u0439\u0441\u043a\u0438\u0435 \u0444\u0443\u043d\u0442\u044b \u0441\u0442\u0435\u0440\u043b\u0438\u043d\u0433\u043e\u0432 \u043d\u0430 \u043f\u043e\u043b\u044c\u0441\u043a\u043e\u043c )<\/code><\/pre>\n<p>  <\/p>\n<h2 id=\"a-hrefhttpsdevelopermozillaorgrudocswebjavascriptreferenceglobal_objectsintllistformatlistformata\"><a href=\"https:\/\/developer.mozilla.org\/ru\/docs\/Web\/JavaScript\/Reference\/Global_Objects\/Intl\/ListFormat\"><code>ListFormat<\/code><\/a><\/h2>\n<p>  <\/p>\n<p>\u041a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0442\u043e\u0440 <code>ListFormat<\/code> \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0434\u043b\u044f \u0444\u043e\u0440\u043c\u0430\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0441\u043f\u0438\u0441\u043a\u043e\u0432 \u043f\u0443\u0442\u0435\u043c \u043f\u043e\u0434\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438 \u0441\u043e\u0435\u0434\u0438\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0433\u043e \u0441\u043e\u044e\u0437\u0430 <code>\u0418<\/code> \u0438\u043b\u0438 \u0440\u0430\u0437\u0434\u0435\u043b\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0433\u043e \u0441\u043e\u044e\u0437\u0430 <code>\u0418\u041b\u0418<\/code>. \u0414\u0430\u043d\u043d\u044b\u0439 \u043c\u0435\u0442\u043e\u0434 \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0435\u0442 \u043b\u043e\u043a\u0430\u043b\u044c \u0438 \u043e\u0431\u044a\u0435\u043a\u0442 \u0441 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430\u043c\u0438.<\/p>\n<p>  <\/p>\n<p><em>\u0421\u0438\u0433\u043d\u0430\u0442\u0443\u0440\u0430<\/em><\/p>\n<p>  <\/p>\n<pre><code class=\"javascript\">new Intl.ListFormat(locale, options).format(list)<\/code><\/pre>\n<p>  <\/p>\n<p><em>\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438<\/em><\/p>\n<p>  <\/p>\n<div class=\"scrollable-table\">\n<table>\n<thead>\n<tr>\n<th>\u0421\u0432\u043e\u0439\u0441\u0442\u0432\u043e<\/th>\n<th>\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>type<\/td>\n<td>\u0444\u043e\u0440\u043c\u0430\u0442 \u0432\u044b\u0432\u043e\u0434\u0430: <code>conjunction<\/code> (\u0438; \u0434\u0435\u0444\u043e\u043b\u0442\u043d\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435), <code>disjunction<\/code> (\u0438\u043b\u0438), <code>unit<\/code> (\u043d\u0435\u0442)<\/td>\n<\/tr>\n<tr>\n<td>style<\/td>\n<td>\u0441\u0442\u0438\u043b\u044c \u0444\u043e\u0440\u043c\u0430\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f: <code>long<\/code>, <code>short<\/code>, <code>narrow<\/code><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<p>  <\/p>\n<p><em>\u041f\u0440\u0438\u043c\u0435\u0440\u044b<\/em><\/p>\n<p>  <\/p>\n<pre><code class=\"javascript\">const browsers = ['Chrome', 'Firefox', 'Safari']  const formatList = ({   locale = [],   list = browsers,   ...options } = {}) => new Intl.ListFormat(locale, options).format(list)  console.log(   '\\n',   formatList(),   '\\n', \/\/ Chrome, Firefox \u0438 Safari   formatList({ locale: 'en-US', style: 'short' }),   '\\n', \/\/ Chrome, Firefox, &amp; Safari   formatList({ locale: 'ja-JP', type: 'disjunction' }),   '\\n' \/\/ Chrome\u3001Firefox\u3001\u307e\u305f\u306fSafari )<\/code><\/pre>\n<p>  <\/p>\n<h2 id=\"a-hrefhttpsdevelopermozillaorgrudocswebjavascriptreferenceglobal_objectsintlcollatorcollatora\"><a href=\"https:\/\/developer.mozilla.org\/ru\/docs\/Web\/JavaScript\/Reference\/Global_Objects\/Intl\/Collator\"><code>Collator<\/code><\/a><\/h2>\n<p>  <\/p>\n<p>\u041a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0442\u043e\u0440 <code>Collator<\/code> \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0434\u043b\u044f \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u044f \u0441\u0442\u0440\u043e\u043a \u0441 \u0443\u0447\u0435\u0442\u043e\u043c \u043b\u043e\u043a\u0430\u043b\u0438. \u0414\u0430\u043d\u043d\u044b\u0439 \u043c\u0435\u0442\u043e\u0434 \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0435\u0442 \u043b\u043e\u043a\u0430\u043b\u044c \u0438 \u043e\u0431\u044a\u0435\u043a\u0442 \u0441 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430\u043c\u0438.<\/p>\n<p>  <\/p>\n<p><em>\u0421\u0438\u0433\u043d\u0430\u0442\u0443\u0440\u0430<\/em><\/p>\n<p>  <\/p>\n<pre><code class=\"javascript\">new Intl.Collator(locale, options).compare(str1, str2)<\/code><\/pre>\n<p>  <\/p>\n<p><em>\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438<\/em><\/p>\n<p>  <\/p>\n<div class=\"scrollable-table\">\n<table>\n<thead>\n<tr>\n<th>\u0421\u0432\u043e\u0439\u0441\u0442\u0432\u043e<\/th>\n<th>\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>usage<\/td>\n<td><code>sort<\/code> \u2014 \u0441\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u043a\u0430 (\u0434\u0435\u0444\u043e\u043b\u0442\u043d\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435) \u0438\u043b\u0438 <code>search<\/code> \u2014 \u043f\u043e\u0438\u0441\u043a<\/td>\n<\/tr>\n<tr>\n<td>sensitivity<\/td>\n<td>\u0447\u0443\u0432\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c: <code>base<\/code>, <code>accent<\/code>, <code>case<\/code>, <code>variant<\/code><\/td>\n<\/tr>\n<tr>\n<td>collation<\/td>\n<td>\u0441\u043e\u043f\u043e\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u043e\u0432 \u0434\u043b\u044f \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u0445 \u044f\u0437\u044b\u043a\u043e\u0432<\/td>\n<\/tr>\n<tr>\n<td>numeric<\/td>\n<td><code>true<\/code> \u043e\u0437\u043d\u0430\u0447\u0430\u0435\u0442 \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u0435 \u0447\u0438\u0441\u0435\u043b<\/td>\n<\/tr>\n<tr>\n<td>ignorePunctuation<\/td>\n<td><code>true<\/code> \u043e\u0437\u043d\u0430\u0447\u0430\u0435\u0442 \u0438\u0433\u043d\u043e\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u043f\u0443\u043d\u043a\u0442\u0443\u0430\u0446\u0438\u0438<\/td>\n<\/tr>\n<tr>\n<td>caseFirst<\/td>\n<td><code>upper<\/code> \u2014 \u0441\u043d\u0430\u0447\u0430\u043b\u0430 \u0438\u0434\u0443\u0442 \u0441\u0442\u0440\u043e\u043a\u0438, \u043d\u0430\u0447\u0438\u043d\u0430\u044e\u0449\u0438\u0435\u0441\u044f \u0441 \u0431\u043e\u043b\u044c\u0448\u043e\u0439 \u0431\u0443\u043a\u0432\u044b, <code>lower<\/code> \u2014 \u0441\u043d\u0430\u0447\u0430\u043b\u0430 \u0438\u0434\u0443\u0442 \u0441\u0442\u0440\u043e\u043a\u0438, \u043d\u0430\u0447\u0438\u043d\u0430\u044e\u0449\u0438\u0435\u0441\u044f \u0441 \u043c\u0430\u043b\u0435\u043d\u044c\u043a\u043e\u0439 \u0431\u0443\u043a\u0432\u044b<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<p>  <\/p>\n<p><em>\u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442<\/em><\/p>\n<p>  <\/p>\n<ul>\n<li><code>0<\/code> \u2014 \u0441\u0442\u0440\u043e\u043a\u0438 \u0440\u0430\u0432\u043d\u044b<\/li>\n<li><code>-1<\/code> \u2014 \u043f\u0435\u0440\u0432\u0430\u044f \u0441\u0442\u0440\u043e\u043a\u0430 &#171;\u043c\u0435\u043d\u044c\u0448\u0435&#187; \u0432\u0442\u043e\u0440\u043e\u0439<\/li>\n<li><code>1<\/code> \u2014 \u043f\u0435\u0440\u0432\u0430\u044f \u0441\u0442\u0440\u043e\u043a\u0430 &#171;\u0431\u043e\u043b\u044c\u0448\u0435&#187; \u0432\u0442\u043e\u0440\u043e\u0439<\/li>\n<\/ul>\n<p>  <\/p>\n<p><em>\u041f\u0440\u0438\u043c\u0435\u0440\u044b<\/em><\/p>\n<p>  <\/p>\n<pre><code class=\"javascript\">const compareValues = ({ locale = [], values = [], ...options } = {}) =>   new Intl.Collator(locale, options).compare(...values)  console.log(   '\\n',   compareValues({ values: ['a', '\u00e1'], sensitivity: 'base' }),   '\\n', \/\/ 0 -> \u043e\u0434\u0438\u043d\u0430\u043a\u043e\u0432\u044b\u0435   compareValues({ values: ['2', '10'] }),   '\\n', \/\/ 1 -> '2' > '10'   compareValues({ values: ['2', '10'], numeric: true }),   '\\n' \/\/ -1 -> 2 &lt; 10 )<\/code><\/pre>\n<p>  <\/p>\n<h2 id=\"a-hrefhttpstc39esecma402pluralrules-objectspluralrulesa\"><a href=\"https:\/\/tc39.es\/ecma402\/#pluralrules-objects\"><code>PluralRules<\/code><\/a><\/h2>\n<p>  <\/p>\n<p>\u041a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0442\u043e\u0440 <code>PluralRules<\/code> \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0434\u043b\u044f \u043f\u043b\u044e\u0440\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 (\u043f\u0435\u0440\u0435\u0432\u043e\u0434\u0430 \u0432\u043e \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0435 \u0447\u0438\u0441\u043b\u043e). \u0414\u0430\u043d\u043d\u044b\u0439 \u043c\u0435\u0442\u043e\u0434 \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0435\u0442 \u043b\u043e\u043a\u0430\u043b\u044c \u0438 \u043e\u0431\u044a\u0435\u043a\u0442 \u0441 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430\u043c\u0438.<\/p>\n<p>  <\/p>\n<p><em>\u0421\u0438\u0433\u043d\u0430\u0442\u0443\u0440\u0430<\/em><\/p>\n<p>  <\/p>\n<pre><code class=\"javascript\">new Intl.PluralRules(locale, options).select(number)<\/code><\/pre>\n<p>  <\/p>\n<p><em>\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438<\/em><\/p>\n<p>  <\/p>\n<div class=\"scrollable-table\">\n<table>\n<thead>\n<tr>\n<th>\u0421\u0432\u043e\u0439\u0441\u0442\u0432\u043e<\/th>\n<th>\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>type<\/td>\n<td><code>cardinal<\/code> \u2014 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 (\u0434\u0435\u0444\u043e\u043b\u0442\u043d\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435), <code>ordinal<\/code> \u2014 \u043f\u043e\u0440\u044f\u0434\u043e\u043a \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430 (\u043f\u0435\u0440\u0432\u044b\u0439, \u0432\u0442\u043e\u0440\u043e\u0439, \u0442\u0440\u0435\u0442\u0438\u0439 \u0438 \u0442.\u0434.)<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<p>  <\/p>\n<p><em>\u041f\u0440\u0438\u043c\u0435\u0440\u044b<\/em><\/p>\n<p>  <\/p>\n<pre><code class=\"javascript\">const pluralize = ({ locale = [], number = 1, ...options } = {}) =>   new Intl.PluralRules(locale, options).select(number)  console.log(   '\\n',   pluralize(),   '\\n', \/\/ one   pluralize({ locale: 'ru-RU', type: 'ordinal' }),   '\\n' \/\/ other )<\/code><\/pre>\n<p>  <\/p>\n<p>\u0412 \u043d\u0430\u0441\u0442\u043e\u044f\u0449\u0435\u0435 \u0432\u0440\u0435\u043c\u044f \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u043b\u043e\u043a\u0430\u043b\u044c <code>en-US<\/code>.<\/p>\n<p>  <\/p>\n<h2 id=\"praktika\">\u041f\u0440\u0430\u043a\u0442\u0438\u043a\u0430<\/h2>\n<p>  <\/p>\n<p>\u0412 \u0434\u0430\u043d\u043d\u043e\u043c \u0440\u0430\u0437\u0434\u0435\u043b\u0435 \u043c\u044b \u0441\u043e\u0437\u0434\u0430\u0434\u0438\u043c \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u043e\u0435 \u043b\u043e\u043a\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d\u043d\u043e\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0430\u043d\u043d\u043e\u0439 \u043c\u043d\u043e\u0439 \u0443\u0442\u0438\u043b\u0438\u0442\u044b <a href=\"https:\/\/www.npmjs.com\/package\/easy-intl\"><code>easy-intl<\/code><\/a>.<\/p>\n<p>  <\/p>\n<p>\u041f\u0440\u0438\u043d\u0446\u0438\u043f \u0440\u0430\u0431\u043e\u0442\u044b \u0443\u0442\u0438\u043b\u0438\u0442\u044b \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u043e \u043e\u043f\u0438\u0441\u0430\u043d \u0432 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438. \u041c\u043d\u043e\u0433\u0438\u0435 \u0432\u0435\u0449\u0438 \u0431\u044b\u043b\u0438 \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0435\u043d\u044b \u0432 \u0442\u0435\u043e\u0440\u0435\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u0447\u0430\u0441\u0442\u0438. \u041f\u043e\u044d\u0442\u043e\u043c\u0443, \u0441 \u0432\u0430\u0448\u0435\u0433\u043e \u043f\u043e\u0437\u0432\u043e\u043b\u0435\u043d\u0438\u044f, \u0437\u0434\u0435\u0441\u044c \u044f \u043e\u043f\u0438\u0448\u0443 \u0442\u043e\u043b\u044c\u043a\u043e \u043a\u043b\u044e\u0447\u0435\u0432\u044b\u0435 \u043c\u043e\u043c\u0435\u043d\u0442\u044b.<\/p>\n<p>  <\/p>\n<p>\u0414\u0435\u043c\u043e \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f:<\/p>\n<p>  <\/p>\n<div class=\"oembed\">\n<div class=\"tm-iframe_temp\" data-src=\"https:\/\/embedd.srv.habr.com\/iframe\/6138ac73ad041b3b9bfdc70e\" data-style=\"\" id=\"6138ac73ad041b3b9bfdc70e\" width=\"\"><\/div>\n<\/div>\n<p>  <\/p>\n<p>\u0421\u043e\u0437\u0434\u0430\u0435\u043c \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044e \u0434\u043b\u044f \u043f\u0440\u043e\u0435\u043a\u0442\u0430 \u0438 \u0443\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u043c <code>easy-intl<\/code>:<\/p>\n<p>  <\/p>\n<pre><code class=\"bash\">mkdir intl-app cd !$  yarn add easy-intl # or npm i easy-intl<\/code><\/pre>\n<p>  <\/p>\n<p>\u0421\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430 \u043f\u0440\u043e\u0435\u043a\u0442\u0430 \u0431\u0443\u0434\u0435\u0442 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0439:<\/p>\n<p>  <\/p>\n<pre><code class=\"plaintext\">- intl   - options.js - \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u0434\u043b\u044f \u0443\u0442\u0438\u043b\u0438\u0442\u044b   - dictionary.js - \u0441\u043b\u043e\u0432\u0430\u0440\u044c \u0434\u043b\u044f \u043a\u0430\u0441\u0442\u043e\u043c\u043d\u043e\u0439 \u043b\u043e\u043a\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 - index.html - style.css - script.js<\/code><\/pre>\n<p>  <\/p>\n<p>\u041a\u0430\u043a \u0441\u043a\u0430\u0437\u0430\u043b \u0431\u044b \u0412\u0430\u0442\u0441\u043e\u043d, \u0432\u0441\u0435 \u042d\u041b\u0415\u041c\u0415\u041d\u0422\u0410\u0420\u041d\u041e.<\/p>\n<p>  <\/p>\n<p>\u0412 \u0441\u0442\u0438\u043b\u044f\u0445 \u0443 \u043d\u0430\u0441 \u043d\u0435 \u0431\u0443\u0434\u0435\u0442 \u043d\u0438\u0447\u0435\u0433\u043e \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e\u0433\u043e, \u043f\u043e\u044d\u0442\u043e\u043c\u0443<\/p>\n<p>  <\/p>\n<div class=\"spoiler\" role=\"button\" tabindex=\"0\">                         <b class=\"spoiler_title\">\u0432\u043e\u0442:<\/b>                         <\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"css\">* {   margin: 0;   padding: 0;   box-sizing: border-box;   font-family: 'Montserrat', sans-serif;   letter-spacing: 1px; }  h1 {   margin: 1rem 0;   text-align: center;   font-size: 2rem; }  .container {   display: flex;   flex-wrap: wrap;   justify-content: center; }  .card {   margin: 1rem;   width: 320px;   padding: 0.75rem;   border-radius: 4px;   box-shadow: 0 1px 2px rgba(0, 0, 0, 0.2); }  main > .card {   position: fixed;   top: 10%;   left: 50%;   transform: translateX(-50%);   margin: 1rem auto;   box-shadow: none;   display: flex;   flex-direction: column;   justify-content: center;   align-items: center;   border-radius: 50%; }  main > .card img {   position: absolute;   z-index: -1;   width: 100px;   opacity: 0.9;   filter: brightness(0.9); }  select {   width: 50px;   padding: 0.25rem;   font-weight: bold;   border-radius: 4px;   opacity: 0.95;   cursor: pointer; }  select:focus-visible {   outline: none; }  h2 {   font-size: 1.4rem;   margin: 0.75rem 0; }  h3, h4 {   margin: 0.5rem 0; }  h3 {   font-size: 1.2rem; }  h4 {   font-size: 1.1rem; }<\/code><\/pre>\n<\/div><\/div>\n<p>  <\/p>\n<p>\u0427\u0442\u043e \u043a\u0430\u0441\u0430\u0435\u0442\u0441\u044f \u0440\u0430\u0437\u043c\u0435\u0442\u043a\u0438, \u0442\u043e \u0432 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0435 \u043b\u043e\u043a\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 <code>easy-intl<\/code> \u043e\u0440\u0438\u0435\u043d\u0442\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u043d\u0430 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u044b:<\/p>\n<p>  <\/p>\n<ul>\n<li><code>data-intl_type<\/code> \u2014 \u0442\u0438\u043f \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0433\u043e \u0434\u043b\u044f \u043b\u043e\u043a\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438. \u0412\u043e\u0437\u043c\u043e\u0436\u043d\u044b\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f:<br \/> \n<ul>\n<li><code>date<\/code> \u2014 \u0434\u0430\u0442\u0430 \u0438\u043b\u0438 \u0432\u0440\u0435\u043c\u044f, \u0438\u043b\u0438 \u0434\u0430\u0442\u0430 \u0438 \u0432\u0440\u0435\u043c\u044f<\/li>\n<li><code>relative<\/code> \u2014 \u043e\u0442\u043d\u043e\u0441\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0439 \u043f\u0435\u0440\u0438\u043e\u0434 \u0432\u0440\u0435\u043c\u0435\u043d\u0438<\/li>\n<li><code>number<\/code> \u2014 \u0447\u0438\u0441\u043b\u043e, \u0432\u043a\u043b\u044e\u0447\u0430\u044f \u0432\u0430\u043b\u044e\u0442\u0443, \u043f\u0440\u043e\u0446\u0435\u043d\u0442\u044b \u0438 \u0435\u0434\u0438\u043d\u0438\u0446\u044b \u0438\u0437\u043c\u0435\u0440\u0435\u043d\u0438\u044f<\/li>\n<li><code>names<\/code> \u2014 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u044f\u0437\u044b\u043a\u0430, \u0440\u0435\u0433\u0438\u043e\u043d\u0430, \u0432\u0430\u043b\u044e\u0442\u044b \u0438 \u0442.\u0434.<\/li>\n<li><code>list<\/code> \u2014 \u0441\u043f\u0438\u0441\u043e\u043a<\/li>\n<li><code>compare<\/code> \u2014 \u0441\u0442\u0440\u043e\u043a\u0438 \u0434\u043b\u044f \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u044f<\/li>\n<li><code>plural<\/code> \u2014 \u0441\u0442\u0440\u043e\u043a\u0430 \u0434\u043b\u044f \u043f\u0435\u0440\u0435\u0432\u043e\u0434\u0430 \u0432\u043e \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0435 \u0447\u0438\u0441\u043b\u043e<\/li>\n<li><code>custom<\/code> \u2014 \u0441\u0442\u0440\u043e\u043a\u0430, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043a\u043b\u044e\u0447\u0430 \u0441\u043b\u043e\u0432\u0430\u0440\u044f \u0434\u043b\u044f \u043a\u0430\u0441\u0442\u043e\u043c\u043d\u043e\u0439 \u043b\u043e\u043a\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438<\/li>\n<\/ul>\n<\/li>\n<li><code>data-intl_value<\/code> \u2014 \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u043e, \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0435 \u0434\u043b\u044f \u043b\u043e\u043a\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438; \u0437\u0430\u0432\u0438\u0441\u0438\u0442 \u043e\u0442 <code>data-intl_type<\/code><\/li>\n<li><code>data-intl_options<\/code> \u2014 \u0441\u0442\u0440\u043e\u043a\u043e\u0432\u044b\u0435 (inline) \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u0434\u043b\u044f \u043b\u043e\u043a\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438; \u0437\u0430\u0432\u0438\u0441\u044f\u0442 \u043e\u0442 <code>data-intl_type<\/code>. \u0414\u0430\u043d\u043d\u044b\u0435 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u0438\u043c\u0435\u044e\u0442 \u0432\u044b\u0441\u0448\u0438\u0439 \u043f\u0440\u0438\u043e\u0440\u0438\u0442\u0435\u0442<\/li>\n<li><code>data-intl_root<\/code> \u2014 \u0438\u043d\u0434\u0438\u043a\u0430\u0442\u043e\u0440 (\u0430\u0442\u0440\u0438\u0431\u0443\u0442 \u0431\u0435\u0437 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f) \u043a\u043e\u0440\u043d\u0435\u0432\u043e\u0433\u043e HTML-\u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430 \u0434\u043b\u044f \u043b\u043e\u043a\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438. <code>easy-intl<\/code> \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0442\u044c \u0440\u0430\u0437\u043d\u0443\u044e \u043b\u043e\u043a\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044e \u0434\u043b\u044f \u0440\u0430\u0437\u043d\u044b\u0445 \u0447\u0430\u0441\u0442\u0435\u0439 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u2014 \u0434\u043e\u0447\u0435\u0440\u043d\u0438\u0435 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b \u043d\u0438\u0436\u0435\u043b\u0435\u0436\u0430\u0449\u0435\u0433\u043e (\u0432 \u0438\u0435\u0440\u0430\u0440\u0445\u0438\u0438 <code>DOM<\/code>) <code>data-intl_root<\/code> \u043d\u0435 \u0431\u0443\u0434\u0443\u0442 \u043b\u043e\u043a\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u0432\u044b\u0448\u0435\u0441\u0442\u043e\u044f\u0449\u0438\u043c <code>data-intl_root<\/code><\/li>\n<li><code>data-intl_map<\/code> \u2014 \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e <code>easy-intl<\/code> \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442 \u043b\u043e\u043a\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u0430 <code>textContext<\/code>, \u0430 \u0442\u0430\u043a\u0436\u0435 \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u043e\u0432 <code>title<\/code> \u0438 <code>placeholder<\/code> \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432, \u0438\u043c\u0435\u044e\u0449\u0438\u0445 \u0430\u0442\u0440\u0438\u0431\u0443\u0442 <code>data-intl_type<\/code>. \u0417\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u0430 <code>data-intl_map<\/code> \u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u0441\u044f \u043a\u043b\u044e\u0447\u043e\u043c \u043e\u0431\u044a\u0435\u043a\u0442\u0430 <code>map<\/code> \u0432\u0438\u0434\u0430 <code>{ [data-intl_map]: \u043b\u043e\u043a\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d\u043d\u043e\u0435 data-intl_value }<\/code> \u2014 \u0433\u0435\u0442\u0442\u0435\u0440\u0430 \u044d\u043a\u0437\u0435\u043c\u043f\u043b\u044f\u0440\u0430 <code>EasyIntl<\/code>. \u0414\u0430\u043d\u043d\u044b\u0439 \u043e\u0431\u044a\u0435\u043a\u0442 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0442\u044c \u0440\u0443\u0447\u043d\u0443\u044e \u043b\u043e\u043a\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044e \u0434\u0440\u0443\u0433\u0438\u0445 \u0441\u0432\u043e\u0439\u0441\u0442\u0432 \u0438 \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u043e\u0432 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0445 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432.<\/li>\n<\/ul>\n<p>  <\/p>\n<p>\u0412\u043e\u0442 \u043a\u0430\u043a \u0431\u0443\u0434\u0435\u0442 \u0432\u044b\u0433\u043b\u044f\u0434\u0435\u0442\u044c \u043d\u0430\u0448\u0430 \u0440\u0430\u0437\u043c\u0435\u0442\u043a\u0430:<\/p>\n<p>  <\/p>\n<pre><code class=\"html\">&lt;main data-intl_root id=\"global_root\">   &lt;h1 data-intl_type=\"custom\" data-intl_value=\"main_title\" data-intl_map=\"main_title\">     Easy Intl   &lt;\/h1>   &lt;section class=\"card\">     &lt;img src=\"https:\/\/cdn-icons-png.flaticon.com\/512\/814\/814513.png\" alt=\"\" role=\"presentation\" \/>     &lt;select id=\"locale\">       &lt;option value=\"ru-RU\">Ru&lt;\/option>       &lt;option value=\"en-US\" selected>En&lt;\/option>       &lt;option value=\"de-DE\">De&lt;\/option>       &lt;option value=\"ja-JP\">Ja&lt;\/option>     &lt;\/select>   &lt;\/section>    &lt;div class=\"container\">     &lt;section class=\"card\">       &lt;h2 data-intl_type=\"custom\" data-intl_value=\"date_title\" data-intl_map=\"date_title\">         \u0414\u0430\u0442\u0430 \u0438 \u0432\u0440\u0435\u043c\u044f       &lt;\/h2>       &lt;div class=\"box\">         &lt;h3 data-intl_type=\"custom\" data-intl_value=\"without_options\">           \u0411\u0435\u0437 \u0432\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u044b\u0445 \u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043a         &lt;\/h3>         &lt;time data-intl_type=\"date\" data-intl_value=\"2021-08-16 12:00\">&lt;\/time>       &lt;\/div>       &lt;div class=\"box\">         &lt;h3 data-intl_type=\"custom\" data-intl_value=\"with_options\">           \u0421\u043e \u0432\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u044b\u043c\u0438 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430\u043c\u0438         &lt;\/h3>         &lt;time data-intl_type=\"date\" data-intl_value=\"2021-08-16 12:00\" data-intl_options=\"dateStyle: long, timeStyle: 'short'\">&lt;\/time>       &lt;\/div>     &lt;\/section>      &lt;section data-intl_root id=\"local_root\" class=\"card\">       &lt;h2 data-intl_type=\"custom\" data-intl_value=\"date_title\">         \u0414\u0430\u0442\u0430 \u0438 \u0432\u0440\u0435\u043c\u044f       &lt;\/h2>       &lt;div class=\"box\">         &lt;h3 data-intl_type=\"custom\" data-intl_value=\"without_options\">           \u0411\u0435\u0437 \u0432\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u044b\u0445 \u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043a         &lt;\/h3>         &lt;time data-intl_type=\"date\" data-intl_value=\"2021-08-16 12:00\">&lt;\/time>       &lt;\/div>       &lt;div class=\"box\">         &lt;h3 data-intl_type=\"custom\" data-intl_value=\"with_options\">           \u0421\u043e \u0432\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u044b\u043c\u0438 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430\u043c\u0438         &lt;\/h3>         &lt;time data-intl_type=\"date\" data-intl_value=\"2021-08-16 12:00\" data-intl_options=\"day: 'numeric', month: 'numeric', year: 'numeric', hour: '2-digit', minute: '2-digit'\">&lt;\/time>       &lt;\/div>     &lt;\/section>      &lt;section class=\"card\">       &lt;h2 data-intl_type=\"custom\" data-intl_value=\"relative_title\">         \u041e\u0442\u043d\u043e\u0441\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0435 \u0432\u0440\u0435\u043c\u044f       &lt;\/h2>       &lt;div class=\"box\">         &lt;h3 data-intl_type=\"custom\" data-intl_value=\"without_options\">           \u0411\u0435\u0437 \u0432\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u044b\u0445 \u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043a         &lt;\/h3>         &lt;p data-intl_type=\"relative\" data-intl_value=\"1 day\" data-intl_map=\"1_day\">&lt;\/p>       &lt;\/div>       &lt;div class=\"box\">         &lt;h3 data-intl_type=\"custom\" data-intl_value=\"with_options\">           \u0421\u043e \u0432\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u044b\u043c\u0438 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430\u043c\u0438         &lt;\/h3>         &lt;p data-intl_type=\"relative\" data-intl_value=\"1_day\" data-intl_options='numeric: \"always\"'>&lt;\/p>       &lt;\/div>     &lt;\/section>      &lt;section class=\"card\">       &lt;h2 data-intl_type=\"custom\" data-intl_value=\"number_title\">\u0427\u0438\u0441\u043b\u043e&lt;\/h2>       &lt;div class=\"box\">         &lt;h3 data-intl_type=\"custom\" data-intl_value=\"without_options\">           \u0411\u0435\u0437 \u0432\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u044b\u0445 \u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043a         &lt;\/h3>         &lt;p data-intl_type=\"number\" data-intl_value=\"123.45\">&lt;\/p>       &lt;\/div>       &lt;div class=\"box\">         &lt;h3 data-intl_type=\"custom\" data-intl_value=\"with_options\">           \u0421\u043e \u0432\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u044b\u043c\u0438 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430\u043c\u0438         &lt;\/h3>         &lt;h4 data-intl_type=\"custom\" data-intl_value=\"currency_title\">           \u0412\u0430\u043b\u044e\u0442\u0430         &lt;\/h4>         &lt;p data-intl_type=\"number\" data-intl_value=\"123.45\" data-intl_options=\"style: currency; currency: USD\">&lt;\/p>         &lt;h4 data-intl_type=\"custom\" data-intl_value=\"unit_title\">           \u0415\u0434\u0438\u043d\u0438\u0446\u0430 \u0438\u0437\u043c\u0435\u0440\u0435\u043d\u0438\u044f         &lt;\/h4>         &lt;p data-intl_type=\"number\" data-intl_value=\"123.45\" data-intl_options=\"{ style: unit; unit: celsius }\">&lt;\/p>       &lt;\/div>     &lt;\/section>      &lt;section class=\"card\">       &lt;h2 data-intl_type=\"custom\" data-intl_value=\"names_title\">         \u041d\u0430\u0437\u0432\u0430\u043d\u0438\u044f \u044f\u0437\u044b\u043a\u043e\u0432 \u0438 \u0442.\u0434.       &lt;\/h2>       &lt;div class=\"box\">         &lt;h3 data-intl_type=\"custom\" data-intl_value=\"without_options\">           \u0411\u0435\u0437 \u0432\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u044b\u0445 \u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043a         &lt;\/h3>         &lt;p data-intl_type=\"names\" data-intl_value=\"ru\">&lt;\/p>       &lt;\/div>       &lt;div class=\"box\">         &lt;h3 data-intl_type=\"custom\" data-intl_value=\"with_options\">           \u0421\u043e \u0432\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u044b\u043c\u0438 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430\u043c\u0438         &lt;\/h3>         &lt;p data-intl_type=\"names\" data-intl_value=\"EUR\" data-intl_options=\"type: currency\">&lt;\/p>       &lt;\/div>     &lt;\/section>      &lt;section class=\"card\">       &lt;h2 data-intl_type=\"custom\" data-intl_value=\"list_title\">\u0421\u043f\u0438\u0441\u043e\u043a&lt;\/h2>       &lt;div class=\"box\">         &lt;h3 data-intl_type=\"custom\" data-intl_value=\"without_options\">           \u0411\u0435\u0437 \u0432\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u044b\u0445 \u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043a         &lt;\/h3>         &lt;p data-intl_type=\"list\" data-intl_value=\"Chrome, Firefox, Safari\">&lt;\/p>       &lt;\/div>       &lt;div class=\"box\">         &lt;h3 data-intl_type=\"custom\" data-intl_value=\"with_options\">           \u0421\u043e \u0432\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u044b\u043c\u0438 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430\u043c\u0438         &lt;\/h3>         &lt;p data-intl_type=\"list\" data-intl_value=\"[Chrome, 'Firefox', `Safari`]\" data-intl_options=\"type: disjunction\">&lt;\/p>       &lt;\/div>     &lt;\/section>   &lt;\/div> &lt;\/main><\/code><\/pre>\n<p>  <\/p>\n<p>\u0417\u0434\u0435\u0441\u044c \u0443 \u043d\u0430\u0441 \u0438\u043c\u0435\u0435\u0442\u0441\u044f \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0435:<\/p>\n<p>  <\/p>\n<ul>\n<li>\u0434\u0432\u0430 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430 \u0441 \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u043e\u043c <code>data-intl_root<\/code> (\u0441 \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440\u0430\u043c\u0438 <code>global_root<\/code> \u0438 <code>local_root<\/code>)<\/li>\n<li>\u043f\u0435\u0440\u0435\u043a\u043b\u044e\u0447\u0430\u0442\u0435\u043b\u044c \u043b\u043e\u043a\u0430\u043b\u0438 (\u0441 \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440\u043e\u043c <code>locale<\/code>) \u2014 \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e <code>easy-intl<\/code> \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0443\u044e \u043b\u043e\u043a\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044e \u043f\u0440\u0438 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0438 \u044d\u043a\u0437\u0435\u043c\u043f\u043b\u044f\u0440\u0430 \u0438 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0438 \u043b\u043e\u043a\u0430\u043b\u0438. \u0410\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0443\u044e \u043b\u043e\u043a\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044e \u043c\u043e\u0436\u043d\u043e \u043e\u0442\u043a\u043b\u044e\u0447\u0438\u0442\u044c, \u043f\u0435\u0440\u0435\u0434\u0430\u0432 \u0432 \u043a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0442\u043e\u0440 <code>EasyIntl<\/code> \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0443 <code>autorun<\/code> \u0441\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435\u043c <code>false<\/code><\/li>\n<li>\u0440\u0430\u0437\u0434\u0435\u043b\u044b \u0441 \u0434\u0430\u0442\u043e\u0439 \u0438 \u0432\u0440\u0435\u043c\u0435\u043d\u0435\u043c (\u043e\u0434\u0438\u043d \u0432 <code>global_root<\/code> \u0438 \u0435\u0449\u0435 \u043e\u0434\u0438\u043d \u0432 <code>local_root<\/code>), \u043e\u0442\u043d\u043e\u0441\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u043c \u0432\u0440\u0435\u043c\u0435\u043d\u0435\u043c, \u0447\u0438\u0441\u043b\u0430\u043c\u0438 (\u0447\u0438\u0441\u043b\u043e, \u0432\u0430\u043b\u044e\u0442\u0430 \u0438 \u0435\u0434\u0438\u043d\u0438\u0446\u0430 \u0438\u0437\u043c\u0435\u0440\u0435\u043d\u0438\u044f), \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435\u043c \u044f\u0437\u044b\u043a\u0430 (\u044f\u0437\u044b\u043a \u0438 \u0432\u0430\u043b\u044e\u0442\u0430) \u0438 \u0441\u043f\u0438\u0441\u043a\u043e\u043c<\/li>\n<li>\u0432\u0441\u0435 \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u0438 \u0438\u043c\u0435\u044e\u0442 \u0430\u0442\u0440\u0438\u0431\u0443\u0442 <code>data-intl_custom<\/code> \u2014 \u043f\u0435\u0440\u0435\u0432\u043e\u0434 \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u043e\u0432 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442\u0441\u044f \u0432 \u0441\u043b\u043e\u0432\u0430\u0440\u0435<\/li>\n<li>\u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b \u0438\u043c\u0435\u044e\u0442 \u0430\u0442\u0440\u0438\u0431\u0443\u0442 <code>data-intl_map<\/code><\/li>\n<li>\u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u043c\u043e\u0433\u0443\u0442 \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0442\u044c \u0441\u0438\u043c\u0432\u043e\u043b\u044b <code>'\"<\/code>{}` \u0438 \u0440\u0430\u0437\u0434\u0435\u043b\u044f\u0442\u044c\u0441\u044f \u0437\u0430\u043f\u044f\u0442\u043e\u0439 \u0438\u043b\u0438 \u0442\u043e\u0447\u043a\u043e\u0439 \u0437\u0430\u043f\u044f\u0442\u043e\u0439. \u041a\u043b\u044e\u0447 \u0438 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0434\u043e\u043b\u0436\u043d\u044b \u0440\u0430\u0437\u0434\u0435\u043b\u044f\u0442\u044c\u0441\u044f \u0434\u0432\u043e\u0435\u0442\u043e\u0447\u0438\u0435\u043c<\/li>\n<li>\u0441\u043f\u0438\u0441\u043e\u043a \u043c\u043e\u0436\u0435\u0442 \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0442\u044c \u0441\u0438\u043c\u0432\u043e\u043b\u044b <code>'\"<\/code>[]` \u0438 \u0440\u0430\u0437\u0434\u0435\u043b\u044f\u0442\u044c\u0441\u044f \u0437\u0430\u043f\u044f\u0442\u043e\u0439 \u0438\u043b\u0438 \u0442\u043e\u0447\u043a\u043e\u0439 \u0437\u0430\u043f\u044f\u0442\u043e\u0439<\/li>\n<\/ul>\n<p>  <\/p>\n<p>\u041e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u043c \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u0434\u043b\u044f \u0433\u043b\u043e\u0431\u0430\u043b\u044c\u043d\u043e\u0439 \u043b\u043e\u043a\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0432 <code>intl\/options.js<\/code> (\u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u044f\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u0434\u0435\u0444\u043e\u043b\u0442\u043d\u044b\u043c\u0438, \u043d\u043e \u0432 \u0434\u0430\u043d\u043d\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u0431\u043e\u043b\u044c\u0448\u043e\u0433\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u044d\u0442\u043e \u043d\u0435 \u0438\u043c\u0435\u0435\u0442):<\/p>\n<p>  <\/p>\n<pre><code class=\"javascript\">export default {   date: { dateStyle: 'short' },   relative: { numeric: 'auto' },   number: { style: 'decimal' },   names: { type: 'language' },   list: { type: 'conjunction' } }<\/code><\/pre>\n<p>  <\/p>\n<p>\u041e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u043c \u0441\u043b\u043e\u0432\u0430\u0440\u044c \u0434\u043b\u044f \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u043e\u0432 \u0432 <code>intl\/dictionary.js<\/code> \u0434\u043b\u044f \u0440\u0443\u0441\u0441\u043a\u043e\u0433\u043e \u0438 \u0430\u043c\u0435\u0440\u0438\u043a\u0430\u043d\u0441\u043a\u043e\u0433\u043e \u0430\u043d\u0433\u043b\u0438\u0439\u0441\u043a\u043e\u0433\u043e \u044f\u0437\u044b\u043a\u043e\u0432:<\/p>\n<p>  <\/p>\n<pre><code class=\"javascript\">export default {   'ru-RU': {     main_title: '\u041f\u0440\u0438\u043c\u0435\u0440 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f Easy Intl',     locale_title: '\u041b\u043e\u043a\u0430\u043b\u044c',     date_title: '\u0414\u0430\u0442\u0430 \u0438 \u0432\u0440\u0435\u043c\u044f',     relative_title: '\u041e\u0442\u043d\u043e\u0441\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0435 \u0432\u0440\u0435\u043c\u044f',     number_title: '\u0427\u0438\u0441\u043b\u043e',     currency_title: '\u0412\u0430\u043b\u044e\u0442\u0430',     unit_title: '\u0415\u0434\u0438\u043d\u0438\u0446\u044b \u0438\u0437\u043c\u0435\u0440\u0435\u043d\u0438\u044f',     names_title: '\u041d\u0430\u0437\u0432\u0430\u043d\u0438\u044f \u044f\u0437\u044b\u043a\u043e\u0432 \u0438 \u0442.\u0434.',     list_title: '\u0421\u043f\u0438\u0441\u043e\u043a',     without_options: '\u0411\u0435\u0437 \u0432\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u044b\u0445 \u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043a',     with_options: '\u0421\u043e \u0432\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u044b\u043c\u0438 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430\u043c\u0438'   },   'en-US': {     main_title: 'Example of use Easy Intl',     locale_title: 'Locale',     date_title: 'Date and time',     relative_title: 'Relative time',     number_title: 'Number',     currency_title: 'Currency',     unit_title: 'Units',     names_title: 'Language names etc.',     list_title: 'List',     without_options: 'Without inline options',     with_options: 'With inline options'   } }<\/code><\/pre>\n<p>  <\/p>\n<p>\u041f\u0435\u0440\u0435\u0445\u043e\u0434\u0438\u043c \u043a \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u043c\u0443 \u0441\u043a\u0440\u0438\u043f\u0442\u0443 (<code>script.js<\/code>). \u0418\u043c\u043f\u043e\u0440\u0442\u0438\u0440\u0443\u0435\u043c <code>EasyIntl<\/code>, \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u0438 \u0441\u043b\u043e\u0432\u0430\u0440\u044c:<\/p>\n<p>  <\/p>\n<pre><code class=\"javascript\">import { EasyIntl } from '.\/node_modules\/easy-intl\/index.js' import options from '.\/intl\/options.js' import dictionary from '.\/intl\/dictionary.js'<\/code><\/pre>\n<p>  <\/p>\n<p>\u0421\u043e\u0437\u0434\u0430\u0435\u043c \u044d\u043a\u0437\u0435\u043c\u043f\u043b\u044f\u0440 <code>EasyIntl<\/code>, \u043f\u0435\u0440\u0435\u0434\u0430\u0432\u0430\u044f \u0432 \u043a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0442\u043e\u0440 \u043b\u043e\u043a\u0430\u043b\u044c <code>en-US<\/code>, \u0441\u0435\u043b\u0435\u043a\u0442\u043e\u0440 \u043a\u043e\u0440\u043d\u0435\u0432\u043e\u0433\u043e \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430 \u0434\u043b\u044f \u0433\u043b\u043e\u0431\u0430\u043b\u044c\u043d\u043e\u0439 \u043b\u043e\u043a\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438, \u0441\u043b\u043e\u0432\u0430\u0440\u044c \u0438 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 (\u043e\u0431\u0440\u0430\u0442\u0438\u0442\u0435 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435, \u0447\u0442\u043e \u043e\u0431\u044a\u0435\u043a\u0442 \u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043a \u0434\u043e\u043b\u0436\u0435\u043d \u0431\u044b\u0442\u044c \u0440\u0430\u0441\u043f\u0430\u043a\u043e\u0432\u0430\u043d):<\/p>\n<p>  <\/p>\n<pre><code class=\"javascript\">const globalIntl = new EasyIntl({   locale: 'en-US',   root: '#global_root',   dictionary,   ...options })<\/code><\/pre>\n<p>  <\/p>\n<p>\u041f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u043c\u044b \u043d\u0435 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u043c \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0443 <code>autorun<\/code> \u0441\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435\u043c <code>false<\/code>, \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u044d\u043a\u0437\u0435\u043c\u043f\u043b\u044f\u0440\u0430 <code>EasyIntl<\/code> \u043f\u0440\u0438\u0432\u043e\u0434\u0438\u0442 \u043a \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u043b\u043e\u043a\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f (\u0437\u0430 \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435\u043c \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0433\u043e \u0434\u043e\u0447\u0435\u0440\u043d\u0438\u0445 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 <code>local_root<\/code>).<\/p>\n<p>  <\/p>\n<p>\u041f\u0440\u0435\u043b\u0435\u0441\u0442\u044c <code>easy-intl<\/code> (\u0438, \u043a\u043e\u043d\u0435\u0447\u043d\u043e, \u0441\u0430\u043c\u043e\u0433\u043e <code>Intl<\/code>) \u0437\u0430\u043a\u043b\u044e\u0447\u0430\u0435\u0442\u0441\u044f \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e \u0434\u0435\u0444\u043e\u043b\u0442\u043d\u0430\u044f \u043b\u043e\u043a\u0430\u043b\u044c \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442\u0441\u044f \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438. \u042d\u0442\u043e \u043e\u0437\u043d\u0430\u0447\u0430\u0435\u0442, \u0447\u0442\u043e \u0434\u043b\u044f \u043b\u043e\u043a\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u043d\u0430 \u044f\u0437\u044b\u043a\u0435 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u044d\u043a\u0437\u0435\u043c\u043f\u043b\u044f\u0440 <code>EasyIntl<\/code> (\u0440\u0430\u0437\u0443\u043c\u0435\u0435\u0442\u0441\u044f, \u043f\u0440\u0438 \u0443\u0441\u043b\u043e\u0432\u0438\u0438 \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u043a \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b\u043c \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430\u043c \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u043e\u0432 <code>data-intl_type<\/code> \u0438 <code>data-intl_value<\/code>). \u041f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u0434\u043b\u044f \u0432\u0441\u0435\u0445 \u0432\u0441\u043f\u043e\u043c\u043e\u0433\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0445 \u0444\u0443\u043d\u043a\u0446\u0438\u0439, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u044b\u0445 <code>easy-intl<\/code>, \u0432\u043a\u043b\u044e\u0447\u0430\u044f, \u043a\u043e\u0440\u043d\u0435\u0432\u043e\u0439 \u044d\u043b\u0435\u043c\u0435\u043d\u0442, \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u044b \u0434\u0435\u0444\u043e\u043b\u0442\u043d\u044b\u0435 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 (\u043c\u043d\u043e\u0433\u0438\u0435 \u0434\u0435\u0444\u043e\u043b\u0442\u043d\u044b\u0435 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u044e\u0442\u0441\u044f <code>Intl<\/code>), \u0434\u043b\u044f \u043b\u043e\u043a\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u044c:<\/p>\n<p>  <\/p>\n<pre><code class=\"javascript\">new EasyIntl()<\/code><\/pre>\n<p>  <\/p>\n<p>\u041f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u043d\u0430 \u043b\u043e\u043a\u0430\u043b\u0438\u0437\u0443\u0435\u043c\u044b\u0435 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b, \u043a\u0430\u0440\u0442\u0443 \u043b\u043e\u043a\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438, \u0432 \u0446\u0435\u043b\u043e\u043c, \u0438 \u043b\u043e\u043a\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044e \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0433\u043e \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u0430, \u0432 \u0447\u0430\u0441\u0442\u043d\u043e\u0441\u0442\u0438:<\/p>\n<p>  <\/p>\n<pre><code class=\"javascript\">console.log(globalIntl.elements) \/\/ [h1, h2, h3, ...] console.log(globalIntl.map) \/* {   1_day: \"tomorrow\"   date_title: \"Date and time\"   main_title: \"Example of use Easy Intl\" } *\/ console.log(globalIntl.map['main_title']) \/\/ Example of use Easy Intl<\/code><\/pre>\n<p>  <\/p>\n<p>\u0412\u044b\u043f\u043e\u043b\u043d\u0438\u043c \u0440\u0443\u0447\u043d\u0443\u044e \u043b\u043e\u043a\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044e \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0433\u043e \u0434\u043e\u0447\u0435\u0440\u043d\u0438\u0445 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 <code>local_root<\/code>:<\/p>\n<p>  <\/p>\n<pre><code class=\"javascript\">const localIntl = new EasyIntl({   \/\/ \u043e\u0442\u043a\u043b\u044e\u0447\u0430\u0435\u043c \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0443\u044e \u043b\u043e\u043a\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044e   autorun: false,   dictionary,   \/\/ \u043f\u0435\u0440\u0435\u0434\u0430\u0435\u043c \u0434\u0440\u0443\u0433\u0438\u0435 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u0434\u043b\u044f \u0434\u0430\u0442\u044b   date: { day: '2-digit', month: 'long', year: 'numeric' } }) \/\/ \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u043c \u043b\u043e\u043a\u0430\u043b\u044c localIntl.locale = 'ja-JP' \/\/ \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u043c \u043a\u043e\u0440\u043d\u0435\u0432\u043e\u0439 \u044d\u043b\u0435\u043c\u0435\u043d\u0442 localIntl.root = '#local_root' \/\/ \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u043c \u043b\u043e\u043a\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044e localIntl.localize()<\/code><\/pre>\n<p>  <\/p>\n<p>\u041f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u0441\u0441\u044b\u043b\u043a\u0443 \u043d\u0430 \u043f\u0435\u0440\u0435\u043a\u043b\u044e\u0447\u0430\u0442\u0435\u043b\u044c \u043b\u043e\u043a\u0430\u043b\u0438 \u0438 \u043e\u0431\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0435\u043c \u0435\u0435 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0435:<\/p>\n<p>  <\/p>\n<pre><code class=\"javascript\">const localeSelector = document.querySelector('#locale_selector') localeSelector.onchange = (e) => {   \/\/ \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0435 \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u0430 `locale` \u043f\u0440\u0438\u0432\u043e\u0434\u0438\u0442 \u043a \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u043b\u043e\u043a\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438   globalIntl.locale = e.target.value }<\/code><\/pre>\n<p>  <\/p>\n<p>\u041f\u0440\u0438\u043e\u0440\u0438\u0442\u0435\u0442 \u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043a \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 (\u043e\u0442 \u043c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u043a \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u043c\u0443):<\/p>\n<p>  <\/p>\n<ul>\n<li><code>new EasyIntl(options)<\/code><\/li>\n<li><code>intl.localize(options)<\/code><\/li>\n<li><code>data-intl_options=\"options\"<\/code><\/li>\n<\/ul>\n<p>  <\/p>\n<p>\u041f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u0432\u043f\u043e\u043b\u043d\u0435 \u0440\u0430\u0431\u043e\u0442\u043e\u0441\u043f\u043e\u0441\u043e\u0431\u043d\u043e\u0435 \u043b\u043e\u043a\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d\u043d\u043e\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435:<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/webt\/o1\/um\/cs\/o1umcs4dbm_6clcjidq0hy-j3ke.png\" data-src=\"https:\/\/habrastorage.org\/webt\/o1\/um\/cs\/o1umcs4dbm_6clcjidq0hy-j3ke.png\"\/>  <\/p>\n<p>  <\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/webt\/mz\/ma\/ii\/mzmaiiybj4axy_ujx_mc4ex2hzq.png\" data-src=\"https:\/\/habrastorage.org\/webt\/mz\/ma\/ii\/mzmaiiybj4axy_ujx_mc4ex2hzq.png\"\/>  <\/p>\n<p>  <\/p>\n<p>  <\/p>\n<p>\u041f\u043e\u0436\u0430\u043b\u0443\u0439, \u044d\u0442\u043e \u0432\u0441\u0435, \u0447\u0435\u043c \u044f \u0445\u043e\u0442\u0435\u043b \u043f\u043e\u0434\u0435\u043b\u0438\u0442\u044c\u0441\u044f \u0441 \u0432\u0430\u043c\u0438 \u0432 \u0434\u0430\u043d\u043d\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435.<\/p>\n<p>  <\/p>\n<p>\u0415\u0441\u043b\u0438 \u0432\u0430\u0441 \u0437\u0430\u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043e\u0432\u0430\u043b\u0430 \u0443\u0442\u0438\u043b\u0438\u0442\u0430 <a href=\"https:\/\/www.npmjs.com\/package\/easy-intl\"><code>easy-intl<\/code><\/a>, \u043d\u0435 \u0441\u0442\u0435\u0441\u043d\u044f\u0439\u0442\u0435\u0441\u044c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0435\u0435 \u0432 \u0441\u0432\u043e\u0438\u0445 \u043f\u0440\u043e\u0435\u043a\u0442\u0430\u0445. \u041a\u0430\u043a \u0432\u0441\u0435\u0433\u0434\u0430, \u043f\u0440\u0438\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u0435\u0442\u0441\u044f \u043b\u044e\u0431\u043e\u0439 \u0444\u0438\u0434\u0431\u044d\u043a \u043a\u0430\u043a \u0432 \u0444\u043e\u0440\u043c\u0435 \u043b\u0438\u0447\u043d\u044b\u0445 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0439, \u0442\u0430\u043a \u0438 \u043d\u0430 <a href=\"https:\/\/github.com\/harryheman\/easy-intl\"><code>GitHub<\/code><\/a>.<\/p>\n<p>  <\/p>\n<p>\u0427\u0442\u043e \u043a\u0430\u0441\u0430\u0435\u0442\u0441\u044f \u043f\u043b\u0430\u043d\u043e\u0432 \u043f\u043e \u0434\u0430\u043b\u044c\u043d\u0435\u0439\u0448\u0435\u0439 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0435 \u0443\u0442\u0438\u043b\u0438\u0442\u044b, \u0442\u043e, \u043a\u0440\u043e\u043c\u0435 \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u0438\u0445 \u0434\u043e\u0440\u0430\u0431\u043e\u0442\u043e\u043a, \u0441\u0432\u044f\u0437\u0430\u043d\u043d\u044b\u0445 \u0441 \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u043c \u0441\u0442\u0440\u043e\u043a\u043e\u0432\u044b\u0445 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u043e\u0432 <code>data-intl_value<\/code> \u0432 \u043f\u0440\u0438\u0433\u043e\u0434\u043d\u044b\u0439 \u0434\u043b\u044f <code>Intl<\/code> \u0444\u043e\u0440\u043c\u0430\u0442, \u0432 \u043d\u0438\u0445 \u0432\u0445\u043e\u0434\u0438\u0442 \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0442\u0438\u043f\u043e\u0432 \u0434\u043b\u044f <code>TypeScript<\/code> \u0438, \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e, \u0430\u0434\u0430\u043f\u0442\u0430\u0446\u0438\u044f \u0443\u0442\u0438\u043b\u0438\u0442\u044b \u043f\u043e\u0434 <code>React<\/code> \u0432 \u0444\u043e\u0440\u043c\u0435 \u0445\u0443\u043a\u0430 \u0438\u043b\u0438 \u0441\u0432\u044f\u0437\u043a\u0438 \u043f\u0440\u043e\u0432\u0430\u0439\u0434\u0435\u0440\u0430 \u0438 \u0445\u0443\u043a\u0430.<\/p>\n<p>  <\/p>\n<p>\u041a\u0430\u043a \u0432\u0438\u0434\u0438\u0442\u0435, <code>Internationalization API<\/code> \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u0434\u043e\u0432\u043e\u043b\u044c\u043d\u043e \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u044b\u0435 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u0440\u0438 \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e\u043c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0438 \u043c\u043e\u0433\u0443\u0442 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u043e\u0431\u043b\u0435\u0433\u0447\u0438\u0442\u044c \u043f\u0440\u043e\u0446\u0435\u0441\u0441 \u0438\u043d\u0442\u0435\u0440\u043d\u0430\u0446\u0438\u043e\u043d\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0438 \u043b\u043e\u043a\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0432\u0435\u0431-\u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439.<\/p>\n<p>  <\/p>\n<p>\u0412\u043c\u0435\u0441\u0442\u0435 \u0441 \u0442\u0435\u043c \u043d\u0430\u0434\u043e \u043f\u043e\u043d\u0438\u043c\u0430\u0442\u044c, \u0447\u0442\u043e <code>Internationalization API<\/code> \u043d\u0435 \u043f\u0440\u0435\u0434\u043d\u0430\u0437\u043d\u0430\u0447\u0435\u043d \u0434\u043b\u044f \u043f\u0435\u0440\u0435\u0432\u043e\u0434\u0430 (\u0435\u0433\u043e \u0437\u0430\u0434\u0430\u0447\u0438 \u0447\u0435\u0442\u043a\u043e \u043e\u0431\u043e\u0437\u043d\u0430\u0447\u0435\u043d\u044b \u0432 \u0441\u043f\u0435\u0446\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0438), \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043c\u043d\u043e\u0433\u0438\u0435 \u0432\u0435\u0449\u0438 \u043f\u0440\u0438\u0434\u0435\u0442\u0441\u044f \u0434\u0435\u043b\u0430\u0442\u044c \u0432\u0440\u0443\u0447\u043d\u0443\u044e \u0438\u043b\u0438 \u043f\u0440\u0438\u0431\u0435\u0433\u0430\u0442\u044c \u043a \u043f\u043e\u043c\u043e\u0449\u0438 \u0442\u0430\u043a\u0438\u0445 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u043e\u0432, \u043a\u0430\u043a <a href=\"https:\/\/cloud.google.com\/translate\"><code>Google Cloud Translation API<\/code><\/a> \u0438\u043b\u0438 <a href=\"https:\/\/yandex.ru\/dev\/translate\/\"><code>API \u041f\u0435\u0440\u0435\u0432\u043e\u0434\u0447\u0438\u043a\u0430 \u042f\u043d\u0434\u0435\u043a\u0441\u0430<\/code><\/a>.<\/p>\n<p>  <\/p>\n<p>\u0422\u0430\u043a\u0436\u0435 \u0432\u0430\u0436\u043d\u043e \u0443\u0447\u0438\u0442\u044b\u0432\u0430\u0442\u044c, \u0447\u0442\u043e <code>Internationalization API<\/code> \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043e\u0442\u043d\u043e\u0441\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043d\u043e\u0432\u044b\u043c \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u043e\u043c, \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0435\u0433\u043e \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438 \u0435\u0449\u0435 \u043d\u0430\u0445\u043e\u0434\u044f\u0442\u0441\u044f \u0432 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0435 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u0430\u043c\u0438, \u0438, \u0432\u0435\u0440\u043e\u044f\u0442\u043d\u043e, \u0432 \u0431\u0443\u0434\u0443\u0449\u0435\u043c \u043f\u043e\u044f\u0432\u044f\u0442\u0441\u044f \u043d\u043e\u0432\u044b\u0435 &#171;\u0444\u0438\u0447\u0438&#187;.<\/p>\n<p>  <\/p>\n<p>\u0411\u043b\u0430\u0433\u043e\u0434\u0430\u0440\u044e \u0437\u0430 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435 \u0438 \u0445\u043e\u0440\u043e\u0448\u0435\u0433\u043e \u0434\u043d\u044f!<\/p>\n<p>  <\/p>\n<hr\/>\n<p>  <\/p>\n<p><a href=\"https:\/\/timeweb.com\/ru\/?utm_source=habr&amp;utm_medium=banner&amp;utm_campaign=10S&amp;utm_content=low\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/webt\/wo\/qf\/6c\/woqf6cweprtwtuq2m7jch92h5wk.png\" data-src=\"https:\/\/habrastorage.org\/webt\/wo\/qf\/6c\/woqf6cweprtwtuq2m7jch92h5wk.png\"\/><\/a><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p><!----><!----><\/div>\n<p><!----><!----><br \/> \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b \u0441\u0442\u0430\u0442\u044c\u0438 <a href=\"https:\/\/habr.com\/ru\/articles\/576890\/\"> https:\/\/habr.com\/ru\/articles\/576890\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<div><!--[--><!--]--><\/div>\n<div id=\"post-content-body\">\n<div>\n<div class=\"article-formatted-body article-formatted-body article-formatted-body_version-1\">\n<div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/webt\/wn\/z2\/sg\/wnz2sghmffrl2zkuqtbm5w210ve.jpeg\" data-src=\"https:\/\/habrastorage.org\/webt\/wn\/z2\/sg\/wnz2sghmffrl2zkuqtbm5w210ve.jpeg\" data-blurred=\"true\"\/>  <\/p>\n<p>  \u041f\u0440\u0438\u0432\u0435\u0442, \u0434\u0440\u0443\u0437\u044c\u044f!<\/p>\n<p>  <\/p>\n<p>\u0412 \u0434\u0430\u043d\u043d\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u044f \u0445\u043e\u0447\u0443 \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u0430\u0442\u044c \u0432\u0430\u043c \u043e\u0431 <a href=\"https:\/\/tc39.es\/ecma402\/\"><code>Internationalization API<\/code><\/a> \u2014 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0435, \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u043c\u043e\u043c \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u043e\u043c, \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u044e\u0449\u0435\u043c \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0442\u044c \u0438\u043d\u0442\u0435\u0440\u043d\u0430\u0446\u0438\u043e\u043d\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044e \u0438 \u043b\u043e\u043a\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044e \u0432\u0435\u0431-\u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439.<\/p>\n<p>  <\/p>\n<p>\u0421\u0442\u0430\u0442\u044c\u044f \u0441\u043e\u0441\u0442\u043e\u0438\u0442 \u0438\u0437 2 \u0447\u0430\u0441\u0442\u0435\u0439: \u0442\u0435\u043e\u0440\u0435\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u0438 \u043f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0439. \u0412 \u0442\u0435\u043e\u0440\u0435\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u0447\u0430\u0441\u0442\u0438 \u043c\u044b \u043a\u0440\u0430\u0442\u043a\u043e \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438, \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u043c\u044b\u0435 <code>Internationalization API<\/code>. \u0412 \u043f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u2014 \u0441\u043e\u0437\u0434\u0430\u0434\u0438\u043c \u043f\u0440\u0438\u043c\u0435\u0440 \u043b\u043e\u043a\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d\u043d\u043e\u0433\u043e \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e <a href=\"https:\/\/www.npmjs.com\/package\/easy-intl\">\u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0430\u043d\u043d\u043e\u0439 \u043c\u043d\u043e\u0439 \u0443\u0442\u0438\u043b\u0438\u0442\u044b<\/a>.<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[],"tags":[],"class_list":["post-417358","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/417358","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=417358"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/417358\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=417358"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=417358"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=417358"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}