@jjlmoya/utils-tools 1.12.0 → 1.14.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 (240) hide show
  1. package/package.json +1 -1
  2. package/src/category/i18n/de.ts +3 -3
  3. package/src/category/i18n/en.ts +1 -1
  4. package/src/category/i18n/es.ts +1 -1
  5. package/src/category/i18n/fr.ts +16 -16
  6. package/src/category/i18n/id.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/ru.ts +10 -10
  11. package/src/category/i18n/sv.ts +1 -1
  12. package/src/category/i18n/tr.ts +1 -1
  13. package/src/category/i18n/zh.ts +4 -4
  14. package/src/layouts/PreviewLayout.astro +7 -2
  15. package/src/pages/[locale]/[slug].astro +30 -13
  16. package/src/tests/diacritics_density.test.ts +118 -0
  17. package/src/tests/inverted_punctuation.test.ts +84 -0
  18. package/src/tests/locale_completeness.test.ts +3 -20
  19. package/src/tests/no_en_dash.test.ts +70 -0
  20. package/src/tests/script_density.test.ts +94 -0
  21. package/src/tests/shared-test-helpers.ts +56 -0
  22. package/src/tests/tool_exports.test.ts +34 -0
  23. package/src/tool/date-diff-calculator/bibliography.astro +2 -10
  24. package/src/tool/date-diff-calculator/bibliography.ts +7 -0
  25. package/src/tool/date-diff-calculator/i18n/de.ts +8 -11
  26. package/src/tool/date-diff-calculator/i18n/en.ts +4 -7
  27. package/src/tool/date-diff-calculator/i18n/es.ts +4 -7
  28. package/src/tool/date-diff-calculator/i18n/fr.ts +4 -7
  29. package/src/tool/date-diff-calculator/i18n/id.ts +4 -7
  30. package/src/tool/date-diff-calculator/i18n/it.ts +4 -7
  31. package/src/tool/date-diff-calculator/i18n/ja.ts +4 -7
  32. package/src/tool/date-diff-calculator/i18n/ko.ts +4 -7
  33. package/src/tool/date-diff-calculator/i18n/nl.ts +4 -7
  34. package/src/tool/date-diff-calculator/i18n/pl.ts +5 -8
  35. package/src/tool/date-diff-calculator/i18n/pt.ts +4 -7
  36. package/src/tool/date-diff-calculator/i18n/ru.ts +8 -11
  37. package/src/tool/date-diff-calculator/i18n/sv.ts +4 -7
  38. package/src/tool/date-diff-calculator/i18n/tr.ts +4 -7
  39. package/src/tool/date-diff-calculator/i18n/zh.ts +7 -10
  40. package/src/tool/date-diff-calculator/seo.astro +2 -1
  41. package/src/tool/drive-direct-link/bibliography.astro +2 -10
  42. package/src/tool/drive-direct-link/bibliography.ts +6 -0
  43. package/src/tool/drive-direct-link/i18n/de.ts +8 -10
  44. package/src/tool/drive-direct-link/i18n/en.ts +4 -6
  45. package/src/tool/drive-direct-link/i18n/es.ts +5 -7
  46. package/src/tool/drive-direct-link/i18n/fr.ts +5 -7
  47. package/src/tool/drive-direct-link/i18n/id.ts +4 -6
  48. package/src/tool/drive-direct-link/i18n/it.ts +4 -6
  49. package/src/tool/drive-direct-link/i18n/ja.ts +4 -6
  50. package/src/tool/drive-direct-link/i18n/ko.ts +4 -6
  51. package/src/tool/drive-direct-link/i18n/nl.ts +4 -6
  52. package/src/tool/drive-direct-link/i18n/pl.ts +8 -10
  53. package/src/tool/drive-direct-link/i18n/pt.ts +4 -6
  54. package/src/tool/drive-direct-link/i18n/ru.ts +12 -14
  55. package/src/tool/drive-direct-link/i18n/sv.ts +4 -6
  56. package/src/tool/drive-direct-link/i18n/tr.ts +4 -6
  57. package/src/tool/drive-direct-link/i18n/zh.ts +8 -10
  58. package/src/tool/drive-direct-link/seo.astro +2 -1
  59. package/src/tool/email-list-cleaner/bibliography.astro +2 -10
  60. package/src/tool/email-list-cleaner/bibliography.ts +7 -0
  61. package/src/tool/email-list-cleaner/i18n/de.ts +6 -9
  62. package/src/tool/email-list-cleaner/i18n/en.ts +4 -7
  63. package/src/tool/email-list-cleaner/i18n/es.ts +4 -7
  64. package/src/tool/email-list-cleaner/i18n/fr.ts +4 -7
  65. package/src/tool/email-list-cleaner/i18n/id.ts +4 -7
  66. package/src/tool/email-list-cleaner/i18n/it.ts +4 -7
  67. package/src/tool/email-list-cleaner/i18n/ja.ts +4 -7
  68. package/src/tool/email-list-cleaner/i18n/ko.ts +4 -7
  69. package/src/tool/email-list-cleaner/i18n/nl.ts +4 -7
  70. package/src/tool/email-list-cleaner/i18n/pl.ts +6 -9
  71. package/src/tool/email-list-cleaner/i18n/pt.ts +4 -7
  72. package/src/tool/email-list-cleaner/i18n/ru.ts +11 -14
  73. package/src/tool/email-list-cleaner/i18n/sv.ts +5 -8
  74. package/src/tool/email-list-cleaner/i18n/tr.ts +4 -7
  75. package/src/tool/email-list-cleaner/i18n/zh.ts +7 -10
  76. package/src/tool/email-list-cleaner/seo.astro +2 -1
  77. package/src/tool/env-badge-spain/bibliography.astro +2 -10
  78. package/src/tool/env-badge-spain/bibliography.ts +6 -0
  79. package/src/tool/env-badge-spain/i18n/de.ts +4 -6
  80. package/src/tool/env-badge-spain/i18n/en.ts +4 -6
  81. package/src/tool/env-badge-spain/i18n/es.ts +4 -6
  82. package/src/tool/env-badge-spain/i18n/fr.ts +4 -6
  83. package/src/tool/env-badge-spain/i18n/id.ts +4 -6
  84. package/src/tool/env-badge-spain/i18n/it.ts +4 -6
  85. package/src/tool/env-badge-spain/i18n/ja.ts +4 -6
  86. package/src/tool/env-badge-spain/i18n/ko.ts +4 -6
  87. package/src/tool/env-badge-spain/i18n/nl.ts +4 -6
  88. package/src/tool/env-badge-spain/i18n/pl.ts +4 -6
  89. package/src/tool/env-badge-spain/i18n/pt.ts +4 -6
  90. package/src/tool/env-badge-spain/i18n/ru.ts +14 -16
  91. package/src/tool/env-badge-spain/i18n/sv.ts +4 -6
  92. package/src/tool/env-badge-spain/i18n/tr.ts +4 -6
  93. package/src/tool/env-badge-spain/i18n/zh.ts +4 -6
  94. package/src/tool/env-badge-spain/seo.astro +2 -1
  95. package/src/tool/morse-beacon/bibliography.astro +2 -10
  96. package/src/tool/morse-beacon/bibliography.ts +7 -0
  97. package/src/tool/morse-beacon/i18n/de.ts +8 -11
  98. package/src/tool/morse-beacon/i18n/en.ts +6 -9
  99. package/src/tool/morse-beacon/i18n/es.ts +6 -9
  100. package/src/tool/morse-beacon/i18n/fr.ts +9 -12
  101. package/src/tool/morse-beacon/i18n/id.ts +6 -9
  102. package/src/tool/morse-beacon/i18n/it.ts +6 -9
  103. package/src/tool/morse-beacon/i18n/ja.ts +6 -9
  104. package/src/tool/morse-beacon/i18n/ko.ts +6 -9
  105. package/src/tool/morse-beacon/i18n/nl.ts +6 -9
  106. package/src/tool/morse-beacon/i18n/pl.ts +7 -10
  107. package/src/tool/morse-beacon/i18n/pt.ts +6 -9
  108. package/src/tool/morse-beacon/i18n/ru.ts +7 -10
  109. package/src/tool/morse-beacon/i18n/sv.ts +6 -9
  110. package/src/tool/morse-beacon/i18n/tr.ts +6 -9
  111. package/src/tool/morse-beacon/i18n/zh.ts +7 -10
  112. package/src/tool/morse-beacon/seo.astro +2 -1
  113. package/src/tool/password-generator/bibliography.astro +2 -10
  114. package/src/tool/password-generator/bibliography.ts +8 -0
  115. package/src/tool/password-generator/i18n/de.ts +9 -13
  116. package/src/tool/password-generator/i18n/en.ts +4 -8
  117. package/src/tool/password-generator/i18n/es.ts +4 -8
  118. package/src/tool/password-generator/i18n/fr.ts +5 -9
  119. package/src/tool/password-generator/i18n/id.ts +4 -8
  120. package/src/tool/password-generator/i18n/it.ts +4 -8
  121. package/src/tool/password-generator/i18n/ja.ts +4 -8
  122. package/src/tool/password-generator/i18n/ko.ts +4 -8
  123. package/src/tool/password-generator/i18n/nl.ts +4 -8
  124. package/src/tool/password-generator/i18n/pl.ts +7 -11
  125. package/src/tool/password-generator/i18n/pt.ts +4 -8
  126. package/src/tool/password-generator/i18n/ru.ts +8 -12
  127. package/src/tool/password-generator/i18n/sv.ts +4 -8
  128. package/src/tool/password-generator/i18n/tr.ts +4 -8
  129. package/src/tool/password-generator/i18n/zh.ts +7 -11
  130. package/src/tool/password-generator/seo.astro +2 -1
  131. package/src/tool/routes/bibliography.astro +2 -10
  132. package/src/tool/routes/bibliography.ts +9 -0
  133. package/src/tool/routes/i18n/de.ts +5 -10
  134. package/src/tool/routes/i18n/en.ts +4 -9
  135. package/src/tool/routes/i18n/es.ts +4 -9
  136. package/src/tool/routes/i18n/fr.ts +7 -12
  137. package/src/tool/routes/i18n/id.ts +4 -9
  138. package/src/tool/routes/i18n/it.ts +4 -9
  139. package/src/tool/routes/i18n/ja.ts +4 -9
  140. package/src/tool/routes/i18n/ko.ts +4 -9
  141. package/src/tool/routes/i18n/nl.ts +4 -9
  142. package/src/tool/routes/i18n/pl.ts +4 -9
  143. package/src/tool/routes/i18n/pt.ts +4 -9
  144. package/src/tool/routes/i18n/ru.ts +7 -12
  145. package/src/tool/routes/i18n/sv.ts +4 -9
  146. package/src/tool/routes/i18n/tr.ts +4 -9
  147. package/src/tool/routes/i18n/zh.ts +5 -10
  148. package/src/tool/routes/seo.astro +2 -1
  149. package/src/tool/rule-of-three/bibliography.astro +2 -10
  150. package/src/tool/rule-of-three/bibliography.ts +6 -0
  151. package/src/tool/rule-of-three/i18n/de.ts +6 -8
  152. package/src/tool/rule-of-three/i18n/en.ts +4 -6
  153. package/src/tool/rule-of-three/i18n/es.ts +4 -6
  154. package/src/tool/rule-of-three/i18n/fr.ts +11 -13
  155. package/src/tool/rule-of-three/i18n/id.ts +4 -6
  156. package/src/tool/rule-of-three/i18n/it.ts +4 -6
  157. package/src/tool/rule-of-three/i18n/ja.ts +4 -6
  158. package/src/tool/rule-of-three/i18n/ko.ts +4 -6
  159. package/src/tool/rule-of-three/i18n/nl.ts +6 -8
  160. package/src/tool/rule-of-three/i18n/pl.ts +6 -8
  161. package/src/tool/rule-of-three/i18n/pt.ts +4 -6
  162. package/src/tool/rule-of-three/i18n/ru.ts +7 -9
  163. package/src/tool/rule-of-three/i18n/sv.ts +4 -6
  164. package/src/tool/rule-of-three/i18n/tr.ts +5 -7
  165. package/src/tool/rule-of-three/i18n/zh.ts +6 -8
  166. package/src/tool/rule-of-three/seo.astro +2 -1
  167. package/src/tool/seo-content-optimizer/bibliography.astro +2 -10
  168. package/src/tool/seo-content-optimizer/bibliography.ts +6 -0
  169. package/src/tool/seo-content-optimizer/i18n/de.ts +4 -6
  170. package/src/tool/seo-content-optimizer/i18n/en.ts +4 -6
  171. package/src/tool/seo-content-optimizer/i18n/es.ts +4 -6
  172. package/src/tool/seo-content-optimizer/i18n/fr.ts +7 -9
  173. package/src/tool/seo-content-optimizer/i18n/id.ts +4 -6
  174. package/src/tool/seo-content-optimizer/i18n/it.ts +4 -6
  175. package/src/tool/seo-content-optimizer/i18n/ja.ts +4 -6
  176. package/src/tool/seo-content-optimizer/i18n/ko.ts +4 -6
  177. package/src/tool/seo-content-optimizer/i18n/nl.ts +4 -6
  178. package/src/tool/seo-content-optimizer/i18n/pl.ts +4 -6
  179. package/src/tool/seo-content-optimizer/i18n/pt.ts +4 -6
  180. package/src/tool/seo-content-optimizer/i18n/ru.ts +5 -7
  181. package/src/tool/seo-content-optimizer/i18n/sv.ts +4 -6
  182. package/src/tool/seo-content-optimizer/i18n/tr.ts +4 -6
  183. package/src/tool/seo-content-optimizer/i18n/zh.ts +4 -6
  184. package/src/tool/seo-content-optimizer/seo.astro +2 -1
  185. package/src/tool/speed-reader/bibliography.astro +2 -10
  186. package/src/tool/speed-reader/bibliography.ts +10 -0
  187. package/src/tool/speed-reader/i18n/de.ts +7 -13
  188. package/src/tool/speed-reader/i18n/en.ts +6 -12
  189. package/src/tool/speed-reader/i18n/es.ts +4 -10
  190. package/src/tool/speed-reader/i18n/fr.ts +13 -19
  191. package/src/tool/speed-reader/i18n/id.ts +6 -12
  192. package/src/tool/speed-reader/i18n/it.ts +6 -12
  193. package/src/tool/speed-reader/i18n/ja.ts +4 -10
  194. package/src/tool/speed-reader/i18n/ko.ts +4 -10
  195. package/src/tool/speed-reader/i18n/nl.ts +6 -12
  196. package/src/tool/speed-reader/i18n/pl.ts +7 -13
  197. package/src/tool/speed-reader/i18n/pt.ts +6 -12
  198. package/src/tool/speed-reader/i18n/ru.ts +14 -20
  199. package/src/tool/speed-reader/i18n/sv.ts +6 -12
  200. package/src/tool/speed-reader/i18n/tr.ts +4 -10
  201. package/src/tool/speed-reader/i18n/zh.ts +8 -14
  202. package/src/tool/speed-reader/seo.astro +2 -1
  203. package/src/tool/text-pixel-calculator/bibliography.astro +2 -10
  204. package/src/tool/text-pixel-calculator/bibliography.ts +6 -0
  205. package/src/tool/text-pixel-calculator/i18n/de.ts +6 -8
  206. package/src/tool/text-pixel-calculator/i18n/en.ts +4 -6
  207. package/src/tool/text-pixel-calculator/i18n/es.ts +4 -6
  208. package/src/tool/text-pixel-calculator/i18n/fr.ts +5 -7
  209. package/src/tool/text-pixel-calculator/i18n/id.ts +4 -6
  210. package/src/tool/text-pixel-calculator/i18n/it.ts +4 -6
  211. package/src/tool/text-pixel-calculator/i18n/ja.ts +4 -6
  212. package/src/tool/text-pixel-calculator/i18n/ko.ts +4 -6
  213. package/src/tool/text-pixel-calculator/i18n/nl.ts +4 -6
  214. package/src/tool/text-pixel-calculator/i18n/pl.ts +7 -9
  215. package/src/tool/text-pixel-calculator/i18n/pt.ts +4 -6
  216. package/src/tool/text-pixel-calculator/i18n/ru.ts +8 -10
  217. package/src/tool/text-pixel-calculator/i18n/sv.ts +4 -6
  218. package/src/tool/text-pixel-calculator/i18n/tr.ts +4 -6
  219. package/src/tool/text-pixel-calculator/i18n/zh.ts +7 -9
  220. package/src/tool/text-pixel-calculator/seo.astro +2 -1
  221. package/src/tool/whatsapp-link/bibliography.astro +2 -10
  222. package/src/tool/whatsapp-link/bibliography.ts +6 -0
  223. package/src/tool/whatsapp-link/i18n/de.ts +8 -10
  224. package/src/tool/whatsapp-link/i18n/en.ts +4 -6
  225. package/src/tool/whatsapp-link/i18n/es.ts +6 -8
  226. package/src/tool/whatsapp-link/i18n/fr.ts +6 -8
  227. package/src/tool/whatsapp-link/i18n/id.ts +4 -6
  228. package/src/tool/whatsapp-link/i18n/it.ts +4 -6
  229. package/src/tool/whatsapp-link/i18n/ja.ts +4 -6
  230. package/src/tool/whatsapp-link/i18n/ko.ts +4 -6
  231. package/src/tool/whatsapp-link/i18n/nl.ts +4 -6
  232. package/src/tool/whatsapp-link/i18n/pl.ts +8 -10
  233. package/src/tool/whatsapp-link/i18n/pt.ts +4 -6
  234. package/src/tool/whatsapp-link/i18n/ru.ts +9 -11
  235. package/src/tool/whatsapp-link/i18n/sv.ts +4 -6
  236. package/src/tool/whatsapp-link/i18n/tr.ts +4 -6
  237. package/src/tool/whatsapp-link/i18n/zh.ts +8 -10
  238. package/src/tool/whatsapp-link/seo.astro +2 -1
  239. package/src/tool/whatsapp-link/whatsapp-link-generator.css +41 -4
  240. package/src/types.ts +0 -2
@@ -1,3 +1,4 @@
1
+ import { bibliography } from '../bibliography';
1
2
  import type { ToolLocaleContent } from '../../../types';
2
3
  import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
3
4
  import type { RuleOfThreeUI } from '../ui';
@@ -5,7 +6,7 @@ import type { RuleOfThreeUI } from '../ui';
5
6
  const faqData = [
6
7
  {
7
8
  question: 'Was ist der einfache direkte Dreisatz?',
8
- answer: 'Es ist eine mathematische Methode zur Lösung von Proportionalitätsproblemen zwischen drei bekannten Werten und einer Unbekannten. Er wird als direkt bezeichnet, da bei Erhöhung einer Größe die andere im gleichen Verhältnis steigt.',
9
+ answer: 'Es ist eine mathematische Methode zur Lösung von Proportionalitätsproblemen zwischen drei bekannten Werten und einer Unbekannten. Er wird als "direkt" bezeichnet, da bei Erhöhung einer Größe die andere im gleichen Verhältnis steigt.',
9
10
  },
10
11
  {
11
12
  question: 'Wann sollte ich den umgekehrten Dreisatz verwenden?',
@@ -86,14 +87,11 @@ export const content: ToolLocaleContent<RuleOfThreeUI> = {
86
87
  title: 'Einfacher Dreisatz Rechner',
87
88
  description: 'Lösen Sie mathematische Proportionen sofort. Das ultimative Tool zur Berechnung von Mengen, Rezepten, Rabatten und Umrechnungen.',
88
89
  ui,
89
- faqTitle: 'Häufig gestellte Fragen',
90
+
90
91
  faq: faqData,
91
92
  howTo: howToData,
92
- bibliographyTitle: 'Referenzen',
93
- bibliography: [
94
- { name: 'Proportionalität (Mathematik) — Wikipedia', url: 'https://de.wikipedia.org/wiki/Proportionalit%C3%A4t' },
95
- { name: 'Verhältnisse und Proportionen — Khan Academy', url: 'https://de.khanacademy.org/math/pre-algebra/pre-algebra-ratios-rates' },
96
- ],
93
+
94
+ bibliography,
97
95
  schemas: [faqSchema, howToSchema, appSchema],
98
96
  seo: [
99
97
  {
@@ -103,7 +101,7 @@ export const content: ToolLocaleContent<RuleOfThreeUI> = {
103
101
  },
104
102
  {
105
103
  type: 'paragraph',
106
- html: 'Der einfache direkte Dreisatz ist das Schweizer Taschenmesser der Mathematik. Er löst Probleme, bei denen drei Datenpunkte bekannt sind und wir den vierten suchen. Wenn Sie die Beziehung zwischen <strong>A und B</strong> kennen und einen neuen Wert <strong>C</strong> haben, findet der Rechner sofort <strong>X</strong>.',
104
+ html: 'Der einfache direkte Dreisatz ist das "Schweizer Taschenmesser" der Mathematik. Er löst Probleme, bei denen drei Datenpunkte bekannt sind und wir den vierten suchen. Wenn Sie die Beziehung zwischen <strong>A und B</strong> kennen und einen neuen Wert <strong>C</strong> haben, findet der Rechner sofort <strong>X</strong>.',
107
105
  },
108
106
  {
109
107
  type: 'comparative',
@@ -1,3 +1,4 @@
1
+ import { bibliography } from '../bibliography';
1
2
  import type { ToolLocaleContent } from '../../../types';
2
3
  import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
3
4
  import type { RuleOfThreeUI } from '../ui';
@@ -86,14 +87,11 @@ export const content: ToolLocaleContent<RuleOfThreeUI> = {
86
87
  title: 'Simple Rule of Three Calculator',
87
88
  description: 'Solve mathematical proportions instantly. The definitive tool for calculating quantities, recipes, discounts and conversions.',
88
89
  ui,
89
- faqTitle: 'Frequently Asked Questions',
90
+
90
91
  faq: faqData,
91
92
  howTo: howToData,
92
- bibliographyTitle: 'References',
93
- bibliography: [
94
- { name: 'Proportionality (mathematics) — Wikipedia', url: 'https://en.wikipedia.org/wiki/Proportionality_(mathematics)' },
95
- { name: 'Ratios and proportions — Khan Academy', url: 'https://www.khanacademy.org/math/pre-algebra/pre-algebra-ratios-rates/pre-algebra-ratios-intro/a/ratio-review' },
96
- ],
93
+
94
+ bibliography,
97
95
  schemas: [faqSchema, howToSchema, appSchema],
98
96
  seo: [
99
97
  {
@@ -1,3 +1,4 @@
1
+ import { bibliography } from '../bibliography';
1
2
  import type { ToolLocaleContent } from '../../../types';
2
3
  import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
3
4
  import type { RuleOfThreeUI } from '../ui';
@@ -86,14 +87,11 @@ export const content: ToolLocaleContent<RuleOfThreeUI> = {
86
87
  title: 'Calculadora de Regla de Tres Simple',
87
88
  description: 'Resuelve proporciones matemáticas al instante. La herramienta definitiva para calcular cantidades, recetas, descuentos y conversiones.',
88
89
  ui,
89
- faqTitle: 'Preguntas Frecuentes',
90
+
90
91
  faq: faqData,
91
92
  howTo: howToData,
92
- bibliographyTitle: 'Referencias',
93
- bibliography: [
94
- { name: 'Proporción (matemáticas) — Wikipedia', url: 'https://es.wikipedia.org/wiki/Proporci%C3%B3n_(matem%C3%A1ticas)' },
95
- { name: 'Regla de tres — Khan Academy', url: 'https://es.khanacademy.org/math/pre-algebra/pre-algebra-ratios-rates/pre-algebra-ratios-intro/a/ratio-review' },
96
- ],
93
+
94
+ bibliography,
97
95
  schemas: [faqSchema, howToSchema, appSchema],
98
96
  seo: [
99
97
  {
@@ -1,3 +1,4 @@
1
+ import { bibliography } from '../bibliography';
1
2
  import type { ToolLocaleContent } from '../../../types';
2
3
  import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
3
4
  import type { RuleOfThreeUI } from '../ui';
@@ -9,7 +10,7 @@ const faqData = [
9
10
  },
10
11
  {
11
12
  question: 'Quand dois-je utiliser la règle de trois inverse ?',
12
- answer: "On l'utilise quand les grandeurs sont inversement proportionnelles (si l'une augmente, l'autre diminue). Par exemple : si 2 peintres mettent 5 heures, 4 peintres mettront moins de temps. Notre calculatrice actuelle se concentre sur la proportionnalité directe.",
13
+ answer: "On l'utilise quand les grandeurs sont inversement proportionnelles (si l'une augmente, l'autre diminue). Par exemple: si 2 peintres mettent 5 heures, 4 peintres mettront moins de temps. Notre calculatrice actuelle se concentre sur la proportionnalité directe.",
13
14
  },
14
15
  {
15
16
  question: 'Est-elle précise pour les calculs professionnels ?',
@@ -17,7 +18,7 @@ const faqData = [
17
18
  },
18
19
  {
19
20
  question: 'Comment se calcule-t-elle manuellement ?',
20
- answer: 'La formule est : (Valeur B * Valeur C) / Valeur A = X. Autrement dit, vous multipliez les valeurs en diagonale et divisez le résultat par la valeur restante.',
21
+ answer: 'La formule est: (Valeur B * Valeur C) / Valeur A = X. Autrement dit, vous multipliez les valeurs en diagonale et divisez le résultat par la valeur restante.',
21
22
  },
22
23
  ];
23
24
 
@@ -86,14 +87,11 @@ export const content: ToolLocaleContent<RuleOfThreeUI> = {
86
87
  title: 'Calculatrice de règle de trois simple',
87
88
  description: "Résolvez des proportions mathématiques instantanément. L'outil définitif pour calculer des quantités, des recettes, des remises et des conversions.",
88
89
  ui,
89
- faqTitle: 'Questions fréquentes',
90
+
90
91
  faq: faqData,
91
92
  howTo: howToData,
92
- bibliographyTitle: 'Références',
93
- bibliography: [
94
- { name: 'Proportionnalité (mathématiques) — Wikipédia', url: 'https://fr.wikipedia.org/wiki/Proportionnalit%C3%A9' },
95
- { name: 'Ratios et proportions — Khan Academy', url: 'https://fr.khanacademy.org/math/pre-algebra/pre-algebra-ratios-rates' },
96
- ],
93
+
94
+ bibliography,
97
95
  schemas: [faqSchema, howToSchema, appSchema],
98
96
  seo: [
99
97
  {
@@ -103,7 +101,7 @@ export const content: ToolLocaleContent<RuleOfThreeUI> = {
103
101
  },
104
102
  {
105
103
  type: 'paragraph',
106
- html: "La règle de trois simple directe est le « couteau suisse » des mathématiques. Elle permet de résoudre des problèmes où trois données sont connues et on cherche la quatrième. Si vous connaissez la relation entre <strong>A et B</strong>, et que vous avez une nouvelle valeur <strong>C</strong>, la calculatrice trouve <strong>X</strong> instantanément.",
104
+ html: `La règle de trois simple directe est le " couteau suisse " des mathématiques. Elle permet de résoudre des problèmes où trois données sont connues et on cherche la quatrième. Si vous connaissez la relation entre <strong>A et B</strong>, et que vous avez une nouvelle valeur <strong>C</strong>, la calculatrice trouve <strong>X</strong> instantanément.`,
107
105
  },
108
106
  {
109
107
  type: 'comparative',
@@ -142,7 +140,7 @@ export const content: ToolLocaleContent<RuleOfThreeUI> = {
142
140
  },
143
141
  {
144
142
  type: 'paragraph',
145
- html: 'La formule est toujours la même : <strong>multiplier les valeurs en diagonale et diviser par celle qui reste</strong>.',
143
+ html: 'La formule est toujours la même: <strong>multiplier les valeurs en diagonale et diviser par celle qui reste</strong>.',
146
144
  },
147
145
  {
148
146
  type: 'code',
@@ -151,7 +149,7 @@ export const content: ToolLocaleContent<RuleOfThreeUI> = {
151
149
  },
152
150
  {
153
151
  type: 'paragraph',
154
- html: 'Dans la calculatrice : on multiplie la valeur <strong>B</strong> par la valeur <strong>C</strong> et on divise par <strong>A</strong>. Le résultat est <strong>X</strong>.',
152
+ html: 'Dans la calculatrice: on multiplie la valeur <strong>B</strong> par la valeur <strong>C</strong> et on divise par <strong>A</strong>. Le résultat est <strong>X</strong>.',
155
153
  },
156
154
  {
157
155
  type: 'title',
@@ -160,12 +158,12 @@ export const content: ToolLocaleContent<RuleOfThreeUI> = {
160
158
  },
161
159
  {
162
160
  type: 'paragraph',
163
- html: "Au-delà des mathématiques scolaires, la règle de trois est partout : en pharmacie pour calculer les dosages selon le poids corporel, en photographie pour calculer les temps d'exposition, en finance pour calculer les variations en pourcentage, ou en imprimerie pour mettre à l'échelle les dimensions.",
161
+ html: "Au-delà des mathématiques scolaires, la règle de trois est partout: en pharmacie pour calculer les dosages selon le poids corporel, en photographie pour calculer les temps d'exposition, en finance pour calculer les variations en pourcentage, ou en imprimerie pour mettre à l'échelle les dimensions.",
164
162
  },
165
163
  {
166
164
  type: 'tip',
167
165
  title: 'Astuce de précision',
168
- html: "Le résultat est affiché avec jusqu'à 4 décimales significatives. Si vous travaillez avec de l'argent ou des mesures exactes, pensez à arrondir selon le contexte : l'euro à 2 décimales, les pixels en entiers.",
166
+ html: "Le résultat est affiché avec jusqu'à 4 décimales significatives. Si vous travaillez avec de l'argent ou des mesures exactes, pensez à arrondir selon le contexte: l'euro à 2 décimales, les pixels en entiers.",
169
167
  },
170
168
  ],
171
169
  };
@@ -1,3 +1,4 @@
1
+ import { bibliography } from '../bibliography';
1
2
  import type { ToolLocaleContent } from '../../../types';
2
3
  import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
3
4
  import type { RuleOfThreeUI } from '../ui';
@@ -86,14 +87,11 @@ export const content: ToolLocaleContent<RuleOfThreeUI> = {
86
87
  title: 'Kalkulator Aturan Tiga Sederhana',
87
88
  description: 'Selesaikan proporsi matematika secara instan. Alat definitif untuk menghitung jumlah, resep, diskon, dan konversi.',
88
89
  ui,
89
- faqTitle: 'Pertanyaan yang Sering Diajukan',
90
+
90
91
  faq: faqData,
91
92
  howTo: howToData,
92
- bibliographyTitle: 'Referensi',
93
- bibliography: [
94
- { name: 'Proporsionalitas (matematika) — Wikipedia', url: 'https://id.wikipedia.org/wiki/Proporsionalitas' },
95
- { name: 'Rasio dan proporsi — Khan Academy', url: 'https://id.khanacademy.org/math/pre-algebra/pre-algebra-ratios-rates' },
96
- ],
93
+
94
+ bibliography,
97
95
  schemas: [faqSchema, howToSchema, appSchema],
98
96
  seo: [
99
97
  {
@@ -1,3 +1,4 @@
1
+ import { bibliography } from '../bibliography';
1
2
  import type { ToolLocaleContent } from '../../../types';
2
3
  import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
3
4
  import type { RuleOfThreeUI } from '../ui';
@@ -86,14 +87,11 @@ export const content: ToolLocaleContent<RuleOfThreeUI> = {
86
87
  title: 'Calcolatore Regola del Tre Semplice',
87
88
  description: 'Risolvi proporzioni matematiche all\'istante. Lo strumento definitivo per calcolare quantità, ricette, sconti e conversioni.',
88
89
  ui,
89
- faqTitle: 'Domande Frequenti',
90
+
90
91
  faq: faqData,
91
92
  howTo: howToData,
92
- bibliographyTitle: 'Riferimenti',
93
- bibliography: [
94
- { name: 'Proporzionalità (matematica) — Wikipedia', url: 'https://it.wikipedia.org/wiki/Proporzionalit%C3%A0_(matematica)' },
95
- { name: 'Rapporti e proporzioni — Khan Academy', url: 'https://it.khanacademy.org/math/arithmetic-home/arith-review-ratios-rates' },
96
- ],
93
+
94
+ bibliography,
97
95
  schemas: [faqSchema, howToSchema, appSchema],
98
96
  seo: [
99
97
  {
@@ -1,3 +1,4 @@
1
+ import { bibliography } from '../bibliography';
1
2
  import type { ToolLocaleContent } from '../../../types';
2
3
  import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
3
4
  import type { RuleOfThreeUI } from '../ui';
@@ -86,14 +87,11 @@ export const content: ToolLocaleContent<RuleOfThreeUI> = {
86
87
  title: '比例計算機(三数法)',
87
88
  description: '数学的な比例計算を瞬時に解決します。数量、レシピ、割引、換算を計算するための決定版ツール。',
88
89
  ui,
89
- faqTitle: 'よくある質問',
90
+
90
91
  faq: faqData,
91
92
  howTo: howToData,
92
- bibliographyTitle: '参考文献',
93
- bibliography: [
94
- { name: '比例 — Wikipedia', url: 'https://ja.wikipedia.org/wiki/%E6%AF%94%E4%BE%8B' },
95
- { name: '比と比例 — Khan Academy', url: 'https://ja.khanacademy.org/math/pre-algebra/pre-algebra-ratios-rates' },
96
- ],
93
+
94
+ bibliography,
97
95
  schemas: [faqSchema, howToSchema, appSchema],
98
96
  seo: [
99
97
  {
@@ -1,3 +1,4 @@
1
+ import { bibliography } from '../bibliography';
1
2
  import type { ToolLocaleContent } from '../../../types';
2
3
  import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
3
4
  import type { RuleOfThreeUI } from '../ui';
@@ -86,14 +87,11 @@ export const content: ToolLocaleContent<RuleOfThreeUI> = {
86
87
  title: '단순 비례 계산기(삼수법)',
87
88
  description: '수학적 비례를 즉시 해결하세요. 수량, 레시피, 할인 및 변환을 계산하기 위한 결정적인 도구입니다.',
88
89
  ui,
89
- faqTitle: '자주 묻는 질문',
90
+
90
91
  faq: faqData,
91
92
  howTo: howToData,
92
- bibliographyTitle: '참고 문헌',
93
- bibliography: [
94
- { name: '비례 — 위키백과', url: 'https://ko.wikipedia.org/wiki/%EB%B9%84%EB%A1%80' },
95
- { name: '비와 비율 — Khan Academy', url: 'https://ko.khanacademy.org/math/pre-algebra/pre-algebra-ratios-rates' },
96
- ],
93
+
94
+ bibliography,
97
95
  schemas: [faqSchema, howToSchema, appSchema],
98
96
  seo: [
99
97
  {
@@ -1,3 +1,4 @@
1
+ import { bibliography } from '../bibliography';
1
2
  import type { ToolLocaleContent } from '../../../types';
2
3
  import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
3
4
  import type { RuleOfThreeUI } from '../ui';
@@ -5,7 +6,7 @@ import type { RuleOfThreeUI } from '../ui';
5
6
  const faqData = [
6
7
  {
7
8
  question: 'Wat is de eenvoudige directe regel van drie?',
8
- answer: 'Het is een wiskundige methode voor het oplossen van evenredigheidsproblemen tussen drie bekende waarden en één onbekende. Het wordt direct genoemd omdat wanneer de ene hoeveelheid toeneemt, de andere in dezelfde verhouding toeneemt.',
9
+ answer: 'Het is een wiskundige methode voor het oplossen van evenredigheidsproblemen tussen drie bekende waarden en één onbekende. Het wordt "direct" genoemd omdat wanneer de ene hoeveelheid toeneemt, de andere in dezelfde verhouding toeneemt.',
9
10
  },
10
11
  {
11
12
  question: 'Wanneer moet ik de omgekeerde regel van drie gebruiken?',
@@ -86,14 +87,11 @@ export const content: ToolLocaleContent<RuleOfThreeUI> = {
86
87
  title: 'Eenvoudige regel van drie calculator',
87
88
  description: 'Los wiskundige verhoudingen direct op. De definitieve tool voor het berekenen van hoeveelheden, recepten, kortingen en conversies.',
88
89
  ui,
89
- faqTitle: 'Veelgestelde Vragen',
90
+
90
91
  faq: faqData,
91
92
  howTo: howToData,
92
- bibliographyTitle: 'Referenties',
93
- bibliography: [
94
- { name: 'Evenredigheid (wiskunde) — Wikipedia', url: 'https://nl.wikipedia.org/wiki/Evenredigheid' },
95
- { name: 'Verhoudingen en proporties — Khan Academy', url: 'https://nl.khanacademy.org/math/pre-algebra/pre-algebra-ratios-rates' },
96
- ],
93
+
94
+ bibliography,
97
95
  schemas: [faqSchema, howToSchema, appSchema],
98
96
  seo: [
99
97
  {
@@ -103,7 +101,7 @@ export const content: ToolLocaleContent<RuleOfThreeUI> = {
103
101
  },
104
102
  {
105
103
  type: 'paragraph',
106
- html: 'De eenvoudige directe regel van drie is het Zwitserse zakmes van de wiskunde. Het lost problemen op waarbij drie gegevenspunten bekend zijn en we de vierde zoeken. Als u de relatie tussen <strong>A en B</strong> kent, en u hebt een nieuwe waarde <strong>C</strong>, dan vindt de calculator direct <strong>X</strong>.',
104
+ html: 'De eenvoudige directe regel van drie is het "Zwitserse zakmes" van de wiskunde. Het lost problemen op waarbij drie gegevenspunten bekend zijn en we de vierde zoeken. Als u de relatie tussen <strong>A en B</strong> kent, en u hebt een nieuwe waarde <strong>C</strong>, dan vindt de calculator direct <strong>X</strong>.',
107
105
  },
108
106
  {
109
107
  type: 'comparative',
@@ -1,3 +1,4 @@
1
+ import { bibliography } from '../bibliography';
1
2
  import type { ToolLocaleContent } from '../../../types';
2
3
  import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
3
4
  import type { RuleOfThreeUI } from '../ui';
@@ -5,7 +6,7 @@ import type { RuleOfThreeUI } from '../ui';
5
6
  const faqData = [
6
7
  {
7
8
  question: 'Czym jest prosta reguła trzech?',
8
- answer: 'To matematyczna metoda rozwiązywania problemów proporcjonalności pomiędzy trzema znanymi wartościami a jedną niewiadomą. Nazywa się ją „prostą”, ponieważ gdy jedna wielkość rośnie, druga rośnie w tej samej proporcji.',
9
+ answer: 'To matematyczna metoda rozwiązywania problemów proporcjonalności pomiędzy trzema znanymi wartościami a jedną niewiadomą. Nazywa się ją "prostą", ponieważ gdy jedna wielkość rośnie, druga rośnie w tej samej proporcji.',
9
10
  },
10
11
  {
11
12
  question: 'Kiedy należy stosować odwrotną regułę trzech?',
@@ -86,14 +87,11 @@ export const content: ToolLocaleContent<RuleOfThreeUI> = {
86
87
  title: 'Kalkulator Prostej Reguły Trzech',
87
88
  description: 'Błyskawicznie rozwiązuj proporcje matematyczne. Ostateczne narzędzie do obliczania ilości, przepisów, rabatów i konwersji.',
88
89
  ui,
89
- faqTitle: 'Często zadawane pytania',
90
+
90
91
  faq: faqData,
91
92
  howTo: howToData,
92
- bibliographyTitle: 'Źródła',
93
- bibliography: [
94
- { name: 'Proporcjonalność (matematyka) — Wikipedia', url: 'https://pl.wikipedia.org/wiki/Proporcjonalno%C5%9B%C4%87' },
95
- { name: 'Proporcje — Khan Academy', url: 'https://pl.khanacademy.org/math/algebra/x2f8bb11595b61c86:solve-equations-inequalities/x2f8bb11595b61c86:ratio-proportions/v/introduction-to-proportions' },
96
- ],
93
+
94
+ bibliography,
97
95
  schemas: [faqSchema, howToSchema, appSchema],
98
96
  seo: [
99
97
  {
@@ -103,7 +101,7 @@ export const content: ToolLocaleContent<RuleOfThreeUI> = {
103
101
  },
104
102
  {
105
103
  type: 'paragraph',
106
- html: 'Prosta reguła trzech to szwajcarski scyzoryk matematyki. Rozwiązuje problemy, w których znane są trzy dane, a szukamy czwartej. Jeśli znasz zależność między <strong>A i B</strong> i masz nową wartość <strong>C</strong>, kalkulator natychmiast znajdzie <strong>X</strong>.',
104
+ html: 'Prosta reguła trzech to "szwajcarski scyzoryk" matematyki. Rozwiązuje problemy, w których znane są trzy dane, a szukamy czwartej. Jeśli znasz zależność między <strong>A i B</strong> i masz nową wartość <strong>C</strong>, kalkulator natychmiast znajdzie <strong>X</strong>.',
107
105
  },
108
106
  {
109
107
  type: 'comparative',
@@ -1,3 +1,4 @@
1
+ import { bibliography } from '../bibliography';
1
2
  import type { ToolLocaleContent } from '../../../types';
2
3
  import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
3
4
  import type { RuleOfThreeUI } from '../ui';
@@ -86,14 +87,11 @@ export const content: ToolLocaleContent<RuleOfThreeUI> = {
86
87
  title: 'Calculadora de Regra de Três Simples',
87
88
  description: 'Resolva proporções matemáticas instantaneamente. A ferramenta definitiva para calcular quantidades, receitas, descontos e conversões.',
88
89
  ui,
89
- faqTitle: 'Perguntas Frequentes',
90
+
90
91
  faq: faqData,
91
92
  howTo: howToData,
92
- bibliographyTitle: 'Referências',
93
- bibliography: [
94
- { name: 'Proporcionalidade (matemática) — Wikipédia', url: 'https://pt.wikipedia.org/wiki/Proporcionalidade_(matem%C3%A1tica)' },
95
- { name: 'Razões e proporções — Khan Academy', url: 'https://pt.khanacademy.org/math/pre-algebra/pre-algebra-ratios-rates' },
96
- ],
93
+
94
+ bibliography,
97
95
  schemas: [faqSchema, howToSchema, appSchema],
98
96
  seo: [
99
97
  {
@@ -1,3 +1,4 @@
1
+ import { bibliography } from '../bibliography';
1
2
  import type { ToolLocaleContent } from '../../../types';
2
3
  import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
3
4
  import type { RuleOfThreeUI } from '../ui';
@@ -5,7 +6,7 @@ import type { RuleOfThreeUI } from '../ui';
5
6
  const faqData = [
6
7
  {
7
8
  question: 'Что такое простая прямая пропорция (правило трех)?',
8
- answer: 'Это математический метод решения задач на пропорциональность между тремя известными значениями и одним неизвестным. Она называется «прямой», потому что при увеличении одной величины другая увеличивается в той же пропорции.',
9
+ answer: 'Это математический метод решения задач на пропорциональность между тремя известными значениями и одним неизвестным. Она называется "прямой", потому что при увеличении одной величины другая увеличивается в той же пропорции.',
9
10
  },
10
11
  {
11
12
  question: 'Когда следует использовать обратную пропорцию?',
@@ -86,14 +87,11 @@ export const content: ToolLocaleContent<RuleOfThreeUI> = {
86
87
  title: 'Калькулятор простой пропорции (правила трех)',
87
88
  description: 'Мгновенно решайте математические пропорции. Окончательный инструмент для расчета количеств, рецептов, скидок и конверсий.',
88
89
  ui,
89
- faqTitle: 'Часто задаваемые вопросы',
90
+
90
91
  faq: faqData,
91
92
  howTo: howToData,
92
- bibliographyTitle: 'Источники',
93
- bibliography: [
94
- { name: 'Пропорциональность (математика) — Википедия', url: 'https://ru.wikipedia.org/wiki/%D0%9F%D1%80%D0%BE%D0%BF%D0%BE%D1%80%D1%86%D0%B8%D0%BE%D0%BD%D0%B0%D0%BB%D1%8C%D0%BD%D0%BE%D1%81%D1%82%D1%8C' },
95
- { name: 'Отношения и пропорции — Khan Academy', url: 'https://ru.khanacademy.org/math/pre-algebra/pre-algebra-ratios-rates' },
96
- ],
93
+
94
+ bibliography,
97
95
  schemas: [faqSchema, howToSchema, appSchema],
98
96
  seo: [
99
97
  {
@@ -103,7 +101,7 @@ export const content: ToolLocaleContent<RuleOfThreeUI> = {
103
101
  },
104
102
  {
105
103
  type: 'paragraph',
106
- html: 'Простая прямая пропорция это «швейцарский армейский нож» в математике. Она решает задачи, в которых известны три набора данных, а мы ищем четвертый. Если вы знаете соотношение между <strong>A и B</strong> и у вас есть новое значение <strong>C</strong>, калькулятор мгновенно найдет <strong>X</strong>.',
104
+ html: 'Простая прямая пропорция - это "швейцарский армейский нож" в математике. Она решает задачи, в которых известны три набора данных, а мы ищем четвертый. Если вы знаете соотношение между <strong>A и B</strong> и у вас есть новое значение <strong>C</strong>, калькулятор мгновенно найдет <strong>X</strong>.',
107
105
  },
108
106
  {
109
107
  type: 'comparative',
@@ -151,7 +149,7 @@ export const content: ToolLocaleContent<RuleOfThreeUI> = {
151
149
  },
152
150
  {
153
151
  type: 'paragraph',
154
- html: 'В калькуляторе: мы умножаем значение <strong>B</strong> на значение <strong>C</strong> и делим на <strong>A</strong>. Результат <strong>X</strong>.',
152
+ html: 'В калькуляторе: мы умножаем значение <strong>B</strong> на значение <strong>C</strong> и делим на <strong>A</strong>. Результат - <strong>X</strong>.',
155
153
  },
156
154
  {
157
155
  type: 'title',
@@ -1,3 +1,4 @@
1
+ import { bibliography } from '../bibliography';
1
2
  import type { ToolLocaleContent } from '../../../types';
2
3
  import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
3
4
  import type { RuleOfThreeUI } from '../ui';
@@ -86,14 +87,11 @@ export const content: ToolLocaleContent<RuleOfThreeUI> = {
86
87
  title: 'Enkel tre regeln kalkylator',
87
88
  description: 'Lös matematiska proportioner omedelbart. Det definitiva verktyget för att beräkna mängder, recept, rabatter och konverteringar.',
88
89
  ui,
89
- faqTitle: 'Vanliga frågor',
90
+
90
91
  faq: faqData,
91
92
  howTo: howToData,
92
- bibliographyTitle: 'Referenser',
93
- bibliography: [
94
- { name: 'Proportionalitet (matematik) — Wikipedia', url: 'https://sv.wikipedia.org/wiki/Proportionalitet' },
95
- { name: 'Förhållanden och proportioner — Khan Academy', url: 'https://sv.khanacademy.org/math/pre-algebra/pre-algebra-ratios-rates' },
96
- ],
93
+
94
+ bibliography,
97
95
  schemas: [faqSchema, howToSchema, appSchema],
98
96
  seo: [
99
97
  {
@@ -1,3 +1,4 @@
1
+ import { bibliography } from '../bibliography';
1
2
  import type { ToolLocaleContent } from '../../../types';
2
3
  import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
3
4
  import type { RuleOfThreeUI } from '../ui';
@@ -86,14 +87,11 @@ export const content: ToolLocaleContent<RuleOfThreeUI> = {
86
87
  title: 'Basit Orantı (Dreisatz) Hesaplayıcı',
87
88
  description: 'Matematiksel orantıları anında çözün. Miktarları, tarifleri, indirimleri ve dönüşümleri hesaplamak için kesin çözüm.',
88
89
  ui,
89
- faqTitle: 'Sıkça Sorulan Sorular',
90
+
90
91
  faq: faqData,
91
92
  howTo: howToData,
92
- bibliographyTitle: 'Kaynaklar',
93
- bibliography: [
94
- { name: 'Orantı (matematik) — Vikipedi', url: 'https://tr.wikipedia.org/wiki/Orant%C4%B1' },
95
- { name: 'Oran ve orantı — Khan Academy', url: 'https://tr.khanacademy.org/math/pre-algebra/pre-algebra-ratios-rates' },
96
- ],
93
+
94
+ bibliography,
97
95
  schemas: [faqSchema, howToSchema, appSchema],
98
96
  seo: [
99
97
  {
@@ -103,7 +101,7 @@ export const content: ToolLocaleContent<RuleOfThreeUI> = {
103
101
  },
104
102
  {
105
103
  type: 'paragraph',
106
- html: 'Basit doğru orantı, matematiğin „İsviçre çakısıdır“. Üç veri noktasının bilindiği ve dördüncüsünü aradığımız problemleri çözer. Eğer <strong>A ve B</strong> arasındaki ilişkiyi biliyorsanız ve yeni bir <strong>C</strong> değeriniz varsa, hesaplayıcı <strong>X</strong> değerini anında bulur.',
104
+ html: 'Basit doğru orantı, matematiğin "İsviçre çakısıdır". Üç veri noktasının bilindiği ve dördüncüsünü aradığımız problemleri çözer. Eğer <strong>A ve B</strong> arasındaki ilişkiyi biliyorsanız ve yeni bir <strong>C</strong> değeriniz varsa, hesaplayıcı <strong>X</strong> değerini anında bulur.',
107
105
  },
108
106
  {
109
107
  type: 'comparative',
@@ -1,3 +1,4 @@
1
+ import { bibliography } from '../bibliography';
1
2
  import type { ToolLocaleContent } from '../../../types';
2
3
  import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
3
4
  import type { RuleOfThreeUI } from '../ui';
@@ -5,7 +6,7 @@ import type { RuleOfThreeUI } from '../ui';
5
6
  const faqData = [
6
7
  {
7
8
  question: '什么是简单直接的三数法?',
8
- answer: '这是一种解决三个已知值与一个未知值之间比例问题的数学方法。它被称为“直接”比例,是因为当一个量增加时,另一个量也以相同的比例增加。',
9
+ answer: '这是一种解决三个已知值与一个未知值之间比例问题的数学方法。它被称为"直接"比例,是因为当一个量增加时,另一个量也以相同的比例增加。',
9
10
  },
10
11
  {
11
12
  question: '我应该什么时候使用反比例三数法?',
@@ -86,14 +87,11 @@ export const content: ToolLocaleContent<RuleOfThreeUI> = {
86
87
  title: '简单三数法比例计算器',
87
88
  description: '即时解决数学比例问题。用于计算数量、配方、折扣和转换的权威工具。',
88
89
  ui,
89
- faqTitle: '常见问题',
90
+
90
91
  faq: faqData,
91
92
  howTo: howToData,
92
- bibliographyTitle: '参考文献',
93
- bibliography: [
94
- { name: '比例(数学) — 维基百科', url: 'https://zh.wikipedia.org/wiki/%E6%AF%94%E4%BE%8B' },
95
- { name: '比和比例 — 可汗学院', url: 'https://zh.khanacademy.org/math/pre-algebra/pre-algebra-ratios-rates' },
96
- ],
93
+
94
+ bibliography,
97
95
  schemas: [faqSchema, howToSchema, appSchema],
98
96
  seo: [
99
97
  {
@@ -103,7 +101,7 @@ export const content: ToolLocaleContent<RuleOfThreeUI> = {
103
101
  },
104
102
  {
105
103
  type: 'paragraph',
106
- html: '简单直接的三数法是数学中的“瑞士军刀”。它解决了已知三个数据点并寻求第四个数据点的问题。如果您知道 <strong>A 和 B</strong> 之间的关系,并且有一个新值 <strong>C</strong>,计算器会立即找到 <strong>X</strong>。',
104
+ html: '简单直接的三数法是数学中的"瑞士军刀"。它解决了已知三个数据点并寻求第四个数据点的问题。如果您知道 <strong>A 和 B</strong> 之间的关系,并且有一个新值 <strong>C</strong>,计算器会立即找到 <strong>X</strong>。',
107
105
  },
108
106
  {
109
107
  type: 'comparative',
@@ -9,6 +9,7 @@ interface Props {
9
9
 
10
10
  const { locale = 'es' } = Astro.props;
11
11
  const content = await ruleOfThree.i18n[locale]?.();
12
+ if (!content) return null;
12
13
  ---
13
14
 
14
- {content && <SEORenderer content={{ locale, sections: content.seo }} />}
15
+ {content.seo?.length > 0 && <SEORenderer content={{ locale, sections: content.seo }} />}
@@ -1,14 +1,6 @@
1
1
  ---
2
2
  import { Bibliography as SharedBibliography } from '@jjlmoya/utils-shared';
3
- import { seoContentOptimizer } 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 seoContentOptimizer.i18n[locale]?.();
3
+ import { bibliography } from './bibliography';
12
4
  ---
13
5
 
14
- {content && <SharedBibliography links={content.bibliography} />}
6
+ <SharedBibliography links={bibliography} />
@@ -0,0 +1,6 @@
1
+ import type { BibliographyEntry } from '../../types';
2
+
3
+ export const bibliography: BibliographyEntry[] = [
4
+ { name: "Google's SEO Starter Guide", url: 'https://developers.google.com/search/docs/fundamentals/seo-starter-guide' },
5
+ { name: 'Yoast SEO readability criteria', url: 'https://yoast.com/what-is-readability/' },
6
+ ];
@@ -1,3 +1,4 @@
1
+ import { bibliography } from '../bibliography';
1
2
  import type { ToolLocaleContent } from '../../../types';
2
3
  import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
3
4
  import type { SeoContentOptimizerUI } from '../ui';
@@ -89,14 +90,11 @@ export const content: ToolLocaleContent<SeoContentOptimizerUI> = {
89
90
  title: 'SEO Content Optimizer',
90
91
  description: 'Analysieren Sie Keyword-Dichte, Lesbarkeit und technische HTML-Struktur Ihrer Texte in Echtzeit. Kostenloses und privates SEO-Tool.',
91
92
  ui,
92
- faqTitle: 'Häufig gestellte Fragen',
93
+
93
94
  faq: faqData,
94
95
  howTo: howToData,
95
- bibliographyTitle: 'Referenzen',
96
- bibliography: [
97
- { name: "Googles Startleitfaden zur Suchmaschinenoptimierung (SEO)", url: 'https://developers.google.com/search/docs/fundamentals/seo-starter-guide?hl=de' },
98
- { name: 'Yoast SEO Lesbarkeitskriterien', url: 'https://yoast.com/what-is-readability/' },
99
- ],
96
+
97
+ bibliography,
100
98
  schemas: [faqSchema, howToSchema, appSchema],
101
99
  seo: [
102
100
  { type: 'title', level: 2, text: 'SEO Content Optimizer: Keywords, Lesbarkeit und Struktur' },
@@ -1,3 +1,4 @@
1
+ import { bibliography } from '../bibliography';
1
2
  import type { ToolLocaleContent } from '../../../types';
2
3
  import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
3
4
  import type { SeoContentOptimizerUI } from '../ui';
@@ -89,14 +90,11 @@ export const content: ToolLocaleContent<SeoContentOptimizerUI> = {
89
90
  title: 'SEO Content Optimizer',
90
91
  description: 'Analyze keyword density, readability, and technical HTML structure of your texts in real time. Free and private SEO tool.',
91
92
  ui,
92
- faqTitle: 'Frequently Asked Questions',
93
+
93
94
  faq: faqData,
94
95
  howTo: howToData,
95
- bibliographyTitle: 'References',
96
- bibliography: [
97
- { name: "Google's SEO Starter Guide", url: 'https://developers.google.com/search/docs/fundamentals/seo-starter-guide' },
98
- { name: 'Yoast SEO readability criteria', url: 'https://yoast.com/what-is-readability/' },
99
- ],
96
+
97
+ bibliography,
100
98
  schemas: [faqSchema, howToSchema, appSchema],
101
99
  seo: [
102
100
  { type: 'title', level: 2, text: 'SEO Content Optimizer: Keywords, Readability and Structure' },
@@ -1,3 +1,4 @@
1
+ import { bibliography } from '../bibliography';
1
2
  import type { ToolLocaleContent } from '../../../types';
2
3
  import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
3
4
  import type { SeoContentOptimizerUI } from '../ui';
@@ -89,14 +90,11 @@ export const content: ToolLocaleContent<SeoContentOptimizerUI> = {
89
90
  title: 'Optimizador de Contenido SEO',
90
91
  description: 'Analiza la densidad de palabras clave, legibilidad y estructura técnica HTML de tus textos en tiempo real. Herramienta SEO privada y gratuita.',
91
92
  ui,
92
- faqTitle: 'Preguntas Frecuentes',
93
+
93
94
  faq: faqData,
94
95
  howTo: howToData,
95
- bibliographyTitle: 'Referencias',
96
- bibliography: [
97
- { name: 'Guía de inicio de SEO de Google', url: 'https://developers.google.com/search/docs/fundamentals/seo-starter-guide' },
98
- { name: 'Criterios de legibilidad Yoast SEO', url: 'https://yoast.com/what-is-readability/' },
99
- ],
96
+
97
+ bibliography,
100
98
  schemas: [faqSchema, howToSchema, appSchema],
101
99
  seo: [
102
100
  { type: 'title', level: 2, text: 'Optimizador de Contenido SEO: Keywords, Legibilidad y Estructura' },