Skip to content

Commit 1105cbb

Browse files
committed
her şeyi değiştim kafama yatmayan ek olarak bu projede biraz ssr testi yaptım o kadar
1 parent bc0d97c commit 1105cbb

File tree

19 files changed

+782
-617
lines changed

19 files changed

+782
-617
lines changed

next.config.ts

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,28 @@ const nextConfig: NextConfig = {
55
locales: ['en', 'tr'],
66
defaultLocale: 'tr',
77
},
8+
serverExternalPackages: [],
9+
async headers() {
10+
return [
11+
{
12+
source: '/(.*)',
13+
headers: [
14+
{
15+
key: 'X-Content-Type-Options',
16+
value: 'nosniff',
17+
},
18+
{
19+
key: 'X-Frame-Options',
20+
value: 'DENY',
21+
},
22+
{
23+
key: 'X-XSS-Protection',
24+
value: '1; mode=block',
25+
},
26+
],
27+
},
28+
];
29+
},
830
};
931

1032
export default nextConfig;

public/locales/en/translation.json

Lines changed: 59 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -1,44 +1,60 @@
1-
{
2-
"footer": {
3-
"copy": "© {{year}} EspeeeBne. All rights reserved.",
4-
"cv": "CV"
5-
},
6-
"hero": {
7-
"title": "Welcome to my Portfolio",
8-
"subtitle": "Tayfur Furkan Hayat a.k.a. Espe, EspeeeBne, Sora, Rika",
9-
"button": "Learn More",
10-
"projects":"Projects",
11-
"about":"About Me"
12-
},
13-
"about": {
14-
"pageTitle": "About",
15-
"title": "About Me",
16-
"name": "Tayfur Furkan Hayat",
17-
"tagline": "Software Engineer | React, .NET & Beyond",
18-
"description": "Yes, this place is very empty, let me summarise myself, I am a person who writes code on the web, I occasionally get out of the web-based boredom, so I classify myself as a software engineer, so that's it for now."},
19-
"projects": {
20-
"title": "My Projects",
21-
"notFound": "Project not found.",
22-
"back": "Go Back"
23-
},
24-
"404": {
25-
"header_text": "We could not find the page you are looking for, it may have been removed.",
26-
"subtitle_text": "You will be redirected to the homepage in 10 seconds."
27-
},
28-
"welcome": "Welcome, I'm Espe",
29-
"homenav":"Home",
30-
"home":"Home",
31-
"projectsnav":"Projects",
32-
"aboutnav":"About",
33-
"description": "Tayfur Furkan Hayat a.k.a Espe, EspeeeBne, Sora, Rika",
34-
"contact": "Get in Touch",
35-
"aboutTitle": "About Me",
36-
"projectsTitle": "My Projects",
37-
"appTitle": "Espe Portfolio",
38-
"changeLanguage": "Change Language",
39-
"selectLanguage": "Select Language",
40-
"turkish": "Türkçe",
41-
"english": "English",
42-
"darkMode": "Dark Mode",
43-
"lightMode": "Light Mode"
1+
{
2+
"footer": {
3+
"copy": "© {{year}} EspeeeBne. All rights reserved.",
4+
"cv": "CV"
5+
},
6+
"hero": {
7+
"title": "Welcome to my Portfolio",
8+
"subtitle": "Tayfur Furkan Hayat a.k.a. Espe, EspeeeBne, furkito",
9+
"button": "Learn More",
10+
"projects":"Projects",
11+
"about":"About Me"
12+
},
13+
"about": {
14+
"pageTitle": "About",
15+
"title": "About Me",
16+
"name": "Tayfur Furkan Hayat",
17+
"tagline": "Software Engineer | React, .NET & Beyond",
18+
"description": "Yes, this place is very empty, let me summarise myself, I am a person who writes code on the web, I occasionally get out of the web-based boredom, so I classify myself as a software engineer, so that's it for now."},
19+
"projects": {
20+
"title": "My Projects",
21+
"notFound": "Project not found.",
22+
"back": "Go Back",
23+
"relativeDate": {
24+
"lessThanXSeconds": "less than {{count}} seconds",
25+
"xSeconds": "{{count}} seconds ago",
26+
"halfAMinute": "half a minute ago",
27+
"lessThanXMinutes": "less than {{count}} minutes",
28+
"xMinutes": "{{count}} minutes ago",
29+
"aboutXHours": "about {{count}} hours ago",
30+
"xHours": "{{count}} hours ago",
31+
"xDays": "{{count}} days ago",
32+
"aboutXMonths": "about {{count}} months ago",
33+
"xMonths": "{{count}} months ago",
34+
"aboutXYears": "about {{count}} years ago",
35+
"xYears": "{{count}} years ago",
36+
"overXYears": "over {{count}} years",
37+
"almostXYears": "almost {{count}} years"
38+
}
39+
},
40+
"404": {
41+
"header_text": "We could not find the page you are looking for, it may have been removed.",
42+
"subtitle_text": "You will be redirected to the homepage in 10 seconds."
43+
},
44+
"welcome": "Welcome, I'm Espe",
45+
"homenav":"Home",
46+
"home":"Home",
47+
"projectsnav":"Projects",
48+
"aboutnav":"About",
49+
"description": "Tayfur Furkan Hayat a.k.a Espe, EspeeeBne",
50+
"contact": "Get in Touch",
51+
"aboutTitle": "About Me",
52+
"projectsTitle": "My Projects",
53+
"appTitle": "Espe Portfolio",
54+
"changeLanguage": "Change Language",
55+
"selectLanguage": "Select Language",
56+
"turkish": "Türkçe",
57+
"english": "English",
58+
"darkMode": "Dark Mode",
59+
"lightMode": "Light Mode"
4460
}

public/locales/tr/translation.json

Lines changed: 60 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -1,45 +1,61 @@
1-
{
2-
"footer": {
3-
"copy": "© {{year}} EspeeeBne. Tüm hakları saklıdır.",
4-
"cv": "CV"
5-
},
6-
"hero": {
7-
"title": "Portfolyoma Hoş geldiniz",
8-
"subtitle": "Tayfur Furkan Hayat a.k.a. Espe, EspeeeBne, Sora, Rika",
9-
"button": "Detaylı Bilgi",
10-
"projects":"Projeler",
11-
"about":"Hakkımda"
12-
},
13-
"about": {
14-
"pageTitle": "Hakkımda",
15-
"title": "Hakkımda",
16-
"name": "Tayfur Furkan Hayat",
17-
"tagline": "Software Engineer | React, .NET & Beyond",
18-
"description": "Evet burası çok boş kendimi özetleyeyim bari ben web üzerine kod yazan biriyim arada can sıkıntısından web tabanlıdan çıkarım o yüzden kendimi software engineer olarak sınıflandırıyorum öyle benden şimdilik bu kadar."
19-
},
20-
"projects": {
21-
"title": "Projelerim",
22-
"notFound": "Proje bulunamadı.",
23-
"back": "Geri Dön"
24-
},
25-
"404": {
26-
"header_text": "Aradığınız sayfayı bulamadık, kaldırılmış olabilir.",
27-
"subtitle_text": "10 saniye içinde ana sayfaya yönlendirileceksiniz."
28-
},
29-
"welcome": "Hoş geldiniz, ben Espe",
30-
"homenav":"Ana sayfa",
31-
"projectsnav":"Projeler",
32-
"home":"Ana sayfa",
33-
"aboutnav":"Hakkımda",
34-
"description": "Tayfur Furkan Hayat a.k.a Espe, EspeeeBne, Sora, Rika",
35-
"contact": "İletişime Geç",
36-
"aboutTitle": "Hakkımda",
37-
"projectsTitle": "Projelerim",
38-
"appTitle": "Espe Portfolyo",
39-
"changeLanguage": "Dili Değiştir",
40-
"selectLanguage": "Dil Seçimi",
41-
"turkish": "Türkçe",
42-
"english": "English",
43-
"darkMode": "Koyu Mod",
44-
"lightMode": "Aydınlık Mod"
1+
{
2+
"footer": {
3+
"copy": "© {{year}} EspeeeBne. Tüm hakları saklıdır.",
4+
"cv": "CV"
5+
},
6+
"hero": {
7+
"title": "Portfolyoma Hoş geldiniz",
8+
"subtitle": "Tayfur Furkan Hayat a.k.a. Espe, EspeeeBne, furkito",
9+
"button": "Detaylı Bilgi",
10+
"projects":"Projeler",
11+
"about":"Hakkımda"
12+
},
13+
"about": {
14+
"pageTitle": "Hakkımda",
15+
"title": "Hakkımda",
16+
"name": "Tayfur Furkan Hayat",
17+
"tagline": "Software Engineer | React, .NET & Beyond",
18+
"description": "Evet burası çok boş kendimi özetleyeyim bari ben web üzerine kod yazan biriyim arada can sıkıntısından web tabanlıdan çıkarım o yüzden kendimi software engineer olarak sınıflandırıyorum öyle benden şimdilik bu kadar."
19+
},
20+
"projects": {
21+
"title": "Projelerim",
22+
"notFound": "Proje bulunamadı.",
23+
"back": "Geri Dön",
24+
"relativeDate": {
25+
"lessThanXSeconds": "{{count}} saniyeden az",
26+
"xSeconds": "{{count}} saniye önce",
27+
"halfAMinute": "yarım dakika önce",
28+
"lessThanXMinutes": "{{count}} dakikadan az",
29+
"xMinutes": "{{count}} dakika önce",
30+
"aboutXHours": "yaklaşık {{count}} saat önce",
31+
"xHours": "{{count}} saat önce",
32+
"xDays": "{{count}} gün önce",
33+
"aboutXMonths": "yaklaşık {{count}} ay önce",
34+
"xMonths": "{{count}} ay önce",
35+
"aboutXYears": "yaklaşık {{count}} yıl önce",
36+
"xYears": "{{count}} yıl önce",
37+
"overXYears": "{{count}} yıldan fazla",
38+
"almostXYears": "neredeyse {{count}} yıl"
39+
}
40+
},
41+
"404": {
42+
"header_text": "Aradığınız sayfayı bulamadık, kaldırılmış olabilir.",
43+
"subtitle_text": "10 saniye içinde ana sayfaya yönlendirileceksiniz."
44+
},
45+
"welcome": "Hoş geldiniz, ben Espe",
46+
"homenav":"Ana sayfa",
47+
"projectsnav":"Projeler",
48+
"home":"Ana sayfa",
49+
"aboutnav":"Hakkımda",
50+
"description": "Tayfur Furkan Hayat a.k.a Espe, EspeeeBne",
51+
"contact": "İletişime Geç",
52+
"aboutTitle": "Hakkımda",
53+
"projectsTitle": "Projelerim",
54+
"appTitle": "Espe Portfolyo",
55+
"changeLanguage": "Dili Değiştir",
56+
"selectLanguage": "Dil Seçimi",
57+
"turkish": "Türkçe",
58+
"english": "English",
59+
"darkMode": "Koyu Mod",
60+
"lightMode": "Aydınlık Mod"
4561
}

src/components/Footer/Footer.tsx

Lines changed: 56 additions & 52 deletions
Original file line numberDiff line numberDiff line change
@@ -1,52 +1,56 @@
1-
import React from 'react';
2-
import { Box, Typography, IconButton } from '@mui/material';
3-
import GitHubIcon from '@mui/icons-material/GitHub';
4-
import LinkedInIcon from '@mui/icons-material/LinkedIn';
5-
import DescriptionIcon from '@mui/icons-material/Description';
6-
import { useTranslation } from 'react-i18next';
7-
import { footerStyles } from '../../styles/Footer.styles';
8-
9-
const Footer: React.FC = () => {
10-
const { t, i18n } = useTranslation();
11-
12-
const cvLink = i18n.language === 'tr' ? '/cv/tr.pdf' : '/cv/en.pdf';
13-
14-
return (
15-
<Box sx={footerStyles.container}>
16-
<Typography variant="body2" sx={footerStyles.text}>
17-
{t('footer.copy', { year: new Date().getFullYear() })}
18-
</Typography>
19-
<Box sx={footerStyles.iconsContainer}>
20-
<IconButton
21-
sx={footerStyles.iconButton}
22-
href="https://github.com/EspeeeBne"
23-
target="_blank"
24-
rel="noopener noreferrer"
25-
aria-label="GitHub"
26-
>
27-
<GitHubIcon />
28-
</IconButton>
29-
<IconButton
30-
sx={footerStyles.iconButton}
31-
href="https://www.linkedin.com/in/tayfurfurkanhayat/"
32-
target="_blank"
33-
rel="noopener noreferrer"
34-
aria-label="LinkedIn"
35-
>
36-
<LinkedInIcon />
37-
</IconButton>
38-
<IconButton
39-
sx={footerStyles.iconButton}
40-
href={cvLink}
41-
target="_blank"
42-
rel="noopener noreferrer"
43-
aria-label={t('footer.cv')}
44-
>
45-
<DescriptionIcon />
46-
</IconButton>
47-
</Box>
48-
</Box>
49-
);
50-
};
51-
52-
export default Footer;
1+
import React from 'react';
2+
import { Typography } from '@mui/material';
3+
import GitHubIcon from '@mui/icons-material/GitHub';
4+
import LinkedInIcon from '@mui/icons-material/LinkedIn';
5+
import DescriptionIcon from '@mui/icons-material/Description';
6+
import { useTranslation } from 'react-i18next';
7+
import {
8+
FooterContainer,
9+
FooterText,
10+
FooterIconsContainer,
11+
FooterLinkButton
12+
} from '../../styles/Footer.styles';
13+
14+
const Footer: React.FC = () => {
15+
const { t, i18n } = useTranslation();
16+
17+
const cvLink = i18n.language === 'tr' ? '/cv/tr.pdf' : '/cv/en.pdf';
18+
19+
return (
20+
<FooterContainer>
21+
<FooterText>
22+
<Typography variant="body2">
23+
{t('footer.copy', { year: new Date().getFullYear() })}
24+
</Typography>
25+
</FooterText>
26+
<FooterIconsContainer>
27+
<FooterLinkButton
28+
href="https://github.com/EspeeeBne"
29+
target="_blank"
30+
rel="noopener noreferrer"
31+
aria-label="GitHub"
32+
>
33+
<GitHubIcon />
34+
</FooterLinkButton>
35+
<FooterLinkButton
36+
href="https://www.linkedin.com/in/tayfurfurkanhayat/"
37+
target="_blank"
38+
rel="noopener noreferrer"
39+
aria-label="LinkedIn"
40+
>
41+
<LinkedInIcon />
42+
</FooterLinkButton>
43+
<FooterLinkButton
44+
href={cvLink}
45+
target="_blank"
46+
rel="noopener noreferrer"
47+
aria-label={t('footer.cv')}
48+
>
49+
<DescriptionIcon />
50+
</FooterLinkButton>
51+
</FooterIconsContainer>
52+
</FooterContainer>
53+
);
54+
};
55+
56+
export default Footer;

0 commit comments

Comments
 (0)