Skip to content

Commit 9640a68

Browse files
authored
Merge pull request #5 from LorenzoLancia/feat/it-language
Added /it language
2 parents f97769c + e8bc39e commit 9640a68

18 files changed

Lines changed: 1402 additions & 16 deletions

File tree

README.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,9 +8,9 @@
88
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg?style=for-the-badge)](https://opensource.org/licenses/MIT)
99
[![Build Status](https://github.com/GSiesto/pdflince/actions/workflows/deploy.yml/badge.svg?style=for-the-badge)](https://github.com/GSiesto/pdflince/actions)
1010

11-
| 🇬🇧 English | 🇪🇸 Español | 🇩🇪 Deutsch | 🇵🇹 Português |
12-
|:---:|:---:|:---:|:---:|
13-
| [pdflince.com](https://pdflince.com/en?utm_source=github&utm_medium=readme&utm_campaign=pdflince_public) | [pdflince.com](https://pdflince.com/?utm_source=github&utm_medium=readme&utm_campaign=pdflince_public) | [pdflince.com](https://pdflince.com/de?utm_source=github&utm_medium=readme&utm_campaign=pdflince_public) | [pdflince.com](https://pdflince.com/pt?utm_source=github&utm_medium=readme&utm_campaign=pdflince_public) |
11+
| 🇬🇧 English | 🇪🇸 Español | 🇩🇪 Deutsch | 🇵🇹 Português | 🇮🇹 Italiano |
12+
|:---:|:---:|:---:|:---:|:---:|
13+
| [pdflince.com](https://pdflince.com/en?utm_source=github&utm_medium=readme&utm_campaign=pdflince_public) | [pdflince.com](https://pdflince.com/?utm_source=github&utm_medium=readme&utm_campaign=pdflince_public) | [pdflince.com](https://pdflince.com/de?utm_source=github&utm_medium=readme&utm_campaign=pdflince_public) | [pdflince.com](https://pdflince.com/pt?utm_source=github&utm_medium=readme&utm_campaign=pdflince_public) | [pdflince.com](https://pdflince.com/it?utm_source=github&utm_medium=readme&utm_campaign=pdflince_public)
1414

1515
## 🚀 Why PDFLince?
1616

content/i18n-route-map.json

Lines changed: 20 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -3,62 +3,72 @@
33
"es": "/",
44
"en": "/en",
55
"pt": "/pt",
6-
"de": "/de"
6+
"de": "/de",
7+
"it": "/it"
78
},
89
"faq": {
910
"es": "/preguntas-frecuentes",
1011
"en": "/en/faq",
1112
"pt": "/pt/perguntas-frequentes",
12-
"de": "/de/haeufige-fragen"
13+
"de": "/de/haeufige-fragen",
14+
"it": "/it/faq"
1315
},
1416
"support": {
1517
"es": "/apoya",
1618
"en": "/en/support",
1719
"pt": "/pt/apoie",
18-
"de": "/de/unterstuetzen"
20+
"de": "/de/unterstuetzen",
21+
"it": "/it/supporto"
1922
},
2023
"operations": {
2124
"compress": {
2225
"es": "/comprimir",
2326
"en": "/en/compress",
2427
"pt": "/pt/comprimir",
25-
"de": "/de/komprimieren"
28+
"de": "/de/komprimieren",
29+
"it": "/it/comprimi"
2630
},
2731
"merge": {
2832
"es": "/unir",
2933
"en": "/en/merge",
3034
"pt": "/pt/juntar",
31-
"de": "/de/zusammenfuehren"
35+
"de": "/de/zusammenfuehren",
36+
"it": "/it/unisci"
3237
},
3338
"split": {
3439
"es": "/dividir",
3540
"en": "/en/split",
3641
"pt": "/pt/dividir",
37-
"de": "/de/teilen"
42+
"de": "/de/teilen",
43+
"it": "/it/dividi"
3844
},
3945
"extract": {
4046
"es": "/extraer",
4147
"en": "/en/extract",
4248
"pt": "/pt/extrair",
43-
"de": "/de/seiten-extrahieren"
49+
"de": "/de/seiten-extrahieren",
50+
"it": "/it/estrai"
4451
},
4552
"reorder": {
4653
"es": "/reordenar",
4754
"en": "/en/reorder",
4855
"pt": "/pt/reordenar",
49-
"de": "/de/seiten-sortieren"
56+
"de": "/de/seiten-sortieren",
57+
"it": "/it/riordina"
5058
},
5159
"pdfToImages": {
5260
"es": "/convertir-pdf-a-imagenes",
5361
"en": "/en/pdf-to-images",
5462
"pt": "/pt/pdf-para-imagens",
55-
"de": "/de/pdf-zu-bildern"
63+
"de": "/de/pdf-zu-bildern",
64+
"it": "/it/da-pdf-a-immagini"
5665
},
5766
"imagesToPdf": {
5867
"es": "/crear-pdf-desde-imagenes",
5968
"en": "/en/images-to-pdf",
6069
"pt": "/pt/imagens-para-pdf",
61-
"de": "/de/bilder-zu-pdf"
70+
"de": "/de/bilder-zu-pdf",
71+
"it": "/it/da-immagini-a-pdf"
6272
}
6373
}
6474
}

package-lock.json

Lines changed: 0 additions & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/app/(es)/layout.tsx

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,8 @@ export const metadata = {
3838
'pt-BR': 'https://pdflince.com/pt',
3939
'de': 'https://pdflince.com/de',
4040
'de-DE': 'https://pdflince.com/de',
41+
'it': 'https://pdflince.com/it',
42+
'it-IT': 'https://pdflince.com/it',
4143
'x-default': 'https://pdflince.com',
4244
},
4345
},

src/app/de/layout.tsx

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,8 @@ export const metadata = {
3535
'pt-BR': 'https://pdflince.com/pt',
3636
'de': 'https://pdflince.com/de',
3737
'de-DE': 'https://pdflince.com/de',
38+
'it': 'https://pdflince.com/it',
39+
'it-IT': 'https://pdflince.com/it',
3840
'x-default': 'https://pdflince.com',
3941
},
4042
},

src/app/en/layout.tsx

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,8 @@ export const metadata = {
3535
'pt-BR': 'https://pdflince.com/pt',
3636
'de': 'https://pdflince.com/de',
3737
'de-DE': 'https://pdflince.com/de',
38+
'it': 'https://pdflince.com/it',
39+
'it-IT': 'https://pdflince.com/it',
3840
'x-default': 'https://pdflince.com',
3941
},
4042
},
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
import { createLocaleOperationHandlers } from "../../../(helpers)/operation-handlers";
2+
3+
const LOCALE = "it" as const;
4+
5+
const { generateStaticParams, generateMetadata, OperationPage } = createLocaleOperationHandlers(LOCALE);
6+
7+
export { generateStaticParams, generateMetadata };
8+
export default OperationPage;

src/app/it/faq/page.tsx

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
import { FaqPageContent } from "../../../components/FaqPageContent";
2+
import { getDictionary } from "../../../i18n/get-dictionary";
3+
import { createFaqMetadata } from "../../(helpers)/locale-metadata";
4+
5+
const LOCALE = "it" as const;
6+
7+
export const generateMetadata = createFaqMetadata(LOCALE);
8+
9+
export default function EnFaqPage() {
10+
const dictionary = getDictionary(LOCALE);
11+
return <FaqPageContent dictionary={dictionary} />;
12+
}

src/app/it/layout.tsx

Lines changed: 75 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,75 @@
1+
import "../../styles/globals.css";
2+
import { Suspense, type ReactNode } from "react";
3+
import { GeistSans } from "geist/font/sans";
4+
import { GeistMono } from "geist/font/mono";
5+
import NavMenu from "../../components/NavMenu";
6+
import Footer from "../../components/Footer";
7+
import FotoLinceBanner from "../../components/FotoLinceBanner";
8+
import { LocaleProvider } from "../../i18n/LocaleProvider";
9+
import { GoogleAnalyticsScripts } from "../../components/analytics/GoogleAnalyticsScripts";
10+
import { GaPageViewTracker } from "../../components/analytics/GaPageViewTracker";
11+
import { WebVitalsReporter } from "../../components/analytics/WebVitalsReporter";
12+
import CookieBanner from "../../components/CookieBanner";
13+
import { SchemaOrg } from "../../components/SchemaOrg";
14+
15+
import { METADATA_BASE, SHARED_ICONS, SHARED_OPEN_GRAPH } from "../../lib/metadata-shared";
16+
17+
const LOCALE = "it" as const;
18+
19+
export const metadata = {
20+
metadataBase: METADATA_BASE,
21+
title: "PDFLince - Merge, Compress, Split, and Convert PDFs Online",
22+
description: "Free online PDF tools to merge, compress, split, extract, and convert PDFs. 100% private, local processing in your browser.",
23+
icons: SHARED_ICONS,
24+
alternates: {
25+
canonical: "https://pdflince.com/en",
26+
languages: {
27+
'es-ES': 'https://pdflince.com',
28+
'es-MX': 'https://pdflince.com',
29+
'es-CO': 'https://pdflince.com',
30+
'es-AR': 'https://pdflince.com',
31+
'es': 'https://pdflince.com',
32+
'en': 'https://pdflince.com/en',
33+
'en-US': 'https://pdflince.com/en',
34+
'pt': 'https://pdflince.com/pt',
35+
'pt-BR': 'https://pdflince.com/pt',
36+
'de': 'https://pdflince.com/de',
37+
'de-DE': 'https://pdflince.com/de',
38+
'it': 'https://pdflince.com/it',
39+
'it-IT': 'https://pdflince.com/it',
40+
'x-default': 'https://pdflince.com',
41+
},
42+
},
43+
openGraph: {
44+
...SHARED_OPEN_GRAPH,
45+
title: "PDFLince - Strumenti PDF gratuiti e privati nel tuo browser",
46+
description: "Unisci, comprimi, dividi e converti PDF senza dover caricare i file online. Elaborazione sicura e completamente privata.",
47+
url: "https://pdflince.com/it",
48+
locale: "it_IT",
49+
type: "website",
50+
},
51+
};
52+
53+
export default function ItLayout({ children }: { children: ReactNode }) {
54+
return (
55+
<html lang={LOCALE}>
56+
<head>
57+
<GoogleAnalyticsScripts />
58+
<SchemaOrg />
59+
</head>
60+
<body className={`font-sans ${GeistSans.variable} ${GeistMono.variable}`}>
61+
<LocaleProvider locale={LOCALE}>
62+
<WebVitalsReporter />
63+
<Suspense fallback={null}>
64+
<GaPageViewTracker />
65+
</Suspense>
66+
<NavMenu />
67+
<main>{children}</main>
68+
<FotoLinceBanner />
69+
<Footer />
70+
<CookieBanner />
71+
</LocaleProvider>
72+
</body>
73+
</html>
74+
);
75+
}

src/app/it/page.tsx

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
import { HomePageContent } from "../../components/HomePageContent";
2+
import { getDictionary } from "../../i18n/get-dictionary";
3+
import { createHomeMetadata } from "../(helpers)/locale-metadata";
4+
5+
const LOCALE = "it" as const;
6+
7+
export const generateMetadata = createHomeMetadata(LOCALE);
8+
9+
export default function EnHomePage() {
10+
const dictionary = getDictionary(LOCALE);
11+
return <HomePageContent dictionary={dictionary} />;
12+
}

0 commit comments

Comments
 (0)