@jjlmoya/utils-audiovisual 1.19.0 → 1.20.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.
Files changed (68) hide show
  1. package/package.json +1 -1
  2. package/src/category/i18n/de.ts +1 -1
  3. package/src/category/i18n/fr.ts +1 -1
  4. package/src/category/i18n/ru.ts +1 -1
  5. package/src/tests/diacritics_density.test.ts +118 -0
  6. package/src/tests/inverted_punctuation.test.ts +84 -0
  7. package/src/tests/no_en_dash.test.ts +70 -0
  8. package/src/tests/script_density.test.ts +94 -0
  9. package/src/tool/chromaticLens/i18n/de.ts +6 -6
  10. package/src/tool/chromaticLens/i18n/fr.ts +3 -3
  11. package/src/tool/chromaticLens/i18n/pl.ts +1 -1
  12. package/src/tool/chromaticLens/i18n/ru.ts +10 -10
  13. package/src/tool/chromaticLens/i18n/zh.ts +2 -2
  14. package/src/tool/collageMaker/i18n/de.ts +6 -6
  15. package/src/tool/collageMaker/i18n/fr.ts +4 -4
  16. package/src/tool/collageMaker/i18n/pl.ts +5 -5
  17. package/src/tool/collageMaker/i18n/ru.ts +12 -12
  18. package/src/tool/collageMaker/i18n/sv.ts +3 -3
  19. package/src/tool/collageMaker/i18n/zh.ts +1 -1
  20. package/src/tool/depthOfFieldCalculator/i18n/de.ts +3 -3
  21. package/src/tool/depthOfFieldCalculator/i18n/en.ts +7 -7
  22. package/src/tool/depthOfFieldCalculator/i18n/es.ts +2 -2
  23. package/src/tool/depthOfFieldCalculator/i18n/fr.ts +6 -6
  24. package/src/tool/depthOfFieldCalculator/i18n/id.ts +2 -2
  25. package/src/tool/depthOfFieldCalculator/i18n/it.ts +2 -2
  26. package/src/tool/depthOfFieldCalculator/i18n/ja.ts +1 -1
  27. package/src/tool/depthOfFieldCalculator/i18n/ko.ts +1 -1
  28. package/src/tool/depthOfFieldCalculator/i18n/nl.ts +2 -2
  29. package/src/tool/depthOfFieldCalculator/i18n/pl.ts +2 -2
  30. package/src/tool/depthOfFieldCalculator/i18n/pt.ts +2 -2
  31. package/src/tool/depthOfFieldCalculator/i18n/ru.ts +6 -6
  32. package/src/tool/depthOfFieldCalculator/i18n/sv.ts +2 -2
  33. package/src/tool/depthOfFieldCalculator/i18n/tr.ts +1 -1
  34. package/src/tool/depthOfFieldCalculator/i18n/zh.ts +3 -3
  35. package/src/tool/exifCleaner/i18n/de.ts +8 -8
  36. package/src/tool/exifCleaner/i18n/fr.ts +11 -11
  37. package/src/tool/exifCleaner/i18n/pl.ts +6 -6
  38. package/src/tool/exifCleaner/i18n/ru.ts +14 -14
  39. package/src/tool/exifCleaner/i18n/zh.ts +3 -3
  40. package/src/tool/imageCompressor/i18n/de.ts +16 -16
  41. package/src/tool/imageCompressor/i18n/fr.ts +8 -8
  42. package/src/tool/imageCompressor/i18n/pl.ts +1 -1
  43. package/src/tool/imageCompressor/i18n/ru.ts +9 -9
  44. package/src/tool/imageCompressor/i18n/zh.ts +1 -1
  45. package/src/tool/printQualityCalculator/component.astro +118 -110
  46. package/src/tool/printQualityCalculator/i18n/de.ts +5 -5
  47. package/src/tool/printQualityCalculator/i18n/fr.ts +11 -11
  48. package/src/tool/printQualityCalculator/i18n/pl.ts +4 -4
  49. package/src/tool/printQualityCalculator/i18n/ru.ts +11 -11
  50. package/src/tool/printQualityCalculator/i18n/zh.ts +4 -4
  51. package/src/tool/printQualityCalculator/print-quality-calculator-pixels-to-cm-dpi.css +193 -40
  52. package/src/tool/privacyBlur/i18n/de.ts +5 -5
  53. package/src/tool/privacyBlur/i18n/fr.ts +9 -9
  54. package/src/tool/privacyBlur/i18n/ru.ts +6 -6
  55. package/src/tool/subtitleSync/i18n/de.ts +1 -1
  56. package/src/tool/subtitleSync/i18n/fr.ts +9 -9
  57. package/src/tool/subtitleSync/i18n/ru.ts +6 -6
  58. package/src/tool/subtitleSync/i18n/sv.ts +4 -4
  59. package/src/tool/timelapseCalculator/i18n/fr.ts +6 -6
  60. package/src/tool/timelapseCalculator/i18n/ru.ts +3 -3
  61. package/src/tool/timelapseCalculator/i18n/zh.ts +4 -4
  62. package/src/tool/tvDistance/i18n/fr.ts +2 -2
  63. package/src/tool/tvDistance/i18n/ru.ts +9 -9
  64. package/src/tool/tvDistance/i18n/zh.ts +4 -4
  65. package/src/tool/videoFrameExtractor/i18n/fr.ts +8 -8
  66. package/src/tool/videoFrameExtractor/i18n/ru.ts +2 -2
  67. package/src/tool/videoMerger/i18n/de.ts +1 -1
  68. package/src/tool/videoMerger/i18n/fr.ts +6 -6
@@ -65,7 +65,7 @@ const seo: CollageMakerLocaleContent['seo'] = [
65
65
  'Traitement instantané sans limites d\'utilisation'
66
66
  ]
67
67
  },
68
- { type: 'title', text: 'Conception de Collages : Des Compositions qui Racontent des Histoires', level: 2 },
68
+ { type: 'title', text: 'Conception de Collages: Des Compositions qui Racontent des Histoires', level: 2 },
69
69
  { type: 'paragraph', html: 'Un collage est plus qu\'un mélange de photos ; c\'est un récit visuel qui communique une émotion et un contexte. Notre outil permet de créer des compositions géométriques professionnelles pour Instagram, Facebook, Pinterest ou des projets personnels sans avoir besoin de Photoshop ou de logiciels coûteux.' },
70
70
 
71
71
  { type: 'stats', items: [
@@ -74,7 +74,7 @@ const seo: CollageMakerLocaleContent['seo'] = [
74
74
  { value: 'Instantané', label: 'Génération', icon: 'mdi:lightning-bolt' }
75
75
  ], columns: 3 },
76
76
 
77
- { type: 'title', text: 'Composition Visuelle : Principes de Design', level: 3 },
77
+ { type: 'title', text: 'Composition Visuelle: Principes de Design', level: 3 },
78
78
  { type: 'paragraph', html: 'La composition est l\'art d\'organiser les éléments visuels de manière à guider l\'œil du spectateur et à communiquer une intention. Un bon collage équilibre :' },
79
79
  { type: 'list', items: [
80
80
  '<strong>Équilibre :</strong> Distribution visuelle du poids (images claires vs sombres, grandes vs petites).',
@@ -119,7 +119,7 @@ const seo: CollageMakerLocaleContent['seo'] = [
119
119
  }
120
120
  ], columns: 3 },
121
121
 
122
- { type: 'title', text: 'Personnalisation : Bordures et Couleurs', level: 3 },
122
+ { type: 'title', text: 'Personnalisation: Bordures et Couleurs', level: 3 },
123
123
  { type: 'table', headers: ['Élément', 'Effet Visuel', 'Recommandation'], rows: [
124
124
  ['Bordure Blanche', 'Propre, minimaliste, moderne', 'Réseaux sociaux, portfolios numériques'],
125
125
  ['Bordure Noire', 'Dramatique, professionnel, artistique', 'Photographie d\'art, mode, luxe'],
@@ -155,7 +155,7 @@ const seo: CollageMakerLocaleContent['seo'] = [
155
155
  },
156
156
  {
157
157
  term: 'Règle des Tiers',
158
- definition: 'Principe de composition : divise l\'image en 9 zones égales (3x3). Positionnez les sujets sur les lignes d\'intersection pour un impact maximal.'
158
+ definition: 'Principe de composition: divise l\'image en 9 zones égales (3x3). Positionnez les sujets sur les lignes d\'intersection pour un impact maximal.'
159
159
  },
160
160
  {
161
161
  term: 'Grille Symétrique',
@@ -80,7 +80,7 @@ const seo: CollageMakerLocaleContent['seo'] = [
80
80
  '<strong>Równowagę:</strong> Wizualne rozłożenie ciężaru (jasne vs ciemne obrazy, duże vs małe).',
81
81
  '<strong>Przepływ Wizualny:</strong> Wzrok powinien naturalnie poruszać się po kompozycji, bez martwych punktów.',
82
82
  '<strong>Kontrast:</strong> Zmiany koloru, rozmiaru i kształtu, które przyciągają uwagę.',
83
- '<strong>Jedność:</strong> Spójność tematyczna obrazy muszą mówić razem o tej samej historii.'
83
+ '<strong>Jedność:</strong> Spójność tematyczna - obrazy muszą \"mówić razem\" o tej samej historii.'
84
84
  ], icon: 'mdi:check' },
85
85
 
86
86
  { type: 'card', title: 'Inteligentne i adaptacyjne projekty', html: 'Nasz system automatycznie oblicza optymalny rozkład przestrzeni na podstawie liczby zdjęć. 2 zdjęcia = siatka symetryczna; 5 zdjęć = zrównoważony rozkład asymetryczny. Każda siatka jest zaprojektowana tak, aby zmaksymalizować wpływ wizualny.' },
@@ -88,7 +88,7 @@ const seo: CollageMakerLocaleContent['seo'] = [
88
88
  { type: 'comparative', items: [
89
89
  {
90
90
  title: 'Dla mediów społecznościowych',
91
- description: 'Instagram, TikTok, Facebook formaty kwadratowe',
91
+ description: 'Instagram, TikTok, Facebook - formaty kwadratowe',
92
92
  icon: 'mdi:share-all',
93
93
  points: [
94
94
  '1200px to idealna rozdzielczość dla feedu na Instagramie',
@@ -129,7 +129,7 @@ const seo: CollageMakerLocaleContent['seo'] = [
129
129
 
130
130
  { type: 'proscons', items: [
131
131
  {
132
- pro: 'Profesjonalne predefiniowane projekty nie wymaga wiedzy o kompozycji',
132
+ pro: 'Profesjonalne predefiniowane projekty - nie wymaga wiedzy o kompozycji',
133
133
  con: 'Opcje ograniczone do ustalonych siatek'
134
134
  },
135
135
  {
@@ -137,7 +137,7 @@ const seo: CollageMakerLocaleContent['seo'] = [
137
137
  con: 'Mniejsza swoboda niż w Photoshopie'
138
138
  },
139
139
  {
140
- pro: '100% lokalne przetwarzanie prywatność, szybkość, brak limitów',
140
+ pro: '100% lokalne przetwarzanie - prywatność, szybkość, brak limitów',
141
141
  con: 'Wymaga nowoczesnej przeglądarki'
142
142
  },
143
143
  {
@@ -171,7 +171,7 @@ const seo: CollageMakerLocaleContent['seo'] = [
171
171
  }
172
172
  ] },
173
173
 
174
- { type: 'message', title: 'Natychmiastowa Narracja Wizualna', ariaLabel: 'Informacje o kompozycji i kolażach', html: 'Każdy kolaż opowiada historię. Nasz automatyczny projektant dba o to, aby Twoje wizualne historie były zrównoważone, profesjonalne i gotowe na świat bez konieczności czekania na pracę grafika.' },
174
+ { type: 'message', title: 'Natychmiastowa Narracja Wizualna', ariaLabel: 'Informacje o kompozycji i kolażach', html: 'Każdy kolaż opowiada historię. Nasz automatyczny projektant dba o to, aby Twoje wizualne historie były zrównoważone, profesjonalne i gotowe na świat - bez konieczności czekania na pracę grafika.' },
175
175
 
176
176
  { type: 'title', text: 'Twórz, Udostępniaj, Inspiruj', level: 3 },
177
177
  { type: 'paragraph', html: 'Dobrze zrobiony kolaż to różnica między postem, o którym szybko się zapomina, a takim, który obserwujący zapamiętają i udostępnią. Wykorzystaj inteligentną kompozycję w swoich wizualnych historiach, aby wywrzeć wrażenie.' }
@@ -8,7 +8,7 @@ const description = 'Создавайте фотоколлажи бесплат
8
8
 
9
9
  const ui: CollageMakerUI = {
10
10
  dropTitle: "Перетащите изображения сюда",
11
- dropSub: "или {link} мин. 2, макс. 9",
11
+ dropSub: "или {link} - мин. 2, макс. 9",
12
12
  dropLink: "выберите файлы",
13
13
  imgsLoaded: "Загруженные изображения",
14
14
  layoutLabel: "Макет",
@@ -66,7 +66,7 @@ const seo: CollageMakerLocaleContent['seo'] = [
66
66
  ]
67
67
  },
68
68
  { type: 'title', text: 'Дизайн коллажа: композиции, которые рассказывают истории', level: 2 },
69
- { type: 'paragraph', html: 'Коллаж это больше, чем просто набор фотографий; это визуальное повествование, передающее эмоции и контекст. Наш инструмент позволяет создавать профессиональные геометрические композиции для Instagram, Facebook, Pinterest или личных проектов без использования Photoshop или дорогого ПО.' },
69
+ { type: 'paragraph', html: 'Коллаж - это больше, чем просто набор фотографий; это визуальное повествование, передающее эмоции и контекст. Наш инструмент позволяет создавать профессиональные геометрические композиции для Instagram, Facebook, Pinterest или личных проектов без использования Photoshop или дорогого ПО.' },
70
70
 
71
71
  { type: 'stats', items: [
72
72
  { value: '2-9', label: 'Фото в коллаже', icon: 'mdi:image-multiple' },
@@ -75,12 +75,12 @@ const seo: CollageMakerLocaleContent['seo'] = [
75
75
  ], columns: 3 },
76
76
 
77
77
  { type: 'title', text: 'Визуальная композиция: принципы дизайна', level: 3 },
78
- { type: 'paragraph', html: 'Композиция это искусство организации визуальных элементов так, чтобы направлять взгляд зрителя и передавать идею. Хороший коллаж соблюдает баланс:' },
78
+ { type: 'paragraph', html: 'Композиция - это искусство организации визуальных элементов так, чтобы направлять взгляд зрителя и передавать идею. Хороший коллаж соблюдает баланс:' },
79
79
  { type: 'list', items: [
80
80
  '<strong>Баланс:</strong> визуальное распределение веса (светлые и темные фото, крупные и мелкие детали).',
81
- '<strong>Визуальный поток:</strong> взгляд должен плавно перемещаться по композиции без «мертвых зон».',
81
+ '<strong>Визуальный поток:</strong> взгляд должен плавно перемещаться по композиции без \"мертвых зон\".',
82
82
  '<strong>Контраст:</strong> различия в цвете, размере и форме, привлекающие внимание.',
83
- '<strong>Единство:</strong> тематическая связность изображения должны «говорить вместе» об одной истории.'
83
+ '<strong>Единство:</strong> тематическая связность - изображения должны \"говорить вместе\" об одной истории.'
84
84
  ], icon: 'mdi:check' },
85
85
 
86
86
  { type: 'card', title: 'Умные и адаптивные макеты', html: 'Наша система автоматически рассчитывает оптимальное распределение пространства в зависимости от количества фотографий. 2 фото = симметричная сетка; 5 фото = сбалансированное асимметричное распределение. Каждая сетка разработана для максимального визуального эффекта.' },
@@ -88,10 +88,10 @@ const seo: CollageMakerLocaleContent['seo'] = [
88
88
  { type: 'comparative', items: [
89
89
  {
90
90
  title: 'Для социальных сетей',
91
- description: 'Instagram, TikTok, Facebook квадратные форматы',
91
+ description: 'Instagram, TikTok, Facebook - квадратные форматы',
92
92
  icon: 'mdi:share-all',
93
93
  points: [
94
- '1200px идеальное разрешение для ленты Instagram',
94
+ '1200px - идеальное разрешение для ленты Instagram',
95
95
  'Квадратный формат исключает обрезку при публикации',
96
96
  'Настраиваемые рамки для личного брендинга'
97
97
  ],
@@ -129,7 +129,7 @@ const seo: CollageMakerLocaleContent['seo'] = [
129
129
 
130
130
  { type: 'proscons', items: [
131
131
  {
132
- pro: 'Профессиональные макеты знания композиции не требуются',
132
+ pro: 'Профессиональные макеты - знания композиции не требуются',
133
133
  con: 'Ограниченный выбор готовых сеток'
134
134
  },
135
135
  {
@@ -137,7 +137,7 @@ const seo: CollageMakerLocaleContent['seo'] = [
137
137
  con: 'Меньше гибкости, чем в Photoshop'
138
138
  },
139
139
  {
140
- pro: '100% локальная обработка конфиденциальность, скорость, без лимитов',
140
+ pro: '100% локальная обработка - конфиденциальность, скорость, без лимитов',
141
141
  con: 'Требуется современный браузер'
142
142
  },
143
143
  {
@@ -146,7 +146,7 @@ const seo: CollageMakerLocaleContent['seo'] = [
146
146
  }
147
147
  ], proTitle: 'Преимущества', conTitle: 'Ограничения' },
148
148
 
149
- { type: 'diagnostic', variant: 'success', title: 'Готов для соцсетей', icon: 'mdi:check-circle-outline', badge: 'Оптимизирован', html: '1200x1200px идеальное разрешение для Instagram. Оно поддерживает любые пропорции, но квадратный формат максимизирует эффект в ленте, исключает обрезку и отлично смотрится на десктопе, планшете и смартфоне.' },
149
+ { type: 'diagnostic', variant: 'success', title: 'Готов для соцсетей', icon: 'mdi:check-circle-outline', badge: 'Оптимизирован', html: '1200x1200px - идеальное разрешение для Instagram. Оно поддерживает любые пропорции, но квадратный формат максимизирует эффект в ленте, исключает обрезку и отлично смотрится на десктопе, планшете и смартфоне.' },
150
150
 
151
151
  { type: 'glossary', items: [
152
152
  {
@@ -171,10 +171,10 @@ const seo: CollageMakerLocaleContent['seo'] = [
171
171
  }
172
172
  ] },
173
173
 
174
- { type: 'message', title: 'Мгновенная визуальная история', ariaLabel: 'Информация о композиции и коллажах', html: 'Каждый коллаж это история. Наш автоматический дизайнер позаботится о том, чтобы она была сбалансированной и профессиональной. Вам не нужно ждать работы графического дизайнера.' },
174
+ { type: 'message', title: 'Мгновенная визуальная история', ariaLabel: 'Информация о композиции и коллажах', html: 'Каждый коллаж - это история. Наш автоматический дизайнер позаботится о том, чтобы она была сбалансированной и профессиональной. Вам не нужно ждать работы графического дизайнера.' },
175
175
 
176
176
  { type: 'title', text: 'Создавайте, делитесь, вдохновляйте', level: 3 },
177
- { type: 'paragraph', html: 'Качественный коллаж это разница между обычным постом и тем, который запомнят и репостнут. Используйте умную композицию, чтобы ваши истории производили эффект.' }
177
+ { type: 'paragraph', html: 'Качественный коллаж - это разница между обычным постом и тем, который запомнят и репостнут. Используйте умную композицию, чтобы ваши истории производили эффект.' }
178
178
  ];
179
179
 
180
180
  const faqSchema: WithContext<FAQPage> = {
@@ -80,7 +80,7 @@ const seo: CollageMakerLocaleContent['seo'] = [
80
80
  '<strong>Balans:</strong> Visuell fördelning av vikt (ljusa vs mörka bilder, stora vs små).',
81
81
  '<strong>Visuellt flöde:</strong> Ögat bör röra sig naturligt genom kompositionen utan döda punkter.',
82
82
  '<strong>Kontrast:</strong> Variationer i färg, storlek och form som fångar uppmärksamheten.',
83
- '<strong>Enhet:</strong> Tematisk koherens bilderna måste \"tala tillsammans\" om samma berättelse.'
83
+ '<strong>Enhet:</strong> Tematisk koherens - bilderna måste \"tala tillsammans\" om samma berättelse.'
84
84
  ], icon: 'mdi:check' },
85
85
 
86
86
  { type: 'card', title: 'Smarta och adaptiva designer', html: 'Vårt system beräknar automatiskt den optimala rumsfördelningen baserat på antalet foton. 2 bilder = symmetriskt rutnät; 5 bilder = balanserad asymmetrisk fördelning. Varje rutnät är utformat för att maximera den visuella effekten.' },
@@ -129,7 +129,7 @@ const seo: CollageMakerLocaleContent['seo'] = [
129
129
 
130
130
  { type: 'proscons', items: [
131
131
  {
132
- pro: 'Professionella fördefinierade designer inga förkunskaper i komposition krävs',
132
+ pro: 'Professionella fördefinierade designer - inga förkunskaper i komposition krävs',
133
133
  con: 'Alternativen är begränsade till förutbestämda rutnät'
134
134
  },
135
135
  {
@@ -137,7 +137,7 @@ const seo: CollageMakerLocaleContent['seo'] = [
137
137
  con: 'Inte lika anpassningsbart som Photoshop'
138
138
  },
139
139
  {
140
- pro: '100% lokal bearbetning integritet, snabbhet, inga gränser',
140
+ pro: '100% lokal bearbetning - integritet, snabbhet, inga gränser',
141
141
  con: 'Kräver en modern webbläsare'
142
142
  },
143
143
  {
@@ -80,7 +80,7 @@ const seo: CollageMakerLocaleContent['seo'] = [
80
80
  '<strong>平衡:</strong> 视觉重量的分布(明亮与阴暗图像、大图与小图)。',
81
81
  '<strong>视觉流:</strong> 视线应自然地穿过构图,没有死角。',
82
82
  '<strong>对比:</strong> 颜色、大小和形状的变化,以吸引注意力。',
83
- '<strong>统一:</strong> 主题连贯性——图像必须“共同讲述”同一个故事。'
83
+ '<strong>统一:</strong> 主题连贯性,图像必须\"共同讲述\"同一个故事。'
84
84
  ], icon: 'mdi:check' },
85
85
 
86
86
  { type: 'card', title: '智能自适应设计', html: '我们的系统根据照片数量自动计算最佳空间分布。2 张图像 = 对称网格;5 张图像 = 平衡的非对称分布。每个网格都旨在最大化视觉冲击力。' },
@@ -10,7 +10,7 @@ const ui: DepthOfFieldUI = {
10
10
  title: 'Schärfentiefe Rechner',
11
11
  paramsTitle: 'Parameter',
12
12
  sensorLabel: 'Kamerasensor',
13
- moreLabel: 'Weitere Sensoren',
13
+ moreLabel: 'Weitere Sensoren...',
14
14
  apertureLabel: 'Blende',
15
15
  focalLabel: 'Brennweite',
16
16
  distanceLabel: 'Motivabstand',
@@ -80,7 +80,7 @@ const seo: DepthOfFieldLocaleContent['seo'] = [
80
80
 
81
81
  { type: 'title', text: 'Die hyperfokale Distanz: Maximale Schärfe', level: 3 },
82
82
  { type: 'paragraph', html: 'Wenn Sie auf die <strong>hyperfokale Distanz</strong> fokussieren, erscheint alles von der halben Distanz bis Unendlich scharf. Ideal für die Landschaftsfotografie.' },
83
- { type: 'tip', title: 'Praxistipp', html: 'Stellen Sie in der Straßenfotografie den Fokus auf die Hyperfokaldistanz ein. Mit einem 35mm-Objektiv an APS-C bei f/8 liegt diese bei ca. <strong>4 Metern</strong> alles von 2m bis Unendlich wird scharf.' },
83
+ { type: 'tip', title: 'Praxistipp', html: 'Stellen Sie in der Straßenfotografie den Fokus auf die Hyperfokaldistanz ein. Mit einem 35mm-Objektiv an APS-C bei f/8 liegt diese bei ca. <strong>4 Metern</strong> - alles von 2m bis Unendlich wird scharf.' },
84
84
 
85
85
  { type: 'title', text: 'Sensorgröße und Zerstreuungskreis', level: 3 },
86
86
  { type: 'paragraph', html: 'Der <strong>Zerstreuungskreis (CoC)</strong> definiert die akzeptable Schärfe. Ein Vollformatsensor hat einen CoC von 0,030 mm; ein Smartphonesensor ca. 0,006 mm. Kleinere CoC-Werte bedeuten strengere Schärfekriterien.' },
@@ -92,7 +92,7 @@ const seo: DepthOfFieldLocaleContent['seo'] = [
92
92
 
93
93
  { type: 'title', text: 'DoF im Kino: Brennweite vs. Sensor', level: 3 },
94
94
  { type: 'paragraph', html: 'Cinematographen, die auf Super 35 drehen, nutzen oft längere Brennweiten für den typischen "Cinematic Look". Die Kombination aus lichtstarkem Objektiv und 85mm+ Brennweite ist der Klassiker.' },
95
- { type: 'diagnostic', variant: 'success', title: 'Die Fokus Verteilungsregel', icon: 'mdi:lightbulb-outline', badge: 'Profi Technik', html: 'Bei einem Motiv in 3m Entfernung mit 50mm bei f/2.8: Der Bereich hinter dem Motiv ist immer größer als der davor etwa im <strong>Verhältnis 2:1</strong>.' },
95
+ { type: 'diagnostic', variant: 'success', title: 'Die Fokus Verteilungsregel', icon: 'mdi:lightbulb-outline', badge: 'Profi Technik', html: 'Bei einem Motiv in 3m Entfernung mit 50mm bei f/2.8: Der Bereich hinter dem Motiv ist immer größer als der davor - etwa im <strong>Verhältnis 2:1</strong>.' },
96
96
  ];
97
97
 
98
98
  const faqSchema: WithContext<FAQPage> = {
@@ -10,7 +10,7 @@ const ui: DepthOfFieldUI = {
10
10
  title: 'Depth of Field Calculator',
11
11
  paramsTitle: 'Parameters',
12
12
  sensorLabel: 'Camera Sensor',
13
- moreLabel: 'More sensors',
13
+ moreLabel: 'More sensors...',
14
14
  apertureLabel: 'Aperture',
15
15
  focalLabel: 'Focal Length',
16
16
  distanceLabel: 'Subject Distance',
@@ -40,7 +40,7 @@ const faq: DepthOfFieldLocaleContent['faq'] = [
40
40
  },
41
41
  {
42
42
  question: 'Why does a larger aperture (smaller f-number) reduce DoF?',
43
- answer: 'A wider aperture collects light over a larger area of the lens, which increases the size of the circle of confusion for out-of-focus points. This narrows the zone of acceptable sharpness the depth of field.',
43
+ answer: 'A wider aperture collects light over a larger area of the lens, which increases the size of the circle of confusion for out-of-focus points. This narrows the zone of acceptable sharpness - the depth of field.',
44
44
  },
45
45
  {
46
46
  question: 'How does sensor size affect depth of field?',
@@ -55,11 +55,11 @@ const howTo: DepthOfFieldLocaleContent['howTo'] = [
55
55
  },
56
56
  {
57
57
  name: 'Set aperture and focal length',
58
- text: 'Drag the aperture slider to choose an f-stop in 1/3-stop increments. Drag the focal length slider it uses a logarithmic scale so wide-angle changes are more granular.',
58
+ text: 'Drag the aperture slider to choose an f-stop in 1/3-stop increments. Drag the focal length slider - it uses a logarithmic scale so wide-angle changes are more granular.',
59
59
  },
60
60
  {
61
61
  name: 'Set the subject distance',
62
- text: 'Drag the subject distance slider to the distance between your camera and the main subject. Toggle between metres and feet as needed your last choice is remembered.',
62
+ text: 'Drag the subject distance slider to the distance between your camera and the main subject. Toggle between metres and feet as needed - your last choice is remembered.',
63
63
  },
64
64
  {
65
65
  name: 'Read the results',
@@ -80,7 +80,7 @@ const seo: DepthOfFieldLocaleContent['seo'] = [
80
80
 
81
81
  { type: 'title', text: 'The Hyperfocal Distance: Maximum Sharpness', level: 3 },
82
82
  { type: 'paragraph', html: 'When you focus at the <strong>hyperfocal distance</strong>, everything from half that distance to infinity appears acceptably sharp. Landscape photographers use this technique to ensure both a foreground rock and distant mountains are in focus simultaneously.' },
83
- { type: 'tip', title: 'Practical tip', html: 'For street photography, set your focus to the hyperfocal distance and shoot without looking through the viewfinder. With a 35mm lens on APS-C at f/8, the hyperfocal distance is roughly <strong>4 metres</strong> everything from 2m to infinity will be sharp.' },
83
+ { type: 'tip', title: 'Practical tip', html: 'For street photography, set your focus to the hyperfocal distance and shoot without looking through the viewfinder. With a 35mm lens on APS-C at f/8, the hyperfocal distance is roughly <strong>4 metres</strong> - everything from 2m to infinity will be sharp.' },
84
84
 
85
85
  { type: 'title', text: 'Sensor Size and the Circle of Confusion', level: 3 },
86
86
  { type: 'paragraph', html: 'The <strong>circle of confusion (CoC)</strong> is the threshold that defines "acceptable sharpness" for a given sensor format. A Full Frame sensor has a CoC of 0.030mm; a smartphone sensor uses ~0.006mm. Smaller CoC values mean stricter sharpness criteria and, consequently, shallower perceived depth of field.' },
@@ -91,8 +91,8 @@ const seo: DepthOfFieldLocaleContent['seo'] = [
91
91
  ]},
92
92
 
93
93
  { type: 'title', text: 'DoF in Cinema: Focal Length vs. Sensor', level: 3 },
94
- { type: 'paragraph', html: 'Cinematographers shooting on Super 35 (close to APS-C) frequently use longer focal lengths to compress perspective, which also narrows DoF and creates the characteristic "cinematic look". The combination of a fast prime (f/1.4f/2.8) and a 85mm+ focal length at portrait distances is the classic recipe.' },
95
- { type: 'diagnostic', variant: 'success', title: 'The Focus Distribution Rule', icon: 'mdi:lightbulb-outline', badge: 'Pro Technique', html: 'For a subject at 3 metres with a 50mm lens at f/2.8 on Full Frame: near limit ≈ 2.73m, far limit ≈ 3.33m, total DoF ≈ 60cm. The back zone is always larger than the front zone roughly <strong>2:1 ratio</strong> for most real-world distances.' },
94
+ { type: 'paragraph', html: 'Cinematographers shooting on Super 35 (close to APS-C) frequently use longer focal lengths to compress perspective, which also narrows DoF and creates the characteristic "cinematic look". The combination of a fast prime (f/1.4-f/2.8) and a 85mm+ focal length at portrait distances is the classic recipe.' },
95
+ { type: 'diagnostic', variant: 'success', title: 'The Focus Distribution Rule', icon: 'mdi:lightbulb-outline', badge: 'Pro Technique', html: 'For a subject at 3 metres with a 50mm lens at f/2.8 on Full Frame: near limit ≈ 2.73m, far limit ≈ 3.33m, total DoF ≈ 60cm. The back zone is always larger than the front zone - roughly <strong>2:1 ratio</strong> for most real-world distances.' },
96
96
  ];
97
97
 
98
98
  const faqSchema: WithContext<FAQPage> = {
@@ -10,7 +10,7 @@ const ui: DepthOfFieldUI = {
10
10
  title: 'Profundidad de Campo',
11
11
  paramsTitle: 'Parámetros',
12
12
  sensorLabel: 'Sensor de la Cámara',
13
- moreLabel: 'Más sensores',
13
+ moreLabel: 'Más sensores...',
14
14
  apertureLabel: 'Apertura',
15
15
  focalLabel: 'Distancia Focal',
16
16
  distanceLabel: 'Distancia al Sujeto',
@@ -91,7 +91,7 @@ const seo: DepthOfFieldLocaleContent['seo'] = [
91
91
  ]},
92
92
 
93
93
  { type: 'title', text: 'La Profundidad de Campo en el Cine: Focal vs. Sensor', level: 3 },
94
- { type: 'paragraph', html: 'Los cineastas que ruedan en Super 35 (cercano al APS-C) suelen usar distancias focales más largas para comprimir la perspectiva, lo que también reduce la profundidad de campo y crea el característico "look cinematográfico". La combinación de un objetivo luminoso (f/1.4f/2.8) y una focal de más de 85mm a distancias de retrato es la receta clásica.' },
94
+ { type: 'paragraph', html: 'Los cineastas que ruedan en Super 35 (cercano al APS-C) suelen usar distancias focales más largas para comprimir la perspectiva, lo que también reduce la profundidad de campo y crea el característico "look cinematográfico". La combinación de un objetivo luminoso (f/1.4-f/2.8) y una focal de más de 85mm a distancias de retrato es la receta clásica.' },
95
95
  { type: 'diagnostic', variant: 'success', title: 'La Regla de Distribución del Enfoque', icon: 'mdi:lightbulb-outline', badge: 'Técnica Pro', html: 'Para un sujeto a 3 metros con un 50mm a f/2.8 en Full Frame: límite cercano ≈ 2,73m, límite lejano ≈ 3,33m, DoF total ≈ 60cm. La zona trasera siempre es mayor que la delantera, aproximadamente en una <strong>proporción 2:1</strong> para la mayoría de distancias reales.' },
96
96
  ];
97
97
 
@@ -3,14 +3,14 @@ import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dt
3
3
  import type { DepthOfFieldUI, DepthOfFieldLocaleContent } from '../index';
4
4
 
5
5
  const slug = 'calculateur-profondeur-de-champ';
6
- const title = 'Calculateur de Profondeur de Champ : DoF en Temps Réel';
6
+ const title = 'Calculateur de Profondeur de Champ: DoF en Temps Réel';
7
7
  const description = 'Calculez la profondeur de champ, la distance hyperfocale et les limites de mise au point en temps réel. Compatible avec tous les capteurs.';
8
8
 
9
9
  const ui: DepthOfFieldUI = {
10
10
  title: 'Profondeur de Champ',
11
11
  paramsTitle: 'Paramètres',
12
12
  sensorLabel: 'Capteur de l\'Appareil',
13
- moreLabel: 'Plus de capteurs',
13
+ moreLabel: 'Plus de capteurs...',
14
14
  apertureLabel: 'Ouverture',
15
15
  focalLabel: 'Distance Focale',
16
16
  distanceLabel: 'Distance du Sujet',
@@ -78,9 +78,9 @@ const seo: DepthOfFieldLocaleContent['seo'] = [
78
78
  ['Distance du Sujet', '1m → 10m', 'Sujet plus loin = DoF plus grande'],
79
79
  ]},
80
80
 
81
- { type: 'title', text: 'La Distance Hyperfocale : Netteté Maximale', level: 3 },
81
+ { type: 'title', text: 'La Distance Hyperfocale: Netteté Maximale', level: 3 },
82
82
  { type: 'paragraph', html: 'En réglant la mise au point sur la <strong>distance hyperfocale</strong>, tout ce qui se trouve entre la moitié de cette distance et l\'infini sera net. Idéal pour les paysages.' },
83
- { type: 'tip', title: 'Conseil pratique', html: 'Pour la photo de rue, réglez votre mise au point sur l\'hyperfocale. Avec un 35mm sur APS-C à f/8, l\'hyperfocale est à environ <strong>4 mètres</strong> : tout sera net de 2m à l\'infini.' },
83
+ { type: 'tip', title: 'Conseil pratique', html: 'Pour la photo de rue, réglez votre mise au point sur l\'hyperfocale. Avec un 35mm sur APS-C à f/8, l\'hyperfocale est à environ <strong>4 mètres</strong>: tout sera net de 2m à l\'infini.' },
84
84
 
85
85
  { type: 'title', text: 'Taille du Capteur et Cercle de Confusion', level: 3 },
86
86
  { type: 'paragraph', html: 'Le <strong>cercle de confusion (CoC)</strong> définit la netteté acceptable. Un capteur Plein Format a un CoC de 0,030 mm, contre ~0,006 mm pour un smartphone. Un CoC plus petit signifie des critères de netteté plus stricts.' },
@@ -90,9 +90,9 @@ const seo: DepthOfFieldLocaleContent['seo'] = [
90
90
  { label: 'Smartphone', value: '0,006 mm', icon: 'mdi:cellphone' },
91
91
  ]},
92
92
 
93
- { type: 'title', text: 'DoF au Cinéma : Focale vs Capteur', level: 3 },
93
+ { type: 'title', text: 'DoF au Cinéma: Focale vs Capteur', level: 3 },
94
94
  { type: 'paragraph', html: 'Le tournage en Super 35 utilise souvent des focales plus longues pour compresser la perspective, créant ainsi le "look cinéma". Un objectif lumineux à 85mm est le choix classique pour le portrait.' },
95
- { type: 'diagnostic', variant: 'success', title: 'La Règle de Distribution de la Netteté', icon: 'mdi:lightbulb-outline', badge: 'Technique Pro', html: 'Pour un sujet à 3m avec un 50mm à f/2.8 : la zone nette s\'étend vers l\'arrière environ <strong>deux fois plus</strong> que vers l\'avant (ratio 2:1).' },
95
+ { type: 'diagnostic', variant: 'success', title: 'La Règle de Distribution de la Netteté', icon: 'mdi:lightbulb-outline', badge: 'Technique Pro', html: 'Pour un sujet à 3m avec un 50mm à f/2.8: la zone nette s\'étend vers l\'arrière environ <strong>deux fois plus</strong> que vers l\'avant (ratio 2:1).' },
96
96
  ];
97
97
 
98
98
  const faqSchema: WithContext<FAQPage> = {
@@ -10,7 +10,7 @@ const ui: DepthOfFieldUI = {
10
10
  title: 'Kalkulator Kedalaman Bidang',
11
11
  paramsTitle: 'Parameter',
12
12
  sensorLabel: 'Sensor Kamera',
13
- moreLabel: 'Sensor lainnya',
13
+ moreLabel: 'Sensor lainnya...',
14
14
  apertureLabel: 'Apertur',
15
15
  focalLabel: 'Panjang Fokus',
16
16
  distanceLabel: 'Jarak Objek',
@@ -92,7 +92,7 @@ const seo: DepthOfFieldLocaleContent['seo'] = [
92
92
 
93
93
  { type: 'title', text: 'DoF dalam Sinema: Panjang Fokus vs Sensor', level: 3 },
94
94
  { type: 'paragraph', html: 'Sinematografer yang menggunakan Super 35 sering menggunakan panjang fokus yang lebih panjang untuk mengompresi perspektif, yang juga mempersempit DoF dan menciptakan "tampilan sinematik".' },
95
- { type: 'diagnostic', variant: 'success', title: 'Aturan Distribusi Fokus', icon: 'mdi:lightbulb-outline', badge: 'Teknik Pro', html: 'Untuk subjek pada 3 meter dengan lensa 50mm di f/2.8 : zona tajam di belakang subjek selalu lebih besar daripada di depan kira-kira dengan <strong>rasio 2:1</strong>.' },
95
+ { type: 'diagnostic', variant: 'success', title: 'Aturan Distribusi Fokus', icon: 'mdi:lightbulb-outline', badge: 'Teknik Pro', html: 'Untuk subjek pada 3 meter dengan lensa 50mm di f/2.8: zona tajam di belakang subjek selalu lebih besar daripada di depan - kira-kira dengan <strong>rasio 2:1</strong>.' },
96
96
  ];
97
97
 
98
98
  const faqSchema: WithContext<FAQPage> = {
@@ -10,7 +10,7 @@ const ui: DepthOfFieldUI = {
10
10
  title: 'Profondità di Campo',
11
11
  paramsTitle: 'Parametri',
12
12
  sensorLabel: 'Sensore Fotocamera',
13
- moreLabel: 'Altri sensori',
13
+ moreLabel: 'Altri sensori...',
14
14
  apertureLabel: 'Apertura',
15
15
  focalLabel: 'Lunghezza Focale',
16
16
  distanceLabel: 'Distanza Soggetto',
@@ -92,7 +92,7 @@ const seo: DepthOfFieldLocaleContent['seo'] = [
92
92
 
93
93
  { type: 'title', text: 'DoF nel cinema: Focale vs Sensore', level: 3 },
94
94
  { type: 'paragraph', html: 'Riprendere in Super 35 (simile ad APS-C) spesso richiede focali più lunghe per comprimere la prospettiva, creando il classico "look cinematografico". Un 85mm luminoso è ideale per i ritratti.' },
95
- { type: 'diagnostic', variant: 'success', title: 'La regola di distribuzione del fuoco', icon: 'mdi:lightbulb-outline', badge: 'Tecnica Pro', html: 'Per un soggetto a 3m con un 50mm a f/2.8 : la zona nitida dietro il soggetto è sempre maggiore di quella davanti, con un <strong>rapporto di circa 2:1</strong>.' },
95
+ { type: 'diagnostic', variant: 'success', title: 'La regola di distribuzione del fuoco', icon: 'mdi:lightbulb-outline', badge: 'Tecnica Pro', html: 'Per un soggetto a 3m con un 50mm a f/2.8: la zona nitida dietro il soggetto è sempre maggiore di quella davanti, con un <strong>rapporto di circa 2:1</strong>.' },
96
96
  ];
97
97
 
98
98
  const faqSchema: WithContext<FAQPage> = {
@@ -10,7 +10,7 @@ const ui: DepthOfFieldUI = {
10
10
  title: '被写界深度計算機',
11
11
  paramsTitle: '設定パラメータ',
12
12
  sensorLabel: 'カメラセンサー',
13
- moreLabel: 'その他のセンサー…',
13
+ moreLabel: 'その他のセンサー...',
14
14
  apertureLabel: '絞り値 (Aperture)',
15
15
  focalLabel: '焦点距離 (Focal Length)',
16
16
  distanceLabel: '被写体距離',
@@ -10,7 +10,7 @@ const ui: DepthOfFieldUI = {
10
10
  title: '피사체 깊이 계산기',
11
11
  paramsTitle: '설정 파라미터',
12
12
  sensorLabel: '카메라 센서',
13
- moreLabel: '기타 센서…',
13
+ moreLabel: '기타 센서...',
14
14
  apertureLabel: '조리개값 (Aperture)',
15
15
  focalLabel: '초점 거리 (Focal Length)',
16
16
  distanceLabel: '피사체 거리',
@@ -10,7 +10,7 @@ const ui: DepthOfFieldUI = {
10
10
  title: 'Scherptediepte Calculator',
11
11
  paramsTitle: 'Parameters',
12
12
  sensorLabel: 'Camerasensor',
13
- moreLabel: 'Meer sensoren',
13
+ moreLabel: 'Meer sensoren...',
14
14
  apertureLabel: 'Diafragma',
15
15
  focalLabel: 'Brandpuntsafstand',
16
16
  distanceLabel: 'Afstand tot onderwerp',
@@ -92,7 +92,7 @@ const seo: DepthOfFieldLocaleContent['seo'] = [
92
92
 
93
93
  { type: 'title', text: 'DoF in film: Brandpuntsafstand vs. Sensor', level: 3 },
94
94
  { type: 'paragraph', html: 'Filmen op Super 35 gebruikt vaak langere brandpuntsafstanden voor de "cinematic look". Een lichtsterke 85mm lens bij portretopnames is een klassieke keuze.' },
95
- { type: 'diagnostic', variant: 'success', title: 'De focusverdelingsregel', icon: 'mdi:lightbulb-outline', badge: 'Pro-techniek', html: 'Voor een onderwerp op 3m met 50mm bij f/2.8: het scherptegebied achter het onderwerp is altijd groter dan ervoor ongeveer in een <strong>verhouding van 2:1</strong>.' },
95
+ { type: 'diagnostic', variant: 'success', title: 'De focusverdelingsregel', icon: 'mdi:lightbulb-outline', badge: 'Pro-techniek', html: 'Voor een onderwerp op 3m met 50mm bij f/2.8: het scherptegebied achter het onderwerp is altijd groter dan ervoor - ongeveer in een <strong>verhouding van 2:1</strong>.' },
96
96
  ];
97
97
 
98
98
  const faqSchema: WithContext<FAQPage> = {
@@ -10,7 +10,7 @@ const ui: DepthOfFieldUI = {
10
10
  title: 'Głębia Ostrości',
11
11
  paramsTitle: 'Parametry',
12
12
  sensorLabel: 'Matryca Aparatu',
13
- moreLabel: 'Więcej matryc',
13
+ moreLabel: 'Więcej matryc...',
14
14
  apertureLabel: 'Przysłona',
15
15
  focalLabel: 'Ogniskowa',
16
16
  distanceLabel: 'Odległość od Obiektu',
@@ -92,7 +92,7 @@ const seo: DepthOfFieldLocaleContent['seo'] = [
92
92
 
93
93
  { type: 'title', text: 'DoF w kinie: Ogniskowa vs Matryca', level: 3 },
94
94
  { type: 'paragraph', html: 'Filmowanie w formacie Super 35 często wykorzystuje dłuższe ogniskowe dla uzyskania "filmowego wyglądu". Jasny obiektyw 85mm to klasyk w portrecie.' },
95
- { type: 'diagnostic', variant: 'success', title: 'Zasada dystrybucji ostrości', icon: 'mdi:lightbulb-outline', badge: 'Technika Pro', html: 'Dla obiektu w odległości 3m przy 50mm i f/2.8: strefa ostrości za obiektem jest zawsze większa niż przed nim około w <strong>stosunku 2:1</strong>.' },
95
+ { type: 'diagnostic', variant: 'success', title: 'Zasada dystrybucji ostrości', icon: 'mdi:lightbulb-outline', badge: 'Technika Pro', html: 'Dla obiektu w odległości 3m przy 50mm i f/2.8: strefa ostrości za obiektem jest zawsze większa niż przed nim - około w <strong>stosunku 2:1</strong>.' },
96
96
  ];
97
97
 
98
98
  const faqSchema: WithContext<FAQPage> = {
@@ -10,7 +10,7 @@ const ui: DepthOfFieldUI = {
10
10
  title: 'Profundidade de Campo',
11
11
  paramsTitle: 'Parâmetros',
12
12
  sensorLabel: 'Sensor da Câmara',
13
- moreLabel: 'Mais sensores',
13
+ moreLabel: 'Mais sensores...',
14
14
  apertureLabel: 'Abertura',
15
15
  focalLabel: 'Distância Focal',
16
16
  distanceLabel: 'Distância do Sujeito',
@@ -92,7 +92,7 @@ const seo: DepthOfFieldLocaleContent['seo'] = [
92
92
 
93
93
  { type: 'title', text: 'DoF no Cinema: Focal vs. Sensor', level: 3 },
94
94
  { type: 'paragraph', html: 'Filmar em Super 35 exige frequentemente focais mais longas para comprimir a perspetiva, criando o "look cinematográfico". Um 85mm luminoso é a escolha clássica para retrato.' },
95
- { type: 'diagnostic', variant: 'success', title: 'A Regra de Distribuição do Foco', icon: 'mdi:lightbulb-outline', badge: 'Técnica Pro', html: 'Para um sujeito a 3m com uma 50mm a f/2.8 : a zona nítida atrás do sujeito é sempre maior do que à frente aprox. na <strong>proporção 2:1</strong>.' },
95
+ { type: 'diagnostic', variant: 'success', title: 'A Regra de Distribuição do Foco', icon: 'mdi:lightbulb-outline', badge: 'Técnica Pro', html: 'Para um sujeito a 3m com uma 50mm a f/2.8: a zona nítida atrás do sujeito é sempre maior do que à frente - aprox. na <strong>proporção 2:1</strong>.' },
96
96
  ];
97
97
 
98
98
  const faqSchema: WithContext<FAQPage> = {
@@ -10,7 +10,7 @@ const ui: DepthOfFieldUI = {
10
10
  title: 'Глубина резкости',
11
11
  paramsTitle: 'Параметры',
12
12
  sensorLabel: 'Матрица камеры',
13
- moreLabel: 'Больше матриц…',
13
+ moreLabel: 'Больше матриц...',
14
14
  apertureLabel: 'Диафрагма',
15
15
  focalLabel: 'Фокусное расстояние',
16
16
  distanceLabel: 'Расстояние до объекта',
@@ -32,7 +32,7 @@ const ui: DepthOfFieldUI = {
32
32
  const faq: DepthOfFieldLocaleContent['faq'] = [
33
33
  {
34
34
  question: 'Что такое глубина резкости?',
35
- answer: 'Глубина резко изображаемого пространства (ГРИП) это диапазон расстояний в сцене, которые выглядят резкими. Зависит от диафрагмы, фокусного расстояния, дистанции и матрицы.',
35
+ answer: 'Глубина резко изображаемого пространства (ГРИП) - это диапазон расстояний в сцене, которые выглядят резкими. Зависит от диафрагмы, фокусного расстояния, дистанции и матрицы.',
36
36
  },
37
37
  {
38
38
  question: 'Что такое гиперфокальное расстояние?',
@@ -69,7 +69,7 @@ const howTo: DepthOfFieldLocaleContent['howTo'] = [
69
69
 
70
70
  const seo: DepthOfFieldLocaleContent['seo'] = [
71
71
  { type: 'title', text: 'Понимание глубины резкости в фотографии и кино', level: 2 },
72
- { type: 'paragraph', html: 'Глубина резкости один из мощнейших творческих инструментов. <strong>Малая глубина резкости</strong> выделяет объект, а <strong>большая</strong> делает резким весь пейзаж. Этот калькулятор дает вам полный контроль.' },
72
+ { type: 'paragraph', html: 'Глубина резкости - один из мощнейших творческих инструментов. <strong>Малая глубина резкости</strong> выделяет объект, а <strong>большая</strong> - делает резким весь пейзаж. Этот калькулятор дает вам полный контроль.' },
73
73
 
74
74
  { type: 'title', text: 'Три фактора управления ГРИП', level: 3 },
75
75
  { type: 'table', headers: ['Фактор', 'Увеличение →', 'Влияние на ГРИП'], rows: [
@@ -83,7 +83,7 @@ const seo: DepthOfFieldLocaleContent['seo'] = [
83
83
  { type: 'tip', title: 'Практический совет', html: 'Для стрит-фото установите фокус на гиперфокал. С 35мм на APS-C при f/8 это около <strong>4 метров</strong>: всё от 2м до бесконечности будет в фокусе.' },
84
84
 
85
85
  { type: 'title', text: 'Размер матрицы и кружок рассеяния', level: 3 },
86
- { type: 'paragraph', html: '<strong>Кружок рассеяния (CoC)</strong> определяет границу резкости. Для Full Frame это 0.030 мм, для смартфона около 0.006 мм. Меньший CoC требует большей точности.', label: 'Примеры CoC' },
86
+ { type: 'paragraph', html: '<strong>Кружок рассеяния (CoC)</strong> определяет границу резкости. Для Full Frame это 0.030 мм, для смартфона - около 0.006 мм. Меньший CoC требует большей точности.', label: 'Примеры CoC' },
87
87
  { type: 'stats', columns: 3, items: [
88
88
  { label: 'Full Frame', value: '0.030 мм', icon: 'mdi:camera' },
89
89
  { label: 'APS-C', value: '0.019 мм', icon: 'mdi:camera-outline' },
@@ -91,8 +91,8 @@ const seo: DepthOfFieldLocaleContent['seo'] = [
91
91
  ]},
92
92
 
93
93
  { type: 'title', text: 'ГРИП в кино: Фокус vs Матрица', level: 3 },
94
- { type: 'paragraph', html: 'В кино на Super 35 часто используют длинный фокус для сжатия перспективы и создания "киношного вида". Светосильный 85мм классика для портретов.' },
95
- { type: 'diagnostic', variant: 'success', title: 'Правило распределения фокуса', icon: 'mdi:lightbulb-outline', badge: 'Профи-прием', html: 'Для объекта на 3м с 50мм на f/2.8: зона резкости сзади всегда больше, чем спереди примерно в <strong>пропорции 2:1</strong>.' },
94
+ { type: 'paragraph', html: 'В кино на Super 35 часто используют длинный фокус для сжатия перспективы и создания "киношного вида". Светосильный 85мм - классика для портретов.' },
95
+ { type: 'diagnostic', variant: 'success', title: 'Правило распределения фокуса', icon: 'mdi:lightbulb-outline', badge: 'Профи-прием', html: 'Для объекта на 3м с 50мм на f/2.8: зона резкости сзади всегда больше, чем спереди - примерно в <strong>пропорции 2:1</strong>.' },
96
96
  ];
97
97
 
98
98
  const faqSchema: WithContext<FAQPage> = {
@@ -10,7 +10,7 @@ const ui: DepthOfFieldUI = {
10
10
  title: 'Skärpedjupskalkylator',
11
11
  paramsTitle: 'Parametrar',
12
12
  sensorLabel: 'Kamerasensor',
13
- moreLabel: 'Fler sensorer',
13
+ moreLabel: 'Fler sensorer...',
14
14
  apertureLabel: 'Bländare',
15
15
  focalLabel: 'Brännvidd',
16
16
  distanceLabel: 'Motivavstånd',
@@ -92,7 +92,7 @@ const seo: DepthOfFieldLocaleContent['seo'] = [
92
92
 
93
93
  { type: 'title', text: 'DoF i film: Brännvidd vs Sensor', level: 3 },
94
94
  { type: 'paragraph', html: 'Filmning i Super 35 använder ofta längre brännvidd för att komprimera perspektivet och skapa en "filmisk look". Ett ljusstarkt 85mm-objektiv är klassiskt för porträtt.' },
95
- { type: 'diagnostic', variant: 'success', title: 'Regeln för fokusfördelning', icon: 'mdi:lightbulb-outline', badge: 'Pro-teknik', html: 'För ett motiv på 3m med 50mm vid f/2.8: det skarpa området bakom motivet är alltid större än framför ungefär i <strong>förhållandet 2:1</strong>.' },
95
+ { type: 'diagnostic', variant: 'success', title: 'Regeln för fokusfördelning', icon: 'mdi:lightbulb-outline', badge: 'Pro-teknik', html: 'För ett motiv på 3m med 50mm vid f/2.8: det skarpa området bakom motivet är alltid större än framför - ungefär i <strong>förhållandet 2:1</strong>.' },
96
96
  ];
97
97
 
98
98
  const faqSchema: WithContext<FAQPage> = {
@@ -10,7 +10,7 @@ const ui: DepthOfFieldUI = {
10
10
  title: 'Alan Derinliği Hesaplama',
11
11
  paramsTitle: 'Parametreler',
12
12
  sensorLabel: 'Kamera Sensörü',
13
- moreLabel: 'Daha fazla sensör',
13
+ moreLabel: 'Daha fazla sensör...',
14
14
  apertureLabel: 'Diyafram',
15
15
  focalLabel: 'Odak Uzaklığı',
16
16
  distanceLabel: 'Obje Mesafesi',
@@ -10,7 +10,7 @@ const ui: DepthOfFieldUI = {
10
10
  title: '景深计算器',
11
11
  paramsTitle: '设定参数',
12
12
  sensorLabel: '相机传感器',
13
- moreLabel: '更多传感器…',
13
+ moreLabel: '更多传感器...',
14
14
  apertureLabel: '光圈值',
15
15
  focalLabel: '焦距',
16
16
  distanceLabel: '拍摄距离',
@@ -83,7 +83,7 @@ const seo: DepthOfFieldLocaleContent['seo'] = [
83
83
  { type: 'tip', title: '实践建议', html: '对于街头摄影,将焦点设为超焦距。在 APS-C 上使用 35mm 镜头并设置 f/8 时,超焦距约为 <strong>4 米</strong>:从 2 米到无穷远的一切都将保持清晰。' },
84
84
 
85
85
  { type: 'title', text: '传感器尺寸与弥散圆', level: 3 },
86
- { type: 'paragraph', html: '<strong>弥散圆 (CoC)</strong> 是定义“清晰度”的阈值。全画幅传感器的 CoC 为 0.030mm,而智能手机约为 0.006mm。CoC 值越小意味着清晰度要求越严格。' },
86
+ { type: 'paragraph', html: '<strong>弥散圆 (CoC)</strong> 是定义\"清晰度\"的阈值。全画幅传感器的 CoC 为 0.030mm,而智能手机约为 0.006mm。CoC 值越小意味着清晰度要求越严格。' },
87
87
  { type: 'stats', columns: 3, items: [
88
88
  { label: '全画幅', value: '0.030 mm', icon: 'mdi:camera' },
89
89
  { label: 'APS-C', value: '0.019 mm', icon: 'mdi:camera-outline' },
@@ -91,7 +91,7 @@ const seo: DepthOfFieldLocaleContent['seo'] = [
91
91
  ]},
92
92
 
93
93
  { type: 'title', text: '电影中的景深:焦距 vs. 传感器', level: 3 },
94
- { type: 'paragraph', html: '在 Super 35(接近 APS-C)上拍摄的电影人经常使用较长焦距来压缩透视,这也会收窄景深,营造出“电影感”。大光圈 85mm 是经典人像选择。' },
94
+ { type: 'paragraph', html: '在 Super 35(接近 APS-C)上拍摄的电影人经常使用较长焦距来压缩透视,这也会收窄景深,营造出\"电影感\"。大光圈 85mm 是经典人像选择。' },
95
95
  { type: 'diagnostic', variant: 'success', title: '焦点分布规律', icon: 'mdi:lightbulb-outline', badge: '专家技法', html: '对于 3 米处的主体,使用 50mm f/2.8 全画幅拍摄:主体后的清晰区域总是比主体前大,比例约为 <strong>2:1</strong>。' },
96
96
  ];
97
97