initial: тема powerhouse + плагины + mu-plugins + languages

This commit is contained in:
2026-04-24 11:57:50 +03:00
commit 04a184f026
8892 changed files with 2312502 additions and 0 deletions

65
.gitignore vendored Normal file
View File

@@ -0,0 +1,65 @@
# === WP Core (не трекаем) ===
wp-admin/
wp-includes/
wp-*.php
!wp-content/
index.php
xmlrpc.php
license.txt
readme.html
# === Конфиги с паролями ===
wp-config.php
wp-config-sample.php
# === Uploads (слишком большие) ===
wp-content/uploads/
# === Кеши и временные ===
wp-content/cache/
wp-content/upgrade/
wp-content/debug.log
wp-content/advanced-cache.php
wp-content/object-cache.php
wp-content/db.php
# === Тестовые/временные файлы ===
test-forms.php
generate-report.php
report-forms.html
MIGRATION-PLAN.md
SECURITY_CHECKLIST.md
*.sql
*.sql.gz
*.png
*.jpg
!wp-content/themes/powerhouse/**/*.png
!wp-content/themes/powerhouse/**/*.jpg
!wp-content/plugins/**/*.png
!wp-content/plugins/**/*.jpg
# === Мусор ===
.tmb/
.playwright-mcp/
.claude/
put_imgs/
adminer-*.php_____
unzipper.php
wheel.php
google*.html
sitemap.xml
robots.txt
# === OS ===
.DS_Store
Thumbs.db
# === Ещё мусор в корне ===
compare-styles.php
convert-elementor.php
sync-elementor-posts.php
docs/
*.jpeg
report.html
test-progress.*
test-results.*

516
.htaccess Normal file
View File

@@ -0,0 +1,516 @@
# BEGIN WP Rocket v3.13.3
# Use UTF-8 encoding for anything served text/plain or text/html
AddDefaultCharset UTF-8
# Force UTF-8 for a number of file formats
<IfModule mod_mime.c>
AddCharset UTF-8 .atom .css .js .json .rss .vtt .xml
</IfModule>
# FileETag None is not enough for every server.
<IfModule mod_headers.c>
Header unset ETag
</IfModule>
# Since were sending far-future expires, we dont need ETags for static content.
# developer.yahoo.com/performance/rules.html#etags
FileETag None
<IfModule mod_alias.c>
<FilesMatch "\.(html|htm|rtf|rtx|txt|xsd|xsl|xml)$">
<IfModule mod_headers.c>
Header set X-Powered-By "WP Rocket/3.13.3"
Header unset Pragma
Header append Cache-Control "public"
Header unset Last-Modified
</IfModule>
</FilesMatch>
<FilesMatch "\.(css|htc|js|asf|asx|wax|wmv|wmx|avi|bmp|class|divx|doc|docx|eot|exe|gif|gz|gzip|ico|jpg|jpeg|jpe|json|mdb|mid|midi|mov|qt|mp3|m4a|mp4|m4v|mpeg|mpg|mpe|mpp|otf|odb|odc|odf|odg|odp|ods|odt|ogg|pdf|png|pot|pps|ppt|pptx|ra|ram|svg|svgz|swf|tar|tif|tiff|ttf|ttc|wav|wma|wri|xla|xls|xlsx|xlt|xlw|zip)$">
<IfModule mod_headers.c>
Header unset Pragma
Header append Cache-Control "public"
</IfModule>
</FilesMatch>
</IfModule>
<IfModule mod_mime.c>
AddType image/avif avif
AddType image/avif-sequence avifs
</IfModule>
# Expires headers (for better cache control)
<IfModule mod_expires.c>
ExpiresActive on
ExpiresDefault "access plus 1 month"
# cache.appcache needs re-requests in FF 3.6 (thanks Remy ~Introducing HTML5)
ExpiresByType text/cache-manifest "access plus 0 seconds"
# Your document html
ExpiresByType text/html "access plus 0 seconds"
# Data
ExpiresByType text/xml "access plus 0 seconds"
ExpiresByType application/xml "access plus 0 seconds"
ExpiresByType application/json "access plus 0 seconds"
# Feed
ExpiresByType application/rss+xml "access plus 1 hour"
ExpiresByType application/atom+xml "access plus 1 hour"
# Favicon (cannot be renamed)
ExpiresByType image/x-icon "access plus 1 week"
# Media: images, video, audio
ExpiresByType image/gif "access plus 4 months"
ExpiresByType image/png "access plus 4 months"
ExpiresByType image/jpeg "access plus 4 months"
ExpiresByType image/webp "access plus 4 months"
ExpiresByType video/ogg "access plus 4 months"
ExpiresByType audio/ogg "access plus 4 months"
ExpiresByType video/mp4 "access plus 4 months"
ExpiresByType video/webm "access plus 4 months"
ExpiresByType image/avif "access plus 4 months"
ExpiresByType image/avif-sequence "access plus 4 months"
# HTC files (css3pie)
ExpiresByType text/x-component "access plus 1 month"
# Webfonts
ExpiresByType font/ttf "access plus 4 months"
ExpiresByType font/otf "access plus 4 months"
ExpiresByType font/woff "access plus 4 months"
ExpiresByType font/woff2 "access plus 4 months"
ExpiresByType image/svg+xml "access plus 4 months"
ExpiresByType application/vnd.ms-fontobject "access plus 1 month"
# CSS and JavaScript
ExpiresByType text/css "access plus 1 year"
ExpiresByType application/javascript "access plus 1 year"
</IfModule>
# Gzip compression
<IfModule mod_deflate.c>
# Active compression
SetOutputFilter DEFLATE
# Force deflate for mangled headers
<IfModule mod_setenvif.c>
<IfModule mod_headers.c>
SetEnvIfNoCase ^(Accept-EncodXng|X-cept-Encoding|X{15}|~{15}|-{15})$ ^((gzip|deflate)\s*,?\s*)+|[X~-]{4,13}$ HAVE_Accept-Encoding
RequestHeader append Accept-Encoding "gzip,deflate" env=HAVE_Accept-Encoding
# Dont compress images and other uncompressible content
SetEnvIfNoCase Request_URI \
\.(?:gif|jpe?g|png|rar|zip|exe|flv|mov|wma|mp3|avi|swf|mp?g|mp4|webm|webp|pdf)$ no-gzip dont-vary
</IfModule>
</IfModule>
# Compress all output labeled with one of the following MIME-types
<IfModule mod_filter.c>
AddOutputFilterByType DEFLATE application/atom+xml \
application/javascript \
application/json \
application/rss+xml \
application/vnd.ms-fontobject \
application/x-font-ttf \
application/xhtml+xml \
application/xml \
font/opentype \
image/svg+xml \
image/x-icon \
text/css \
text/html \
text/plain \
text/x-component \
text/xml
</IfModule>
<IfModule mod_headers.c>
Header append Vary: Accept-Encoding
</IfModule>
</IfModule>
# END WP Rocket
# BEGIN LSCACHE
# END LSCACHE
# BEGIN NON_LSCACHE
# END NON_LSCACHE
RewriteEngine On
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_URI} ^/halturina-55/.*$
RewriteRule ^ - [R=404,L]
# RewriteRule ^.*$ https://%{HTTP_HOST}/halturina-55/news/closed-gym/? [R=301,L]
RewriteCond %{REQUEST_URI} ^/karnaval/contacts/$
RewriteRule ^.*$ https://%{HTTP_HOST}/halturina-55/kontakty/? [R=301,L]
RewriteCond %{REQUEST_URI} ^/deryabina24/$
RewriteRule ^.*$ https://%{HTTP_HOST}/serafimy-deryabinoj-24/? [R=301,L]
RewriteCond %{REQUEST_URI} ^/deryabina24/contacts/$
RewriteRule ^.*$ https://%{HTTP_HOST}/serafimy-deryabinoj-24/kontakty/? [R=301,L]
RewriteCond %{REQUEST_URI} ^/deryabina24/program/sd_bolshoj-zal-gruppovyh-programm/$
RewriteRule ^.*$ https://%{HTTP_HOST}/serafimy-deryabinoj-24/gruppovye-programmy/? [R=301,L]
RewriteCond %{REQUEST_URI} ^/deryabina24/program/sd_trenazhernyj-zal/$
RewriteRule ^.*$ https://%{HTTP_HOST}/serafimy-deryabinoj-24/trenazhernyj-zal/? [R=301,L]
RewriteCond %{REQUEST_URI} ^/deryabina24/program/zona-edinoborstv/$
RewriteRule ^.*$ https://%{HTTP_HOST}/serafimy-deryabinoj-24/edinoborstva/? [R=301,L]
RewriteCond %{REQUEST_URI} ^/karnaval/$
RewriteRule ^.*$ https://%{HTTP_HOST}/halturina-55? [R=301,L]
RewriteCond %{REQUEST_URI} ^/karnaval/program/$
RewriteRule ^.*$ https://%{HTTP_HOST}/halturina-55/program/? [R=301,L]
RewriteCond %{REQUEST_URI} ^/karnaval/program/bolshoj-zal-gruppovyh-programm-halturina/$
RewriteRule ^.*$ https://%{HTTP_HOST}/halturina-55/gruppovye-programmy/? [R=301,L]
RewriteCond %{REQUEST_URI} ^/karnaval/program/malyj-zal-gruppovyh-programm-halturina/$
RewriteRule ^.*$ https://%{HTTP_HOST}/halturina-55/gruppovye-programmy/? [R=301,L]
RewriteCond %{REQUEST_URI} ^/karnaval/program/trenazhernyj-zal-halturina/$
RewriteRule ^.*$ https://%{HTTP_HOST}/halturina-55/trenazhernyj-zal/? [R=301,L]
RewriteCond %{REQUEST_URI} ^/karnaval/program/zal-funkcionalnogo-treninga-halturina/$
RewriteRule ^.*$ https://%{HTTP_HOST}/halturina-55/trenazhernyj-zal/? [R=301,L]
RewriteCond %{REQUEST_URI} ^/karnaval/stock/fitnes-v-rassrochku/$
RewriteRule ^.*$ https://%{HTTP_HOST}/halturina-55/news/fitnes-v-rassrochku-2-2/? [R=301,L]
RewriteCond %{REQUEST_URI} ^/news/trenirujsya-s-druzyami/$
RewriteRule ^.*$ https://%{HTTP_HOST}/dubler-sibirskogo-trakta-2/news/fitnes-v-rassrochku-2/? [R=301,L]
RewriteCond %{REQUEST_URI} ^/pages/karnavalnew/$
RewriteRule ^.*$ https://%{HTTP_HOST}/halturina-55/raspisanie-2/? [R=301,L]
RewriteCond %{REQUEST_URI} ^/pages/rasp-dubler/$
RewriteRule ^.*$ https://%{HTTP_HOST}/dubler-sibirskogo-trakta-2/raspisanie/? [R=301,L]
RewriteCond %{REQUEST_URI} ^/pages/rasp-palladium/$
RewriteRule ^.*$ https://%{HTTP_HOST}/palladium/raspisanie/? [R=301,L]
RewriteCond %{REQUEST_URI} ^/pages/rasp-rodon/$
RewriteRule ^.*$ https://%{HTTP_HOST}/rodonitovaya-29/raspisanie-2/? [R=301,L]
RewriteCond %{REQUEST_URI} ^/pages/seravimanew/$
RewriteRule ^.*$ https://%{HTTP_HOST}/serafimy-deryabinoj-24/raspisanie-2/? [R=301,L]
RewriteCond %{REQUEST_URI} ^/pages/titovanew/$
RewriteRule ^.*$ https://%{HTTP_HOST}/titova-35a/raspisanie-2/? [R=301,L]
RewriteCond %{REQUEST_URI} ^/pages/vakansii/$
RewriteRule ^.*$ https://%{HTTP_HOST}/vacancy/? [R=301,L]
#Циклический редиррект
#RewriteCond %{REQUEST_URI} ^/palladium/$
# RewriteRule ^.*$ https://%{HTTP_HOST}/palladium/? [R=301,L]
RewriteCond %{REQUEST_URI} ^/palladium/contacts/$
RewriteRule ^.*$ https://%{HTTP_HOST}/palladium/kontakty/? [R=301,L]
RewriteCond %{REQUEST_URI} ^/palladium/program/hoh_trenazhernyj-zal/$
RewriteRule ^.*$ https://%{HTTP_HOST}/palladium/trenazhernyj-zal/? [R=301,L]
RewriteCond %{REQUEST_URI} ^/palladium/program/hohr_bassejn/$
RewriteRule ^.*$ https://%{HTTP_HOST}/palladium/bassejn/? [R=301,L]
RewriteCond %{REQUEST_URI} ^/palladium/program/hohr_bolshoj-zal-gruppovyh-programm/$
RewriteRule ^.*$ https://%{HTTP_HOST}/palladium/gruppovye-programmy/? [R=301,L]
RewriteCond %{REQUEST_URI} ^/palladium/program/hohr_detskij-klub/$
RewriteRule ^.*$ https://%{HTTP_HOST}/palladium/detskij-klub/? [R=301,L]
RewriteCond %{REQUEST_URI} ^/palladium/program/hohr_malyj-zal-gruppovyh-programm/$
RewriteRule ^.*$ https://%{HTTP_HOST}/palladium/gruppovye-programmy/? [R=301,L]
RewriteCond %{REQUEST_URI} ^/palladium/program/zona-funkcionalnogo-treninga-palladium/$
RewriteRule ^.*$ https://%{HTTP_HOST}/palladium/trenazhernyj-zal/? [R=301,L]
RewriteCond %{REQUEST_URI} ^/rodonit29/$
RewriteRule ^.*$ https://%{HTTP_HOST}/rodonitovaya-29/? [R=301,L]
RewriteCond %{REQUEST_URI} ^/rodonit29/contacts/$
RewriteRule ^.*$ https://%{HTTP_HOST}/rodonitovaya-29/kontakty/? [R=301,L]
RewriteCond %{REQUEST_URI} ^/rodonit29/program/$
RewriteRule ^.*$ https://%{HTTP_HOST}/rodonitovaya-29/program/? [R=301,L]
RewriteCond %{REQUEST_URI} ^/rodonit29/program/bassejn/$
RewriteRule ^.*$ https://%{HTTP_HOST}/rodonitovaya-29/program/bassejn/? [R=301,L]
RewriteCond %{REQUEST_URI} ^/rodonit29/program/bolschoi-zal-gruppovyh-zanyatij/$
RewriteRule ^.*$ https://%{HTTP_HOST}/rodonitovaya-29/gruppovye-programmy/? [R=301,L]
RewriteCond %{REQUEST_URI} ^/rodonit29/program/detskij-klub/$
RewriteRule ^.*$ https://%{HTTP_HOST}/rodonitovaya-29/detskij-klub/? [R=301,L]
RewriteCond %{REQUEST_URI} ^/rodonit29/program/maliyy-zal-gruppovyh-programm/$
RewriteRule ^.*$ https://%{HTTP_HOST}/rodonitovaya-29/gruppovye-programmy/? [R=301,L]
RewriteCond %{REQUEST_URI} ^/rodonit29/program/trenazhernyj-zal/$
RewriteRule ^.*$ https://%{HTTP_HOST}/rodonitovaya-29/trenazhernyj-zal/? [R=301,L]
RewriteCond %{REQUEST_URI} ^/sibtrakt2/$
RewriteRule ^.*$ https://%{HTTP_HOST}/dubler-sibirskogo-trakta-2/? [R=301,L]
RewriteCond %{REQUEST_URI} ^/sibtrakt2/contacts/$
RewriteRule ^.*$ https://%{HTTP_HOST}/dubler-sibirskogo-trakta-2/kontakty/? [R=301,L]
RewriteCond %{REQUEST_URI} ^/sibtrakt2/program/bolshoj-zal-gruppovyh-programm-dubler/$
RewriteRule ^.*$ https://%{HTTP_HOST}/dubler-sibirskogo-trakta-2/gruppovye-programmy/? [R=301,L]
RewriteCond %{REQUEST_URI} ^/sibtrakt2/program/trenazhernyj-zal-dubler/$
RewriteRule ^.*$ https://%{HTTP_HOST}/dubler-sibirskogo-trakta-2/trenazhernyj-zal/? [R=301,L]
RewriteCond %{REQUEST_URI} ^/sibtrakt2/program/zona-funkcionalnogo-treninga/$
RewriteRule ^.*$ https://%{HTTP_HOST}/dubler-sibirskogo-trakta-2/trenazhernyj-zal/? [R=301,L]
RewriteCond %{REQUEST_URI} ^/sibtrakt2/stock/trenirujsya-s-druzyami-5/$
RewriteRule ^.*$ https://%{HTTP_HOST}/dubler-sibirskogo-trakta-2/news/fitnes-v-rassrochku-2/? [R=301,L]
RewriteCond %{REQUEST_URI} ^/titova35/$
RewriteRule ^.*$ https://%{HTTP_HOST}/titova-35a/? [R=301,L]
RewriteCond %{REQUEST_URI} ^/titova35/contacts/$
RewriteRule ^.*$ https://%{HTTP_HOST}/titova-35a/kontakty/? [R=301,L]
RewriteCond %{REQUEST_URI} ^/titova35/program/$
RewriteRule ^.*$ https://%{HTTP_HOST}/titova-35a/program/? [R=301,L]
RewriteCond %{REQUEST_URI} ^/titova35/program/bassejn_titova/$
RewriteRule ^.*$ https://%{HTTP_HOST}/titova-35a/bassein/? [R=301,L]
RewriteCond %{REQUEST_URI} ^/titova35/program/box_titova/$
RewriteRule ^.*$ https://%{HTTP_HOST}/titova-35a/edinoborstva/? [R=301,L]
RewriteCond %{REQUEST_URI} ^/titova35/program/trenazhernyj-zal-titova/$
RewriteRule ^.*$ https://%{HTTP_HOST}/titova-35a/trenazhernyj-zal/? [R=301,L]
RewriteCond %{REQUEST_URI} ^/titova35/program/zal-gruppovyh-programm/$
RewriteRule ^.*$ https://%{HTTP_HOST}/titova-35a/gruppovye-programmy/? [R=301,L]
RewriteCond %{REQUEST_URI} ^/10-movie-fitness-sport/$
RewriteRule ^.*$ https://%{HTTP_HOST}/blog/10-movie-fitness-sport/? [R=301,L]
RewriteCond %{REQUEST_URI} ^/chem-opasna-nizkaya-fizicheskaya-aktivnost/$
RewriteRule ^.*$ https://%{HTTP_HOST}/blog/chem-opasna-nizkaya-fizicheskaya-aktivnost/? [R=301,L]
RewriteCond %{REQUEST_URI} ^/formiruem-poleznuyu-privychku/$
RewriteRule ^.*$ https://%{HTTP_HOST}/blog/formiruem-poleznuyu-privychku/? [R=301,L]
RewriteCond %{REQUEST_URI} ^/gruppovye-trenirovki-dlya-muzhchin/$
RewriteRule ^.*$ https://%{HTTP_HOST}/blog/gruppovye-trenirovki-dlya-muzhchin/? [R=301,L]
RewriteCond %{REQUEST_URI} ^/hodba-dlya-pohudeniya-mif-ili-realnost/$
RewriteRule ^.*$ https://%{HTTP_HOST}/blog/hodba-dlya-pohudeniya-mif-ili-realnost/? [R=301,L]
RewriteCond %{REQUEST_URI} ^/idealnyj-ves-kak-ponyat-k-chemu-stremitsya/$
RewriteRule ^.*$ https://%{HTTP_HOST}/blog/idealnyj-ves-kak-ponyat-k-chemu-stremitsya/? [R=301,L]
RewriteCond %{REQUEST_URI} ^/kak-pitatsya-do-i-posle-trenirovki/$
RewriteRule ^.*$ https://%{HTTP_HOST}/blog/kak-pitatsya-do-i-posle-trenirovki/? [R=301,L]
RewriteCond %{REQUEST_URI} ^/kak-pravilno-podobrat-obuv-dlya-zanyatiya-fitnesom/$
RewriteRule ^.*$ https://%{HTTP_HOST}/blog/kak-pravilno-podobrat-obuv-dlya-zanyatiya-fitnesom/? [R=301,L]
RewriteCond %{REQUEST_URI} ^/novyj-god-ne-povod-nabirat-ves/$
RewriteRule ^.*$ https://%{HTTP_HOST}/blog/novyj-god-ne-povod-nabirat-ves/? [R=301,L]
RewriteCond %{REQUEST_URI} ^/poterya-interesa-k-sportu/$
RewriteRule ^.*$ https://%{HTTP_HOST}/blog/poterya-interesa-k-sportu/? [R=301,L]
RewriteCond %{REQUEST_URI} ^/proteiny-polza-ili-vred/$
RewriteRule ^.*$ https://%{HTTP_HOST}/blog/proteiny-polza-ili-vred/? [R=301,L]
RewriteCond %{REQUEST_URI} ^/tipichnye-oshibki-nachinayushhikh-bodibilderov/$
RewriteRule ^.*$ https://%{HTTP_HOST}/blog/tipichnye-oshibki-nachinayushhikh-bodibilderov/? [R=301,L]
RewriteCond %{REQUEST_URI} ^/vosstanovlenie-posle-rodov/$
RewriteRule ^.*$ https://%{HTTP_HOST}/blog/vosstanovlenie-posle-rodov/? [R=301,L]
RewriteCond %{REQUEST_URI} ^/bous-training-gym-6-tips/$
RewriteRule ^.*$ https://%{HTTP_HOST}/blog/bous-training-gym-6-tips/? [R=301,L]
RewriteCond %{REQUEST_URI} ^/ostorozhno-populyarnye-diety/$
RewriteRule ^.*$ https://%{HTTP_HOST}/blog/ostorozhno-populyarnye-diety/? [R=301,L]
RewriteCond %{REQUEST_URI} ^/4-shaga-k-regulyarnym-zanyatiyam-kak-spravitsya-s-pristupami-leni/$
RewriteRule ^.*$ https://%{HTTP_HOST}/blog/4-shaga-k-regulyarnym-zanyatiyam-kak-spravitsya-s-pristupami-leni/? [R=301,L]
RewriteCond %{REQUEST_URI} ^/fitness-group-gym-alternative/$
RewriteRule ^.*$ https://%{HTTP_HOST}/blog/fitness-group-gym-alternative/? [R=301,L]
# add a trailing slash to /wp-admin
RewriteRule ^([_0-9a-zA-Z-]+/)?wp-admin$ $1wp-admin/ [R=301,L]
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ - [L]
RewriteRule ^([_0-9a-zA-Z-]+/)?(wp-(content|admin|includes).*) $2 [L]
RewriteRule ^([_0-9a-zA-Z-]+/)?(.*\.php)$ $2 [L]
RewriteRule . index.php [L]
Rewriteengine On
#Redirect 301 / https://powerhousegym.ru
# кеш браузера: разрешаем истечение срока
<ifModule mod_expires.c>
ExpiresActive On
#по умолчанию кеш в 5 секунд
ExpiresDefault "access plus 120 minutes"
# Включаем кэширование изображений и флэш на месяц
ExpiresByType image/x-icon "access plus 1 month"
ExpiresByType image/jpeg "access plus 4 weeks"
ExpiresByType image/png "access plus 30 days"
ExpiresByType image/gif "access plus 43829 minutes"
ExpiresByType application/x-shockwave-flash "access plus 2592000 seconds"
# Включаем кэширование css, javascript и текстовых файлов на одиннадцать часов
ExpiresByType text/css "access plus 11 hours"
ExpiresByType text/javascript "access plus 11 hours"
ExpiresByType application/javascript "access plus 11 hours"
ExpiresByType application/x-javascript "access plus 11 hours"
# Включаем кэширование html и htm файлов на 2 часа
ExpiresByType text/html "access plus 120 minutes"
# Включаем кэширование xml файлов на десять минут
ExpiresByType application/xhtml+xml "access plus 600 seconds"
# Нестандартные шрифты сайта
ExpiresByType application/x-font-ttf "access plus 1 month"
ExpiresByType font/opentype "access plus 1 month"
ExpiresByType application/x-font-woff "access plus 1 month"
ExpiresByType image/svg+xml "access plus 1 month"
ExpiresByType application/vnd.ms-fontobject "access plus 1 month"
</ifModule>
# BEGIN seraphinite-accelerator
# Директивы (строки) между `BEGIN seraphinite-accelerator` и `END seraphinite-accelerator`
# созданы автоматически и подлежат изменению только через фильтры WordPress.
# Сделанные вручную изменения между этими маркерами будут перезаписаны.
<IfModule mod_mime.c>
AddType image/avif .avif
AddType image/webp .webp
AddType application/font-woff2 .woff2
AddType application/x-font-opentype .otf
</IfModule>
<IfModule mod_expires.c>
ExpiresActive on
ExpiresByType text/css "access plus 43200 minutes"
ExpiresByType text/javascript "access plus 43200 minutes"
ExpiresByType application/javascript "access plus 43200 minutes"
ExpiresByType application/x-javascript "access plus 43200 minutes"
ExpiresByType font/eot "access plus 43200 minutes"
ExpiresByType font/opentype "access plus 43200 minutes"
ExpiresByType font/woff "access plus 43200 minutes"
ExpiresByType application/vnd.ms-fontobject "access plus 43200 minutes"
ExpiresByType application/font-woff "access plus 43200 minutes"
ExpiresByType application/font-woff2 "access plus 43200 minutes"
ExpiresByType application/x-font-ttf "access plus 43200 minutes"
ExpiresByType application/x-font-woff "access plus 43200 minutes"
ExpiresByType image/vnd.microsoft.icon "access plus 43200 minutes"
ExpiresByType image/x-icon "access plus 43200 minutes"
ExpiresByType image/bmp "access plus 43200 minutes"
ExpiresByType image/gif "access plus 43200 minutes"
ExpiresByType image/jpeg "access plus 43200 minutes"
ExpiresByType image/png "access plus 43200 minutes"
ExpiresByType image/svg+xml "access plus 43200 minutes"
ExpiresByType image/avif "access plus 43200 minutes"
ExpiresByType image/webp "access plus 43200 minutes"
ExpiresByType audio/ogg "access plus 43200 minutes"
ExpiresByType video/mp4 "access plus 43200 minutes"
ExpiresByType video/ogg "access plus 43200 minutes"
ExpiresByType video/webm "access plus 43200 minutes"
</IfModule>
<IfModule mod_headers.c>
<FilesMatch \.(jpe|jpg|jpeg|png|gif|bmp|webp|avif)$>
Header merge Vary Accept
</FilesMatch>
</IfModule>
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTP_ACCEPT} image\/webp
RewriteCond %{REQUEST_FILENAME} \.(jpe|jpg|jpeg|png|gif|bmp|webp|avif)$
RewriteCond %{REQUEST_FILENAME}.webp -f
RewriteRule ^(.*)\.(jpe|jpg|jpeg|png|gif|bmp|webp|avif)$ $1\.$2\.webp [QSA]
</IfModule>
<IfModule mod_headers.c>
<FilesMatch \.(jpe|jpg|jpeg|png|gif|bmp|webp|avif)\.webp$>
Header merge Vary Accept
</FilesMatch>
</IfModule>
<IfModule mod_deflate.c>
<IfModule mod_filter.c>
AddOutputFilterByType DEFLATE text/plain text/css text/javascript application/javascript application/x-javascript application/json text/html text/xml application/atom+xml application/rss+xml application/xhtml+xml application/xml text/x-component application/vnd.ms-fontobject application/x-font-ttf font/eot font/opentype image/bmp image/svg+xml image/vnd.microsoft.icon image/x-icon
</IfModule>
</IfModule>
<IfModule mod_headers.c>
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTP:Accept-Encoding} (^|\W)gzip(\W|$)
RewriteCond %{REQUEST_FILENAME} \.(css|js)$
RewriteCond %{REQUEST_FILENAME}.gz -f
RewriteRule ^(.*)\.(css|js)$ $1\.$2\.gz [QSA]
RewriteRule \.css\.gz$ - [T=text/css,E=no-gzip:1,E=no-brotli:1]
RewriteRule \.js\.gz$ - [T=application/javascript,E=no-gzip:1,E=no-brotli:1]
</IfModule>
<FilesMatch \.(js|css)\.gz$>
Header set Content-Encoding gzip
Header merge Vary Accept-Encoding
</FilesMatch>
</IfModule>
# END seraphinite-accelerator

50
compare-styles.php Normal file
View File

@@ -0,0 +1,50 @@
<?php
/**
* Скрипт для сравнения computed стилей dev vs prod
* Запускать через WP-CLI: php wp-cli.phar eval-file compare-styles.php --url=dev.powerhousegym.ru
* Делает curl на prod и dev, парсит одинаковые CSS-селекторы
*/
// Пост "Правила бассейна PHG"
$dev_url = 'https://dev.powerhousegym.ru/bez-rubriki/pravila-bassejna-phg/';
$prod_url = 'https://powerhousegym.ru/bez-rubriki/pravila-bassejna-phg/';
$dev_html = file_get_contents($dev_url);
$prod_html = file_get_contents($prod_url);
echo "DEV HTML: " . strlen($dev_html) . " bytes\n";
echo "PROD HTML: " . strlen($prod_html) . " bytes\n\n";
// Сравним CSS файлы которые загружаются
preg_match_all("/id='([^']*-css)'/", $dev_html, $dev_css);
preg_match_all("/id='([^']*-css)'/", $prod_html, $prod_css);
$dev_set = array_unique($dev_css[1]);
$prod_set = array_unique($prod_css[1]);
echo "=== CSS only on PROD ===\n";
foreach (array_diff($prod_set, $dev_set) as $css) {
echo " $css\n";
}
echo "\n=== CSS only on DEV ===\n";
foreach (array_diff($dev_set, $prod_set) as $css) {
echo " $css\n";
}
echo "\n=== Key HTML differences ===\n";
// Elementor на prod
$prod_elementor = substr_count($prod_html, 'elementor-widget');
$dev_elementor = substr_count($dev_html, 'elementor-widget');
echo "Elementor widgets: prod=$prod_elementor dev=$dev_elementor\n";
// Elementor CSS на prod
$prod_el_css = substr_count($prod_html, 'elementor-frontend-css');
$dev_el_css = substr_count($dev_html, 'elementor-frontend-css');
echo "Elementor CSS: prod=$prod_el_css dev=$dev_el_css\n";
// Author block
preg_match('/blog-author-wrapper.*?<\/div>\s*<\/div>\s*<\/div>/s', $dev_html, $dev_author);
preg_match('/blog-author-wrapper.*?<\/div>\s*<\/div>\s*<\/div>/s', $prod_html, $prod_author);
echo "Author block: dev=" . strlen($dev_author[0] ?? '') . " prod=" . strlen($prod_author[0] ?? '') . "\n";

228
convert-elementor.php Normal file
View File

@@ -0,0 +1,228 @@
<?php
/**
* Конвертер Elementor → HTML
* Извлекает контент из _elementor_data и записывает чистый HTML в post_content.
* Запуск: php wp-cli.phar eval-file convert-elementor.php --path=... --allow-root --url=...
*/
$dry_run = in_array('--dry-run', $argv ?? []);
// Маппинг structure → Bootstrap колонки
function get_col_class($col_size) {
switch ((int)$col_size) {
case 100: return 'col-12';
case 66: return 'col-lg-8';
case 50: return 'col-lg-6';
case 33: return 'col-lg-4';
case 25: return 'col-lg-3';
case 75: return 'col-lg-9';
default: return 'col-12';
}
}
// Конвертация одного виджета в HTML
function widget_to_html($el) {
$type = $el['widgetType'] ?? '';
$settings = $el['settings'] ?? [];
switch ($type) {
case 'text-editor':
$text = $settings['editor'] ?? '';
return $text ? "<div class=\"elementor-text-editor\">$text</div>" : '';
case 'heading':
$title = $settings['title'] ?? '';
$tag = $settings['header_size'] ?? 'h2';
$align = $settings['align'] ?? 'left';
$color = $settings['title_color'] ?? '';
$style = '';
if ($color) $style .= "color:$color;";
if ($align === 'center') $style .= "text-align:center;";
$style_attr = $style ? " style=\"$style\"" : '';
return $title ? "<$tag$style_attr>$title</$tag>" : '';
case 'image':
$url = $settings['image']['url'] ?? '';
$alt = $settings['image']['alt'] ?? '';
if (!$url) return '';
return "<img src=\"$url\" alt=\"$alt\" class=\"img-fluid\" style=\"width:100%;height:auto;border-radius:8px;\" loading=\"lazy\">";
case 'divider':
$color = $settings['color'] ?? '#ccc';
$weight = $settings['weight']['size'] ?? 2;
return "<hr style=\"border-top:{$weight}px solid $color;margin:20px 0;\">";
case 'spacer':
$height = $settings['space']['size'] ?? 30;
return "<div style=\"height:{$height}px;\"></div>";
case 'button':
$text = $settings['text'] ?? 'Button';
$link = $settings['link']['url'] ?? '#';
return "<a href=\"$link\" class=\"btn btn-red\" style=\"display:inline-block;padding:10px 30px;border-radius:50px;background:#cf1545;color:#fff;text-decoration:none;text-transform:uppercase;\">$text</a>";
case 'icon-list':
$items = $settings['icon_list'] ?? [];
if (empty($items)) return '';
$html = '<ul>';
foreach ($items as $item) {
$text = $item['text'] ?? '';
$link = $item['link']['url'] ?? '';
if ($link) {
$html .= "<li><a href=\"$link\">$text</a></li>";
} else {
$html .= "<li>$text</li>";
}
}
$html .= '</ul>';
return $html;
case 'blockquote':
$quote = $settings['blockquote_content'] ?? '';
return $quote ? "<blockquote><p>$quote</p></blockquote>" : '';
case 'video':
$url = $settings['youtube_url'] ?? $settings['vimeo_url'] ?? '';
if (!$url) return '';
// Извлекаем YouTube ID
if (preg_match('/(?:youtube\.com\/watch\?v=|youtu\.be\/)([^&\s]+)/', $url, $m)) {
return "<div style=\"position:relative;padding-bottom:56.25%;height:0;overflow:hidden;\"><iframe src=\"https://www.youtube.com/embed/{$m[1]}\" style=\"position:absolute;top:0;left:0;width:100%;height:100%;\" frameborder=\"0\" allowfullscreen loading=\"lazy\"></iframe></div>";
}
return "<a href=\"$url\">Видео</a>";
case 'image-carousel':
$imgs = $settings['carousel'] ?? [];
if (empty($imgs)) return '';
$html = '<div class="row">';
foreach ($imgs as $img) {
$url = $img['url'] ?? '';
if ($url) $html .= "<div class=\"col-4 mb-3\"><img src=\"$url\" class=\"img-fluid\" loading=\"lazy\"></div>";
}
$html .= '</div>';
return $html;
case 'image-box':
$url = $settings['image']['url'] ?? '';
$title = $settings['title_text'] ?? '';
$desc = $settings['description_text'] ?? '';
$html = '';
if ($url) $html .= "<img src=\"$url\" class=\"img-fluid\" loading=\"lazy\">";
if ($title) $html .= "<h4>$title</h4>";
if ($desc) $html .= "<p>$desc</p>";
return $html;
case 'icon':
return ''; // Иконки пропускаем
default:
return "<!-- unknown widget: $type -->";
}
}
// Рекурсивная конвертация элементов
function elements_to_html($elements) {
$html = '';
foreach ($elements as $el) {
$type = $el['elType'] ?? '';
$children = $el['elements'] ?? [];
switch ($type) {
case 'section':
$columns = $children;
$col_count = count($columns);
if ($col_count <= 1) {
// Одноколоночная секция
$html .= elements_to_html($columns);
} else {
// Многоколоночная — используем Bootstrap row
$html .= '<div class="row mb-4">';
foreach ($columns as $col) {
$col_size = $col['settings']['_column_size'] ?? 100;
$col_class = get_col_class($col_size);
$html .= "<div class=\"$col_class\">";
$html .= elements_to_html($col['elements'] ?? []);
$html .= '</div>';
}
$html .= '</div>';
}
break;
case 'column':
// Колонка — обрабатываем дочерние виджеты
$html .= elements_to_html($children);
break;
case 'widget':
$html .= widget_to_html($el);
break;
default:
$html .= elements_to_html($children);
}
}
return $html;
}
// Основной код
$posts = get_posts([
'post_type' => 'any',
'meta_key' => '_elementor_edit_mode',
'meta_value' => 'builder',
'posts_per_page' => -1,
'post_status' => 'publish',
]);
echo "Found " . count($posts) . " Elementor posts\n";
$converted = 0;
$errors = 0;
foreach ($posts as $post) {
$data_raw = get_post_meta($post->ID, '_elementor_data', true);
if (!is_string($data_raw) || strlen($data_raw) < 10) {
echo " SKIP #{$post->ID} ({$post->post_title}) — no data\n";
continue;
}
$data = json_decode($data_raw, true);
if (!is_array($data)) {
echo " ERROR #{$post->ID} ({$post->post_title}) — invalid JSON\n";
$errors++;
continue;
}
$new_content = elements_to_html($data);
if (empty(strip_tags($new_content))) {
echo " SKIP #{$post->ID} ({$post->post_title}) — empty after conversion\n";
continue;
}
// Оборачиваем в container
$new_content = "<div class=\"container elementor-converted\">\n$new_content\n</div>";
if ($dry_run) {
$preview = substr(strip_tags($new_content), 0, 100);
echo " DRY #{$post->ID} ({$post->post_title}) — " . strlen($new_content) . " bytes, preview: $preview...\n";
} else {
// Сохраняем старый post_content как бэкап
update_post_meta($post->ID, '_pre_elementor_convert_content', $post->post_content);
// Записываем новый контент
wp_update_post([
'ID' => $post->ID,
'post_content' => $new_content,
]);
// Удаляем Elementor флаг
delete_post_meta($post->ID, '_elementor_edit_mode');
echo " OK #{$post->ID} ({$post->post_title}) — " . strlen($new_content) . " bytes\n";
$converted++;
}
}
echo "\nDone: $converted converted, $errors errors\n";
if ($dry_run) echo "(DRY RUN — no changes made)\n";

BIN
dev-bassejn.jpeg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 898 KiB

BIN
dev-freshman.jpeg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 808 KiB

BIN
dev-pravila-full.jpeg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 609 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 241 KiB

BIN
dev-zamorozka-check.jpeg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 624 KiB

BIN
dev-zamorozka.jpeg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 670 KiB

View File

@@ -0,0 +1,424 @@
# Миграция на одну тему (powerhouse) — План реализации
> **For agentic workers:** REQUIRED: Use superpowers:subagent-driven-development (if subagents available) or superpowers:executing-plans to implement this plan. Steps use checkbox (`- [ ]`) syntax for tracking.
**Goal:** Перевести все 8 блогов WordPress Multisite на единую тему `powerhouse`, устранив необходимость в `powerhouseclub`.
**Architecture:** Берём `powerhouse` как базу. Копируем уникальные шаблоны/файлы из `powerhouseclub`. Мерджим функциональность из `functions.php`. Подсайты (blogs 2-8) переключаем на `powerhouse` через WP-CLI.
**Tech Stack:** WordPress 6.9.4 Multisite, PHP 8.4, ACF Pro, WP-CLI
**WP-CLI:** `php /home/c24459/wp-cli.phar --path=/home/c24459/newst.powerhousegym.ru/www --allow-root`
**Важно:** После каждого таска — `redis-cli FLUSHALL` и проверка сайта.
---
## Предварительные условия
- Бэкап БД: `wp db export /home/c24459/backup-before-migration.sql --url=dev.powerhousegym.ru`
- Бэкап тем: `cp -r wp-content/themes/powerhouse wp-content/themes/powerhouse.bak`
---
### Task 1: Копирование уникальных шаблонов из powerhouseclub
**Files:**
- Copy: `powerhouseclub/page-open.php``powerhouse/page-open.php`
- Copy: `powerhouseclub/page-way.php``powerhouse/page-way.php`
- Copy: `powerhouseclub/single-combat.php``powerhouse/single-combat.php`
- Copy: `powerhouseclub/single-comanda.php``powerhouse/single-comanda.php`
- Copy: `powerhouseclub/single-services-new.php``powerhouse/single-services-new.php`
- [ ] **Step 1: Копируем шаблоны**
```bash
cd /home/c24459/newst.powerhousegym.ru/www/wp-content/themes
for f in page-open.php page-way.php single-combat.php single-comanda.php single-services-new.php; do
cp powerhouseclub/$f powerhouse/$f
echo "Copied $f"
done
```
- [ ] **Step 2: Проверяем что файлы на месте**
```bash
ls -la powerhouse/page-open.php powerhouse/page-way.php powerhouse/single-combat.php powerhouse/single-comanda.php powerhouse/single-services-new.php
```
---
### Task 2: Копирование include-файлов и template-parts
**Files:**
- Copy: `powerhouseclub/inc/news.php``powerhouse/inc/news.php`
- Copy: `powerhouseclub/inc/putevoditelsacf.php``powerhouse/inc/putevoditelsacf.php`
- Copy: `powerhouseclub/template-parts/putevoditel/``powerhouse/template-parts/putevoditel/`
- Copy: `powerhouseclub/template-parts/timer.php``powerhouse/template-parts/timer.php`
- Copy: `powerhouseclub/template-parts/old/black-friday.php``powerhouse/template-parts/old/black-friday.php`
- [ ] **Step 1: Копируем includes**
```bash
cd /home/c24459/newst.powerhousegym.ru/www/wp-content/themes
cp powerhouseclub/inc/news.php powerhouse/inc/news.php
cp powerhouseclub/inc/putevoditelsacf.php powerhouse/inc/putevoditelsacf.php
```
- [ ] **Step 2: Копируем template-parts**
```bash
mkdir -p powerhouse/template-parts/putevoditel
cp powerhouseclub/template-parts/putevoditel/* powerhouse/template-parts/putevoditel/
cp powerhouseclub/template-parts/timer.php powerhouse/template-parts/timer.php
mkdir -p powerhouse/template-parts/old
cp powerhouseclub/template-parts/old/black-friday.php powerhouse/template-parts/old/black-friday.php
```
- [ ] **Step 3: Проверяем**
```bash
find powerhouse/template-parts/putevoditel -type f | wc -l # Должно быть 6
ls powerhouse/inc/news.php powerhouse/inc/putevoditelsacf.php
```
---
### Task 3: Копирование уникальных CSS/JS/images из powerhouseclub
**Files:**
- Copy: `powerhouseclub/dist/css/putevoditel.css``powerhouse/dist/css/putevoditel.css`
- Copy: `powerhouseclub/dist/css/snowflakes.css``powerhouse/dist/css/snowflakes.css`
- Copy: `powerhouseclub/dist/js/putevoditel.js``powerhouse/dist/js/putevoditel.js`
- Copy: `powerhouseclub/dist/js/snowflakes.js``powerhouse/dist/js/snowflakes.js`
- Copy: уникальные изображения из `powerhouseclub/dist/img/` и `powerhouseclub/service/`
- [ ] **Step 1: Копируем CSS/JS**
```bash
cd /home/c24459/newst.powerhousegym.ru/www/wp-content/themes
cp powerhouseclub/dist/css/putevoditel.css powerhouse/dist/css/
cp powerhouseclub/dist/css/snowflakes.css powerhouse/dist/css/
cp powerhouseclub/dist/js/putevoditel.js powerhouse/dist/js/
cp powerhouseclub/dist/js/snowflakes.js powerhouse/dist/js/
```
- [ ] **Step 2: Копируем уникальные изображения**
```bash
# SVG иконки
for f in arrow-left.svg arrow-right.svg ic-close.svg calendar.svg loc-arrow.svg arrow.svg arrow-right-mini.svg; do
[ -f powerhouseclub/dist/img/$f ] && [ ! -f powerhouse/dist/img/$f ] && cp powerhouseclub/dist/img/$f powerhouse/dist/img/
done
# Service images (для шаблонов услуг)
[ ! -d powerhouse/service ] && cp -r powerhouseclub/service powerhouse/service
```
---
### Task 4: Мердж functions.php — require_once и ini_set
**Files:**
- Modify: `powerhouse/functions.php`
Добавляем из powerhouseclub то, чего нет в powerhouse.
- [ ] **Step 1: Добавляем ini_set и require_once**
В начало `powerhouse/functions.php` (после `<?php`):
```php
@ini_set( 'upload_max_size' , '128M' );
@ini_set( 'post_max_size', '128M');
@ini_set( 'max_execution_time', '300' );
```
После существующих `require_once`:
```php
/* Путеводитель */
require_once(TEMPLATEPATH . '/inc/putevoditelsacf.php');
/* Новости */
require_once(TEMPLATEPATH . '/inc/news.php');
```
- [ ] **Step 2: Добавляем register image size**
```php
add_image_size('photo-image', 548, 638, true);
```
---
### Task 5: Мердж functions.php — CPT и шорткоды
**Files:**
- Modify: `powerhouse/functions.php`
- [ ] **Step 1: Добавляем CPT "promo" (Акции)**
Скопировать функцию регистрации `promo` из powerhouseclub/functions.php в powerhouse/functions.php. Найти через `grep -n "register_post_type.*promo" powerhouseclub/functions.php`.
- [ ] **Step 2: Добавляем шорткоды**
Скопировать функции шорткодов из powerhouseclub: `[news-blue]`, `[news-pink]`, `[news-gray]`, `[timer]`, `[newsbtn]`.
- [ ] **Step 3: Добавляем AJAX-хендлеры**
Скопировать: `get_title_programms()`, `get_text_programms()`, `getProgTerm()` и их `wp_ajax` хуки.
- [ ] **Step 4: Добавляем загрузку putevoditel/snowflakes CSS/JS**
```php
if ( is_page_template( 'page-way.php' ) ) {
wp_enqueue_style( 'putevoditel', get_template_directory_uri().'/dist/css/putevoditel.css', [],
filectime(get_template_directory().'/dist/css/putevoditel.css') );
wp_enqueue_script( 'pu_js', get_template_directory_uri().'/dist/js/putevoditel.js', ['pwh-slick'],
filectime(get_template_directory().'/dist/js/putevoditel.js'), true);
}
```
- [ ] **Step 5: Добавляем Yandex Captcha фильтры из powerhouseclub**
```php
// Проверить и добавить wpcf7_form_elements и wpcf7_default_form_content фильтры
```
---
### Task 6: Мердж functions.php — News CPT rewrite и coach capabilities
**Files:**
- Modify: `powerhouse/functions.php`
- [ ] **Step 1: Обновляем News CPT**
В powerhouse news CPT использует `'has_archive' => true`. Нужно изменить на `'has_archive' => 'news'` и добавить rewrite rules из powerhouseclub, чтобы URL `/news/` работали одинаково.
- [ ] **Step 2: Добавляем capabilities для менеджеров**
Скопировать код `capability_type => ['treners', 'treners']` для coach CPT и функции раздачи capabilities для роли `menager`.
- [ ] **Step 3: Обновляем coach meta_query**
Добавить фильтр `pwh_coach__select-club` в meta_query (активен в powerhouseclub, закомментирован в powerhouse).
- [ ] **Step 4: Flush rewrite rules**
```bash
php /home/c24459/wp-cli.phar --path=/home/c24459/newst.powerhousegym.ru/www --allow-root rewrite flush --url=dev.powerhousegym.ru
```
---
### Task 7: Динамический footer (убираем хардкод форм)
**Files:**
- Modify: `powerhouse/footer.php`
- [ ] **Step 1: Заменяем хардкод CF7 ID**
В `powerhouse/footer.php` найти:
```php
[contact-form-7 id="199"]
```
Заменить на:
```php
<?php
$form_id = get_field('options_page_group_1__form_popup', 'option');
if ($form_id) {
echo do_shortcode('[contact-form-7 id="' . $form_id . '"]');
} else {
echo do_shortcode('[contact-form-7 id="199"]'); // fallback для главного сайта
}
?>
```
- [ ] **Step 2: Добавляем quiz form динамический checked**
В quiz-формах footer.php заменить hardcoded `checked` на динамический через `get_current_blog_id()` (как в powerhouseclub).
---
### Task 8: Обновляем header.php — поддержка подсайтов
**Files:**
- Modify: `powerhouse/header.php`
- [ ] **Step 1: Добавляем проверку на удалённый блог**
Из powerhouseclub/header.php скопировать код проверки `get_blog_status(get_current_blog_id(), 'deleted')` с редиректом на 404.
- [ ] **Step 2: Добавляем динамические title для архивов**
Из powerhouseclub/header.php скопировать условия для `<title>` при `is_home()`, `is_post_type_archive('coach')`, `is_page_template('single-gruppovye-programmy.php')`, `is_singular('news')`.
---
### Task 9: Обновляем header-club.php — совместимость
**Files:**
- Modify: `powerhouse/header-club.php`
- [ ] **Step 1: Проверяем session vs blog_details**
В powerhouse header-club.php используется `$_SESSION['club']['name']`. В powerhouseclub — `get_blog_details()`. Нужно добавить fallback:
```php
$current_club_name = $_SESSION['club']['name'] ?? get_bloginfo('name');
```
- [ ] **Step 2: Добавляем недостающие slide fields**
Проверить что `slogan-color`, `slogan-em-color` обрабатываются (из powerhouseclub).
---
### Task 10: ACF fields — перенос групп полей
**Files:**
- Modify: `powerhouse/inc/acf-fields/all-fields.php`
- Modify: `powerhouse/inc/acf-fields/theme-options-fields.php`
- Modify: `powerhouse/inc/acf-fields/trainings-fields.php`
- [ ] **Step 1: Сравниваем и мерджим ACF field groups**
93 ACF-поля уникальны для powerhouseclub. Большинство зарегистрированы через PHP в `inc/acf-fields/*.php`. Нужно:
1. Скопировать группы полей putevoditel (etaz1-3, bonus, faq, form_sc) из `putevoditelsacf.php` (уже скопирован в Task 2)
2. Скопировать группы полей news из `news.php` (уже скопирован в Task 2)
3. Мерджить `theme-options-fields.php` (448 vs 161 строк — powerhouseclub имеет больше опций)
4. Мерджить `trainings-fields.php` (705 vs 471 строк — powerhouseclub имеет FAQ и SEO поля для тренировок)
- [ ] **Step 2: Мерджим theme-options-fields.php**
```bash
diff wp-content/themes/powerhouseclub/inc/acf-fields/theme-options-fields.php wp-content/themes/powerhouse/inc/acf-fields/theme-options-fields.php
```
Добавить недостающие поля (combat, club cards extra, tariffs, freeze, personal training).
- [ ] **Step 3: Мерджим trainings-fields.php**
Добавить поля `pwh_training__faq_*`, `pwh_training__seo_*`, `pwh_training__after_video`, `pwh_training__display_block`.
---
### Task 11: Минификация скопированных CSS/JS
**Files:**
- Modify: скопированные CSS/JS файлы
- [ ] **Step 1: Минифицируем**
```bash
cd /home/c24459/newst.powerhousegym.ru/www/wp-content/themes/powerhouse/dist/css
npx clean-css-cli -o putevoditel.min.css putevoditel.css
cd ../js
npx terser putevoditel.js -o putevoditel.min.js --compress --mangle
```
- [ ] **Step 2: Обновляем enqueue на min-версии**
В functions.php заменить `putevoditel.css``putevoditel.min.css` и `putevoditel.js``putevoditel.min.js`.
---
### Task 12: Переключение подсайтов на тему powerhouse
**Files:** БД (wp_N_options)
- [ ] **Step 1: Переключаем все блоги**
```bash
for id in 2 3 4 5 6 7 8; do
php /home/c24459/wp-cli.phar --path=/home/c24459/newst.powerhousegym.ru/www --allow-root \
option update stylesheet powerhouse --url=dev.powerhousegym.ru/$(php /home/c24459/wp-cli.phar --path=/home/c24459/newst.powerhousegym.ru/www --allow-root db query "SELECT path FROM wp_blogs WHERE blog_id=$id" --skip-column-names --url=dev.powerhousegym.ru 2>/dev/null | tr -d '/')/ 2>/dev/null
php /home/c24459/wp-cli.phar --path=/home/c24459/newst.powerhousegym.ru/www --allow-root \
option update template powerhouse --url=dev.powerhousegym.ru/$(php /home/c24459/wp-cli.phar --path=/home/c24459/newst.powerhousegym.ru/www --allow-root db query "SELECT path FROM wp_blogs WHERE blog_id=$id" --skip-column-names --url=dev.powerhousegym.ru 2>/dev/null | tr -d '/')/ 2>/dev/null
echo "Blog $id switched to powerhouse"
done
```
- [ ] **Step 2: Flush Redis и rewrite rules**
```bash
redis-cli FLUSHALL
php /home/c24459/wp-cli.phar --path=/home/c24459/newst.powerhousegym.ru/www --allow-root rewrite flush --url=dev.powerhousegym.ru
```
---
### Task 13: Тестирование всех подсайтов
- [ ] **Step 1: Проверяем главную каждого подсайта**
```bash
for path in / /dubler-sibirskogo-trakta-2/ /halturina-55/ /rodonitovaya-29/ /serafimy-deryabinoj-24/ /titova-35a/ /palladium/ /tatishcheva-105/; do
code=$(curl -s -o /dev/null -w "%{http_code}" "https://dev.powerhousegym.ru${path}")
echo "$path: $code"
done
```
Все должны вернуть 200.
- [ ] **Step 2: Визуальная проверка через Playwright**
Скриншоты мобильной версии каждого подсайта — сравнить с prod.
- [ ] **Step 3: Проверяем формы**
Отправить тестовую форму на 2-3 подсайтах — убедиться что CF7 + Captcha работают.
- [ ] **Step 4: Проверяем страницы услуг, тарифов, расписание**
Пройтись по ключевым страницам: `/tarify/`, `/kontakty/`, `/gruppovye-programmy/`, `/raspisanie/`.
---
### Task 14: Удаление powerhouseclub (после успешного тестирования)
- [ ] **Step 1: Деактивируем тему**
```bash
# Убеждаемся что ни один блог не использует powerhouseclub
for id in 1 2 3 4 5 6 7 8; do
prefix=$([ "$id" = "1" ] && echo "wp_" || echo "wp_${id}_")
theme=$(php /home/c24459/wp-cli.phar --path=/home/c24459/newst.powerhousegym.ru/www --allow-root db query "SELECT option_value FROM ${prefix}options WHERE option_name='stylesheet'" --skip-column-names --url=dev.powerhousegym.ru 2>/dev/null)
echo "Blog $id: $theme"
done
```
Все должны показать `powerhouse`.
- [ ] **Step 2: Переименовываем (не удаляем)**
```bash
mv wp-content/themes/powerhouseclub wp-content/themes/powerhouseclub.archived
```
---
## Риски и fallback
| Риск | Вероятность | Fallback |
|------|------------|---------|
| Поломка front-page на подсайтах | Средняя | Blog 3 (halturina-55) использует front-page.php. Если layout сломается — скопировать powerhouseclub/front-page.php как `front-page-club.php` и использовать условно |
| ACF поля не найдены | Низкая | Поля зарегистрированы через PHP-файлы (inc/), после копирования будут доступны |
| Формы сломаются | Средняя | Fallback на hardcoded ID через `?:` оператор |
| Rewrite rules не работают | Низкая | `wp rewrite flush` на каждом подсайте |
| Откат | — | `cp -r powerhouse.bak powerhouse` + импорт БД бэкапа |
## Оценка трудозатрат
| Таск | Время |
|------|-------|
| Tasks 1-3 (копирование файлов) | 15 мин |
| Tasks 4-6 (мердж functions.php) | 1-2 часа |
| Tasks 7-9 (header/footer) | 30 мин |
| Task 10 (ACF fields) | 1 час |
| Task 11 (минификация) | 10 мин |
| Tasks 12-13 (переключение + тест) | 1 час |
| **Итого** | **~4-5 часов** |

BIN
prod-bassejn.jpeg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 917 KiB

BIN
prod-freshman.jpeg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 804 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 297 KiB

BIN
prod-zamorozka.jpeg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 635 KiB

504
report.html Normal file
View File

@@ -0,0 +1,504 @@
<!DOCTYPE html>
<html lang="ru">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Отчёт по оптимизации — PowerHouse Gym</title>
<meta name="robots" content="noindex, nofollow">
<style>
* { margin: 0; padding: 0; box-sizing: border-box; }
body {
font-family: 'Segoe UI', system-ui, -apple-system, sans-serif;
background: #0f1117;
color: #e1e4e8;
line-height: 1.6;
}
.container { max-width: 1100px; margin: 0 auto; padding: 40px 20px; }
h1 {
font-size: 2.2rem;
font-weight: 700;
text-align: center;
margin-bottom: 8px;
background: linear-gradient(135deg, #58a6ff, #bc8cff);
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
}
.subtitle {
text-align: center;
color: #8b949e;
margin-bottom: 50px;
font-size: 1.05rem;
}
/* Summary cards */
.summary {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
gap: 20px;
margin-bottom: 50px;
}
.card {
background: #161b22;
border: 1px solid #30363d;
border-radius: 12px;
padding: 24px;
text-align: center;
}
.card-value {
font-size: 2.4rem;
font-weight: 700;
margin-bottom: 4px;
}
.card-value.green { color: #3fb950; }
.card-value.blue { color: #58a6ff; }
.card-value.purple { color: #bc8cff; }
.card-value.orange { color: #d29922; }
.card-label {
color: #8b949e;
font-size: 0.9rem;
}
/* Section */
h2 {
font-size: 1.5rem;
margin-bottom: 20px;
padding-bottom: 10px;
border-bottom: 1px solid #30363d;
}
h2 span { color: #8b949e; font-weight: 400; font-size: 1rem; margin-left: 8px; }
/* Speed table */
.speed-section { margin-bottom: 50px; }
table {
width: 100%;
border-collapse: collapse;
margin-bottom: 30px;
}
th {
text-align: left;
padding: 12px 16px;
background: #161b22;
color: #8b949e;
font-weight: 600;
font-size: 0.85rem;
text-transform: uppercase;
letter-spacing: 0.5px;
}
td {
padding: 12px 16px;
border-bottom: 1px solid #21262d;
}
tr:hover td { background: #161b22; }
.page-name { color: #c9d1d9; }
.ms { font-variant-numeric: tabular-nums; }
.faster { color: #3fb950; font-weight: 600; }
.slower { color: #f85149; font-weight: 600; }
/* Bar chart */
.bar-row {
display: flex;
align-items: center;
margin-bottom: 12px;
gap: 12px;
}
.bar-label {
width: 200px;
text-align: right;
font-size: 0.85rem;
color: #8b949e;
flex-shrink: 0;
}
.bar-container {
flex: 1;
display: flex;
gap: 4px;
align-items: center;
}
.bar {
height: 28px;
border-radius: 4px;
display: flex;
align-items: center;
padding: 0 10px;
font-size: 0.8rem;
font-weight: 600;
min-width: 50px;
transition: width 0.5s ease;
}
.bar-dev { background: linear-gradient(90deg, #238636, #3fb950); color: #fff; }
.bar-prod { background: linear-gradient(90deg, #b62324, #f85149); color: #fff; }
/* Changes table */
.changes-section { margin-bottom: 50px; }
.tag {
display: inline-block;
padding: 2px 10px;
border-radius: 20px;
font-size: 0.78rem;
font-weight: 600;
}
.tag-done { background: #1a3a2a; color: #3fb950; }
.tag-partial { background: #3d2e00; color: #d29922; }
.tag-reverted { background: #3d1e20; color: #f85149; }
.tag-new { background: #1c2d4f; color: #58a6ff; }
/* CSS comparison */
.css-grid {
display: grid;
grid-template-columns: 1fr 1fr;
gap: 4px 20px;
margin-bottom: 30px;
}
.css-header {
font-weight: 600;
padding: 8px 0;
border-bottom: 1px solid #30363d;
color: #8b949e;
font-size: 0.85rem;
}
.css-file {
padding: 6px 0;
border-bottom: 1px solid #21262d;
font-size: 0.9rem;
}
.min-badge {
background: #1a3a2a;
color: #3fb950;
padding: 1px 6px;
border-radius: 4px;
font-size: 0.75rem;
margin-left: 4px;
}
/* Footer */
.report-footer {
text-align: center;
color: #484f58;
font-size: 0.85rem;
margin-top: 60px;
padding-top: 20px;
border-top: 1px solid #21262d;
}
@media (max-width: 600px) {
.bar-label { width: 100px; font-size: 0.75rem; }
.card-value { font-size: 1.8rem; }
h1 { font-size: 1.6rem; }
.css-grid { grid-template-columns: 1fr; }
}
</style>
</head>
<body>
<div class="container">
<h1>Отчёт по оптимизации сайта</h1>
<p class="subtitle">PowerHouse Gym — DEV vs PROD &middot; 16 марта 2026</p>
<!-- Summary -->
<div class="summary">
<div class="card">
<div class="card-value green">2.2x</div>
<div class="card-label">Среднее ускорение<br>по всем страницам</div>
</div>
<div class="card">
<div class="card-value blue">330 МБ</div>
<div class="card-label">Очищено из БД<br>(wp_postmeta: 355→24 МБ)</div>
</div>
<div class="card">
<div class="card-value purple">1.1 ГБ</div>
<div class="card-label">Сэкономлено на изображениях<br>(4.1→3.0 ГБ)</div>
</div>
<div class="card">
<div class="card-value orange">429 МБ</div>
<div class="card-label">Освобождено на диске<br>(плагины + логи + БД)</div>
</div>
</div>
<!-- Speed comparison -->
<div class="speed-section">
<h2>Скорость ответа сервера <span>среднее из 3 замеров, TTFB</span></h2>
<table>
<thead>
<tr>
<th>Страница</th>
<th style="text-align:right">DEV</th>
<th style="text-align:right">PROD</th>
<th style="text-align:right">Ускорение</th>
</tr>
</thead>
<tbody>
<tr>
<td class="page-name">/ <span style="color:#484f58">(главная)</span></td>
<td class="ms" style="text-align:right">764 мс</td>
<td class="ms" style="text-align:right">2 696 мс</td>
<td class="faster" style="text-align:right">3.5x</td>
</tr>
<tr>
<td class="page-name">/rodonitovaya-29/</td>
<td class="ms" style="text-align:right">671 мс</td>
<td class="ms" style="text-align:right">936 мс</td>
<td class="faster" style="text-align:right">1.4x</td>
</tr>
<tr>
<td class="page-name">/rodonitovaya-29/tarify/</td>
<td class="ms" style="text-align:right">291 мс</td>
<td class="ms" style="text-align:right">572 мс</td>
<td class="faster" style="text-align:right">2.0x</td>
</tr>
<tr>
<td class="page-name">/rodonitovaya-29/raspisanie-2/</td>
<td class="ms" style="text-align:right">223 мс</td>
<td class="ms" style="text-align:right">409 мс</td>
<td class="faster" style="text-align:right">1.8x</td>
</tr>
<tr>
<td class="page-name">/rodonitovaya-29/kontakty/</td>
<td class="ms" style="text-align:right">213 мс</td>
<td class="ms" style="text-align:right">357 мс</td>
<td class="faster" style="text-align:right">1.7x</td>
</tr>
<tr>
<td class="page-name">/rodonitovaya-29/gruppovye-programmy/</td>
<td class="ms" style="text-align:right">231 мс</td>
<td class="ms" style="text-align:right">431 мс</td>
<td class="faster" style="text-align:right">1.9x</td>
</tr>
<tr>
<td class="page-name">/palladium/</td>
<td class="ms" style="text-align:right">382 мс</td>
<td class="ms" style="text-align:right">928 мс</td>
<td class="faster" style="text-align:right">2.4x</td>
</tr>
<tr>
<td class="page-name">/tatishcheva-105/</td>
<td class="ms" style="text-align:right">374 мс</td>
<td class="ms" style="text-align:right">844 мс</td>
<td class="faster" style="text-align:right">2.3x</td>
</tr>
<tr>
<td class="page-name">/dubler-sibirskogo-trakta-2/</td>
<td class="ms" style="text-align:right">337 мс</td>
<td class="ms" style="text-align:right">737 мс</td>
<td class="faster" style="text-align:right">2.2x</td>
</tr>
<tr>
<td class="page-name">/serafimy-deryabinoj-24/</td>
<td class="ms" style="text-align:right">356 мс</td>
<td class="ms" style="text-align:right">667 мс</td>
<td class="faster" style="text-align:right">1.9x</td>
</tr>
<tr>
<td class="page-name">/titova-35a/</td>
<td class="ms" style="text-align:right">316 мс</td>
<td class="ms" style="text-align:right">875 мс</td>
<td class="faster" style="text-align:right">2.8x</td>
</tr>
</tbody>
</table>
<!-- Visual bars -->
<h2>Визуальное сравнение <span>время ответа, мс</span></h2>
<div style="margin-bottom:10px">
<span style="color:#3fb950;font-size:0.85rem">&#9632; DEV</span>&nbsp;&nbsp;
<span style="color:#f85149;font-size:0.85rem">&#9632; PROD</span>
</div>
<div class="bar-row">
<div class="bar-label">/ (главная)</div>
<div class="bar-container">
<div class="bar bar-dev" style="width:28%">764</div>
<div class="bar bar-prod" style="width:100%">2696</div>
</div>
</div>
<div class="bar-row">
<div class="bar-label">/rodonitovaya-29/</div>
<div class="bar-container">
<div class="bar bar-dev" style="width:25%">671</div>
<div class="bar bar-prod" style="width:35%">936</div>
</div>
</div>
<div class="bar-row">
<div class="bar-label">/tarify/</div>
<div class="bar-container">
<div class="bar bar-dev" style="width:11%">291</div>
<div class="bar bar-prod" style="width:21%">572</div>
</div>
</div>
<div class="bar-row">
<div class="bar-label">/palladium/</div>
<div class="bar-container">
<div class="bar bar-dev" style="width:14%">382</div>
<div class="bar bar-prod" style="width:34%">928</div>
</div>
</div>
<div class="bar-row">
<div class="bar-label">/tatishcheva-105/</div>
<div class="bar-container">
<div class="bar bar-dev" style="width:14%">374</div>
<div class="bar bar-prod" style="width:31%">844</div>
</div>
</div>
<div class="bar-row">
<div class="bar-label">/titova-35a/</div>
<div class="bar-container">
<div class="bar bar-dev" style="width:12%">316</div>
<div class="bar bar-prod" style="width:32%">875</div>
</div>
</div>
</div>
<!-- What was done -->
<div class="changes-section">
<h2>Выполненные оптимизации</h2>
<table>
<thead>
<tr>
<th>Задача</th>
<th>Эффект</th>
<th>Статус</th>
</tr>
</thead>
<tbody>
<tr>
<td>Redis Object Cache</td>
<td>Кеширование SQL-запросов, -80% обращений к БД</td>
<td><span class="tag tag-done">Готово</span></td>
</tr>
<tr>
<td>Очистка БД</td>
<td>wp_postmeta: 355 МБ → 24.5 МБ (2 759 ревизий, 373 из корзины)</td>
<td><span class="tag tag-done">Готово</span></td>
</tr>
<tr>
<td>Оптимизация изображений</td>
<td>uploads: 4.1 ГБ → 3.0 ГБ (lossy JPEG/PNG + WebP конвертация)</td>
<td><span class="tag tag-done">Готово</span></td>
</tr>
<tr>
<td>Минификация CSS</td>
<td>tarrifs (-27%), usluga (-28%), popup-draw (-27%), slick (-25%)</td>
<td><span class="tag tag-done">Готово</span></td>
</tr>
<tr>
<td>Минификация main.css</td>
<td>main.min.css сломан (потеряны @media). Нужен Node.js</td>
<td><span class="tag tag-reverted">Откачено</span></td>
</tr>
<tr>
<td>Удаление неактивных плагинов</td>
<td>Удалено 17 плагинов (91 МБ)</td>
<td><span class="tag tag-done">Готово</span></td>
</tr>
<tr>
<td>Удаление wp-file-manager</td>
<td>20 МБ + закрыта уязвимость CVE-2020-25213</td>
<td><span class="tag tag-done">Готово</span></td>
</tr>
<tr>
<td>Очистка логов CF7-Bitrix24</td>
<td>Удалено 318 МБ лог-файлов</td>
<td><span class="tag tag-done">Готово</span></td>
</tr>
<tr>
<td>Preload шрифтов</td>
<td>font-display: swap уже был. Добавлен preload для Montserrat</td>
<td><span class="tag tag-done">Готово</span></td>
</tr>
<tr>
<td>Swap 2 ГБ</td>
<td>Страховка от OOM-killer при пиковых нагрузках</td>
<td><span class="tag tag-new">Новое</span></td>
</tr>
<tr>
<td>Defer/async для JS</td>
<td>Ломало интерактивность (slick, fancybox, main.js)</td>
<td><span class="tag tag-reverted">Откачено</span></td>
</tr>
<tr>
<td>Исправление wpcf7_add_form_tag</td>
<td>Fatal error при отсутствии CF7 — обёрнуто в function_exists</td>
<td><span class="tag tag-done">Готово</span></td>
</tr>
</tbody>
</table>
</div>
<!-- CSS comparison -->
<div class="changes-section">
<h2>CSS файлы: DEV vs PROD</h2>
<div class="css-grid">
<div class="css-header">DEV (оптимизировано)</div>
<div class="css-header">PROD (оригинал)</div>
<div class="css-file">main.css</div>
<div class="css-file">main.css</div>
<div class="css-file">slick<span class="min-badge">.min</span> — 1.3 КБ</div>
<div class="css-file">slick.css — 1.8 КБ</div>
<div class="css-file">usluga<span class="min-badge">.min</span> — 29 КБ</div>
<div class="css-file">usluga.css — 40 КБ</div>
<div class="css-file">popup-draw<span class="min-badge">.min</span> — 2.2 КБ</div>
<div class="css-file">popup-draw.css — 3.0 КБ</div>
<div class="css-file">tarrifs<span class="min-badge">.min</span> — 7.9 КБ</div>
<div class="css-file">tarrifs.css — 10.9 КБ</div>
<div class="css-file">let-it-snow<span class="min-badge">.min</span> — 1.9 КБ</div>
<div class="css-file">let-it-snow.css — 1.9 КБ</div>
</div>
</div>
<!-- Infra comparison -->
<div class="changes-section">
<h2>Инфраструктура</h2>
<table>
<thead>
<tr>
<th>Параметр</th>
<th>DEV</th>
<th>PROD</th>
</tr>
</thead>
<tbody>
<tr>
<td>PHP</td>
<td class="faster">8.4.16</td>
<td>7.4.33</td>
</tr>
<tr>
<td>Object Cache</td>
<td class="faster">Redis 7.0</td>
<td>Нет</td>
</tr>
<tr>
<td>wp_postmeta</td>
<td class="faster">24.5 МБ</td>
<td>~355 МБ</td>
</tr>
<tr>
<td>Плагины</td>
<td class="faster">22</td>
<td>~43</td>
</tr>
<tr>
<td>Uploads</td>
<td class="faster">3.0 ГБ</td>
<td>~4.1 ГБ</td>
</tr>
<tr>
<td>Swap</td>
<td class="faster">2 ГБ</td>
<td>0</td>
</tr>
</tbody>
</table>
</div>
<div class="report-footer">
Отчёт сгенерирован 16 марта 2026 &middot; Замеры выполнены с сервера (curl, среднее из 3 попыток)
</div>
</div>
</body>
</html>

122
sync-elementor-posts.php Normal file
View File

@@ -0,0 +1,122 @@
<?php
/**
* Массовая синхронизация Elementor-постов с prod.
* Скачивает rendered HTML, post-CSS, картинки.
* Запуск: php wp-cli.phar eval-file sync-elementor-posts.php --url=dev.powerhousegym.ru --allow-root
*/
$dry_run = in_array('--dry-run', $argv ?? []);
$prod_domain = 'powerhousegym.ru';
$dev_domain = 'dev.powerhousegym.ru';
$elementor_css_dir = get_template_directory() . '/dist/css/elementor';
// Все посты с Elementor
$posts = get_posts([
'post_type' => 'any',
'meta_key' => '_elementor_edit_mode',
'meta_value' => 'builder',
'posts_per_page' => -1,
'post_status' => 'publish',
]);
echo "Found " . count($posts) . " Elementor posts\n\n";
$ok = 0;
$skip = 0;
$fail = 0;
foreach ($posts as $post) {
$dev_url = get_permalink($post->ID);
$prod_url = str_replace($dev_domain, $prod_domain, $dev_url);
echo "#{$post->ID} {$post->post_title}\n";
echo " prod: $prod_url\n";
if ($dry_run) {
echo " DRY RUN — skipping\n\n";
continue;
}
// 1. Скачиваем HTML с prod
$prod_html = @file_get_contents($prod_url);
if (!$prod_html || strlen($prod_html) < 500) {
echo " FAIL: couldn't fetch prod HTML\n\n";
$fail++;
continue;
}
// 2. Извлекаем контент между blog-default-content-wrapper и blog-author-wrapper
$start = strpos($prod_html, 'blog-default-content-wrapper');
$end = strpos($prod_html, 'blog-author-wrapper');
if ($start === false || $end === false) {
echo " FAIL: couldn't find content markers\n\n";
$fail++;
continue;
}
$chunk = substr($prod_html, $start - 5, $end - $start + 5);
$inner_start = strpos($chunk, '>') + 1;
$content = trim(substr($chunk, $inner_start));
// Обрезаем по последнему </section>
$last_section = strrpos($content, '</section>');
if ($last_section !== false) {
$content = substr($content, 0, $last_section + 10) . "\n</div>";
}
// Заменяем домен
$content = str_replace($prod_domain, $dev_domain, $content);
$widget_count = substr_count($content, 'elementor-widget');
echo " content: " . strlen($content) . " bytes, $widget_count widgets\n";
if ($widget_count == 0) {
echo " SKIP: no elementor widgets in content\n\n";
$skip++;
continue;
}
// 3. Скачиваем post-CSS
$post_css_url = "https://$prod_domain/wp-content/uploads/elementor/css/post-{$post->ID}.css";
$post_css = @file_get_contents($post_css_url);
if ($post_css && strlen($post_css) > 10) {
$css_path = "$elementor_css_dir/post-{$post->ID}.css";
file_put_contents($css_path, $post_css);
echo " css: " . strlen($post_css) . " bytes\n";
}
// 4. Скачиваем картинки
preg_match_all('/src="https:\/\/' . preg_quote($dev_domain) . '\/wp-content\/uploads\/([^"]+)"/', $content, $img_matches);
$downloaded = 0;
foreach ($img_matches[1] as $img_path) {
$local_path = ABSPATH . "wp-content/uploads/$img_path";
if (!file_exists($local_path)) {
$prod_img_url = "https://$prod_domain/wp-content/uploads/$img_path";
$dir = dirname($local_path);
if (!is_dir($dir)) mkdir($dir, 0755, true);
$img_data = @file_get_contents($prod_img_url);
if ($img_data && strlen($img_data) > 100) {
file_put_contents($local_path, $img_data);
$downloaded++;
}
}
}
if ($downloaded) echo " images: $downloaded downloaded\n";
// 5. Бэкап и запись
global $wpdb;
$old_content = $wpdb->get_var($wpdb->prepare("SELECT post_content FROM $wpdb->posts WHERE ID = %d", $post->ID));
update_post_meta($post->ID, '_pre_elementor_convert_content', $old_content);
$wpdb->update($wpdb->posts, ['post_content' => $content], ['ID' => $post->ID]);
wp_cache_delete($post->ID, 'posts');
// 6. Удаляем elementor_edit_mode
delete_post_meta($post->ID, '_elementor_edit_mode');
echo " OK\n\n";
$ok++;
}
echo "\nDone: $ok synced, $skip skipped, $fail failed\n";

53
test-progress.html Normal file
View File

@@ -0,0 +1,53 @@
<!DOCTYPE html>
<html lang="ru">
<head>
<meta charset="utf-8">
<title>Тестирование форм — прогресс</title>
<style>
body{font-family:system-ui,sans-serif;background:#f5f5f5;padding:20px;color:#333}
h1{font-size:20px;color:#950f28;margin-bottom:16px}
.bar-wrap{background:#e0e0e0;border-radius:8px;height:30px;margin-bottom:12px;overflow:hidden}
.bar{background:#950f28;height:100%;border-radius:8px;transition:width .3s;display:flex;align-items:center;justify-content:center;color:#fff;font-weight:700;font-size:14px}
.stats{display:flex;gap:20px;margin-bottom:12px;font-size:15px}
.stat{padding:8px 16px;border-radius:6px;font-weight:600}
.s-total{background:#e0e0e0} .s-pass{background:#d4edda;color:#155724} .s-fail{background:#f8d7da;color:#721c24}
.current{font-size:14px;color:#666;margin-bottom:8px}
.log{background:#fff;border-radius:6px;padding:12px;max-height:400px;overflow-y:auto;font-size:13px;font-family:monospace;line-height:1.6}
.log .pass{color:#155724} .log .fail{color:#721c24}
</style>
</head>
<body>
<h1>Тестирование форм CF7 → Битрикс24</h1>
<div class="bar-wrap"><div class="bar" id="bar" style="width:0%">0%</div></div>
<div class="stats">
<span class="stat s-total" id="s-total">Всего: 0</span>
<span class="stat s-pass" id="s-pass">✓ Пройдено: 0</span>
<span class="stat s-fail" id="s-fail">✗ Ошибки: 0</span>
</div>
<div class="current" id="current">Ожидание...</div>
<div class="log" id="log"></div>
<script>
var logEl = document.getElementById('log');
var prev = '';
function poll(){
fetch('/test-progress.json?t='+Date.now()).then(r=>r.json()).then(function(d){
var pct = d.total ? Math.round(d.tested/d.total*100) : 0;
document.getElementById('bar').style.width = pct+'%';
document.getElementById('bar').textContent = pct+'%';
document.getElementById('s-total').textContent = 'Всего: '+d.total;
document.getElementById('s-pass').textContent = '✓ Пройдено: '+d.passed;
document.getElementById('s-fail').textContent = '✗ Ошибки: '+d.failed;
document.getElementById('current').textContent = d.current||'';
if(d.current && d.current !== prev){
var cls = d.current.charAt(0)==='✓' ? 'pass' : (d.current.charAt(0)==='✗' ? 'fail' : '');
logEl.innerHTML += '<div class="'+cls+'">'+d.current+'</div>';
logEl.scrollTop = logEl.scrollHeight;
prev = d.current;
}
if(!d.done) setTimeout(poll, 1000);
}).catch(function(){setTimeout(poll, 2000);});
}
poll();
</script>
</body>
</html>

1
test-progress.json Normal file
View File

@@ -0,0 +1 @@
{"total":81,"tested":81,"passed":79,"failed":2,"current":"Done!","done":true}

1136
test-results.json Normal file

File diff suppressed because it is too large Load Diff

204
tz-tilda-connector.md Normal file
View File

@@ -0,0 +1,204 @@
# ТЗ: Настройка вебхука tilda.connector для приёма заявок с dev.powerhousegym.ru
## Контекст
WordPress Multisite (dev.powerhousegym.ru) отправляет заявки через CF7 формы. Сейчас данные уходят через плагин cf7-bitrix24-lead-generation напрямую по REST API. Переходим на tilda.connector — все формы будут отправлять сырые данные на один webhook URL, маппинг и создание сделок/контактов — на стороне Битрикс.
**Битрикс:** bitrix.powerhousegym.ru
**Модуль:** tilda.connector уже установлен
**Воронка:** 0 (нулевая, далее раскидывается через БП)
---
## Задача 1: Создать webhook
Один вебхук на все формы:
| Параметр | Значение |
|----------|----------|
| Название | dev.powerhousegym.ru — все формы |
| Активен | Y |
| Ответственный | ID=8 (Вадим Шакиров) |
| Воронка | 0 (нулевая / общая) |
| Стадия | первая стадия воронки 0 |
| Источник | WEB (или создать WEBSITE если нет) |
| Искать дубликаты | Y |
| Асинхронная обработка | Y |
| Макс. попыток | 3 |
### Шаблон названия сделки
```
{formname} - {name}
```
### Шаблон комментария к сделке
```
formname : Форма
club : Клуб
message : Сообщение
typeOfContact : Способ связи
isNew : Новый клиент
fitnesZone : Зона
trainer : Тренер
trainingTime : Время тренировки
people : Кол-во человек
srok : Срок
datesanytia : Время занятий
paymetod : Способ оплаты
resume : Резюме
form-source : Источник формы
category : Категория
quantity : Количество
need-help : Нужна помощь
service : Услуга
urlPage : URL страницы
```
---
## Задача 2: Маппинг полей
WordPress будет передавать поля формы с унифицированными именами. Ниже — таблица маппинга.
### Автоматически распознаваемые поля (маппинг НЕ нужен)
Эти поля tilda.connector обрабатывает сам:
| Поле из формы | Куда попадает |
|---------------|---------------|
| `name` | ФИО контакта (NAME / LAST_NAME) |
| `phone` | Телефон контакта (нормализуется в +7) |
| `email` | Email контакта |
| `formname` | Используется в шаблоне названия сделки |
| `utm_source` | UTM контакта и сделки |
| `utm_medium` | UTM |
| `utm_campaign` | UTM |
| `utm_content` | UTM |
| `utm_term` | UTM |
### Маппинг пользовательских полей (настроить в admin-панели)
| Поле из формы (Tilda) | Поле в Битрикс24 (UF) | Описание |
|------------------------|------------------------|----------|
| `club` | `UF_CRM_1643656459` | Клуб |
| `message` | `UF_CRM_1765262491230` | Сообщение клиента |
| `typeOfContact` | `UF_CRM_1765259433237` | Способ связи (WhatsApp/Звонок/Telegram) |
| `isNew` | `UF_CRM_1765259825946` | Новый клиент или нет |
| `fitnesZone` | `UF_CRM_1765262442565` | Зона фитнеса (Бассейн/Зал/и т.д.) |
| `trainer` | `UF_CRM_1765262458601` | Имя тренера |
| `trainingTime` | `UF_CRM_1765262474949` | Время тренировки (День/Вечер) |
| `form-source` | `UF_CRM_1769507592315` | Идентификатор формы (feedback-form и т.п.) |
| `ga_field` | `UF_CRM_1659338480` | Google Analytics client ID |
| `ym_uid_field` | `UF_CRM_1659338495` | Яндекс.Метрика client ID |
| `resume` | `UF_CRM_1744091941` | Резюме (текст, для вакансий) |
| `service` | `UF_CRM_1601710396014` | Услуга |
| `people` | `UF_CRM_1647864861` | Кол-во человек |
| `srok` | `UF_CRM_1647864752` | Срок |
| `datesanytia` | `UF_CRM_1647864513` | Время занятий |
| `paymetod` | `UF_CRM_1647864933` | Способ оплаты |
| `category` | — (в комментарий) | Категория тренера |
| `quantity` | — (в комментарий) | Количество |
| `need-help` | — (в комментарий) | Нужна помощь с подбором |
| `urlPage` | COMMENTS или SOURCE_DESCRIPTION | URL страницы откуда отправлена форма |
---
## Задача 3: Флаги отключения операций
Рекомендуемые флаги для быстрой обработки без блокировок:
| Флаг | Значение | Причина |
|------|----------|---------|
| CheckRequiredUserFields | Y | Не все формы заполняют все UF-поля |
| DuplicatesIndexInvalidation | Y | Ускорение, пересчёт не нужен на каждую заявку |
Остальные — N (оставить включёнными).
---
## Какие формы будут отправлять данные
50 уникальных типов форм с 7 сайтов (blogs 1, 2, 4, 5, 6, 7, 8). Всего ~80 активных форм.
### Основные типы форм и их поля:
**1. Отправить заявку** (9 шт, все блоги)
- Поля: `name`, `phone`, `club`, `formname`, UTM, `ga_field`, `ym_uid_field`
**2. Квиз / Квиз_new** (14 шт, все блоги)
- Поля: `name`, `phone`, `club`, `people`, `srok`, `datesanytia`, `paymetod`, UTM
**3. Гостевой визит / Хотите гостевой визит** (14 шт)
- Поля: `name`, `phone`, `club`, UTM
**4. Начать заниматься просто** (7 шт)
- Поля: `name`, `phone`, `club`, UTM
**5. Оформить карту** (7 шт)
- Поля: `name`, `phone`, `club`, UTM
**6. Персональные тренировки** (7 шт)
- Поля: `name`, `phone`, `club`, UTM
**7. Ваше мнение важно для нас!** (7 шт)
- Поля: `name`, `phone`, `club`, `message`, `form-source`
**8. Форма для страницы Пожаловаться** (7 шт)
- Поля: `name`, `phone`, `club`, `message`, `form-source`
**9. Вводная тренировка / Путеводитель** (7 шт)
- Поля: `name`, `phone`, `club`, `typeOfContact`, `isNew`, `fitnesZone`, `trainer`, `trainingTime`
**10. Отклик на вакансию** (6 шт, blog 1 и 8)
- Поля: `name`, `phone`, `club`, `message`, `resume`, `typeOfContact`
**11. Розыгрыш** (7 шт)
- Поля: `name`, `phone`, `club`
**12. Расскажем подробнее об Акции** (7 шт)
- Поля: `name`, `phone`, `club`, UTM
---
## Формат данных от WordPress
WordPress будет отправлять POST-запрос на webhook URL с Content-Type: application/json.
Пример payload:
```json
{
"formname": "Гостевой визит",
"name": "Иван Петров",
"phone": "+7 (922) 136-44-63",
"email": "",
"club": "Родонитовая, 29",
"message": "",
"typeOfContact": "WhatsApp",
"isNew": "Еще не клиент клуба",
"fitnesZone": "Бассейн",
"trainer": "",
"trainingTime": "День",
"utm_source": "yandex",
"utm_medium": "cpc",
"utm_campaign": "",
"utm_content": "",
"utm_term": "",
"ga_field": "GA1.2.123456789.1234567890",
"ym_uid_field": "1704800132292284328",
"form-source": "",
"urlPage": "https://dev.powerhousegym.ru/rodonitovaya-29/",
"blog_id": 4,
"blog_name": "Родонитовая, 29"
}
```
Пустые поля (`""`) можно игнорировать — не заполнять UF в сделке.
---
## После настройки
1. Передай мне webhook URL вида `https://bitrix.powerhousegym.ru/webhook/{key}/`
2. Я настрою WordPress на отправку данных на этот URL
3. Протестируем все 80 форм автоматически
4. После успешного теста отключим плагин cf7-bitrix24-lead-generation

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

Binary file not shown.

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

Binary file not shown.

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

Binary file not shown.

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,2 @@
<?php
return ['x-generator'=>'GlotPress/4.0.1','translation-revision-date'=>'2023-05-17 17:48:27+0000','plural-forms'=>'nplurals=3; plural=(n % 10 == 1 && n % 100 != 11) ? 0 : ((n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 12 || n % 100 > 14)) ? 1 : 2);','project-id-version'=>'Plugins - Admin Menu Editor - Stable (latest release)','language'=>'ru','messages'=>['You don\'t have permission to use Admin Menu Editor Pro.'=>'У вас нет разрешения на использование Admin Menu Editor Pro.','Access denied. Invalid nonce.'=>'В доступе отказано. Недействительный одноразовый номер.','Settings'=>'Настройки','Settings saved.'=>'Настройки сохранены.','http://w-shadow.com/blog/'=>'http://w-shadow.com/blog/','Janis Elsts'=>'Janis Elsts','Lets you directly edit the WordPress admin menu. You can re-order, hide or rename existing menus, add custom menus and more.'=>'Позволяет непосредственно редактировать меню администратора WordPress. Вы можете переуказать, скрыть или переименовать существующие меню, добавить пользовательские меню и многое другое.','http://w-shadow.com/blog/2008/12/20/admin-menu-editor-for-wordpress/'=>'http://w-shadow.com/blog/2008/12/20/admin-menu-editor-for-wordpress/','Admin Menu Editor'=>'Admin Menu Editor']];

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

Binary file not shown.

File diff suppressed because it is too large Load Diff

Binary file not shown.

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,2 @@
<?php
return ['x-generator'=>'GlotPress/4.0.3','translation-revision-date'=>'2025-05-04 17:07:26+0000','plural-forms'=>'nplurals=3; plural=(n % 10 == 1 && n % 100 != 11) ? 0 : ((n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 12 || n % 100 > 14)) ? 1 : 2);','project-id-version'=>'Plugins - Captcha by Yandex for Contact Form 7 - Stable (latest release)','language'=>'ru','messages'=>['Allow use Yandex captcha for your forms with Contact Form 7'=>'Позволяет использовать Яндекс капчу для ваших форм в плагине Contact Form 7','Captcha by Yandex for Contact Form 7'=>'Капча от Яндекс для Contact Form 7','Client key'=>'Ключ клиента','Configure'=>'Настроить','Error'=>'Ошибка','error: Your environment does not meet all of the system requirements listed below.'=>'ошибка: Ваше окружение не удовлетворяет всем системным требованиям указанным ниже.','If you need to upgrade your version of PHP you can ask your hosting company for assistance, and if you need help upgrading WordPress you can refer to the'=>'Если вам нужно обновить вашу версию PHP, вы можете запросить это у вашего хостинг-провайдер, и если вам нужно обновить WordPress посмотрите в','Insert Tag'=>'Добавить','Invalid keys'=>'Некорректные ключи','Please check captcha'=>'Необходимо решить капчу','Please configure the plugin first. Go to <a href="%s">configuration</a>'=>'Для использования капчи необходимо сперва Настроить плагин. Перейти к <a href="%s">настройке</a>','Please install and activate Contact Form 7 plugin first'=>'Сперва необходимо установить и активировать плагин Contact Form 7','API keysRemove Keys'=>'Удалить ключи','Save Changes'=>'Сохранить настройки','Server Key'=>'Ключ сервера','Settings saved.'=>'Настройки сохранены','Setup Integration'=>'Настроить интеграцию','Yandex Captcha'=>'Яндекс капча','Yandex Captcha for Contact Form 7'=>'Яндекс капча for Contact Form 7','Yandex Captcha is active on this site.'=>'Яндекс капча активирована на этом сайте.','Yandex Captcha protects you against spam and other types of automated abuse. With Contact Form 7&#8217;s Yandex Captcha integration module, you can block abusive form submissions by spam bots.'=>'Яндекс капча защищает вас от спама и других способов автоматического злоупотребления. В интеграции с Contact Form 7, модуль Яндекс капча позволяет блокировать спам и злоупотребления.','Your server is running PHP version %1$s but this plugin requires at least PHP %2$s. Please run an upgrade.'=>'Ваш сервер работает на PHP версии %1$s, но плагину требуется минимум PHP версии %2$s. Пожалуйста обновите PHP до минимально необходимой версии.','Your Wordpress running version is %1$s but this plugin requires at least version %2$s. Please run an upgrade.'=>'Версия вашего WordPress %1$s, но плагину требуется минимально версия %2$s. Пожалуйста обновите WordPress до минимально необходимой версии.']];

View File

@@ -0,0 +1,111 @@
# Translation of Plugins - Captcha by Yandex for Contact Form 7 - Stable (latest release) in Russian
# This file is distributed under the same license as the Plugins - Captcha by Yandex for Contact Form 7 - Stable (latest release) package.
msgid ""
msgstr ""
"PO-Revision-Date: 2025-05-04 17:07:26+0000\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=3; plural=(n % 10 == 1 && n % 100 != 11) ? 0 : ((n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 12 || n % 100 > 14)) ? 1 : 2);\n"
"X-Generator: GlotPress/4.0.3\n"
"Language: ru\n"
"Project-Id-Version: Plugins - Captcha by Yandex for Contact Form 7 - Stable (latest release)\n"
#. Description of the plugin
#: bootstrap.php
msgid "Allow use Yandex captcha for your forms with Contact Form 7"
msgstr "Позволяет использовать Яндекс капчу для ваших форм в плагине Contact Form 7"
#. Plugin Name of the plugin
#: bootstrap.php
msgid "Captcha by Yandex for Contact Form 7"
msgstr "Капча от Яндекс для Contact Form 7"
#: controller/class-cfyc-service.php:238
msgid "Client key"
msgstr "Ключ клиента"
#: controller/class-cfyc-common.php:138 controller/class-cfyc-common.php:139
msgid "Configure"
msgstr "Настроить"
#: controller/class-cfyc-service.php:194
msgid "Error"
msgstr "Ошибка"
#: views/requirements-error.php:7
msgid "error: Your environment does not meet all of the system requirements listed below."
msgstr "ошибка: Ваше окружение не удовлетворяет всем системным требованиям указанным ниже."
#: views/requirements-error.php:17
msgid "If you need to upgrade your version of PHP you can ask your hosting company for assistance, and if you need help upgrading WordPress you can refer to the"
msgstr "Если вам нужно обновить вашу версию PHP, вы можете запросить это у вашего хостинг-провайдер, и если вам нужно обновить WordPress посмотрите в"
#: controller/class-cfyc-form-tag.php:169
msgid "Insert Tag"
msgstr "Добавить"
#: controller/class-cfyc-service.php:195
msgid "Invalid keys"
msgstr "Некорректные ключи"
#: controller/class-cfyc-frontend.php:190
msgid "Please check captcha"
msgstr "Необходимо решить капчу"
#. translators: %s: url
#: controller/class-cfyc-form-tag.php:31
msgid "Please configure the plugin first. Go to <a href=\"%s\">configuration</a>"
msgstr "Для использования капчи необходимо сперва Настроить плагин. Перейти к <a href=\"%s\">настройке</a>"
#: bootstrap.php:76
msgid "Please install and activate Contact Form 7 plugin first"
msgstr "Сперва необходимо установить и активировать плагин Contact Form 7"
#: controller/class-cfyc-service.php:279
msgctxt "API keys"
msgid "Remove Keys"
msgstr "Удалить ключи"
#: controller/class-cfyc-service.php:284
msgid "Save Changes"
msgstr "Сохранить настройки"
#: controller/class-cfyc-service.php:255
msgid "Server Key"
msgstr "Ключ сервера"
#: controller/class-cfyc-service.php:200
msgid "Settings saved."
msgstr "Настройки сохранены"
#: controller/class-cfyc-service.php:223
msgid "Setup Integration"
msgstr "Настроить интеграцию"
#: controller/class-cfyc-form-tag.php:49 controller/class-cfyc-form-tag.php:82
#: controller/class-cfyc-service.php:50
msgid "Yandex Captcha"
msgstr "Яндекс капча"
#: views/requirements-error.php:7
msgid "Yandex Captcha for Contact Form 7"
msgstr "Яндекс капча for Contact Form 7"
#: controller/class-cfyc-service.php:213
msgid "Yandex Captcha is active on this site."
msgstr "Яндекс капча активирована на этом сайте."
#: controller/class-cfyc-service.php:207
msgid "Yandex Captcha protects you against spam and other types of automated abuse. With Contact Form 7&#8217;s Yandex Captcha integration module, you can block abusive form submissions by spam bots."
msgstr "Яндекс капча защищает вас от спама и других способов автоматического злоупотребления. В интеграции с Contact Form 7, модуль Яндекс капча позволяет блокировать спам и злоупотребления."
#. translators: %s: php version
#: bootstrap.php:40
msgid "Your server is running PHP version %1$s but this plugin requires at least PHP %2$s. Please run an upgrade."
msgstr "Ваш сервер работает на PHP версии %1$s, но плагину требуется минимум PHP версии %2$s. Пожалуйста обновите PHP до минимально необходимой версии."
#. translators: %s: WP version
#: bootstrap.php:48
msgid "Your Wordpress running version is %1$s but this plugin requires at least version %2$s. Please run an upgrade."
msgstr "Версия вашего WordPress %1$s, но плагину требуется минимально версия %2$s. Пожалуйста обновите WordPress до минимально необходимой версии."

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,894 @@
# Translation of Plugins - GSheetConnector for CF7 Connect Contact Form 7 to Google Sheets and Send Form Submissions in Real Time - Development (trunk) in Russian
# This file is distributed under the same license as the Plugins - GSheetConnector for CF7 Connect Contact Form 7 to Google Sheets and Send Form Submissions in Real Time - Development (trunk) package.
msgid ""
msgstr ""
"PO-Revision-Date: 2026-01-05 13:35:38+0000\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=3; plural=(n % 10 == 1 && n % 100 != 11) ? 0 : ((n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 12 || n % 100 > 14)) ? 1 : 2);\n"
"X-Generator: GlotPress/4.0.3\n"
"Language: ru\n"
"Project-Id-Version: Plugins - GSheetConnector for CF7 Connect Contact Form 7 to Google Sheets and Send Form Submissions in Real Time - Development (trunk)\n"
#: includes/class-gs-service.php:276
msgid ".htaccess Rules"
msgstr "Правила .htaccess"
#: google-sheet-connector.php:1005
msgid "Contact Form 7 - GSheetConnector"
msgstr "Contact Form 7 - GSheetConnector"
#: includes/class-gs-service.php:533
msgid "Debug log cleared successfully."
msgstr "Журнал отладки успешно очищен."
#. translators: %1$s: plugin name, %2$s: link to reviews
#: includes/pages/admin-footer.php:18
msgid "Enjoy using %1$s? Check out our reviews or leave your own on %2$s."
msgstr "Нравится использовать %1$s? Посмотрите наши отзывы или оставьте свой на %2$s."
#: includes/class-gs-service.php:507
msgid "Logs are cleared."
msgstr "Логи очищены."
#: includes/class-gs-service.php:511
msgid "No log file exists to clear logs."
msgstr "Нет файла журнала для очистки логов."
#: google-sheet-connector.php:432
msgid "Sign in with Google"
msgstr "Войти с помощью Google"
#: includes/class-gs-service.php:362
msgid "The main WordPress directory"
msgstr "Основной каталог WordPress"
#: includes/class-gs-service.php:383
msgid "The plugins directory"
msgstr "Каталог плагинов"
#: includes/class-gs-service.php:390
msgid "The themes directory"
msgstr "Каталог тем"
#: includes/class-gs-service.php:376
msgid "The uploads directory"
msgstr "Каталог загрузок"
#: includes/class-gs-service.php:369
msgid "The wp-content directory"
msgstr "Каталог wp-content"
#: includes/pages/admin-footer.php:23
msgid "WordPress.org"
msgstr "WordPress.org"
#: google-sheet-connector.php:304
msgid "You are not allowed to access this page."
msgstr "У вас нет доступа к этой странице."
#: includes/class-gs-service.php:783 includes/pages/gs-custom-ordering.php:5
#: includes/pages/gs-field-list.php:5
#: includes/pages/gs-miscellaneous-features.php:4
#: includes/pages/gs-special-mailtags.php:5
msgid "Pro"
msgstr "Pro"
#: includes/class-gs-service.php:1072
msgid "Conditional Logic"
msgstr "Условная логика"
#: google-sheet-connector.php:367 includes/pages/pro-popup.php:20
#: includes/pages/pro-popup.php:54
msgid "Upgrade To PRO"
msgstr "Обновить до PRO"
#: google-sheet-connector.php:380
msgid "click here"
msgstr "нажмите здесь"
#: includes/pages/google-sheet-settings.php:72
msgid "Integration"
msgstr "Интеграция"
#: google-sheet-connector.php:416
msgid "Deactivate"
msgstr "Деактивировать"
#: google-sheet-connector.php:500
msgid "View"
msgstr "Просмотреть"
#: includes/pages/gs-beta-version.php:31 includes/pages/gs-role-settings.php:90
msgid "Save"
msgstr "Сохранить"
#: google-sheet-connector.php:504 includes/pages/gs-integrate-info.php:32
msgid "Clear"
msgstr "Очистить"
#: includes/pages/gs-integrate-demo.php:57
msgid "Buy Now"
msgstr "Купить сейчас"
#: google-sheet-connector.php:513
msgid "Learn more."
msgstr "Узнать больше."
#: google-sheet-connector.php:729
msgid "Compatibility"
msgstr "Совместимость"
#: includes/pages/gs-integrate-info.php:42
msgid "Copied"
msgstr "Скопировано"
#: includes/pages/gs-integrate-support.php:11
#: includes/pages/gs-integrate-support.php:13
msgid "Documentation"
msgstr "Документация"
#: includes/pages/gs-miscellaneous-features.php:33
msgid "Colors"
msgstr "Цвета"
#: includes/pages/gs-role-settings.php:20
#: includes/pages/gs-role-settings.php:58
msgid "Editor"
msgstr "Редактор"
#: includes/pages/gs-role-settings.php:25
#: includes/pages/gs-role-settings.php:63
msgid "Author"
msgstr "Автор"
#: includes/pages/gs-role-settings.php:30
#: includes/pages/gs-role-settings.php:68
msgid "Contributor"
msgstr "Участник"
#: includes/pages/gs-role-settings.php:35
#: includes/pages/gs-role-settings.php:73
msgid "Subscriber"
msgstr "Подписчик"
#: includes/pages/gs-role-settings.php:40
#: includes/pages/gs-role-settings.php:78
msgid "Customer"
msgstr "Клиент"
#. Plugin URI of the plugin
#: google-sheet-connector.php
msgid "https://wordpress.org/plugins/cf7-google-sheets-connector/"
msgstr "https://wordpress.org/plugins/cf7-google-sheets-connector/"
#. Author of the plugin
#: google-sheet-connector.php
msgid "GSheetConnector"
msgstr "GSheetConnector"
#. Author URI of the plugin
#: google-sheet-connector.php
msgid "https://www.gsheetconnector.com/"
msgstr "https://www.gsheetconnector.com/"
#: google-sheet-connector.php:171
msgid "Get Support"
msgstr "Получить поддержку"
#: google-sheet-connector.php:171 includes/pages/admin-footer.php:34
msgid "Support"
msgstr "Поддержка"
#: google-sheet-connector.php:288 google-sheet-connector.php:289
#: google-sheet-connector.php:397 includes/class-gs-service.php:545
msgid "Google Sheets"
msgstr "Google Таблицы"
#: includes/class-gs-service.php:797
msgid "( Fetch your sheets automatically using PRO )"
msgstr "( Автоматически получайте ваши листы с помощью PRO )"
#: google-sheet-connector.php:399
msgid "* Ensure that you enable the checkbox for each of these services."
msgstr "* Убедитесь, что вы включили флажок для каждой из этих служб."
#: includes/pages/gs-integrate-faq.php:35
msgid "1) Enable debug by adding&nbsp;following in your wp-config.php file before /* Thats all, stop editing! Happy blogging."
msgstr "1) Включите отладку, добавив&nbsp;следующее в ваш файл wp-config.php перед /* Это все, прекратите редактирование! Удачного блоггинга."
#: includes/pages/gs-integrate-demo.php:46
msgid "10-day, Money-back Guarantee"
msgstr "10-дневная гарантия возврата денег"
#: includes/pages/gs-integrate-faq.php:38
msgid "2) Check the log that is created by CF7 google sheet. For that click “View” from goggle sheet integration page. Let us know if there is any error we will assist you."
msgstr "2) Проверьте журнал, который создается CF7 Google Sheets. Для этого нажмите «Просмотреть» на странице интеграции Google Sheets. Дайте нам знать, если есть какая-либо ошибка, мы поможем вам."
#: includes/pages/gs-integrate-faq.php:39
msgid "3) Check what other CF7 extension you are using. Deactivate one by one and check if there is any conflict."
msgstr "3) Проверьте, какие другие расширения CF7 вы используете. Деактивируйте их одно за другим и проверьте, есть ли конфликты."
#: includes/class-gs-service.php:747
msgid ""
"<strong>Authentication Required:</strong> \n"
" You must <a href=\"admin.php?page=wpcf7-google-sheet-config&tab=integration\" target=\"_blank\">Authenticate using your Google Account</a> along with Google Drive and Google Sheets Permissions in order to enable the settings for configuration."
msgstr ""
"<strong>Требуется аутентификация:</strong> \n"
" Вы должны <a href=\"admin.php?page=wpcf7-google-sheet-config&tab=integration\" target=\"_blank\">Аутентифицироваться с помощью вашей учетной записи Google</a> вместе с разрешениями Google Drive и Google Sheets, чтобы включить настройки для конфигурации."
#: includes/pages/multisheet-sheets-connection.php:7
msgid "Add Feed"
msgstr "Добавить источник"
#: includes/pages/gs-integrate-demo.php:43
msgid "Add Special Mail Tags"
msgstr "Добавить специальные почтовые теги"
#: includes/pages/gs-role-settings.php:15
#: includes/pages/gs-role-settings.php:53
msgid "Administrator"
msgstr "Администратор"
#: google-sheet-connector.php:777
msgid "Affiliate Program"
msgstr "Партнёрская программа"
#: google-sheet-connector.php:460
msgid "Also,"
msgstr "Также,"
#: google-sheet-connector.php:463
msgid "and if it displays \"GSheetConnector for WP Contact Forms\" under Third-party apps with account access then remove it."
msgstr "и если под \"Приложениями третьих сторон с доступом к учетной записи\" отображается \"GSheetConnector для WP Contact Forms\", то удалите его."
#: includes/pages/gs-integrate-faq.php:37
msgid "And then try to activate the plugin again. This will create a debug.log under wp-content folder.&nbsp;Check for cf7 google sheet connector error if so send us the file at support@westerndeal.com"
msgstr "И затем попробуйте снова активировать плагин. Это создаст файл debug.log в папке wp-content.&nbsp;Проверьте наличие ошибки соединителя Google Sheets для CF7, если она есть, отправьте нам файл на support@westerndeal.com"
#: google-sheet-connector.php:390
msgid "Authenticate with your Google account, follow these steps:"
msgstr "Аутентифицируйтесь с помощью вашей учетной записи Google, выполните следующие шаги:"
#: google-sheet-connector.php:660
msgid "Auto Fetch Sheets and Integration"
msgstr "Авто получение листов и интеграция"
#: includes/pages/gs-integrate-demo.php:27
msgid "Automated Sheet Name & Tab Name"
msgstr "Автоматизированное имя листа и имя вкладки"
#: includes/pages/gs-integrate-demo.php:42
msgid "Automatic Updates"
msgstr "Автоматические обновления"
#: includes/pages/gs-beta-version.php:8
msgid "Beta Opt-in"
msgstr "Бета-опция"
#: includes/pages/google-sheet-settings.php:75
msgid "Beta Version"
msgstr "Бета-версия"
#: includes/pages/pro-popup.php:24 includes/pages/pro-popup.php:58
msgid "Bonus: GSheetConnector for CF7 Lite users will get <strong>Special Discounts</strong> for unlimited site licence, automatically applied at checkout."
msgstr "Бонус: пользователи GSheetConnector для CF7 Lite получат <strong>Специальные скидки</strong> на неограниченную лицензию сайта, автоматически применяемые при оформлении заказа."
#: includes/pages/gs-integrate-demo.php:58
msgid "Buy Now - $39.00"
msgstr "Купить сейчас - $39.00"
#: google-sheet-connector.php:347
msgid "CF7 - Google Sheet Integration"
msgstr "CF7 - Интеграция с Google Sheet"
#: includes/pages/google-sheet-settings.php:74
msgid "CF7 Database"
msgstr "База данных CF7"
#: includes/pages/gs-beta-version.php:6
msgid "CF7 Google Sheet Beta Opt-in"
msgstr "Бета-опция CF7 Google Sheet"
#: google-sheet-connector.php:380
msgid "Automatic integration allows you to connect Contact Forms with Google Sheets using built-in Google API configuration. By authorizing your Google account, the plugin will handle API setup and authentication automatically, enabling seamless form data sync. Learn more in the documentation"
msgstr "Автоматическая интеграция позволяет подключать контактные формы к Google Sheets с помощью встроенной настройки Google API. Авторизовав свою учетную запись Google, плагин автоматически настроит API и аутентификацию, обеспечивая бесшовную синхронизацию данных формы. Узнайте больше в документации"
#: google-sheet-connector.php:646
msgid "CF7 Google Sheet Connector Pro - Amazing Key Features"
msgstr "CF7 Google Sheet Connector Pro - Удивительные ключевые функции"
#: includes/pages/gs-integrate-demo.php:20
msgid "CF7 Google Sheet Connector PRO Features"
msgstr "PRO функции соединителя CF7 Google Sheet"
#: includes/pages/gs-cf7-logs.php:6
msgid "CF7 Google Sheet Database Settings"
msgstr "Настройки базы данных CF7 Google Sheet"
#: includes/pages/gs-role-settings.php:7
msgid "CF7 Google Sheet Roles Settings"
msgstr "Настройки ролей CF7 Google Sheets"
#: google-sheet-connector.php:348
msgid "Choose your Google API Setting from the dropdown. You can select Use Existing Client/Secret Key (Auto Google API Configuration) or Use Manual Client/Secret Key (Use Your Google API Configuration - Pro Version) or Use Service Account (Recommended- Pro Version) . After saving, the related integration settings will appear, and you can complete the setup."
msgstr "Выберите настройки Google API из выпадающего списка. Вы можете выбрать Использовать существующий клиент/секретный ключ (Автонастройка Google API) или Использовать ручной клиент/секретный ключ (Используйте вашу настройку Google API - версия Pro) или Использовать сервисный аккаунт (Рекомендуется - версия Pro). После сохранения появятся соответствующие настройки интеграции, и вы сможете завершить настройку."
#: includes/pages/gs-integrate-demo.php:26
msgid "Click & Fetch Sheet Automated"
msgstr "Нажмите и получите автоматизированный лист"
#: google-sheet-connector.php:462
msgid "Click Here "
msgstr "Нажмите здесь "
#: includes/pages/gs-integrate-demo.php:9
msgid "Click Here Demo"
msgstr "Нажмите здесь для демонстрации"
#: google-sheet-connector.php:442
msgid "Click here to Save Authentication Code"
msgstr "Нажмите здесь, чтобы сохранить код аутентификации"
#: google-sheet-connector.php:425
msgid "Click on Sign in with Google button"
msgstr "Нажмите на кнопку Войти с помощью Google"
#: google-sheet-connector.php:393
msgid "Click on the \"Sign In With Google\" button."
msgstr "Нажмите на кнопку \"Войти с помощью Google\"."
#: includes/pages/gs-miscellaneous-features.php:39
msgid "Coloring of header, odd, even rows"
msgstr "Окрашивание заголовка, нечетных и четных строк"
#: google-sheet-connector.php:647
msgid "Common Features of GSheetConnector Pro Plugins."
msgstr "Общие функции плагинов GSheetConnector Pro."
#: google-sheet-connector.php:730
msgid "Compatibility with Contact Form 7 Third-Party Plugins"
msgstr "Совместимость с плагинами третьих сторон для Contact Form 7"
#: includes/pages/gs-conditional-logic.php:4
msgid "Conditional Logic "
msgstr "Условная логика "
#. Description of the plugin
#: google-sheet-connector.php
msgid "Connect Contact Form 7 to Google Sheets and send form submissions to Google Sheets in a Real-Time"
msgstr "Подключите Contact Form 7 к Google Sheets и отправляйте отправки форм в Google Sheets в реальном времени"
#: google-sheet-connector.php:480
msgid "Connected Email Account"
msgstr "Подключенный аккаунт электронной почты"
#: includes/pages/cf7gs-dashboard-widget.php:21
msgid "Contact Forms (CF7) connected with Google Sheets."
msgstr "Контактные формы (CF7), подключенные к Google Sheets."
#: includes/pages/gs-cf7-logs.php:21
msgid "Contact Forms List"
msgstr "Список контактных форм"
#: includes/pages/gs-integrate-info.php:31
msgid "Copy Error Log to Clipboard"
msgstr "Скопировать журнал ошибок в буфер обмена"
#: google-sheet-connector.php:579
msgid "Copy Logs"
msgstr "Копировать логи"
#: includes/pages/gs-integrate-info.php:15
msgid "Copy System Info to Clipboard"
msgstr "Скопировать информацию о системе в буфер обмена"
#: google-sheet-connector.php:414
msgid "Currently Active"
msgstr "В настоящее время активно"
#: includes/pages/gs-custom-mail-tags.php:5
msgid "Custom Mail Tags "
msgstr "Пользовательские почтовые теги "
#: includes/pages/gs-integrate-demo.php:44
msgid "Custom Ordering"
msgstr "Пользовательский порядок"
#: includes/pages/gs-custom-ordering.php:5
msgid "Custom Ordering - "
msgstr "Пользовательский порядок - "
#: includes/pages/gs-integrate-demo.php:47
msgid "Custom tags can be Add"
msgstr "Пользовательские теги могут быть добавлены"
#: includes/pages/google-sheet-settings.php:60
msgid "DASHBOARD"
msgstr "ПАНЕЛЬ УПРАВЛЕНИЯ"
#: google-sheet-connector.php:497
msgid "Debug Log"
msgstr "Журнал отладки"
#: includes/pages/gs-integrate-faq.php:36
msgid "define(WP_DEBUG, true); define(WP_DEBUG_LOG, true); define(SCRIPT_DEBUG, true); define(SAVEQUERIES, true);"
msgstr "define(WP_DEBUG, true); define(WP_DEBUG_LOG, true); define(SCRIPT_DEBUG, true); define(SAVEQUERIES, true);"
#: google-sheet-connector.php:771
msgid "Direct help from our qualified support team"
msgstr "Прямая помощь от нашей квалифицированной команды поддержки"
#: google-sheet-connector.php:170 includes/pages/admin-footer.php:35
msgid "Docs"
msgstr "Документы"
#: includes/pages/gs-beta-version.php:16
msgid "Enable Beta Version"
msgstr "Включить бета-версию"
#: includes/pages/gs-cf7-logs.php:7
msgid "Enable/Disable CF7 Database Settings"
msgstr "Включить/Отключить настройки базы данных CF7"
#: includes/pages/gs-integrate-info.php:30
msgid "enabled, errors are stored in a log file. Here you can find the last 100 lines in reversed order so that you or the GSheetConnector support team can view it easily. The file cannot be edited here."
msgstr "включен, ошибки сохраняются в файле журнала. Здесь вы можете найти последние 100 строк в обратном порядке, чтобы вы или команда поддержки GSheetConnector могли легко их просмотреть. Файл нельзя редактировать здесь."
#: includes/pages/gs-integrate-faq.php:24
msgid "Enter Google Sheet name and Google Sheet tab name inside the Google Sheet tab."
msgstr "Введите имя Google Sheet и имя вкладки Google Sheet внутри вкладки Google Sheet."
#: includes/pages/gs-integrate-info.php:28
msgid "Error Log"
msgstr "Журнал ошибок"
#: includes/pages/gs-integrate-demo.php:48
msgid "Excellent Priority Support"
msgstr "Отличная приоритетная поддержка"
#: includes/pages/gs-field-list.php:5
msgid "Field List - "
msgstr "Список полей - "
#: includes/pages/gs-integrate-faq.php:34
msgid "Following are few of the points which will help to debug the issue."
msgstr "Следующие несколько пунктов помогут вам отладить проблему."
#: includes/pages/admin-footer.php:36
msgid "Free Plugins"
msgstr "Бесплатные Плагины"
#: includes/pages/gs-miscellaneous-features.php:21
msgid "Freeze First Header Row."
msgstr "Закрепить первую строку заголовка."
#: includes/pages/gs-miscellaneous-features.php:13
msgid "Freeze Header Row"
msgstr "Закрепить строку заголовка"
#: google-sheet-connector.php:981
msgid "Get CF7 Google Sheet Pro"
msgstr "Получить CF7 Google Sheet Pro"
#: google-sheet-connector.php:654
msgid "Get spreadsheet and Worksheet list directly to your contact forms google sheet settings with one-click authentication."
msgstr "Получите список таблиц и листов непосредственно в настройках Google Sheet вашей контактной формы с помощью аутентификации в один клик."
#: includes/pages/gs-beta-version.php:17
msgid "Get updates for pre-release versions"
msgstr "Получать обновления для предварительных версий"
#: includes/pages/gs-integrate-faq.php:22
msgid "Go to the Current Working Contact Form7 and edit it."
msgstr "Перейдите к текущей рабочей контактной форме 7 и отредактируйте ее."
#: includes/class-gs-service.php:805
msgid "Go to your google account and click on\"Google apps\" icon and than click \"Sheets\". Select the name of the appropriate sheet you want to link your contact form or create new sheet."
msgstr "Перейдите в свою учетную запись Google и нажмите на иконку \"Google приложения\", затем нажмите \"Sheets\". Выберите имя соответствующего листа, который вы хотите связать с вашей контактной формой, или создайте новый лист."
#: google-sheet-connector.php:411
msgid "Google Access Code"
msgstr "Код доступа Google"
#: google-sheet-connector.php:396
msgid "Google Drive"
msgstr "Google Диск"
#: google-sheet-connector.php:273
msgid "Google Sheet Connector Add-on requires Contact Form 7 plugin to be installed and activated."
msgstr "Дополнение Google Sheet Connector требует, чтобы плагин Contact Form 7 был установлен и активирован."
#: includes/class-gs-service.php:808
msgid "Google Sheet ID"
msgstr "ID Google Sheet"
#: google-sheet-connector.php:378
msgid "Google Sheet Integration - Use Existing Client/Secret Key (Auto Google API Configuration)"
msgstr "Интеграция с Google Sheet - Использовать существующий клиент/секретный ключ (автоматическая настройка Google API)"
#: includes/class-gs-service.php:800
msgid "Google Sheet Name"
msgstr "Имя Google Sheet"
#: includes/class-gs-service.php:797
msgid "Google Sheet Settings"
msgstr "Настройки Google Sheet"
#: includes/class-gs-service.php:814
msgid "Google Sheet Tab Name"
msgstr "Название вкладки Google Таблицы"
#: includes/pages/gs-integrate-demo.php:24
msgid "Google sheets API (Up-to date )"
msgstr "API Google Sheets (Актуально)"
#: google-sheet-connector.php:667
msgid "Google Sheets API Up to date"
msgstr "API Google Sheets обновлен"
#: includes/class-gs-service.php:820
msgid "Google Tab ID"
msgstr "ID вкладки Google"
#: google-sheet-connector.php:394
msgid "Grant permissions for the following:"
msgstr "Предоставьте разрешения для следующих:"
#. Plugin Name of the plugin
#: google-sheet-connector.php includes/pages/google-sheet-settings.php:48
msgid "GSheetConnector for CF7"
msgstr "GSheetConnector для CF7"
#: includes/pages/pro-popup.php:9 includes/pages/pro-popup.php:43
msgid "GSheetConnector for CF7 PRO Features"
msgstr "GSheetConnector для функций CF7 PRO"
#: includes/pages/gs-integrate-faq.php:45
msgid "How do I get the Google Access Code required in step 3 of Installation?"
msgstr "Как получить код доступа Google, необходимый на шаге 3 установки?"
#: includes/pages/gs-integrate-faq.php:19
msgid "How to configure your Spreadsheet with CF7 to Spreadsheet plugin?"
msgstr "Как настроить вашу таблицу с плагином CF7 к таблице?"
#: includes/pages/gs-integrate-info.php:30
msgid "If you have"
msgstr "Если у вас есть"
#: includes/pages/gs-integrate-demo.php:45
msgid "Image / PDF Attachment Link"
msgstr "Ссылка на изображение / PDF-вложение"
#: includes/pages/gs-integrate-faq.php:57
msgid "In a popup Google will ask you to authorize the plugin to connect to your Google Sheets. Authorize it you may have to log in to your Google account if you arent already logged in."
msgstr "В всплывающем окне Google попросит вас авторизовать плагин для подключения к вашим Google Sheets. Авторизуйте его вам, возможно, придется войти в свою учетную запись Google, если вы еще не вошли."
#: google-sheet-connector.php:677
msgid "In the Google sheets tab, provide column names in row 1. The first column should be “date” for each."
msgstr "В вкладке Google Sheets укажите имена столбцов в строке 1. Первый столбец должен быть \"дата\" для каждого."
#: includes/pages/gs-integrate-demo.php:30
msgid "Latest WordPress & PHP Support"
msgstr "Поддержка последних версий WordPress и PHP"
#: includes/pages/admin-footer.php:32
msgid "Made with ♥ by the GSheetConnector Team"
msgstr "Сделано с ♥ командой GSheetConnector"
#: includes/pages/gs-integrate-demo.php:28
msgid "Manually Adding Sheet Name & Tab Name"
msgstr "Ручное добавление имени листа и имени вкладки"
#: google-sheet-connector.php:676
msgid "Map Contact Form Mail Tags to GSheet Columns"
msgstr "Сопоставьте теги почты контактной формы со столбцами GSheet"
#: includes/pages/gs-miscellaneous-features.php:4
msgid "Miscellaneous Features - "
msgstr "Разные функции - "
#: google-sheet-connector.php:737
msgid "Multi Languages"
msgstr "Многоязычность"
#: includes/class-gs-service.php:782
msgid "Multi Sheet Connection"
msgstr "Подключение к нескольким листам"
#: includes/pages/gs-integrate-demo.php:40
msgid "Multiple Forms to Sheets"
msgstr "Несколько форм в листы"
#: google-sheet-connector.php:713
msgid "Next steps…"
msgstr "Следующие шаги…"
#: includes/pages/cf7gs-dashboard-widget.php:42
msgid "No Contact Forms (CF7) is connected with Google Sheets."
msgstr "Нет подключенных контактных форм (CF7) к Google Sheets."
#: includes/class-gs-service.php:1059
msgid "No custom mail tags available."
msgstr "Нет доступных пользовательских почтовых тегов."
#: google-sheet-connector.php:595
msgid "No log file exists as no errors are generated"
msgstr "Журнал не существует, так как ошибок не было"
#: includes/class-gs-service.php:942
msgid "No mail tags available."
msgstr "Нет доступных почтовых тегов."
#: includes/pages/gs-custom-ordering.php:9
msgid "Not showing correct header name ? Un-select and select the fields checkbox again. It happens due to various reasons like change in field/mail tag name."
msgstr "Не отображается правильное имя заголовка? Снимите и снова выберите флажок полей. Это происходит по различным причинам, таким как изменение имени поля/почтового тега."
#: includes/pages/gs-integrate-faq.php:61
msgid "Now you can paste this code back on the&nbsp;<code>Admin Panel &gt; Contact form 7 &gt; Google Sheets</code>&nbsp;screen."
msgstr "Теперь вы можете вставить этот код обратно на&nbsp;<code>Админ-панель &gt; Контактная форма 7 &gt; Google Sheets</code>&nbsp;экран."
#: includes/pages/gs-integrate-faq.php:58
msgid "On the next screen, you should receive the Access Code. Copy it."
msgstr "На следующем экране вы должны получить код доступа. Скопируйте его."
#: includes/pages/gs-integrate-faq.php:50
msgid "On the&nbsp;<code>Admin Panel &gt; Contact form 7 &gt; Google Sheets</code>&nbsp;screen, click the “Get Code” button."
msgstr "На&nbsp;<code>Админ-панель &gt; Контактная форма 7 &gt; Google Sheets</code>&nbsp;экране нажмите кнопку «Получить код»."
#: includes/pages/gs-integrate-demo.php:25
msgid "One Click Authentication"
msgstr "Аутентификация в один клик"
#: google-sheet-connector.php:668
msgid "One of the features you get with the latest API-V4 is the ability to format content in Google Sheets. when using our addon plugins."
msgstr "Одна из функций, которую вы получаете с последним API-V4, - это возможность форматировать содержимое в Google Sheets при использовании наших дополнительных плагинов."
#: google-sheet-connector.php:653
msgid "One-Click Authentication"
msgstr "Аутентификация в один клик"
#: google-sheet-connector.php:763
msgid "Online Documentation"
msgstr "Онлайн документация"
#: includes/class-gs-service.php:817
msgid "Open your Google Sheet with which you want to link your contact form . You will notice a tab names at bottom of the screen. Copy the tab name where you want to have an entry of contact form."
msgstr "Откройте вашу Google Таблицу, с которой вы хотите связать вашу контактную форму. Вы заметите имена вкладок внизу экрана. Скопируйте имя вкладки, в которую вы хотите добавить запись контактной формы."
#: includes/pages/gs-integrate-faq.php:12
#: includes/pages/gs-integrate-faq.php:81
msgid "Please double-check those items and hopefully getting them right will fix the issue."
msgstr "Пожалуйста, дважды проверьте эти элементы, и, надеюсь, их правильное указание решит проблему."
#: includes/pages/gs-beta-version.php:6 includes/pages/gs-cf7-logs.php:6
#: includes/pages/gs-role-settings.php:7
msgid "PRO"
msgstr "ПРО"
#: includes/pages/gs-conditional-logic.php:4
#: includes/pages/gs-custom-mail-tags.php:5
msgid "Pro "
msgstr "Pro "
#: google-sheet-connector.php:757
msgid "Product Support"
msgstr "Поддержка продукта"
#: google-sheet-connector.php:683 includes/pages/gs-integrate-demo.php:29
msgid "Quick Configuration"
msgstr "Быстрая настройка"
#: includes/pages/gs-integrate-demo.php:41
msgid "Role Management"
msgstr "Управление ролями"
#: includes/pages/google-sheet-settings.php:73
msgid "Role Settings"
msgstr "Настройки ролей"
#: includes/pages/gs-role-settings.php:10
msgid "Roles that can access Google Sheet Page"
msgstr "Роли, которые могут получить доступ к странице Google Sheets"
#: includes/pages/gs-role-settings.php:48
msgid "Roles that can access Google Sheet Tab at Contact Form"
msgstr "Роли, которые могут получить доступ к вкладке Google Sheet в контактной форме"
#: google-sheet-connector.php:700
msgid "See Demo"
msgstr "Смотреть демо"
#: includes/pages/gs-miscellaneous-features.php:51
msgid "Sheet Sorting"
msgstr "Сортировка листа"
#: includes/pages/gs-integrate-demo.php:16
msgid "Sheet URL (Click Here to view Sheet with submitted data.)"
msgstr "URL таблицы (Нажмите здесь, чтобы просмотреть таблицу с отправленными данными.)"
#: includes/pages/gs-role-settings.php:45
#: includes/pages/gs-role-settings.php:83
msgid "Shop manager"
msgstr "Менеджер магазина"
#: includes/class-gs-service.php:777
msgid "Single Sheet Connection"
msgstr "Подключение к одному листу"
#: google-sheet-connector.php:455
msgid "Something went wrong! It looks you have not given the permission of Google Drive and Google Sheets from your google account.Please Deactivate Auth and Re-Authenticate again with the permissions."
msgstr "Что-то пошло не так! Похоже, вы не предоставили разрешения для Google Диска и Google Таблиц из вашего аккаунта Google. Пожалуйста, деактивируйте аутентификацию и повторно аутентифицируйтесь с разрешениями."
#: includes/pages/gs-integrate-faq.php:7 includes/pages/gs-integrate-faq.php:75
msgid "Sometimes it can take a while of spinning before it goes through. But if the entries never show up in your Sheet then one of these things might be the reason:"
msgstr "Иногда может потребоваться время, прежде чем данные пройдут. Но если записи никогда не появляются в вашем листе, то одной из этих причин может быть:"
#: includes/pages/gs-miscellaneous-features.php:58
msgid "Sort sheet by column name."
msgstr "Сортировать лист по имени столбца."
#: includes/pages/gs-special-mailtags.php:5
msgid "Special Mail Tags - "
msgstr "Специальные теги почты - "
#: includes/pages/gs-integrate-support.php:5
msgid "Submit A Ticket"
msgstr "Отправить тикет"
#: includes/pages/gs-integrate-support.php:7
msgid "Submit a ticket"
msgstr "Отправить тикет"
#: google-sheet-connector.php:690
msgid "Support WordPress Multi-site"
msgstr "Поддержка мультисайтов WordPress"
#: includes/pages/gs-integrate-demo.php:31
msgid "Support WordPress multisite"
msgstr "Поддержка мультисайтов WordPress"
#: google-sheet-connector.php:745
msgid "Support Wordpress multisites"
msgstr "Поддержка мультисайтов WordPress"
#: google-sheet-connector.php:721
msgid "Sync Orders, Order wise data and much more..."
msgstr "Синхронизация заказов, данные по заказам и многое другое..."
#: includes/pages/gs-integrate-info.php:14
msgid "System Info"
msgstr "Информация о системе"
#: includes/pages/google-sheet-settings.php:78
msgid "System Status"
msgstr "Статус Системы"
#: google-sheet-connector.php:684 google-sheet-connector.php:691
msgid "The Configuration of the form to the GSheet is very easy. Just follow the steps provided by the plugin and you will get data on the GSheet."
msgstr "Настройка формы для GSheet очень проста. Просто следуйте шагам, предоставленным плагином, и вы получите данные в GSheet."
#: includes/class-gs-service.php:1078
msgid "The Enable Conditional Logic option in the field settings allows you to create rules to dynamically display or hide the submission to Google Sheet based on values."
msgstr "Опция Включить условную логику в настройках поля позволяет создавать правила для динамического отображения или скрытия отправки в Google Sheet на основе значений."
#: includes/pages/gs-integrate-faq.php:23
msgid "Then click on the Google Sheet tab."
msgstr "Затем нажмите на вкладку Google Sheet."
#: includes/class-gs-utility.php:95
msgid "Theres something wrong with your code…"
msgstr "Что-то не так с вашим кодом…"
#: includes/pages/pro-popup.php:12 includes/pages/pro-popup.php:46
msgid "This features is available in the PRO version of the plugin. To <strong>Enable the options Upgrade to the PRO</strong> version to unlock all these awesome features."
msgstr "Эта функция доступна в PRO-версии плагина. Чтобы <strong>включить опции, обновите до PRO</strong> версии, чтобы разблокировать все эти потрясающие функции."
#: includes/pages/gs-integrate-support.php:12
msgid "This is the place to go to reference different aspects of the theme. Our online documentaiton is an incredible resource for learning the ins and outs."
msgstr "Это место, где можно ссылаться на различные аспекты темы. Наша онлайн-документация является невероятным ресурсом для изучения всех нюансов."
#: google-sheet-connector.php:738
msgid "This plugin supports multi-languages as well!"
msgstr "Этот плагин также поддерживает многоязычность!"
#: google-sheet-connector.php:405
msgid "This will allow the integration to access your Google Drive and Google Sheets."
msgstr "Это позволит интеграции получить доступ к вашему Google Диску и Google Таблицам."
#: google-sheet-connector.php:770
msgid "Ticket Support"
msgstr "Поддержка по тикетам"
#: includes/pages/gs-beta-version.php:9
msgid "Turn on the Beta Version feature to get notified about new beta releases. The beta version will not install automatically and you always have the option to ignore it."
msgstr "Включите функцию бета-версии, чтобы получать уведомления о новых бета-релизах. Бета-версия не будет устанавливаться автоматически, и у вас всегда есть возможность игнорировать её."
#: google-sheet-connector.php:764
msgid "Understand all the capabilities of Contact Form 7 - GSheetConnector for CF7"
msgstr "Поймите все возможности Contact Form 7 - GSheetConnector для CF7"
#: google-sheet-connector.php:720
msgid "Upgrade to PRO"
msgstr "Обновить до PRO"
#: google-sheet-connector.php:356
msgid "Use Existing Client/Secret Key (Auto Google API Configuration)"
msgstr "Использовать существующий клиент/секретный ключ (Автонастройка Google API)"
#: google-sheet-connector.php:359
msgid "Use Manual Client/Secret Key (Use Your Google API Configuration) (Upgrade To PRO)"
msgstr "Использовать ручной клиент/секретный ключ (Используйте вашу настройку Google API) (Обновите до PRO)"
#: google-sheet-connector.php:362
msgid "Use Service Account (Recommended) (Upgrade To PRO)"
msgstr "Использовать сервисный аккаунт (рекомендуется) (обновление до PRO)"
#: includes/pages/gs-integrate-faq.php:73
msgid "Value is not Saving in Google Sheet and Email Works."
msgstr "Значение не сохраняется в Google Sheets, а электронная почта работает."
#: includes/pages/google-sheet-settings.php:48
msgid "Version :"
msgstr "Версия :"
#: google-sheet-connector.php:170
msgid "View Documentation"
msgstr "Просмотреть документацию"
#: google-sheet-connector.php:513
msgid "We do not store any of the data from your Google account on our servers, everything is processed &amp; stored on your server. We take your privacy extremely seriously and ensure it is never misused."
msgstr "Мы не храним никаких данных из вашего аккаунта Google на наших серверах, все обрабатывается и хранится на вашем сервере. Мы очень серьезно относимся к вашей конфиденциальности и гарантируем, что она никогда не будет использована неправомерно."
#: includes/pages/gs-integrate-support.php:6
msgid "We offer excellent support through our advanced ticket system. Make sure to register your purchase first to access our support services and other resources."
msgstr "Мы предлагаем отличную поддержку через нашу продвинутую систему тикетов. Убедитесь, что вы сначала зарегистрировали свою покупку, чтобы получить доступ к нашим услугам поддержки и другим ресурсам."
#: includes/pages/gs-integrate-faq.php:32
msgid "Why I am Getting Error 500 After Installing Plugin."
msgstr "Почему я получаю ошибку 500 после установки плагина."
#: includes/pages/gs-integrate-faq.php:3
msgid "Why isnt the data send to spreadsheet? CF7 Submit is just Spinning."
msgstr "Почему данные не отправляются в таблицу? CF7 отправка просто крутится."
#: google-sheet-connector.php:746
msgid ""
"With the use of a Multisite, youll also have a new level of user-available: the Super\n"
" Admin."
msgstr ""
"При использовании мультисайта у вас также будет новый уровень доступных пользователей: Супер\n"
" Администратор."
#: includes/pages/gs-integrate-info.php:30
msgid "WP_DEBUG_LOG"
msgstr "WP_DEBUG_LOG"
#: includes/pages/gs-integrate-faq.php:8 includes/pages/gs-integrate-faq.php:77
msgid "Wrong access code ( Check debug log )"
msgstr "Неверный код доступа (проверьте журнал отладки)"
#: includes/pages/gs-integrate-faq.php:79
msgid "Wrong Column name mapping ( Column names are the contact form mail-tags. It cannot have underscore or any special characters )"
msgstr "Неправильное сопоставление имен столбцов (имена столбцов это теги почты контактной формы. Они не могут содержать подчеркивания или специальные символы)"
#: includes/pages/gs-integrate-faq.php:10
msgid "Wrong Column name mapping( Column names are the contact form mail-tags. It cannot have underscore or any special characters )"
msgstr "Неверное сопоставление имен столбцов (имена столбцов - это почтовые теги контактной формы. Они не могут содержать символ подчеркивания или специальные символы)"
#: includes/pages/gs-integrate-faq.php:9 includes/pages/gs-integrate-faq.php:78
msgid "Wrong Sheet name or tab name"
msgstr "Неверное имя листа или имя вкладки"
#: google-sheet-connector.php:661
msgid "You can add multiple Contact Forms of your site to multiple Google Sheets. And can add as many Google Sheets as forms."
msgstr "Вы можете добавить несколько контактных форм вашего сайта в несколько Google Sheets. И можете добавить столько же Google Sheets, сколько форм."
#: includes/class-gs-service.php:811
msgid "you can get sheet id from your sheet URL"
msgstr "вы можете получить ID таблицы из URL вашей таблицы"
#: includes/class-gs-service.php:823
msgid "you can get tab id from your sheet URL"
msgstr "вы можете получить ID вкладки из URL вашей таблицы"

View File

@@ -0,0 +1 @@
{"translation-revision-date":"2025-05-05 06:00:55+0000","generator":"GlotPress\/4.0.1","domain":"messages","locale_data":{"messages":{"":{"domain":"messages","plural-forms":"nplurals=3; plural=(n % 10 == 1 && n % 100 != 11) ? 0 : ((n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 12 || n % 100 > 14)) ? 1 : 2);","lang":"ru"},"The file URL has been copied to your clipboard":["URL \u0444\u0430\u0439\u043b\u0430 \u0431\u044b\u043b \u0441\u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u043d \u0432 \u0431\u0443\u0444\u0435\u0440 \u043e\u0431\u043c\u0435\u043d\u0430"],"URL Slug":["\u042f\u0440\u043b\u044b\u043a URL"],"post action\/button label\u0004Schedule":["\u0417\u0430\u043f\u043b\u0430\u043d\u0438\u0440\u043e\u0432\u0430\u0442\u044c"],"Saving Draft\u2026":["\u0421\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u0438\u0435 \u0447\u0435\u0440\u043d\u043e\u0432\u0438\u043a\u0430..."],"Could not set that as the thumbnail image. Try a different attachment.":["\u041d\u0435 \u0443\u0434\u0430\u043b\u043e\u0441\u044c \u0437\u0430\u0434\u0430\u0442\u044c \u044d\u0442\u043e \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043c\u0438\u043d\u0438\u0430\u0442\u044e\u0440\u044b. \u041f\u043e\u043f\u0440\u043e\u0431\u0443\u0439\u0442\u0435 \u0434\u0440\u0443\u0433\u043e\u0435 \u0432\u043b\u043e\u0436\u0435\u043d\u0438\u0435."],"Permalink saved":["\u041f\u043e\u0441\u0442\u043e\u044f\u043d\u043d\u0430\u044f \u0441\u0441\u044b\u043b\u043a\u0430 \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u0430"],"The changes you made will be lost if you navigate away from this page.":["\u0418\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0432\u044b \u0441\u0434\u0435\u043b\u0430\u043b\u0438 \u0431\u0443\u0434\u0443\u0442 \u043f\u043e\u0442\u0435\u0440\u044f\u043d\u044b \u0435\u0441\u043b\u0438 \u0432\u044b \u0443\u0439\u0434\u0435\u0442\u0435 \u0441 \u044d\u0442\u043e\u0439 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u044b."],"Published":["\u041e\u043f\u0443\u0431\u043b\u0438\u043a\u043e\u0432\u0430\u043d\u043e"],"Privately Published":["\u041e\u043f\u0443\u0431\u043b\u0438\u043a\u043e\u0432\u0430\u043d\u043e \u043a\u0430\u043a \u043b\u0438\u0447\u043d\u043e\u0435"],"Password Protected":["\u0417\u0430\u0449\u0438\u0449\u0435\u043d\u043e \u043f\u0430\u0440\u043e\u043b\u0435\u043c"],"Public, Sticky":["\u041e\u0442\u043a\u0440\u044b\u0442\u043e, \u043f\u0440\u0438\u043b\u0435\u043f\u043b\u0435\u043d\u043e"],"Public":["\u041e\u0442\u043a\u0440\u044b\u0442\u0430\u044f"],"Private":["\u0427\u0430\u0441\u0442\u043d\u0430\u044f"],"Save Draft":["\u0421\u043e\u0445\u0440\u0430\u043d\u0438\u0442\u044c"],"Save as Pending":["\u0421\u043e\u0445\u0440\u0430\u043d\u0438\u0442\u044c \u0434\u043b\u044f \u0443\u0442\u0432\u0435\u0440\u0436\u0434\u0435\u043d\u0438\u044f"],"Update":["\u041e\u0431\u043d\u043e\u0432\u0438\u0442\u044c"],"No more comments found.":["\u0411\u043e\u043b\u044c\u0448\u0435 \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u0435\u0432 \u043d\u0435 \u043d\u0430\u0439\u0434\u0435\u043d\u043e."],"Show more comments":["\u041f\u043e\u043a\u0430\u0437\u0430\u0442\u044c \u0435\u0449\u0451 \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u0438"],"%1$s %2$s, %3$s at %4$s:%5$s":["%1$s %2$s, %3$s \u0432 %4$s:%5$s"],"Published on:":["\u0414\u0430\u0442\u0430:"],"Schedule for:":["\u0417\u0430\u043f\u043b\u0430\u043d\u0438\u0440\u043e\u0432\u0430\u0442\u044c:"],"Publish on:":["\u041e\u043f\u0443\u0431\u043b\u0438\u043a\u043e\u0432\u0430\u0442\u044c:"],"Cancel":["\u041e\u0442\u043c\u0435\u043d\u0430"],"OK":["OK"],"Publish":["\u041e\u043f\u0443\u0431\u043b\u0438\u043a\u043e\u0432\u0430\u0442\u044c"]}},"comment":{"reference":"scripts\/post.js"}}

View File

@@ -0,0 +1,2 @@
<?php
return ['x-generator'=>'GlotPress/4.0.1','translation-revision-date'=>'2025-05-05 06:00:55+0000','plural-forms'=>'nplurals=3; plural=(n % 10 == 1 && n % 100 != 11) ? 0 : ((n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 12 || n % 100 > 14)) ? 1 : 2);','project-id-version'=>'Plugins - Classic Editor - Stable (latest release)','language'=>'ru','messages'=>['Editor NameClassic Editor'=>'Классический редактор','Editor NameBlock editor'=>'Редактор блоков','Editor NameClassic editor'=>'Классический редактор','Editor NameEdit (classic editor)'=>'Изменить (классический редактор)','Editor NameEdit (block editor)'=>'Изменить (редактор блоков)','Change settings'=>'Изменить настройки','Default editor for all sites'=>'Редактор по умолчанию для всех сайтов','Editor Settings'=>'Настройки редактора','Default Editor'=>'Редактор по умолчанию','Editor Nameblock editor'=>'Редактор блоков','Editor Nameclassic editor'=>'Классический редактор','Edit &#8220;%s&#8221; in the block editor'=>'Редактировать &#8220;%s&#8221; в редакторе блоков','Switch to block editor'=>'Переключиться на редактор блоков','Switch to classic editor'=>'Переключиться на классический редактор','By default the block editor is replaced with the classic editor and users cannot switch editors.'=>'По умолчанию редактор блоков будет заменен на классический редактор и пользователи не смогут выбирать редактор.','Allow site admins to change settings'=>'Разрешить администраторам сайта изменять настройки','Editor'=>'Редактор','No'=>'Нет','Yes'=>'Да','Allow users to switch editors'=>'Разрешить пользователям переключение редакторов','Default editor for all users'=>'Редактор по умолчанию для всех пользователей','https://github.com/WordPress/classic-editor/'=>'https://github.com/WordPress/classic-editor/','https://wordpress.org/plugins/classic-editor/'=>'https://ru.wordpress.org/plugins/classic-editor/','WordPress Contributors'=>'Участники разработки WordPress','Enables the WordPress classic editor and the old-style Edit Post screen with TinyMCE, Meta Boxes, etc. Supports the older plugins that extend this screen.'=>'Включает классический редактор WordPress, старый вариант экрана редактирования записей (TinyMCE, мета поля и др.). Поддерживает другие плагины расширения старого редактора.','Classic Editor'=>'Classic Editor','Edit &#8220;%s&#8221; in the classic editor'=>'Редактировать &#8220;%s&#8221; в классическом редакторе','Settings'=>'Настройки']];

Binary file not shown.

View File

@@ -0,0 +1,138 @@
# Translation of Plugins - Classic Editor - Stable (latest release) in Russian
# This file is distributed under the same license as the Plugins - Classic Editor - Stable (latest release) package.
msgid ""
msgstr ""
"PO-Revision-Date: 2025-05-05 06:00:55+0000\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=3; plural=(n % 10 == 1 && n % 100 != 11) ? 0 : ((n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 12 || n % 100 > 14)) ? 1 : 2);\n"
"X-Generator: GlotPress/4.0.1\n"
"Language: ru\n"
"Project-Id-Version: Plugins - Classic Editor - Stable (latest release)\n"
#: classic-editor.php:503
msgctxt "Editor Name"
msgid "Classic Editor"
msgstr "Классический редактор"
#: classic-editor.php:429 classic-editor.php:507 classic-editor.php:907
msgctxt "Editor Name"
msgid "Block editor"
msgstr "Редактор блоков"
#: classic-editor.php:425 classic-editor.php:907
msgctxt "Editor Name"
msgid "Classic editor"
msgstr "Классический редактор"
#: classic-editor.php:860
msgctxt "Editor Name"
msgid "Edit (classic editor)"
msgstr "Изменить (классический редактор)"
#: classic-editor.php:853
msgctxt "Editor Name"
msgid "Edit (block editor)"
msgstr "Изменить (редактор блоков)"
#: classic-editor.php:512
msgid "Change settings"
msgstr "Изменить настройки"
#: classic-editor.php:499
msgid "Default editor for all sites"
msgstr "Редактор по умолчанию для всех сайтов"
#: classic-editor.php:495
msgid "Editor Settings"
msgstr "Настройки редактора"
#: classic-editor.php:479
msgid "Default Editor"
msgstr "Редактор по умолчанию"
#: classic-editor.php:894
msgctxt "Editor Name"
msgid "block editor"
msgstr "Редактор блоков"
#: classic-editor.php:891
msgctxt "Editor Name"
msgid "classic editor"
msgstr "Классический редактор"
#. translators: %s: post title
#: classic-editor.php:855
msgid "Edit &#8220;%s&#8221; in the block editor"
msgstr "Редактировать &#8220;%s&#8221; в редакторе блоков"
#: classic-editor.php:690
msgid "Switch to block editor"
msgstr "Переключиться на редактор блоков"
#: classic-editor.php:719
msgid "Switch to classic editor"
msgstr "Переключиться на классический редактор"
#: classic-editor.php:516
msgid "By default the block editor is replaced with the classic editor and users cannot switch editors."
msgstr "По умолчанию редактор блоков будет заменен на классический редактор и пользователи не смогут выбирать редактор."
#: classic-editor.php:515
msgid "Allow site admins to change settings"
msgstr "Разрешить администраторам сайта изменять настройки"
#: classic-editor.php:671
msgid "Editor"
msgstr "Редактор"
#: classic-editor.php:453
msgid "No"
msgstr "Нет"
#: classic-editor.php:449
msgid "Yes"
msgstr "Да"
#: classic-editor.php:376
msgid "Allow users to switch editors"
msgstr "Разрешить пользователям переключение редакторов"
#: classic-editor.php:375
msgid "Default editor for all users"
msgstr "Редактор по умолчанию для всех пользователей"
#. Author URI of the plugin
#: classic-editor.php
msgid "https://github.com/WordPress/classic-editor/"
msgstr "https://github.com/WordPress/classic-editor/"
#. Plugin URI of the plugin
#: classic-editor.php
msgid "https://wordpress.org/plugins/classic-editor/"
msgstr "https://ru.wordpress.org/plugins/classic-editor/"
#. Author of the plugin
#: classic-editor.php
msgid "WordPress Contributors"
msgstr "Участники разработки WordPress"
#. Description of the plugin
#: classic-editor.php
msgid "Enables the WordPress classic editor and the old-style Edit Post screen with TinyMCE, Meta Boxes, etc. Supports the older plugins that extend this screen."
msgstr "Включает классический редактор WordPress, старый вариант экрана редактирования записей (TinyMCE, мета поля и др.). Поддерживает другие плагины расширения старого редактора."
#. Plugin Name of the plugin
#: classic-editor.php
msgid "Classic Editor"
msgstr "Classic Editor"
#. translators: %s: post title
#: classic-editor.php:862
msgid "Edit &#8220;%s&#8221; in the classic editor"
msgstr "Редактировать &#8220;%s&#8221; в классическом редакторе"
#: classic-editor.php:738
msgid "Settings"
msgstr "Настройки"

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1 @@
{"translation-revision-date":"2026-02-09 17:37:19+0000","generator":"GlotPress\/4.0.3","domain":"messages","locale_data":{"messages":{"":{"domain":"messages","plural-forms":"nplurals=3; plural=(n % 10 == 1 && n % 100 != 11) ? 0 : ((n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 12 || n % 100 > 14)) ? 1 : 2);","lang":"ru"},"Used for the class attribute value of the form element.":["\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0434\u043b\u044f \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u0430 class \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430 \u0444\u043e\u0440\u043c\u044b."],"Used for the aria-label attribute value of the form element.":["\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0434\u043b\u044f \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u0430 aria-label \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430 \u0444\u043e\u0440\u043c\u044b."],"Used for the name attribute value of the form element.":["\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0434\u043b\u044f \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u0430 name \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430 \u0444\u043e\u0440\u043c\u044b."],"Used for the id attribute value of the form element.":["\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0434\u043b\u044f \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u0430 id \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430 \u0444\u043e\u0440\u043c\u044b."],"Form attributes":["\u0410\u0442\u0440\u0438\u0431\u0443\u0442\u044b \u0444\u043e\u0440\u043c\u044b"],"Class":["\u041a\u043b\u0430\u0441\u0441"],"ID":["ID"],"Edit this contact form":["\u0418\u0437\u043c\u0435\u043d\u0438\u0442\u044c \u044d\u0442\u0443 \u043a\u043e\u043d\u0442\u0430\u043a\u0442\u043d\u0443\u044e \u0444\u043e\u0440\u043c\u0443"],"Select a contact form:":["\u0412\u044b\u0431\u0435\u0440\u0438\u0442\u0435 \u0444\u043e\u0440\u043c\u0443 \u043a\u043e\u043d\u0442\u0430\u043a\u0442\u0430:"],"Name":["\u0418\u043c\u044f"],"Title":["\u0417\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a"]}},"comment":{"reference":"includes\/block-editor\/index.js"}}

View File

@@ -0,0 +1 @@
{"translation-revision-date":"2026-02-09 17:37:19+0000","generator":"GlotPress\/4.0.3","domain":"messages","locale_data":{"messages":{"":{"domain":"messages","plural-forms":"nplurals=3; plural=(n % 10 == 1 && n % 100 != 11) ? 0 : ((n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 12 || n % 100 > 14)) ? 1 : 2);","lang":"ru"},"This contact form is placed in the wrong place.":["\u042d\u0442\u0430 \u043a\u043e\u043d\u0442\u0430\u043a\u0442\u043d\u0430\u044f \u0444\u043e\u0440\u043c\u0430 \u0440\u0430\u0437\u043c\u0435\u0449\u0435\u043d\u0430 \u0432 \u043d\u0435\u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e\u043c \u043c\u0435\u0441\u0442\u0435."],"Error:":["\u041e\u0448\u0438\u0431\u043a\u0430:"]}},"comment":{"reference":"includes\/js\/index.js"}}

View File

@@ -0,0 +1 @@
{"translation-revision-date":"2026-02-09 17:37:19+0000","generator":"GlotPress\/4.0.3","domain":"messages","locale_data":{"messages":{"":{"domain":"messages","plural-forms":"nplurals=3; plural=(n % 10 == 1 && n % 100 != 11) ? 0 : ((n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 12 || n % 100 > 14)) ? 1 : 2);","lang":"ru"},"How to resolve?":["\u041a\u0430\u043a \u0438\u0441\u043f\u0440\u0430\u0432\u0438\u0442\u044c?"],"%d configuration error detected in this tab panel.":["\u043e\u0431\u043d\u0430\u0440\u0443\u0436\u0435\u043d\u0430 %d \u043e\u0448\u0438\u0431\u043a\u0430 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438 \u043d\u0430 \u044d\u0442\u043e\u0439 \u043f\u0430\u043d\u0435\u043b\u0438 \u0432\u043a\u043b\u0430\u0434\u043e\u043a.","\u043e\u0431\u043d\u0430\u0440\u0443\u0436\u0435\u043d\u043e %d \u043e\u0448\u0438\u0431\u043a\u0438 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438 \u043d\u0430 \u044d\u0442\u043e\u0439 \u043f\u0430\u043d\u0435\u043b\u0438 \u0432\u043a\u043b\u0430\u0434\u043e\u043a.","\u043e\u0431\u043d\u0430\u0440\u0443\u0436\u0435\u043d\u043e %d \u043e\u0448\u0438\u0431\u043a \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438 \u043d\u0430 \u044d\u0442\u043e\u0439 \u043f\u0430\u043d\u0435\u043b\u0438 \u0432\u043a\u043b\u0430\u0434\u043e\u043a."],"%d configuration error detected.":["\u041e\u0431\u043d\u0430\u0440\u0443\u0436\u0435\u043d\u0430 \u043e\u0448\u0438\u0431\u043a\u0430 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438 %d.","\u041e\u0431\u043d\u0430\u0440\u0443\u0436\u0435\u043d\u044b \u043e\u0448\u0438\u0431\u043a\u0438 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438 %d.","\u041e\u0431\u043d\u0430\u0440\u0443\u0436\u0435\u043d\u044b \u043e\u0448\u0438\u0431\u043e\u043a \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438 %d."],"You are about to delete this contact form.\n 'Cancel' to stop, 'OK' to delete.":["\u0423\u0434\u0430\u043b\u0438\u0442\u044c \u044d\u0442\u0443 \u0444\u043e\u0440\u043c\u0443?.\n '\u041e\u0442\u043c\u0435\u043d\u0430' \u043d\u0435 \u0443\u0434\u0430\u043b\u044f\u0442\u044c, '\u041e\u041a' \u0443\u0434\u0430\u043b\u0438\u0442\u044c."]}},"comment":{"reference":"admin\/includes\/js\/index.js"}}

File diff suppressed because one or more lines are too long

Binary file not shown.

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

Binary file not shown.

View File

@@ -0,0 +1,334 @@
# Translation of Plugins - Cyr-To-Lat - Stable (latest release) in Russian
# This file is distributed under the same license as the Plugins - Cyr-To-Lat - Stable (latest release) package.
msgid ""
msgstr ""
"PO-Revision-Date: 2025-05-04 05:19:41+0000\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=3; plural=(n % 10 == 1 && n % 100 != 11) ? 0 : ((n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 12 || n % 100 > 14)) ? 1 : 2);\n"
"X-Generator: GlotPress/4.0.1\n"
"Language: ru\n"
"Project-Id-Version: Plugins - Cyr-To-Lat - Stable (latest release)\n"
#. translators: 1: Site locale. Do not touch text in {}
#: src/php/Settings/Tables.php:171
msgid "Active table \"{active_table}\" does not match the current site locale: \"%1$s\". The \"%2$s\" table will be used for transliteration."
msgstr "Активная таблица \"{active_table}\" не соответствует текущей локали сайта: \"%1$s\". Таблица \"%2$s\" будет использована для транслитерации."
#. Plugin URI of the plugin
#: cyr-to-lat.php
msgid "https://kagg.eu/cyr-to-lat/"
msgstr "https://kagg.eu/cyr-to-lat/"
#: src/php/Settings/Tables.php:98
msgid "Chinese (China)"
msgstr "Китайская (Китай)"
#: src/php/Settings/Tables.php:97
msgid "Hebrew"
msgstr "Иврит"
#: src/php/Settings/Tables.php:96
msgid "Kazakh"
msgstr "Казахская"
#: src/php/Settings/Tables.php:95
msgid "Georgian"
msgstr "Грузинская"
#: src/php/Settings/Tables.php:94
msgid "Armenian"
msgstr "Армянская"
#: src/php/Settings/Tables.php:93
msgid "Greek"
msgstr "Греческая"
#: src/php/Settings/Tables.php:92
msgid "Serbian"
msgstr "Сербская"
#: src/php/Settings/Tables.php:91
msgid "Macedonian"
msgstr "Македонская"
#: src/php/Settings/Tables.php:90
msgid "Bulgarian"
msgstr "Болгарская"
#: src/php/Settings/Tables.php:89
msgid "Ukrainian"
msgstr "Украинская"
#: src/php/Settings/Tables.php:88
msgid "Belarusian"
msgstr "Белорусская"
#: src/php/Settings/Tables.php:87
msgid "Default"
msgstr "По умолчанию"
#: src/php/Settings/Tables.php:199
msgid "You are not allowed to perform this action."
msgstr "Вам не разрешено выполнять это действие."
#: src/php/Settings/Tables.php:194
msgid "Your session has expired. Please reload the page."
msgstr "Ваша сессия истекла. Пожалуйста, перегрузите страницу."
#: src/php/Settings/SystemInfo.php:93
msgid "Copy system info to clipboard"
msgstr "Копировать информацию о системе в буфер обмена"
#: src/php/Settings/SystemInfo.php:89
msgid "System Information"
msgstr "Системная информация"
#: src/php/Settings/SystemInfo.php:69
msgid "System info copied to clipboard."
msgstr "Системная информация скопирована в буфер обмена."
#: src/php/Settings/SystemInfo.php:41
msgid "System Info"
msgstr "Система"
#. translators: 1: plugin version.
#: src/php/Settings/PluginSettingsBase.php:232
msgid "Version %s"
msgstr "Версия %s"
#. translators: 1: plugin name, 2: wp.org review link with stars, 3: wp.org
#. review link with text.
#: src/php/Settings/PluginSettingsBase.php:197
msgid "Please rate %1$s %2$s on %3$s. Thank you!"
msgstr "Пожалуйста, оцените %1$s %2$s на %3$s. Спасибо!"
#: src/php/Settings/Converter.php:206
msgid "Post Types and Statuses"
msgstr "Типы и статусы записей"
#: libs/wp-background-processing/wp-background-process.php:575
msgid "Every Minute"
msgstr "Каждую минуту"
#: src/php/Settings/Tables.php:48
msgid "Tables"
msgstr "Таблицы"
#: src/php/Settings/Converter.php:257
msgid "Upon conversion of attachments, please regenerate thumbnails."
msgstr "После конвертации вложений, пожалуйста, пересоздайте миниатюры. "
#: src/php/Settings/Converter.php:248
msgid ""
"Also, you have to make a copy of your media files if the attachment post type is selected for\n"
"\t\t\t\tconversion."
msgstr "Также, вам необходимо сделать копию ваших медиафайлов, если для конвертации был выбран тип записи вложения."
#: src/php/Settings/Converter.php:198
msgid "Existing <strong>product attribute</strong> slugs will <strong>NOT</strong> be converted."
msgstr "Существующие ярлыки <strong>атрибутов товара</strong> конвертированы <strong>НЕ</strong> будут."
#: src/php/Settings/Converter.php:192
msgid "Existing Slugs Conversion Settings"
msgstr "Опции конвертации существующих ярлыков"
#: src/php/Settings/Converter.php:73
msgid "Post statuses included in the conversion."
msgstr "Статусы записей, включаемых в конвертацию."
#: src/php/Settings/Converter.php:69
msgid "Post Statuses"
msgstr "Статусы записей"
#: src/php/Settings/Converter.php:129
msgid "Post types included in the conversion."
msgstr "Типы записей, включаемые в конвертацию."
#: src/php/Settings/Converter.php:125
msgid "Post Types"
msgstr "Типы записей"
#: src/php/Settings/Converter.php:40
msgid "Converter"
msgstr "Конвертер"
#: src/php/Settings/Converter.php:270
msgid "Cancel"
msgstr "Отмена"
#: src/php/Settings/Converter.php:267
msgid "OK"
msgstr "OK"
#: src/php/Settings/Converter.php:263
msgid "Are you sure to continue?"
msgstr "Вы уверены, что хотите продолжить?"
#: src/php/Settings/Converter.php:240
msgid "This operation is irreversible. Please make sure that you have made a backup copy of your database."
msgstr "Эта операция необратима. Пожалуйста, убедитесь, что вы сделали копию базы данных."
#: src/php/Settings/Converter.php:238
msgid "Important:"
msgstr "Важно:"
#: src/php/Settings/Tables.php:219
msgid "Options saved."
msgstr "Настройки сохранены."
#: src/php/BackgroundProcesses/PostConversionProcess.php:130
msgid "Cannot rename thumbnail file:"
msgstr "Невозможно переименовать файл миниатюры:"
#: src/php/BackgroundProcesses/PostConversionProcess.php:127
msgid "Thumbnail file renamed:"
msgstr "Файл миниатюры переименован:"
#: src/php/BackgroundProcesses/PostConversionProcess.php:109
msgid "Cannot convert attachment file for attachment id:"
msgstr "Невозможно сконвертировать файл вложения для вложения с id:"
#: src/php/BackgroundProcesses/PostConversionProcess.php:103
msgid "Attachment file converted:"
msgstr "Файл вложения сконвертирован:"
#: src/php/Settings/Tables.php:122
msgid "(current)"
msgstr "(текущая)"
#: src/php/Requirements.php:245
msgid "See: <a href=\"https://sevenspark.com/docs/ubermenu-3/faqs/menu-item-limit\" target=\"_blank\">Increasing max input vars limit.</a>"
msgstr "См.: <a href=\"https://sevenspark.com/docs/ubermenu-3/faqs/menu-item-limit\" target=\"_blank\">Увеличение лимита max input vars.</a>"
#: src/php/Requirements.php:242
msgid "Please increase max input vars limit up to 1500."
msgstr "Пожалуйста, увеличьте лимит max input vars до 1500."
#. translators: 1: Wait time in seconds
#: src/php/Requirements.php:177
msgid "Please try again in %d s."
msgstr "Пожалуйста, попробуйте снова через %d сек."
#. translators: 1: .user.ini filename
#: src/php/Requirements.php:174
msgid "We have updated settings in %s."
msgstr "Мы обновили настройки в %s."
#. translators: 1: max_input_vars value, 2: Cyr To Lat version, 3: Minimum
#. required max_input_vars
#: src/php/Requirements.php:170
msgid "Your server is running PHP with max_input_vars=%1$d but Cyr To Lat %2$s requires at least %3$d."
msgstr "На сервере установлен PHP с max_input_vars=%1$d, однако для Cyr To Lat %2$s требуется хотя бы %3$d."
#: src/php/Requirements.php:117
msgid "Cyr To Lat plugin has been deactivated."
msgstr "Плагин деактивирован."
#: src/php/Requirements.php:153
msgid "Unable to get filesystem access."
msgstr "Невозможно получить доступ к файловой системе."
#: libs/wp-background-processing/wp-background-process.php:577
msgid "Every %d Minutes"
msgstr "Каждые %d минут"
#. translators: 1: Current PHP version number, 2: Cyr To Lat version, 3:
#. Minimum required PHP version number
#: src/php/Requirements.php:132
msgid "Your server is running PHP version %1$s but Cyr To Lat %2$s requires at least %3$s."
msgstr "На сервере установлен PHP версии %1$s, однако для Cyr To Lat %2$s требуется хотя бы %3$s."
#: src/php/Converter.php:262
msgid "Cyr To Lat has not found existing term slugs for conversion."
msgstr "Cyr To Lat не нашёл существующих ярлыков терминов для конвертации."
#: src/php/Converter.php:275
msgid "Cyr To Lat started conversion of existing term slugs."
msgstr "Cyr To Lat начал конвертацию существующих ярлыков терминов."
#: src/php/Converter.php:273
msgid "Term slugs conversion started."
msgstr "Начата конвертация ярлыков терминов."
#: src/php/Converter.php:225
msgid "Cyr To Lat has not found existing post slugs for conversion."
msgstr "Cyr To Lat не нашёл существующих ярлыков записей для конвертации."
#: src/php/Converter.php:238
msgid "Cyr To Lat started conversion of existing post slugs."
msgstr "Cyr To Lat начал конвертацию существующих ярлыков записей."
#: src/php/Converter.php:236
msgid "Post slugs conversion started."
msgstr "Начата конвертация ярлыков записей."
#: src/php/Converter.php:134
msgid "Cyr To Lat completed conversion of existing term slugs."
msgstr "Cyr To Lat завершил конвертацию существующих ярлыков терминов."
#: src/php/Converter.php:127
msgid "Cyr To Lat completed conversion of existing post slugs."
msgstr "Cyr To Lat завершил конвертацию существующих ярлыков записей."
#: src/php/Converter.php:120
msgid "Cyr To Lat converts existing term slugs in the background process."
msgstr "Cyr To Lat конвертирует существующие ярлыки терминов в фоновом процессе."
#: src/php/Converter.php:113
msgid "Cyr To Lat converts existing post slugs in the background process."
msgstr "Cyr To Lat конвертирует существующие ярлыки записей в фоновом процессе."
#: src/php/BackgroundProcesses/PostConversionProcess.php:204
msgid "Post slugs conversion completed."
msgstr "Конвертация ярлыков записей завершена."
#: src/php/BackgroundProcesses/PostConversionProcess.php:74
msgid "Post slug converted:"
msgstr "Ярлык записи сконвертирован:"
#: src/php/BackgroundProcesses/TermConversionProcess.php:91
msgid "Term slugs conversion completed."
msgstr "Конвертация ярлыков терминов завершена."
#: src/php/BackgroundProcesses/TermConversionProcess.php:75
msgid "Term slug converted:"
msgstr "Ярлык термина сконвертирован:"
#: src/php/Settings/PluginSettingsBase.php:37
#: src/php/Settings/PluginSettingsBase.php:158
msgid "Cyr To Lat"
msgstr "Cyr To Lat"
#: src/php/Settings/Converter.php:176
msgid "Convert Existing Slugs"
msgstr "Конвертировать существующие ярлыки"
#: src/php/Settings/PluginSettingsBase.php:118
msgid "Settings"
msgstr "Настройки"
#: src/php/Settings/PluginSettingsBase.php:109
msgid "View Cyr To Lat settings"
msgstr "Посмотреть настройки Cyr To Lat"
#. Author URI of the plugin
#: cyr-to-lat.php
msgid "https://profiles.wordpress.org/sergeybiryukov/"
msgstr "https://profiles.wordpress.org/sergeybiryukov/"
#. Author of the plugin
#: cyr-to-lat.php
msgid "Sergey Biryukov, Mikhail Kobzarev, Igor Gergel"
msgstr "Сергей Бирюков, Михаил Кобзарёв, Игорь Гергель"
#. Description of the plugin
#: cyr-to-lat.php
msgid "Convert Non-Latin characters in post and term slugs to Latin characters. Useful for creating human-readable URLs. Based on the original plugin by Anton Skorobogatov."
msgstr "Преобразует не-латинские символы в ярлыках записей, страниц и рубрик в латинские. Полезно для создания человекопонятных URL (ЧПУ). Основано на оригинальном плагине Rus-To-Lat от Антона Скоробогатова."
#. Plugin Name of the plugin
#: cyr-to-lat.php
msgid "Cyr-To-Lat"
msgstr "Cyr-To-Lat"

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1 @@
{"translation-revision-date":"2026-02-02 10:19:51+0000","generator":"GlotPress\/4.0.3","domain":"messages","locale_data":{"messages":{"":{"domain":"messages","plural-forms":"nplurals=3; plural=(n % 10 == 1 && n % 100 != 11) ? 0 : ((n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 12 || n % 100 > 14)) ? 1 : 2);","lang":"ru"},"Class name is too long. Please keep it under 50 characters.":["\u041d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u043a\u043b\u0430\u0441\u0441\u0430 \u0441\u043b\u0438\u0448\u043a\u043e\u043c \u0434\u043b\u0438\u043d\u043d\u043e\u0435. \u041f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430, \u043d\u0435 \u043f\u0440\u0435\u0432\u044b\u0448\u0430\u0439\u0442\u0435 50 \u0441\u0438\u043c\u0432\u043e\u043b\u043e\u0432."],"Class name is too short. Use at least 2 characters.":["\u041d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u043a\u043b\u0430\u0441\u0441\u0430 \u0441\u043b\u0438\u0448\u043a\u043e\u043c \u043a\u043e\u0440\u043e\u0442\u043a\u043e\u0435. \u0418\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0439\u0442\u0435 \u043d\u0435 \u043c\u0435\u043d\u0435\u0435 2 \u0441\u0438\u043c\u0432\u043e\u043b\u043e\u0432."],"Class names can only use letters, numbers, dashes (-), and underscores (_).":["\u0412 \u0438\u043c\u0435\u043d\u0430\u0445 \u043a\u043b\u0430\u0441\u0441\u043e\u0432 \u043c\u043e\u0433\u0443\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u0431\u0443\u043a\u0432\u044b, \u0446\u0438\u0444\u0440\u044b, \u0442\u0438\u0440\u0435 (-) \u0438 \u0441\u0438\u043c\u0432\u043e\u043b\u044b \u043f\u043e\u0434\u0447\u0435\u0440\u043a\u0438\u0432\u0430\u043d\u0438\u044f (_)."],"Class names can\u2019t contain spaces.":["\u0418\u043c\u0435\u043d\u0430 \u043a\u043b\u0430\u0441\u0441\u043e\u0432 \u043d\u0435 \u043c\u043e\u0433\u0443\u0442 \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0442\u044c \u043f\u0440\u043e\u0431\u0435\u043b\u043e\u0432."],"Class names can\u2019t start with a hyphen followed by a number.":["\u041d\u0430\u0437\u0432\u0430\u043d\u0438\u044f \u043a\u043b\u0430\u0441\u0441\u043e\u0432 \u043d\u0435 \u043c\u043e\u0433\u0443\u0442 \u043d\u0430\u0447\u0438\u043d\u0430\u0442\u044c\u0441\u044f \u0441 \u0434\u0435\u0444\u0438\u0441\u0430, \u0437\u0430 \u043a\u043e\u0442\u043e\u0440\u044b\u043c \u0441\u043b\u0435\u0434\u0443\u0435\u0442 \u0446\u0438\u0444\u0440\u0430."],"Class names must start with a letter.":["\u041d\u0430\u0437\u0432\u0430\u043d\u0438\u044f \u043a\u043b\u0430\u0441\u0441\u043e\u0432 \u0434\u043e\u043b\u0436\u043d\u044b \u043d\u0430\u0447\u0438\u043d\u0430\u0442\u044c\u0441\u044f \u0441 \u0431\u0443\u043a\u0432\u044b."],"Double hyphens are reserved for custom properties.":["\u0414\u0432\u043e\u0439\u043d\u044b\u0435 \u0434\u0435\u0444\u0438\u0441\u044b \u0437\u0430\u0440\u0435\u0437\u0435\u0440\u0432\u0438\u0440\u043e\u0432\u0430\u043d\u044b \u0434\u043b\u044f \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u0441\u043a\u0438\u0445 \u0441\u0432\u043e\u0439\u0441\u0442\u0432."],"This class name already exists. Please choose a unique name.":["\u042d\u0442\u043e \u0438\u043c\u044f \u043a\u043b\u0430\u0441\u0441\u0430 \u0443\u0436\u0435 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442. \u041f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430, \u0432\u044b\u0431\u0435\u0440\u0438\u0442\u0435 \u0443\u043d\u0438\u043a\u0430\u043b\u044c\u043d\u043e\u0435 \u0438\u043c\u044f."],"This name is reserved and can\u2019t be used. Try something more specific.":["\u042d\u0442\u043e \u0438\u043c\u044f \u0437\u0430\u0440\u0435\u0437\u0435\u0440\u0432\u0438\u0440\u043e\u0432\u0430\u043d\u043e \u0438 \u043d\u0435 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u043e. \u041f\u043e\u043f\u0440\u043e\u0431\u0443\u0439\u0442\u0435 \u0447\u0442\u043e-\u043d\u0438\u0431\u0443\u0434\u044c \u0431\u043e\u043b\u0435\u0435 \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u043e\u0435."]}},"comment":{"reference":"assets\/js\/packages\/editor-styles-repository\/editor-styles-repository.strings.js"}}

View File

@@ -0,0 +1 @@
{"translation-revision-date":"2026-02-02 10:19:51+0000","generator":"GlotPress\/4.0.3","domain":"messages","locale_data":{"messages":{"":{"domain":"messages","plural-forms":"nplurals=3; plural=(n % 10 == 1 && n % 100 != 11) ? 0 : ((n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 12 || n % 100 > 14)) ? 1 : 2);","lang":"ru"},"Desktop":["\u041a\u043e\u043c\u043f\u044c\u044e\u0442\u0435\u0440"]}},"comment":{"reference":"assets\/js\/packages\/editor-responsive\/editor-responsive.strings.js"}}

View File

@@ -0,0 +1 @@
{"translation-revision-date":"2026-02-02 10:19:51+0000","generator":"GlotPress\/4.0.3","domain":"messages","locale_data":{"messages":{"":{"domain":"messages","plural-forms":"nplurals=3; plural=(n % 10 == 1 && n % 100 != 11) ? 0 : ((n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 12 || n % 100 > 14)) ? 1 : 2);","lang":"ru"},"Notes":["\u041f\u0440\u0438\u043c\u0435\u0447\u0430\u043d\u0438\u044f"],"With Notes, teamwork gets even better. Stay in sync with comments, feedback & more on your website.":["\u0421 \u043f\u043e\u043c\u043e\u0449\u044c\u044e Notes \u0440\u0430\u0431\u043e\u0442\u0430 \u0432 \u043a\u043e\u043c\u0430\u043d\u0434\u0435 \u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u0441\u044f \u0435\u0449\u0435 \u044d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u0435\u0435. \u041e\u0431\u0435\u0441\u043f\u0435\u0447\u044c\u0442\u0435 \u043f\u043e\u0441\u0442\u043e\u044f\u043d\u043d\u0443\u044e \u0441\u0438\u043d\u0445\u0440\u043e\u043d\u0438\u0437\u0430\u0446\u0438\u044e \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u0435\u0432, \u043e\u0442\u0437\u044b\u0432\u043e\u0432 \u0438 \u043f\u0440\u043e\u0447\u0435\u0433\u043e \u043d\u0430 \u0432\u0430\u0448\u0435\u043c \u0441\u0430\u0439\u0442\u0435."],"Upgrade":["\u041e\u0431\u043d\u043e\u0432\u0438\u0442\u044c"],"Connect & Activate":["\u041f\u043e\u0434\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u0438 \u0430\u043a\u0442\u0438\u0432\u0438\u0440\u043e\u0432\u0430\u0442\u044c"]}},"comment":{"reference":"assets\/js\/notes.strings.js"}}

View File

@@ -0,0 +1 @@
{"translation-revision-date":"2026-02-02 10:19:51+0000","generator":"GlotPress\/4.0.3","domain":"messages","locale_data":{"messages":{"":{"domain":"messages","plural-forms":"nplurals=3; plural=(n % 10 == 1 && n % 100 != 11) ? 0 : ((n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 12 || n % 100 > 14)) ? 1 : 2);","lang":"ru"},"Atomic Elements":["\u0410\u0442\u043e\u043c\u043d\u044b\u0435 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b"],"Learn more":["\u0423\u0437\u043d\u0430\u0442\u044c \u0431\u043e\u043b\u044c\u0448\u0435"]}},"comment":{"reference":"assets\/js\/editor-v4-opt-in-alphachip.strings.js"}}

View File

@@ -0,0 +1 @@
{"translation-revision-date":"2026-02-02 10:19:51+0000","generator":"GlotPress\/4.0.3","domain":"messages","locale_data":{"messages":{"":{"domain":"messages","plural-forms":"nplurals=3; plural=(n % 10 == 1 && n % 100 != 11) ? 0 : ((n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 12 || n % 100 > 14)) ? 1 : 2);","lang":"ru"},"Your Feedback":["\u0412\u0430\u0448 \u043e\u0442\u0437\u044b\u0432"],"Help Center":["\u0426\u0435\u043d\u0442\u0440 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0438"],"We\u2019ve fine-tuned the Top Bar to make navigation faster and smoother.":["\u041c\u044b \u0434\u043e\u0440\u0430\u0431\u043e\u0442\u0430\u043b\u0438 \u0432\u0435\u0440\u0445\u043d\u044e\u044e \u043f\u0430\u043d\u0435\u043b\u044c, \u0447\u0442\u043e\u0431\u044b \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u043d\u0430\u0432\u0438\u0433\u0430\u0446\u0438\u044e \u0431\u044b\u0441\u0442\u0440\u0435\u0435 \u0438 \u043f\u043b\u0430\u0432\u043d\u0435\u0435."],"Copy and Share":["\u041a\u043e\u043f\u0438\u0440\u0443\u0439\u0442\u0435 \u0438 \u0434\u0435\u043b\u0438\u0442\u0435\u0441\u044c"],"Exit to WordPress":["\u0412\u044b\u0445\u043e\u0434 \u0432 WordPress"],"%s (up to %dpx)":["%s (\u0434\u043e %dpx)"],"%s (%dpx and up)":["%s (%dpx \u0438 \u0432\u044b\u0448\u0435)"],"Switch Device":["\u0421\u043c\u0435\u043d\u0438\u0442\u044c \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e"],"Elementor Logo":["\u041b\u043e\u0433\u043e\u0442\u0438\u043f Elementor"],"Got it":["\u041f\u043e\u043d\u044f\u0442\u043d\u043e"],"My Elementor":["\u041c\u043e\u0439 Elementor"],"Save Changes":["\u0421\u043e\u0445\u0440\u0430\u043d\u0438\u0442\u044c \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f"],"Site Settings":["\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u0441\u0430\u0439\u0442\u0430"],"User Preferences":["\u041f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u0441\u043a\u0438\u0435 \u043f\u0440\u0435\u0434\u043f\u043e\u0447\u0442\u0435\u043d\u0438\u044f"],"More":["\u0411\u043e\u043b\u044c\u0448\u0435"],"Add Element":["\u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u044d\u043b\u0435\u043c\u0435\u043d\u0442"],"Theme Builder":["\u041a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0442\u043e\u0440 \u0442\u0435\u043c"],"Keyboard Shortcuts":["\u0413\u043e\u0440\u044f\u0447\u0438\u0435 \u043a\u043b\u0430\u0432\u0438\u0448\u0438"],"Connect to Elementor":["\u041f\u043e\u0434\u043a\u043b\u044e\u0447\u0438\u0442\u044c\u0441\u044f \u043a Elementor"],"Finder":["\u041f\u043e\u0438\u0441\u043a"],"%s Settings":["\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 %s"],"Submit":["\u041e\u0442\u043f\u0440\u0430\u0432\u0438\u0442\u044c"],"Save as Template":["\u0421\u043e\u0445\u0440\u0430\u043d\u0438\u0442\u044c \u043a\u0430\u043a \u0448\u0430\u0431\u043b\u043e\u043d"],"Save Options":["\u0421\u043e\u0445\u0440\u0430\u043d\u0438\u0442\u044c \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438"],"Publish":["\u041e\u043f\u0443\u0431\u043b\u0438\u043a\u043e\u0432\u0430\u0442\u044c"],"Preview Changes":["\u041f\u0440\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f"],"Document Settings":["\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430"],"Save Draft":["\u0421\u043e\u0445\u0440\u0430\u043d\u0438\u0442\u044c \u0447\u0435\u0440\u043d\u043e\u0432\u0438\u043a"],"History":["\u0418\u0441\u0442\u043e\u0440\u0438\u044f"],"Integrations":["\u0418\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u0438"],"Widgets":["\u0412\u0438\u0434\u0436\u0435\u0442\u044b"],"Learn More":["\u0423\u0437\u043d\u0430\u0442\u044c \u0431\u043e\u043b\u044c\u0448\u0435"],"Elements":["\u042d\u043b\u0435\u043c\u0435\u043d\u0442\u044b"],"Structure":["\u0421\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430"],"View Page":["\u041f\u0440\u043e\u0441\u043c\u043e\u0442\u0440 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u044b"]}},"comment":{"reference":"assets\/js\/packages\/editor-app-bar\/editor-app-bar.strings.js"}}

View File

@@ -0,0 +1 @@
{"translation-revision-date":"2026-02-02 10:19:51+0000","generator":"GlotPress\/4.0.3","domain":"messages","locale_data":{"messages":{"":{"domain":"messages","plural-forms":"nplurals=3; plural=(n % 10 == 1 && n % 100 != 11) ? 0 : ((n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 12 || n % 100 > 14)) ? 1 : 2);","lang":"ru"},"Name your page":["\u041d\u0430\u0437\u043e\u0432\u0438\u0442\u0435 \u0441\u0432\u043e\u044e \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0443"],"or rename it later.":["\u0438\u043b\u0438 \u043f\u0435\u0440\u0435\u0438\u043c\u0435\u043d\u0443\u0439\u0442\u0435 \u0435\u0433\u043e \u043f\u043e\u0437\u0436\u0435."],"To proceed, please name your first page,":["\u0427\u0442\u043e\u0431\u044b \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0438\u0442\u044c, \u043d\u0430\u0437\u043e\u0432\u0438\u0442\u0435 \u0441\u0432\u043e\u044e \u043f\u0435\u0440\u0432\u0443\u044e \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0443,"],"New Page":["\u041d\u043e\u0432\u0430\u044f \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0430"],"Save":["\u0421\u043e\u0445\u0440\u0430\u043d\u0438\u0442\u044c"],"Cancel":["\u041e\u0442\u043c\u0435\u043d\u0438\u0442\u044c"]}},"comment":{"reference":"assets\/js\/e-home-screen.strings.js"}}

View File

@@ -0,0 +1 @@
{"translation-revision-date":"2026-02-02 10:19:51+0000","generator":"GlotPress\/4.0.3","domain":"messages","locale_data":{"messages":{"":{"domain":"messages","plural-forms":"nplurals=3; plural=(n % 10 == 1 && n % 100 != 11) ? 0 : ((n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 12 || n % 100 > 14)) ? 1 : 2);","lang":"ru"},"An error occurred while reverting the kit. Please try again.":["\u041f\u0440\u0438 \u0432\u043e\u0441\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0438 \u043d\u0430\u0431\u043e\u0440\u0430 \u043f\u0440\u043e\u0438\u0437\u043e\u0448\u043b\u0430 \u043e\u0448\u0438\u0431\u043a\u0430. \u041f\u043e\u0432\u0442\u043e\u0440\u0438\u0442\u0435 \u043f\u043e\u043f\u044b\u0442\u043a\u0443."],"Try a different Website Template or build your site from scratch.":["\u041f\u043e\u043f\u0440\u043e\u0431\u0443\u0439\u0442\u0435 \u0434\u0440\u0443\u0433\u043e\u0439 \u0448\u0430\u0431\u043b\u043e\u043d \u0432\u0435\u0431-\u0441\u0430\u0439\u0442\u0430 \u0438\u043b\u0438 \u0441\u043e\u0437\u0434\u0430\u0439\u0442\u0435 \u0441\u0432\u043e\u0439 \u0441\u0430\u0439\u0442 \u0441 \u043d\u0443\u043b\u044f."],"Are you sure?":["\u0423\u0432\u0435\u0440\u0435\u043d\u044b \u043b\u0438 \u0432\u044b?"],"OK":["Ok"],"Your Kit":["\u0412\u0430\u0448 \u043d\u0430\u0431\u043e\u0440"],"You're ready to apply a new Kit!":["\u0412\u044b \u0433\u043e\u0442\u043e\u0432\u044b \u043f\u0440\u0438\u043c\u0435\u043d\u0438\u0442\u044c \u043d\u043e\u0432\u044b\u0439 \u041d\u0430\u0431\u043e\u0440!"],"Continue to new Kit":["\u041f\u0435\u0440\u0435\u0439\u0442\u0438 \u043a \u043d\u043e\u0432\u043e\u043c\u0443 \u043d\u0430\u0431\u043e\u0440\u0443"],"%s was successfully deleted":["%s \u0431\u044b\u043b \u0443\u0441\u043f\u0435\u0448\u043d\u043e \u0443\u0434\u0430\u043b\u0451\u043d"],"Close":["\u0417\u0430\u043a\u0440\u044b\u0442\u044c"],"Library":["\u0411\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430"],"Delete":["\u0423\u0434\u0430\u043b\u0438\u0442\u044c"],"Cancel":["\u041e\u0442\u043c\u0435\u043d\u0438\u0442\u044c"]}},"comment":{"reference":"assets\/js\/import-export-customization-admin.js"}}

View File

@@ -0,0 +1 @@
{"translation-revision-date":"2026-02-02 10:19:51+0000","generator":"GlotPress\/4.0.3","domain":"messages","locale_data":{"messages":{"":{"domain":"messages","plural-forms":"nplurals=3; plural=(n % 10 == 1 && n % 100 != 11) ? 0 : ((n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 12 || n % 100 > 14)) ? 1 : 2);","lang":"ru"},"What's New":["\u0427\u0442\u043e \u043d\u043e\u0432\u043e\u0433\u043e"]}},"comment":{"reference":"assets\/js\/editor-notifications.js"}}

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1 @@
{"translation-revision-date":"2026-02-02 10:19:51+0000","generator":"GlotPress\/4.0.3","domain":"messages","locale_data":{"messages":{"":{"domain":"messages","plural-forms":"nplurals=3; plural=(n % 10 == 1 && n % 100 != 11) ? 0 : ((n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 12 || n % 100 > 14)) ? 1 : 2);","lang":"ru"},"Click the launch icon to continue setting up your site.":["\u041d\u0430\u0436\u043c\u0438\u0442\u0435 \u043d\u0430 \u0437\u043d\u0430\u0447\u043e\u043a \u0437\u0430\u043f\u0443\u0441\u043a\u0430, \u0447\u0442\u043e\u0431\u044b \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0438\u0442\u044c \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0443 \u0441\u0430\u0439\u0442\u0430."],"Looking for your Launchpad Checklist?":["\u0418\u0449\u0435\u0442\u0435 \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u044c\u043d\u044b\u0439 \u0441\u043f\u0438\u0441\u043e\u043a \u0434\u043b\u044f Launchpad?"],"Unmark as done":["\u0421\u043d\u044f\u0442\u044c \u0432\u044b\u0434\u0435\u043b\u0435\u043d\u0438\u0435"],"With these steps, you've got a great base for a robust website. Enjoy your web creation journey!":["\u0412\u044b\u043f\u043e\u043b\u043d\u0438\u0432 \u044d\u0442\u0438 \u0448\u0430\u0433\u0438, \u0432\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u0435 \u043e\u0442\u043b\u0438\u0447\u043d\u0443\u044e \u043e\u0441\u043d\u043e\u0432\u0443 \u0434\u043b\u044f \u043d\u0430\u0434\u0435\u0436\u043d\u043e\u0433\u043e \u0441\u0430\u0439\u0442\u0430. \u041d\u0430\u0441\u043b\u0430\u0436\u0434\u0430\u0439\u0442\u0435\u0441\u044c \u0441\u0432\u043e\u0438\u043c \u043f\u0443\u0442\u0435\u0448\u0435\u0441\u0442\u0432\u0438\u0435\u043c \u043f\u043e \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044e \u0441\u0430\u0439\u0442\u043e\u0432!"],"You're on your way!":["\u0412\u044b \u0443\u0436\u0435 \u0432 \u043f\u0443\u0442\u0438!"],"Checklist":["\u041a\u043e\u043d\u0442\u0440\u043e\u043b\u044c\u043d\u044b\u0439 \u0441\u043f\u0438\u0441\u043e\u043a"],"Let's make a productivity boost":["\u0414\u0430\u0432\u0430\u0439\u0442\u0435 \u043f\u043e\u0432\u044b\u0441\u0438\u043c \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c"],"Mark as done":["\u041e\u0442\u043c\u0435\u0447\u0435\u043d\u043e \u043a\u0430\u043a \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043d\u043d\u043e\u0435"],"Upgrade Now":["\u041e\u0431\u043d\u043e\u0432\u0438\u0442\u044c \u0441\u0435\u0439\u0447\u0430\u0441"],"Got it":["\u041f\u043e\u043d\u044f\u0442\u043d\u043e"]}},"comment":{"reference":"assets\/js\/checklist.strings.js"}}

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1 @@
{"translation-revision-date":"2026-02-02 10:19:51+0000","generator":"GlotPress\/4.0.3","domain":"messages","locale_data":{"messages":{"":{"domain":"messages","plural-forms":"nplurals=3; plural=(n % 10 == 1 && n % 100 != 11) ? 0 : ((n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 12 || n % 100 > 14)) ? 1 : 2);","lang":"ru"},"Add new group":["\u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u043d\u043e\u0432\u0443\u044e \u0433\u0440\u0443\u043f\u043f\u0443"],"Close panel":["\u0417\u0430\u043a\u0440\u044b\u0442\u044c \u043f\u0430\u043d\u0435\u043b\u044c"],"Group Name":["\u041d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u0433\u0440\u0443\u043f\u043f\u044b"],"You can wait for them to finish or reach out to coordinate your changes together.":["\u0412\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u0434\u043e\u0436\u0434\u0430\u0442\u044c\u0441\u044f, \u043f\u043e\u043a\u0430 \u043e\u043d\u0438 \u0437\u0430\u043a\u043e\u043d\u0447\u0430\u0442, \u0438\u043b\u0438 \u0441\u0432\u044f\u0437\u0430\u0442\u044c\u0441\u044f \u0441 \u043d\u0438\u043c\u0438, \u0447\u0442\u043e\u0431\u044b \u0441\u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f."],"Edit Component":["\u0420\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442"],"Components":["\u041a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u044b"],"Clear & try again":["\u041e\u0447\u0438\u0441\u0442\u0438\u0442\u0435 \u0438 \u043f\u043e\u043f\u0440\u043e\u0431\u0443\u0439\u0442\u0435 \u0441\u043d\u043e\u0432\u0430"],"Try something else.":["\u041f\u043e\u043f\u0440\u043e\u0431\u0443\u0439\u0442\u0435 \u0447\u0442\u043e-\u043d\u0438\u0431\u0443\u0434\u044c \u0434\u0440\u0443\u0433\u043e\u0435."],"Sorry, nothing matched":["\u0418\u0437\u0432\u0438\u043d\u0438\u0442\u0435, \u043d\u0438\u0447\u0435\u0433\u043e \u043d\u0435 \u0441\u043e\u0432\u043f\u0430\u043b\u043e"],"Rename":["\u041f\u0435\u0440\u0435\u0438\u043c\u0435\u043d\u043e\u0432\u0430\u0442\u044c"],"Got it":["\u041f\u043e\u043d\u044f\u0442\u043d\u043e"],"Something went wrong":["\u0427\u0442\u043e-\u0442\u043e \u043f\u043e\u0448\u043b\u043e \u043d\u0435 \u0442\u0430\u043a"],"Learn more":["\u0423\u0437\u043d\u0430\u0442\u044c \u0431\u043e\u043b\u044c\u0448\u0435"],"Back":["\u041d\u0430\u0437\u0430\u0434"],"Create":["\u0421\u043e\u0437\u0434\u0430\u0442\u044c"],"Search":["\u041f\u043e\u0438\u0441\u043a"],"Update":["\u041e\u0431\u043d\u043e\u0432\u0438\u0442\u044c"],"Edit %s":["\u0420\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c %s"],"Close":["\u0417\u0430\u043a\u0440\u044b\u0442\u044c"],"Delete":["\u0423\u0434\u0430\u043b\u0438\u0442\u044c"],"Default":["\u041f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e"],"Name":["\u0418\u043c\u044f"],"Cancel":["\u041e\u0442\u043c\u0435\u043d\u0438\u0442\u044c"]}},"comment":{"reference":"assets\/js\/packages\/editor-components\/editor-components.js"}}

View File

@@ -0,0 +1 @@
{"translation-revision-date":"2026-02-02 10:19:51+0000","generator":"GlotPress\/4.0.3","domain":"messages","locale_data":{"messages":{"":{"domain":"messages","plural-forms":"nplurals=3; plural=(n % 10 == 1 && n % 100 != 11) ? 0 : ((n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 12 || n % 100 > 14)) ? 1 : 2);","lang":"ru"},"Edit \"%s\" with Elementor":["\u0420\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \"%s\" \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e Elementor"]}},"comment":{"reference":"assets\/js\/packages\/editor-documents\/editor-documents.js"}}

View File

@@ -0,0 +1 @@
{"translation-revision-date":"2026-02-02 10:19:51+0000","generator":"GlotPress\/4.0.3","domain":"messages","locale_data":{"messages":{"":{"domain":"messages","plural-forms":"nplurals=3; plural=(n % 10 == 1 && n % 100 != 11) ? 0 : ((n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 12 || n % 100 > 14)) ? 1 : 2);","lang":"ru"},"Class name is too long. Please keep it under 50 characters.":["\u041d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u043a\u043b\u0430\u0441\u0441\u0430 \u0441\u043b\u0438\u0448\u043a\u043e\u043c \u0434\u043b\u0438\u043d\u043d\u043e\u0435. \u041f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430, \u043d\u0435 \u043f\u0440\u0435\u0432\u044b\u0448\u0430\u0439\u0442\u0435 50 \u0441\u0438\u043c\u0432\u043e\u043b\u043e\u0432."],"Class name is too short. Use at least 2 characters.":["\u041d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u043a\u043b\u0430\u0441\u0441\u0430 \u0441\u043b\u0438\u0448\u043a\u043e\u043c \u043a\u043e\u0440\u043e\u0442\u043a\u043e\u0435. \u0418\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0439\u0442\u0435 \u043d\u0435 \u043c\u0435\u043d\u0435\u0435 2 \u0441\u0438\u043c\u0432\u043e\u043b\u043e\u0432."],"Class names can only use letters, numbers, dashes (-), and underscores (_).":["\u0412 \u0438\u043c\u0435\u043d\u0430\u0445 \u043a\u043b\u0430\u0441\u0441\u043e\u0432 \u043c\u043e\u0433\u0443\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u0431\u0443\u043a\u0432\u044b, \u0446\u0438\u0444\u0440\u044b, \u0442\u0438\u0440\u0435 (-) \u0438 \u0441\u0438\u043c\u0432\u043e\u043b\u044b \u043f\u043e\u0434\u0447\u0435\u0440\u043a\u0438\u0432\u0430\u043d\u0438\u044f (_)."],"Class names can\u2019t contain spaces.":["\u0418\u043c\u0435\u043d\u0430 \u043a\u043b\u0430\u0441\u0441\u043e\u0432 \u043d\u0435 \u043c\u043e\u0433\u0443\u0442 \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0442\u044c \u043f\u0440\u043e\u0431\u0435\u043b\u043e\u0432."],"Class names can\u2019t start with a hyphen followed by a number.":["\u041d\u0430\u0437\u0432\u0430\u043d\u0438\u044f \u043a\u043b\u0430\u0441\u0441\u043e\u0432 \u043d\u0435 \u043c\u043e\u0433\u0443\u0442 \u043d\u0430\u0447\u0438\u043d\u0430\u0442\u044c\u0441\u044f \u0441 \u0434\u0435\u0444\u0438\u0441\u0430, \u0437\u0430 \u043a\u043e\u0442\u043e\u0440\u044b\u043c \u0441\u043b\u0435\u0434\u0443\u0435\u0442 \u0446\u0438\u0444\u0440\u0430."],"Class names must start with a letter.":["\u041d\u0430\u0437\u0432\u0430\u043d\u0438\u044f \u043a\u043b\u0430\u0441\u0441\u043e\u0432 \u0434\u043e\u043b\u0436\u043d\u044b \u043d\u0430\u0447\u0438\u043d\u0430\u0442\u044c\u0441\u044f \u0441 \u0431\u0443\u043a\u0432\u044b."],"Double hyphens are reserved for custom properties.":["\u0414\u0432\u043e\u0439\u043d\u044b\u0435 \u0434\u0435\u0444\u0438\u0441\u044b \u0437\u0430\u0440\u0435\u0437\u0435\u0440\u0432\u0438\u0440\u043e\u0432\u0430\u043d\u044b \u0434\u043b\u044f \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u0441\u043a\u0438\u0445 \u0441\u0432\u043e\u0439\u0441\u0442\u0432."],"This class name already exists. Please choose a unique name.":["\u042d\u0442\u043e \u0438\u043c\u044f \u043a\u043b\u0430\u0441\u0441\u0430 \u0443\u0436\u0435 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442. \u041f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430, \u0432\u044b\u0431\u0435\u0440\u0438\u0442\u0435 \u0443\u043d\u0438\u043a\u0430\u043b\u044c\u043d\u043e\u0435 \u0438\u043c\u044f."],"This name is reserved and can\u2019t be used. Try something more specific.":["\u042d\u0442\u043e \u0438\u043c\u044f \u0437\u0430\u0440\u0435\u0437\u0435\u0440\u0432\u0438\u0440\u043e\u0432\u0430\u043d\u043e \u0438 \u043d\u0435 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u043e. \u041f\u043e\u043f\u0440\u043e\u0431\u0443\u0439\u0442\u0435 \u0447\u0442\u043e-\u043d\u0438\u0431\u0443\u0434\u044c \u0431\u043e\u043b\u0435\u0435 \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u043e\u0435."]}},"comment":{"reference":"assets\/js\/packages\/editor-styles-repository\/editor-styles-repository.js"}}

View File

@@ -0,0 +1 @@
{"translation-revision-date":"2026-02-02 10:19:51+0000","generator":"GlotPress\/4.0.3","domain":"messages","locale_data":{"messages":{"":{"domain":"messages","plural-forms":"nplurals=3; plural=(n % 10 == 1 && n % 100 != 11) ? 0 : ((n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 12 || n % 100 > 14)) ? 1 : 2);","lang":"ru"},"New Template":["\u041d\u043e\u0432\u044b\u0439 \u0448\u0430\u0431\u043b\u043e\u043d"]}},"comment":{"reference":"assets\/js\/new-template.js"}}

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1 @@
{"translation-revision-date":"2026-02-02 10:19:51+0000","generator":"GlotPress\/4.0.3","domain":"messages","locale_data":{"messages":{"":{"domain":"messages","plural-forms":"nplurals=3; plural=(n % 10 == 1 && n % 100 != 11) ? 0 : ((n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 12 || n % 100 > 14)) ? 1 : 2);","lang":"ru"},"Save as a template":["\u0421\u043e\u0445\u0440\u0430\u043d\u0438\u0442\u044c \u043a\u0430\u043a \u0448\u0430\u0431\u043b\u043e\u043d"],"Delete %s":["\u0423\u0434\u0430\u043b\u0438\u0442\u044c %s"],"New":["\u041d\u043e\u0432\u044b\u0435"],"Duplicate %s":["\u0414\u0443\u0431\u043b\u0438\u0440\u043e\u0432\u0430\u0442\u044c %s"],"Edit %s":["\u0420\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c %s"],"Add %s":["\u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c %s"]}},"comment":{"reference":"assets\/js\/atomic-widgets-editor.strings.js"}}

View File

@@ -0,0 +1 @@
{"translation-revision-date":"2026-02-02 10:19:51+0000","generator":"GlotPress\/4.0.3","domain":"messages","locale_data":{"messages":{"":{"domain":"messages","plural-forms":"nplurals=3; plural=(n % 10 == 1 && n % 100 != 11) ? 0 : ((n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 12 || n % 100 > 14)) ? 1 : 2);","lang":"ru"},"Add-ons":["\u0414\u043e\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f"],"What's New":["\u0427\u0442\u043e \u043d\u043e\u0432\u043e\u0433\u043e"],"Search or do anything in Elementor":["\u0418\u0449\u0438\u0442\u0435 \u0438\u043b\u0438 \u0434\u0435\u043b\u0430\u0439\u0442\u0435 \u0447\u0442\u043e \u0443\u0433\u043e\u0434\u043d\u043e \u0432 Elementor"],"My Elementor":["\u041c\u043e\u0439 Elementor"],"Connect Account":["\u041f\u043e\u0434\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u0443\u0447\u0451\u0442\u043d\u0443\u044e \u0437\u0430\u043f\u0438\u0441\u044c"],"Connect your account to get access to Elementor's Template Library & more.":["\u041f\u043e\u0434\u043a\u043b\u044e\u0447\u0438\u0442\u0435 \u0441\u0432\u043e\u044e \u0443\u0447\u0451\u0442\u043d\u0443\u044e \u0437\u0430\u043f\u0438\u0441\u044c, \u0447\u0442\u043e\u0431\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0434\u043e\u0441\u0442\u0443\u043f \u043a \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0435 \u0448\u0430\u0431\u043b\u043e\u043d\u043e\u0432 Elementor \u0438 \u043c\u043d\u043e\u0433\u043e\u043c\u0443 \u0434\u0440\u0443\u0433\u043e\u043c\u0443."],"Finder":["\u041f\u043e\u0438\u0441\u043a"]}},"comment":{"reference":"assets\/js\/admin-top-bar.js"}}

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1 @@
{"translation-revision-date":"2026-02-02 10:19:51+0000","generator":"GlotPress\/4.0.3","domain":"messages","locale_data":{"messages":{"":{"domain":"messages","plural-forms":"nplurals=3; plural=(n % 10 == 1 && n % 100 != 11) ? 0 : ((n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 12 || n % 100 > 14)) ? 1 : 2);","lang":"ru"},"%s edited":["%s \u043e\u0442\u0440\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d"],"To drag a link to this element, first remove the link from it's parent container.":["\u0427\u0442\u043e\u0431\u044b \u043f\u0435\u0440\u0435\u0442\u0430\u0449\u0438\u0442\u044c \u0441\u0441\u044b\u043b\u043a\u0443 \u043d\u0430 \u044d\u0442\u043e\u0442 \u044d\u043b\u0435\u043c\u0435\u043d\u0442, \u0441\u043d\u0430\u0447\u0430\u043b\u0430 \u0443\u0434\u0430\u043b\u0438\u0442\u0435 \u0441\u0441\u044b\u043b\u043a\u0443 \u0438\u0437 \u0435\u0435 \u0440\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u0441\u043a\u043e\u0433\u043e \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0430."],"To paste a link to this element, first remove the link from it's parent container.":["\u0427\u0442\u043e\u0431\u044b \u0432\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0441\u0441\u044b\u043b\u043a\u0443 \u0432 \u044d\u0442\u043e\u0442 \u044d\u043b\u0435\u043c\u0435\u043d\u0442, \u0441\u043d\u0430\u0447\u0430\u043b\u0430 \u0443\u0434\u0430\u043b\u0438\u0442\u0435 \u0441\u0441\u044b\u043b\u043a\u0443 \u0438\u0437 \u0435\u0435 \u0440\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u0441\u043a\u043e\u0433\u043e \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0430."],"Style Reset":["\u0421\u0442\u0438\u043b\u044c \u0441\u0431\u0440\u043e\u0448\u0435\u043d"],"Style Pasted":["\u0421\u0442\u0438\u043b\u044c \u0432\u0441\u0442\u0430\u0432\u043b\u0435\u043d"],"Elements":["\u042d\u043b\u0435\u043c\u0435\u043d\u0442\u044b"]}},"comment":{"reference":"assets\/js\/packages\/editor-canvas\/editor-canvas.strings.js"}}

View File

@@ -0,0 +1 @@
{"translation-revision-date":"2026-02-02 10:19:51+0000","generator":"GlotPress\/4.0.3","domain":"messages","locale_data":{"messages":{"":{"domain":"messages","plural-forms":"nplurals=3; plural=(n % 10 == 1 && n % 100 != 11) ? 0 : ((n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 12 || n % 100 > 14)) ? 1 : 2);","lang":"ru"},"The value inserted isn't in the breakpoint boundaries":["\u0412\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u043d\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043d\u0435 \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u0432 \u0433\u0440\u0430\u043d\u0438\u0446\u0430\u0445 \u0431\u0440\u0435\u0439\u043a\u043f\u043e\u0438\u043d\u0442\u0430"]}},"comment":{"reference":"assets\/js\/responsive-bar.js"}}

View File

@@ -0,0 +1 @@
{"translation-revision-date":"2026-02-02 10:19:51+0000","generator":"GlotPress\/4.0.3","domain":"messages","locale_data":{"messages":{"":{"domain":"messages","plural-forms":"nplurals=3; plural=(n % 10 == 1 && n % 100 != 11) ? 0 : ((n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 12 || n % 100 > 14)) ? 1 : 2);","lang":"ru"},"New Floating Elements":["\u041d\u043e\u0432\u044b\u0435 \u043f\u043b\u0430\u0432\u0430\u044e\u0449\u0438\u0435 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b"],"Importing...":["\u0418\u043c\u043f\u043e\u0440\u0442..."],"Migrate to v3.0":["\u041f\u0435\u0440\u0435\u0445\u043e\u0434 \u043d\u0430 \u0432\u0435\u0440\u0441\u0438\u044e 3.0"],"Please note that this process will revert all changes made to Global Colors and Fonts since upgrading to v3.x.":["\u041e\u0431\u0440\u0430\u0442\u0438\u0442\u0435 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435, \u0447\u0442\u043e \u044d\u0442\u043e\u0442 \u043f\u0440\u043e\u0446\u0435\u0441\u0441 \u0432\u0435\u0440\u043d\u0435\u0442 \u0432\u0441\u0435 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f, \u0432\u043d\u0435\u0441\u0435\u043d\u043d\u044b\u0435 \u0432 \u0433\u043b\u043e\u0431\u0430\u043b\u044c\u043d\u044b\u0435 \u0446\u0432\u0435\u0442\u0430 \u0438 \u0448\u0440\u0438\u0444\u0442\u044b \u0434\u043e \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f \u0434\u043e \u0432\u0435\u0440\u0441\u0438\u0438 3.x."],"Don't Show Again":["\u0411\u043e\u043b\u044c\u0448\u0435 \u043d\u0435 \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0442\u044c"],"Font Awesome 5 Migration":["\u041c\u0438\u0433\u0440\u0430\u0446\u0438\u044f \u043d\u0430 Font Awesome 5"],"I acknowledge that some changes may affect my website and that this action cannot be undone.":["\u042f \u043f\u0440\u0438\u0437\u043d\u0430\u044e, \u0447\u0442\u043e \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u043c\u043e\u0433\u0443\u0442 \u043f\u043e\u0432\u043b\u0438\u044f\u0442\u044c \u043d\u0430 \u043c\u043e\u0439 \u0441\u0430\u0439\u0442 \u0438 \u0447\u0442\u043e \u044d\u0442\u043e \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0435 \u043d\u0435\u043e\u0431\u0440\u0430\u0442\u0438\u043c\u043e."],"I understand that by upgrading to Font Awesome 5,":["\u042f \u043f\u043e\u043d\u0438\u043c\u0430\u044e, \u0447\u0442\u043e, \u043e\u0431\u043d\u043e\u0432\u0438\u0432\u0448\u0438\u0441\u044c \u0434\u043e Font Awesome 5,"],"Sign Up":["\u041f\u043e\u0434\u043f\u0438\u0441\u0430\u0442\u044c\u0441\u044f"],"Continue":["\u041f\u0440\u043e\u0434\u043e\u043b\u0436\u0438\u0442\u044c"],"Please note that you are switching to WordPress default editor. Your current layout, design and content might break.":["\u041e\u0431\u0440\u0430\u0442\u0438\u0442\u0435 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435, \u0447\u0442\u043e \u0432\u044b \u043f\u0435\u0440\u0435\u043a\u043b\u044e\u0447\u0430\u0435\u0442\u0435\u0441\u044c \u043d\u0430 \u0440\u0435\u0434\u0430\u043a\u0442\u043e\u0440 WordPress \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e. \u0412\u0430\u0448\u0430 \u0442\u0435\u043a\u0443\u0449\u0430\u044f \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430, \u0434\u0438\u0437\u0430\u0439\u043d \u0438 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0435 \u043c\u043e\u0433\u0443\u0442 \u0431\u044b\u0442\u044c \u0443\u0442\u0435\u0440\u044f\u043d\u044b."],"Back to WordPress Editor":["\u0412\u0435\u0440\u043d\u0443\u0442\u044c\u0441\u044f \u043a \u0440\u0435\u0434\u0430\u043a\u0442\u043e\u0440\u0443 WordPress"],"New Template":["\u041d\u043e\u0432\u044b\u0439 \u0448\u0430\u0431\u043b\u043e\u043d"],"Are you sure you want to reinstall previous version?":["\u0412\u044b \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0445\u043e\u0442\u0438\u0442\u0435 \u043f\u0435\u0440\u0435\u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0443\u044e \u0432\u0435\u0440\u0441\u0438\u044e?"],"Rollback to Previous Version":["\u041e\u0442\u043a\u0430\u0442 \u043a \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0435\u0439 \u0432\u0435\u0440\u0441\u0438\u0438"],"Submit & Deactivate":["\u041e\u0442\u043f\u0440\u0430\u0432\u0438\u0442\u044c \u0438 \u0434\u0435\u0430\u043a\u0442\u0438\u0432\u0438\u0440\u043e\u0432\u0430\u0442\u044c"],"Skip & Deactivate":["\u041f\u0440\u043e\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u0438 \u0434\u0435\u0430\u043a\u0442\u0438\u0432\u0438\u0440\u043e\u0432\u0430\u0442\u044c"],"Cancel":["\u041e\u0442\u043c\u0435\u043d\u0438\u0442\u044c"]}},"comment":{"reference":"assets\/js\/admin-modules.strings.js"}}

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1 @@
{"translation-revision-date":"2026-02-02 10:19:51+0000","generator":"GlotPress\/4.0.3","domain":"messages","locale_data":{"messages":{"":{"domain":"messages","plural-forms":"nplurals=3; plural=(n % 10 == 1 && n % 100 != 11) ? 0 : ((n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 12 || n % 100 > 14)) ? 1 : 2);","lang":"ru"},"%s edited":["%s \u043e\u0442\u0440\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d"],"To drag a link to this element, first remove the link from it's parent container.":["\u0427\u0442\u043e\u0431\u044b \u043f\u0435\u0440\u0435\u0442\u0430\u0449\u0438\u0442\u044c \u0441\u0441\u044b\u043b\u043a\u0443 \u043d\u0430 \u044d\u0442\u043e\u0442 \u044d\u043b\u0435\u043c\u0435\u043d\u0442, \u0441\u043d\u0430\u0447\u0430\u043b\u0430 \u0443\u0434\u0430\u043b\u0438\u0442\u0435 \u0441\u0441\u044b\u043b\u043a\u0443 \u0438\u0437 \u0435\u0435 \u0440\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u0441\u043a\u043e\u0433\u043e \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0430."],"To paste a link to this element, first remove the link from it's parent container.":["\u0427\u0442\u043e\u0431\u044b \u0432\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0441\u0441\u044b\u043b\u043a\u0443 \u0432 \u044d\u0442\u043e\u0442 \u044d\u043b\u0435\u043c\u0435\u043d\u0442, \u0441\u043d\u0430\u0447\u0430\u043b\u0430 \u0443\u0434\u0430\u043b\u0438\u0442\u0435 \u0441\u0441\u044b\u043b\u043a\u0443 \u0438\u0437 \u0435\u0435 \u0440\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u0441\u043a\u043e\u0433\u043e \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0430."],"Style Reset":["\u0421\u0442\u0438\u043b\u044c \u0441\u0431\u0440\u043e\u0448\u0435\u043d"],"Style Pasted":["\u0421\u0442\u0438\u043b\u044c \u0432\u0441\u0442\u0430\u0432\u043b\u0435\u043d"],"Elements":["\u042d\u043b\u0435\u043c\u0435\u043d\u0442\u044b"]}},"comment":{"reference":"assets\/js\/packages\/editor-canvas\/editor-canvas.js"}}

View File

@@ -0,0 +1 @@
{"translation-revision-date":"2026-02-02 10:19:51+0000","generator":"GlotPress\/4.0.3","domain":"messages","locale_data":{"messages":{"":{"domain":"messages","plural-forms":"nplurals=3; plural=(n % 10 == 1 && n % 100 != 11) ? 0 : ((n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 12 || n % 100 > 14)) ? 1 : 2);","lang":"ru"},"You now have access to the beta of version 4, ready to use on production.":["\u0422\u0435\u043f\u0435\u0440\u044c \u0443 \u0432\u0430\u0441 \u0435\u0441\u0442\u044c \u0434\u043e\u0441\u0442\u0443\u043f \u043a \u0431\u0435\u0442\u0430-\u0432\u0435\u0440\u0441\u0438\u0438 4, \u0433\u043e\u0442\u043e\u0432\u043e\u0439 \u043a \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044e \u0432 \u0440\u0430\u0431\u043e\u0447\u0435\u0439 \u0441\u0440\u0435\u0434\u0435."],"Apply Variables and Classes site-wide for perfect consistency.":["\u041f\u0440\u0438\u043c\u0435\u043d\u044f\u0439\u0442\u0435 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0435 \u0438 \u043a\u043b\u0430\u0441\u0441\u044b \u043f\u043e \u0432\u0441\u0435\u043c\u0443 \u0441\u0430\u0439\u0442\u0443 \u0434\u043b\u044f \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0435\u043d\u0438\u044f \u0438\u0434\u0435\u0430\u043b\u044c\u043d\u043e\u0439 \u0441\u043e\u0433\u043b\u0430\u0441\u043e\u0432\u0430\u043d\u043d\u043e\u0441\u0442\u0438."],"Customize any style element per screen size by switching between responsive views.":["\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u0442\u0435 \u043b\u044e\u0431\u043e\u0439 \u044d\u043b\u0435\u043c\u0435\u043d\u0442 \u0441\u0442\u0438\u043b\u044f \u043f\u043e\u0434 \u0440\u0430\u0437\u043c\u0435\u0440 \u044d\u043a\u0440\u0430\u043d\u0430, \u043f\u0435\u0440\u0435\u043a\u043b\u044e\u0447\u0430\u044f\u0441\u044c \u043c\u0435\u0436\u0434\u0443 \u043e\u0442\u0437\u044b\u0432\u0447\u0438\u0432\u044b\u043c\u0438 \u0432\u0438\u0434\u0430\u043c\u0438."],"Let's Go":["\u041f\u043e\u0435\u0445\u0430\u043b\u0438"],"Need help getting started?":["\u0412\u0430\u043c \u043d\u0443\u0436\u043d\u0430 \u043f\u043e\u043c\u043e\u0449\u044c, \u0447\u0442\u043e\u0431\u044b \u043d\u0430\u0447\u0430\u0442\u044c \u0440\u0430\u0431\u043e\u0442\u0443?"],"Say hello to a new experience!":["\u041f\u043e\u0437\u0434\u043e\u0440\u043e\u0432\u0430\u0439\u0442\u0435\u0441\u044c \u0441 \u043d\u043e\u0432\u044b\u043c\u0438 \u0432\u043f\u0435\u0447\u0430\u0442\u043b\u0435\u043d\u0438\u044f\u043c\u0438!"],"Learn more":["\u0423\u0437\u043d\u0430\u0442\u044c \u0431\u043e\u043b\u044c\u0448\u0435"]}},"comment":{"reference":"assets\/js\/editor-v4-welcome-opt-in.strings.js"}}

View File

@@ -0,0 +1 @@
{"translation-revision-date":"2026-02-02 10:19:51+0000","generator":"GlotPress\/4.0.3","domain":"messages","locale_data":{"messages":{"":{"domain":"messages","plural-forms":"nplurals=3; plural=(n % 10 == 1 && n % 100 != 11) ? 0 : ((n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 12 || n % 100 > 14)) ? 1 : 2);","lang":"ru"},"Elements moved":["\u041f\u0435\u0440\u0435\u043c\u0435\u0449\u0435\u043d\u043d\u044b\u0435 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b"],"Item removed":["\u042d\u043b\u0435\u043c\u0435\u043d\u0442 \u0443\u0434\u0430\u043b\u0435\u043d"]}},"comment":{"reference":"assets\/js\/packages\/editor-elements\/editor-elements.js"}}

View File

@@ -0,0 +1 @@
{"translation-revision-date":"2026-02-02 10:19:51+0000","generator":"GlotPress\/4.0.3","domain":"messages","locale_data":{"messages":{"":{"domain":"messages","plural-forms":"nplurals=3; plural=(n % 10 == 1 && n % 100 != 11) ? 0 : ((n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 12 || n % 100 > 14)) ? 1 : 2);","lang":"ru"},"Unify with Elementor AI":["\u041e\u0431\u044a\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u0435 \u0441 Elementor AI"]}},"comment":{"reference":"assets\/js\/ai-unify-product-images.strings.js"}}

View File

@@ -0,0 +1 @@
{"translation-revision-date":"2026-02-02 10:19:51+0000","generator":"GlotPress\/4.0.3","domain":"messages","locale_data":{"messages":{"":{"domain":"messages","plural-forms":"nplurals=3; plural=(n % 10 == 1 && n % 100 != 11) ? 0 : ((n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 12 || n % 100 > 14)) ? 1 : 2);","lang":"ru"},"Save as a template":["\u0421\u043e\u0445\u0440\u0430\u043d\u0438\u0442\u044c \u043a\u0430\u043a \u0448\u0430\u0431\u043b\u043e\u043d"],"Delete %s":["\u0423\u0434\u0430\u043b\u0438\u0442\u044c %s"],"New":["\u041d\u043e\u0432\u044b\u0435"],"Duplicate %s":["\u0414\u0443\u0431\u043b\u0438\u0440\u043e\u0432\u0430\u0442\u044c %s"],"Edit %s":["\u0420\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c %s"],"Add %s":["\u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c %s"]}},"comment":{"reference":"assets\/js\/atomic-widgets-editor.js"}}

View File

@@ -0,0 +1 @@
{"translation-revision-date":"2026-02-02 10:19:51+0000","generator":"GlotPress\/4.0.3","domain":"messages","locale_data":{"messages":{"":{"domain":"messages","plural-forms":"nplurals=3; plural=(n % 10 == 1 && n % 100 != 11) ? 0 : ((n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 12 || n % 100 > 14)) ? 1 : 2);","lang":"ru"},"Add new group":["\u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u043d\u043e\u0432\u0443\u044e \u0433\u0440\u0443\u043f\u043f\u0443"],"Close panel":["\u0417\u0430\u043a\u0440\u044b\u0442\u044c \u043f\u0430\u043d\u0435\u043b\u044c"],"Group Name":["\u041d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u0433\u0440\u0443\u043f\u043f\u044b"],"You can wait for them to finish or reach out to coordinate your changes together.":["\u0412\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u0434\u043e\u0436\u0434\u0430\u0442\u044c\u0441\u044f, \u043f\u043e\u043a\u0430 \u043e\u043d\u0438 \u0437\u0430\u043a\u043e\u043d\u0447\u0430\u0442, \u0438\u043b\u0438 \u0441\u0432\u044f\u0437\u0430\u0442\u044c\u0441\u044f \u0441 \u043d\u0438\u043c\u0438, \u0447\u0442\u043e\u0431\u044b \u0441\u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f."],"Edit Component":["\u0420\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442"],"Components":["\u041a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u044b"],"Clear & try again":["\u041e\u0447\u0438\u0441\u0442\u0438\u0442\u0435 \u0438 \u043f\u043e\u043f\u0440\u043e\u0431\u0443\u0439\u0442\u0435 \u0441\u043d\u043e\u0432\u0430"],"Try something else.":["\u041f\u043e\u043f\u0440\u043e\u0431\u0443\u0439\u0442\u0435 \u0447\u0442\u043e-\u043d\u0438\u0431\u0443\u0434\u044c \u0434\u0440\u0443\u0433\u043e\u0435."],"Sorry, nothing matched":["\u0418\u0437\u0432\u0438\u043d\u0438\u0442\u0435, \u043d\u0438\u0447\u0435\u0433\u043e \u043d\u0435 \u0441\u043e\u0432\u043f\u0430\u043b\u043e"],"Rename":["\u041f\u0435\u0440\u0435\u0438\u043c\u0435\u043d\u043e\u0432\u0430\u0442\u044c"],"Got it":["\u041f\u043e\u043d\u044f\u0442\u043d\u043e"],"Something went wrong":["\u0427\u0442\u043e-\u0442\u043e \u043f\u043e\u0448\u043b\u043e \u043d\u0435 \u0442\u0430\u043a"],"Learn more":["\u0423\u0437\u043d\u0430\u0442\u044c \u0431\u043e\u043b\u044c\u0448\u0435"],"Back":["\u041d\u0430\u0437\u0430\u0434"],"Create":["\u0421\u043e\u0437\u0434\u0430\u0442\u044c"],"Search":["\u041f\u043e\u0438\u0441\u043a"],"Update":["\u041e\u0431\u043d\u043e\u0432\u0438\u0442\u044c"],"Edit %s":["\u0420\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c %s"],"Close":["\u0417\u0430\u043a\u0440\u044b\u0442\u044c"],"Delete":["\u0423\u0434\u0430\u043b\u0438\u0442\u044c"],"Default":["\u041f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e"],"Name":["\u0418\u043c\u044f"],"Cancel":["\u041e\u0442\u043c\u0435\u043d\u0438\u0442\u044c"]}},"comment":{"reference":"assets\/js\/packages\/editor-components\/editor-components.strings.js"}}

View File

@@ -0,0 +1 @@
{"translation-revision-date":"2026-02-02 10:19:51+0000","generator":"GlotPress\/4.0.3","domain":"messages","locale_data":{"messages":{"":{"domain":"messages","plural-forms":"nplurals=3; plural=(n % 10 == 1 && n % 100 != 11) ? 0 : ((n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 12 || n % 100 > 14)) ? 1 : 2);","lang":"ru"},"Upgrade":["\u041e\u0431\u043d\u043e\u0432\u0438\u0442\u044c"],"Connect & Activate":["\u041f\u043e\u0434\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u0438 \u0430\u043a\u0442\u0438\u0432\u0438\u0440\u043e\u0432\u0430\u0442\u044c"],"Create more personalized and dynamic sites by populating data from various sources with dozens of dynamic tags to choose from.":["\u0421\u043e\u0437\u0434\u0430\u0432\u0430\u0439\u0442\u0435 \u0431\u043e\u043b\u0435\u0435 \u043f\u0435\u0440\u0441\u043e\u043d\u0430\u043b\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u0438 \u0434\u0438\u043d\u0430\u043c\u0438\u0447\u043d\u044b\u0435 \u0441\u0430\u0439\u0442\u044b, \u0437\u0430\u043f\u043e\u043b\u043d\u044f\u044f \u0434\u0430\u043d\u043d\u044b\u0435 \u0438\u0437 \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0445 \u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a\u043e\u0432 \u0434\u0435\u0441\u044f\u0442\u043a\u0430\u043c\u0438 \u0434\u0438\u043d\u0430\u043c\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u0442\u0435\u0433\u043e\u0432 \u043d\u0430 \u0432\u044b\u0431\u043e\u0440."],"Dynamic Content":["\u0414\u0438\u043d\u0430\u043c\u0438\u0447\u0435\u0441\u043a\u043e\u0435 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0435"]}},"comment":{"reference":"assets\/js\/styleguide.js"}}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1 @@
{"translation-revision-date":"2026-02-02 10:19:51+0000","generator":"GlotPress\/4.0.3","domain":"messages","locale_data":{"messages":{"":{"domain":"messages","plural-forms":"nplurals=3; plural=(n % 10 == 1 && n % 100 != 11) ? 0 : ((n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 12 || n % 100 > 14)) ? 1 : 2);","lang":"ru"},"Edit with Elementor":["\u0420\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0432 Elementor"]}},"comment":{"reference":"assets\/js\/e-wc-product-editor.strings.js"}}

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1 @@
{"translation-revision-date":"2026-02-02 10:19:51+0000","generator":"GlotPress\/4.0.3","domain":"messages","locale_data":{"messages":{"":{"domain":"messages","plural-forms":"nplurals=3; plural=(n % 10 == 1 && n % 100 != 11) ? 0 : ((n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 12 || n % 100 > 14)) ? 1 : 2);","lang":"ru"},"Delay":["\u0417\u0430\u0434\u0435\u0440\u0436\u043a\u0430"],"To top":["\u0412\u0432\u0435\u0440\u0445"],"Trigger":["\u0422\u0440\u0438\u0433\u0433\u0435\u0440"],"You've reached the limit of 5 interactions for this element. Please remove an interaction before creating a new one.":["\u0412\u044b \u0434\u043e\u0441\u0442\u0438\u0433\u043b\u0438 \u043b\u0438\u043c\u0438\u0442\u0430 \u0432 5 \u0432\u0437\u0430\u0438\u043c\u043e\u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0439 \u0434\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430. \u041f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430, \u0443\u0434\u0430\u043b\u0438\u0442\u0435 \u043e\u0434\u043d\u043e \u0432\u0437\u0430\u0438\u043c\u043e\u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0435, \u043f\u0440\u0435\u0436\u0434\u0435 \u0447\u0435\u043c \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0442\u044c \u043d\u043e\u0432\u043e\u0435."],"To bottom":["\u0412\u043d\u0438\u0437"],"Add entrance animations and effects triggered by user interactions such as page load or scroll.":["\u0414\u043e\u0431\u0430\u0432\u044c\u0442\u0435 \u0430\u043d\u0438\u043c\u0430\u0446\u0438\u044e \u0432\u0445\u043e\u0434\u0430 \u0438 \u044d\u0444\u0444\u0435\u043a\u0442\u044b, \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u043c\u044b\u0435 \u0432\u0437\u0430\u0438\u043c\u043e\u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f\u043c\u0438 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f, \u0442\u0430\u043a\u0438\u043c\u0438 \u043a\u0430\u043a \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0430 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u044b \u0438\u043b\u0438 \u043f\u0440\u043e\u043a\u0440\u0443\u0442\u043a\u0430."],"Interactions":["\u0412\u0437\u0430\u0438\u043c\u043e\u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f"],"Scale":["\u041c\u0430\u0441\u0448\u0442\u0430\u0431"],"Duration":["\u0414\u043b\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c"],"Out":["\u041e\u0442"],"In":["\u041a"],"Direction":["\u041d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435"],"Effect":["\u042d\u0444\u0444\u0435\u043a\u0442"],"Fade":["\u0412\u044b\u0446\u0432\u0435\u0442\u0430\u043d\u0438\u0435"],"Type":["\u0422\u0438\u043f"],"No":["\u041d\u0435\u0442"],"Yes":["\u0414\u0430"],"Slide":["\u0421\u043a\u043e\u043b\u044c\u0436\u0435\u043d\u0438\u0435"],"Preview":["\u0421\u043c\u043e\u0442\u0440\u0435\u0442\u044c"]}},"comment":{"reference":"assets\/js\/packages\/editor-interactions\/editor-interactions.strings.js"}}

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1 @@
{"translation-revision-date":"2026-02-02 10:19:51+0000","generator":"GlotPress\/4.0.3","domain":"messages","locale_data":{"messages":{"":{"domain":"messages","plural-forms":"nplurals=3; plural=(n % 10 == 1 && n % 100 != 11) ? 0 : ((n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 12 || n % 100 > 14)) ? 1 : 2);","lang":"ru"},"Show global settings":["\u041f\u043e\u043a\u0430\u0437\u0430\u0442\u044c \u0433\u043b\u043e\u0431\u0430\u043b\u044c\u043d\u044b\u0435 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438"],"The five boxing wizards jump quickly.":["\u041f\u044f\u0442\u044c \u0432\u043e\u043b\u0448\u0435\u0431\u043d\u0438\u043a\u043e\u0432 \u0431\u043e\u043a\u0441\u0430 \u0431\u044b\u0441\u0442\u0440\u043e \u043f\u0440\u044b\u0433\u0430\u044e\u0442."],"System Fonts":["\u0421\u0438\u0441\u0442\u0435\u043c\u043d\u044b\u0435 \u0448\u0440\u0438\u0444\u0442\u044b"],"System Colors":["\u0421\u0438\u0441\u0442\u0435\u043c\u043d\u044b\u0435 \u0446\u0432\u0435\u0442\u0430"],"Global Colors":["\u0413\u043b\u043e\u0431\u0430\u043b\u044c\u043d\u044b\u0435 \u0446\u0432\u0435\u0442\u0430"],"Custom Fonts":["\u041f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u0441\u043a\u0438\u0435 \u0448\u0440\u0438\u0444\u0442\u044b"],"Global Fonts":["\u0413\u043b\u043e\u0431\u0430\u043b\u044c\u043d\u044b\u0435 \u0448\u0440\u0438\u0444\u0442\u044b"],"Custom Colors":["\u041f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u0441\u043a\u0438\u0435 \u0446\u0432\u0435\u0442\u0430"],"Colors":["\u0426\u0432\u0435\u0442\u0430"],"Fonts":["\u0428\u0440\u0438\u0444\u0442\u044b"]}},"comment":{"reference":"assets\/js\/styleguide.strings.js"}}

Some files were not shown because too many files have changed in this diff Show More