97 lines
1.7 KiB
TypeScript
97 lines
1.7 KiB
TypeScript
export type Language = 'pt' | 'en' | 'es';
|
|
|
|
export interface Post {
|
|
id: string;
|
|
slug: string;
|
|
title: string;
|
|
description: string;
|
|
content: string;
|
|
category: string;
|
|
author: string;
|
|
date: string;
|
|
readingTime: string;
|
|
image: string;
|
|
featured?: boolean;
|
|
}
|
|
|
|
export interface Translations {
|
|
nav: {
|
|
home: string;
|
|
blog: string;
|
|
about: string;
|
|
categories: string;
|
|
};
|
|
home: {
|
|
hero: {
|
|
title: string;
|
|
subtitle: string;
|
|
cta: string;
|
|
};
|
|
featured: string;
|
|
recent: string;
|
|
newsletter: {
|
|
title: string;
|
|
desc: string;
|
|
placeholder: string;
|
|
button: string;
|
|
};
|
|
};
|
|
blog: {
|
|
categories: {
|
|
all: string;
|
|
ai: string;
|
|
code: string;
|
|
startups: string;
|
|
tools: string;
|
|
};
|
|
readMore: string;
|
|
related: string;
|
|
back: string;
|
|
toc: string;
|
|
};
|
|
footer: {
|
|
about: string;
|
|
connect: string;
|
|
rights: string;
|
|
terms: string;
|
|
ethics: string;
|
|
newsletter: string;
|
|
rss: string;
|
|
contact: string;
|
|
privacy: string;
|
|
};
|
|
legal: {
|
|
privacy: { title: string; content: string; };
|
|
terms: { title: string; content: string; };
|
|
ethics: { title: string; content: string; };
|
|
};
|
|
contact: {
|
|
title: string;
|
|
subtitle: string;
|
|
info: {
|
|
title: string;
|
|
email: string;
|
|
location: string;
|
|
};
|
|
status: {
|
|
title: string;
|
|
nodes: string;
|
|
uptime: string;
|
|
latency: string;
|
|
};
|
|
form: {
|
|
name: string;
|
|
email: string;
|
|
subject: string;
|
|
message: string;
|
|
submit: string;
|
|
sending: string;
|
|
success: string;
|
|
};
|
|
};
|
|
}
|
|
|
|
export interface SiteContent {
|
|
posts: Record<Language, Post[]>;
|
|
ui: Record<Language, Translations>;
|
|
}
|