@jjlmoya/utils-converters 1.25.0 → 1.27.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 (134) hide show
  1. package/package.json +2 -2
  2. package/src/category/i18n/de.ts +1 -1
  3. package/src/category/i18n/en.ts +1 -1
  4. package/src/category/i18n/fr.ts +1 -1
  5. package/src/category/i18n/id.ts +1 -1
  6. package/src/category/i18n/it.ts +1 -1
  7. package/src/category/i18n/nl.ts +1 -1
  8. package/src/category/i18n/pl.ts +1 -1
  9. package/src/category/i18n/pt.ts +1 -1
  10. package/src/category/i18n/sv.ts +1 -1
  11. package/src/tests/bibliography_wellformed_export.test.ts +46 -0
  12. package/src/tests/category_seo_quality.test.ts +74 -0
  13. package/src/tests/faq_count.test.ts +1 -1
  14. package/src/tests/no_h1_in_components.test.ts +1 -1
  15. package/src/tests/seo_parity.test.ts +2 -2
  16. package/src/tests/seo_translation_completeness.test.ts +18 -12
  17. package/src/tests/seo_wellformed_export.test.ts +65 -0
  18. package/src/tests/tool_validation.test.ts +15 -15
  19. package/src/tool/avifAJpg/i18n/en.ts +164 -164
  20. package/src/tool/avifAJpg/i18n/es.ts +164 -164
  21. package/src/tool/avifAJpg/i18n/fr.ts +164 -164
  22. package/src/tool/avifAJpg/i18n/ja.ts +166 -166
  23. package/src/tool/avifAJpg/i18n/ko.ts +166 -166
  24. package/src/tool/avifAJpg/i18n/zh.ts +166 -166
  25. package/src/tool/avifAJpg/seo.astro +15 -15
  26. package/src/tool/avifAPng/i18n/en.ts +164 -164
  27. package/src/tool/avifAPng/i18n/es.ts +164 -164
  28. package/src/tool/avifAPng/i18n/fr.ts +164 -164
  29. package/src/tool/avifAPng/i18n/ja.ts +166 -166
  30. package/src/tool/avifAPng/i18n/ko.ts +166 -166
  31. package/src/tool/avifAPng/i18n/zh.ts +166 -166
  32. package/src/tool/avifAPng/seo.astro +15 -15
  33. package/src/tool/avifAWebp/i18n/en.ts +164 -164
  34. package/src/tool/avifAWebp/i18n/es.ts +164 -164
  35. package/src/tool/avifAWebp/i18n/fr.ts +164 -164
  36. package/src/tool/avifAWebp/i18n/ja.ts +166 -166
  37. package/src/tool/avifAWebp/i18n/ko.ts +166 -166
  38. package/src/tool/avifAWebp/i18n/zh.ts +166 -166
  39. package/src/tool/avifAWebp/seo.astro +15 -15
  40. package/src/tool/bmpAJpg/i18n/en.ts +164 -164
  41. package/src/tool/bmpAJpg/i18n/es.ts +164 -164
  42. package/src/tool/bmpAJpg/i18n/fr.ts +164 -164
  43. package/src/tool/bmpAJpg/i18n/ja.ts +166 -166
  44. package/src/tool/bmpAJpg/i18n/ko.ts +166 -166
  45. package/src/tool/bmpAJpg/i18n/zh.ts +166 -166
  46. package/src/tool/bmpAJpg/seo.astro +15 -15
  47. package/src/tool/bmpAPng/i18n/en.ts +164 -164
  48. package/src/tool/bmpAPng/i18n/es.ts +164 -164
  49. package/src/tool/bmpAPng/i18n/fr.ts +164 -164
  50. package/src/tool/bmpAPng/i18n/ja.ts +165 -165
  51. package/src/tool/bmpAPng/i18n/ko.ts +165 -165
  52. package/src/tool/bmpAPng/i18n/zh.ts +165 -165
  53. package/src/tool/bmpAPng/seo.astro +15 -15
  54. package/src/tool/bmpAWebp/i18n/en.ts +164 -164
  55. package/src/tool/bmpAWebp/i18n/es.ts +164 -164
  56. package/src/tool/bmpAWebp/i18n/fr.ts +164 -164
  57. package/src/tool/bmpAWebp/i18n/ja.ts +166 -166
  58. package/src/tool/bmpAWebp/i18n/ko.ts +166 -166
  59. package/src/tool/bmpAWebp/i18n/zh.ts +166 -166
  60. package/src/tool/bmpAWebp/seo.astro +15 -15
  61. package/src/tool/gifAJpg/i18n/en.ts +164 -164
  62. package/src/tool/gifAJpg/i18n/es.ts +164 -164
  63. package/src/tool/gifAJpg/i18n/fr.ts +164 -164
  64. package/src/tool/gifAJpg/i18n/ja.ts +166 -166
  65. package/src/tool/gifAJpg/i18n/ko.ts +166 -166
  66. package/src/tool/gifAJpg/i18n/zh.ts +166 -166
  67. package/src/tool/gifAJpg/seo.astro +15 -15
  68. package/src/tool/gifAPng/i18n/en.ts +164 -164
  69. package/src/tool/gifAPng/i18n/es.ts +164 -164
  70. package/src/tool/gifAPng/i18n/fr.ts +164 -164
  71. package/src/tool/gifAPng/i18n/ja.ts +166 -166
  72. package/src/tool/gifAPng/i18n/ko.ts +166 -166
  73. package/src/tool/gifAPng/i18n/zh.ts +166 -166
  74. package/src/tool/gifAPng/seo.astro +15 -15
  75. package/src/tool/gifAWebp/i18n/en.ts +164 -164
  76. package/src/tool/gifAWebp/i18n/es.ts +164 -164
  77. package/src/tool/gifAWebp/i18n/fr.ts +164 -164
  78. package/src/tool/gifAWebp/i18n/ja.ts +166 -166
  79. package/src/tool/gifAWebp/i18n/ko.ts +166 -166
  80. package/src/tool/gifAWebp/i18n/zh.ts +166 -166
  81. package/src/tool/gifAWebp/seo.astro +15 -15
  82. package/src/tool/imagenBase64/i18n/en.ts +154 -154
  83. package/src/tool/imagenBase64/i18n/es.ts +154 -154
  84. package/src/tool/imagenBase64/i18n/fr.ts +154 -154
  85. package/src/tool/imagenBase64/seo.astro +15 -15
  86. package/src/tool/jpgAIco/seo.astro +15 -15
  87. package/src/tool/jpgAPng/i18n/en.ts +164 -164
  88. package/src/tool/jpgAPng/i18n/es.ts +164 -164
  89. package/src/tool/jpgAPng/i18n/fr.ts +164 -164
  90. package/src/tool/jpgAPng/i18n/ja.ts +166 -166
  91. package/src/tool/jpgAPng/i18n/ko.ts +166 -166
  92. package/src/tool/jpgAPng/i18n/zh.ts +166 -166
  93. package/src/tool/jpgAPng/seo.astro +15 -15
  94. package/src/tool/jpgAWebp/i18n/en.ts +164 -164
  95. package/src/tool/jpgAWebp/i18n/es.ts +164 -164
  96. package/src/tool/jpgAWebp/i18n/fr.ts +164 -164
  97. package/src/tool/jpgAWebp/seo.astro +15 -15
  98. package/src/tool/pngAIco/seo.astro +15 -15
  99. package/src/tool/pngAJpg/i18n/de.ts +21 -21
  100. package/src/tool/pngAJpg/i18n/es.ts +177 -177
  101. package/src/tool/pngAJpg/i18n/fr.ts +137 -137
  102. package/src/tool/pngAJpg/i18n/id.ts +89 -89
  103. package/src/tool/pngAJpg/i18n/it.ts +89 -89
  104. package/src/tool/pngAJpg/i18n/ko.ts +177 -177
  105. package/src/tool/pngAJpg/i18n/nl.ts +20 -20
  106. package/src/tool/pngAJpg/i18n/pl.ts +89 -89
  107. package/src/tool/pngAJpg/i18n/pt.ts +89 -89
  108. package/src/tool/pngAJpg/i18n/ru.ts +177 -177
  109. package/src/tool/pngAJpg/i18n/sv.ts +89 -89
  110. package/src/tool/pngAJpg/i18n/tr.ts +89 -89
  111. package/src/tool/pngAJpg/seo.astro +15 -15
  112. package/src/tool/pngAWebp/i18n/en.ts +164 -164
  113. package/src/tool/pngAWebp/i18n/es.ts +164 -164
  114. package/src/tool/pngAWebp/i18n/fr.ts +164 -164
  115. package/src/tool/pngAWebp/seo.astro +15 -15
  116. package/src/tool/svgAJpg/i18n/fr.ts +164 -164
  117. package/src/tool/svgAJpg/seo.astro +15 -15
  118. package/src/tool/svgAPng/i18n/fr.ts +164 -164
  119. package/src/tool/svgAPng/seo.astro +15 -15
  120. package/src/tool/webpAIco/seo.astro +15 -15
  121. package/src/tool/webpAJpg/seo.astro +15 -15
  122. package/src/tool/webpAPng/bibliography.ts +13 -13
  123. package/src/tool/webpAPng/i18n/de.ts +166 -166
  124. package/src/tool/webpAPng/i18n/es.ts +171 -171
  125. package/src/tool/webpAPng/i18n/fr.ts +166 -166
  126. package/src/tool/webpAPng/i18n/id.ts +166 -166
  127. package/src/tool/webpAPng/i18n/it.ts +166 -166
  128. package/src/tool/webpAPng/i18n/nl.ts +166 -166
  129. package/src/tool/webpAPng/i18n/pl.ts +166 -166
  130. package/src/tool/webpAPng/i18n/pt.ts +166 -166
  131. package/src/tool/webpAPng/i18n/ru.ts +166 -166
  132. package/src/tool/webpAPng/i18n/sv.ts +166 -166
  133. package/src/tool/webpAPng/i18n/tr.ts +167 -167
  134. package/src/tool/webpAPng/seo.astro +15 -15
@@ -1,168 +1,168 @@
1
1
  import { bibliography } from '../bibliography';
2
- import type { ImageConverterUI } from '../../../shared/ImageConverter.astro';
3
- import { generateSchemas } from '../../../shared/logic/schemas';
4
- import type { BmpAJpgLocaleContent } from '../index';
5
-
6
- const slug = 'bmp-to-jpg-converter';
7
- const title = '在线将 BMP 转换为 JPG';
8
- const description =
9
- '在您的浏览器中将 BMP 图像转换为 JPG。大幅减小文件大小。无需将文件上传到服务器。免费且 100% 私密。';
10
-
11
- const ui: ImageConverterUI = {
12
- dragText: '拖拽 BMP 文件...',
13
- convertText: '立即将其转换为 JPG',
14
- selectFiles: '选择文件',
15
- processedFiles: '已处理文件',
16
- downloadAll: '下载全部 (.zip)',
2
+ import type { ImageConverterUI } from '../../../shared/ImageConverter.astro';
3
+ import { generateSchemas } from '../../../shared/logic/schemas';
4
+ import type { BmpAJpgLocaleContent } from '../index';
5
+
6
+ const slug = 'bmp-to-jpg-converter';
7
+ const title = '在线将 BMP 转换为 JPG';
8
+ const description =
9
+ '在您的浏览器中将 BMP 图像转换为 JPG。大幅减小文件大小。无需将文件上传到服务器。免费且 100% 私密。';
10
+
11
+ const ui: ImageConverterUI = {
12
+ dragText: '拖拽 BMP 文件...',
13
+ convertText: '立即将其转换为 JPG',
14
+ selectFiles: '选择文件',
15
+ processedFiles: '已处理文件',
16
+ downloadAll: '下载全部 (.zip)',
17
17
  pending: '等待中',
18
- bibliographyTitle: '参考文献',
19
- faqTitle: '常见问题',
20
- };
21
-
22
- const faq: BmpAJpgLocaleContent['faq'] = [
23
- {
24
- question: '为什么要将 BMP 转换为 JPG?',
25
- answer:
26
- 'BMP 格式不压缩数据,导致文件极其庞大。JPG 格式可以在大幅压缩图像的同时,为网页和分发保留出色的视觉质量。',
27
- },
28
- {
29
- question: '在这里转换我的图像安全吗?',
30
- answer:
31
- '100% 安全。由于处理完全是在您自己的浏览器引擎本地完成的,因此您的隐私得到了保证。',
32
- },
33
- {
34
- question: '这个工具是如何运作的?',
35
- answer:
36
- '只需拖入您的 BMP 文件,我们的 JavaScript 脚本就会读取其像素,在 HTML 画布上重新绘制,并立即导出为 JPEG 编码格式。',
37
- },
38
- ];
39
-
40
- const howTo: BmpAJpgLocaleContent['howTo'] = [
41
- {
42
- name: '上传您的 BMP 文件',
43
- text: '将您的 BMP 格式图像拖放到指定区域或手动选择。',
44
- },
45
- {
46
- name: '自动处理',
47
- text: '工具会在毫秒内对图像进行光栅化,并应用 JPG 格式的最佳压缩级别。',
48
- },
49
- {
50
- name: '单个或批量下载',
51
- text: '逐个获取您为网页优化的新图像,或通过下载 ZIP 文件一次性获取。',
52
- },
53
- ];
54
-
55
- const seo: BmpAJpgLocaleContent['seo'] = [
56
- {
57
- type: 'title',
58
- text: 'BMP 转 JPG 转换器:在几秒钟内缩减巨大的文件',
59
- level: 2,
60
- },
61
- {
62
- type: 'paragraph',
63
- html: 'BMP(Bitmap)是计算机科学领域最原始的格式:它按原样存储每个像素,没有任何形式的压缩。一张 1920x1080 分辨率的 BMP 截图重约 6 MB。同一张 JPG 图像在视觉质量难辨的情况下,仅占用 200 到 400 KB。这种差异是巨大的,我们的工具允许您在浏览器中直接完成转换,无需向任何服务器上传任何内容。',
64
- },
65
- {
66
- type: 'title',
67
- text: 'BMP vs JPG:原始数据 vs 智能压缩',
68
- level: 3,
69
- },
70
- {
71
- type: 'paragraph',
72
- html: 'BMP 格式由微软在 Windows 3.1 时代创建。其理念尽可能简单:每个像素占用 3 字节(红、绿、蓝),像素按行存储,不进行任何额外处理。对于真实的图片和截图,这种完全缺乏压缩的情况导致 BMP 文件比同等的 JPG 文件大 50 到 100 倍。',
73
- },
74
- {
75
- type: 'paragraph',
76
- html: '相比之下,JPG 使用离散余弦变换(DCT)来分析每个 8x8 像素块,并消除人类肉眼几乎察觉不到的高频信息。结果是图像看起来完全相同,但体积却只有原图的一小部分。对于来自截图、扫描仪或旧版 Windows 应用程序的 BMP 文件,转换为 JPG 是最有效的优化手段。',
77
- },
78
- {
79
- type: 'title',
80
- text: '架构对比:本地 vs 云端',
81
- level: 3,
82
- },
83
- {
84
- type: 'comparative',
85
- items: [
86
- {
87
- title: '云端转换器',
88
- description: '将您的 BMP 文件上传到远程服务器进行处理的服务。',
89
- icon: 'mdi:cloud-upload',
90
- pointIcon: 'mdi:close-circle-outline',
91
- points: [
92
- '在慢速连接下上传 10 MB 的 BMP 需要较长时间',
93
- '您的机密截图和图像在互联网上传播',
94
- '免费计划中常见的尺寸限制',
95
- '双重延迟:转换后文件的上传和下载',
96
- ],
97
- },
98
- {
99
- title: '我们的本地架构',
100
- description: '通过 Vanilla JS 技术在您的硬件上直接完成处理。',
101
- icon: 'mdi:laptop-mac',
102
- highlight: true,
103
- points: [
104
- 'BMP 在您的 RAM 中处理,不传输到服务器',
105
- '即时转换,无需等待',
106
- '没有单个文件的大小限制',
107
- '完全隐私:0 字节向外传输',
108
- ],
109
- },
110
- ],
111
- },
112
- {
113
- type: 'title',
114
- text: 'BMP 转 JPG 的技术转换原理',
115
- level: 3,
116
- },
117
- {
118
- type: 'paragraph',
119
- html: '当您将 BMP 文件拖入工具时,浏览器会通过 <code>FileReader</code> API 读取该文件,并在内存中将其解码为 Blob 对象。该 Blob 会渲染到不可见的 HTML5 画布上。接着,<code>toDataURL(\'image/jpeg\')</code> 方法会对画布数据应用 JPEG 压缩算法,并生成结果 JPG 文件。',
120
- },
121
- {
122
- type: 'paragraph',
123
- html: '由于 BMP 没有 Alpha 通道(不支持透明度),因此转 JPG 的过程是直接完成的,无需与白色背景进行合成。整个过程在您计算机的 RAM 内存中进行,无需任何网络数据传输,即使对于数兆字节的文件,也能在毫秒内完成。',
124
- },
125
- {
126
- type: 'tip',
127
- title: 'Windows BMP 文件可能非常庞大',
128
- html: '通过截图(Windows 中的 Print Screen 键)或 Paint 等旧版应用生成的 BMP 文件可能比同等的 JPG 重 50 到 100 倍。单张全高清分辨率的 BMP 可能超过 6 MB。在通过电子邮件发送或上传到任何平台之前,将其转换为 JPG 是一项至关重要的操作。',
129
- },
130
- {
131
- type: 'title',
132
- text: '使用场景和结果 JPG 的兼容性',
133
- level: 3,
134
- },
135
- {
136
- type: 'list',
137
- icon: 'mdi:check-circle',
138
- items: [
139
- '优化用于电子邮件发送的 Windows 截图。',
140
- '转换旧版软件(CAD、旧扫描仪)导出的图像。',
141
- '在上传图像到网页平台和社交网络前减小体积。',
142
- '为插入 Word、PowerPoint 或 PDF 文档准备文件。',
143
- '与所有现代查看器和浏览器通用兼容。',
144
- ],
145
- },
146
- {
147
- type: 'title',
148
- text: '结论:10 MB 的 BMP,500 KB 的 JPG,相同的画面',
149
- level: 3,
150
- },
151
- {
152
- type: 'paragraph',
153
- html: 'BMP 转 JPG 是图像文件管理中最划算的优化操作之一。我们的工具在几秒钟内完成转换,不上传文件,不创建账户,直接在您的浏览器中进行。结果是高质量的 JPG 图像,通用兼容,且体积比原始 BMP 减少达 97%。',
154
- },
155
- ];
156
-
157
-
158
- export const content: BmpAJpgLocaleContent = {
159
- slug,
160
- title,
161
- description,
162
- ui,
163
- seo,
164
- faq,
165
- bibliography,
166
- howTo,
167
- schemas: generateSchemas({ title, description, inLanguage: 'zh', faq, howTo }),
168
- };
18
+ bibliographyTitle: '参考文献',
19
+ faqTitle: '常见问题',
20
+ };
21
+
22
+ const faq: BmpAJpgLocaleContent['faq'] = [
23
+ {
24
+ question: '为什么要将 BMP 转换为 JPG?',
25
+ answer:
26
+ 'BMP 格式不压缩数据,导致文件极其庞大。JPG 格式可以在大幅压缩图像的同时,为网页和分发保留出色的视觉质量。',
27
+ },
28
+ {
29
+ question: '在这里转换我的图像安全吗?',
30
+ answer:
31
+ '100% 安全。由于处理完全是在您自己的浏览器引擎本地完成的,因此您的隐私得到了保证。',
32
+ },
33
+ {
34
+ question: '这个工具是如何运作的?',
35
+ answer:
36
+ '只需拖入您的 BMP 文件,我们的 JavaScript 脚本就会读取其像素,在 HTML 画布上重新绘制,并立即导出为 JPEG 编码格式。',
37
+ },
38
+ ];
39
+
40
+ const howTo: BmpAJpgLocaleContent['howTo'] = [
41
+ {
42
+ name: '上传您的 BMP 文件',
43
+ text: '将您的 BMP 格式图像拖放到指定区域或手动选择。',
44
+ },
45
+ {
46
+ name: '自动处理',
47
+ text: '工具会在毫秒内对图像进行光栅化,并应用 JPG 格式的最佳压缩级别。',
48
+ },
49
+ {
50
+ name: '单个或批量下载',
51
+ text: '逐个获取您为网页优化的新图像,或通过下载 ZIP 文件一次性获取。',
52
+ },
53
+ ];
54
+
55
+ const seo: BmpAJpgLocaleContent['seo'] = [
56
+ {
57
+ type: 'title',
58
+ text: 'BMP 转 JPG 转换器:在几秒钟内缩减巨大的文件',
59
+ level: 2,
60
+ },
61
+ {
62
+ type: 'paragraph',
63
+ html: 'BMP(Bitmap)是计算机科学领域最原始的格式:它按原样存储每个像素,没有任何形式的压缩。一张 1920x1080 分辨率的 BMP 截图重约 6 MB。同一张 JPG 图像在视觉质量难辨的情况下,仅占用 200 到 400 KB。这种差异是巨大的,我们的工具允许您在浏览器中直接完成转换,无需向任何服务器上传任何内容。',
64
+ },
65
+ {
66
+ type: 'title',
67
+ text: 'BMP vs JPG:原始数据 vs 智能压缩',
68
+ level: 3,
69
+ },
70
+ {
71
+ type: 'paragraph',
72
+ html: 'BMP 格式由微软在 Windows 3.1 时代创建。其理念尽可能简单:每个像素占用 3 字节(红、绿、蓝),像素按行存储,不进行任何额外处理。对于真实的图片和截图,这种完全缺乏压缩的情况导致 BMP 文件比同等的 JPG 文件大 50 到 100 倍。',
73
+ },
74
+ {
75
+ type: 'paragraph',
76
+ html: '相比之下,JPG 使用离散余弦变换(DCT)来分析每个 8x8 像素块,并消除人类肉眼几乎察觉不到的高频信息。结果是图像看起来完全相同,但体积却只有原图的一小部分。对于来自截图、扫描仪或旧版 Windows 应用程序的 BMP 文件,转换为 JPG 是最有效的优化手段。',
77
+ },
78
+ {
79
+ type: 'title',
80
+ text: '架构对比:本地 vs 云端',
81
+ level: 3,
82
+ },
83
+ {
84
+ type: 'comparative',
85
+ items: [
86
+ {
87
+ title: '云端转换器',
88
+ description: '将您的 BMP 文件上传到远程服务器进行处理的服务。',
89
+ icon: 'mdi:cloud-upload',
90
+ pointIcon: 'mdi:close-circle-outline',
91
+ points: [
92
+ '在慢速连接下上传 10 MB 的 BMP 需要较长时间',
93
+ '您的机密截图和图像在互联网上传播',
94
+ '免费计划中常见的尺寸限制',
95
+ '双重延迟:转换后文件的上传和下载',
96
+ ],
97
+ },
98
+ {
99
+ title: '我们的本地架构',
100
+ description: '通过 Vanilla JS 技术在您的硬件上直接完成处理。',
101
+ icon: 'mdi:laptop-mac',
102
+ highlight: true,
103
+ points: [
104
+ 'BMP 在您的 RAM 中处理,不传输到服务器',
105
+ '即时转换,无需等待',
106
+ '没有单个文件的大小限制',
107
+ '完全隐私:0 字节向外传输',
108
+ ],
109
+ },
110
+ ],
111
+ },
112
+ {
113
+ type: 'title',
114
+ text: 'BMP 转 JPG 的技术转换原理',
115
+ level: 3,
116
+ },
117
+ {
118
+ type: 'paragraph',
119
+ html: '当您将 BMP 文件拖入工具时,浏览器会通过 <code>FileReader</code> API 读取该文件,并在内存中将其解码为 Blob 对象。该 Blob 会渲染到不可见的 HTML5 画布上。接着,<code>toDataURL(\'image/jpeg\')</code> 方法会对画布数据应用 JPEG 压缩算法,并生成结果 JPG 文件。',
120
+ },
121
+ {
122
+ type: 'paragraph',
123
+ html: '由于 BMP 没有 Alpha 通道(不支持透明度),因此转 JPG 的过程是直接完成的,无需与白色背景进行合成。整个过程在您计算机的 RAM 内存中进行,无需任何网络数据传输,即使对于数兆字节的文件,也能在毫秒内完成。',
124
+ },
125
+ {
126
+ type: 'tip',
127
+ title: 'Windows BMP 文件可能非常庞大',
128
+ html: '通过截图(Windows 中的 Print Screen 键)或 Paint 等旧版应用生成的 BMP 文件可能比同等的 JPG 重 50 到 100 倍。单张全高清分辨率的 BMP 可能超过 6 MB。在通过电子邮件发送或上传到任何平台之前,将其转换为 JPG 是一项至关重要的操作。',
129
+ },
130
+ {
131
+ type: 'title',
132
+ text: '使用场景和结果 JPG 的兼容性',
133
+ level: 3,
134
+ },
135
+ {
136
+ type: 'list',
137
+ icon: 'mdi:check-circle',
138
+ items: [
139
+ '优化用于电子邮件发送的 Windows 截图。',
140
+ '转换旧版软件(CAD、旧扫描仪)导出的图像。',
141
+ '在上传图像到网页平台和社交网络前减小体积。',
142
+ '为插入 Word、PowerPoint 或 PDF 文档准备文件。',
143
+ '与所有现代查看器和浏览器通用兼容。',
144
+ ],
145
+ },
146
+ {
147
+ type: 'title',
148
+ text: '结论:10 MB 的 BMP,500 KB 的 JPG,相同的画面',
149
+ level: 3,
150
+ },
151
+ {
152
+ type: 'paragraph',
153
+ html: 'BMP 转 JPG 是图像文件管理中最划算的优化操作之一。我们的工具在几秒钟内完成转换,不上传文件,不创建账户,直接在您的浏览器中进行。结果是高质量的 JPG 图像,通用兼容,且体积比原始 BMP 减少达 97%。',
154
+ },
155
+ ];
156
+
157
+
158
+ export const content: BmpAJpgLocaleContent = {
159
+ slug,
160
+ title,
161
+ description,
162
+ ui,
163
+ seo,
164
+ faq,
165
+ bibliography,
166
+ howTo,
167
+ schemas: generateSchemas({ title, description, inLanguage: 'zh', faq, howTo }),
168
+ };
@@ -1,15 +1,15 @@
1
- ---
2
- import { SEORenderer } from '@jjlmoya/utils-shared';
3
- import { bmpAJpg } from './index';
4
- import type { KnownLocale } from '../../types';
5
-
6
- interface Props {
7
- locale?: KnownLocale;
8
- }
9
-
10
- const { locale = 'es' } = Astro.props;
11
- const content = await bmpAJpg.i18n[locale]?.();
12
- if (!content) return null;
13
- ---
14
-
15
- {content.seo?.length > 0 && <SEORenderer content={{ locale, sections: content.seo }} />}
1
+ ---
2
+ import { SEORenderer } from '@jjlmoya/utils-shared';
3
+ import { bmpAJpg } from './index';
4
+ import type { KnownLocale } from '../../types';
5
+
6
+ interface Props {
7
+ locale?: KnownLocale;
8
+ }
9
+
10
+ const { locale = 'es' } = Astro.props;
11
+ const content = await bmpAJpg.i18n[locale]?.();
12
+ if (!content) return null;
13
+ ---
14
+
15
+ {content.seo?.length > 0 && <SEORenderer content={{ locale, sections: content.seo }} />}