@jjlmoya/utils-finance 1.28.0 → 1.30.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 (65) hide show
  1. package/package.json +1 -1
  2. package/src/category/index.ts +3 -1
  3. package/src/entries.ts +7 -1
  4. package/src/index.ts +2 -1
  5. package/src/tests/locale_completeness.test.ts +2 -3
  6. package/src/tests/tool_validation.test.ts +2 -2
  7. package/src/tool/pesetaValue/bibliography.astro +6 -0
  8. package/src/tool/pesetaValue/bibliography.ts +16 -0
  9. package/src/tool/pesetaValue/component.astro +86 -0
  10. package/src/tool/pesetaValue/controller.ts +126 -0
  11. package/src/tool/pesetaValue/dom-views.ts +83 -0
  12. package/src/tool/pesetaValue/entry.ts +31 -0
  13. package/src/tool/pesetaValue/evaluator.ts +18 -0
  14. package/src/tool/pesetaValue/i18n/de.ts +54 -0
  15. package/src/tool/pesetaValue/i18n/en.ts +138 -0
  16. package/src/tool/pesetaValue/i18n/es.ts +54 -0
  17. package/src/tool/pesetaValue/i18n/fr.ts +54 -0
  18. package/src/tool/pesetaValue/i18n/id.ts +48 -0
  19. package/src/tool/pesetaValue/i18n/it.ts +54 -0
  20. package/src/tool/pesetaValue/i18n/ja.ts +48 -0
  21. package/src/tool/pesetaValue/i18n/ko.ts +48 -0
  22. package/src/tool/pesetaValue/i18n/nl.ts +48 -0
  23. package/src/tool/pesetaValue/i18n/pl.ts +48 -0
  24. package/src/tool/pesetaValue/i18n/pt.ts +48 -0
  25. package/src/tool/pesetaValue/i18n/ru.ts +48 -0
  26. package/src/tool/pesetaValue/i18n/sv.ts +48 -0
  27. package/src/tool/pesetaValue/i18n/tr.ts +48 -0
  28. package/src/tool/pesetaValue/i18n/zh.ts +48 -0
  29. package/src/tool/pesetaValue/index.ts +11 -0
  30. package/src/tool/pesetaValue/logic.test.ts +63 -0
  31. package/src/tool/pesetaValue/logic.ts +162 -0
  32. package/src/tool/pesetaValue/pesetas-to-euros-with-inflation-calculator.css +564 -0
  33. package/src/tool/pesetaValue/seo.astro +15 -0
  34. package/src/tool/pesetaValue/storage.ts +25 -0
  35. package/src/tool/pesetaValue/ui.ts +33 -0
  36. package/src/tool/salaryEmployerCost/bibliography.astro +6 -0
  37. package/src/tool/salaryEmployerCost/bibliography.ts +16 -0
  38. package/src/tool/salaryEmployerCost/component.astro +130 -0
  39. package/src/tool/salaryEmployerCost/controller.ts +129 -0
  40. package/src/tool/salaryEmployerCost/dom-views.ts +87 -0
  41. package/src/tool/salaryEmployerCost/entry.ts +31 -0
  42. package/src/tool/salaryEmployerCost/evaluator.ts +9 -0
  43. package/src/tool/salaryEmployerCost/i18n/de.ts +159 -0
  44. package/src/tool/salaryEmployerCost/i18n/en.ts +148 -0
  45. package/src/tool/salaryEmployerCost/i18n/es.ts +148 -0
  46. package/src/tool/salaryEmployerCost/i18n/fr.ts +159 -0
  47. package/src/tool/salaryEmployerCost/i18n/id.ts +159 -0
  48. package/src/tool/salaryEmployerCost/i18n/it.ts +159 -0
  49. package/src/tool/salaryEmployerCost/i18n/ja.ts +159 -0
  50. package/src/tool/salaryEmployerCost/i18n/ko.ts +159 -0
  51. package/src/tool/salaryEmployerCost/i18n/nl.ts +159 -0
  52. package/src/tool/salaryEmployerCost/i18n/pl.ts +159 -0
  53. package/src/tool/salaryEmployerCost/i18n/pt.ts +159 -0
  54. package/src/tool/salaryEmployerCost/i18n/ru.ts +159 -0
  55. package/src/tool/salaryEmployerCost/i18n/sv.ts +159 -0
  56. package/src/tool/salaryEmployerCost/i18n/tr.ts +159 -0
  57. package/src/tool/salaryEmployerCost/i18n/zh.ts +159 -0
  58. package/src/tool/salaryEmployerCost/index.ts +11 -0
  59. package/src/tool/salaryEmployerCost/logic.test.ts +88 -0
  60. package/src/tool/salaryEmployerCost/logic.ts +133 -0
  61. package/src/tool/salaryEmployerCost/seo.astro +15 -0
  62. package/src/tool/salaryEmployerCost/spain-gross-net-salary-employer-cost-calculator.css +522 -0
  63. package/src/tool/salaryEmployerCost/storage.ts +35 -0
  64. package/src/tool/salaryEmployerCost/ui.ts +41 -0
  65. package/src/tools.ts +3 -3
@@ -0,0 +1,48 @@
1
+ import type { FAQPage, HowTo, SoftwareApplication, Thing, WithContext } from 'schema-dts';
2
+ import type { ToolLocaleContent } from '../../../types';
3
+ import { bibliography } from '../bibliography';
4
+ import type { PesetaValueUI } from '../ui';
5
+
6
+ const slug = 'przelicznik-peset-na-euro-wartosc-2026';
7
+ const title = 'Przelicznik peset na euro: wartość w 2026 roku';
8
+ const description = 'Przelicz hiszpańskie pesety na euro po stałym kursie 166,386 peset za euro i oszacuj ich siłę nabywczą do 2026 roku za pomocą hiszpańskiego CPI.';
9
+ const faq = [
10
+ { question: 'Ile euro to 1000 peset?', answer: '1000 peset to 6,01 euro według stałego kursu wymiany. Kalkulator pokazuje także osobne oszacowanie siły nabywczej tej kwoty w wybranym roku.' },
11
+ { question: 'Ile euro to milion peset?', answer: 'Milion peset to 6010,12 euro według stałego kursu. Szacowana siła nabywcza w 2026 roku zależy od roku, w którym używano tej kwoty.' },
12
+ { question: 'Jak przeliczyć pesety na euro?', answer: 'Podziel kwotę w pesetach przez 166,386. Na przykład 100 peset to 0,60 euro, a 10 000 peset to 60,10 euro.' },
13
+ { question: 'Ile byłyby warte stare pesety w 2026 roku?', answer: 'Są dwie odpowiedzi. Stały kurs podaje oficjalną kwotę w euro, a wynik skorygowany o CPI szacuje kwotę euro w 2026 roku potrzebną do uzyskania podobnej średniej siły nabywczej.' },
14
+ { question: 'Czy kalkulator wycenia kolekcjonerską monetę lub banknot?', answer: 'Nie. Kalkulator oblicza przeliczenie waluty i średnią siłę nabywczą. Rzadka moneta lub banknot może mieć inną wartość rynkową zależną od stanu, rzadkości i popytu.' },
15
+ { question: 'Jakie lata obejmuje przelicznik peset?', answer: 'Możesz wybrać rok początkowy od 1980 do 2026. Odniesienie dla 2026 roku korzysta z najnowszych opublikowanych danych CPI i nie jest jeszcze pełną średnią roczną.' },
16
+ { question: 'Czy oszacowanie siły nabywczej jest dokładną ceną?', answer: 'Nie. To średnie porównanie oparte na CPI, a nie dokładna cena mieszkania, płac, żywności, energii ani konkretnego zakupu.' },
17
+ ];
18
+ const howTo = [
19
+ { name: 'Wpisz kwotę w pesetach', text: 'Wpisz kwotę z rachunku, banknotu, monety lub dokumentu historycznego.' },
20
+ { name: 'Wybierz rok', text: 'Wybierz dekadę, a następnie rok, w którym używano tej kwoty.' },
21
+ { name: 'Sprawdź stałe przeliczenie', text: 'Odczytaj nominalną kwotę uzyskaną przez podzielenie peset przez 166,386.' },
22
+ { name: 'Porównaj siłę nabywczą', text: 'Porównaj stałe przeliczenie z szacowaną średnią siłą nabywczą w 2026 roku.' },
23
+ ];
24
+ const schemas: WithContext<Thing>[] = [
25
+ { '@context': 'https://schema.org', '@type': 'FAQPage', mainEntity: faq.map((item) => ({ '@type': 'Question', name: item.question, acceptedAnswer: { '@type': 'Answer', text: item.answer } })) } as WithContext<FAQPage>,
26
+ { '@context': 'https://schema.org', '@type': 'HowTo', name: title, description, step: howTo.map((step, index) => ({ '@type': 'HowToStep', position: index + 1, name: step.name, text: step.text })) } as WithContext<HowTo>,
27
+ { '@context': 'https://schema.org', '@type': 'SoftwareApplication', name: title, description, applicationCategory: 'FinanceApplication', operatingSystem: 'All', offers: { '@type': 'Offer', price: '0', priceCurrency: 'EUR' }, inLanguage: 'pl' } as WithContext<SoftwareApplication>,
28
+ ];
29
+ export const content: ToolLocaleContent<PesetaValueUI> = {
30
+ slug, title, description,
31
+ ui: { labelAmount: 'Kwota historyczna', labelAmountHint: 'Wybierz punkt początkowy', labelOriginYear: 'Rok początkowy', labelOriginYearHint: 'Średnia roczna CPI, jeśli dostępna', labelReferenceYear: 'Odniesienie 2026 do dziś', labelNominalEuros: 'Stałe przeliczenie', labelTodayValue: 'Szacowana siła nabywcza', labelPurchasingPowerChange: 'Zmiana siły nabywczej', labelNominalDifference: 'Różnica względem przeliczenia', labelConversionRate: 'Pesety za euro', labelCpiMethod: 'Mnożnik CPI', labelPreset100: '100 ptas', labelPreset1000: '1000 ptas', labelPreset10000: '10 000 ptas', labelPreset100000: '100 000 ptas', labelPesetas: 'peset', labelEuro: 'euro', labelFrom: 'Od', labelTo: 'Do', labelOpenYears: 'Otwórz lata początkowe', labelCloseYears: 'Zamknij lata początkowe', labelDecade: 'Wybierz dekadę', labelCoin: 'moneta', labelBanknote: 'banknot', labelCashPieces: 'pieniądze', labelState: 'zmiana wartości', labelStatePositive: 'wzrost', labelStateNeutral: 'bez zmian', labelStateNegative: 'spadek', labelReset: 'Resetuj przykład', currencyLocale: 'pl-PL' },
32
+ seo: [
33
+ { type: 'title', text: 'Pesety na euro: dwie odpowiedzi na jedno pytanie', level: 2 },
34
+ { type: 'paragraph', html: 'Jeśli masz dawną cenę, pensję, rachunek, monetę lub banknot w hiszpańskich pesetach, ten przelicznik podaje dwie odpowiedzi. Najpierw pokazuje stałe przeliczenie na euro, a następnie szacuje, co ta kwota oznaczała pod względem siły nabywczej w 2026 roku według zmian cen w Hiszpanii.' },
35
+ { type: 'title', text: 'Najczęstsze przeliczenia peset na euro', level: 2 },
36
+ { type: 'paragraph', html: 'Stały kurs wynosi zawsze 166,386 peset za 1 euro. Rok nie zmienia tego nominalnego przeliczenia.' },
37
+ { type: 'table', headers: ['Dawna kwota', 'Stałe przeliczenie'], rows: [['1 peseta', '0,01 euro'], ['25 peset', '0,15 euro'], ['50 peset', '0,30 euro'], ['100 peset', '0,60 euro'], ['500 peset', '3,01 euro'], ['1000 peset', '6,01 euro'], ['2000 peset', '12,02 euro'], ['5000 peset', '30,05 euro'], ['10 000 peset', '60,10 euro'], ['1 milion peset', '6010,12 euro']] },
38
+ { type: 'title', text: 'Ile były warte pesety w 2026 roku?', level: 2 },
39
+ { type: 'paragraph', html: 'Wynik skorygowany o CPI odpowiada na inne pytanie niż przeliczenie euro. Szacuje, ile euro w 2026 roku byłoby potrzebne do zakupu podobnego średniego koszyka dóbr i usług jak w roku początkowym wybranej kwoty. Odniesienie 2026 korzysta z najnowszych danych do dziś, a nie z zakończonej średniej rocznej.' },
40
+ { type: 'table', headers: ['Wynik', 'Znaczenie'], rows: [['Stałe przeliczenie', 'Dokładna nominalna kwota euro według oficjalnego kursu.'], ['Wartość skorygowana o CPI', 'Szacowana równoważna średnia siła nabywcza w 2026 roku.'], ['Różnica', 'Odległość między stałym przeliczeniem a szacunkiem CPI.']] },
41
+ { type: 'title', text: 'Jak obliczyć dawną kwotę w pesetach', level: 2 },
42
+ { type: 'list', items: ['Wpisz kwotę z rachunku, banknotu, monety lub dokumentu.', 'Wybierz rok, w którym kwoty użyto lub ją otrzymano.', 'Użyj stałego przeliczenia do bezpośredniego porównania euro.', 'Użyj wartości CPI do zrozumienia historycznej siły nabywczej.', 'Traktuj różnicę jako kontekst inflacji, a nie osobistą prognozę ceny.'] },
43
+ { type: 'title', text: 'Monety i banknoty nie mają automatycznie tej wartości kolekcjonerskiej', level: 2 },
44
+ { type: 'paragraph', html: 'To narzędzie oblicza walutę i inflację, a nie wycenę numizmatyczną. Rzadka moneta lub dawny banknot może mieć inną wartość rynkową zależną od roku, stanu, rzadkości i popytu.' },
45
+ { type: 'tip', title: 'Rok zmienia siłę nabywczą, a nie kurs', html: 'Oficjalny kurs nadal wynosi 166,386 peset za euro. Tylko porównanie CPI zmienia się wraz z rokiem początkowym i zawsze opisuje średni koszyk konsumpcyjny.' },
46
+ ],
47
+ faq, bibliography, howTo, schemas,
48
+ };
@@ -0,0 +1,48 @@
1
+ import type { FAQPage, HowTo, SoftwareApplication, Thing, WithContext } from 'schema-dts';
2
+ import type { ToolLocaleContent } from '../../../types';
3
+ import { bibliography } from '../bibliography';
4
+ import type { PesetaValueUI } from '../ui';
5
+
6
+ const slug = 'conversor-pesetas-euros-valor-2026';
7
+ const title = 'Conversor de pesetas para euros: valor em 2026';
8
+ const description = 'Converta pesetas espanholas em euros à taxa fixa de 166,386 pesetas por euro e estime o poder de compra até 2026 com o IPC espanhol.';
9
+ const faq = [
10
+ { question: 'Quantos euros são 1.000 pesetas?', answer: '1.000 pesetas correspondem a 6,01 euros à taxa de conversão fixa. A calculadora também mostra uma estimativa separada do poder de compra dessa quantia no ano escolhido.' },
11
+ { question: 'Quantos euros são um milhão de pesetas?', answer: 'Um milhão de pesetas corresponde a 6.010,12 euros à taxa fixa. A estimativa do poder de compra em 2026 depende do ano em que o valor foi usado.' },
12
+ { question: 'Como converter pesetas para euros?', answer: 'Divida o valor em pesetas por 166,386. Por exemplo, 100 pesetas são 0,60 euros e 10.000 pesetas são 60,10 euros.' },
13
+ { question: 'Quanto valeriam as pesetas antigas em 2026?', answer: 'Há duas respostas. A conversão fixa dá o valor legal em euros e o resultado corrigido pelo IPC estima quantos euros de 2026 seriam necessários para um cabaz médio semelhante.' },
14
+ { question: 'A calculadora avalia uma moeda ou nota de coleção?', answer: 'Não. Calcula conversão monetária e poder de compra médio. Uma moeda rara ou uma nota de coleção pode ter outro valor conforme o estado, a raridade e a procura.' },
15
+ { question: 'Que anos usa o conversor de pesetas?', answer: 'Pode escolher um ano de origem entre 1980 e 2026. A referência de 2026 usa os dados de IPC publicados mais recentes e ainda não é uma média anual completa.' },
16
+ { question: 'A estimativa do poder de compra é um preço exato?', answer: 'Não. É uma comparação média baseada no IPC, não um preço exato de habitação, salários, alimentação, energia ou de uma compra específica.' },
17
+ ];
18
+ const howTo = [
19
+ { name: 'Introduzir o valor em pesetas', text: 'Escreva o valor de um recibo, nota, moeda ou documento histórico.' },
20
+ { name: 'Escolher o ano', text: 'Selecione a década e depois o ano em que o valor foi utilizado.' },
21
+ { name: 'Ler a conversão fixa', text: 'Veja o valor nominal obtido ao dividir as pesetas por 166,386.' },
22
+ { name: 'Comparar o poder de compra', text: 'Compare a conversão fixa com a estimativa do poder de compra médio em 2026.' },
23
+ ];
24
+ const schemas: WithContext<Thing>[] = [
25
+ { '@context': 'https://schema.org', '@type': 'FAQPage', mainEntity: faq.map((item) => ({ '@type': 'Question', name: item.question, acceptedAnswer: { '@type': 'Answer', text: item.answer } })) } as WithContext<FAQPage>,
26
+ { '@context': 'https://schema.org', '@type': 'HowTo', name: title, description, step: howTo.map((step, index) => ({ '@type': 'HowToStep', position: index + 1, name: step.name, text: step.text })) } as WithContext<HowTo>,
27
+ { '@context': 'https://schema.org', '@type': 'SoftwareApplication', name: title, description, applicationCategory: 'FinanceApplication', operatingSystem: 'All', offers: { '@type': 'Offer', price: '0', priceCurrency: 'EUR' }, inLanguage: 'pt' } as WithContext<SoftwareApplication>,
28
+ ];
29
+ export const content: ToolLocaleContent<PesetaValueUI> = {
30
+ slug, title, description,
31
+ ui: { labelAmount: 'Valor histórico', labelAmountHint: 'Escolha um ponto de partida', labelOriginYear: 'Ano de origem', labelOriginYearHint: 'Média anual do IPC quando disponível', labelReferenceYear: 'Referência de 2026 até à data', labelNominalEuros: 'Conversão fixa', labelTodayValue: 'Poder de compra estimado', labelPurchasingPowerChange: 'Alteração do poder de compra', labelNominalDifference: 'Diferença da conversão', labelConversionRate: 'Pesetas por euro', labelCpiMethod: 'Multiplicador do IPC', labelPreset100: '100 ptas', labelPreset1000: '1.000 ptas', labelPreset10000: '10.000 ptas', labelPreset100000: '100.000 ptas', labelPesetas: 'pesetas', labelEuro: 'euros', labelFrom: 'De', labelTo: 'Até', labelOpenYears: 'Abrir anos de origem', labelCloseYears: 'Fechar anos de origem', labelDecade: 'Escolher uma década', labelCoin: 'moeda', labelBanknote: 'nota', labelCashPieces: 'dinheiro', labelState: 'evolução do valor', labelStatePositive: 'aumentou', labelStateNeutral: 'sem alteração', labelStateNegative: 'diminuiu', labelReset: 'Repor exemplo', currencyLocale: 'pt-PT' },
32
+ seo: [
33
+ { type: 'title', text: 'Pesetas para euros: duas respostas para a mesma pergunta', level: 2 },
34
+ { type: 'paragraph', html: 'Se tem um preço antigo, salário, recibo, nota ou moeda em pesetas espanholas, este conversor dá duas respostas. Primeiro mostra a conversão fixa para euros e depois estima o que esse valor representa em poder de compra de 2026 segundo a evolução dos preços em Espanha.' },
35
+ { type: 'title', text: 'Conversões comuns de pesetas para euros', level: 2 },
36
+ { type: 'paragraph', html: 'A taxa fixa é sempre de 166,386 pesetas por 1 euro. O ano não altera esta conversão nominal.' },
37
+ { type: 'table', headers: ['Valor antigo', 'Conversão fixa'], rows: [['1 peseta', '0,01 euro'], ['25 pesetas', '0,15 euro'], ['50 pesetas', '0,30 euro'], ['100 pesetas', '0,60 euro'], ['500 pesetas', '3,01 euros'], ['1.000 pesetas', '6,01 euros'], ['2.000 pesetas', '12,02 euros'], ['5.000 pesetas', '30,05 euros'], ['10.000 pesetas', '60,10 euros'], ['1 milhão de pesetas', '6.010,12 euros']] },
38
+ { type: 'title', text: 'Quanto valiam as pesetas em 2026?', level: 2 },
39
+ { type: 'paragraph', html: 'O resultado corrigido pelo IPC responde a uma pergunta diferente da conversão para euros. Estima quantos euros de 2026 permitiriam comprar um cabaz médio semelhante ao que o valor escolhido comprava no seu ano de origem. A referência de 2026 usa os dados publicados mais recentes até à data e não uma média anual concluída.' },
40
+ { type: 'table', headers: ['Resultado', 'Significado'], rows: [['Conversão fixa', 'O valor nominal exato em euros à taxa oficial.'], ['Valor corrigido pelo IPC', 'Uma estimativa do poder de compra médio equivalente em 2026.'], ['Diferença', 'A distância entre a conversão fixa e a estimativa do IPC.']] },
41
+ { type: 'title', text: 'Como calcular um valor antigo em pesetas', level: 2 },
42
+ { type: 'list', items: ['Introduza o valor do recibo, nota, moeda ou documento.', 'Escolha o ano em que o valor foi utilizado ou recebido.', 'Use a conversão fixa para obter a equivalência direta em euros.', 'Use o valor do IPC para compreender o poder de compra histórico.', 'Leia a diferença como contexto da inflação e não como previsão do seu preço pessoal.'] },
43
+ { type: 'title', text: 'Moedas e notas não têm automaticamente este valor de coleção', level: 2 },
44
+ { type: 'paragraph', html: 'Esta ferramenta calcula moeda e inflação, não uma avaliação de numismática. Uma moeda rara ou uma nota antiga pode ter um valor de mercado diferente conforme o ano, o estado, a raridade e a procura.' },
45
+ { type: 'tip', title: 'O ano altera o poder de compra, não a taxa de câmbio', html: 'A conversão oficial continua a ser 166,386 pesetas por euro. Só a comparação do IPC muda com o ano de origem e descreve sempre um cabaz médio de consumo.' },
46
+ ],
47
+ faq, bibliography, howTo, schemas,
48
+ };
@@ -0,0 +1,48 @@
1
+ import type { FAQPage, HowTo, SoftwareApplication, Thing, WithContext } from 'schema-dts';
2
+ import type { ToolLocaleContent } from '../../../types';
3
+ import { bibliography } from '../bibliography';
4
+ import type { PesetaValueUI } from '../ui';
5
+
6
+ const slug = 'konverter-peset-v-evro-stoimost-2026';
7
+ const title = 'Конвертер песет в евро: стоимость в 2026 году';
8
+ const description = 'Переведите испанские песеты в евро по фиксированному курсу 166,386 песеты за евро и оцените их покупательную способность до 2026 года по испанскому ИПЦ.';
9
+ const faq = [
10
+ { question: 'Сколько евро в 1 000 песетах?', answer: '1 000 песет равны 6,01 евро по фиксированному курсу. Калькулятор также отдельно показывает оценку покупательной способности этой суммы в выбранном году.' },
11
+ { question: 'Сколько евро в миллионе песет?', answer: 'Миллион песет равен 6 010,12 евро по фиксированному курсу. Оценка покупательной способности в 2026 году зависит от года использования суммы.' },
12
+ { question: 'Как перевести песеты в евро?', answer: 'Разделите сумму в песетах на 166,386. Например, 100 песет равны 0,60 евро, а 10 000 песет равны 60,10 евро.' },
13
+ { question: 'Сколько стоили бы старые песеты в 2026 году?', answer: 'Есть два ответа. Фиксированный курс дает официальную сумму в евро, а результат с поправкой на ИПЦ оценивает сумму в евро 2026 года для сопоставимой средней покупательной способности.' },
14
+ { question: 'Оценивает ли калькулятор коллекционную монету или банкноту?', answer: 'Нет. Он считает конвертацию валюты и среднюю покупательную способность. Редкая монета или коллекционная банкнота может иметь другую рыночную стоимость в зависимости от состояния, редкости и спроса.' },
15
+ { question: 'Какие годы использует калькулятор песет?', answer: 'Можно выбрать исходный год с 1980 по 2026. Для 2026 года используются последние опубликованные данные ИПЦ, поэтому это еще не полный среднегодовой показатель.' },
16
+ { question: 'Является ли оценка покупательной способности точной ценой?', answer: 'Нет. Это среднее сравнение по ИПЦ, а не точная цена жилья, зарплаты, продуктов, энергии или конкретной покупки.' },
17
+ ];
18
+ const howTo = [
19
+ { name: 'Введите сумму в песетах', text: 'Укажите сумму с чека, банкноты, монеты или исторического документа.' },
20
+ { name: 'Выберите год', text: 'Выберите десятилетие, а затем год, в котором использовалась сумма.' },
21
+ { name: 'Посмотрите фиксированную конвертацию', text: 'Проверьте номинальную сумму, полученную делением песет на 166,386.' },
22
+ { name: 'Сравните покупательную способность', text: 'Сопоставьте фиксированную конвертацию с оценкой средней покупательной способности в 2026 году.' },
23
+ ];
24
+ const schemas: WithContext<Thing>[] = [
25
+ { '@context': 'https://schema.org', '@type': 'FAQPage', mainEntity: faq.map((item) => ({ '@type': 'Question', name: item.question, acceptedAnswer: { '@type': 'Answer', text: item.answer } })) } as WithContext<FAQPage>,
26
+ { '@context': 'https://schema.org', '@type': 'HowTo', name: title, description, step: howTo.map((step, index) => ({ '@type': 'HowToStep', position: index + 1, name: step.name, text: step.text })) } as WithContext<HowTo>,
27
+ { '@context': 'https://schema.org', '@type': 'SoftwareApplication', name: title, description, applicationCategory: 'FinanceApplication', operatingSystem: 'All', offers: { '@type': 'Offer', price: '0', priceCurrency: 'EUR' }, inLanguage: 'ru' } as WithContext<SoftwareApplication>,
28
+ ];
29
+ export const content: ToolLocaleContent<PesetaValueUI> = {
30
+ slug, title, description,
31
+ ui: { labelAmount: 'Историческая сумма', labelAmountHint: 'Выберите отправную точку', labelOriginYear: 'Исходный год', labelOriginYearHint: 'Среднегодовой ИПЦ при наличии данных', labelReferenceYear: 'Ориентир 2026 года на текущий момент', labelNominalEuros: 'Фиксированная конвертация', labelTodayValue: 'Расчетная покупательная способность', labelPurchasingPowerChange: 'Изменение покупательной способности', labelNominalDifference: 'Разница с конвертацией', labelConversionRate: 'Песет за евро', labelCpiMethod: 'Множитель ИПЦ', labelPreset100: '100 песет', labelPreset1000: '1 000 песет', labelPreset10000: '10 000 песет', labelPreset100000: '100 000 песет', labelPesetas: 'песет', labelEuro: 'евро', labelFrom: 'С', labelTo: 'По', labelOpenYears: 'Открыть исходные годы', labelCloseYears: 'Закрыть исходные годы', labelDecade: 'Выберите десятилетие', labelCoin: 'монета', labelBanknote: 'банкнота', labelCashPieces: 'денежные единицы', labelState: 'изменение стоимости', labelStatePositive: 'рост', labelStateNeutral: 'без изменений', labelStateNegative: 'снижение', labelReset: 'Сбросить пример', currencyLocale: 'ru-RU' },
32
+ seo: [
33
+ { type: 'title', text: 'Песеты в евро: два ответа на один вопрос', level: 2 },
34
+ { type: 'paragraph', html: 'Если у вас есть старая цена, зарплата, чек, монета или банкнота в испанских песетах, этот конвертер дает два ответа. Сначала он показывает фиксированную конвертацию в евро, а затем оценивает покупательную способность этой суммы в 2026 году с учетом изменения цен в Испании.' },
35
+ { type: 'title', text: 'Популярные переводы песет в евро', level: 2 },
36
+ { type: 'paragraph', html: 'Фиксированный курс всегда составляет 166,386 песеты за 1 евро. Год не меняет эту номинальную конвертацию.' },
37
+ { type: 'table', headers: ['Старая сумма', 'Фиксированная конвертация'], rows: [['1 песета', '0,01 евро'], ['25 песет', '0,15 евро'], ['50 песет', '0,30 евро'], ['100 песет', '0,60 евро'], ['500 песет', '3,01 евро'], ['1 000 песет', '6,01 евро'], ['2 000 песет', '12,02 евро'], ['5 000 песет', '30,05 евро'], ['10 000 песет', '60,10 евро'], ['1 миллион песет', '6 010,12 евро']] },
38
+ { type: 'title', text: 'Сколько стоили песеты в 2026 году?', level: 2 },
39
+ { type: 'paragraph', html: 'Результат с поправкой на ИПЦ отвечает не на тот же вопрос, что конвертация в евро. Он оценивает, сколько евро в 2026 году потребовалось бы для покупки сопоставимой средней корзины товаров и услуг в исходном году суммы. Ориентир 2026 года использует последние доступные данные и еще не является завершенным среднегодовым показателем.' },
40
+ { type: 'table', headers: ['Результат', 'Что он означает'], rows: [['Фиксированная конвертация', 'Точная номинальная сумма в евро по официальному курсу.'], ['Стоимость с поправкой на ИПЦ', 'Оценка сопоставимой средней покупательной способности в 2026 году.'], ['Разница', 'Расстояние между фиксированной конвертацией и оценкой ИПЦ.']] },
41
+ { type: 'title', text: 'Как рассчитать старую сумму в песетах', level: 2 },
42
+ { type: 'list', items: ['Введите сумму с чека, банкноты, монеты или документа.', 'Выберите год, когда сумма использовалась или была получена.', 'Используйте фиксированную конвертацию для прямого сравнения в евро.', 'Используйте показатель ИПЦ для исторического контекста покупательной способности.', 'Считайте разницу объяснением инфляции, а не личным прогнозом цены.'] },
43
+ { type: 'title', text: 'У монет и банкнот нет автоматической коллекционной цены', level: 2 },
44
+ { type: 'paragraph', html: 'Этот инструмент считает валюту и инфляцию, а не проводит нумизматическую оценку. Редкая монета или старая банкнота может иметь другую рыночную стоимость в зависимости от года, состояния, редкости и спроса.' },
45
+ { type: 'tip', title: 'Год меняет покупательную способность, но не курс', html: 'Официальный курс остается равным 166,386 песеты за евро. Меняется только сравнение ИПЦ с исходным годом, и оно всегда описывает среднюю потребительскую корзину.' },
46
+ ],
47
+ faq, bibliography, howTo, schemas,
48
+ };
@@ -0,0 +1,48 @@
1
+ import type { FAQPage, HowTo, SoftwareApplication, Thing, WithContext } from 'schema-dts';
2
+ import type { ToolLocaleContent } from '../../../types';
3
+ import { bibliography } from '../bibliography';
4
+ import type { PesetaValueUI } from '../ui';
5
+
6
+ const slug = 'peseta-till-euro-omvandlare-varde-2026';
7
+ const title = 'Omvandlare från peseta till euro: värde 2026';
8
+ const description = 'Omvandla spanska pesetas till euro med den fasta kursen 166,386 pesetas per euro och uppskatta köpkraften fram till 2026 med Spaniens KPI.';
9
+ const faq = [
10
+ { question: 'Hur många euro är 1 000 pesetas?', answer: '1 000 pesetas motsvarar 6,01 euro enligt den fasta omräkningskursen. Kalkylatorn visar också en separat uppskattning av beloppets köpkraft under det valda året.' },
11
+ { question: 'Hur många euro är en miljon pesetas?', answer: 'En miljon pesetas motsvarar 6 010,12 euro enligt den fasta kursen. Den uppskattade köpkraften 2026 beror på vilket år beloppet användes.' },
12
+ { question: 'Hur omvandlar man pesetas till euro?', answer: 'Dela beloppet i pesetas med 166,386. Till exempel är 100 pesetas 0,60 euro och 10 000 pesetas 60,10 euro.' },
13
+ { question: 'Vad skulle gamla pesetas vara värda 2026?', answer: 'Det finns två svar. Den fasta omvandlingen ger det officiella eurobeloppet och KPI-resultatet uppskattar hur många euro 2026 som krävs för motsvarande genomsnittliga köpkraft.' },
14
+ { question: 'Värderar kalkylatorn gamla samlarmynt eller sedlar?', answer: 'Nej. Den beräknar valutaomvandling och genomsnittlig köpkraft. Ett sällsynt mynt eller en samlarsedel kan ha ett annat marknadsvärde beroende på skick, sällsynthet och efterfrågan.' },
15
+ { question: 'Vilka år använder pesetakalkylatorn?', answer: 'Du kan välja ursprungsår från 1980 till 2026. Referensen för 2026 använder de senaste publicerade KPI-uppgifterna och är ännu inget färdigt årsgenomsnitt.' },
16
+ { question: 'Är uppskattningen av köpkraften ett exakt pris?', answer: 'Nej. Det är en genomsnittlig jämförelse baserad på KPI, inte ett exakt pris för boende, löner, mat, energi eller ett visst köp.' },
17
+ ];
18
+ const howTo = [
19
+ { name: 'Ange beloppet i pesetas', text: 'Skriv in beloppet från ett kvitto, en sedel, ett mynt eller ett historiskt dokument.' },
20
+ { name: 'Välj år', text: 'Välj årtionde och sedan året då beloppet användes.' },
21
+ { name: 'Läs den fasta omvandlingen', text: 'Se det nominella beloppet som fås genom att dela pesetas med 166,386.' },
22
+ { name: 'Jämför köpkraften', text: 'Jämför den fasta omvandlingen med den uppskattade genomsnittliga köpkraften 2026.' },
23
+ ];
24
+ const schemas: WithContext<Thing>[] = [
25
+ { '@context': 'https://schema.org', '@type': 'FAQPage', mainEntity: faq.map((item) => ({ '@type': 'Question', name: item.question, acceptedAnswer: { '@type': 'Answer', text: item.answer } })) } as WithContext<FAQPage>,
26
+ { '@context': 'https://schema.org', '@type': 'HowTo', name: title, description, step: howTo.map((step, index) => ({ '@type': 'HowToStep', position: index + 1, name: step.name, text: step.text })) } as WithContext<HowTo>,
27
+ { '@context': 'https://schema.org', '@type': 'SoftwareApplication', name: title, description, applicationCategory: 'FinanceApplication', operatingSystem: 'All', offers: { '@type': 'Offer', price: '0', priceCurrency: 'EUR' }, inLanguage: 'sv' } as WithContext<SoftwareApplication>,
28
+ ];
29
+ export const content: ToolLocaleContent<PesetaValueUI> = {
30
+ slug, title, description,
31
+ ui: { labelAmount: 'Historiskt belopp', labelAmountHint: 'Välj en startpunkt', labelOriginYear: 'Ursprungsår', labelOriginYearHint: 'Årligt KPI-genomsnitt när det finns', labelReferenceYear: 'Referens 2026 hittills', labelNominalEuros: 'Fast omvandling', labelTodayValue: 'Uppskattad köpkraft', labelPurchasingPowerChange: 'Förändring av köpkraft', labelNominalDifference: 'Skillnad från omvandling', labelConversionRate: 'Pesetas per euro', labelCpiMethod: 'KPI-multiplikator', labelPreset100: '100 ptas', labelPreset1000: '1 000 ptas', labelPreset10000: '10 000 ptas', labelPreset100000: '100 000 ptas', labelPesetas: 'pesetas', labelEuro: 'euro', labelFrom: 'Från', labelTo: 'Till', labelOpenYears: 'Öppna ursprungsår', labelCloseYears: 'Stäng ursprungsår', labelDecade: 'Välj årtionde', labelCoin: 'mynt', labelBanknote: 'sedel', labelCashPieces: 'pengar', labelState: 'värdeförändring', labelStatePositive: 'ökat', labelStateNeutral: 'oförändrat', labelStateNegative: 'minskat', labelReset: 'Återställ exempel', currencyLocale: 'sv-SE' },
32
+ seo: [
33
+ { type: 'title', text: 'Pesetas till euro: två svar på samma fråga', level: 2 },
34
+ { type: 'paragraph', html: 'Om du har ett gammalt pris, en lön, ett kvitto, ett mynt eller en sedel i spanska pesetas ger den här omvandlaren två svar. Först visas den fasta omvandlingen till euro. Sedan uppskattas vad beloppet motsvarar i köpkraft 2026 enligt prisutvecklingen i Spanien.' },
35
+ { type: 'title', text: 'Vanliga omvandlingar från pesetas till euro', level: 2 },
36
+ { type: 'paragraph', html: 'Den fasta kursen är alltid 166,386 pesetas för 1 euro. Året ändrar inte den nominella omvandlingen.' },
37
+ { type: 'table', headers: ['Gammalt belopp', 'Fast omvandling'], rows: [['1 peseta', '0,01 euro'], ['25 pesetas', '0,15 euro'], ['50 pesetas', '0,30 euro'], ['100 pesetas', '0,60 euro'], ['500 pesetas', '3,01 euro'], ['1 000 pesetas', '6,01 euro'], ['2 000 pesetas', '12,02 euro'], ['5 000 pesetas', '30,05 euro'], ['10 000 pesetas', '60,10 euro'], ['1 miljon pesetas', '6 010,12 euro']] },
38
+ { type: 'title', text: 'Vad var pesetas värda 2026?', level: 2 },
39
+ { type: 'paragraph', html: 'KPI-resultatet svarar på en annan fråga än euroomvandlingen. Det uppskattar hur många euro 2026 som behövs för en liknande genomsnittlig varukorg som den valda summan räckte till under ursprungsåret. Referensen för 2026 använder de senaste uppgifterna hittills och är inte ett avslutat årsgenomsnitt.' },
40
+ { type: 'table', headers: ['Resultat', 'Betydelse'], rows: [['Fast omvandling', 'Det exakta nominella eurobeloppet enligt den officiella kursen.'], ['KPI-justerat värde', 'En uppskattning av motsvarande genomsnittliga köpkraft 2026.'], ['Skillnad', 'Avståndet mellan den fasta omvandlingen och KPI-uppskattningen.']] },
41
+ { type: 'title', text: 'Så räknar du ett gammalt belopp i pesetas', level: 2 },
42
+ { type: 'list', items: ['Ange beloppet från kvittot, sedeln, myntet eller dokumentet.', 'Välj året då beloppet användes eller togs emot.', 'Använd fast omvandling för en direkt jämförelse i euro.', 'Använd KPI-värdet för historisk köpkraftskontext.', 'Se skillnaden som inflationens förklaring och inte som en personlig prisprognos.'] },
43
+ { type: 'title', text: 'Mynt och sedlar har inte automatiskt detta samlarvärde', level: 2 },
44
+ { type: 'paragraph', html: 'Det här verktyget räknar valuta och inflation, inte numismatisk värdering. Ett sällsynt mynt eller en gammal sedel kan ha ett annat marknadsvärde beroende på år, skick, sällsynthet och efterfrågan.' },
45
+ { type: 'tip', title: 'Året ändrar köpkraften, inte växelkursen', html: 'Den officiella kursen är fortfarande 166,386 pesetas per euro. Endast KPI-jämförelsen ändras med ursprungsåret och den beskriver alltid en genomsnittlig konsumtionskorg.' },
46
+ ],
47
+ faq, bibliography, howTo, schemas,
48
+ };
@@ -0,0 +1,48 @@
1
+ import type { FAQPage, HowTo, SoftwareApplication, Thing, WithContext } from 'schema-dts';
2
+ import type { ToolLocaleContent } from '../../../types';
3
+ import { bibliography } from '../bibliography';
4
+ import type { PesetaValueUI } from '../ui';
5
+
6
+ const slug = 'peseta-euro-donusturucu-deger-2026';
7
+ const title = 'Peseta euro çevirici: 2026 değeri';
8
+ const description = 'İspanyol pesetalarını euro başına 166,386 peseta sabit kuruyla euroya çevirin ve İspanya TÜFE verileriyle 2026 yılına kadar satın alma gücünü tahmin edin.';
9
+ const faq = [
10
+ { question: '1.000 peseta kaç euro eder?', answer: 'Sabit dönüşüm kuruna göre 1.000 peseta 6,01 euro eder. Hesaplayıcı ayrıca bu miktarın seçilen yıldaki satın alma gücü için ayrı bir tahmin gösterir.' },
11
+ { question: 'Bir milyon peseta kaç euro eder?', answer: 'Sabit kura göre bir milyon peseta 6.010,12 euro eder. 2026 yılı için tahmini satın alma gücü, paranın kullanıldığı yıla bağlıdır.' },
12
+ { question: 'Peseta euroya nasıl çevrilir?', answer: 'Peseta miktarını 166,386 ile bölün. Örneğin 100 peseta 0,60 euro, 10.000 peseta ise 60,10 euro eder.' },
13
+ { question: 'Eski pesetalar 2026 yılında ne kadar ederdi?', answer: 'İki farklı cevap vardır. Sabit dönüşüm resmi euro miktarını verir; TÜFE ile düzeltilmiş sonuç, benzer ortalama satın alma gücü için 2026 yılında gereken euro miktarını tahmin eder.' },
14
+ { question: 'Hesaplayıcı eski madeni para veya banknotun koleksiyon değerini hesaplar mı?', answer: 'Hayır. Para dönüşümünü ve ortalama satın alma gücünü hesaplar. Nadir bir madeni para veya koleksiyon banknotu durum, nadirlik ve talebe göre farklı bir piyasa değerine sahip olabilir.' },
15
+ { question: 'Peseta hesaplayıcı hangi yılları kullanır?', answer: '1980 ile 2026 arasındaki bir başlangıç yılını seçebilirsiniz. 2026 referansı yayımlanmış en güncel TÜFE verilerini kullanır ve henüz tamamlanmış yıllık ortalama değildir.' },
16
+ { question: 'Satın alma gücü tahmini kesin bir fiyat mıdır?', answer: 'Hayır. Bu, TÜFE temelinde yapılan ortalama bir karşılaştırmadır; konut, ücret, gıda, enerji veya belirli bir alışveriş için kesin fiyat değildir.' },
17
+ ];
18
+ const howTo = [
19
+ { name: 'Peseta miktarını girin', text: 'Makbuz, banknot, madeni para veya tarihî belgedeki miktarı yazın.' },
20
+ { name: 'Yılı seçin', text: 'Önce on yılı, ardından miktarın kullanıldığı yılı seçin.' },
21
+ { name: 'Sabit dönüşümü okuyun', text: 'Pesetayı 166,386 ile bölerek oluşan nominal euro miktarını görün.' },
22
+ { name: 'Satın alma gücünü karşılaştırın', text: 'Sabit dönüşümü 2026 ortalama satın alma gücü tahminiyle karşılaştırın.' },
23
+ ];
24
+ const schemas: WithContext<Thing>[] = [
25
+ { '@context': 'https://schema.org', '@type': 'FAQPage', mainEntity: faq.map((item) => ({ '@type': 'Question', name: item.question, acceptedAnswer: { '@type': 'Answer', text: item.answer } })) } as WithContext<FAQPage>,
26
+ { '@context': 'https://schema.org', '@type': 'HowTo', name: title, description, step: howTo.map((step, index) => ({ '@type': 'HowToStep', position: index + 1, name: step.name, text: step.text })) } as WithContext<HowTo>,
27
+ { '@context': 'https://schema.org', '@type': 'SoftwareApplication', name: title, description, applicationCategory: 'FinanceApplication', operatingSystem: 'All', offers: { '@type': 'Offer', price: '0', priceCurrency: 'EUR' }, inLanguage: 'tr' } as WithContext<SoftwareApplication>,
28
+ ];
29
+ export const content: ToolLocaleContent<PesetaValueUI> = {
30
+ slug, title, description,
31
+ ui: { labelAmount: 'Tarihî miktar', labelAmountHint: 'Başlangıç noktası seçin', labelOriginYear: 'Başlangıç yılı', labelOriginYearHint: 'Varsa yıllık TÜFE ortalaması', labelReferenceYear: '2026 referansı bugüne kadar', labelNominalEuros: 'Sabit dönüşüm', labelTodayValue: 'Tahmini satın alma gücü', labelPurchasingPowerChange: 'Satın alma gücü değişimi', labelNominalDifference: 'Dönüşüm farkı', labelConversionRate: 'Euro başına peseta', labelCpiMethod: 'TÜFE çarpanı', labelPreset100: '100 ptas', labelPreset1000: '1.000 ptas', labelPreset10000: '10.000 ptas', labelPreset100000: '100.000 ptas', labelPesetas: 'peseta', labelEuro: 'euro', labelFrom: 'Başlangıç', labelTo: 'Bitiş', labelOpenYears: 'Başlangıç yıllarını aç', labelCloseYears: 'Başlangıç yıllarını kapat', labelDecade: 'On yıl seçin', labelCoin: 'madeni para', labelBanknote: 'banknot', labelCashPieces: 'para parçaları', labelState: 'değer hareketi', labelStatePositive: 'arttı', labelStateNeutral: 'değişmedi', labelStateNegative: 'azaldı', labelReset: 'Örneği sıfırla', currencyLocale: 'tr-TR' },
32
+ seo: [
33
+ { type: 'title', text: 'Pesetadan euroya: aynı soru için iki cevap', level: 2 },
34
+ { type: 'paragraph', html: 'Eski bir fiyat, maaş, makbuz, madeni para veya İspanyol pesetasıyla yazılmış banknotunuz varsa bu çevirici iki cevap verir. Önce sabit euro dönüşümünü gösterir, ardından tutarın İspanya fiyat değişimlerine göre 2026 satın alma gücü karşılığını tahmin eder.' },
35
+ { type: 'title', text: 'Yaygın peseta euro dönüşümleri', level: 2 },
36
+ { type: 'paragraph', html: 'Sabit kur her zaman 1 euro için 166,386 pesetadır. Yıl, nominal dönüşümü değiştirmez.' },
37
+ { type: 'table', headers: ['Eski miktar', 'Sabit dönüşüm'], rows: [['1 peseta', '0,01 euro'], ['25 peseta', '0,15 euro'], ['50 peseta', '0,30 euro'], ['100 peseta', '0,60 euro'], ['500 peseta', '3,01 euro'], ['1.000 peseta', '6,01 euro'], ['2.000 peseta', '12,02 euro'], ['5.000 peseta', '30,05 euro'], ['10.000 peseta', '60,10 euro'], ['1 milyon peseta', '6.010,12 euro']] },
38
+ { type: 'title', text: 'Pesetalar 2026 yılında ne kadar değerindeydi?', level: 2 },
39
+ { type: 'paragraph', html: 'TÜFE ile düzeltilmiş sonuç euro dönüşümünden farklı bir soruyu yanıtlar. Seçilen miktarın başlangıç yılında satın alabildiği ortalama mal ve hizmet sepetine 2026 yılında ulaşmak için gereken euroyu tahmin eder. 2026 referansı bugüne kadarki en güncel verileri kullanır ve tamamlanmış yıllık ortalama değildir.' },
40
+ { type: 'table', headers: ['Sonuç', 'Anlamı'], rows: [['Sabit dönüşüm', 'Resmî kura göre kesin nominal euro miktarı.'], ['TÜFE ile düzeltilmiş değer', '2026 yılında eşdeğer ortalama satın alma gücü tahmini.'], ['Fark', 'Sabit dönüşüm ile TÜFE tahmini arasındaki mesafe.']] },
41
+ { type: 'title', text: 'Eski bir peseta miktarı nasıl hesaplanır?', level: 2 },
42
+ { type: 'list', items: ['Makbuz, banknot, madeni para veya belgedeki miktarı girin.', 'Miktarın kullanıldığı veya alındığı yılı seçin.', 'Doğrudan euro karşılığı için sabit dönüşümü kullanın.', 'Tarihî satın alma gücü bağlamı için TÜFE değerini kullanın.', 'Farkı enflasyon bağlamı olarak okuyun, kişisel fiyat tahmini olarak değil.'] },
43
+ { type: 'title', text: 'Madeni para ve banknotların koleksiyon değeri otomatik olarak bu değildir', level: 2 },
44
+ { type: 'paragraph', html: 'Bu araç para dönüşümü ve enflasyonu hesaplar, nümizmatik değerleme yapmaz. Nadir bir madeni para veya eski banknot yıl, durum, nadirlik ve talebe göre farklı bir piyasa değerine sahip olabilir.' },
45
+ { type: 'tip', title: 'Yıl satın alma gücünü değiştirir, kuru değil', html: 'Resmî kur 1 euro için 166,386 peseta olarak kalır. Yalnızca başlangıç yılıyla TÜFE karşılaştırması değişir ve bu karşılaştırma her zaman ortalama tüketim sepetini anlatır.' },
46
+ ],
47
+ faq, bibliography, howTo, schemas,
48
+ };
@@ -0,0 +1,48 @@
1
+ import type { FAQPage, HowTo, SoftwareApplication, Thing, WithContext } from 'schema-dts';
2
+ import type { ToolLocaleContent } from '../../../types';
3
+ import { bibliography } from '../bibliography';
4
+ import type { PesetaValueUI } from '../ui';
5
+
6
+ const slug = 'pesetas-to-euros-with-inflation-calculator';
7
+ const title = '西班牙比塞塔欧元换算器 2026 年价值';
8
+ const description = '按每欧元166.386比塞塔的固定汇率将西班牙比塞塔换算为欧元,并使用西班牙CPI估算截至2026年的购买力。';
9
+ const faq = [
10
+ { question: '1,000比塞塔是多少欧元?', answer: '按固定换算汇率,1,000比塞塔等于6.01欧元。工具还会单独估算这笔钱在所选年份的购买力。' },
11
+ { question: '100万比塞塔是多少欧元?', answer: '按固定汇率,100万比塞塔等于6,010.12欧元。2026年的购买力估算取决于这笔钱使用的年份。' },
12
+ { question: '如何把比塞塔换算成欧元?', answer: '将比塞塔金额除以166.386。例如100比塞塔等于0.60欧元,10,000比塞塔等于60.10欧元。' },
13
+ { question: '旧比塞塔在2026年值多少钱?', answer: '有两个答案。固定换算给出官方欧元金额,CPI调整结果估算在2026年获得相似平均购买力所需的欧元金额。' },
14
+ { question: '工具会计算旧硬币或纸币的收藏价值吗?', answer: '不会。工具计算货币换算和平均购买力。稀有硬币或收藏纸币的市场价值还取决于品相、稀有程度和需求。' },
15
+ { question: '比塞塔换算器支持哪些年份?', answer: '可以选择1980年至2026年的起始年份。2026年的参考值使用最新公布的CPI数据,目前还不是完整的年度平均值。' },
16
+ { question: '购买力估算是准确的价格吗?', answer: '不是。这是基于CPI的平均比较,不是住房、工资、食品、能源或某次具体购买的准确价格。' },
17
+ ];
18
+ const howTo = [
19
+ { name: '输入比塞塔金额', text: '输入收据、纸币、硬币或历史文件上的金额。' },
20
+ { name: '选择年份', text: '先选择年代,再选择金额使用的年份。' },
21
+ { name: '查看固定换算', text: '查看将比塞塔除以166.386后得到的名义欧元金额。' },
22
+ { name: '比较购买力', text: '将固定换算与2026年的平均购买力估算进行比较。' },
23
+ ];
24
+ const schemas: WithContext<Thing>[] = [
25
+ { '@context': 'https://schema.org', '@type': 'FAQPage', mainEntity: faq.map((item) => ({ '@type': 'Question', name: item.question, acceptedAnswer: { '@type': 'Answer', text: item.answer } })) } as WithContext<FAQPage>,
26
+ { '@context': 'https://schema.org', '@type': 'HowTo', name: title, description, step: howTo.map((step, index) => ({ '@type': 'HowToStep', position: index + 1, name: step.name, text: step.text })) } as WithContext<HowTo>,
27
+ { '@context': 'https://schema.org', '@type': 'SoftwareApplication', name: title, description, applicationCategory: 'FinanceApplication', operatingSystem: 'All', offers: { '@type': 'Offer', price: '0', priceCurrency: 'EUR' }, inLanguage: 'zh' } as WithContext<SoftwareApplication>,
28
+ ];
29
+ export const content: ToolLocaleContent<PesetaValueUI> = {
30
+ slug, title, description,
31
+ ui: { labelAmount: '历史金额', labelAmountHint: '选择起点', labelOriginYear: '起始年份', labelOriginYearHint: '有数据时使用年度CPI平均值', labelReferenceYear: '截至目前的2026年参考值', labelNominalEuros: '固定换算', labelTodayValue: '预计购买力', labelPurchasingPowerChange: '购买力变化', labelNominalDifference: '与换算值的差额', labelConversionRate: '每欧元比塞塔数', labelCpiMethod: 'CPI倍数', labelPreset100: '100比塞塔', labelPreset1000: '1,000比塞塔', labelPreset10000: '10,000比塞塔', labelPreset100000: '100,000比塞塔', labelPesetas: '比塞塔', labelEuro: '欧元', labelFrom: '起始', labelTo: '结束', labelOpenYears: '打开起始年份', labelCloseYears: '关闭起始年份', labelDecade: '选择年代', labelCoin: '硬币', labelBanknote: '纸币', labelCashPieces: '货币', labelState: '价值变化', labelStatePositive: '上升', labelStateNeutral: '不变', labelStateNegative: '下降', labelReset: '重置示例', currencyLocale: 'zh-CN' },
32
+ seo: [
33
+ { type: 'title', text: '比塞塔换算欧元的两个答案', level: 2 },
34
+ { type: 'paragraph', html: '如果你手里有用西班牙比塞塔表示的旧价格、工资、收据、硬币或纸币,这个换算器会给出两个答案。它先显示固定汇率对应的欧元金额,再根据西班牙价格变化估算这笔钱在2026年的购买力。' },
35
+ { type: 'title', text: '常见比塞塔欧元换算', level: 2 },
36
+ { type: 'paragraph', html: '固定汇率始终是1欧元等于166.386比塞塔。年份不会改变名义换算结果。' },
37
+ { type: 'table', headers: ['旧金额', '固定换算'], rows: [['1比塞塔', '0.01欧元'], ['25比塞塔', '0.15欧元'], ['50比塞塔', '0.30欧元'], ['100比塞塔', '0.60欧元'], ['500比塞塔', '3.01欧元'], ['1,000比塞塔', '6.01欧元'], ['2,000比塞塔', '12.02欧元'], ['5,000比塞塔', '30.05欧元'], ['10,000比塞塔', '60.10欧元'], ['100万比塞塔', '6,010.12欧元']] },
38
+ { type: 'title', text: '比塞塔在2026年值多少钱', level: 2 },
39
+ { type: 'paragraph', html: 'CPI调整结果回答的是与欧元换算不同的问题。它估算在2026年购买与所选金额在起始年份能够购买的平均商品和服务相近的消费篮子需要多少欧元。2026年参考值使用截至目前的最新数据,还不是完整年度平均值。' },
40
+ { type: 'table', headers: ['结果', '含义'], rows: [['固定换算', '按官方汇率得到的准确名义欧元金额。'], ['CPI调整值', '2026年相当平均购买力的估算值。'], ['差额', '固定换算与CPI估算之间的差距。']] },
41
+ { type: 'title', text: '如何计算旧比塞塔金额', level: 2 },
42
+ { type: 'list', items: ['输入收据、纸币、硬币或文件上的金额。', '选择金额使用或收到的年份。', '需要直接欧元等值时使用固定换算。', '需要了解历史购买力时使用CPI值。', '将差额看作通胀背景,不要当作个人价格预测。'] },
43
+ { type: 'title', text: '硬币和纸币不会自动拥有这个收藏价值', level: 2 },
44
+ { type: 'paragraph', html: '这个工具计算货币和通胀,不提供钱币鉴定。稀有硬币或旧纸币的市场价值会因年份、品相、稀有程度和需求而不同。' },
45
+ { type: 'tip', title: '年份改变购买力,而不是汇率', html: '官方汇率仍然是每欧元166.386比塞塔。只有起始年份对应的CPI比较会变化,而且它描述的是平均消费篮子。' },
46
+ ],
47
+ faq, bibliography, howTo, schemas,
48
+ };
@@ -0,0 +1,11 @@
1
+ import type { ToolDefinition } from '../../types';
2
+ import { pesetaValue } from './entry';
3
+
4
+ export * from './entry';
5
+
6
+ export const PESETA_VALUE_TOOL: ToolDefinition = {
7
+ entry: pesetaValue,
8
+ Component: () => import('./component.astro'),
9
+ SEOComponent: () => import('./seo.astro'),
10
+ BibliographyComponent: () => import('./bibliography.astro'),
11
+ };
@@ -0,0 +1,63 @@
1
+ import { describe, expect, it } from 'vitest';
2
+ import {
3
+ CPI_BY_YEAR,
4
+ PESETA_PER_EURO,
5
+ REFERENCE_YEAR,
6
+ calculatePesetaValue,
7
+ decomposePesetas,
8
+ getCashDisplay,
9
+ getSupportedYears,
10
+ isSupportedYear,
11
+ } from './logic';
12
+
13
+ describe('peseta value calculator', () => {
14
+ it('uses the irrevocable peseta to euro conversion rate', () => {
15
+ const result = calculatePesetaValue({ pesetas: PESETA_PER_EURO, originYear: REFERENCE_YEAR });
16
+ expect(result?.nominalEuros).toBe(1);
17
+ expect(result?.adjustedEuros).toBe(1);
18
+ });
19
+
20
+ it('updates historical purchasing power from CPI indices', () => {
21
+ const result = calculatePesetaValue({ pesetas: 1000, originYear: 1980 });
22
+ expect(result?.adjustedEuros).toBeGreaterThan(result?.nominalEuros ?? 0);
23
+ expect(result?.purchasingPowerChange).toBeGreaterThan(500);
24
+ });
25
+
26
+ it('supports a custom reference year', () => {
27
+ const result = calculatePesetaValue({ pesetas: 1000, originYear: 2000, referenceYear: 2010 });
28
+ expect(result?.referenceYear).toBe(2010);
29
+ expect(result?.cpiMultiplier).toBeCloseTo(CPI_BY_YEAR[2010]! / CPI_BY_YEAR[2000]!, 4);
30
+ });
31
+
32
+ it('rejects invalid amounts and years', () => {
33
+ expect(calculatePesetaValue({ pesetas: 0, originYear: 2000 })).toBeNull();
34
+ expect(calculatePesetaValue({ pesetas: 1000, originYear: 1979 })).toBeNull();
35
+ expect(calculatePesetaValue({ pesetas: 1000, originYear: 2000, referenceYear: 2027 })).toBeNull();
36
+ expect(isSupportedYear(1980)).toBe(true);
37
+ expect(isSupportedYear(1980.5)).toBe(false);
38
+ });
39
+
40
+ it('returns descending years from the reference year', () => {
41
+ const years = getSupportedYears();
42
+ expect(years[0]).toBe(REFERENCE_YEAR);
43
+ expect(years.at(-1)).toBe(1980);
44
+ expect(years).toHaveLength(47);
45
+ });
46
+
47
+ it('decomposes amounts into representative notes and coins', () => {
48
+ expect(decomposePesetas(1234)).toEqual([
49
+ { value: 1000, count: 1, kind: 'banknote' },
50
+ { value: 200, count: 1, kind: 'coin' },
51
+ { value: 25, count: 1, kind: 'coin' },
52
+ { value: 5, count: 1, kind: 'coin' },
53
+ { value: 1, count: 4, kind: 'coin' },
54
+ ]);
55
+ });
56
+
57
+ it('keeps every historical denomination in the visual cash display', () => {
58
+ const display = getCashDisplay(1234);
59
+ expect(display).toHaveLength(12);
60
+ expect(display.find((piece) => piece.value === 25)?.count).toBe(1);
61
+ expect(display.find((piece) => piece.value === 2000)?.count).toBe(0);
62
+ });
63
+ });
@@ -0,0 +1,162 @@
1
+ export const PESETA_PER_EURO = 166.386;
2
+ export const FIRST_YEAR = 1980;
3
+ export const REFERENCE_YEAR = 2026;
4
+
5
+ const CPI_RATES: Record<number, number> = {
6
+ 1980: 15.591667,
7
+ 1981: 14.55,
8
+ 1982: 14.425,
9
+ 1983: 12.183333,
10
+ 1984: 11.308333,
11
+ 1985: 8.833333,
12
+ 1986: 8.8,
13
+ 1987: 5.266667,
14
+ 1988: 4.85,
15
+ 1989: 6.791667,
16
+ 1990: 6.733333,
17
+ 1991: 5.941667,
18
+ 1992: 5.941667,
19
+ 1993: 4.566667,
20
+ 1994: 4.725,
21
+ 1995: 4.675,
22
+ 1996: 3.566667,
23
+ 1997: 1.975,
24
+ 1998: 1.841667,
25
+ 1999: 2.291667,
26
+ 2000: 3.441667,
27
+ 2001: 3.6,
28
+ 2002: 3.608333,
29
+ };
30
+
31
+ const CPI_INDEX: Record<number, number> = {
32
+ 2002: 60.03625,
33
+ 2003: 61.860833,
34
+ 2004: 63.741083,
35
+ 2005: 65.888083,
36
+ 2006: 68.204583,
37
+ 2007: 70.105167,
38
+ 2008: 72.962417,
39
+ 2009: 72.752333,
40
+ 2010: 74.06175,
41
+ 2011: 76.428833,
42
+ 2012: 78.29825,
43
+ 2013: 79.40125,
44
+ 2014: 79.281417,
45
+ 2015: 78.88475,
46
+ 2016: 78.724833,
47
+ 2017: 80.2645,
48
+ 2018: 81.60925,
49
+ 2019: 82.179917,
50
+ 2020: 81.914833,
51
+ 2021: 84.4485,
52
+ 2022: 91.534083,
53
+ 2023: 94.7675,
54
+ 2024: 97.396417,
55
+ 2025: 100.000083,
56
+ 2026: 102.552571,
57
+ };
58
+
59
+ function buildCpiIndex(): Record<number, number> {
60
+ const index = { ...CPI_INDEX };
61
+ for (let year = 2001; year >= FIRST_YEAR; year -= 1) {
62
+ index[year] = index[year + 1]! / (1 + CPI_RATES[year + 1]! / 100);
63
+ }
64
+ return index;
65
+ }
66
+
67
+ export const CPI_BY_YEAR = buildCpiIndex();
68
+
69
+ export type CashKind = 'coin' | 'banknote';
70
+
71
+ export interface CashPiece {
72
+ value: number;
73
+ count: number;
74
+ kind: CashKind;
75
+ }
76
+
77
+ export const CASH_DENOMINATIONS: Array<{ value: number; kind: CashKind }> = [
78
+ { value: 10000, kind: 'banknote' },
79
+ { value: 5000, kind: 'banknote' },
80
+ { value: 2000, kind: 'banknote' },
81
+ { value: 1000, kind: 'banknote' },
82
+ { value: 500, kind: 'coin' },
83
+ { value: 200, kind: 'coin' },
84
+ { value: 100, kind: 'coin' },
85
+ { value: 50, kind: 'coin' },
86
+ { value: 25, kind: 'coin' },
87
+ { value: 10, kind: 'coin' },
88
+ { value: 5, kind: 'coin' },
89
+ { value: 1, kind: 'coin' },
90
+ ];
91
+
92
+ export function decomposePesetas(amount: number): CashPiece[] {
93
+ let remaining = Math.max(0, Math.floor(amount));
94
+ return CASH_DENOMINATIONS.reduce<CashPiece[]>((pieces, denomination) => {
95
+ const count = Math.floor(remaining / denomination.value);
96
+ if (count > 0) {
97
+ pieces.push({ ...denomination, count });
98
+ remaining -= count * denomination.value;
99
+ }
100
+ return pieces;
101
+ }, []);
102
+ }
103
+
104
+ export function getCashDisplay(amount: number): CashPiece[] {
105
+ const usedPieces = new Map(decomposePesetas(amount).map((piece) => [piece.value, piece.count]));
106
+ return CASH_DENOMINATIONS.map((denomination) => ({
107
+ ...denomination,
108
+ count: usedPieces.get(denomination.value) ?? 0,
109
+ }));
110
+ }
111
+
112
+ export interface PesetaValueInput {
113
+ pesetas: number;
114
+ originYear: number;
115
+ referenceYear?: number;
116
+ }
117
+
118
+ export interface PesetaValueResult {
119
+ pesetas: number;
120
+ originYear: number;
121
+ referenceYear: number;
122
+ nominalEuros: number;
123
+ adjustedEuros: number;
124
+ nominalDifference: number;
125
+ purchasingPowerChange: number;
126
+ cpiMultiplier: number;
127
+ }
128
+
129
+ export function isSupportedYear(year: number): boolean {
130
+ return Number.isInteger(year) && year >= FIRST_YEAR && year <= REFERENCE_YEAR;
131
+ }
132
+
133
+ function round(value: number, decimals: number): number {
134
+ const factor = 10 ** decimals;
135
+ return Math.round((value + Number.EPSILON) * factor) / factor;
136
+ }
137
+
138
+ export function calculatePesetaValue(input: PesetaValueInput): PesetaValueResult | null {
139
+ const referenceYear = input.referenceYear ?? REFERENCE_YEAR;
140
+ if (!Number.isFinite(input.pesetas) || input.pesetas <= 0 || !isSupportedYear(input.originYear) || !isSupportedYear(referenceYear)) {
141
+ return null;
142
+ }
143
+
144
+ const nominalEuros = input.pesetas / PESETA_PER_EURO;
145
+ const cpiMultiplier = CPI_BY_YEAR[referenceYear]! / CPI_BY_YEAR[input.originYear]!;
146
+ const adjustedEuros = nominalEuros * cpiMultiplier;
147
+
148
+ return {
149
+ pesetas: input.pesetas,
150
+ originYear: input.originYear,
151
+ referenceYear,
152
+ nominalEuros: round(nominalEuros, 2),
153
+ adjustedEuros: round(adjustedEuros, 2),
154
+ nominalDifference: round(adjustedEuros - nominalEuros, 2),
155
+ purchasingPowerChange: round((cpiMultiplier - 1) * 100, 1),
156
+ cpiMultiplier: round(cpiMultiplier, 4),
157
+ };
158
+ }
159
+
160
+ export function getSupportedYears(): number[] {
161
+ return Array.from({ length: REFERENCE_YEAR - FIRST_YEAR + 1 }, (_, index) => REFERENCE_YEAR - index);
162
+ }