login register comlated
This commit is contained in:
@@ -174,7 +174,9 @@
|
||||
"sending": "Sending…",
|
||||
"sendCode": "Login",
|
||||
"registerPrompt": "Don't have an account?",
|
||||
"registerLink": "Register"
|
||||
"registerLink": "Register",
|
||||
"passwordLabel": "Password",
|
||||
"passwordPlaceholder": "Must be at least 8 characters"
|
||||
},
|
||||
"Register": {
|
||||
"successTitle": "You're registered",
|
||||
@@ -189,7 +191,9 @@
|
||||
"surnamePlaceholder": "Karimov",
|
||||
"terms": "I agree to the Terms of Service and Privacy Policy",
|
||||
"submitButton": "Create account",
|
||||
"loginPrompt": "Already have an account?"
|
||||
"loginPrompt": "Already have an account?",
|
||||
"passwordLabel": "Password",
|
||||
"passwordPlaceholder": "Must be at least 8 characters"
|
||||
}
|
||||
},
|
||||
"Payment": {
|
||||
|
||||
@@ -174,7 +174,9 @@
|
||||
"sending": "Отправка…",
|
||||
"sendCode": "Вход",
|
||||
"registerPrompt": "Нет аккаунта?",
|
||||
"registerLink": "Зарегистрироваться"
|
||||
"registerLink": "Зарегистрироваться",
|
||||
"passwordLabel": "Пароль",
|
||||
"passwordPlaceholder": "8 символов или более"
|
||||
},
|
||||
"Register": {
|
||||
"successTitle": "Вы зарегистрированы",
|
||||
@@ -189,7 +191,9 @@
|
||||
"surnamePlaceholder": "Каримов",
|
||||
"terms": "Я согласен с Условиями обслуживания и Политикой конфиденциальности",
|
||||
"submitButton": "Создать аккаунт",
|
||||
"loginPrompt": "Уже есть аккаунт?"
|
||||
"loginPrompt": "Уже есть аккаунт?",
|
||||
"passwordLabel": "Пароль",
|
||||
"passwordPlaceholder": "8 символов или более"
|
||||
}
|
||||
},
|
||||
"Payment": {
|
||||
|
||||
@@ -178,6 +178,8 @@ declare const messages: {
|
||||
sendCode: 'Kirish';
|
||||
registerPrompt: "Hisobingiz yo'qmi?";
|
||||
registerLink: "Ro'yxatdan o'tish";
|
||||
passwordLabel: 'Parol';
|
||||
passwordPlaceholder: "8 ta belgidan iborat bo'lsin";
|
||||
};
|
||||
Register: {
|
||||
successTitle: "Siz ro'yxatdan o'tdingiz";
|
||||
@@ -193,6 +195,8 @@ declare const messages: {
|
||||
terms: "Men Xizmat ko'rsatish shartlari va Maxfiylik siyosatiga roziman";
|
||||
submitButton: 'Hisob yaratish';
|
||||
loginPrompt: 'Hisobingiz bormi?';
|
||||
passwordLabel: 'Parol';
|
||||
passwordPlaceholder: "8 ta belgidan iborat bo'lsin";
|
||||
};
|
||||
};
|
||||
Payment: {
|
||||
|
||||
@@ -174,7 +174,9 @@
|
||||
"sending": "Yuborilmoqda…",
|
||||
"sendCode": "Kirish",
|
||||
"registerPrompt": "Hisobingiz yo'qmi?",
|
||||
"registerLink": "Ro'yxatdan o'tish"
|
||||
"registerLink": "Ro'yxatdan o'tish",
|
||||
"passwordLabel": "Parol",
|
||||
"passwordPlaceholder": "8 ta belgidan iborat bo'lsin"
|
||||
},
|
||||
"Register": {
|
||||
"successTitle": "Siz ro'yxatdan o'tdingiz",
|
||||
@@ -189,7 +191,9 @@
|
||||
"surnamePlaceholder": "Karimov",
|
||||
"terms": "Men Xizmat ko'rsatish shartlari va Maxfiylik siyosatiga roziman",
|
||||
"submitButton": "Hisob yaratish",
|
||||
"loginPrompt": "Hisobingiz bormi?"
|
||||
"loginPrompt": "Hisobingiz bormi?",
|
||||
"passwordLabel": "Parol",
|
||||
"passwordPlaceholder": "8 ta belgidan iborat bo'lsin"
|
||||
}
|
||||
},
|
||||
"Payment": {
|
||||
|
||||
80
src/shared/config/jsonId.tsx
Normal file
80
src/shared/config/jsonId.tsx
Normal file
@@ -0,0 +1,80 @@
|
||||
/**
|
||||
* JsonLd — injects structured data (schema.org) into <head>.
|
||||
* Helps Google understand your site type, sitelinks searchbox, etc.
|
||||
*
|
||||
* Usage in layout.tsx (inside <head> or anywhere in the tree):
|
||||
* import { JsonLd } from '@/shared/components/JsonLd';
|
||||
* ...
|
||||
* <JsonLd locale={locale} />
|
||||
*/
|
||||
|
||||
const SITE_URL = process.env.NEXT_PUBLIC_SITE_URL ?? 'https://antiplagiat.uz';
|
||||
|
||||
interface Props {
|
||||
locale: string;
|
||||
}
|
||||
|
||||
export function JsonLd({ locale }: Props) {
|
||||
const schema = {
|
||||
'@context': 'https://schema.org',
|
||||
'@graph': [
|
||||
// ── Organization ──────────────────────────────────────────────────────
|
||||
{
|
||||
'@type': 'Organization',
|
||||
'@id': `${SITE_URL}/#organization`,
|
||||
name: 'AntiPlagiat.uz',
|
||||
url: SITE_URL,
|
||||
logo: {
|
||||
'@type': 'ImageObject',
|
||||
url: `${SITE_URL}/icons/icon-512.png`,
|
||||
width: 512,
|
||||
height: 512,
|
||||
},
|
||||
sameAs: [
|
||||
// Add your social profile URLs here
|
||||
// 'https://t.me/antiplagiatuz',
|
||||
],
|
||||
contactPoint: {
|
||||
'@type': 'ContactPoint',
|
||||
contactType: 'customer support',
|
||||
availableLanguage: ['Uzbek', 'Russian', 'English'],
|
||||
},
|
||||
},
|
||||
|
||||
// ── WebSite (enables Google Sitelinks Searchbox) ──────────────────────
|
||||
{
|
||||
'@type': 'WebSite',
|
||||
'@id': `${SITE_URL}/#website`,
|
||||
url: SITE_URL,
|
||||
name: 'AntiPlagiat.uz',
|
||||
publisher: { '@id': `${SITE_URL}/#organization` },
|
||||
inLanguage: [locale],
|
||||
potentialAction: {
|
||||
'@type': 'SearchAction',
|
||||
target: {
|
||||
'@type': 'EntryPoint',
|
||||
urlTemplate: `${SITE_URL}/search?q={search_term_string}`,
|
||||
},
|
||||
'query-input': 'required name=search_term_string',
|
||||
},
|
||||
},
|
||||
|
||||
// ── WebPage ───────────────────────────────────────────────────────────
|
||||
{
|
||||
'@type': 'WebPage',
|
||||
'@id': `${SITE_URL}/${locale}/#webpage`,
|
||||
url: `${SITE_URL}/${locale}`,
|
||||
isPartOf: { '@id': `${SITE_URL}/#website` },
|
||||
about: { '@id': `${SITE_URL}/#organization` },
|
||||
inLanguage: locale,
|
||||
},
|
||||
],
|
||||
};
|
||||
|
||||
return (
|
||||
<script
|
||||
type="application/ld+json"
|
||||
dangerouslySetInnerHTML={{ __html: JSON.stringify(schema) }}
|
||||
/>
|
||||
);
|
||||
}
|
||||
76
src/shared/config/seo.config.ts
Normal file
76
src/shared/config/seo.config.ts
Normal file
@@ -0,0 +1,76 @@
|
||||
// ─── SEO Metadata per locale ───────────────────────────────────────────────────
|
||||
// Used by generateMetadata() in layout.tsx
|
||||
|
||||
export type SupportedLocale = 'uz' | 'ru' | 'en';
|
||||
|
||||
interface LocaleSeoData {
|
||||
siteName: string;
|
||||
title: string;
|
||||
titleTemplate: string;
|
||||
description: string;
|
||||
keywords: string[];
|
||||
ogTitle: string;
|
||||
ogDescription: string;
|
||||
}
|
||||
|
||||
export const SEO_DATA: Record<SupportedLocale, LocaleSeoData> = {
|
||||
uz: {
|
||||
siteName: 'AntiPlagiat.uz',
|
||||
title: 'AntiPlagiat.uz — Plagiat tekshiruvi onlayn',
|
||||
titleTemplate: '%s | AntiPlagiat.uz',
|
||||
description:
|
||||
"Dissertatsiya, kurs ishi va ilmiy maqolalaringizni tezkor va ishonchli plagiat tekshiruvidan o'tkazing. Natija daqiqalar ichida tayyor.",
|
||||
keywords: [
|
||||
'plagiat tekshiruvi',
|
||||
'antiplagiat',
|
||||
'dissertatsiya tekshiruvi',
|
||||
'kurs ishi plagiat',
|
||||
'ilmiy maqola tekshiruvi',
|
||||
'onlayn plagiat',
|
||||
"o'zbekiston antiplagiat",
|
||||
],
|
||||
ogTitle: 'AntiPlagiat.uz — Tezkor plagiat tekshiruvi',
|
||||
ogDescription:
|
||||
'Ishingizni bir necha daqiqada plagiatga tekshiring. Sertifikat bilan natija oling.',
|
||||
},
|
||||
|
||||
ru: {
|
||||
siteName: 'AntiPlagiat.uz',
|
||||
title: 'AntiPlagiat.uz — Проверка на плагиат онлайн',
|
||||
titleTemplate: '%s | AntiPlagiat.uz',
|
||||
description:
|
||||
'Быстрая и надёжная проверка диссертаций, курсовых работ и научных статей на плагиат. Результат готов за несколько минут.',
|
||||
keywords: [
|
||||
'проверка на плагиат',
|
||||
'антиплагиат',
|
||||
'проверка диссертации',
|
||||
'курсовая плагиат',
|
||||
'проверка научной статьи',
|
||||
'онлайн антиплагиат',
|
||||
'антиплагиат узбекистан',
|
||||
],
|
||||
ogTitle: 'AntiPlagiat.uz — Быстрая проверка на плагиат',
|
||||
ogDescription:
|
||||
'Проверьте вашу работу на плагиат за несколько минут. Получите результат с сертификатом.',
|
||||
},
|
||||
|
||||
en: {
|
||||
siteName: 'AntiPlagiat.uz',
|
||||
title: 'AntiPlagiat.uz — Online Plagiarism Checker',
|
||||
titleTemplate: '%s | AntiPlagiat.uz',
|
||||
description:
|
||||
'Fast and reliable plagiarism detection for dissertations, coursework, and research papers. Get your results in minutes.',
|
||||
keywords: [
|
||||
'plagiarism checker',
|
||||
'anti-plagiarism',
|
||||
'dissertation plagiarism check',
|
||||
'coursework plagiarism',
|
||||
'research paper checker',
|
||||
'online plagiarism detection',
|
||||
'uzbekistan plagiarism',
|
||||
],
|
||||
ogTitle: 'AntiPlagiat.uz — Fast Plagiarism Checker',
|
||||
ogDescription:
|
||||
'Check your work for plagiarism in minutes. Receive your result with an official certificate.',
|
||||
},
|
||||
};
|
||||
Reference in New Issue
Block a user