@jjlmoya/utils-developer 1.30.0 → 1.31.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +70 -70
- package/src/category/seo.astro +1 -1
- package/src/components/PreviewNavSidebar.astro +1 -1
- package/src/components/PreviewToolbar.astro +1 -1
- package/src/data.ts +1 -1
- package/src/env.d.ts +1 -1
- package/src/layouts/PreviewLayout.astro +1 -1
- package/src/pages/[locale]/[slug].astro +162 -162
- package/src/pages/index.astro +1 -1
- package/src/tests/entry_contract.test.ts +8 -2
- package/src/tests/faq_count.test.ts +1 -1
- package/src/tests/i18n_coverage.test.ts +2 -6
- package/src/tests/inverted_punctuation.test.ts +113 -113
- package/src/tests/mocks/astro_mock.js +1 -1
- package/src/tests/no_h1_in_components.test.ts +1 -1
- package/src/tests/promote_this_website_i18n.test.ts +33 -0
- package/src/tests/slug_language_code_format.test.ts +25 -25
- package/src/tests/slug_uniqueness.test.ts +86 -86
- package/src/tests/tool_validation.test.ts +15 -15
- package/src/tool/aspectRatio/i18n/de.ts +164 -164
- package/src/tool/aspectRatio/i18n/ja.ts +1 -1
- package/src/tool/aspectRatio/i18n/ko.ts +1 -1
- package/src/tool/aspectRatio/i18n/pl.ts +164 -164
- package/src/tool/aspectRatio/i18n/ru.ts +164 -164
- package/src/tool/aspectRatio/i18n/zh.ts +165 -165
- package/src/tool/aspectRatio/seo.astro +15 -15
- package/src/tool/calculadoraTiempoDatos/i18n/de.ts +143 -143
- package/src/tool/calculadoraTiempoDatos/i18n/ja.ts +1 -1
- package/src/tool/calculadoraTiempoDatos/i18n/ko.ts +1 -1
- package/src/tool/calculadoraTiempoDatos/i18n/pl.ts +143 -143
- package/src/tool/calculadoraTiempoDatos/i18n/ru.ts +144 -144
- package/src/tool/calculadoraTiempoDatos/i18n/sv.ts +143 -143
- package/src/tool/calculadoraTiempoDatos/i18n/zh.ts +144 -144
- package/src/tool/calculadoraTiempoDatos/seo.astro +15 -15
- package/src/tool/colorConverter/i18n/de.ts +120 -120
- package/src/tool/colorConverter/i18n/ja.ts +1 -1
- package/src/tool/colorConverter/i18n/ko.ts +1 -1
- package/src/tool/colorConverter/i18n/ru.ts +120 -120
- package/src/tool/colorConverter/i18n/zh.ts +1 -1
- package/src/tool/colorConverter/seo.astro +15 -15
- package/src/tool/conversorExcelCsvHtml/i18n/ja.ts +1 -1
- package/src/tool/conversorExcelCsvHtml/i18n/ko.ts +1 -1
- package/src/tool/conversorExcelCsvHtml/i18n/pl.ts +124 -124
- package/src/tool/conversorExcelCsvHtml/i18n/ru.ts +124 -124
- package/src/tool/conversorExcelCsvHtml/i18n/zh.ts +125 -125
- package/src/tool/conversorExcelCsvHtml/seo.astro +15 -15
- package/src/tool/cronGenerator/i18n/ja.ts +1 -1
- package/src/tool/cronGenerator/i18n/ko.ts +1 -1
- package/src/tool/cronGenerator/i18n/zh.ts +183 -183
- package/src/tool/cronGenerator/seo.astro +15 -15
- package/src/tool/cssSpecificityCalculator/i18n/ja.ts +1 -1
- package/src/tool/cssSpecificityCalculator/i18n/ko.ts +1 -1
- package/src/tool/cssSpecificityCalculator/i18n/zh.ts +1 -1
- package/src/tool/cssSpecificityCalculator/seo.astro +15 -15
- package/src/tool/cssToInlineConverter/i18n/ja.ts +1 -1
- package/src/tool/cssToInlineConverter/i18n/ko.ts +1 -1
- package/src/tool/cssToInlineConverter/i18n/zh.ts +1 -1
- package/src/tool/cssToInlineConverter/seo.astro +15 -15
- package/src/tool/duplicateCssRemover/i18n/ja.ts +1 -1
- package/src/tool/duplicateCssRemover/i18n/ko.ts +1 -1
- package/src/tool/duplicateCssRemover/i18n/zh.ts +1 -1
- package/src/tool/duplicateCssRemover/seo.astro +15 -15
- package/src/tool/generadorSecurityTxt/i18n/ja.ts +1 -1
- package/src/tool/generadorSecurityTxt/i18n/ko.ts +1 -1
- package/src/tool/generadorSecurityTxt/i18n/zh.ts +1 -1
- package/src/tool/generadorSecurityTxt/seo.astro +15 -15
- package/src/tool/hashGenerator/i18n/ja.ts +1 -1
- package/src/tool/hashGenerator/i18n/ko.ts +1 -1
- package/src/tool/hashGenerator/seo.astro +15 -15
- package/src/tool/inspectorCertificadosSsl/i18n/ja.ts +1 -1
- package/src/tool/inspectorCertificadosSsl/i18n/ko.ts +1 -1
- package/src/tool/inspectorCertificadosSsl/i18n/zh.ts +1 -1
- package/src/tool/inspectorCertificadosSsl/seo.astro +15 -15
- package/src/tool/jsonFormatter/seo.astro +15 -15
- package/src/tool/jwtDecoder/i18n/es.ts +248 -248
- package/src/tool/jwtDecoder/i18n/fr.ts +248 -248
- package/src/tool/jwtDecoder/i18n/tr.ts +248 -248
- package/src/tool/keycode/seo.astro +15 -15
- package/src/tool/llmCostCalculator/i18n/fr.ts +149 -149
- package/src/tool/llmCostCalculator/i18n/ja.ts +1 -1
- package/src/tool/llmCostCalculator/i18n/ko.ts +1 -1
- package/src/tool/llmCostCalculator/seo.astro +15 -15
- package/src/tool/mobileMockupGenerator/i18n/ja.ts +1 -1
- package/src/tool/mobileMockupGenerator/i18n/ko.ts +1 -1
- package/src/tool/mobileMockupGenerator/i18n/zh.ts +1 -1
- package/src/tool/mobileMockupGenerator/seo.astro +15 -15
- package/src/tool/musicalTypography/i18n/ja.ts +1 -1
- package/src/tool/musicalTypography/i18n/ko.ts +1 -1
- package/src/tool/musicalTypography/i18n/zh.ts +1 -1
- package/src/tool/musicalTypography/seo.astro +15 -15
- package/src/tool/placeholderGenerator/i18n/ja.ts +1 -1
- package/src/tool/placeholderGenerator/i18n/ko.ts +1 -1
- package/src/tool/placeholderGenerator/i18n/zh.ts +1 -1
- package/src/tool/placeholderGenerator/seo.astro +15 -15
- package/src/tool/promoteThisWebsite/entry.ts +13 -0
- package/src/tool/promoteThisWebsite/i18n/de.ts +95 -0
- package/src/tool/promoteThisWebsite/i18n/fr.ts +95 -0
- package/src/tool/promoteThisWebsite/i18n/id.ts +95 -0
- package/src/tool/promoteThisWebsite/i18n/it.ts +95 -0
- package/src/tool/promoteThisWebsite/i18n/ja.ts +95 -0
- package/src/tool/promoteThisWebsite/i18n/ko.ts +95 -0
- package/src/tool/promoteThisWebsite/i18n/nl.ts +95 -0
- package/src/tool/promoteThisWebsite/i18n/pl.ts +95 -0
- package/src/tool/promoteThisWebsite/i18n/pt.ts +95 -0
- package/src/tool/promoteThisWebsite/i18n/ru.ts +95 -0
- package/src/tool/promoteThisWebsite/i18n/sv.ts +95 -0
- package/src/tool/promoteThisWebsite/i18n/tr.ts +95 -0
- package/src/tool/promoteThisWebsite/i18n/zh.ts +95 -0
- package/src/tool/promptLibrary/i18n/ja.ts +1 -1
- package/src/tool/promptLibrary/i18n/ko.ts +1 -1
- package/src/tool/promptLibrary/i18n/zh.ts +1 -1
- package/src/tool/promptLibrary/seo.astro +15 -15
- package/src/tool/readabilityCalculator/i18n/ja.ts +1 -1
- package/src/tool/readabilityCalculator/i18n/ko.ts +1 -1
- package/src/tool/readabilityCalculator/i18n/zh.ts +1 -1
- package/src/tool/readabilityCalculator/seo.astro +15 -15
- package/src/tool/serpPixelSimulator/entry.ts +30 -30
- package/src/tool/serpPixelSimulator/i18n/en.ts +211 -211
- package/src/tool/serpPixelSimulator/i18n/fr.ts +214 -214
- package/src/tool/serpPixelSimulator/i18n/ru.ts +214 -214
- package/src/tool/serpPixelSimulator/logic.ts +18 -18
- package/src/tool/serpPixelSimulator/serp-pixel-simulator.css +195 -195
- package/src/tool/svgSanitizer/i18n/ja.ts +1 -1
- package/src/tool/svgSanitizer/i18n/ko.ts +1 -1
- package/src/tool/svgSanitizer/seo.astro +15 -15
- package/src/tool/svgToCss/i18n/ja.ts +1 -1
- package/src/tool/svgToCss/i18n/ko.ts +1 -1
- package/src/tool/svgToCss/seo.astro +15 -15
- package/src/tool/urlCleaner/i18n/ja.ts +1 -1
- package/src/tool/urlCleaner/i18n/ko.ts +1 -1
- package/src/tool/urlCleaner/i18n/zh.ts +1 -1
- package/src/tool/urlCleaner/seo.astro +15 -15
- package/src/tool/urlEncoderDecoder/i18n/es.ts +146 -146
- package/src/tool/urlEncoderDecoder/i18n/ko.ts +1 -1
- package/src/tool/urlEncoderDecoder/seo.astro +15 -15
- package/src/tool/utmGenerator/i18n/ja.ts +1 -1
- package/src/tool/utmGenerator/i18n/ko.ts +1 -1
- package/src/tool/utmGenerator/i18n/zh.ts +1 -1
- package/src/tool/utmGenerator/seo.astro +15 -15
- package/src/types.ts +1 -1
|
@@ -1,165 +1,165 @@
|
|
|
1
1
|
import { bibliography } from '../bibliography';
|
|
2
|
-
import type { WithContext, FAQPage, HowToThing, SoftwareApplication } from 'schema-dts';
|
|
3
|
-
import type { ToolLocaleContent } from '../../../types';
|
|
4
|
-
import type { AspectRatioUI } from '../ui';
|
|
5
|
-
|
|
6
|
-
const slug = 'kalkulyator-sootnosheniya-storon';
|
|
7
|
-
const title = 'Калькулятор соотношения сторон в пикселях. Пропорции онлайн';
|
|
8
|
-
const description =
|
|
9
|
-
'Рассчитывайте разрешения для изображений, видео и веб-дизайна, сохраняя точные пропорции, чтобы избежать искажения графики. Поддержка форматов 16:9, 4:3, 21:9 и пользовательских настроек.';
|
|
10
|
-
|
|
11
|
-
const faqData = [
|
|
12
|
-
{
|
|
13
|
-
question: 'Что такое соотношение сторон (Aspect Ratio)?',
|
|
14
|
-
answer:
|
|
15
|
-
'Соотношение сторон описывает геометрическую связь между шириной и высотой изображения или экрана. Оно представляется в виде двух чисел, разделенных двоеточием (например, 16:9), указывая, как высота пропорционально изменяется относительно ширины.',
|
|
16
|
-
},
|
|
17
|
-
{
|
|
18
|
-
question: 'Почему важно соблюдать правильные пропорции?',
|
|
19
|
-
answer:
|
|
20
|
-
'Игнорирование соотношения сторон приводит к сплющенным или растянутым изображениям, появлению нежелательных черных полос (letterboxing) в видео и нарушению макета веб-компонентов на экранах разного размера. Соблюдение правильных пропорций - залог профессионального вида.',
|
|
21
|
-
},
|
|
22
|
-
{
|
|
23
|
-
question: 'Как рассчитать высоту на основе ширины при заданном соотношении?',
|
|
24
|
-
answer:
|
|
25
|
-
'Формула такова: Высота = Ширина × (Число высоты / Число ширины). Например, для ширины 1280px при соотношении 16:9 высота составит: 1280 × (9/16) = 720px.',
|
|
26
|
-
},
|
|
27
|
-
{
|
|
28
|
-
question: 'Какое стандартное соотношение сторон используется для видео на YouTube?',
|
|
29
|
-
answer:
|
|
30
|
-
'16:9 - это стандартное соотношение для YouTube и большинства современных видеоплатформ. Оно соответствует таким разрешениям, как 1280×720 (HD), 1920×1080 (Full HD) или 3840×2160 (4K UHD).',
|
|
31
|
-
},
|
|
32
|
-
{
|
|
33
|
-
question: 'Какое соотношение сторон используется для вертикальных видео в соцсетях?',
|
|
34
|
-
answer:
|
|
35
|
-
'9:16, что является зеркальным отражением широкоэкранного формата. Это родное соотношение сторон для TikTok, Instagram Reels и YouTube Shorts, возникшее из-за вертикального использования мобильных телефонов.',
|
|
36
|
-
},
|
|
37
|
-
];
|
|
38
|
-
|
|
39
|
-
const howToData = [
|
|
40
|
-
{
|
|
41
|
-
name: 'Введите исходное соотношение',
|
|
42
|
-
text: 'Укажите значения ширины и высоты соотношения, которое вы хотите сохранить (например, 16 и 9 для широкоэкранного формата), или выберите один из пресетов.',
|
|
43
|
-
},
|
|
44
|
-
{
|
|
45
|
-
name: 'Настройте масштаб',
|
|
46
|
-
text: 'Измените значение ширины или высоты в разделе "Реальный масштаб". Инструмент автоматически рассчитает противоположное значение для сохранения пропорций.',
|
|
47
|
-
},
|
|
48
|
-
{
|
|
49
|
-
name: 'Проверьте результат',
|
|
50
|
-
text: 'Панель предварительного просмотра показывает итоговую форму в пропорциональном масштабе с упрощенным соотношением и рассчитанным разрешением.',
|
|
51
|
-
},
|
|
52
|
-
{
|
|
53
|
-
name: 'Примените в своем проекте',
|
|
54
|
-
text: 'Скопируйте рассчитанные значения для использования в CSS (aspect-ratio: 16 / 9), при экспорте видео или в настройках вашего графического редактора.',
|
|
55
|
-
},
|
|
56
|
-
];
|
|
57
|
-
|
|
58
|
-
const faqSchema: WithContext<FAQPage> = {
|
|
59
|
-
'@context': 'https://schema.org',
|
|
60
|
-
'@type': 'FAQPage',
|
|
61
|
-
mainEntity: faqData.map((item) => ({
|
|
62
|
-
'@type': 'Question',
|
|
63
|
-
name: item.question,
|
|
64
|
-
acceptedAnswer: { '@type': 'Answer', text: item.answer },
|
|
65
|
-
})),
|
|
66
|
-
};
|
|
67
|
-
|
|
68
|
-
const howToSchema: WithContext<HowToThing> = {
|
|
69
|
-
'@context': 'https://schema.org',
|
|
70
|
-
'@type': 'HowTo',
|
|
71
|
-
name: title,
|
|
72
|
-
description,
|
|
73
|
-
step: howToData.map((step, i) => ({
|
|
74
|
-
'@type': 'HowToStep',
|
|
75
|
-
position: i + 1,
|
|
76
|
-
name: step.name,
|
|
77
|
-
text: step.text,
|
|
78
|
-
})),
|
|
79
|
-
};
|
|
80
|
-
|
|
81
|
-
const appSchema: WithContext<SoftwareApplication> = {
|
|
82
|
-
'@context': 'https://schema.org',
|
|
83
|
-
'@type': 'SoftwareApplication',
|
|
84
|
-
name: title,
|
|
85
|
-
description,
|
|
86
|
-
applicationCategory: 'UtilityApplication',
|
|
87
|
-
operatingSystem: 'All',
|
|
88
|
-
offers: { '@type': 'Offer', price: '0', priceCurrency: 'EUR' },
|
|
89
|
-
inLanguage: 'ru',
|
|
90
|
-
};
|
|
91
|
-
|
|
92
|
-
const ui: AspectRatioUI = {
|
|
93
|
-
labelConfig: 'Настройка',
|
|
94
|
-
labelRatio: 'Исходное соотношение',
|
|
95
|
-
labelWidth: 'Ширина',
|
|
96
|
-
labelHeight: 'Высота',
|
|
97
|
-
labelScale: 'Реальный масштаб',
|
|
98
|
-
labelPixelWidth: 'Пиксели (Ширина)',
|
|
99
|
-
labelPixelHeight: 'Пиксели (Высота)',
|
|
100
|
-
labelPreview: 'Пропорциональный просмотр',
|
|
101
|
-
labelStatus: 'Идеальное соотношение',
|
|
102
|
-
labelOffline: '100% автономный инструмент',
|
|
103
|
-
};
|
|
104
|
-
|
|
105
|
-
export const content: ToolLocaleContent<AspectRatioUI> = {
|
|
106
|
-
slug,
|
|
107
|
-
title,
|
|
108
|
-
description,
|
|
109
|
-
ui,
|
|
110
|
-
faqTitle: 'Часто задаваемые вопросы',
|
|
111
|
-
faq: faqData,
|
|
112
|
-
bibliographyTitle: 'Ссылки и документация',
|
|
113
|
-
bibliography,
|
|
114
|
-
howTo: howToData,
|
|
115
|
-
schemas: [faqSchema, howToSchema, appSchema],
|
|
116
|
-
seo: [
|
|
117
|
-
{
|
|
118
|
-
type: 'title',
|
|
119
|
-
text: 'Что такое соотношение сторон?',
|
|
120
|
-
level: 2,
|
|
121
|
-
},
|
|
122
|
-
{
|
|
123
|
-
type: 'paragraph',
|
|
124
|
-
html: 'В графическом дизайне, фотографии и фронтенд-разработке <strong>соотношение сторон</strong> (Aspect Ratio) описывает геометрическую связь между шириной и высотой изображения, экрана или контейнера. Обычно оно представляется двумя числами через двоеточие (например, <code>16:9</code>), указывая, как высота пропорционально изменяется в ответ на ширину.',
|
|
125
|
-
},
|
|
126
|
-
{
|
|
127
|
-
type: 'paragraph',
|
|
128
|
-
html: 'Несоблюдение соотношения сторон - частая причина сплющенных фотографий, видео с неожиданной обрезкой (letterboxing) или веб-компонентов, макет которых нарушается при просмотре на разных устройствах - от мобильных телефонов до ультрашироких мониторов.',
|
|
129
|
-
},
|
|
130
|
-
{
|
|
131
|
-
type: 'title',
|
|
132
|
-
text: 'Общепринятые стандарты в индустрии',
|
|
133
|
-
level: 3,
|
|
134
|
-
},
|
|
135
|
-
{
|
|
136
|
-
type: 'paragraph',
|
|
137
|
-
html: 'В зависимости от вашей дисциплины вы будете постоянно сталкиваться с ограниченным набором мировых стандартов пропорций:',
|
|
138
|
-
},
|
|
139
|
-
{
|
|
140
|
-
type: 'list',
|
|
141
|
-
items: [
|
|
142
|
-
'<strong>16:9 (Широкоэкранный):</strong> Абсолютно доминирующий формат для современных мониторов, телевизоров, видео на YouTube или стандартных разрешений высокой четкости (таких как 1920×1080 или 4K).',
|
|
143
|
-
'<strong>9:16 (Вертикальный):</strong> Возник из-за потребления контента на мобильных устройствах (TikTok, Instagram Reels, YouTube Shorts). Точно такое же соотношение, как у широкоэкранного видео, но при физическом повороте устройства.',
|
|
144
|
-
'<strong>4:3 (Классический):</strong> Встречается в старых телевизорах и мониторах, а также в аналоговых и специализированных цифровых камерах. Его почти квадратный вид привлекает внимание к центральной оси композиции.',
|
|
145
|
-
],
|
|
146
|
-
},
|
|
147
|
-
{
|
|
148
|
-
type: 'title',
|
|
149
|
-
text: 'Веб-разработка и свойство CSS aspect-ratio',
|
|
150
|
-
level: 3,
|
|
151
|
-
},
|
|
152
|
-
{
|
|
153
|
-
type: 'paragraph',
|
|
154
|
-
html: 'Раньше в CSS использовались сложные математические системы с <strong>Padding Hack</strong> (например, <code>padding-top: 56.25%</code>) для резервирования динамического пространства для YouTube iframe или фоновых изображений, чтобы избежать скачков контента (Cumulative Layout Shift, CLS) при загрузке страницы.',
|
|
155
|
-
},
|
|
156
|
-
{
|
|
157
|
-
type: 'paragraph',
|
|
158
|
-
html: 'Сейчас все современные макеты напрямую применяют свойство <code>aspect-ratio: 16 / 9;</code>, создавая семантичный код и позволяя браузеру автоматически рассчитывать недостающее измерение на основе оригинальной ширины, заданной через Grid или Flexbox.',
|
|
159
|
-
},
|
|
160
|
-
{
|
|
161
|
-
type: 'paragraph',
|
|
162
|
-
html: 'Этот локальный калькулятор пикселей позволяет мгновенно рассчитать масштаб дизайна, что защитит ваши макеты от критических ошибок в настройках.',
|
|
163
|
-
},
|
|
164
|
-
],
|
|
165
|
-
};
|
|
2
|
+
import type { WithContext, FAQPage, HowToThing, SoftwareApplication } from 'schema-dts';
|
|
3
|
+
import type { ToolLocaleContent } from '../../../types';
|
|
4
|
+
import type { AspectRatioUI } from '../ui';
|
|
5
|
+
|
|
6
|
+
const slug = 'kalkulyator-sootnosheniya-storon';
|
|
7
|
+
const title = 'Калькулятор соотношения сторон в пикселях. Пропорции онлайн';
|
|
8
|
+
const description =
|
|
9
|
+
'Рассчитывайте разрешения для изображений, видео и веб-дизайна, сохраняя точные пропорции, чтобы избежать искажения графики. Поддержка форматов 16:9, 4:3, 21:9 и пользовательских настроек.';
|
|
10
|
+
|
|
11
|
+
const faqData = [
|
|
12
|
+
{
|
|
13
|
+
question: 'Что такое соотношение сторон (Aspect Ratio)?',
|
|
14
|
+
answer:
|
|
15
|
+
'Соотношение сторон описывает геометрическую связь между шириной и высотой изображения или экрана. Оно представляется в виде двух чисел, разделенных двоеточием (например, 16:9), указывая, как высота пропорционально изменяется относительно ширины.',
|
|
16
|
+
},
|
|
17
|
+
{
|
|
18
|
+
question: 'Почему важно соблюдать правильные пропорции?',
|
|
19
|
+
answer:
|
|
20
|
+
'Игнорирование соотношения сторон приводит к сплющенным или растянутым изображениям, появлению нежелательных черных полос (letterboxing) в видео и нарушению макета веб-компонентов на экранах разного размера. Соблюдение правильных пропорций - залог профессионального вида.',
|
|
21
|
+
},
|
|
22
|
+
{
|
|
23
|
+
question: 'Как рассчитать высоту на основе ширины при заданном соотношении?',
|
|
24
|
+
answer:
|
|
25
|
+
'Формула такова: Высота = Ширина × (Число высоты / Число ширины). Например, для ширины 1280px при соотношении 16:9 высота составит: 1280 × (9/16) = 720px.',
|
|
26
|
+
},
|
|
27
|
+
{
|
|
28
|
+
question: 'Какое стандартное соотношение сторон используется для видео на YouTube?',
|
|
29
|
+
answer:
|
|
30
|
+
'16:9 - это стандартное соотношение для YouTube и большинства современных видеоплатформ. Оно соответствует таким разрешениям, как 1280×720 (HD), 1920×1080 (Full HD) или 3840×2160 (4K UHD).',
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
question: 'Какое соотношение сторон используется для вертикальных видео в соцсетях?',
|
|
34
|
+
answer:
|
|
35
|
+
'9:16, что является зеркальным отражением широкоэкранного формата. Это родное соотношение сторон для TikTok, Instagram Reels и YouTube Shorts, возникшее из-за вертикального использования мобильных телефонов.',
|
|
36
|
+
},
|
|
37
|
+
];
|
|
38
|
+
|
|
39
|
+
const howToData = [
|
|
40
|
+
{
|
|
41
|
+
name: 'Введите исходное соотношение',
|
|
42
|
+
text: 'Укажите значения ширины и высоты соотношения, которое вы хотите сохранить (например, 16 и 9 для широкоэкранного формата), или выберите один из пресетов.',
|
|
43
|
+
},
|
|
44
|
+
{
|
|
45
|
+
name: 'Настройте масштаб',
|
|
46
|
+
text: 'Измените значение ширины или высоты в разделе "Реальный масштаб". Инструмент автоматически рассчитает противоположное значение для сохранения пропорций.',
|
|
47
|
+
},
|
|
48
|
+
{
|
|
49
|
+
name: 'Проверьте результат',
|
|
50
|
+
text: 'Панель предварительного просмотра показывает итоговую форму в пропорциональном масштабе с упрощенным соотношением и рассчитанным разрешением.',
|
|
51
|
+
},
|
|
52
|
+
{
|
|
53
|
+
name: 'Примените в своем проекте',
|
|
54
|
+
text: 'Скопируйте рассчитанные значения для использования в CSS (aspect-ratio: 16 / 9), при экспорте видео или в настройках вашего графического редактора.',
|
|
55
|
+
},
|
|
56
|
+
];
|
|
57
|
+
|
|
58
|
+
const faqSchema: WithContext<FAQPage> = {
|
|
59
|
+
'@context': 'https://schema.org',
|
|
60
|
+
'@type': 'FAQPage',
|
|
61
|
+
mainEntity: faqData.map((item) => ({
|
|
62
|
+
'@type': 'Question',
|
|
63
|
+
name: item.question,
|
|
64
|
+
acceptedAnswer: { '@type': 'Answer', text: item.answer },
|
|
65
|
+
})),
|
|
66
|
+
};
|
|
67
|
+
|
|
68
|
+
const howToSchema: WithContext<HowToThing> = {
|
|
69
|
+
'@context': 'https://schema.org',
|
|
70
|
+
'@type': 'HowTo',
|
|
71
|
+
name: title,
|
|
72
|
+
description,
|
|
73
|
+
step: howToData.map((step, i) => ({
|
|
74
|
+
'@type': 'HowToStep',
|
|
75
|
+
position: i + 1,
|
|
76
|
+
name: step.name,
|
|
77
|
+
text: step.text,
|
|
78
|
+
})),
|
|
79
|
+
};
|
|
80
|
+
|
|
81
|
+
const appSchema: WithContext<SoftwareApplication> = {
|
|
82
|
+
'@context': 'https://schema.org',
|
|
83
|
+
'@type': 'SoftwareApplication',
|
|
84
|
+
name: title,
|
|
85
|
+
description,
|
|
86
|
+
applicationCategory: 'UtilityApplication',
|
|
87
|
+
operatingSystem: 'All',
|
|
88
|
+
offers: { '@type': 'Offer', price: '0', priceCurrency: 'EUR' },
|
|
89
|
+
inLanguage: 'ru',
|
|
90
|
+
};
|
|
91
|
+
|
|
92
|
+
const ui: AspectRatioUI = {
|
|
93
|
+
labelConfig: 'Настройка',
|
|
94
|
+
labelRatio: 'Исходное соотношение',
|
|
95
|
+
labelWidth: 'Ширина',
|
|
96
|
+
labelHeight: 'Высота',
|
|
97
|
+
labelScale: 'Реальный масштаб',
|
|
98
|
+
labelPixelWidth: 'Пиксели (Ширина)',
|
|
99
|
+
labelPixelHeight: 'Пиксели (Высота)',
|
|
100
|
+
labelPreview: 'Пропорциональный просмотр',
|
|
101
|
+
labelStatus: 'Идеальное соотношение',
|
|
102
|
+
labelOffline: '100% автономный инструмент',
|
|
103
|
+
};
|
|
104
|
+
|
|
105
|
+
export const content: ToolLocaleContent<AspectRatioUI> = {
|
|
106
|
+
slug,
|
|
107
|
+
title,
|
|
108
|
+
description,
|
|
109
|
+
ui,
|
|
110
|
+
faqTitle: 'Часто задаваемые вопросы',
|
|
111
|
+
faq: faqData,
|
|
112
|
+
bibliographyTitle: 'Ссылки и документация',
|
|
113
|
+
bibliography,
|
|
114
|
+
howTo: howToData,
|
|
115
|
+
schemas: [faqSchema, howToSchema, appSchema],
|
|
116
|
+
seo: [
|
|
117
|
+
{
|
|
118
|
+
type: 'title',
|
|
119
|
+
text: 'Что такое соотношение сторон?',
|
|
120
|
+
level: 2,
|
|
121
|
+
},
|
|
122
|
+
{
|
|
123
|
+
type: 'paragraph',
|
|
124
|
+
html: 'В графическом дизайне, фотографии и фронтенд-разработке <strong>соотношение сторон</strong> (Aspect Ratio) описывает геометрическую связь между шириной и высотой изображения, экрана или контейнера. Обычно оно представляется двумя числами через двоеточие (например, <code>16:9</code>), указывая, как высота пропорционально изменяется в ответ на ширину.',
|
|
125
|
+
},
|
|
126
|
+
{
|
|
127
|
+
type: 'paragraph',
|
|
128
|
+
html: 'Несоблюдение соотношения сторон - частая причина сплющенных фотографий, видео с неожиданной обрезкой (letterboxing) или веб-компонентов, макет которых нарушается при просмотре на разных устройствах - от мобильных телефонов до ультрашироких мониторов.',
|
|
129
|
+
},
|
|
130
|
+
{
|
|
131
|
+
type: 'title',
|
|
132
|
+
text: 'Общепринятые стандарты в индустрии',
|
|
133
|
+
level: 3,
|
|
134
|
+
},
|
|
135
|
+
{
|
|
136
|
+
type: 'paragraph',
|
|
137
|
+
html: 'В зависимости от вашей дисциплины вы будете постоянно сталкиваться с ограниченным набором мировых стандартов пропорций:',
|
|
138
|
+
},
|
|
139
|
+
{
|
|
140
|
+
type: 'list',
|
|
141
|
+
items: [
|
|
142
|
+
'<strong>16:9 (Широкоэкранный):</strong> Абсолютно доминирующий формат для современных мониторов, телевизоров, видео на YouTube или стандартных разрешений высокой четкости (таких как 1920×1080 или 4K).',
|
|
143
|
+
'<strong>9:16 (Вертикальный):</strong> Возник из-за потребления контента на мобильных устройствах (TikTok, Instagram Reels, YouTube Shorts). Точно такое же соотношение, как у широкоэкранного видео, но при физическом повороте устройства.',
|
|
144
|
+
'<strong>4:3 (Классический):</strong> Встречается в старых телевизорах и мониторах, а также в аналоговых и специализированных цифровых камерах. Его почти квадратный вид привлекает внимание к центральной оси композиции.',
|
|
145
|
+
],
|
|
146
|
+
},
|
|
147
|
+
{
|
|
148
|
+
type: 'title',
|
|
149
|
+
text: 'Веб-разработка и свойство CSS aspect-ratio',
|
|
150
|
+
level: 3,
|
|
151
|
+
},
|
|
152
|
+
{
|
|
153
|
+
type: 'paragraph',
|
|
154
|
+
html: 'Раньше в CSS использовались сложные математические системы с <strong>Padding Hack</strong> (например, <code>padding-top: 56.25%</code>) для резервирования динамического пространства для YouTube iframe или фоновых изображений, чтобы избежать скачков контента (Cumulative Layout Shift, CLS) при загрузке страницы.',
|
|
155
|
+
},
|
|
156
|
+
{
|
|
157
|
+
type: 'paragraph',
|
|
158
|
+
html: 'Сейчас все современные макеты напрямую применяют свойство <code>aspect-ratio: 16 / 9;</code>, создавая семантичный код и позволяя браузеру автоматически рассчитывать недостающее измерение на основе оригинальной ширины, заданной через Grid или Flexbox.',
|
|
159
|
+
},
|
|
160
|
+
{
|
|
161
|
+
type: 'paragraph',
|
|
162
|
+
html: 'Этот локальный калькулятор пикселей позволяет мгновенно рассчитать масштаб дизайна, что защитит ваши макеты от критических ошибок в настройках.',
|
|
163
|
+
},
|
|
164
|
+
],
|
|
165
|
+
};
|