@jjlmoya/utils-converters 1.24.0 → 1.26.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/entries.ts +6 -0
  12. package/src/tests/bibliography_wellformed_export.test.ts +46 -0
  13. package/src/tests/category_seo_quality.test.ts +74 -0
  14. package/src/tests/faq_count.test.ts +1 -1
  15. package/src/tests/no_h1_in_components.test.ts +1 -1
  16. package/src/tests/seo_parity.test.ts +2 -2
  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 { AvifAJpgLocaleContent } from '../index';
5
-
6
- const slug = 'avif-to-jpg-converter';
7
- const title = '在线将 AVIF 转换为 JPG';
8
- const description =
9
- '在浏览器中将 AVIF 图像转换为 JPG。无需服务器。100% 私密本地处理。免费且无限制。';
10
-
11
- const ui: ImageConverterUI = {
12
- dragText: '拖拽 AVIF 文件...',
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 { AvifAJpgLocaleContent } from '../index';
5
+
6
+ const slug = 'avif-to-jpg-converter';
7
+ const title = '在线将 AVIF 转换为 JPG';
8
+ const description =
9
+ '在浏览器中将 AVIF 图像转换为 JPG。无需服务器。100% 私密本地处理。免费且无限制。';
10
+
11
+ const ui: ImageConverterUI = {
12
+ dragText: '拖拽 AVIF 文件...',
13
+ convertText: '立即将其转换为 JPG',
14
+ selectFiles: '选择文件',
15
+ processedFiles: '已处理文件',
16
+ downloadAll: '下载全部 (.zip)',
17
17
  pending: '等待中',
18
- bibliographyTitle: '参考文献记录',
19
- faqTitle: '常见问题',
20
- };
21
-
22
- const faq: AvifAJpgLocaleContent['faq'] = [
23
- {
24
- question: '为什么要将 AVIF 转换为 JPG?',
25
- answer:
26
- 'AVIF 格式虽然提供了更卓越的压缩率,但并非所有程序或查看器都支持它。将其转换为 JPG 可确保图像可以在全球 100% 的设备上查看。',
27
- },
28
- {
29
- question: '我们如何保护您的 AVIF 图像?',
30
- answer:
31
- '您的照片永远不会离开您的手机或电脑。绘图并编码为 JPEG 的整个过程都在浏览器的 Javascript 环境中运行。',
32
- },
33
- {
34
- question: '从 AVIF 转换为 JPG 会损失质量吗?',
35
- answer:
36
- '我们的工具以标准的 Canvas 质量(0.9 到 0.95)处理像素,使得画质的变化几乎无法察觉。',
37
- },
38
- ];
39
-
40
- const howTo: AvifAJpgLocaleContent['howTo'] = [
41
- {
42
- name: '拖拽文件或点击选择',
43
- text: '将所有想要转换的 AVIF 照片移入指定的处理区域。',
44
- },
45
- {
46
- name: '即时转换',
47
- text: '观察 AVIF 如何在不到一秒的时间内重新编码为 JPG,并将可能存在的 Alpha 通道替换为纯色背景。',
48
- },
49
- {
50
- name: '保存或下载 ZIP',
51
- text: '逐个下载新的 JPG 图像,或者如果进行了批量处理,点击\"下载全部\"进行保存。',
52
- },
53
- ];
54
-
55
- const seo: AvifAJpgLocaleContent['seo'] = [
56
- {
57
- type: 'title',
58
- text: 'AVIF 转 JPG 转换器:为您的现代图像提供通用兼容性',
59
- level: 2,
60
- },
61
- {
62
- type: 'paragraph',
63
- html: 'AVIF (AV1 Image File Format) 是目前最有效的图像格式。由 Alliance for Open Media 开发,基于 AV1 视频编解码器,它在保持相同视觉质量的前提下,压缩率比 JPG 高出 50%。然而,这种技术优势是有代价的:Photoshop、Lightroom、Windows 照片查看器以及大多数传统的编辑和可视化工具都不支持 AVIF。转换为 JPG 可以从根本上解决这个问题。',
64
- },
65
- {
66
- type: 'title',
67
- text: 'AVIF vs JPG:效率与通用兼容性的博弈',
68
- level: 3,
69
- },
70
- {
71
- type: 'paragraph',
72
- html: 'AVIF 的压缩能力非常出色:在 JPG 中占用 4 MB 的高分辨率照片,在 AVIF 中仅占 2 MB 且能保持相同的感知质量。这对于对加载性能要求极高的网页分发来说非常完美。然而,在浏览器之外,AVIF 几乎是\"隐身\"的:Windows 资源管理器无法预览它,相机也无法直接导出它,设计师们在工作流中也不太愿意接受它。',
73
- },
74
- {
75
- type: 'paragraph',
76
- html: '30 多年来,JPG 一直是数字摄影的通用标准。它受到 100% 设备、操作系统、办公应用、社交网络、打印机以及任何曾经显示过图像的软件的支持。当您需要分享、打印、编辑或通过电子邮件发送图像时,JPG 就是一切都能顺畅运行的保证。',
77
- },
78
- {
79
- type: 'title',
80
- text: '对比:云端转换器 vs 我们的本地架构',
81
- level: 3,
82
- },
83
- {
84
- type: 'comparative',
85
- items: [
86
- {
87
- title: '云端转换器',
88
- description: '将您的 AVIF 文件上传到远程服务器进行处理的传统工具。',
89
- icon: 'mdi:cloud-upload',
90
- pointIcon: 'mdi:close-circle-outline',
91
- points: [
92
- '您的私人照片通过互联网传输到外部服务器',
93
- '需要等待文件上传和下载的时间',
94
- '文件大小和免费转换次数受到限制',
95
- '图像可能在第三方服务器中被保留的风险',
96
- ],
97
- },
98
- {
99
- title: '我们的本地架构',
100
- description: '通过 Vanilla JS 技术和 Canvas API 在浏览器中直接处理。',
101
- icon: 'mdi:laptop-mac',
102
- highlight: true,
103
- points: [
104
- '您的图像永远不会离开您的设备',
105
- '即时转换,无网络延迟',
106
- '无文件数量或大小限制',
107
- '适用于医疗、法律或机密级别的图像',
108
- ],
109
- },
110
- ],
111
- },
112
- {
113
- type: 'title',
114
- text: '技术转换在浏览器中如何运行',
115
- level: 3,
116
- },
117
- {
118
- type: 'paragraph',
119
- html: 'Chrome、Firefox 和 Edge 等现代浏览器凭借集成的 AV1 解码器,原生支持 AVIF。当您加载 AVIF 文件时,浏览器会在内存中对其进行解码,并将其转换为内存中的位图。这个位图会绘制在一个不可见的 HTML5 <code>Canvas</code> 元素上。',
120
- },
121
- {
122
- type: 'paragraph',
123
- html: '接着,Canvas 使用 <code>toBlob(\'image/jpeg\', quality)</code> 导出图像,并应用标准的 JPG 压缩。由于 JPG 不支持透明度,AVIF 中存在的任何 Alpha 通道在导出前都会用白色背景填充。结果是一个高质量的 JPG 文件,可供直接下载,且没有一个字节离开过您的浏览器。',
124
- },
125
- {
126
- type: 'tip',
127
- title: '压缩与兼容性的平衡',
128
- html: '在相同质量下,AVIF 比 JPG 小 50% - 但 JPG 与任何软件都有 100% 的兼容性。如果您从服务器收到 AVIF 图像,且需要编辑、发送邮件或在桌面工具中打开它们,请先将它们转换为 JPG。',
129
- },
130
- {
131
- type: 'title',
132
- text: '使用场景:何时将 AVIF 转换为 JPG',
133
- level: 3,
134
- },
135
- {
136
- type: 'list',
137
- icon: 'mdi:check-circle',
138
- items: [
139
- '在 Photoshop、Lightroom、GIMP 或其他桌面软件中进行编辑。',
140
- '与使用旧设备或操作系统的用户分享图像。',
141
- '在电子邮件中添加附件,以确保在任何邮件客户端中都能正常查看。',
142
- '在不接受 AVIF 作为上传格式的平台上发布。',
143
- '打印:专业打印服务原生支持 JPG。',
144
- ],
145
- },
146
- {
147
- type: 'title',
148
- text: '结论:一步实现通用兼容性',
149
- level: 3,
150
- },
151
- {
152
- type: 'paragraph',
153
- html: 'AVIF 是图像压缩的未来,但目前兼容性至关重要。我们的转换器让您能兼顾两者的优点:接收并存储 AVIF 图像以获得最大效率,并在需要在任何情境下使用时,即时将它们转换为 JPG。一切都是私密的、免费的且无限制。',
154
- },
155
- ];
156
-
157
-
158
- export const content: AvifAJpgLocaleContent = {
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: AvifAJpgLocaleContent['faq'] = [
23
+ {
24
+ question: '为什么要将 AVIF 转换为 JPG?',
25
+ answer:
26
+ 'AVIF 格式虽然提供了更卓越的压缩率,但并非所有程序或查看器都支持它。将其转换为 JPG 可确保图像可以在全球 100% 的设备上查看。',
27
+ },
28
+ {
29
+ question: '我们如何保护您的 AVIF 图像?',
30
+ answer:
31
+ '您的照片永远不会离开您的手机或电脑。绘图并编码为 JPEG 的整个过程都在浏览器的 Javascript 环境中运行。',
32
+ },
33
+ {
34
+ question: '从 AVIF 转换为 JPG 会损失质量吗?',
35
+ answer:
36
+ '我们的工具以标准的 Canvas 质量(0.9 到 0.95)处理像素,使得画质的变化几乎无法察觉。',
37
+ },
38
+ ];
39
+
40
+ const howTo: AvifAJpgLocaleContent['howTo'] = [
41
+ {
42
+ name: '拖拽文件或点击选择',
43
+ text: '将所有想要转换的 AVIF 照片移入指定的处理区域。',
44
+ },
45
+ {
46
+ name: '即时转换',
47
+ text: '观察 AVIF 如何在不到一秒的时间内重新编码为 JPG,并将可能存在的 Alpha 通道替换为纯色背景。',
48
+ },
49
+ {
50
+ name: '保存或下载 ZIP',
51
+ text: '逐个下载新的 JPG 图像,或者如果进行了批量处理,点击\"下载全部\"进行保存。',
52
+ },
53
+ ];
54
+
55
+ const seo: AvifAJpgLocaleContent['seo'] = [
56
+ {
57
+ type: 'title',
58
+ text: 'AVIF 转 JPG 转换器:为您的现代图像提供通用兼容性',
59
+ level: 2,
60
+ },
61
+ {
62
+ type: 'paragraph',
63
+ html: 'AVIF (AV1 Image File Format) 是目前最有效的图像格式。由 Alliance for Open Media 开发,基于 AV1 视频编解码器,它在保持相同视觉质量的前提下,压缩率比 JPG 高出 50%。然而,这种技术优势是有代价的:Photoshop、Lightroom、Windows 照片查看器以及大多数传统的编辑和可视化工具都不支持 AVIF。转换为 JPG 可以从根本上解决这个问题。',
64
+ },
65
+ {
66
+ type: 'title',
67
+ text: 'AVIF vs JPG:效率与通用兼容性的博弈',
68
+ level: 3,
69
+ },
70
+ {
71
+ type: 'paragraph',
72
+ html: 'AVIF 的压缩能力非常出色:在 JPG 中占用 4 MB 的高分辨率照片,在 AVIF 中仅占 2 MB 且能保持相同的感知质量。这对于对加载性能要求极高的网页分发来说非常完美。然而,在浏览器之外,AVIF 几乎是\"隐身\"的:Windows 资源管理器无法预览它,相机也无法直接导出它,设计师们在工作流中也不太愿意接受它。',
73
+ },
74
+ {
75
+ type: 'paragraph',
76
+ html: '30 多年来,JPG 一直是数字摄影的通用标准。它受到 100% 设备、操作系统、办公应用、社交网络、打印机以及任何曾经显示过图像的软件的支持。当您需要分享、打印、编辑或通过电子邮件发送图像时,JPG 就是一切都能顺畅运行的保证。',
77
+ },
78
+ {
79
+ type: 'title',
80
+ text: '对比:云端转换器 vs 我们的本地架构',
81
+ level: 3,
82
+ },
83
+ {
84
+ type: 'comparative',
85
+ items: [
86
+ {
87
+ title: '云端转换器',
88
+ description: '将您的 AVIF 文件上传到远程服务器进行处理的传统工具。',
89
+ icon: 'mdi:cloud-upload',
90
+ pointIcon: 'mdi:close-circle-outline',
91
+ points: [
92
+ '您的私人照片通过互联网传输到外部服务器',
93
+ '需要等待文件上传和下载的时间',
94
+ '文件大小和免费转换次数受到限制',
95
+ '图像可能在第三方服务器中被保留的风险',
96
+ ],
97
+ },
98
+ {
99
+ title: '我们的本地架构',
100
+ description: '通过 Vanilla JS 技术和 Canvas API 在浏览器中直接处理。',
101
+ icon: 'mdi:laptop-mac',
102
+ highlight: true,
103
+ points: [
104
+ '您的图像永远不会离开您的设备',
105
+ '即时转换,无网络延迟',
106
+ '无文件数量或大小限制',
107
+ '适用于医疗、法律或机密级别的图像',
108
+ ],
109
+ },
110
+ ],
111
+ },
112
+ {
113
+ type: 'title',
114
+ text: '技术转换在浏览器中如何运行',
115
+ level: 3,
116
+ },
117
+ {
118
+ type: 'paragraph',
119
+ html: 'Chrome、Firefox 和 Edge 等现代浏览器凭借集成的 AV1 解码器,原生支持 AVIF。当您加载 AVIF 文件时,浏览器会在内存中对其进行解码,并将其转换为内存中的位图。这个位图会绘制在一个不可见的 HTML5 <code>Canvas</code> 元素上。',
120
+ },
121
+ {
122
+ type: 'paragraph',
123
+ html: '接着,Canvas 使用 <code>toBlob(\'image/jpeg\', quality)</code> 导出图像,并应用标准的 JPG 压缩。由于 JPG 不支持透明度,AVIF 中存在的任何 Alpha 通道在导出前都会用白色背景填充。结果是一个高质量的 JPG 文件,可供直接下载,且没有一个字节离开过您的浏览器。',
124
+ },
125
+ {
126
+ type: 'tip',
127
+ title: '压缩与兼容性的平衡',
128
+ html: '在相同质量下,AVIF 比 JPG 小 50% - 但 JPG 与任何软件都有 100% 的兼容性。如果您从服务器收到 AVIF 图像,且需要编辑、发送邮件或在桌面工具中打开它们,请先将它们转换为 JPG。',
129
+ },
130
+ {
131
+ type: 'title',
132
+ text: '使用场景:何时将 AVIF 转换为 JPG',
133
+ level: 3,
134
+ },
135
+ {
136
+ type: 'list',
137
+ icon: 'mdi:check-circle',
138
+ items: [
139
+ '在 Photoshop、Lightroom、GIMP 或其他桌面软件中进行编辑。',
140
+ '与使用旧设备或操作系统的用户分享图像。',
141
+ '在电子邮件中添加附件,以确保在任何邮件客户端中都能正常查看。',
142
+ '在不接受 AVIF 作为上传格式的平台上发布。',
143
+ '打印:专业打印服务原生支持 JPG。',
144
+ ],
145
+ },
146
+ {
147
+ type: 'title',
148
+ text: '结论:一步实现通用兼容性',
149
+ level: 3,
150
+ },
151
+ {
152
+ type: 'paragraph',
153
+ html: 'AVIF 是图像压缩的未来,但目前兼容性至关重要。我们的转换器让您能兼顾两者的优点:接收并存储 AVIF 图像以获得最大效率,并在需要在任何情境下使用时,即时将它们转换为 JPG。一切都是私密的、免费的且无限制。',
154
+ },
155
+ ];
156
+
157
+
158
+ export const content: AvifAJpgLocaleContent = {
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 { avifAJpg } 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 avifAJpg.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 { avifAJpg } 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 avifAJpg.i18n[locale]?.();
12
+ if (!content) return null;
13
+ ---
14
+
15
+ {content.seo?.length > 0 && <SEORenderer content={{ locale, sections: content.seo }} />}