@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,233 @@
|
|
|
1
|
+
import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
|
|
2
|
+
import type { CollageMakerUI, CollageMakerLocaleContent } from '../index';
|
|
3
|
+
|
|
4
|
+
const slug = 'ucretsiz-online-foto-kolaj-yapici-profesyonel-kompozisyonlar';
|
|
5
|
+
const title = 'Online Kolaj Yapıcı: Profesyonel kompozisyonlar tasarlayın';
|
|
6
|
+
const description = 'Saniyeler içinde ücretsiz fotoğraf kolajları oluşturun. Birden fazla düzen arasından seçim yapın, kenarlıkları ayarlayın ve filigran olmadan yüksek kalitede indirin.';
|
|
7
|
+
|
|
8
|
+
const ui: CollageMakerUI = {
|
|
9
|
+
dropTitle: "Görselleri buraya sürükleyin",
|
|
10
|
+
dropSub: "veya {link} - min. 2, maks. 9",
|
|
11
|
+
dropLink: "dosya seçin",
|
|
12
|
+
imgsLoaded: "Yüklenen görseller",
|
|
13
|
+
layoutLabel: "Düzen",
|
|
14
|
+
settingsLabel: "Ayarlar",
|
|
15
|
+
borderLabel: "Kenarlık",
|
|
16
|
+
borderColorLabel: "Kenarlık rengi",
|
|
17
|
+
bgColorLabel: "Arka Plan",
|
|
18
|
+
downloadBtn: "İndir",
|
|
19
|
+
previewTitle: "Önizleme",
|
|
20
|
+
needsImgs: "{n} görsele daha ihtiyacınız var",
|
|
21
|
+
errorMin: "En az 2 görsele ihtiyacınız var",
|
|
22
|
+
errorMax: "Maksimum 9 görsele izin verilir",
|
|
23
|
+
errorLoad: "Görseller yüklenirken hata oluştu",
|
|
24
|
+
faqTitle: "Sıkça Sorulan Sorular",
|
|
25
|
+
bibliographyTitle: "Referanslar"
|
|
26
|
+
};
|
|
27
|
+
|
|
28
|
+
const faq: CollageMakerLocaleContent['faq'] = [
|
|
29
|
+
{
|
|
30
|
+
question: "Fotoğrafların sırasını nasıl değiştirebilirimi?",
|
|
31
|
+
answer: "Fotoğraflar, yüklenen görseller listesinde göründükleri sırayı takip ederek kolaja yerleştirilir. Birini kaldırıp tekrar yükleyerek konumunu ayarlayabilirsiniz.",
|
|
32
|
+
},
|
|
33
|
+
{
|
|
34
|
+
question: "Kolajın çıktı formatı nedir?",
|
|
35
|
+
answer: "Kolaj, keskinlik kaybı olmadan sosyal ağlarda paylaşmak için ideal olan yüksek çözünürlüklü WebP formatında indirilir.",
|
|
36
|
+
},
|
|
37
|
+
];
|
|
38
|
+
|
|
39
|
+
const howTo: CollageMakerLocaleContent['howTo'] = [
|
|
40
|
+
{
|
|
41
|
+
name: "Fotoğraflarınızı yükleyin",
|
|
42
|
+
text: "Dosya gezgininizden 2 ile 9 arasında görsel seçin.",
|
|
43
|
+
},
|
|
44
|
+
{
|
|
45
|
+
name: "Bir düzen seçin",
|
|
46
|
+
text: "Yüklediğiniz fotoğraf sayısına en uygun ızgarayı seçin.",
|
|
47
|
+
},
|
|
48
|
+
{
|
|
49
|
+
name: "Stili kişiselleştirin",
|
|
50
|
+
text: "Profesyonel bir görünüm kazandırmak için kenarlık kalınlığını ve rengini ayarlayın.",
|
|
51
|
+
},
|
|
52
|
+
{
|
|
53
|
+
name: "İndirin ve paylaşın",
|
|
54
|
+
text: "Oluştur düğmesine basın ve nihai kompozisyonunuzu anında indirin.",
|
|
55
|
+
},
|
|
56
|
+
];
|
|
57
|
+
|
|
58
|
+
const bibliography: CollageMakerLocaleContent['bibliography'] = [
|
|
59
|
+
{
|
|
60
|
+
name: "Fotoğrafik Kompozisyon: Kolaj Sanatı",
|
|
61
|
+
url: "https://tr.wikipedia.org/wiki/Kolaj",
|
|
62
|
+
},
|
|
63
|
+
];
|
|
64
|
+
|
|
65
|
+
const seo: CollageMakerLocaleContent['seo'] = [
|
|
66
|
+
{
|
|
67
|
+
type: 'summary',
|
|
68
|
+
title: 'Profesyonel Online Kolaj Yapıcı',
|
|
69
|
+
items: [
|
|
70
|
+
'Birden fazla düzen ve önceden tanımlanmış ızgaralar',
|
|
71
|
+
'Kenarlıkların ve arka plan renklerinin özelleştirilmesi',
|
|
72
|
+
'Sosyal ağlar için hazır 1200px yüksek çözünürlük',
|
|
73
|
+
'Kullanım sınırı olmaksızın anında işleme'
|
|
74
|
+
]
|
|
75
|
+
},
|
|
76
|
+
{ type: 'title', text: 'Kolaj Tasarımı: Hikaye Anlatan Kompozisyonlar', level: 2 },
|
|
77
|
+
{ type: 'paragraph', html: 'Kolaj, fotoğrafların basit bir karışımından daha fazlasıdır; duygu ve bağlamı ileten görsel bir anlatıdır. Aracımız, Photoshop veya pahalı yazılımlara ihtiyaç duymadan Instagram, Facebook, Pinterest veya kişisel projeleriniz için profesyonel geometrik kompozisyonlar oluşturmanıza olanak tanır.' },
|
|
78
|
+
|
|
79
|
+
{ type: 'stats', items: [
|
|
80
|
+
{ value: '2-9', label: 'Kolaj Başına Görsel', icon: 'mdi:image-multiple' },
|
|
81
|
+
{ value: '1200px', label: 'HD Çözünürlük', icon: 'mdi:video-high-definition' },
|
|
82
|
+
{ value: 'Anında', label: 'Oluşturma', icon: 'mdi:lightning-bolt' }
|
|
83
|
+
], columns: 3 },
|
|
84
|
+
|
|
85
|
+
{ type: 'title', text: 'Görsel Kompozisyon: Tasarım İlkeleri', level: 3 },
|
|
86
|
+
{ type: 'paragraph', html: 'Kompozisyon, görsel unsurları izleyicinin gözünü yönlendirecek ve bir niyeti iletecek şekilde düzenleme sanatıdır. İyi bir kolaj şunları dengeler:' },
|
|
87
|
+
{ type: 'list', items: [
|
|
88
|
+
'<strong>Denge:</strong> Görsel ağırlık dağılımı (açık vs koyu görseller, büyük vs küçük).',
|
|
89
|
+
'<strong>Görsel Akış:</strong> Göz, ölü noktalar olmadan kompozisyonda doğal bir şekilde gezinmelidir.',
|
|
90
|
+
'<strong>Kontrast:</strong> Dikkat çeken renk, boyut ve şekil farklılıkları.',
|
|
91
|
+
'<strong>Bütünlük:</strong> Tematik tutarlılık - görseller aynı hikaye hakkında \"birlikte konuşmalıdır\".'
|
|
92
|
+
], icon: 'mdi:check' },
|
|
93
|
+
|
|
94
|
+
{ type: 'card', title: 'Akıllı ve Uyarlanabilir Tasarımlar', html: 'Sistemimiz, fotoğraf sayısına göre en uygun alan dağılımını otomatik olarak hesaplar. 2 görsel = simetrik ızgara; 5 görsel = dengeli asimetrik dağılım. Her ızgara, görsel etkiyi maksimize etmek için tasarlanmıştır.' },
|
|
95
|
+
|
|
96
|
+
{ type: 'comparative', items: [
|
|
97
|
+
{
|
|
98
|
+
title: 'Sosyal Ağlar İçin',
|
|
99
|
+
description: 'Instagram, TikTok, Facebook - kare formatlar',
|
|
100
|
+
icon: 'mdi:share-all',
|
|
101
|
+
points: [
|
|
102
|
+
'1200px Instagram akışı için mükemmeldir',
|
|
103
|
+
'Kare formatı paylaşırken kırpılmayı önler',
|
|
104
|
+
'Markalaşma için özelleştirilebilir kenarlıklar'
|
|
105
|
+
],
|
|
106
|
+
highlight: true
|
|
107
|
+
},
|
|
108
|
+
{
|
|
109
|
+
title: 'Portfolyolar İçin',
|
|
110
|
+
description: 'Fotoğrafçılar ve tasarımcılar için görsel vitrinler',
|
|
111
|
+
icon: 'mdi:briefcase-outline',
|
|
112
|
+
points: [
|
|
113
|
+
'Bir projenin birden fazla açısını gösterin',
|
|
114
|
+
'Uyumlu görsel anlatı',
|
|
115
|
+
'Profesyonel dijital kitap baskısı'
|
|
116
|
+
]
|
|
117
|
+
},
|
|
118
|
+
{
|
|
119
|
+
title: 'Kişisel Hediyeler İçin',
|
|
120
|
+
description: 'Baskılar, çerçeveler ve dijital albümler',
|
|
121
|
+
icon: 'mdi:gift-outline',
|
|
122
|
+
points: [
|
|
123
|
+
'Etkinlik anıları (düğünler, seyahatler)',
|
|
124
|
+
'Baskıya hazır yüksek çözünürlük',
|
|
125
|
+
'Manuel çaba gerektirmeyen anında tasarım'
|
|
126
|
+
]
|
|
127
|
+
}
|
|
128
|
+
], columns: 3 },
|
|
129
|
+
|
|
130
|
+
{ type: 'title', text: 'Özelleştirme: Kenarlıklar ve Renkler', level: 3 },
|
|
131
|
+
{ type: 'table', headers: ['Öğe', 'Görsel Etki', 'Öneri'], rows: [
|
|
132
|
+
['Beyaz Kenarlık', 'Temiz, minimalist, modern', 'Sosyal ağlar, dijital portfolyolar'],
|
|
133
|
+
['Siyah Kenarlık', 'Dramatik, profesyonel, sanatsal', 'Sanat fotoğrafçılığı, moda, lüks'],
|
|
134
|
+
['Nötr Kenarlık (gri)', 'Çok yönlü, akademik, kurumsal', 'İş dünyası, eğitim, tarafsızlık'],
|
|
135
|
+
['Kenarlıksız', 'Füzyon, süreklilik, sürükleyici', 'Tek tip arka plan, akan fotoğraflar']
|
|
136
|
+
] },
|
|
137
|
+
|
|
138
|
+
{ type: 'proscons', items: [
|
|
139
|
+
{
|
|
140
|
+
pro: 'Profesyonel önceden tanımlanmış tasarımlar - kompozisyon bilgisi gerekmez',
|
|
141
|
+
con: 'Seçenekler önceden belirlenmiş ızgaralarla sınırlıdır'
|
|
142
|
+
},
|
|
143
|
+
{
|
|
144
|
+
pro: 'Yeniden ölçeklendirme olmadan sosyal ağlar için hazır 1200px çözünürlük',
|
|
145
|
+
con: 'Photoshop kadar özelleştirilebilir değil'
|
|
146
|
+
},
|
|
147
|
+
{
|
|
148
|
+
pro: '%100 yerel işleme - gizlilik, hız, sınır yok',
|
|
149
|
+
con: 'Modern bir tarayıcı gerektirir'
|
|
150
|
+
},
|
|
151
|
+
{
|
|
152
|
+
pro: 'Tamamen ücretsiz, filigran yok, reklam yok',
|
|
153
|
+
con: 'Bireysel düzenleme seçenekleri (kırpma, döndürme) yok'
|
|
154
|
+
}
|
|
155
|
+
], proTitle: 'Avantajlar', conTitle: 'Sınırlamalar' },
|
|
156
|
+
|
|
157
|
+
{ type: 'diagnostic', variant: 'success', title: 'Sosyal Ağlar İçin Hazır', icon: 'mdi:check-circle-outline', badge: 'Optimize Edildi', html: '1200x1200px Instagram için ideal çözünürlüktür. Her türlü en boy oranını destekler, ancak kare çıktı akış etkisini maksimize eder, otomatik kırpmayı ortadan kaldırır ve masaüstü, tablet ve mobil cihazlarda aynı derecede iyi görünür.' },
|
|
158
|
+
|
|
159
|
+
{ type: 'glossary', items: [
|
|
160
|
+
{
|
|
161
|
+
term: 'Görsel Kompozisyon',
|
|
162
|
+
definition: 'İzleyicinin gözünü yönlendirmek ve duygusal bir niyeti iletmek için unsurları (renk, biçim, alan) düzenleme sanatı.'
|
|
163
|
+
},
|
|
164
|
+
{
|
|
165
|
+
term: 'Üçler Kuralı',
|
|
166
|
+
definition: 'Kompozisyon ilkesi: görüntüyü 9 eşit alana (3x3) böler. Maksimum etki için konuları kesişme çizgilerine yerleştirin.'
|
|
167
|
+
},
|
|
168
|
+
{
|
|
169
|
+
term: 'Simetrik Izgara',
|
|
170
|
+
definition: 'Eşit alan bölmeleri. Güven verici, düzenli. Fotoğraf çiftleri veya çift sayılar için idealdir.'
|
|
171
|
+
},
|
|
172
|
+
{
|
|
173
|
+
term: 'Asimetrik Izgara',
|
|
174
|
+
definition: 'Eşit olmayan bölmeler. Dinamik, ilginç, görsel. Çeşitli boyutlarda 5+ fotoğraf için idealdir.'
|
|
175
|
+
},
|
|
176
|
+
{
|
|
177
|
+
term: 'Görsel Denge',
|
|
178
|
+
definition: 'Görsel ağırlığın algısal dengesi. Açık + koyu görsel = denge; büyük + küçük = denge.'
|
|
179
|
+
}
|
|
180
|
+
] },
|
|
181
|
+
|
|
182
|
+
{ type: 'message', title: 'Anında Görsel Anlatı', ariaLabel: 'Kompozisyon ve kolajlar hakkında bilgiler', html: 'Her kolaj bir hikaye anlatır. Otomatik tasarımcımız, görsel hikayelerinizin dengeli, profesyonel ve dünyaya hazır olmasını sağlar. Bir grafik tasarımcının işi yapmasını beklemenize gerek kalmaz.' },
|
|
183
|
+
|
|
184
|
+
{ type: 'title', text: 'Oluştur, Paylaş, İlham Ver', level: 3 },
|
|
185
|
+
{ type: 'paragraph', html: 'İyi yapılmış bir kolaj, unutulabilir bir gönderi ile takipçilerinizin hatırlayacağı ve paylaşacağı bir gönderi arasındaki farktır. Görsel hikayelerinizin etki yaratması için akıllı kompozisyonu kullanın.' }
|
|
186
|
+
];
|
|
187
|
+
|
|
188
|
+
const faqSchema: WithContext<FAQPage> = {
|
|
189
|
+
'@context': 'https://schema.org',
|
|
190
|
+
'@type': 'FAQPage',
|
|
191
|
+
mainEntity: faq.map((item) => ({
|
|
192
|
+
'@type': 'Question',
|
|
193
|
+
name: item.question,
|
|
194
|
+
acceptedAnswer: { '@type': 'Answer', text: item.answer },
|
|
195
|
+
})),
|
|
196
|
+
};
|
|
197
|
+
|
|
198
|
+
const howToSchema: WithContext<HowTo> = {
|
|
199
|
+
'@context': 'https://schema.org',
|
|
200
|
+
'@type': 'HowTo',
|
|
201
|
+
name: title,
|
|
202
|
+
description,
|
|
203
|
+
step: howTo.map((step) => ({
|
|
204
|
+
'@type': 'HowToStep',
|
|
205
|
+
name: step.name,
|
|
206
|
+
text: step.text,
|
|
207
|
+
})),
|
|
208
|
+
};
|
|
209
|
+
|
|
210
|
+
const appSchema: WithContext<SoftwareApplication> = {
|
|
211
|
+
'@context': 'https://schema.org',
|
|
212
|
+
'@type': 'SoftwareApplication',
|
|
213
|
+
name: title,
|
|
214
|
+
description,
|
|
215
|
+
applicationCategory: 'UtilitiesApplication',
|
|
216
|
+
operatingSystem: 'Web',
|
|
217
|
+
offers: { '@type': 'Offer', price: '0', priceCurrency: 'EUR' },
|
|
218
|
+
inLanguage: 'tr',
|
|
219
|
+
};
|
|
220
|
+
|
|
221
|
+
export const content: CollageMakerLocaleContent = {
|
|
222
|
+
slug,
|
|
223
|
+
title,
|
|
224
|
+
description,
|
|
225
|
+
ui,
|
|
226
|
+
seo,
|
|
227
|
+
faqTitle: "Sıkça Sorulan Sorular",
|
|
228
|
+
faq,
|
|
229
|
+
bibliographyTitle: "Referanslar",
|
|
230
|
+
bibliography,
|
|
231
|
+
howTo,
|
|
232
|
+
schemas: [faqSchema as any, howToSchema as any, appSchema],
|
|
233
|
+
};
|
|
@@ -0,0 +1,233 @@
|
|
|
1
|
+
import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
|
|
2
|
+
import type { CollageMakerUI, CollageMakerLocaleContent } from '../index';
|
|
3
|
+
|
|
4
|
+
const slug = 'free-online-photo-collage-maker-professional-compositions';
|
|
5
|
+
const title = '在线拼图制作:设计专业拼贴构图';
|
|
6
|
+
const description = '在几秒钟内免费创建照片拼贴。从多种布局中选择,调整边框,并下载无水印的高质量图片。';
|
|
7
|
+
|
|
8
|
+
const ui: CollageMakerUI = {
|
|
9
|
+
dropTitle: "将图像拖到此处",
|
|
10
|
+
dropSub: "或 {link} - 最少2张,最多9张",
|
|
11
|
+
dropLink: "选择文件",
|
|
12
|
+
imgsLoaded: "已加载图像",
|
|
13
|
+
layoutLabel: "布局",
|
|
14
|
+
settingsLabel: "设置",
|
|
15
|
+
borderLabel: "边框",
|
|
16
|
+
borderColorLabel: "边框颜色",
|
|
17
|
+
bgColorLabel: "背景",
|
|
18
|
+
downloadBtn: "下载",
|
|
19
|
+
previewTitle: "预览",
|
|
20
|
+
needsImgs: "您还需要 {n} 张图像",
|
|
21
|
+
errorMin: "您至少需要 2 张图像",
|
|
22
|
+
errorMax: "最多允许 9 张图像",
|
|
23
|
+
errorLoad: "加载图像时出错",
|
|
24
|
+
faqTitle: "常见问题",
|
|
25
|
+
bibliographyTitle: "参考资料"
|
|
26
|
+
};
|
|
27
|
+
|
|
28
|
+
const faq: CollageMakerLocaleContent['faq'] = [
|
|
29
|
+
{
|
|
30
|
+
question: "如何更改照片的顺序?",
|
|
31
|
+
answer: "照片根据在加载图像列表中出现的顺序排列在拼图中。您可以删除一张照片并重新上传以调整其位置。",
|
|
32
|
+
},
|
|
33
|
+
{
|
|
34
|
+
question: "拼图的输出格式是什么?",
|
|
35
|
+
answer: "拼图将以高分辨率 WebP 格式下载,非常适合在社交网络上分享而不损失清晰度。",
|
|
36
|
+
},
|
|
37
|
+
];
|
|
38
|
+
|
|
39
|
+
const howTo: CollageMakerLocaleContent['howTo'] = [
|
|
40
|
+
{
|
|
41
|
+
name: "上传您的照片",
|
|
42
|
+
text: "从您的文件浏览器中选择 2 到 9 张图像。",
|
|
43
|
+
},
|
|
44
|
+
{
|
|
45
|
+
name: "选择布局",
|
|
46
|
+
text: "选择最适合您上传照片数量的网格。",
|
|
47
|
+
},
|
|
48
|
+
{
|
|
49
|
+
name: "自定义样式",
|
|
50
|
+
text: "调整边框粗细和颜色以获得专业的视觉效果。",
|
|
51
|
+
},
|
|
52
|
+
{
|
|
53
|
+
name: "下载并分享",
|
|
54
|
+
text: "点击创建按钮并立即下载您的最终作品。",
|
|
55
|
+
},
|
|
56
|
+
];
|
|
57
|
+
|
|
58
|
+
const bibliography: CollageMakerLocaleContent['bibliography'] = [
|
|
59
|
+
{
|
|
60
|
+
name: "摄影构图:拼贴的艺术",
|
|
61
|
+
url: "https://zh.wikipedia.org/wiki/%E5%89%AA%E8%B4%B4%E7%94%BB",
|
|
62
|
+
},
|
|
63
|
+
];
|
|
64
|
+
|
|
65
|
+
const seo: CollageMakerLocaleContent['seo'] = [
|
|
66
|
+
{
|
|
67
|
+
type: 'summary',
|
|
68
|
+
title: '专业在线拼图制作工具',
|
|
69
|
+
items: [
|
|
70
|
+
'多种布局和预定义网格',
|
|
71
|
+
'自定义边框和背景颜色',
|
|
72
|
+
'适合社交网络的 1200px 高分辨率',
|
|
73
|
+
'无使用限制的即时处理'
|
|
74
|
+
]
|
|
75
|
+
},
|
|
76
|
+
{ type: 'title', text: '拼贴设计:讲述故事的构图', level: 2 },
|
|
77
|
+
{ type: 'paragraph', html: '拼贴不仅仅是照片的混合,它是一种传达情感和语境的视觉叙事。我们的工具允许您为 Instagram、Facebook、Pinterest 或个人项目创建专业的几何构图,无需 Photoshop 或昂贵的软件。' },
|
|
78
|
+
|
|
79
|
+
{ type: 'stats', items: [
|
|
80
|
+
{ value: '2-9', label: '每图数量', icon: 'mdi:image-multiple' },
|
|
81
|
+
{ value: '1200px', label: 'HD 分辨率', icon: 'mdi:video-high-definition' },
|
|
82
|
+
{ value: '即时', label: '生成', icon: 'mdi:lightning-bolt' }
|
|
83
|
+
], columns: 3 },
|
|
84
|
+
|
|
85
|
+
{ type: 'title', text: '视觉构图:设计原则', level: 3 },
|
|
86
|
+
{ type: 'paragraph', html: '构图是一种组织视觉元素的艺术,旨在引导观众的视线并传达意图。出色的拼图需要平衡:' },
|
|
87
|
+
{ type: 'list', items: [
|
|
88
|
+
'<strong>平衡:</strong> 视觉重量的分布(明亮与阴暗图像、大图与小图)。',
|
|
89
|
+
'<strong>视觉流:</strong> 视线应自然地穿过构图,没有死角。',
|
|
90
|
+
'<strong>对比:</strong> 颜色、大小和形状的变化,以吸引注意力。',
|
|
91
|
+
'<strong>统一:</strong> 主题连贯性——图像必须“共同讲述”同一个故事。'
|
|
92
|
+
], icon: 'mdi:check' },
|
|
93
|
+
|
|
94
|
+
{ type: 'card', title: '智能自适应设计', html: '我们的系统根据照片数量自动计算最佳空间分布。2 张图像 = 对称网格;5 张图像 = 平衡的非对称分布。每个网格都旨在最大化视觉冲击力。' },
|
|
95
|
+
|
|
96
|
+
{ type: 'comparative', items: [
|
|
97
|
+
{
|
|
98
|
+
title: '用于社交网络',
|
|
99
|
+
description: 'Instagram、TikTok、Facebook - 正方形格式',
|
|
100
|
+
icon: 'mdi:share-all',
|
|
101
|
+
points: [
|
|
102
|
+
'1200px 是 Instagram Feed 的理想选择',
|
|
103
|
+
'正方形格式可避免发布时被裁剪',
|
|
104
|
+
'可自定义边框以进行品牌推广'
|
|
105
|
+
],
|
|
106
|
+
highlight: true
|
|
107
|
+
},
|
|
108
|
+
{
|
|
109
|
+
title: '用于作品集',
|
|
110
|
+
description: '摄影师和设计师的视觉展示',
|
|
111
|
+
icon: 'mdi:briefcase-outline',
|
|
112
|
+
points: [
|
|
113
|
+
'展示项目的多个角度',
|
|
114
|
+
'具有凝聚力的视觉叙事',
|
|
115
|
+
'专业的数字画册打印'
|
|
116
|
+
]
|
|
117
|
+
},
|
|
118
|
+
{
|
|
119
|
+
title: '用于个人礼物',
|
|
120
|
+
description: '照片冲印、相框和数字相册',
|
|
121
|
+
icon: 'mdi:gift-outline',
|
|
122
|
+
points: [
|
|
123
|
+
'活动记忆(婚礼、旅行)',
|
|
124
|
+
'适合打印的高分辨率',
|
|
125
|
+
'无需手动操作的即时设计'
|
|
126
|
+
]
|
|
127
|
+
}
|
|
128
|
+
], columns: 3 },
|
|
129
|
+
|
|
130
|
+
{ type: 'title', text: '自定义:边框和颜色', level: 3 },
|
|
131
|
+
{ type: 'table', headers: ['元素', '视觉效果', '建议'], rows: [
|
|
132
|
+
['白色边框', '简洁、极简、现代', '社交网络、数字作品集'],
|
|
133
|
+
['黑色边框', '戏剧性、专业、艺术感', '艺术摄影、时尚、奢侈品'],
|
|
134
|
+
['中性边框(灰色)', '多功能、学术、商业', '商务、教育、中性感'],
|
|
135
|
+
['无边框', '融合、连续、沉浸感', '统一背景、流动的照片']
|
|
136
|
+
] },
|
|
137
|
+
|
|
138
|
+
{ type: 'proscons', items: [
|
|
139
|
+
{
|
|
140
|
+
pro: '专业的预定义设计 - 无需构图知识',
|
|
141
|
+
con: '选项限于预置网格'
|
|
142
|
+
},
|
|
143
|
+
{
|
|
144
|
+
pro: '无需缩放即可直接用于社交网络的 1200px 分辨率',
|
|
145
|
+
con: '不像 Photoshop 那样可高度自定义'
|
|
146
|
+
},
|
|
147
|
+
{
|
|
148
|
+
pro: '100% 本地处理 - 隐私、快速、无限制',
|
|
149
|
+
con: '需要现代浏览器'
|
|
150
|
+
},
|
|
151
|
+
{
|
|
152
|
+
pro: '完全免费,无水印,无广告',
|
|
153
|
+
con: '没有单个图像编辑选项(裁剪、旋转)'
|
|
154
|
+
}
|
|
155
|
+
], proTitle: '优势', conTitle: '局限性' },
|
|
156
|
+
|
|
157
|
+
{ type: 'diagnostic', variant: 'success', title: '为社交网络做好准备', icon: 'mdi:check-circle-outline', badge: '已优化', html: '1200x1200px 是 Instagram 最理想的分辨率。它支持任何长宽比,但正方形输出最大限度地提高了 Feed 的影响力,消除了自动裁剪,并且在桌面、平板电脑和移动设备上看起来都很棒。' },
|
|
158
|
+
|
|
159
|
+
{ type: 'glossary', items: [
|
|
160
|
+
{
|
|
161
|
+
term: '视觉构图',
|
|
162
|
+
definition: '通过组织元素(色彩、形状、空间)来引导观众视线并传达情感意图的艺术。'
|
|
163
|
+
},
|
|
164
|
+
{
|
|
165
|
+
term: '三分法',
|
|
166
|
+
definition: '构图原则:将图像分为 9 个相等的区域(3x3)。将主体置于交点线上以获得最大冲击力。'
|
|
167
|
+
},
|
|
168
|
+
{
|
|
169
|
+
term: '对称网格',
|
|
170
|
+
definition: '等空间划分。令人安心且有序。非常适合成对照片或偶数照片。'
|
|
171
|
+
},
|
|
172
|
+
{
|
|
173
|
+
term: '非对称网格',
|
|
174
|
+
definition: '不等划分。动感、有趣且具有视觉效果。非常适合 5 张以上大小不一的照片。'
|
|
175
|
+
},
|
|
176
|
+
{
|
|
177
|
+
term: '视觉平衡',
|
|
178
|
+
definition: '视觉重量的感知平衡。明亮与阴暗图像的平衡,大与小的平衡。'
|
|
179
|
+
}
|
|
180
|
+
] },
|
|
181
|
+
|
|
182
|
+
{ type: 'message', title: '即时视觉叙事', ariaLabel: '关于构图和拼贴的信息', html: '每一张拼图都在讲述一个故事。我们的自动设计器确保您的视觉故事达到平衡、专业并随时向世界发布。无需等待平面设计师完成工作。' },
|
|
183
|
+
|
|
184
|
+
{ type: 'title', text: '创造、分享、鼓舞', level: 3 },
|
|
185
|
+
{ type: 'paragraph', html: '一张制作精良的拼图,决定了一个发布是转瞬即逝还是被粉丝记住并分享。在您的视觉故事中使用智能构图,产生持久冲击。' }
|
|
186
|
+
];
|
|
187
|
+
|
|
188
|
+
const faqSchema: WithContext<FAQPage> = {
|
|
189
|
+
'@context': 'https://schema.org',
|
|
190
|
+
'@type': 'FAQPage',
|
|
191
|
+
mainEntity: faq.map((item) => ({
|
|
192
|
+
'@type': 'Question',
|
|
193
|
+
name: item.question,
|
|
194
|
+
acceptedAnswer: { '@type': 'Answer', text: item.answer },
|
|
195
|
+
})),
|
|
196
|
+
};
|
|
197
|
+
|
|
198
|
+
const howToSchema: WithContext<HowTo> = {
|
|
199
|
+
'@context': 'https://schema.org',
|
|
200
|
+
'@type': 'HowTo',
|
|
201
|
+
name: title,
|
|
202
|
+
description,
|
|
203
|
+
step: howTo.map((step) => ({
|
|
204
|
+
'@type': 'HowToStep',
|
|
205
|
+
name: step.name,
|
|
206
|
+
text: step.text,
|
|
207
|
+
})),
|
|
208
|
+
};
|
|
209
|
+
|
|
210
|
+
const appSchema: WithContext<SoftwareApplication> = {
|
|
211
|
+
'@context': 'https://schema.org',
|
|
212
|
+
'@type': 'SoftwareApplication',
|
|
213
|
+
name: title,
|
|
214
|
+
description,
|
|
215
|
+
applicationCategory: 'UtilitiesApplication',
|
|
216
|
+
operatingSystem: 'Web',
|
|
217
|
+
offers: { '@type': 'Offer', price: '0', priceCurrency: 'EUR' },
|
|
218
|
+
inLanguage: 'zh',
|
|
219
|
+
};
|
|
220
|
+
|
|
221
|
+
export const content: CollageMakerLocaleContent = {
|
|
222
|
+
slug,
|
|
223
|
+
title,
|
|
224
|
+
description,
|
|
225
|
+
ui,
|
|
226
|
+
seo,
|
|
227
|
+
faqTitle: "常见问题",
|
|
228
|
+
faq,
|
|
229
|
+
bibliographyTitle: "参考资料",
|
|
230
|
+
bibliography,
|
|
231
|
+
howTo,
|
|
232
|
+
schemas: [faqSchema as any, howToSchema as any, appSchema],
|
|
233
|
+
};
|
|
@@ -24,9 +24,6 @@ export interface CollageMakerUI {
|
|
|
24
24
|
|
|
25
25
|
export type CollageMakerLocaleContent = ToolLocaleContent<CollageMakerUI>;
|
|
26
26
|
|
|
27
|
-
import { content as es } from './i18n/es';
|
|
28
|
-
import { content as en } from './i18n/en';
|
|
29
|
-
import { content as fr } from './i18n/fr';
|
|
30
27
|
|
|
31
28
|
export const collageMaker: AudiovisualToolEntry<CollageMakerUI> = {
|
|
32
29
|
id: 'creador-collage-fotos',
|
|
@@ -35,9 +32,21 @@ export const collageMaker: AudiovisualToolEntry<CollageMakerUI> = {
|
|
|
35
32
|
fg: 'mdi:palette-outline',
|
|
36
33
|
},
|
|
37
34
|
i18n: {
|
|
38
|
-
es: async () => es as unknown as CollageMakerLocaleContent,
|
|
39
|
-
en: async () => en as unknown as CollageMakerLocaleContent,
|
|
40
|
-
fr: async () => fr as unknown as CollageMakerLocaleContent,
|
|
35
|
+
es: async () => (await import('./i18n/es')).content as unknown as CollageMakerLocaleContent,
|
|
36
|
+
en: async () => (await import('./i18n/en')).content as unknown as CollageMakerLocaleContent,
|
|
37
|
+
fr: async () => (await import('./i18n/fr')).content as unknown as CollageMakerLocaleContent,
|
|
38
|
+
de: async () => (await import('./i18n/de')).content as unknown as CollageMakerLocaleContent,
|
|
39
|
+
it: async () => (await import('./i18n/it')).content as unknown as CollageMakerLocaleContent,
|
|
40
|
+
pt: async () => (await import('./i18n/pt')).content as unknown as CollageMakerLocaleContent,
|
|
41
|
+
id: async () => (await import('./i18n/id')).content as unknown as CollageMakerLocaleContent,
|
|
42
|
+
ja: async () => (await import('./i18n/ja')).content as unknown as CollageMakerLocaleContent,
|
|
43
|
+
ko: async () => (await import('./i18n/ko')).content as unknown as CollageMakerLocaleContent,
|
|
44
|
+
nl: async () => (await import('./i18n/nl')).content as unknown as CollageMakerLocaleContent,
|
|
45
|
+
pl: async () => (await import('./i18n/pl')).content as unknown as CollageMakerLocaleContent,
|
|
46
|
+
ru: async () => (await import('./i18n/ru')).content as unknown as CollageMakerLocaleContent,
|
|
47
|
+
sv: async () => (await import('./i18n/sv')).content as unknown as CollageMakerLocaleContent,
|
|
48
|
+
tr: async () => (await import('./i18n/tr')).content as unknown as CollageMakerLocaleContent,
|
|
49
|
+
zh: async () => (await import('./i18n/zh')).content as unknown as CollageMakerLocaleContent,
|
|
41
50
|
},
|
|
42
51
|
};
|
|
43
52
|
|