{"id":299310,"date":"2020-02-26T15:00:43","date_gmt":"2020-02-26T15:00:43","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=299310"},"modified":"-0001-11-30T00:00:00","modified_gmt":"2020-02-26T15:00:43","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=299310","title":{"rendered":"\u041e\u0440\u0433\u0430\u043d\u0438\u0437\u0430\u0446\u0438\u044f \u0432\u0435\u0434\u0435\u043d\u0438\u044f \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438 \u0438 \u043f\u0435\u0440\u0435\u0432\u043e\u0434\u0430, \u043d\u0430 \u043f\u0440\u0438\u043c\u0435\u0440\u0435 iondv. framework"},"content":{"rendered":"\n<div class=\"post__text post__text-html\" id=\"post-content-body\" data-io-article-url=\"https:\/\/habr.com\/ru\/post\/488956\/\">\n<p><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/gg\/f-\/3a\/ggf-3arqdyxxpknobbjra9r3p38.png\"><\/p>\n<p>  <\/p>\n<p>\u041a\u0430\u043a \u0438 \u0443 \u043c\u043d\u043e\u0433\u0438\u0445 \u043a\u043e\u043c\u0430\u043d\u0434 \u0440\u0430\u0437\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u044e\u0449\u0438\u0445 \u0431\u043e\u043b\u044c\u0448\u0438\u0435 \u043f\u0440\u043e\u0434\u0443\u043a\u0442\u044b, \u043f\u0440\u0438 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0435 \u043e\u043f\u0435\u043d\u0441\u043e\u0440\u0441\u043d\u043e\u0433\u043e \u0444\u0440\u0435\u0439\u043c\u0432\u043e\u0440\u043a\u0430 \u0434\u043b\u044f \u0432\u0438\u0437\u0443\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u0432\u0435\u0431-\u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439 <a href=\"http:\/\/iondv.com\">iondv.framework <\/a> \u0432\u043e\u0437\u043d\u0438\u043a\u043b\u0430 \u0437\u0430\u0434\u0430\u0447\u0430 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0435\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u044b. \u0421\u043d\u0430\u0447\u0430\u043b\u0430 \u0434\u043b\u044f \u0441\u0435\u0431\u044f \u0438 \u043d\u043e\u0432\u044b\u0445 \u0441\u043e\u0442\u0440\u0443\u0434\u043d\u0438\u043a\u043e\u0432. \u041f\u043e\u0442\u043e\u043c \u0434\u043b\u044f \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439. \u0410 \u0432 \u043d\u0430\u0441\u0442\u043e\u044f\u0449\u0435\u0435 \u0432\u0440\u0435\u043c\u044f \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044f \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0438 \u0432\u0430\u0436\u043d\u044b\u043c \u0441\u0440\u0435\u0434\u0441\u0442\u0432\u043e\u043c \u043f\u0440\u043e\u0434\u0432\u0438\u0436\u0435\u043d\u0438\u044f \u043f\u0440\u043e\u0434\u0443\u043a\u0442\u0430. \u0418 \u0445\u043e\u0442\u044f \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u0435 \u0432\u0440\u0435\u043c\u044f \u0438\u0434\u0451\u0442 \u0441\u043c\u0435\u0449\u0435\u043d\u0438\u0435 \u0432 \u0441\u0442\u043e\u0440\u043e\u043d\u0443 \u043c\u0435\u0434\u0438\u0430 \u043c\u0430\u0442\u0435\u0440\u0438\u0430\u043b\u043e\u0432 (\u0432\u0438\u0434\u0435\u043e \u0443\u0440\u043e\u043a\u043e\u0432), \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044f \u0432\u0430\u0436\u043d\u0430.<\/p>\n<p>  <\/p>\n<p>\u041c\u044b \u043f\u0440\u043e\u0448\u043b\u0438 \u043f\u0443\u0442\u044c \u043e\u0442 wiki \u0432 \u0433\u0438\u0442\u043b\u0430\u0431, \u0434\u043e \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0439 \u0438 \u0441\u0438\u043d\u0445\u0440\u043e\u043d\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0439 \u043f\u043e \u0434\u0432\u0443\u043c \u044f\u0437\u044b\u043a\u0430\u043c \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438 \u0432 \u0432\u0438\u0434\u0435 markdown \u0444\u0430\u0439\u043b\u043e\u0432 \u043f\u0443\u0431\u043b\u0438\u043a\u0443\u0435\u043c\u044b\u0445 \u0432 \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0438 github. \u0418 \u0432\u043e\u0442 \u043c\u044b \u043d\u0430\u0447\u0430\u043b\u0438 \u043f\u0435\u0440\u0435\u0445\u043e\u0434 \u043d\u0430 Weblate. \u0422\u0430\u043a \u043a\u0430\u043a \u0441\u0442\u0430\u0442\u0435\u0439 \u043e \u043d\u0451\u043c \u043d\u0430 \u0445\u0430\u0431\u0440\u0435 \u043c\u0430\u043b\u043e \u2013 \u043d\u0438\u0436\u0435 \u043e \u043d\u0430\u0448\u0438\u0445 \u043e\u0448\u0438\u0431\u043a\u0430\u0445, \u0441\u043b\u043e\u0436\u043d\u043e\u0441\u0442\u044f\u0445 \u0438 \u043e\u043f\u044b\u0442\u0435 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u043f\u0435\u0440\u0435\u0432\u043e\u0434\u0430 open-source \u043f\u0440\u043e\u0435\u043a\u0442\u0430.<\/p>\n<p><a name=\"habracut\"><\/a>  <\/p>\n<h3 id=\"podhody-k-organizacii-dokumentacii-i-eyo-lokalizacii\">\u041f\u043e\u0434\u0445\u043e\u0434\u044b \u043a \u043e\u0440\u0433\u0430\u043d\u0438\u0437\u0430\u0446\u0438\u0438 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438 \u0438 \u0435\u0451 \u043b\u043e\u043a\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438<\/h3>\n<p>  <\/p>\n<p>\u0414\u043b\u044f \u043d\u0430\u0447\u0430\u043b\u0430 \u043f\u043e\u0447\u0435\u043c\u0443 \u043d\u0435 \u0433\u043e\u0434\u0438\u0442\u0441\u044f wiki \u0433\u0438\u0442\u043b\u0430\u0431\u0430? \u0412 \u043d\u0435\u0439 \u043d\u0435\u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e \u043d\u043e\u0440\u043c\u0430\u043b\u044c\u043d\u043e \u043e\u0440\u0433\u0430\u043d\u0438\u0437\u043e\u0432\u0430\u0442\u044c \u0441\u043e\u0432\u043c\u0435\u0441\u0442\u043d\u0443\u044e \u0440\u0430\u0431\u043e\u0442\u0443 \u0438 \u0441\u043e\u043f\u0440\u043e\u0432\u043e\u0436\u0434\u0435\u043d\u0438\u0435 \u0432\u0435\u0440\u0441\u0438\u043e\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0439 \u043a\u043e\u0434\u0430 \u0438 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0439 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438. \u0418\u0437-\u0437\u0430 \u044d\u0442\u043e\u0433\u043e \u043c\u044b \u043e\u0447\u0435\u043d\u044c \u0441\u0438\u043b\u044c\u043d\u043e \u0443\u043f\u0443\u0441\u0442\u0438\u043b\u0438 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0443 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438 \u043e\u0442 \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u044b\u0445 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0435\u0439 \u043d\u0430 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u043e\u043c \u044d\u0442\u0430\u043f\u0435. \u0422\u0430\u043a \u043a\u0430\u043a \u043f\u043e\u044f\u0432\u043b\u0435\u043d\u0438\u0435 \u043d\u043e\u0432\u044b\u0445 \u0444\u0443\u043d\u043a\u0446\u0438\u0439 \u2014 \u043d\u0435 \u0441\u043e\u043f\u0440\u043e\u0432\u043e\u0436\u0434\u0430\u043b\u043e\u0441\u044c \u043f\u043e\u044f\u0432\u043b\u0435\u043d\u0438\u0435\u043c \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438. \u0412\u0442\u043e\u0440\u043e\u0435 \u043f\u043e\u0447\u0442\u0438 \u043d\u0435\u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e \u043e\u0440\u0433\u0430\u043d\u0438\u0437\u043e\u0432\u0430\u0442\u044c \u043f\u0430\u0440\u0430\u043b\u043b\u0435\u043b\u044c\u043d\u044b\u0439 \u043f\u0435\u0440\u0435\u0432\u043e\u0434 \u2014 \u0442\u0430\u043a \u043a\u0430\u043a \u043e\u0442\u0441\u043b\u0435\u0436\u0438\u0432\u0430\u043d\u0438\u0435 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0439 \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0442\u0440\u0443\u0434\u043e\u0451\u043c\u043a\u043e.<\/p>\n<p>  <\/p>\n<p>\u0412\u044b\u0445\u043e\u0434\u043e\u043c \u043d\u0430 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u043e\u043c \u044d\u0442\u0430\u043f\u0435 \u0441\u0442\u0430\u043b \u043f\u0435\u0440\u0435\u043d\u043e\u0441 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438 \u0432 \u0444\u043e\u0440\u043c\u0430\u0442\u0435 markdown \u0432 \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0439 \u044f\u0434\u0440\u0430 \u2014 \u043f\u0440\u043e\u0441\u0442\u043e \u0441\u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u043b\u0438 \u043f\u0430\u043f\u043a\u0443 wiki \u0432 \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0439 \u0432 \u043f\u0430\u043f\u043a\u0443 docs \u0432 \u043a\u043e\u0440\u043d\u0435\u0439 \u0444\u0440\u0435\u0439\u043c\u0432\u043e\u0440\u043a\u0430 \u0438 \u0432 \u043d\u0435\u0439 \u0440\u0430\u0437\u0434\u0435\u043b\u0438\u043b\u0438 \u043d\u0430 \u0434\u0432\u0435 <a href=\"https:\/\/github.com\/iondv\/framework\/tree\/3.1.0ru\/docs\">\u043f\u043e\u0434\u043f\u0430\u043f\u043a\u0438 ru \u0438 en<\/a>. \u0421\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044f \u0440\u0430\u0437\u0434\u0435\u043b\u0438\u043b\u0430\u0441\u044c \u043d\u0430 \u0434\u0432\u0435 \u0447\u0430\u0441\u0442\u0438. \u0412\u0432\u0435\u043b\u0438 \u0431\u0438\u0437\u043d\u0435\u0441-\u043f\u0440\u043e\u0446\u0435\u0441\u0441 \u0432 jira \u2014 \u043f\u043e \u0432\u0441\u0435\u043c \u0437\u0430\u0434\u0430\u0447\u0430\u043c \u0441 \u043d\u043e\u0432\u043e\u0439 \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u043e\u0441\u0442\u044c\u044e \u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0439 \u044d\u0442\u0430\u043f \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f, \u0430 \u0437\u0430 \u043d\u0438\u043c \u0438 \u043f\u0435\u0440\u0435\u0432\u043e\u0434\u0430. \u041f\u043e \u043a\u043e\u043c\u043c\u0438\u0442\u0430\u043c \u0432 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u044b \u043b\u0435\u0433\u043a\u043e \u043e\u0442\u0441\u043b\u0435\u0436\u0438\u0432\u0430\u0442\u044c \u043a\u0430\u043a\u0438\u0435 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u0431\u044b\u043b\u0438, \u0431\u044b\u043b \u043b\u0438 \u0441\u0434\u0435\u043b\u0430\u043d \u043f\u0435\u0440\u0435\u0432\u043e\u0434.<\/p>\n<p>  <\/p>\n<p>\u041d\u043e \u0443 \u044d\u0442\u043e\u0439 \u0441\u0445\u0435\u043c\u044b \u0435\u0441\u0442\u044c \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0435 \u043d\u0435\u0434\u043e\u0441\u0442\u0430\u0442\u043a\u0438:<\/p>\n<p>  <\/p>\n<ul>\n<li>\u0440\u0430\u0431\u043e\u0442\u0430 \u0441 \u0441\u0430\u043c\u043e\u0439 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0435\u0439 \u043e\u0431\u044b\u0447\u043d\u044b\u043c \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f\u043c \u043d\u0435 \u0443\u0434\u043e\u0431\u043d\u0430;<\/li>\n<li>\u043f\u0435\u0440\u0435\u0432\u043e\u0434\u0447\u0438\u043a \u0445\u043e\u0442\u044c \u0438 \u043e\u0441\u0432\u043e\u0438\u043b\u0430 \u043a\u043e\u043c\u043c\u0438\u0442\u044b, git \u0438 markdown \u2014 \u043d\u043e \u0432 \u0446\u0435\u043b\u043e\u043c \u044d\u0442\u043e \u043e\u0447\u0435\u043d\u044c \u043d\u0435\u0443\u0434\u043e\u0431\u043d\u044b\u0439 \u0441\u043f\u043e\u0441\u043e\u0431 \u043e\u0440\u0433\u0430\u043d\u0438\u0437\u0430\u0446\u0438\u0438 \u043f\u0435\u0440\u0435\u0432\u043e\u0434\u0430 \u0431\u043e\u043b\u044c\u0448\u0438\u0445 \u043e\u0431\u044a\u0451\u043c\u043e\u0432 \u0442\u0435\u043a\u0441\u0442\u043e\u0432;<\/li>\n<li>\u0441\u043b\u043e\u0436\u043d\u043e \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0442\u044c \u0446\u0435\u043b\u043e\u0441\u0442\u043d\u043e\u0441\u0442\u044c \u0441\u0441\u044b\u043b\u043e\u043a \u0438 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0438\u0435 \u0442\u0435\u043a\u0441\u0442\u043e\u0432, \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e \u043f\u0440\u0438 \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u0438\u0445 \u043f\u0440\u0430\u0432\u043a\u0430\u0445 \u2014 \u043d\u0430\u0434\u043e \u0432\u0440\u0443\u0447\u043d\u0443\u044e \u0441\u043b\u0435\u0434\u0438\u0442\u044c \u0437\u0430 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f\u043c\u0438 \u0432 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0445;<\/li>\n<li>\u043e\u0434\u0438\u043d\u0430\u043a\u043e\u0432\u044b\u0435 \u0440\u0430\u0437\u0434\u0435\u043b\u044b \u0448\u0430\u0431\u043b\u043e\u043d\u043e\u0432 \u043d\u0430 \u043a\u0430\u0436\u0434\u043e\u0439 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0435 \u043d\u0443\u0436\u043d\u043e \u043f\u0440\u043e\u043f\u0438\u0441\u044b\u0432\u0430\u0442\u044c;<\/li>\n<li>\u043d\u0435\u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e \u043e\u0440\u0433\u0430\u043d\u0438\u0437\u043e\u0432\u0430\u0442\u044c \u0443\u0447\u0430\u0441\u0442\u0438\u0435 \u0441\u043e\u043e\u0431\u0449\u0435\u0441\u0442\u0432\u0430 \u0432 \u043f\u0435\u0440\u0435\u0432\u043e\u0434\u0435 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438.<\/li>\n<\/ul>\n<p>  <\/p>\n<p>\u041f\u043e\u0441\u043b\u0435 \u0438\u0437\u0443\u0447\u0435\u043d\u0438\u044f \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u043e\u0432, \u043d\u0430\u043c \u043f\u043e\u043d\u0440\u0430\u0432\u0438\u043b\u0430\u0441\u044c \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u0440\u0430\u0437\u043c\u0435\u0449\u0435\u043d\u0438\u044f \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u043e\u0432 \u043d\u0430 <a href=\"http:\/\/readthedocs.org\/\">http:\/\/readthedocs.org\/<\/a> \u2014 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u044b \u0440\u0430\u0437\u043c\u0435\u0449\u0435\u043d\u0438\u044f \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0435\u0441\u043a\u043e\u0439 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438. \u0418\u0437\u043d\u0430\u0447\u0430\u043b\u044c\u043d\u043e \u0432\u0441\u0435 \u044d\u0442\u043e \u0432\u044b\u0440\u043e\u0441\u043b\u043e \u0438\u0437 Python (\u0443 \u043d\u0430\u0441 \u0444\u0440\u0435\u0439\u043c\u0432\u043e\u0440\u043a \u043d\u0430 node.js) \u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u043c\u0435\u0442\u043e\u0434\u043e\u0432 \u0438\u0437 &quot;\u043a\u043e\u043d\u043a\u0443\u0440\u0438\u0440\u0443\u044e\u0449\u0435\u0433\u043e \u043b\u0430\u0433\u0435\u0440\u044f&quot; \u043a\u0430\u0437\u0430\u043b\u0441\u044f \u0441\u0442\u0440\u0430\u043d\u043d\u044b\u043c. \u041d\u043e \u0432 \u0446\u0435\u043b\u043e\u043c \u044d\u0442\u043e \u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u0438\u043c\u0435\u0435\u0442 \u043e\u0447\u0435\u043d\u044c \u0432\u0430\u0436\u043d\u044b\u0435 \u043f\u0440\u0435\u0438\u043c\u0443\u0449\u0435\u0441\u0442\u0432\u0430: \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442 \u0432\u0435\u0440\u0441\u0438\u043e\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438 \u0438 \u044f\u0437\u044b\u043a\u0438 \u2014 \u0432\u0441\u0435 \u044d\u0442\u043e \u0431\u0430\u0437\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 sphinx-doc.org. \u0422\u043e, \u0447\u0442\u043e \u043c\u043e\u0436\u043d\u043e \u0441\u043e\u0431\u0438\u0440\u0430\u0442\u044c \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044e \u0438 \u0431\u0435\u0437\u0432\u043e\u0437\u043c\u0435\u0437\u0434\u043d\u043e \u0445\u043e\u0441\u0442\u0438\u0442\u044c \u0435\u0451 \u043f\u0440\u044f\u043c\u043e \u043d\u0430 readthedocs \u044d\u0442\u043e \u0431\u043e\u043b\u044c\u0448\u0435 \u0431\u043e\u043d\u0443\u0441, \u0445\u043e\u0442\u044f \u0438 \u043f\u0440\u0438\u044f\u0442\u043d\u044b\u0439.<\/p>\n<p>  <\/p>\n<p>\u0418\u0437 \u043c\u0438\u043d\u0443\u0441\u043e\u0432, \u043d\u0430\u043c \u043d\u0435 \u0443\u0434\u0430\u043b\u043e\u0441\u044c \u043d\u043e\u0440\u043c\u0430\u043b\u044c\u043d\u043e \u043d\u0430\u0441\u0442\u0440\u043e\u0438\u0442\u044c \u043f\u0435\u0440\u0435\u0432\u043e\u0434 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438 \u0438\u0437 \u0440\u0443\u0441\u0441\u043a\u043e\u0439 \u0432\u0435\u0440\u0441\u0438\u0438 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438 \u0432 markdown \u2013 \u0442\u0430\u043a \u043a\u0430\u043a \u0441\u043f\u0438\u0441\u043a\u0438, \u0442\u0430\u0431\u043b\u0438\u0446\u044b, \u0441\u0441\u044b\u043b\u043a\u0438 \u043f\u0435\u0440\u0435\u0432\u043e\u0434\u044f\u0442\u0441\u044f \u043a\u0430\u043a \u0442\u0435\u043a\u0441\u0442 \u0438 \u043f\u0440\u0438 \u043e\u0431\u0440\u0430\u0442\u043d\u043e\u0439 \u0441\u0431\u043e\u0440\u043a\u0435 \u043e\u043d\u0438 \u0441\u0442\u0430\u043d\u043e\u0432\u044f\u0442\u0441\u044f \u043e\u0431\u044b\u0447\u043d\u044b\u043c \u0442\u0435\u043a\u0441\u0442\u043e\u043c \u0432 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u043f\u0440\u0438\u0448\u043b\u043e\u0441\u044c \u043c\u0438\u0433\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043d\u0430 <a href=\"https:\/\/ru.wikipedia.org\/wiki\/ReStructuredText\">reStructuredText<\/a>.<\/p>\n<p>  <\/p>\n<p>\u041c\u044b \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u043b\u0438 \u044d\u043a\u0441\u043f\u0435\u0440\u0438\u043c\u0435\u043d\u0442 \u043f\u043e \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0443, \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0430\u043c\u0438 \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u0438 \u0445\u043e\u0442\u0438\u043c \u043f\u043e\u0434\u0435\u043b\u0438\u0442\u044c\u0441\u044f. \u0427\u0442\u043e \u0432 \u0438\u0442\u043e\u0433\u0435 \u0441\u0434\u0435\u043b\u0430\u043b\u0438:<\/p>\n<p>  <\/p>\n<ul>\n<li>\u0432\u044b\u0434\u0435\u043b\u0438\u043b\u0438 \u0438\u0441\u0445\u043e\u0434\u043d\u0443\u044e \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044e \u0432\u0435\u0434\u0443\u0449\u0443\u044e\u0441\u044f \u043d\u0430 \u0440\u0443\u0441\u0441\u043a\u043e\u043c \u044f\u0437\u044b\u043a\u0435 \u0432 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0439 \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0439 <a href=\"https:\/\/github.com\/iondv\/docs-ru\">https:\/\/github.com\/iondv\/docs-ru<\/a> ;<\/li>\n<li>\u0441\u043e\u0437\u0434\u0430\u043b\u0438 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0439 \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0439 \u0434\u043b\u044f \u043b\u043e\u043a\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438 \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u043e\u0439 \u043d\u0430 \u0440\u0443\u0441\u0441\u043a\u043e\u043c \u043d\u0430 \u0430\u043d\u0433\u043b\u0438\u0439\u0441\u043a\u0438\u0439 \u044f\u0437\u044b\u043a \u0438 \u0432 \u043f\u0435\u0440\u0441\u043f\u0435\u043a\u0442\u0438\u0432\u0435 \u043d\u0430 \u0434\u0440\u0443\u0433\u0438\u0435 \u044f\u0437\u044b\u043a\u0438 <a href=\"https:\/\/github.com\/iondv\/docs-l10n\">https:\/\/github.com\/iondv\/docs-l10n<\/a> \u2014 \u043e\u043d \u0444\u043e\u0440\u043c\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e \u0441\u0431\u043e\u0440\u043a\u043e\u0439 \u0438 \u043a\u043e\u043c\u043c\u0438\u0442\u0430\u043c\u0438 \u0438\u0437 weblate ;<\/li>\n<li>\u043d\u0430\u0441\u0442\u0440\u043e\u0438\u043b\u0438 \u0437\u0430\u0434\u0430\u0447\u0443 \u0434\u043b\u044f \u043f\u0435\u0440\u0438\u043e\u0434\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f \u043b\u043e\u043a\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0439 \u0434\u043b\u044f \u043f\u0435\u0440\u0435\u0432\u043e\u0434\u043e\u0432 sphinx;<\/li>\n<li>\u043f\u043e\u0434\u043d\u044f\u043b\u0438 \u0441\u0432\u043e\u0439 weblate \u0441\u0435\u0440\u0432\u0435\u0440 \u0434\u043b\u044f \u043e\u0440\u0433\u0430\u043d\u0438\u0437\u0430\u0446\u0438\u0438 \u043f\u0435\u0440\u0435\u0432\u043e\u0434\u043e\u0432 <a href=\"https:\/\/weblate.iondv.com\">https:\/\/weblate.iondv.com<\/a> ;<\/li>\n<li>\u043d\u0430\u0441\u0442\u0440\u043e\u0438\u043b\u0438 readthedocs \u0434\u043b\u044f \u0441\u0431\u043e\u0440\u043a\u0438 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438 <a href=\"https:\/\/iondv.readthedocs.io\/\">https:\/\/iondv.readthedocs.io\/<\/a> \u0438 \u0435\u0451 \u043f\u0443\u0431\u043b\u0438\u043a\u0430\u0446\u0438\u0438 \u0441 \u0438\u0437\u043d\u0430\u0447\u0430\u043b\u044c\u043d\u043e \u0430\u043d\u0433\u043b\u0438\u0439\u0441\u043a\u043e\u0439 \u0432\u0435\u0440\u0441\u0438\u0435\u0439 (\u0430\u043d\u0433\u043b\u0438\u0439\u0441\u043a\u0430\u044f \u0432\u0435\u0440\u0441\u0438\u044f \u043f\u0435\u0440\u0435\u043d\u0435\u0441\u0435\u043d\u0430 \u043d\u0435 \u0432\u0441\u044f \u2014 \u043d\u0430\u0445\u043e\u0434\u0438\u043c\u0441\u044f \u0432 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0435 \u043c\u0438\u0433\u0440\u0430\u0446\u0438\u0438 \u0441 \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u044f).<\/li>\n<li>\u0437\u0430\u043f\u0443\u0441\u0442\u0438\u043b\u0438 \u0432\u0441\u0451 \u044d\u0442\u043e \u0432 \u043e\u0431\u043a\u0430\u0442\u043a\u0443, \u043f\u0435\u0440\u0435\u0434 \u0437\u0430\u043f\u043b\u0430\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0439 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0439 \u0434\u043e\u0440\u0430\u0431\u043e\u0442\u043a\u043e\u0439 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438.<\/li>\n<\/ul>\n<p>  <\/p>\n<p>\u041d\u0435\u043c\u043d\u043e\u0433\u043e \u043f\u043e\u0434\u0441\u043c\u043e\u0442\u0440\u0435\u043b\u0438 \u0443 <a href=\"https:\/\/godotengine.org\/\">Godot Engine<\/a>:<\/p>\n<p>  <\/p>\n<ul>\n<li>\u043e\u0440\u0433\u0430\u043d\u0438\u0437\u0430\u0446\u0438\u044f \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0435\u0432 <a href=\"https:\/\/github.com\/godotengine\/godot-docs\">https:\/\/github.com\/godotengine\/godot-docs<\/a>;<\/li>\n<li>\u043e\u0440\u0433\u0430\u043d\u0438\u0437\u0430\u0446\u0438\u044f \u043f\u0435\u0440\u0435\u0432\u043e\u0434\u0430 \u0447\u0435\u0440\u0435\u0437 \u0441\u0435\u0440\u0432\u0438\u0441 <a href=\"https:\/\/hosted.weblate.org\/projects\/godot-engine\/\">weblate<\/a>.<\/li>\n<\/ul>\n<p>  <\/p>\n<p>\u041d\u0438\u0436\u0435 \u043e\u043f\u0438\u0441\u0430\u043d\u0430 \u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u0430 \u0440\u0430\u0437\u0432\u0451\u0440\u0442\u044b\u0432\u0430\u043d\u0438\u044f \u0441 \u043d\u0443\u043b\u044f \u0441 \u043f\u0440\u0438\u043c\u0435\u0440\u0430\u043c\u0438 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f. \u0422\u0430\u043a \u043a\u0430\u043a \u043c\u044b \u0442\u043e\u043b\u044c\u043a\u043e \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u043b\u0438 \u044d\u0442\u043e\u0442 \u0441\u0446\u0435\u043d\u0430\u0440\u0438\u0439, \u0442\u043e \u043f\u0435\u0440\u0435\u0434 \u0442\u0435\u043c, \u043a\u0430\u043a \u043c\u044b \u043e\u043a\u043e\u043d\u0447\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u0443\u0433\u043b\u0443\u0431\u0438\u043c\u0441\u044f, \u0431\u0443\u0434\u0435\u043c \u0431\u043b\u0430\u0433\u043e\u0434\u0430\u0440\u043d\u044b \u0437\u0430 \u043e\u0431\u0440\u0430\u0442\u043d\u0443\u044e \u0441\u0432\u044f\u0437\u044c \u0438 \u043e\u043f\u044b\u0442, \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e \u043a\u0440\u0438\u0442\u0438\u043a\u0443 \u0438 \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0435\u043d\u0438\u044f.<\/p>\n<p>  <\/p>\n<h3 id=\"organizaciya-repozitoriev\">\u041e\u0440\u0433\u0430\u043d\u0438\u0437\u0430\u0446\u0438\u044f \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0435\u0432<\/h3>\n<p>  <\/p>\n<p>\u041c\u044b \u0441\u043e\u0437\u0434\u0430\u043b\u0438 \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0439 \u0441 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0435\u0439 \u043d\u0430 <a href=\"https:\/\/github.com\/iondv\/docs-ru\">\u0440\u0443\u0441\u0441\u043a\u043e\u043c \u044f\u0437\u044b\u043a\u0435<\/a> \u0432 \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0441\u043a\u043e\u043d\u0432\u0435\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u043b\u0438 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044e \u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043b\u0435\u043d\u043d\u0443\u044e \u0432 \u0444\u043e\u0440\u043c\u0430\u0442\u0435 markdown \u0438\u0437 \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u044f \u0444\u0440\u0435\u0439\u043c\u0432\u043e\u0440\u043a\u0430 \u0432 \u0444\u043e\u0440\u043c\u0430\u0442 reStructuredText. \u0421\u043e\u0437\u0434\u0430\u043b\u0438 \u043f\u043e\u043d\u0430\u0447\u0430\u043b\u0443 \u043f\u0443\u0441\u0442\u043e\u0439 \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0439 \u0434\u043b\u044f <a href=\"https:\/\/github.com\/iondv\/docs-l10n\">\u043b\u043e\u043a\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0439<\/a> \u2013 \u043e\u043d \u0431\u0443\u0434\u0435\u0442 \u0433\u043e\u043b\u043e\u0432\u043d\u044b\u043c \u0434\u043b\u044f readthedocs.<\/p>\n<p>  <\/p>\n<p>\u0412 \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0438 iondv\/docs-l10n \u0441 \u043f\u0435\u0440\u0435\u0432\u043e\u0434\u0438\u043c\u043e\u0439 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0435\u0439 \u0441\u043e\u0437\u0434\u0430\u0451\u043c \u0441\u0441\u044b\u043b\u043a\u0443 \u043d\u0430 \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0439 \u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a <code>git submodule add https:\/\/github.com\/iondv\/docs-ru<\/code>. \u041e\u043d \u0435\u0433\u043e \u0441\u0440\u0430\u0437\u0443 \u0438 \u0441\u043a\u043b\u043e\u043d\u0438\u0440\u0443\u0435\u0442. \u0422\u0430\u043a\u0436\u0435 \u043c\u044b \u043f\u0435\u0440\u0435\u0432\u043e\u0434\u044b \u043e\u0441\u0443\u0449\u0435\u0441\u0442\u0432\u043b\u044f\u0435\u043c \u0432 \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u043e\u0439 \u0432\u0435\u0442\u043a\u0435 <code>translation<\/code>, \u0430 \u043f\u043e\u0442\u043e\u043c \u0435\u0451 \u043c\u0435\u0440\u0434\u0436\u0438\u043c \u0432 <code>master<\/code> \u0432\u0435\u0442\u043a\u0443. Reathedocs \u0441\u043e\u0431\u0438\u0440\u0430\u0435\u0442 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044e \u0438\u0437 <code>master<\/code> \u0432\u0435\u0442\u043a\u0438.<\/p>\n<p>  <\/p>\n<p>\u0412 \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0438 \u0441 \u0440\u0443\u0441\u0441\u043a\u043e\u0439 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438 \u0444\u043e\u0440\u043c\u0438\u0440\u0443\u0435\u043c \u0444\u0430\u0439\u043b \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438 \u0434\u043b\u044f sphinx. \u041f\u0440\u0438\u043c\u0435\u0440 \u043a\u043e\u043d\u0444\u0438\u0433\u0430 \u0434\u043e\u0441\u0442\u0443\u043f\u0435\u043d \u043f\u043e <a href=\"https:\/\/github.com\/iondv\/docs\/blob\/master\/conf.py\">\u0441\u0441\u044b\u043b\u043a\u0435<\/a>. \u041e\u0431\u0440\u0430\u0442\u0438\u0442\u0435 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435 \u043d\u0430 \u0434\u0432\u0430 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430.<\/p>\n<p>  <\/p>\n<p>\u041f\u0435\u0440\u0432\u044b\u0439 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b <code>latex_elements<\/code> \u0432 \u043d\u0435\u043c \u0437\u0430\u0434\u0430\u0451\u0442\u0441\u044f, \u0447\u0442\u043e \u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a \u0434\u043b\u044f \u043f\u0435\u0440\u0435\u0432\u043e\u0434\u0430 \u0432 utf8, \u0438\u043d\u0430\u0447\u0435 \u0430\u0432\u0442\u043e\u0441\u0431\u043e\u0440\u043a\u0430 \u043d\u0430 readthedocs \u0440\u0443\u0433\u0430\u0435\u0442\u0441\u044f \u043d\u0430 \u043a\u0430\u0436\u0434\u044b\u0439 \u0440\u0443\u0441\u0441\u043a\u0438\u0439 \u0441\u0438\u043c\u0432\u043e\u043b.<\/p>\n<p>  <\/p>\n<pre><code class=\"plaintext\">latex_elements = {     'preamble': '\\\\usepackage[utf8]{inputenc}',     'babel': '\\\\usepackage[russian]{babel}',     'cmappkg': '\\\\usepackage{cmap}',     'fontenc': '\\\\usepackage[T1,T2A]{fontenc}',     'utf8extra':'\\\\DeclareUnicodeCharacter{00A0}{\\\\nobreakspace}', }<\/code><\/pre>\n<p>  <\/p>\n<p>\u0412\u0442\u043e\u0440\u043e\u0439 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440 <code>gettext_compact=True<\/code>, \u0435\u0441\u043b\u0438 \u043e\u043d False \u2013 \u0442\u043e \u043b\u043e\u043a\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0431\u0443\u0434\u0443\u0442 \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0442\u044c\u0441\u044f \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u0444\u0430\u0439\u043b\u0430 \u0438 \u0442\u043e\u0433\u0434\u0430 \u043a\u0430\u0436\u0434\u044b\u0439 \u0438\u0437 \u0444\u0430\u0439\u043b\u043e\u0432 \u043d\u0443\u0436\u043d\u043e \u0431\u0443\u0434\u0435\u0442 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0430\u0442\u044c \u0432 Weblate \u0434\u043b\u044f \u043f\u0435\u0440\u0435\u0432\u043e\u0434\u0430. \u0415\u0441\u043b\u0438 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430 \u043d\u0435\u0442 \u0438\u043b\u0438 \u043e\u043d \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d \u0432 True \u2013 \u0442\u043e \u0442\u043e\u0433\u0434\u0430 \u043a\u0430\u0436\u0434\u044b\u0439 \u0438\u0437 \u043a\u0430\u0442\u0430\u043b\u043e\u0433\u043e\u0432 \u0431\u0443\u0434\u0435\u0442 \u0441\u043e\u0431\u0440\u0430\u043d \u0432 \u043e\u0434\u0438\u043d \u0444\u0430\u0439\u043b, \u043d\u0443 \u0438 \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0431\u0443\u0434\u0435\u0442 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u043e\u0434\u0438\u043d \u0444\u0430\u0439\u043b \u043a\u0430\u043a \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442. \u041c\u043e\u0436\u043d\u043e \u0435\u0449\u0451 \u0441\u043a\u0440\u0438\u043f\u0442\u043e\u043c \u0441\u043e\u0431\u0438\u0440\u0430\u0442\u044c \u0432\u0441\u0435 \u0444\u0430\u0439\u043b\u044b \u0441 \u043b\u043e\u043a\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0435\u0439 \u0432 \u043e\u0434\u0438\u043d, \u0447\u0442\u043e\u0431\u044b \u0432 Weblate \u0431\u044b\u043b \u0442\u043e\u043b\u044c\u043a\u043e \u043e\u0434\u0438\u043d \u0444\u0430\u0439\u043b \u0434\u043b\u044f \u043f\u0435\u0440\u0435\u0432\u043e\u0434\u0430. <\/p>\n<p>  <\/p>\n<p>\u041d\u0435 \u0437\u0430\u0431\u0443\u0434\u044c\u0442\u0435 \u043f\u043e\u0441\u043b\u0435 \u043a\u043e\u043c\u043c\u0438\u0442\u0430 \u0438 \u043f\u0443\u0448\u0430 \u0432 docs-ru, \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u043a\u043e\u043c\u043c\u0438\u0442 \u0438 \u043f\u0443\u0448 \u0432 \u0432\u044b\u0448\u0435\u0441\u0442\u043e\u044f\u0449\u0435\u043c \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0438 docs-l10n \u0434\u043b\u044f \u0442\u043e\u0433\u043e, \u0447\u0442\u043e\u0431\u044b \u043e\u0431\u043d\u043e\u0432\u0438\u043b\u0430\u0441\u044c \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0439 \u043a\u043e\u043c\u043c\u0438\u0442 \u0432 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438.<\/p>\n<p>  <\/p>\n<p>\u041f\u043e\u043a\u0430 \u0432\u0441\u0435 \u0444\u0430\u0439\u043b\u044b \u043b\u043e\u043a\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0439 \u0443 \u043d\u0430\u0441 \u0444\u043e\u0440\u043c\u0438\u0440\u0443\u044e\u0442\u0441\u044f \u043f\u043e \u043f\u0430\u043f\u043a\u0430\u043c \u0432 \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0438 \u0441 <a href=\"https:\/\/github.com\/iondv\/docs-l10n\/tree\/translation\/gettext\">\u043b\u043e\u043a\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0435\u0439 \u0432 \u0432\u0435\u0442\u043a\u0435 translation<\/a>.<\/p>\n<p>  <\/p>\n<p>\u041c\u044b \u0445\u043e\u0442\u0438\u043c \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u043e\u0434\u0438\u043d \u043f\u0440\u043e\u0435\u043a\u0442 \u0434\u043b\u044f \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438 \u0438 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0435 \u043f\u0440\u043e\u0435\u043a\u0442\u044b \u0434\u043b\u044f \u043f\u0435\u0440\u0435\u0432\u043e\u0434\u0430 \u0444\u0440\u0435\u0439\u043c\u0432\u043e\u0440\u043a\u0430 \u0438 \u043c\u043e\u0434\u0443\u043b\u0435\u0439. \u0414\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u0444\u0430\u0439\u043b\u0430, \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0435\u0433\u043e \u043a\u0430\u0442\u0430\u043b\u043e\u0433\u0443 (\u0442\u0435\u043c\u0430\u0442\u0438\u043a\u0435) \u0432 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438, \u0441\u043e\u0437\u0434\u0430\u0451\u0442\u0441\u044f \u0432 Weblate \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0439 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442. <\/p>\n<p>  <\/p>\n<p>\u041c\u044b \u043f\u0440\u043e\u0431\u043e\u0432\u0430\u043b\u0438 \u0434\u0435\u043b\u0430\u0442\u044c \u0432\u0441\u0435 \u0444\u0430\u0439\u043b\u044b \u0440\u0430\u0437\u0434\u0435\u043b\u044c\u043d\u044b\u043c\u0438 (gettext_compact=False), \u043f\u0440\u043e\u0435\u043a\u0442 \u0431\u044b\u043b \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u043c \u043a\u0430\u0442\u0430\u043b\u043e\u0433\u043e\u043c, \u043a\u0430\u0436\u0434\u044b\u0439 \u0444\u0430\u0439\u043b \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u043e\u043c. \u041d\u043e \u043a\u043e\u0433\u0434\u0430 \u0444\u0430\u0439\u043b\u043e\u0432 \u043c\u043d\u043e\u0433\u043e \u2013 \u0438\u0445 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0430\u0442\u044c \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0443\u0442\u043e\u043c\u0438\u0442\u0435\u043b\u044c\u043d\u043e. \u0410 \u0432\u043e-\u0432\u0442\u043e\u0440\u044b\u0445, \u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u0441\u044f \u043c\u043d\u043e\u0433\u043e \u043f\u0440\u043e\u0435\u043a\u0442\u043e\u0432 \u2013 \u0438 \u043c\u043e\u0436\u0435\u0442 \u043f\u043e\u044f\u0432\u0438\u0442\u044c\u0441\u044f \u043f\u0443\u0442\u0430\u043d\u0438\u0446\u0430. \u0415\u0441\u043b\u0438 \u0435\u0441\u0442\u044c \u043e\u043f\u044b\u0442 \u043e\u0440\u0433\u0430\u043d\u0438\u0437\u0430\u0446\u0438\u0438 \u0438 \u043a\u043e\u043c\u043f\u043e\u043d\u043e\u0432\u043a\u0438 \u0444\u0430\u0439\u043b\u043e\u0432, \u043f\u043e\u0434\u0435\u043b\u0438\u0442\u0435\u0441\u044c \u043f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430. <\/p>\n<p>  <\/p>\n<h3 id=\"razvyortyvanie-servernogo-okruzheniya\">\u0420\u0430\u0437\u0432\u0451\u0440\u0442\u044b\u0432\u0430\u043d\u0438\u0435 \u0441\u0435\u0440\u0432\u0435\u0440\u043d\u043e\u0433\u043e \u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u044f<\/h3>\n<p>  <\/p>\n<p>\u0412\u0441\u0435 \u0431\u0443\u0434\u0435\u043c \u0440\u0430\u0437\u0432\u043e\u0440\u0430\u0447\u0438\u0432\u0430\u0442\u044c \u0432 \u0434\u043e\u043a\u0435\u0440 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0430\u0445. \u041c\u044b \u043f\u043e\u0434\u043d\u044f\u043b\u0438 \u043f\u043e\u0434 Ubuntu, \u043d\u043e \u043f\u043e\u0434 CentOs \u0440\u0430\u0437\u043d\u0438\u0446\u0430 \u043d\u0435 \u0431\u043e\u043b\u044c\u0448\u0430\u044f. \u0421\u0435\u0440\u0432\u0435\u0440\u0430 \u0432\u0441\u0435 \u0431\u0443\u0434\u0443\u0442 \u0432\u043e \u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u0435\u0439 \u0441\u0435\u0442\u0438 docker <code>service-net<\/code>, \u0441\u043e\u0437\u0434\u0430\u0434\u0438\u043c \u0435\u0451 \u043a\u043e\u043c\u0430\u043d\u0434\u043e\u0439 <code>docker network create service-net<\/code><\/p>\n<p>  <\/p>\n<p>\u0412\u043e-\u043f\u0435\u0440\u0432\u044b\u0445, \u043f\u043e\u0434\u043d\u0438\u043c\u0435\u043c \u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u0435 \u0434\u043b\u044f Weblate \u2013 \u043d\u0443\u0436\u0435\u043d Redis \u0438 PostgreSql (\u043f\u043e\u0434\u043f\u0440\u0430\u0432\u044c\u0442\u0435 \u0434\u0430\u043d\u043d\u044b\u0435 \u0443\u0447\u0451\u0442\u043a\u0438 \u0432 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445 \u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u044f \u0434\u043e\u043a\u0435\u0440 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0430)<\/p>\n<p>  <\/p>\n<pre><code class=\"plaintext\">docker run --name redis -v redis-data:\/data \\             --expose 6379 --net service-net \\             --restart unless-stopped -d \\             redis:4-alpine redis-server --appendonly yes  docker run  --name postgres -v postgres-data:\/var\/lib\/postgresql\/data \\             --expose 5432 \\             --env &quot;POSTGRES_PASSWORD=123&quot; \\             --env &quot;POSTGRES_USER=iondv&quot; \\             --env &quot;POSTGRES_DATABASE=weblate&quot; \\             --env &quot;POSTGRES_DB=weblate&quot; \\             --env &quot;POSTGRES_HOST=postgres&quot; \\             --env &quot;POSTGRES_PORT=5432&quot; \\             --net service-net --restart unless-stopped -d \\             postgres:11-alpine<\/code><\/pre>\n<p>  <\/p>\n<p>\u0414\u0430\u043b\u0435\u0435 \u0443\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u043c Weblate \u0434\u043b\u044f \u0437\u0430\u043f\u0443\u0441\u043a\u0430 \u0441\u0438\u0441\u0442\u0435\u043c\u044b. \u041f\u043e\u0434\u043f\u0440\u0430\u0432\u044c\u0442\u0435 \u0445\u043e\u0441\u0442\u044b, \u0443\u0447\u0451\u0442\u043a\u0438, \u0432 \u0442\u043e\u043c \u0447\u0438\u0441\u043b\u0435 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f github \u0432 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0445 \u043f\u043e\u043b\u044f\u0445 \u0438 \u0447\u0430\u0441\u043e\u0432\u043e\u0439 \u043f\u043e\u044f\u0441. \u041a\u0430\u043a \u043f\u0440\u0438\u043c\u0435\u0440 \u043f\u0440\u0438\u0432\u0435\u0434\u0451\u043d \u043d\u0430\u0448 \u0447\u0430\u0441\u043e\u0432\u043e\u0439 \u043f\u043e\u044f\u0441 \u0412\u043b\u0430\u0434\u0438\u0432\u043e\u0441\u0442\u043e\u043a\u0430 \u0434\u043b\u044f \u0425\u0430\u0431\u0430\u0440\u043e\u0432\u0441\u043a\u0430.<\/p>\n<p>  <\/p>\n<pre><code class=\"plaintext\">docker run  --name weblate \\             -v weblate-data:\/app\/data \\             --expose 8080 \\             --env &quot;DEBUG=True&quot; \\             --env &quot;POSTGRES_PASSWORD=123&quot; \\             --env &quot;POSTGRES_USER=iondv&quot; \\             --env &quot;POSTGRES_DATABASE=weblate&quot; \\             --env &quot;POSTGRES_DB=weblate&quot; \\             --env &quot;POSTGRES_HOST=postgres&quot; \\             --env &quot;POSTGRES_PORT=5432&quot; \\             --env &quot;REDIS_HOST=redis&quot; \\             --env &quot;REDIS_PORT=6379&quot; \\             --env &quot;WEBLATE_EMAIL_HOST=smtp.yandex.ru&quot; \\             --env &quot;WEBLATE_EMAIL_PORT=465&quot; \\             --env &quot;WEBLATE_EMAIL_USE_TLS=True&quot; \\             --env &quot;WEBLATE_EMAIL_HOST_USER=weblate@YOUR_HOST.com&quot; \\             --env &quot;WEBLATE_EMAIL_HOST_PASSWORD=123&quot; \\             --env &quot;WEBLATE_SERVER_EMAIL=weblate@ YOUR_HOST.com&quot; \\             --env &quot;WEBLATE_DEFAULT_FROM_EMAIL=weblate@ YOUR_HOST.com&quot; \\             --env &quot;WEBLATE_ADMIN_PASSWORD=123&quot; \\             --env &quot;WEBLATE_ADMIN_NAME=IONDV Weblate Admin&quot; \\             --env &quot;WEBLATE_ADMIN_EMAIL=weblate@YOUR_HOST.com&quot; \\             --env &quot;WEBLATE_DEBUG=false&quot; \\             --env &quot;WEBLATE_LOGLEVEL=DEBUG&quot; \\             --env &quot;WEBLATE_SITE_TITLE=IONDV.Doc translation&quot; \\             --env &quot;WEBLATE_ALLOWED_HOSTS=weblate.YOUR_HOST.com&quot; \\             --env &quot;WEBLATE_REGISTRATION_OPEN=1&quot; \\             --env &quot;WEBLATE_REQUIRE_LOGIN=0&quot; \\             --env &quot;WEBLATE_TIME_ZONE=Asia\/Vladivostok&quot; \\             --env &quot;TZ=Asia\/Vladivostok&quot; \\             --net service-net --restart unless-stopped -d \\             weblate\/weblate:3.11.2-1 <\/code><\/pre>\n<p>  <\/p>\n<p>\u041e\u0431\u0440\u0430\u0442\u0438\u0442\u0435 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435, \u0447\u0442\u043e \u0432 \u0432\u0435\u0440\u0441\u0438\u0438 Weblate 3.10 \u0438 \u0441\u0442\u0430\u0440\u0448\u0435 \u2013 \u043f\u043e\u0441\u043b\u0435 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u043f\u0440\u043e\u0435\u043a\u0442\u0430, \u043d\u0443\u0436\u043d\u043e \u0443\u043a\u0430\u0437\u0430\u0442\u044c \u0442\u0438\u043f \u044f\u0437\u044b\u043a\u0430 \u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a\u0430 \u2013 \u0438\u043d\u0430\u0447\u0435 \u0442\u0435\u043a\u0441\u0442\u044b \u0434\u043b\u044f \u043f\u0435\u0440\u0435\u0432\u043e\u0434\u043e\u0432 \u0441 \u0440\u0443\u0441\u0441\u043a\u043e\u0433\u043e \u044f\u0437\u044b\u043a\u0430 \u043d\u0435 \u0432\u044b\u0432\u043e\u0434\u044f\u0442\u0441\u044f. \u041c\u044b \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u043b\u0438 \u043d\u0430 \u0432\u0435\u0440\u0441\u0438\u0438 3.11.2-1.<\/p>\n<p>  <\/p>\n<p>\u0427\u0442\u043e\u0431\u044b \u043a Weblate \u0431\u044b\u043b \u0434\u043e\u0441\u0442\u0443\u043f \u043f\u043e ssl \u0438 \u0441 \u043b\u044e\u0431\u044b\u043c\u0438 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b\u043c\u0438 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u044f\u043c\u0438 \u0438 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430\u043c\u0438 \u2013 \u0431\u0443\u0434\u0435\u043c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0432\u043d\u0435\u0448\u043d\u0438\u0439 nginx, \u043d\u043e \u043c\u043e\u0436\u043d\u043e \u043e\u0431\u043e\u0439\u0442\u0438\u0441\u044c \u0438 \u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u0438\u043c.<\/p>\n<p>  <\/p>\n<p>\u0414\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u0432 \u043a\u043e\u043d\u0444\u0438\u0433 \/etc\/conf.d\/weblate.conf<\/p>\n<p>  <\/p>\n<pre><code class=\"plaintext\">server {   listen 80;   server_name weblate.YOURHOST.ru;   return  301 https:\/\/weblate.YOURHOST.ru $request_uri; }  server {     listen 443;     server_name weblate.YOURHOST.ru;     ssl_stapling on;      resolver 8.8.8.8 valid=300s;      ssl_certificate      \/etc\/nginx\/cert\/YOURHOST.crt;     ssl_certificate_key  \/etc\/nginx\/cert\/YOURHOST.key;     ssl_dhparam          \/etc\/nginx\/cert\/dhparam.pem;      ssl_session_timeout 10m;     ssl_protocols TLSv1 TLSv1.1 TLSv1.2;     ssl_ciphers kEECDH+AES128:kEECDH:kEDH:-3DES:kRSA+AES128:kEDH+3DES:DES-CBC3-SHA:!RC4:!aNULL:!eNULL:!MD5:!EXPORT:!LOW:!SEED:!CAMELLIA:!IDEA:!PSK:!SRP:!SSLv2;     ssl_prefer_server_ciphers on;     add_header Strict-Transport-Security &quot;max-age=31536000;&quot;;     add_header Content-Security-Policy-Report-Only &quot;default-src https:; script-src https: 'unsafe-eval' 'unsafe-inline'; style-src https: 'unsafe-inline'; img-src https: data:; font-src https: data:; report-uri \/csp-report&quot;;      location \/ {         proxy_pass http:\/\/weblate:8080;         proxy_set_header X-Real-IP $remote_addr;         proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;         proxy_set_header X-NginX-Proxy true;         proxy_ssl_session_reuse off;         proxy_set_header Host $http_host;         proxy_redirect off;     }     access_log \/var\/log\/nginx\/weblate.access.log;     error_log \/var\/log\/nginx\/weblate.error.log error; }<\/code><\/pre>\n<p>  <\/p>\n<p>\u0412 \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0438 \u043d\u0430 github, \u0435\u0441\u0442\u044c \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u044b\u0439 \u043f\u0440\u0438\u043c\u0435\u0440 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438 <a href=\"https:\/\/github.com\/WeblateOrg\/weblate\/blob\/master\/weblate\/examples\/weblate.nginx.conf\">nginx<\/a>. <\/p>\n<p>  <\/p>\n<p>\u0417\u0430\u043f\u0443\u0441\u043a nginx<\/p>\n<p>  <\/p>\n<pre><code class=\"plaintext\">docker run  --name nginx_proxy \\             -v \/etc\/nginx.conf:\/etc\/nginx\/nginx.conf:ro -v \/etc\/conf.d:\/etc\/nginx\/conf.d:ro \\             -v \/etc\/nginx\/cert:\/etc\/nginx\/cert:ro -v \/var\/log\/nginx:\/var\/log\/nginx \\             -p &quot;80:80&quot; -p &quot;443:443&quot; --net service-net \\             --env &quot;TZ=Asia\/Vladivostok&quot; \\             --restart unless-stopped -d \\             nginx<\/code><\/pre>\n<p>  <\/p>\n<h3 id=\"nastroyka-zadachi-zapuska-po-raspisaniyu-dlya-sphinx\">\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u0437\u0430\u0434\u0430\u0447\u0438 \u0437\u0430\u043f\u0443\u0441\u043a\u0430 \u043f\u043e \u0440\u0430\u0441\u043f\u0438\u0441\u0430\u043d\u0438\u044e \u0434\u043b\u044f sphinx<\/h3>\n<p>  <\/p>\n<p>\u041c\u044b \u043d\u0430\u043f\u0438\u0448\u0435\u043c \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0439 \u0441\u043a\u0440\u0438\u043f\u0442 \u0434\u043b\u044f \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f \u043b\u043e\u043a\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0439, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043d\u0443\u0436\u043d\u043e \u0431\u0443\u0434\u0435\u0442 \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0442\u044c \u043f\u043e \u0440\u0430\u0441\u043f\u0438\u0441\u0430\u043d\u0438\u044e \u0432 cron, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440 \u0440\u0430\u0437 \u0432 \u0434\u0435\u043d\u044c. \u041d\u043e \u0434\u043b\u044f \u043d\u0430\u0447\u0430\u043b\u0430 \u0441\u0434\u0435\u043b\u0430\u0435\u043c \u0434\u043e\u043a\u0435\u0440 \u043e\u0431\u0440\u0430\u0437 \u0434\u043b\u044f \u0437\u0430\u043f\u0443\u0441\u043a\u0430 sphinx \u0438 \u0441\u043e\u0437\u0434\u0430\u0434\u0438\u043c \u043a\u043e\u043d\u0444\u0438\u0433 \u0434\u043b\u044f \u043d\u0435\u0433\u043e.<\/p>\n<p>  <\/p>\n<p>Dockerfile<\/p>\n<p>  <\/p>\n<pre><code class=\"plaintext\">FROM python:3-alpine RUN apk add --update make &amp;&amp; pip install sphinx sphinx_rtd_theme  sphinx-intl WORKDIR \/docs VOLUME [&quot;\/docs&quot;] CMD []<\/code><\/pre>\n<p>  <\/p>\n<p>\u0421\u043e\u0431\u0438\u0440\u0430\u0435\u043c \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0439 \u0432 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u0438 \u0433\u0434\u0435 \u0440\u0430\u0441\u043f\u043e\u043b\u043e\u0436\u0435\u043d Dockerfile \u043a\u043e\u043c\u0430\u043d\u0434\u043e\u0439 <code>docker image build -t sphinx:latest .<\/code><\/p>\n<p>  <\/p>\n<p>\u0414\u0430\u043b\u0435\u0435 \u0431\u0443\u0434\u0435\u043c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043a\u0430\u0442\u0430\u043b\u043e\u0433 <code>\/workspace\/docs-l10n<\/code> \u2014 \u0434\u043b\u044f \u0440\u0430\u0437\u043c\u0435\u0449\u0435\u043d\u0438\u044f \u0441\u043a\u043b\u043e\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0433\u043e \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u044f \u0441 \u043f\u0435\u0440\u0435\u0432\u0435\u0434\u0451\u043d\u043d\u043e\u0439 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0439 \u0438 \u0432\u043d\u0443\u0442\u0440\u0438 \u043d\u0435\u0433\u043e docs-ru \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044e \u0441 \u0440\u0443\u0441\u0441\u043a\u0438\u043c \u044f\u0437\u044b\u043a\u043e\u043c, \u0430 \u0432 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u0438 <code>workspace<\/code> \u0431\u0443\u0434\u0435\u0442 \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u044c\u0441\u044f \u043d\u0430\u0448 \u0441\u043a\u0440\u0438\u043f\u0442. <\/p>\n<p>  <\/p>\n<p>\u0414\u043b\u044f \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0437\u0430\u0446\u0438\u0438 \u0440\u0430\u0431\u043e\u0442\u044b \u0441 githib.com \u0431\u0443\u0434\u0435\u043c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0430\u0432\u0442\u043e\u0440\u0438\u0437\u0430\u0446\u0438\u044e \u0441 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u043c \u0442\u043e\u043a\u0435\u043d\u0430. \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u0438\u0434\u0451\u043c \u0432 \u0440\u0430\u0437\u0434\u0435\u043b \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0430 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f \u043f\u043e\u0434 \u043a\u043e\u0442\u043e\u0440\u044b\u043c \u0431\u0443\u0434\u0435\u043c \u043e\u0441\u0443\u0449\u0435\u0441\u0442\u0432\u043b\u044f\u0442\u044c \u043a\u043e\u043c\u043c\u0438\u0442\u044b \u0438 \u0433\u0435\u043d\u0435\u0440\u0438\u0440\u0443\u0435\u043c \u0442\u043e\u043a\u0435\u043d <a href=\"https:\/\/github.com\/settings\/tokens\">https:\/\/github.com\/settings\/tokens<\/a>. \u042d\u0442\u043e \u0436\u0435 \u0442\u043e\u043a\u0435\u043d \u043f\u043e\u043d\u0430\u0434\u043e\u0431\u0438\u0442\u044c\u0441\u044f \u043f\u0440\u0438 \u0443\u043a\u0430\u0437\u0430\u043d\u0438\u0438 \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0435\u0432 \u0434\u043b\u044f Weblate.<\/p>\n<p>  <\/p>\n<p>\u0414\u043b\u044f \u0444\u043e\u0440\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u043f\u0440\u043e\u0435\u043a\u0442\u0430 \u043c\u044b \u0431\u0443\u0434\u0435\u043c \u0441\u043a\u0430\u0447\u0438\u0432\u0430\u0442\u044c \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0439 (\u043e\u0431\u043d\u043e\u0432\u043b\u044f\u0442\u044c) \u0438, \u0435\u0441\u043b\u0438 \u0435\u0441\u0442\u044c \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f, \u043f\u0435\u0440\u0435\u0441\u043e\u0431\u0438\u0440\u0430\u0442\u044c \u0444\u0430\u0439\u043b\u044b \u043b\u043e\u043a\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0439 sphinx-\u043e\u043c. \u0412 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0435 gitUser \u0438 gitToken \u043d\u0443\u0436\u043d\u043e \u043f\u0440\u043e\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f \u0438 \u0435\u0433\u043e \u0442\u043e\u043a\u0435\u043d \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043d\u043d\u043e.<\/p>\n<p>  <\/p>\n<pre><code class=\"plaintext\">#!\/bin\/bash gitToken=&quot;111111111111111111111111111111111&quot; gitUser=&quot;user&quot;  curDir=`pwd` cd ${0%\/*} &amp;&amp; scriptDir=`pwd` &amp;&amp; cd $curDir  l10nDir=$scriptDir\/iondv-docs-l10n docsDir=$l10nDir\/docs-ru  if [ -d $l10nDir ]; then   cd $l10nDir   git branch | grep &quot;^* translation&quot;   if [ $? -ne 0 ]; then git checkout translation; git branch | grep &quot;^* translation&quot;; if [ $? -ne 0 ]; then echo &quot;\u041d\u0435 \u0443\u0434\u0430\u043b\u043e\u0441\u044c \u043f\u0435\u0440\u0435\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u043d\u0430 translation \u0432\u0435\u0442\u043a\u0443&quot;; exit; fi fi   resPull=`git pull`   resPullSatus=$?   cd $curDir   echo -n &quot;\u041f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u043c \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f l10n: &quot; &amp;&amp; echo $resPull | grep &quot;Already up to date&quot;   if [ $? -eq 0 ]; then echo &quot;\u041d\u0435\u0442 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0439 l10n&quot;; fi else   git clone https:\/\/$gitUser:$gitToken@github.com\/iondv\/docs-l10n -b translation $l10nDir   cd $l10nDir   git branch | grep &quot;^* translation&quot;   if [ $? -ne 0 ]; then echo &quot;\u041d\u0435 \u0443\u0434\u0430\u043b\u043e\u0441\u044c \u043f\u0435\u0440\u0435\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u043d\u0430 translation \u0432\u0435\u0442\u043a\u0443&quot;; exit; fi fi  if [ -d $docsDir\/.git ]; then   cd $docsDir   resPull=`git pull`   resPullSatus=$?   cd $curDir   echo -n &quot;\u041f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u043c \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f docs-ru: &quot; &amp;&amp; echo $resPull | grep &quot;Already up to date&quot;   if [ $? -eq 0 ]; then echo &quot;\u041d\u0435\u0442 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0439. \u0412\u044b\u0445\u043e\u0434\u0438\u043c&quot;; exit; fi else   git clone https:\/\/$gitUser:$gitToken@github.com\/iondv\/docs-ru $docsDir fi  docker run -it --rm -v $l10nDir:\/docs sphinx sphinx-build -b gettext \/docs\/docs-ru \/docs\/gettext if [ $? -ne 0 ]; then echo &quot;\u041e\u0448\u0438\u0431\u043a\u0430 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f gettex&quot;; exit 1; fi docker run -it --rm -v $l10nDir:\/docs sphinx sphinx-intl update -p \/docs\/gettext -l en if [ $? -ne 0 ]; then echo &quot;\u041e\u0448\u0438\u0431\u043a\u0430 \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f \u043b\u043e\u043a\u0430\u043b\u0435\u0439&quot;; exit 1; fi docker run -it --rm -v $l10nDir:\/docs sphinx chmod -R ugo+r \/docs\/gettext \/docs\/locales  curDate=`date +&quot;%Y%m%d-%H-%M&quot;` cd $l10nDir gitStatus=`git status | grep &quot;nothing to commit, working tree clean&quot;` if [ $? -eq 0 ]; then   echo &quot;\u041d\u0435\u0442 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0439&quot;   exit 0 else   echo &quot;\u0415\u0441\u0442\u044c \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f&quot;   git add .   git commit -a -m &quot;$curDate autoupdate sphinx locales&quot;   git push fi<\/code><\/pre>\n<p>  <\/p>\n<h3 id=\"nastroyka-weblate\">\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 Weblate<\/h3>\n<p>  <\/p>\n<p>\u0421\u043e\u0437\u0434\u0430\u0451\u043c \u043f\u0440\u043e\u0435\u043a\u0442, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u043c \u0431\u0430\u0437\u043e\u0432\u044b\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b. \u041c\u044b \u0441\u043e\u0437\u0434\u0430\u0451\u043c \u043e\u0434\u0438\u043d \u043f\u0440\u043e\u0435\u043a\u0442 \u0434\u043b\u044f \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438 \u0438 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u044b \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0439 \u0442\u0435\u043c\u0430\u0442\u0438\u043a\u0438 (\u043a\u0430\u0442\u0430\u043b\u043e\u0433\u0430) \u2013 [\u043f\u0440\u0438\u043c\u0435\u0440] (<a href=\"https:\/\/weblate.iondv.com\/projects\/docs\/\">https:\/\/weblate.iondv.com\/projects\/docs\/<\/a>) \u2013 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044e \u043f\u043e \u0444\u0440\u0435\u0439\u043c\u0432\u043e\u0440\u043a\u0443.<\/p>\n<p>  <\/p>\n<p>\u041f\u043e\u0441\u043b\u0435 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u043f\u0440\u043e\u0435\u043a\u0442\u0430 \u043d\u0435 \u0437\u0430\u0431\u0443\u0434\u044c\u0442\u0435 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u0432 \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u0430\u0445 \u043f\u0440\u043e\u0435\u043a\u0442\u0430 \u044f\u0437\u044b\u043a \u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a\u0430 \u2013 \u0440\u0443\u0441\u0441\u043a\u0438\u0439, \u0438\u043d\u0430\u0447\u0435 \u043e\u043d \u043d\u0435\u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e \u0440\u0430\u0441\u043f\u043e\u0437\u043d\u0430\u0435\u0442 \u043f\u0435\u0440\u0435\u0432\u043e\u0434\u044b.<\/p>\n<p>  <\/p>\n<p>\u041f\u043e\u0441\u043b\u0435 \u044d\u0442\u043e\u0433\u043e \u043c\u044b \u0441\u043e\u0437\u0434\u0430\u0451\u043c \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442 \u043f\u0435\u0440\u0435\u0432\u043e\u0434\u0430 \u0432 \u043f\u0440\u043e\u0435\u043a\u0442\u0435 \u2013 \u0443 \u043d\u0430\u0441 \u043e\u043d\u0438 \u0434\u043b\u044f \u0444\u0430\u0439\u043b\u043e\u0432 \u0432 \u043a\u043e\u0440\u043d\u0435 \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u044f \u0438 \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0439 \u043f\u043e\u0434\u043f\u0430\u043f\u043a\u0438 \u043e\u0431\u044a\u0435\u0434\u0438\u043d\u0435\u043d\u044b \u0432 \u043e\u0434\u0438\u043d \u0444\u0430\u0439\u043b \u0438 \u043d\u0430\u0445\u043e\u0434\u044f\u0442\u0441\u044f \u0432 \u043f\u0430\u043f\u043a\u0435 <a href=\"https:\/\/github.com\/iondv\/docs-l10n\/tree\/translation\/gettext\">gettex<\/a>. \u0414\u043b\u044f \u043d\u0430\u0447\u0430\u043b\u0430 \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u043c \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435, \u043f\u0440\u043e\u0435\u043a\u0442, \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0439 \u0438 \u0432\u0435\u0442\u043a\u0443 \u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a\u0430.<\/p>\n<p>  <\/p>\n<p><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/we\/oh\/ie\/weohiepu6pjdpjazqhuuckr87dm.png\"><\/p>\n<p>  <\/p>\n<p>\u041f\u043e\u0441\u043b\u0435 \u044d\u0442\u043e\u0433\u043e \u043c\u044b \u0432\u044b\u0431\u0438\u0440\u0430\u0435\u043c \u0444\u0430\u0439\u043b \u0434\u043b\u044f \u043f\u0435\u0440\u0435\u0432\u043e\u0434\u0430. \u041e\u0431\u0440\u0430\u0442\u0438\u0442\u0435 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435, \u0447\u0442\u043e \u0432\u044b\u0431\u0440\u0430\u0442\u044c \u043d\u0443\u0436\u043d\u043e \u0444\u0430\u0439\u043b \u0434\u043b\u044f \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u0445 \u043f\u0435\u0440\u0435\u0432\u043e\u0434\u043e\u0432, \u0430 \u043d\u0435 \u043e\u0434\u043d\u043e\u044f\u0437\u044b\u0447\u043d\u044b\u0439.<\/p>\n<p>  <\/p>\n<p><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/6l\/vm\/u3\/6lvmu3o8o103ygukpwgfu8bwcde.png\"><\/p>\n<p>  <\/p>\n<p>\u041d\u0430 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u043c \u0448\u0430\u0433\u0435 \u043d\u0443\u0436\u043d\u043e \u0443\u0442\u043e\u0447\u043d\u0438\u0442\u044c URL \u0434\u043b\u044f \u043e\u0442\u043f\u0440\u0430\u0432\u043a\u0438 \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u044f \u2013 \u0437\u0434\u0435\u0441\u044c \u0441\u0440\u0430\u0437\u0443 \u043d\u0443\u0436\u043d\u043e \u0437\u0430\u0434\u0430\u0442\u044c \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f, \u043f\u043e\u0434 \u043a\u043e\u0442\u043e\u0440\u044b\u043c \u0435\u0441\u0442\u044c \u043f\u0440\u0430\u0432\u0430 \u043f\u0443\u0448\u0438\u0442\u044c \u0432 \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0439. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440 <code>https:\/\/USER:123@github.com\/iondv\/docs-l10n<\/code>, \u0433\u0434\u0435 <code>USER<\/code> \u2013 \u043b\u043e\u0433\u0438\u043d, \u0430 <code>123<\/code> \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u043f\u0430\u0440\u043e\u043b\u044c.<\/p>\n<p>  <\/p>\n<p><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/hc\/3s\/br\/hc3sbrcrsv4zb6ktjr9ex08smbs.png\"><\/p>\n<p>  <\/p>\n<p>\u0414\u0430\u043b\u0435\u0435 \u043d\u0430 \u044d\u0442\u043e\u0439 \u0436\u0435 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0435 \u043d\u0443\u0436\u043d\u043e \u0432\u044b\u0431\u0440\u0430\u0442\u044c \u00ab\u0428\u0430\u0431\u043b\u043e\u043d \u0434\u043b\u044f \u043d\u043e\u0432\u044b\u0445 \u043f\u0435\u0440\u0435\u0432\u043e\u0434\u043e\u0432\u00bb. \u0412 \u044d\u0442\u043e\u043c \u043f\u043e\u043b\u0435 \u043d\u0443\u0436\u043d\u043e \u0443\u043a\u0430\u0437\u0430\u0442\u044c \u0444\u0430\u0439\u043b \u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a \u0434\u043b\u044f \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0430 \u0432 \u043f\u0430\u043f\u043a\u0435 gettex \u2013 \u0442.\u0435. \u0432 \u043f\u0430\u043f\u043a\u0435 \u043a\u0443\u0434\u0430 sphinx \u0441\u043e\u0431\u0438\u0440\u0430\u0435\u0442 \u0444\u0430\u0439\u043b\u044b \u0441 \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u0435\u043c pot.<\/p>\n<p>  <\/p>\n<p><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/bk\/po\/zi\/bkpozisjwhp5if6csp8rtznsihi.png\"><\/p>\n<p>  <\/p>\n<p>\u0421\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u043e, \u043c\u043e\u0436\u043d\u043e \u043f\u0435\u0440\u0435\u0432\u043e\u0434\u0438\u0442\u044c. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440 \u043d\u0430 \u0430\u043d\u0433\u043b\u0438\u0439\u0441\u043a\u0438\u0439, \u043f\u0435\u0440\u0435\u0439\u0434\u044f \u043f\u043e \u043f\u0443\u0442\u0438 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0430 \u043f\u0435\u0440\u0435\u0432\u043e\u0434\u0430 <code>index<\/code> \u0432 \u043f\u0440\u043e\u0435\u043a\u0442\u0435 <a href=\"https:\/\/weblate.iondv.com\/projects\/docs\/index\/en\/\"><code>docs<\/code><\/a>.<\/p>\n<p>  <\/p>\n<p>\u0414\u043b\u044f \u043d\u043e\u0432\u044b\u0445 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u043e\u0432 \u0438\u0437 \u0442\u043e\u0433\u043e \u0436\u0435 \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u044f, \u043d\u0435 \u043d\u0443\u0436\u043d\u043e \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0442\u044c \u0432\u0441\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b, \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0443\u043a\u0430\u0437\u0430\u0442\u044c \u0443\u0436\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u0443\u044e \u0430\u0434\u0440\u0435\u0441\u0430\u0446\u0438\u044e \u2013 \u0442.\u0435. \u0443\u0436\u0435 \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u043e\u0433\u043e. \u0414\u043b\u044f \u043d\u0430\u0448\u0435\u0433\u043e \u043f\u0440\u0438\u043c\u0435\u0440\u0430 \u044d\u0442\u043e \u0431\u0443\u0434\u0435\u0442 <code>weblate:\/\/docs\/index<\/code>.<\/p>\n<p>  <\/p>\n<p>\u041f\u0440\u0438\u043c\u0435\u0440 \u043f\u0435\u0440\u0435\u0432\u043e\u0434\u0430.<\/p>\n<p>  <\/p>\n<p><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/f1\/as\/si\/f1assi-ripavtkskzkx633pcbyo.png\"><\/p>\n<p>  <\/p>\n<p>\u041f\u043e\u0441\u043b\u0435 \u043f\u0435\u0440\u0435\u0432\u043e\u0434\u0430 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u043f\u0435\u0440\u0435\u0439\u0442\u0438 \u0432 \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u0430 \u043f\u0440\u043e\u0435\u043a\u0442\u0430 (\u0438\u043b\u0438 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0430, \u0435\u0441\u043b\u0438 \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0438 \u0440\u0430\u0437\u043d\u044b\u0435). \u0421\u0434\u0435\u043b\u0430\u0442\u044c \u043a\u043e\u043c\u043c\u0438\u0442, \u0430 \u0437\u0430\u0442\u0435\u043c \u043e\u0442\u043f\u0440\u0430\u0432\u0438\u0442\u044c \u043f\u0435\u0440\u0435\u0432\u043e\u0434 \u0432 \u0443\u0434\u0430\u043b\u0451\u043d\u043d\u044b\u0439 \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0439 \u2013 \u0442.\u0435. \u0432 \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0439 <a href=\"https:\/\/github.com\/iondv\/docs-l10n\">https:\/\/github.com\/iondv\/docs-l10n<\/a> \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043c\u044b \u0443\u043a\u0430\u0437\u0430\u043b\u0438 \u0432 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0430\u0445. \u0422\u0430\u043a\u0436\u0435 \u0435\u0441\u043b\u0438 \u0431\u044b\u043b\u0438 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u0432 \u0443\u0434\u0430\u043b\u0451\u043d\u043d\u043e\u043c \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0438, \u0442\u043e \u043c\u044b \u0438\u0445 \u043c\u043e\u0436\u0435\u043c \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c, \u043d\u0430\u0436\u0430\u0432 \u043a\u043d\u043e\u043f\u043a\u0443 \u00ab\u0418\u0437\u0432\u043b\u0435\u0447\u044c\u00bb.<\/p>\n<p>  <\/p>\n<p><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/tx\/6f\/cu\/tx6fcuyd0syc2dfljvtycd1c3jo.png\"><\/p>\n<p>  <\/p>\n<p>\u041f\u0435\u0440\u0435\u0439\u0434\u044f \u0432 \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0439, \u043c\u044b \u043c\u043e\u0436\u0435\u043c \u0443\u0432\u0438\u0434\u0435\u0442\u044c \u0441\u0434\u0435\u043b\u0430\u043d\u043d\u044b\u0435 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u0432 \u0432\u0435\u0442\u043a\u0435 <code>translation<\/code>. \u041f\u043e\u0441\u043b\u0435 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438 \u0438\u0445 \u0441\u043b\u0438\u0432\u0430\u0435\u043c \u0441 \u0432\u0435\u0442\u043a\u043e\u0439 <code>master<\/code>. \u041e\u0431\u0440\u0430\u0442\u0438\u0442\u0435 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435 \u043d\u0430 \u0441\u043a\u0440\u0438\u043d\u0448\u043e\u0442 \u0441 \u0433\u0438\u0442\u0445\u0430\u0431\u0430, \u0434\u043b\u044f \u043f\u0430\u043f\u043a\u0438 <code>gettex<\/code> \u2013 \u043a\u043e\u043c\u043c\u0438\u0442 \u0431\u044b\u043b \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d \u0441\u043a\u0440\u0438\u043f\u0442\u043e\u043c \u043f\u043e\u0441\u043b\u0435 \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f sphinx-\u043e\u043c \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438 \u0438\u0437 \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u044f <code>inondv\/docs-ru<\/code>. \u0410 \u0434\u043b\u044f \u043f\u0430\u043f\u043a\u0438 <code>locales\/en\/LC_MESSAGES<\/code> \u0432\u0435\u0431\u043b\u0435\u0439\u0442\u043e\u043c.<\/p>\n<p>  <\/p>\n<p><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/3w\/px\/2k\/3wpx2kt8bjgo_afvb9igc8aqzfw.png\"><\/p>\n<p>  <\/p>\n<h3 id=\"nastroyka-readthedocsorg\">\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 readthedocs.org<\/h3>\n<p>  <\/p>\n<p>\u0412 readthedocs.io \u043c\u044b \u0434\u0435\u043b\u0430\u0435\u043c \u0438\u043c\u043f\u043e\u0440\u0442 \u043d\u0430\u0448\u0438\u0445 \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0435\u0432.<\/p>\n<p>  <\/p>\n<p>\u0421\u043d\u0430\u0447\u0430\u043b\u0430 \u0438\u043c\u043f\u043e\u0440\u0442\u0438\u0440\u0443\u0435\u043c iondv\/docs-l10n. \u0412 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0438 \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u043c \u0436\u0435\u043b\u0430\u0435\u043c\u043e\u0435 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u0432 url <code>NAME.reathedocs.io<\/code>. \u0421\u0442\u0430\u0432\u0438\u043c \u0433\u0430\u043b\u043e\u0447\u043a\u0443 \u00abEdit advanced project options\u00bb \u2014 \u043e\u043d\u0430 \u043d\u0443\u0436\u043d\u0430, \u0447\u0442\u043e\u0431\u044b \u0443\u043a\u0430\u0437\u0430\u0442\u044c \u044f\u0437\u044b\u043a \u043f\u0440\u043e\u0435\u043a\u0442\u0430. \u041d\u043e \u0442\u0430\u043a \u043a\u0430\u043a \u043c\u044b \u0445\u043e\u0442\u0438\u043c, \u0447\u0442\u043e\u0431\u044b \u043e\u0441\u043d\u043e\u0432\u043d\u044b\u043c \u043f\u0435\u0440\u0435\u0432\u043e\u0434\u043e\u043c \u0431\u044b\u043b \u0430\u043d\u0433\u043b\u0438\u0439\u0441\u043a\u0438\u0439 \u2013 \u0442\u043e \u044f\u0437\u044b\u043a \u043c\u0435\u043d\u044f\u0442\u044c \u043d\u0435 \u0431\u0443\u0434\u0435\u043c.<\/p>\n<p>  <\/p>\n<p><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/r7\/lp\/k3\/r7lpk3aowts9c3slqgiow6ygwm4.png\"><\/p>\n<p>  <\/p>\n<p>\u041f\u043e\u0441\u043b\u0435 \u044d\u0442\u043e\u0433\u043e \u043c\u043e\u0436\u043d\u043e \u043f\u0435\u0440\u0435\u0439\u0442\u0438 \u043d\u0430 \u0432\u043a\u043b\u0430\u0434\u043a\u0443 Build \u2013 \u043f\u0440\u043e\u0435\u043a\u0442 \u0443\u0436\u0435 \u043d\u0430\u0447\u0430\u043b \u0441\u043e\u0431\u0438\u0440\u0430\u0442\u044c\u0441\u044f. \u041e\u043d \u0441\u043a\u043b\u043e\u043d\u0438\u0440\u0443\u0435\u0442 \u043d\u0435 \u0442\u043e\u043b\u044c\u043a\u043e \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0439 iondv\/docs-l10n, \u043d\u043e \u0438 \u043f\u043e\u0434\u043c\u043e\u0434\u0443\u043b\u044c iondv\/docs-ru.<\/p>\n<p>  <\/p>\n<p>\u041f\u043e\u0441\u043b\u0435 \u0441\u0431\u043e\u0440\u043a\u0438 \u043c\u043e\u0436\u043d\u043e \u043f\u0435\u0440\u0435\u0439\u0442\u0438 \u043f\u043e \u043a\u043d\u043e\u043f\u043a\u0435 \u201cView docs\u201d, \u0443 \u043d\u0430\u0441 \u043e\u043d\u0430 \u0431\u0443\u0434\u0435\u0442 \u0432\u0435\u0441\u0442\u0438 \u043d\u0430 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u044e\u044e <a href=\"https:\/\/iondv.readthedocs.io\/en\/latest\/\">\u0430\u043d\u0433\u043b\u0438\u0439\u0441\u043a\u0443\u044e \u0432\u0435\u0440\u0441\u0438\u044e<\/a> \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u043c\u044b \u0441\u0444\u043e\u0440\u043c\u0438\u0440\u043e\u0432\u0430\u043b\u0438 \u0432 \u0432\u0435\u0431\u043b\u0435\u0439\u0442, \u0437\u0430\u043f\u0443\u0448\u0438\u043b\u0438 \u0432 \u0432\u0435\u0442\u043a\u0443 <code>translate<\/code> \u0438 \u0441\u043c\u0435\u0440\u0434\u0436\u043b\u0438 \u0432 <code>master<\/code>.<\/p>\n<p>  <\/p>\n<p>\u0422\u0435\u043f\u0435\u0440\u044c \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0440\u0443\u0441\u0441\u043a\u0438\u0439 \u044f\u0437\u044b\u043a \u0432 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044e. \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u0441\u043d\u043e\u0432\u0430 \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0438\u043c \u0432 \u043f\u0430\u043d\u0435\u043b\u044c \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f, \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u043c \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u043f\u0440\u043e\u0435\u043a\u0442\u0430 \u00abiondv-ru\u00bb \u0438 \u0438\u043c\u043f\u043e\u0440\u0442\u0438\u0440\u0443\u0435\u043c \u043f\u0440\u043e\u0435\u043a\u0442 <code>iondv\/docs-ru<\/code>. \u0422\u0430\u043a\u0436\u0435 \u0441\u0442\u0430\u0432\u0438\u043c \u0433\u0430\u043b\u043e\u0447\u043a\u0443 \u00abEdit advanced project options\u00bb \u0438 \u0437\u0430\u0434\u0430\u0451\u043c \u0432 \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0445 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430\u0445 \u044f\u0437\u044b\u043a \u00abRussian\u00bb. \u041f\u0440\u043e\u0435\u043a\u0442 \u0442\u0430\u043a\u0436\u0435 \u043d\u0430\u0447\u043d\u0451\u0442 \u0441\u043e\u0431\u0438\u0440\u0430\u0442\u044c\u0441\u044f \u0441\u0440\u0430\u0437\u0443, \u043d\u043e \u043d\u0435 \u0434\u043e\u0436\u0438\u0434\u0430\u044f\u0441\u044c \u044d\u0442\u043e\u0433\u043e, \u043d\u0443\u0436\u043d\u043e \u0432\u0435\u0440\u043d\u0443\u0442\u044c\u0441\u044f \u0432 \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0439 \u043f\u0440\u043e\u0435\u043a\u0442 \u00abiondv\u00bb \u0441 \u0430\u043d\u0433\u043b\u0438\u0439\u0441\u043a\u043e\u0439 \u0432\u0435\u0440\u0441\u0438\u0435\u0439 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438 \u0438 \u043f\u0435\u0440\u0435\u0439\u0442\u0438 \u0432 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u00abAdmin\u00bb \u0438 \u0432 \u043f\u0443\u043d\u043a\u0442\u0435 \u00abTranslations\u00bb \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u043f\u0440\u043e\u0435\u043a\u0442 \u00abiondv-ru\u00bb<\/p>\n<p>  <\/p>\n<p>\u0422\u0435\u043f\u0435\u0440\u044c \u0432 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430\u0445 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438 \u043f\u043e\u044f\u0432\u0438\u0442\u0441\u044f \u0432\u044b\u0431\u043e\u0440 \u043d\u0435 \u0442\u043e\u043b\u044c\u043a\u043e \u0432\u0435\u0440\u0441\u0438\u0438, \u043d\u043e \u0438 \u044f\u0437\u044b\u043a\u0430:<\/p>\n<p>  <\/p>\n<p><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/fb\/uo\/wh\/fbuowhmajqwbzf6dtvyvq2vkjwa.png\"><\/p>\n<p>  <\/p>\n<h3 id=\"chto-v-planah\">\u0427\u0442\u043e \u0432 \u043f\u043b\u0430\u043d\u0430\u0445:<\/h3>\n<p>  <\/p>\n<ul>\n<li>\u043f\u0435\u0440\u0435\u0434\u0435\u043b\u0430\u0442\u044c \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0443 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438, \u0434\u043e\u043d\u0430\u0441\u0442\u0440\u043e\u0438\u0442\u044c \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0435 \u0444\u043e\u0440\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0438\u043d\u0434\u0435\u043a\u0441\u0430\u0446\u0438\u044e \u0438 \u0432\u044b\u0432\u0435\u0440\u0438\u0442\u044c \u0432\u0441\u0435 \u0441\u0441\u044b\u043b\u043a\u0438 \u0432 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438 \u0438 \u043f\u043e\u0434\u043f\u0440\u0430\u0432\u0438\u0442\u044c\u0448\u0430\u0431\u043b\u043e\u043d\u044b;<\/li>\n<li>\u043f\u0435\u0440\u0435\u043d\u0435\u0441\u0442\u0438 \u0432\u0435\u0441\u044c \u043f\u0435\u0440\u0435\u0432\u043e\u0434 \u0438\u0437 \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u044f \u0444\u0440\u0435\u0439\u043c\u0432\u043e\u0440\u043a\u0430 \u0432 \u0433\u0438\u0442\u0445\u0430\u0431\u0435 \u0432 Weblate;<\/li>\n<li>\u0440\u0430\u0437\u043c\u0435\u0441\u0442\u0438\u0442\u044c \u0432 \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0438 \u0444\u0440\u0435\u0439\u043c\u0432\u043e\u0440\u043a\u0430 \u0438 \u043d\u0430 \u0441\u0430\u0439\u0442\u0435 \u0441\u0441\u044b\u043b\u043a\u0438 \u043d\u0430 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044e iondv.framework \u043d\u0430 readthedocs, \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e \u043f\u043e\u0434 \u0441\u0432\u043e\u0438\u043c \u0434\u043e\u043c\u0435\u043d\u043e\u043c;<\/li>\n<li>\u0434\u043e\u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0432\u0432\u043e\u0434\u043d\u0443\u044e \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044e \u043e \u0444\u0440\u0435\u0439\u043c\u0432\u043e\u0440\u043a\u0435 \u0438 \u0441\u043e\u0431\u0440\u0430\u0442\u044c \u0432\u0441\u0435 \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u044f, \u0432 \u0442\u043e\u043c \u0447\u0438\u0441\u043b\u0435 \u0434\u0435\u043c\u043e \u0438 \u043c\u043e\u0434\u0443\u043b\u0435\u0439 \u0432 \u043e\u0434\u043d\u043e\u043c \u043c\u0435\u0441\u0442\u0435;<\/li>\n<li>\u043f\u0435\u0440\u0435\u0432\u0435\u0441\u0442\u0438 \u043d\u043e\u0432\u044b\u0435 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u044b \u043d\u0430 \u0430\u043d\u0433\u043b\u0438\u0439\u0441\u043a\u0438\u0439, \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0441\u043e\u043e\u0431\u0449\u0435\u0441\u0442\u0432\u0430;<\/li>\n<li>\u043f\u043e\u043f\u0440\u043e\u0431\u043e\u0432\u0430\u0442\u044c \u0434\u0440\u0443\u0433\u0438\u0435 \u044f\u0437\u044b\u043a\u0438.<\/li>\n<li>\u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0438\u0442\u044c weblate \u0434\u043b\u044f \u043f\u0435\u0440\u0435\u0432\u043e\u0434\u0430 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u043d\u0430 \u0434\u0440\u0443\u0433\u0438\u0435 <a href=\"https:\/\/github.com\/iondv\/framework\/tree\/3.1.0ru\/i18n\/ru\/errors\">\u043b\u043e\u043a\u0430\u043b\u0438 \u0432 \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0438 \u044f\u0434\u0440\u0430 \u0444\u0440\u0435\u0439\u043c\u0432\u043e\u0440\u043a\u0430<\/a> (\u0441\u0435\u0439\u0447\u0430\u0441 \u0441\u043a\u0432\u043e\u0437\u043d\u043e\u0439 \u043f\u0435\u0440\u0435\u0432\u043e\u0434 \u0441\u043a\u0440\u0438\u043f\u0442\u0430\u043c\u0438).<\/li>\n<\/ul>\n<p>  <\/p>\n<p>\u042d\u0442\u043e\u0442 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0439 \u043f\u0443\u043d\u043a\u0442 \u043a\u043b\u044e\u0447\u0435\u0432\u043e\u0439. \u0421\u0435\u0439\u0447\u0430\u0441 \u0432 \u043f\u043b\u0430\u043d\u0438\u0440\u0443\u0435\u043c\u043e\u0439 \u043a \u0432\u044b\u043f\u0443\u0441\u043a\u0443 \u0432\u0435\u0440\u0441\u0438\u0438 \u043f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d\u0430 \u043c\u043d\u043e\u0433\u043e\u044f\u0437\u044b\u0447\u043d\u043e\u0441\u0442\u044c \u043d\u0435 \u0442\u043e\u043b\u044c\u043a\u043e \u0432 \u044f\u0434\u0440\u0435, \u043d\u043e \u0438 \u043d\u0430 \u0443\u0440\u043e\u0432\u043d\u0435 \u043c\u043e\u0434\u0443\u043b\u0435\u0439 \u0438 \u0448\u0430\u0431\u043b\u043e\u043d\u043e\u0432. \u041d\u043e \u043c\u044b \u043d\u0435 \u043e\u0431\u043a\u0430\u0442\u044b\u0432\u0430\u043b\u0438 \u0435\u0451 \u0434\u043b\u044f \u043f\u0435\u0440\u0435\u0432\u043e\u0434\u043e\u0432 \u0432 weblate. \u0421\u043c\u0443\u0449\u0430\u044e\u0442 \u0442\u0440\u0443\u0434\u043d\u043e\u0441\u0442\u0438 \u0441 \u043d\u0430\u0440\u0443\u0448\u0435\u043d\u0438\u0435\u043c \u0441\u0438\u043d\u0442\u0430\u043a\u0441\u0438\u0441\u0430 \u044f\u0437\u044b\u043a\u0430 \u043f\u0440\u0438 \u043f\u0435\u0440\u0435\u0432\u043e\u0434\u0435 \u2013 \u0443\u0441\u043b\u043e\u0432\u043d\u043e \u0433\u043e\u0432\u043e\u0440\u044f \u0431\u044b\u043b\u043e <code>ERR_MSG='\u0421\u0435\u0440\u0432\u0435\u0440 \u0437\u0430\u043f\u0443\u0449\u0435\u043d'<\/code>, \u0430 \u0441\u0442\u0430\u043b\u043e <code>ERR_ MSG=&quot;Server\\'s up and running.'<\/code>. \u0412\u043e\u0437\u043c\u043e\u0436\u043d\u043e, \u0438\u043c\u0435\u0435\u0442 \u0441\u043c\u044b\u0441\u043b \u043f\u0435\u0440\u0435\u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u043d\u0430 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u043c\u043e\u0434\u0435\u043b\u0438 GNU gettext, \u043d\u043e \u0441 \u043d\u0435\u0439 \u0442\u043e\u0436\u0435 \u043d\u0435 \u0432\u0441\u0435 \u043e\u0447\u0435\u0432\u0438\u0434\u043d\u043e.<\/p>\n<p>  <\/p>\n<p>\u0415\u0441\u043b\u0438 \u0435\u0441\u0442\u044c \u043e\u043f\u044b\u0442 \u2013 \u043f\u043e\u0434\u0435\u043b\u0438\u0442\u0435\u0441\u044c \u043f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430 \u0432 \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u044f\u0445.<\/p>\n<p>  <\/p>\n<p>\u0412\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u0441\u043b\u0435\u0434\u0438\u0442\u044c \u0437\u0430 \u043f\u0440\u043e\u0435\u043a\u0442\u043e\u043c \u0438 \u044d\u0442\u0438\u043c \u043e\u043f\u044b\u0442\u043e\u043c \u043e\u0440\u0433\u0430\u043d\u0438\u0437\u0430\u0446\u0438\u0438 \u043b\u043e\u043a\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0442\u0430\u043a\u0436\u0435 \u0447\u0435\u0440\u0435\u0437 \u0441\u043e\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u0435 \u0441\u0435\u0442\u0438 \u2013 <a href=\"https:\/\/facebook.com\/iondv\">facebook<\/a> \u0438\u043b\u0438 <a href=\"https:\/\/linkedin.com\/company\/iondv\/\">LinkedIn<\/a>.<\/p>\n<\/div>\n<p> \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\/post\/488956\/\"> https:\/\/habr.com\/ru\/post\/488956\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"\n<div class=\"post__text post__text-html\" id=\"post-content-body\" data-io-article-url=\"https:\/\/habr.com\/ru\/post\/488956\/\">\n<p><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/gg\/f-\/3a\/ggf-3arqdyxxpknobbjra9r3p38.png\"><\/p>\n<p>  <\/p>\n<p>\u041a\u0430\u043a \u0438 \u0443 \u043c\u043d\u043e\u0433\u0438\u0445 \u043a\u043e\u043c\u0430\u043d\u0434 \u0440\u0430\u0437\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u044e\u0449\u0438\u0445 \u0431\u043e\u043b\u044c\u0448\u0438\u0435 \u043f\u0440\u043e\u0434\u0443\u043a\u0442\u044b, \u043f\u0440\u0438 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0435 \u043e\u043f\u0435\u043d\u0441\u043e\u0440\u0441\u043d\u043e\u0433\u043e \u0444\u0440\u0435\u0439\u043c\u0432\u043e\u0440\u043a\u0430 \u0434\u043b\u044f \u0432\u0438\u0437\u0443\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u0432\u0435\u0431-\u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439 <a href=\"http:\/\/iondv.com\">iondv.framework <\/a> \u0432\u043e\u0437\u043d\u0438\u043a\u043b\u0430 \u0437\u0430\u0434\u0430\u0447\u0430 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0435\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u044b. \u0421\u043d\u0430\u0447\u0430\u043b\u0430 \u0434\u043b\u044f \u0441\u0435\u0431\u044f \u0438 \u043d\u043e\u0432\u044b\u0445 \u0441\u043e\u0442\u0440\u0443\u0434\u043d\u0438\u043a\u043e\u0432. \u041f\u043e\u0442\u043e\u043c \u0434\u043b\u044f \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439. \u0410 \u0432 \u043d\u0430\u0441\u0442\u043e\u044f\u0449\u0435\u0435 \u0432\u0440\u0435\u043c\u044f \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044f \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0438 \u0432\u0430\u0436\u043d\u044b\u043c \u0441\u0440\u0435\u0434\u0441\u0442\u0432\u043e\u043c \u043f\u0440\u043e\u0434\u0432\u0438\u0436\u0435\u043d\u0438\u044f \u043f\u0440\u043e\u0434\u0443\u043a\u0442\u0430. \u0418 \u0445\u043e\u0442\u044f \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u0435 \u0432\u0440\u0435\u043c\u044f \u0438\u0434\u0451\u0442 \u0441\u043c\u0435\u0449\u0435\u043d\u0438\u0435 \u0432 \u0441\u0442\u043e\u0440\u043e\u043d\u0443 \u043c\u0435\u0434\u0438\u0430 \u043c\u0430\u0442\u0435\u0440\u0438\u0430\u043b\u043e\u0432 (\u0432\u0438\u0434\u0435\u043e \u0443\u0440\u043e\u043a\u043e\u0432), \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044f \u0432\u0430\u0436\u043d\u0430.<\/p>\n<p>  <\/p>\n<p>\u041c\u044b \u043f\u0440\u043e\u0448\u043b\u0438 \u043f\u0443\u0442\u044c \u043e\u0442 wiki \u0432 \u0433\u0438\u0442\u043b\u0430\u0431, \u0434\u043e \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0439 \u0438 \u0441\u0438\u043d\u0445\u0440\u043e\u043d\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0439 \u043f\u043e \u0434\u0432\u0443\u043c \u044f\u0437\u044b\u043a\u0430\u043c \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438 \u0432 \u0432\u0438\u0434\u0435 markdown \u0444\u0430\u0439\u043b\u043e\u0432 \u043f\u0443\u0431\u043b\u0438\u043a\u0443\u0435\u043c\u044b\u0445 \u0432 \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0438 github. \u0418 \u0432\u043e\u0442 \u043c\u044b \u043d\u0430\u0447\u0430\u043b\u0438 \u043f\u0435\u0440\u0435\u0445\u043e\u0434 \u043d\u0430 Weblate. \u0422\u0430\u043a \u043a\u0430\u043a \u0441\u0442\u0430\u0442\u0435\u0439 \u043e \u043d\u0451\u043c \u043d\u0430 \u0445\u0430\u0431\u0440\u0435 \u043c\u0430\u043b\u043e \u2013 \u043d\u0438\u0436\u0435 \u043e \u043d\u0430\u0448\u0438\u0445 \u043e\u0448\u0438\u0431\u043a\u0430\u0445, \u0441\u043b\u043e\u0436\u043d\u043e\u0441\u0442\u044f\u0445 \u0438 \u043e\u043f\u044b\u0442\u0435 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u043f\u0435\u0440\u0435\u0432\u043e\u0434\u0430 open-source \u043f\u0440\u043e\u0435\u043a\u0442\u0430.<\/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-299310","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/299310","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=299310"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/299310\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=299310"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=299310"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=299310"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}