@jjlmoya/utils-audiovisual 1.7.0 → 1.8.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 +2 -1
- package/src/category/i18n/de.ts +198 -0
- package/src/category/i18n/id.ts +198 -0
- package/src/category/i18n/it.ts +198 -0
- package/src/category/i18n/ja.ts +198 -0
- package/src/category/i18n/ko.ts +198 -0
- package/src/category/i18n/nl.ts +198 -0
- package/src/category/i18n/pl.ts +198 -0
- package/src/category/i18n/pt.ts +198 -0
- package/src/category/i18n/ru.ts +198 -0
- package/src/category/i18n/sv.ts +198 -0
- package/src/category/i18n/tr.ts +198 -0
- package/src/category/i18n/zh.ts +198 -0
- package/src/category/index.ts +31 -3
- package/src/tests/i18n_coverage.test.ts +36 -0
- package/src/tool/chromaticLens/i18n/de.ts +246 -0
- package/src/tool/chromaticLens/i18n/id.ts +246 -0
- package/src/tool/chromaticLens/i18n/it.ts +246 -0
- package/src/tool/chromaticLens/i18n/ja.ts +246 -0
- package/src/tool/chromaticLens/i18n/ko.ts +246 -0
- package/src/tool/chromaticLens/i18n/nl.ts +246 -0
- package/src/tool/chromaticLens/i18n/pl.ts +246 -0
- package/src/tool/chromaticLens/i18n/pt.ts +246 -0
- package/src/tool/chromaticLens/i18n/ru.ts +246 -0
- package/src/tool/chromaticLens/i18n/sv.ts +246 -0
- package/src/tool/chromaticLens/i18n/tr.ts +246 -0
- package/src/tool/chromaticLens/i18n/zh.ts +246 -0
- package/src/tool/chromaticLens/index.ts +15 -7
- package/src/tool/collageMaker/i18n/de.ts +233 -0
- package/src/tool/collageMaker/i18n/id.ts +233 -0
- package/src/tool/collageMaker/i18n/it.ts +233 -0
- package/src/tool/collageMaker/i18n/ja.ts +233 -0
- package/src/tool/collageMaker/i18n/ko.ts +233 -0
- package/src/tool/collageMaker/i18n/nl.ts +233 -0
- package/src/tool/collageMaker/i18n/pl.ts +233 -0
- package/src/tool/collageMaker/i18n/pt.ts +233 -0
- package/src/tool/collageMaker/i18n/ru.ts +233 -0
- package/src/tool/collageMaker/i18n/sv.ts +233 -0
- package/src/tool/collageMaker/i18n/tr.ts +233 -0
- package/src/tool/collageMaker/i18n/zh.ts +233 -0
- package/src/tool/collageMaker/index.ts +15 -6
- package/src/tool/exifCleaner/i18n/de.ts +277 -0
- package/src/tool/exifCleaner/i18n/fr.ts +1 -1
- package/src/tool/exifCleaner/i18n/id.ts +277 -0
- package/src/tool/exifCleaner/i18n/it.ts +277 -0
- package/src/tool/exifCleaner/i18n/ja.ts +277 -0
- package/src/tool/exifCleaner/i18n/ko.ts +277 -0
- package/src/tool/exifCleaner/i18n/nl.ts +277 -0
- package/src/tool/exifCleaner/i18n/pl.ts +277 -0
- package/src/tool/exifCleaner/i18n/pt.ts +277 -0
- package/src/tool/exifCleaner/i18n/ru.ts +277 -0
- package/src/tool/exifCleaner/i18n/sv.ts +277 -0
- package/src/tool/exifCleaner/i18n/tr.ts +277 -0
- package/src/tool/exifCleaner/i18n/zh.ts +277 -0
- package/src/tool/exifCleaner/index.ts +16 -8
- package/src/tool/imageCompressor/i18n/de.ts +242 -0
- package/src/tool/imageCompressor/i18n/en.ts +1 -1
- package/src/tool/imageCompressor/i18n/es.ts +1 -1
- package/src/tool/imageCompressor/i18n/id.ts +242 -0
- package/src/tool/imageCompressor/i18n/it.ts +242 -0
- package/src/tool/imageCompressor/i18n/ja.ts +242 -0
- package/src/tool/imageCompressor/i18n/ko.ts +242 -0
- package/src/tool/imageCompressor/i18n/nl.ts +242 -0
- package/src/tool/imageCompressor/i18n/pl.ts +242 -0
- package/src/tool/imageCompressor/i18n/pt.ts +242 -0
- package/src/tool/imageCompressor/i18n/ru.ts +242 -0
- package/src/tool/imageCompressor/i18n/sv.ts +242 -0
- package/src/tool/imageCompressor/i18n/tr.ts +242 -0
- package/src/tool/imageCompressor/i18n/zh.ts +244 -0
- package/src/tool/imageCompressor/index.ts +15 -7
- package/src/tool/printQualityCalculator/i18n/de.ts +261 -0
- package/src/tool/printQualityCalculator/i18n/fr.ts +1 -1
- package/src/tool/printQualityCalculator/i18n/id.ts +261 -0
- package/src/tool/printQualityCalculator/i18n/it.ts +261 -0
- package/src/tool/printQualityCalculator/i18n/ja.ts +261 -0
- package/src/tool/printQualityCalculator/i18n/ko.ts +261 -0
- package/src/tool/printQualityCalculator/i18n/nl.ts +261 -0
- package/src/tool/printQualityCalculator/i18n/pl.ts +261 -0
- package/src/tool/printQualityCalculator/i18n/pt.ts +261 -0
- package/src/tool/printQualityCalculator/i18n/ru.ts +261 -0
- package/src/tool/printQualityCalculator/i18n/sv.ts +261 -0
- package/src/tool/printQualityCalculator/i18n/tr.ts +261 -0
- package/src/tool/printQualityCalculator/i18n/zh.ts +261 -0
- package/src/tool/printQualityCalculator/index.ts +15 -7
- package/src/tool/privacyBlur/i18n/de.ts +238 -0
- package/src/tool/privacyBlur/i18n/id.ts +238 -0
- package/src/tool/privacyBlur/i18n/it.ts +238 -0
- package/src/tool/privacyBlur/i18n/ja.ts +238 -0
- package/src/tool/privacyBlur/i18n/ko.ts +238 -0
- package/src/tool/privacyBlur/i18n/nl.ts +238 -0
- package/src/tool/privacyBlur/i18n/pl.ts +238 -0
- package/src/tool/privacyBlur/i18n/pt.ts +238 -0
- package/src/tool/privacyBlur/i18n/ru.ts +238 -0
- package/src/tool/privacyBlur/i18n/sv.ts +238 -0
- package/src/tool/privacyBlur/i18n/tr.ts +238 -0
- package/src/tool/privacyBlur/i18n/zh.ts +238 -0
- package/src/tool/privacyBlur/index.ts +15 -7
- package/src/tool/subtitleSync/i18n/de.ts +241 -0
- package/src/tool/subtitleSync/i18n/fr.ts +5 -5
- package/src/tool/subtitleSync/i18n/id.ts +241 -0
- package/src/tool/subtitleSync/i18n/it.ts +241 -0
- package/src/tool/subtitleSync/i18n/ja.ts +241 -0
- package/src/tool/subtitleSync/i18n/ko.ts +241 -0
- package/src/tool/subtitleSync/i18n/nl.ts +241 -0
- package/src/tool/subtitleSync/i18n/pl.ts +241 -0
- package/src/tool/subtitleSync/i18n/pt.ts +241 -0
- package/src/tool/subtitleSync/i18n/ru.ts +241 -0
- package/src/tool/subtitleSync/i18n/sv.ts +241 -0
- package/src/tool/subtitleSync/i18n/tr.ts +241 -0
- package/src/tool/subtitleSync/i18n/zh.ts +241 -0
- package/src/tool/subtitleSync/index.ts +15 -7
- package/src/tool/timelapseCalculator/i18n/de.ts +169 -0
- package/src/tool/timelapseCalculator/i18n/fr.ts +2 -2
- package/src/tool/timelapseCalculator/i18n/id.ts +169 -0
- package/src/tool/timelapseCalculator/i18n/it.ts +169 -0
- package/src/tool/timelapseCalculator/i18n/ja.ts +169 -0
- package/src/tool/timelapseCalculator/i18n/ko.ts +169 -0
- package/src/tool/timelapseCalculator/i18n/nl.ts +169 -0
- package/src/tool/timelapseCalculator/i18n/pl.ts +169 -0
- package/src/tool/timelapseCalculator/i18n/pt.ts +169 -0
- package/src/tool/timelapseCalculator/i18n/ru.ts +169 -0
- package/src/tool/timelapseCalculator/i18n/sv.ts +169 -0
- package/src/tool/timelapseCalculator/i18n/tr.ts +169 -0
- package/src/tool/timelapseCalculator/i18n/zh.ts +169 -0
- package/src/tool/timelapseCalculator/index.ts +16 -8
- package/src/tool/tvDistance/i18n/de.ts +223 -0
- package/src/tool/tvDistance/i18n/id.ts +223 -0
- package/src/tool/tvDistance/i18n/it.ts +223 -0
- package/src/tool/tvDistance/i18n/ja.ts +223 -0
- package/src/tool/tvDistance/i18n/ko.ts +223 -0
- package/src/tool/tvDistance/i18n/nl.ts +223 -0
- package/src/tool/tvDistance/i18n/pl.ts +223 -0
- package/src/tool/tvDistance/i18n/pt.ts +223 -0
- package/src/tool/tvDistance/i18n/ru.ts +223 -0
- package/src/tool/tvDistance/i18n/sv.ts +223 -0
- package/src/tool/tvDistance/i18n/tr.ts +223 -0
- package/src/tool/tvDistance/i18n/zh.ts +223 -0
- package/src/tool/tvDistance/index.ts +15 -7
- package/src/tool/videoFrameExtractor/i18n/de.ts +235 -0
- package/src/tool/videoFrameExtractor/i18n/id.ts +235 -0
- package/src/tool/videoFrameExtractor/i18n/it.ts +235 -0
- package/src/tool/videoFrameExtractor/i18n/ja.ts +235 -0
- package/src/tool/videoFrameExtractor/i18n/ko.ts +235 -0
- package/src/tool/videoFrameExtractor/i18n/nl.ts +235 -0
- package/src/tool/videoFrameExtractor/i18n/pl.ts +235 -0
- package/src/tool/videoFrameExtractor/i18n/pt.ts +235 -0
- package/src/tool/videoFrameExtractor/i18n/ru.ts +235 -0
- package/src/tool/videoFrameExtractor/i18n/sv.ts +235 -0
- package/src/tool/videoFrameExtractor/i18n/tr.ts +235 -0
- package/src/tool/videoFrameExtractor/i18n/zh.ts +235 -0
- package/src/tool/videoFrameExtractor/index.ts +16 -8
|
@@ -0,0 +1,242 @@
|
|
|
1
|
+
import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
|
|
2
|
+
import type { ImageCompressorUI, ImageCompressorLocaleContent } from '../index';
|
|
3
|
+
|
|
4
|
+
const slug = 'onlayn-kompressor-izobrazheniy-umenshit-razmer-bez-poteri-kachestva';
|
|
5
|
+
const title = 'Онлайн компрессор изображений: уменьшите вес без потери качества';
|
|
6
|
+
const description = 'Оптимизируйте и сжимайте ваши фото JPG, PNG и WebP бесплатно. Уменьшите размер файла, чтобы ускорить загрузку вашего сайта локально.';
|
|
7
|
+
|
|
8
|
+
const ui: ImageCompressorUI = {
|
|
9
|
+
dropTitle: "Оптимизация изображений",
|
|
10
|
+
dropSubtitle: "Перетащите ваши фото, чтобы мгновенно уменьшить их вес.",
|
|
11
|
+
settingsTitle: "Настройки сжатия",
|
|
12
|
+
qualityLabel: "Визуальное качество",
|
|
13
|
+
widthLabel: "Максимальная ширина (пиксели)",
|
|
14
|
+
convertToWebpLabel: "Конвертировать в WebP",
|
|
15
|
+
compressionLabel: "Сжатие",
|
|
16
|
+
compressBtn: "Сжать изображение",
|
|
17
|
+
processingLabel: "Обработка...",
|
|
18
|
+
resultsTitle: "Оптимизированные изображения",
|
|
19
|
+
originalSizeLabel: "Исходный размер",
|
|
20
|
+
newSizeLabel: "Новый размер",
|
|
21
|
+
reductionLabel: "Экономия",
|
|
22
|
+
downloadBtn: "Скачать",
|
|
23
|
+
addMoreBtn: "Добавить еще",
|
|
24
|
+
browseFilesBtn: "Выбрать файлы",
|
|
25
|
+
processedFilesTitle: "Обработанные файлы",
|
|
26
|
+
downloadAllBtn: "Скачать все",
|
|
27
|
+
adjustThisImage: "Настроить это изображение",
|
|
28
|
+
downloadTitle: "Скачать",
|
|
29
|
+
maxWidthLabel: "Макс. ширина (px)",
|
|
30
|
+
closeBtn: "Закрыть",
|
|
31
|
+
totalSavingsLabel: "Общая экономия",
|
|
32
|
+
noSavings: "Нет чистой экономии",
|
|
33
|
+
faqTitle: "Часто задаваемые вопросы",
|
|
34
|
+
bibliographyTitle: "Ссылки"
|
|
35
|
+
};
|
|
36
|
+
|
|
37
|
+
const faq: ImageCompressorLocaleContent['faq'] = [
|
|
38
|
+
{
|
|
39
|
+
question: "Как работает сжатие без потерь?",
|
|
40
|
+
answer: "Мы используем алгоритмы, которые удаляют ненужные метаданные и оптимизируют кодирование пикселей. При выборе WebP используется более продвинутая технология сжатия, чем в традиционных форматах.",
|
|
41
|
+
},
|
|
42
|
+
{
|
|
43
|
+
question: "Загружаются ли мои изображения на какой-либо сервер?",
|
|
44
|
+
answer: "Нет. Вся обработка происходит на 100% в вашем браузере (Client-Side). Ваши фотографии никогда не покидают ваш компьютер, что гарантирует абсолютную конфиденциальность.",
|
|
45
|
+
},
|
|
46
|
+
{
|
|
47
|
+
question: "Почему мне стоит конвертировать в WebP?",
|
|
48
|
+
answer: "WebP — это современный стандартный формат для интернета. Он предлагает более высокое качество, чем JPG и PNG, при весе на 30% меньше, что ускоряет загрузку страниц.",
|
|
49
|
+
},
|
|
50
|
+
];
|
|
51
|
+
|
|
52
|
+
const howTo: ImageCompressorLocaleContent['howTo'] = [
|
|
53
|
+
{
|
|
54
|
+
name: "Загрузите изображение",
|
|
55
|
+
text: "Загрузите файл, который вы хотите сжать (JPG, PNG или WebP).",
|
|
56
|
+
},
|
|
57
|
+
{
|
|
58
|
+
name: "Настройте качество",
|
|
59
|
+
text: "Используйте слайдер, чтобы найти идеальный баланс между размером файла и визуальным качеством (рекомендуется: 75 85%).",
|
|
60
|
+
},
|
|
61
|
+
{
|
|
62
|
+
name: "Измените размер (опционально)",
|
|
63
|
+
text: "Если изображение очень большое, вы можете указать максимальную ширину, чтобы уменьшить его разрешение.",
|
|
64
|
+
},
|
|
65
|
+
{
|
|
66
|
+
name: "Скачайте результат",
|
|
67
|
+
text: "Нажмите кнопку скачивания, чтобы получить оптимизированное изображение, готовое к использованию.",
|
|
68
|
+
},
|
|
69
|
+
];
|
|
70
|
+
|
|
71
|
+
const bibliography: ImageCompressorLocaleContent['bibliography'] = [
|
|
72
|
+
{
|
|
73
|
+
name: "WebP: формат изображений для веба",
|
|
74
|
+
url: "https://developers.google.com/speed/webp",
|
|
75
|
+
},
|
|
76
|
+
{
|
|
77
|
+
name: "Важность оптимизации изображений для SEO",
|
|
78
|
+
url: "https://developers.google.com/search/docs/appearance/google-images",
|
|
79
|
+
},
|
|
80
|
+
];
|
|
81
|
+
|
|
82
|
+
const seo: ImageCompressorLocaleContent['seo'] = [
|
|
83
|
+
{
|
|
84
|
+
type: 'summary',
|
|
85
|
+
title: 'Профессиональная оптимизация веб изображений',
|
|
86
|
+
items: [
|
|
87
|
+
'Интеллектуальное сжатие JPG, PNG и WebP',
|
|
88
|
+
'Уменьшение веса на 50-80% при сохранении визуального качества',
|
|
89
|
+
'100% локальная обработка — конфиденциальность гарантирована',
|
|
90
|
+
'Улучшение Core Web Vitals и позиций в SEO'
|
|
91
|
+
]
|
|
92
|
+
},
|
|
93
|
+
{ type: 'title', text: 'Оптимизация изображений: скорость веба и Core Web Vitals', level: 2 },
|
|
94
|
+
{ type: 'paragraph', html: 'В эпоху цифровой мгновенности медленный веб-сайт теряет пользователей. Неоптимизированные изображения составляют 60-70% от общего веса веб-страницы. Их оптимизация — это первый шаг к улучшению ваших метрик Google (LCP, CLS) и вашего позиционирования в результатах поиска.' },
|
|
95
|
+
|
|
96
|
+
{ type: 'stats', items: [
|
|
97
|
+
{ value: '50-80%', label: 'Типичное сокращение веса', icon: 'mdi:trending-down' },
|
|
98
|
+
{ value: '100%', label: 'Локальная приватность', icon: 'mdi:lock' },
|
|
99
|
+
{ value: '+30%', label: 'Быстрее, чем JPG', icon: 'mdi:speedometer' }
|
|
100
|
+
], columns: 3 },
|
|
101
|
+
|
|
102
|
+
{ type: 'title', text: 'Объяснение форматов сжатия', level: 3 },
|
|
103
|
+
{ type: 'table', headers: ['Формат', 'Сжатие', 'Варианты использования', 'Совместимость'], rows: [
|
|
104
|
+
['JPEG', 'С потерями 50-90%', 'Фото с камеры, редакционный контент', 'Универсальный (100%)'],
|
|
105
|
+
['PNG', 'Без потерь 30-50%', 'Графика, логотипы, прозрачность', 'Универсальный (100%)'],
|
|
106
|
+
['WebP', 'С потерями/без потерь на 25-35% эффективнее', 'Современный веб, соцсети', '95% современных браузеров'],
|
|
107
|
+
['AVIF', 'С потерями/без потерь на 20% лучше', 'Веб следующего поколения', 'Только новые браузеры']
|
|
108
|
+
] },
|
|
109
|
+
|
|
110
|
+
{ type: 'card', title: 'Почему WebP — это будущее', html: 'Google разработал WebP специально для веба. Он предлагает лучшее сжатие, чем JPEG и PNG, сохраняя или улучшая визуальное качество. Он на 25-35% меньше эквивалентов JPEG. Современные браузеры поддерживают его на 95%.' },
|
|
111
|
+
|
|
112
|
+
{ type: 'title', text: 'Сжатие с потерями и без потерь', level: 3 },
|
|
113
|
+
{ type: 'comparative', items: [
|
|
114
|
+
{
|
|
115
|
+
title: 'Сжатие с потерями (Lossy)',
|
|
116
|
+
description: 'JPG, WebP — удаляет незаметную визуальную информацию',
|
|
117
|
+
icon: 'mdi:compress',
|
|
118
|
+
points: [
|
|
119
|
+
'Уменьшает вес на 70-90% от исходного',
|
|
120
|
+
'Незаметно для человеческого глаза, если качество >75%',
|
|
121
|
+
'Идеально для реалистичных фотографий',
|
|
122
|
+
'Не рекомендуется для логотипов или четкого текста'
|
|
123
|
+
],
|
|
124
|
+
highlight: true
|
|
125
|
+
},
|
|
126
|
+
{
|
|
127
|
+
title: 'Сжатие без потерь (Lossless)',
|
|
128
|
+
description: 'PNG, WebP без потерь — сохраняет 100% визуальных данных',
|
|
129
|
+
icon: 'mdi:shield',
|
|
130
|
+
points: [
|
|
131
|
+
'Уменьшает вес на 20-50%',
|
|
132
|
+
'Идеальное качество, отсутствие деградации',
|
|
133
|
+
'Идеально для графики, логотипов, прозрачности',
|
|
134
|
+
'Файлы тяжелее, чем при сжатии с потерями'
|
|
135
|
+
]
|
|
136
|
+
}
|
|
137
|
+
], columns: 2 },
|
|
138
|
+
|
|
139
|
+
{ type: 'title', text: 'Влияние на SEO и конверсию', level: 3 },
|
|
140
|
+
{ type: 'list', items: [
|
|
141
|
+
'<strong>Core Web Vitals:</strong> Google наказывает медленные сайты. Оптимизированные изображения напрямую улучшают LCP (Largest Contentful Paint).',
|
|
142
|
+
'<strong>Показатель отказов:</strong> Каждая секунда задержки = +7% к показателю отказов. Быстрые изображения = меньше уходящих пользователей.',
|
|
143
|
+
'<strong>Поисковый рейтинг:</strong> Скорость является фактором ранжирования. Оптимизация изображений повышает позиции.',
|
|
144
|
+
'<strong>Конверсия:</strong> Более быстрая загрузка = больше конверсий. Исследования показывают +10% к конверсии при оптимизации.'
|
|
145
|
+
], icon: 'mdi:check' },
|
|
146
|
+
|
|
147
|
+
{ type: 'proscons', items: [
|
|
148
|
+
{
|
|
149
|
+
pro: 'Полная конфиденциальность: 100% локальная обработка, без облачных серверов',
|
|
150
|
+
con: 'Требуется браузер с поддержкой Canvas API (это стандарт)'
|
|
151
|
+
},
|
|
152
|
+
{
|
|
153
|
+
pro: 'WebP на 25-35% меньше, чем JPEG при равном качестве',
|
|
154
|
+
con: 'Старые версии Safari и IE не поддерживают WebP (доступен фолбек)'
|
|
155
|
+
},
|
|
156
|
+
{
|
|
157
|
+
pro: 'Мгновенная обработка нескольких изображений',
|
|
158
|
+
con: 'Очень большие изображения (>50 МБ) могут потребовать времени ожидания'
|
|
159
|
+
},
|
|
160
|
+
{
|
|
161
|
+
pro: 'Опциональное изменение размера: уменьшает как разрешение, так и сжатие',
|
|
162
|
+
con: 'Изменение размера приводит к потере информации — лучше оптимизировать разрешение в источнике'
|
|
163
|
+
}
|
|
164
|
+
], proTitle: 'Преимущества', conTitle: 'Ограничения' },
|
|
165
|
+
|
|
166
|
+
{ type: 'diagnostic', variant: 'warning', title: 'Осторожно: чрезмерное сжатие портит качество', icon: 'mdi:alert', badge: 'Качество', html: 'Сохраняйте качество >75% для фотографий и >85% для редакционного контента. Ниже этих значений становятся заметны артефакты сжатия (пятна, полосы). Изображение, которое хорошо выглядит в миниатюре, может выглядеть плохо в большом размере.' },
|
|
167
|
+
|
|
168
|
+
{ type: 'glossary', items: [
|
|
169
|
+
{
|
|
170
|
+
term: 'Сжатие с потерями (Lossy)',
|
|
171
|
+
definition: 'Удаляет визуальные данные, которые человеческий глаз воспринимает как «шум». Идеально для фотографий. JPEG, WebP с потерями, HEIC являются форматами с потерями.'
|
|
172
|
+
},
|
|
173
|
+
{
|
|
174
|
+
term: 'Сжатие без потерь (Lossless)',
|
|
175
|
+
definition: 'Уменьшает размер без потери визуальной информации. PNG и WebP без потерь. Идеально для графики, логотипов, прозрачности.'
|
|
176
|
+
},
|
|
177
|
+
{
|
|
178
|
+
term: 'Core Web Vitals (Google)',
|
|
179
|
+
definition: 'Метрики пользовательского опыта: LCP (скорость загрузки), FID (задержка взаимодействия), CLS (визуальная стабильность). Влияют на SEO-рейтинг.'
|
|
180
|
+
},
|
|
181
|
+
{
|
|
182
|
+
term: 'WebP',
|
|
183
|
+
definition: 'Формат, разработанный Google. На 25-35% меньше, чем JPEG. Поддерживается 95% современных браузеров (все, кроме IE).'
|
|
184
|
+
},
|
|
185
|
+
{
|
|
186
|
+
term: 'Артефакты сжатия',
|
|
187
|
+
definition: 'Визуальные дефекты, вызванные чрезмерным сжатием: пятна, цветовые полосы, размытые края. Незаметны при качестве >75%.'
|
|
188
|
+
}
|
|
189
|
+
] },
|
|
190
|
+
|
|
191
|
+
{ type: 'message', title: 'Профессиональная веб оптимизация', ariaLabel: 'Информация об оптимизации изображений для SEO', html: 'Это не техническая прихоть: сжатие изображений — это прямая инвестиция в пользовательский опыт и рейтинг в Google. На мобильных устройствах важен каждый килобайт. Наш инструмент превращает то, что раньше требовало профессионального ПО ($$$), в бесплатный процесс в 3 клика.' },
|
|
192
|
+
|
|
193
|
+
{ type: 'title', text: 'Готовы к современному вебу', level: 3 },
|
|
194
|
+
{ type: 'paragraph', html: 'Используйте интеллектуальное сжатие и формат WebP, чтобы ваше онлайн-присутствие было быстрым, адаптивным и конкурентоспособным в поиске. Профессиональное качество, минимальный вес, мгновенная загрузка.' }
|
|
195
|
+
];
|
|
196
|
+
|
|
197
|
+
const faqSchema: WithContext<FAQPage> = {
|
|
198
|
+
'@context': 'https://schema.org',
|
|
199
|
+
'@type': 'FAQPage',
|
|
200
|
+
mainEntity: faq.map((item) => ({
|
|
201
|
+
'@type': 'Question',
|
|
202
|
+
name: item.question,
|
|
203
|
+
acceptedAnswer: { '@type': 'Answer', text: item.answer },
|
|
204
|
+
})),
|
|
205
|
+
};
|
|
206
|
+
|
|
207
|
+
const howToSchema: WithContext<HowTo> = {
|
|
208
|
+
'@context': 'https://schema.org',
|
|
209
|
+
'@type': 'HowTo',
|
|
210
|
+
name: title,
|
|
211
|
+
description,
|
|
212
|
+
step: howTo.map((step) => ({
|
|
213
|
+
'@type': 'HowToStep',
|
|
214
|
+
name: step.name,
|
|
215
|
+
text: step.text,
|
|
216
|
+
})),
|
|
217
|
+
};
|
|
218
|
+
|
|
219
|
+
const appSchema: WithContext<SoftwareApplication> = {
|
|
220
|
+
'@context': 'https://schema.org',
|
|
221
|
+
'@type': 'SoftwareApplication',
|
|
222
|
+
name: title,
|
|
223
|
+
description,
|
|
224
|
+
applicationCategory: 'UtilitiesApplication',
|
|
225
|
+
operatingSystem: 'Web',
|
|
226
|
+
offers: { '@type': 'Offer', price: '0', priceCurrency: 'EUR' },
|
|
227
|
+
inLanguage: 'ru',
|
|
228
|
+
};
|
|
229
|
+
|
|
230
|
+
export const content: ImageCompressorLocaleContent = {
|
|
231
|
+
slug,
|
|
232
|
+
title,
|
|
233
|
+
description,
|
|
234
|
+
ui,
|
|
235
|
+
seo,
|
|
236
|
+
faqTitle: "Часто задаваемые вопросы",
|
|
237
|
+
faq,
|
|
238
|
+
bibliographyTitle: "Ссылки",
|
|
239
|
+
bibliography,
|
|
240
|
+
howTo,
|
|
241
|
+
schemas: [faqSchema as any, howToSchema as any, appSchema],
|
|
242
|
+
};
|
|
@@ -0,0 +1,242 @@
|
|
|
1
|
+
import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
|
|
2
|
+
import type { ImageCompressorUI, ImageCompressorLocaleContent } from '../index';
|
|
3
|
+
|
|
4
|
+
const slug = 'online-image-compressor-minska-filstorlek-utan-kvalitetsforlust';
|
|
5
|
+
const title = 'Online Bildkompressor: Minska vikten utan att förlora kvalitet';
|
|
6
|
+
const description = 'Optimera och komprimera dina JPG-, PNG- och WebP-foton gratis. Minska filstorleken för att förbättra din webbladdningshastighet lokalt.';
|
|
7
|
+
|
|
8
|
+
const ui: ImageCompressorUI = {
|
|
9
|
+
dropTitle: "Optimera Bilder",
|
|
10
|
+
dropSubtitle: "Dra dina foton hit för att minska deras vikt omedelbart.",
|
|
11
|
+
settingsTitle: "Komprimeringsinställningar",
|
|
12
|
+
qualityLabel: "Visuell Kvalitet",
|
|
13
|
+
widthLabel: "Maximal Bredd (Pixlar)",
|
|
14
|
+
convertToWebpLabel: "Konvertera till WebP",
|
|
15
|
+
compressionLabel: "Komprimering",
|
|
16
|
+
compressBtn: "Komprimera Bild",
|
|
17
|
+
processingLabel: "Bearbetar...",
|
|
18
|
+
resultsTitle: "Optimerade Bilder",
|
|
19
|
+
originalSizeLabel: "Ursprunglig Storlek",
|
|
20
|
+
newSizeLabel: "Ny Storlek",
|
|
21
|
+
reductionLabel: "Besparing",
|
|
22
|
+
downloadBtn: "Ladda ner",
|
|
23
|
+
addMoreBtn: "Lägg till fler",
|
|
24
|
+
browseFilesBtn: "Bläddra bland filer",
|
|
25
|
+
processedFilesTitle: "Bearbetade Filer",
|
|
26
|
+
downloadAllBtn: "Ladda ner alla",
|
|
27
|
+
adjustThisImage: "Justera denna bild",
|
|
28
|
+
downloadTitle: "Ladda ner",
|
|
29
|
+
maxWidthLabel: "Max bredd (px)",
|
|
30
|
+
closeBtn: "Stäng",
|
|
31
|
+
totalSavingsLabel: "Total besparing",
|
|
32
|
+
noSavings: "Ingen nettobesparing",
|
|
33
|
+
faqTitle: "Vanliga Frågor",
|
|
34
|
+
bibliographyTitle: "Referenser"
|
|
35
|
+
};
|
|
36
|
+
|
|
37
|
+
const faq: ImageCompressorLocaleContent['faq'] = [
|
|
38
|
+
{
|
|
39
|
+
question: "Hur fungerar förlustfri komprimering?",
|
|
40
|
+
answer: "Vi använder algoritmer som tar bort onödiga metadata och optimerar pixelkodning. När du väljer WebP används en mer avancerad komprimeringsteknik än i traditionella format.",
|
|
41
|
+
},
|
|
42
|
+
{
|
|
43
|
+
question: "Laddas mina bilder upp till någon server?",
|
|
44
|
+
answer: "Nej. All bearbetning sker 100% i din webbläsare (Client-Side). Dina foton lämnar aldrig din enhet, vilket garanterar absolut integritet.",
|
|
45
|
+
},
|
|
46
|
+
{
|
|
47
|
+
question: "Varför ska jag konvertera till WebP?",
|
|
48
|
+
answer: "WebP är det moderna standardformatet för webben. Det erbjuder överlägsen kvalitet jämfört med JPG och PNG med en vikt som är upp till 30% mindre, vilket snabbar upp sidladdningstiden.",
|
|
49
|
+
},
|
|
50
|
+
];
|
|
51
|
+
|
|
52
|
+
const howTo: ImageCompressorLocaleContent['howTo'] = [
|
|
53
|
+
{
|
|
54
|
+
name: "Ladda upp bilden",
|
|
55
|
+
text: "Ladda upp filen du vill komprimera (JPG, PNG eller WebP).",
|
|
56
|
+
},
|
|
57
|
+
{
|
|
58
|
+
name: "Justera kvaliteten",
|
|
59
|
+
text: "Använd skjutreglaget för att hitta den perfekta balansen mellan filstorlek och visuell kvalitet (rekommenderas: 75 85%).",
|
|
60
|
+
},
|
|
61
|
+
{
|
|
62
|
+
name: "Ändra storlek (valfritt)",
|
|
63
|
+
text: "Om bilden är mycket stor kan du ange en maximal bredd för att minska dess upplösning.",
|
|
64
|
+
},
|
|
65
|
+
{
|
|
66
|
+
name: "Ladda ner resultatet",
|
|
67
|
+
text: "Tryck på nedladdningsknappen för att få din optimerade bild redo att användas.",
|
|
68
|
+
},
|
|
69
|
+
];
|
|
70
|
+
|
|
71
|
+
const bibliography: ImageCompressorLocaleContent['bibliography'] = [
|
|
72
|
+
{
|
|
73
|
+
name: "WebP: Ett bildformat för webben",
|
|
74
|
+
url: "https://developers.google.com/speed/webp",
|
|
75
|
+
},
|
|
76
|
+
{
|
|
77
|
+
name: "Betydelsen av bildoptimering för SEO",
|
|
78
|
+
url: "https://developers.google.com/search/docs/appearance/google-images",
|
|
79
|
+
},
|
|
80
|
+
];
|
|
81
|
+
|
|
82
|
+
const seo: ImageCompressorLocaleContent['seo'] = [
|
|
83
|
+
{
|
|
84
|
+
type: 'summary',
|
|
85
|
+
title: 'Professionell Webbaldbildoptimering',
|
|
86
|
+
items: [
|
|
87
|
+
'Intelligent JPG-, PNG- och WebP-komprimering',
|
|
88
|
+
'Minska vikten med 50-80% med bibehållen visuell kvalitet',
|
|
89
|
+
'100% lokal bearbetning - integritet garanterad',
|
|
90
|
+
'Förbättra Core Web Vitals och SEO-positionering'
|
|
91
|
+
]
|
|
92
|
+
},
|
|
93
|
+
{ type: 'title', text: 'Bildoptimering: Webbhastighet och Core Web Vitals', level: 2 },
|
|
94
|
+
{ type: 'paragraph', html: 'I den digitala omedelbarhetens era förlorar en långsam webbplats användare. Ooptimerade bilder representerar 60-70% av den totala vikten på en webbsida. Att optimera dem är det första steget för att förbättra dina Google-mått (LCP, CLS) och din positionering i sökresultaten.' },
|
|
95
|
+
|
|
96
|
+
{ type: 'stats', items: [
|
|
97
|
+
{ value: '50-80%', label: 'Typisk Viktminskning', icon: 'mdi:trending-down' },
|
|
98
|
+
{ value: '100%', label: 'Lokal Integritet', icon: 'mdi:lock' },
|
|
99
|
+
{ value: '+30%', label: 'Snabbare än JPG', icon: 'mdi:speedometer' }
|
|
100
|
+
], columns: 3 },
|
|
101
|
+
|
|
102
|
+
{ type: 'title', text: 'Komprimeringsformat Förklaras', level: 3 },
|
|
103
|
+
{ type: 'table', headers: ['Format', 'Komprimering', 'Användningsfall', 'Kompatibilitet'], rows: [
|
|
104
|
+
['JPEG', 'Lossy 50-90%', 'Kamerafoton, redaktionellt innehåll', 'Universell (100%)'],
|
|
105
|
+
['PNG', 'Lossless 30-50%', 'Grafik, logotyper, transparens', 'Universell (100%)'],
|
|
106
|
+
['WebP', 'Lossy/Lossless 25-35% mer', 'Modern webb, sociala nätverk', '95% moderna webbläsare'],
|
|
107
|
+
['AVIF', 'Lossy/Lossless 20% förbättring', 'Nästa generations webb', 'Endast nya webbläsare']
|
|
108
|
+
] },
|
|
109
|
+
|
|
110
|
+
{ type: 'card', title: 'Varför WebP är Framtiden', html: 'Google utvecklade WebP specifikt för webben. Det erbjuder överlägsen komprimering jämfört med JPEG och PNG, med bibehållen eller förbättrad visuell kvalitet. Det är 25-35% mindre än motsvarande JPEG-bilder. Moderna webbläsare stöder det till 95%.' },
|
|
111
|
+
|
|
112
|
+
{ type: 'title', text: 'Lossy vs Lossless Komprimering', level: 3 },
|
|
113
|
+
{ type: 'comparative', items: [
|
|
114
|
+
{
|
|
115
|
+
title: 'Lossy Komprimering',
|
|
116
|
+
description: 'JPG, WebP - Tar bort omärklig visuell information',
|
|
117
|
+
icon: 'mdi:compress',
|
|
118
|
+
points: [
|
|
119
|
+
'Minskar 70-90% av ursprunglig vikt',
|
|
120
|
+
'Omärkligt för det mänskliga ögat om kvaliteten behålls >75%',
|
|
121
|
+
'Idealisk för realistisk fotografering',
|
|
122
|
+
'Rekommenderas inte för logotyper eller skarp text'
|
|
123
|
+
],
|
|
124
|
+
highlight: true
|
|
125
|
+
},
|
|
126
|
+
{
|
|
127
|
+
title: 'Lossless Komprimering',
|
|
128
|
+
description: 'PNG, WebP lossless - Behåller 100% visuell data',
|
|
129
|
+
icon: 'mdi:shield',
|
|
130
|
+
points: [
|
|
131
|
+
'Minskar 20-50% av vikten',
|
|
132
|
+
'Perfekt kvalitet, ingen försämring',
|
|
133
|
+
'Idealisk för grafik, logotyper, transparens',
|
|
134
|
+
'Tyngre filer än med Lossy'
|
|
135
|
+
]
|
|
136
|
+
}
|
|
137
|
+
], columns: 2 },
|
|
138
|
+
|
|
139
|
+
{ type: 'title', text: 'Inverkan på SEO och Konvertering', level: 3 },
|
|
140
|
+
{ type: 'list', items: [
|
|
141
|
+
'<strong>Core Web Vitals:</strong> Google straffar långsamma webbplatser. Optimerade bilder förbättrar LCP (Largest Contentful Paint) direkt.',
|
|
142
|
+
'<strong>Avvisningsfrekvens:</strong> Varje sekund av fördröjning = 7% högre avvisning. Snabbare bilder = färre användare som lämnar.',
|
|
143
|
+
'<strong>Sökranking:</strong> Hastighet är en rankingfaktor. Optimering av bilder boostar positioneringen.',
|
|
144
|
+
'<strong>Konvertering:</strong> Snabbare laddningstider = fler konverteringar. Studier visar +10% konvertering med optimering.'
|
|
145
|
+
], icon: 'mdi:check' },
|
|
146
|
+
|
|
147
|
+
{ type: 'proscons', items: [
|
|
148
|
+
{
|
|
149
|
+
pro: 'Total integritet: 100% lokal bearbetning, inga molnservrar',
|
|
150
|
+
con: 'Kräver webbläsare med stöd för Canvas API (det är universellt)'
|
|
151
|
+
},
|
|
152
|
+
{
|
|
153
|
+
pro: 'WebP är 25-35% mindre än JPEG med samma kvalitet',
|
|
154
|
+
con: 'Gamla Safari och IE stöder inte WebP (fallback finns tillgänglig)'
|
|
155
|
+
},
|
|
156
|
+
{
|
|
157
|
+
pro: 'Omedelbar bearbetning av flera bilder',
|
|
158
|
+
con: 'Mycket stora bilder (>50MB) kan kräva väntetid'
|
|
159
|
+
},
|
|
160
|
+
{
|
|
161
|
+
pro: 'Valfri ändring av storlek: minskar upplösning såväl som komprimering',
|
|
162
|
+
con: 'Ändring av storlek förlorar information - bättre att optimera upplösningen vid källan'
|
|
163
|
+
}
|
|
164
|
+
], proTitle: 'Fördelar', conTitle: 'Begränsningar' },
|
|
165
|
+
|
|
166
|
+
{ type: 'diagnostic', variant: 'warning', title: 'Varning: Överdriven komprimering försämrar kvaliteten', icon: 'mdi:alert', badge: 'Kvalitet', html: 'Behåll kvaliteten >75% för fotografering och >85% för redaktionellt innehåll. Därunder blir komprimeringsartefakter (fläckar, bandning) synliga. En bild som ser bra ut i miniatyr kan se dålig ut i stort format.' },
|
|
167
|
+
|
|
168
|
+
{ type: 'glossary', items: [
|
|
169
|
+
{
|
|
170
|
+
term: 'Lossy Komprimering',
|
|
171
|
+
definition: 'Tar bort visuella data som det mänskliga ögat uppfattar som \"brus\". Idealisk för fotografering. JPEG, lossy WebP, HEIC är lossy.'
|
|
172
|
+
},
|
|
173
|
+
{
|
|
174
|
+
term: 'Lossless Komprimering',
|
|
175
|
+
definition: 'Minskar storleken utan att förlora visuell information. PNG och lossless WebP. Idealisk för grafik, logotyper, transparens.'
|
|
176
|
+
},
|
|
177
|
+
{
|
|
178
|
+
term: 'Core Web Vitals (Google)',
|
|
179
|
+
definition: 'Mätvärden för användarupplevelse: LCP (laddningshastighet), FID (interaktionslatens), CLS (visuell stabilitet). Påverkar SEO-ranking.'
|
|
180
|
+
},
|
|
181
|
+
{
|
|
182
|
+
term: 'WebP',
|
|
183
|
+
definition: 'Format utvecklat av Google. 25-35% mindre än JPEG. Stöds av 95% av moderna webbläsare (alla utom IE).'
|
|
184
|
+
},
|
|
185
|
+
{
|
|
186
|
+
term: 'Komprimeringsartefakter',
|
|
187
|
+
definition: 'Visuella defekter orsakade av överdriven komprimering: fläckar, färgbandning, suddiga kanter. Omärkligt vid >75% kvalitet.'
|
|
188
|
+
}
|
|
189
|
+
] },
|
|
190
|
+
|
|
191
|
+
{ type: 'message', title: 'Professionell Webboptimering', ariaLabel: 'Information om bildoptimering för SEO', html: 'Det är inte teknisk fåfänga: att komprimera bilder är en direkt investering i användarupplevelse och ranking i Google. Varje kilobyte räknas på mobilen. Vårt verktyg förvandlar det som tidigare krävde professionell programvara ($$$) till en gratis process på 3 klick.' },
|
|
192
|
+
|
|
193
|
+
{ type: 'title', text: 'Förberedd för den Moderna Webben', level: 3 },
|
|
194
|
+
{ type: 'paragraph', html: 'Använd intelligent komprimering och WebP-format så att din online-närvaro är snabb, responsiv och konkurrenskraftig i sökningar. Professionell kvalitet, minimal vikt, omedelbar laddning.' }
|
|
195
|
+
];
|
|
196
|
+
|
|
197
|
+
const faqSchema: WithContext<FAQPage> = {
|
|
198
|
+
'@context': 'https://schema.org',
|
|
199
|
+
'@type': 'FAQPage',
|
|
200
|
+
mainEntity: faq.map((item) => ({
|
|
201
|
+
'@type': 'Question',
|
|
202
|
+
name: item.question,
|
|
203
|
+
acceptedAnswer: { '@type': 'Answer', text: item.answer },
|
|
204
|
+
})),
|
|
205
|
+
};
|
|
206
|
+
|
|
207
|
+
const howToSchema: WithContext<HowTo> = {
|
|
208
|
+
'@context': 'https://schema.org',
|
|
209
|
+
'@type': 'HowTo',
|
|
210
|
+
name: title,
|
|
211
|
+
description,
|
|
212
|
+
step: howTo.map((step) => ({
|
|
213
|
+
'@type': 'HowToStep',
|
|
214
|
+
name: step.name,
|
|
215
|
+
text: step.text,
|
|
216
|
+
})),
|
|
217
|
+
};
|
|
218
|
+
|
|
219
|
+
const appSchema: WithContext<SoftwareApplication> = {
|
|
220
|
+
'@context': 'https://schema.org',
|
|
221
|
+
'@type': 'SoftwareApplication',
|
|
222
|
+
name: title,
|
|
223
|
+
description,
|
|
224
|
+
applicationCategory: 'UtilitiesApplication',
|
|
225
|
+
operatingSystem: 'Web',
|
|
226
|
+
offers: { '@type': 'Offer', price: '0', priceCurrency: 'EUR' },
|
|
227
|
+
inLanguage: 'sv',
|
|
228
|
+
};
|
|
229
|
+
|
|
230
|
+
export const content: ImageCompressorLocaleContent = {
|
|
231
|
+
slug,
|
|
232
|
+
title,
|
|
233
|
+
description,
|
|
234
|
+
ui,
|
|
235
|
+
seo,
|
|
236
|
+
faqTitle: "Vanliga Frågor",
|
|
237
|
+
faq,
|
|
238
|
+
bibliographyTitle: "Referenser",
|
|
239
|
+
bibliography,
|
|
240
|
+
howTo,
|
|
241
|
+
schemas: [faqSchema as any, howToSchema as any, appSchema],
|
|
242
|
+
};
|