home page about and 4 card section language updated

This commit is contained in:
Alaguraj0361 2025-08-18 14:18:39 +05:30
parent 1494e376c2
commit 47d20d5f26
9 changed files with 111 additions and 78 deletions

View File

@ -38,9 +38,9 @@ const Services = [
{ {
Id: '1', Id: '1',
sImgS: sImgS1, sImgS: sImgS1,
sTitle: 'Family Immigration', sTitle: 'familyImmigration.sTitle',
slug: 'family-immigration', slug: 'family-immigration',
description: 'Reunite with loved ones via green cards, fiancé visas, and petitions from filing to processing.', description: 'familyImmigration.description',
des3: 'One way to categorize the activities is in terms of the professionals area of expertise such as competitive analysis, corporate strategy the activities', des3: 'One way to categorize the activities is in terms of the professionals area of expertise such as competitive analysis, corporate strategy the activities',
iconImg: iconImg1, iconImg: iconImg1,
ssImg1: sSingleimg1, ssImg1: sSingleimg1,
@ -49,9 +49,9 @@ const Services = [
{ {
Id: '2', Id: '2',
sImgS: sImgS2, sImgS: sImgS2,
sTitle: 'Employment Visas', sTitle: 'employmentVisas.sTitle',
slug: 'employment-visas', slug: 'employment-visas',
description: 'Build your U.S. career with H-1B, L-1, O-1, EB visas, expert support for professionals, investors.', description: 'employmentVisas.description',
des2: 'Lacus, etiam sed est eu tempus need Temer diam congue laoret .', des2: 'Lacus, etiam sed est eu tempus need Temer diam congue laoret .',
des3: 'One way to categorize the activities is in terms of the professionals area of expertise such as competitive analysis, corporate strategy the activities', des3: 'One way to categorize the activities is in terms of the professionals area of expertise such as competitive analysis, corporate strategy the activities',
iconImg: iconImg2, iconImg: iconImg2,
@ -61,9 +61,9 @@ const Services = [
{ {
Id: '3', Id: '3',
sImgS: sImgS3, sImgS: sImgS3,
sTitle: 'Deportation Defense', sTitle: 'deportationDefense.sTitle',
slug: 'deportation-defense', slug: 'deportation-defense',
description: 'Protect your stay with removal cancellation, asylum claims, and strong representation.', description: 'deportationDefense.description',
des2: 'Lacus, etiam sed est eu tempus need Temer diam congue laoret .', des2: 'Lacus, etiam sed est eu tempus need Temer diam congue laoret .',
des3: 'One way to categorize the activities is in terms of the professionals area of expertise such as competitive analysis, corporate strategy the activities', des3: 'One way to categorize the activities is in terms of the professionals area of expertise such as competitive analysis, corporate strategy the activities',
iconImg: iconImg3, iconImg: iconImg3,
@ -73,9 +73,9 @@ const Services = [
{ {
Id: '4', Id: '4',
sImgS: sImgS4, sImgS: sImgS4,
sTitle: 'Citizenship Services', sTitle: 'citizenship.sTitle',
slug: 'citizenship-services', slug: 'citizenship-services',
description: 'Achieve citizenship with naturalization help, test, and guidance on residency requirements.', description: 'citizenship.description',
des2: 'Lacus, etiam sed est eu tempus need Temer diam congue laoret .', des2: 'Lacus, etiam sed est eu tempus need Temer diam congue laoret .',
des3: 'One way to categorize the activities is in terms of the professionals area of expertise such as competitive analysis, corporate strategy the activities', des3: 'One way to categorize the activities is in terms of the professionals area of expertise such as competitive analysis, corporate strategy the activities',
iconImg: iconImg4, iconImg: iconImg4,

View File

@ -6,7 +6,7 @@ import Link from 'next/link'
import SectionTitle from "../SectionTitle/SectionTitle"; import SectionTitle from "../SectionTitle/SectionTitle";
import Services from '../../api/service' import Services from '../../api/service'
import Image from "next/image"; import Image from "next/image";
import { useTranslation } from 'next-i18next';
const settings = { const settings = {
dots: true, dots: true,
@ -65,6 +65,8 @@ const ClickHandler = () => {
} }
const Features = (props) => { const Features = (props) => {
const { t } = useTranslation('home4Card');
return ( return (
<section className={`wpo-service-section section-padding ${props.sClass}`}> <section className={`wpo-service-section section-padding ${props.sClass}`}>
<div className="container"> <div className="container">
@ -76,20 +78,20 @@ const Features = (props) => {
<div className="wpo-service-item"> <div className="wpo-service-item">
<div className="wpo-service-text"> <div className="wpo-service-text">
<div className="service-icon"> <div className="service-icon">
<Image <Image
src={service.iconImg} src={service.iconImg}
alt={service.sTitle} alt={t(service.sTitle)}
width={50} width={50}
height={50} height={50}
/> />
</div> </div>
{/* <h2><Link onClick={ClickHandler} href={'/service-single/[slug]'} as={`/service-single/${service.slug}`}>{service.sTitle}</Link></h2> */} {/* <h2><Link onClick={ClickHandler} href={'/service-single/[slug]'} as={`/service-single/${service.slug}`}>{service.sTitle}</Link></h2> */}
<h2 className="text-white">{service.sTitle}</h2> <h2 className="text-white">{t(service.sTitle)}</h2>
<p> <p>
{service.description.length > 100 {t(service.description).length > 100
? service.description.slice(0, 100) + "..." ? t(service.description).slice(0, 100) + "..."
: service.description} : t(service.description)}
</p> </p>
</div> </div>
</div> </div>

View File

@ -1,9 +1,16 @@
import React from 'react' import React from 'react';
import sign from '/public/images/signeture.png' import sign from '/public/images/signeture.png';
import Image from 'next/image'; import Image from 'next/image';
import Link from 'next/link'; import Link from 'next/link';
import { useTranslation } from 'next-i18next';
const About = (props) => { const About = (props) => {
const { t } = useTranslation('(home)/homeAbout');
// Ensure paragraphs is an array to avoid runtime errors
const paragraphs = t('paragraphs', { returnObjects: true });
const paragraphList = Array.isArray(paragraphs) ? paragraphs : [];
return ( return (
<section className={`wpo-about-section section-padding ${props.abClass}`}> <section className={`wpo-about-section section-padding ${props.abClass}`}>
<div className="container"> <div className="container">
@ -11,44 +18,7 @@ const About = (props) => {
<div className="row align-items-center"> <div className="row align-items-center">
<div className="col-lg-6 col-md-12 col-12 order-2 order-lg-1"> <div className="col-lg-6 col-md-12 col-12 order-2 order-lg-1">
<div className="wpo-about-img"> <div className="wpo-about-img">
<Image src={props.introImg} alt="" /> <Image src={props.introImg} alt="About image" />
{/* <div className="wpo-about-img-text">
<h4>1998</h4>
<div className="rotate-text">
<span>W</span>
<span>e</span>
<span>A</span>
<span>r</span>
<span>e</span>
<span>W</span>
<span>o</span>
<span>r</span>
<span>k</span>
<span>i</span>
<span>n</span>
<span>g</span>
<span>F</span>
<span>o</span>
<span>r</span>
<span>Y</span>
<span>o</span>
<span>u</span>
<span>S</span>
<span>i</span>
<span>n</span>
<span>c</span>
<span>e</span>
</div>
<div className="dots">
<span></span>
<span></span>
<span></span>
</div>
<div className="border-shape-1"></div>
<div className="border-shape-2"></div>
<div className="border-shape-3"></div>
</div> */}
<div className="about-shape"> <div className="about-shape">
<div className="shape-1"></div> <div className="shape-1"></div>
<div className="shape-2"></div> <div className="shape-2"></div>
@ -57,22 +27,25 @@ const About = (props) => {
</div> </div>
</div> </div>
</div> </div>
<div className="col-lg-6 col-md-12 col-12 order-1 order-lg-2 mb-5"> <div className="col-lg-6 col-md-12 col-12 order-1 order-lg-2 mb-5">
<div className="wpo-about-text"> <div className="wpo-about-text">
<div className="wpo-section-title"> <div className="wpo-section-title">
<span>Expert Immigration Guidance</span> <span>{t('expertGuidance')}</span>
<h2>We Turn Immigration Challenges Into Success Stories</h2> <h2>{t('mainTitle')}</h2>
</div> </div>
<p>Every immigration case tells a unique story of hope, determination, and the pursuit of the American dream. At Janahan law, we understand that behind every petition, application, and legal document is a real person with real dreams.</p>
<p>Our comprehensive approach combines decades of legal expertise with genuine care for our clients' futures. Whether you're seeking to reunite with family, advance your career, or find safety and protection in America, we provide the skilled advocacy and personal attention your case deserves. {paragraphList.map((para, index) => (
</p> <p key={index}>{para}</p>
<p> ))}
From the initial consultation through the final approval, we stand with you every step of the way, ensuring no detail is overlooked and no opportunity is missed.
</p>
<div className="quote"> <div className="quote">
<p>We believe every family deserves the chance to stay together, every professional deserves to pursue their career, and every person deserves safety and opportunity.</p> <p>{t('quote')}</p>
</div> </div>
{/* <div className="wpo-about-left-info">
{/* Optional signature block */}
{/*
<div className="wpo-about-left-info">
<div className="wpo-about-left-inner"> <div className="wpo-about-left-inner">
<div className="wpo-about-left-text"> <div className="wpo-about-left-text">
<h5>Robert Willum</h5> <h5>Robert Willum</h5>
@ -80,14 +53,14 @@ const About = (props) => {
</div> </div>
</div> </div>
<div className="signeture"> <div className="signeture">
<Image src={sign} alt="" /> <Image src={sign} alt="Signature" />
</div> </div>
</div> */} </div>
*/}
<div className="close-form mt-5"> <div className="close-form mt-5">
<Link className="theme-btn" href="/about"><span className="text">Know More</span> <Link className="theme-btn" href="/about">
{/* <span className="mobile"> <span className="text">{t('buttonText')}</span>
<i className="fi flaticon-charity"></i>
</span> */}
</Link> </Link>
</div> </div>
</div> </div>
@ -96,7 +69,7 @@ const About = (props) => {
</div> </div>
</div> </div>
</section> </section>
) );
} };
export default About; export default About;

View File

@ -4,7 +4,7 @@ module.exports = {
locales: ['en', 'es'], locales: ['en', 'es'],
localeDetection: false, localeDetection: false,
}, },
ns: ['common', 'menu', 'homeHero'], ns: ['common', 'menu', 'homeHero', 'home4Card'],
defaultNS: 'common', defaultNS: 'common',
// localePath: './public/locales', // localePath: './public/locales',
}; };
@ -18,5 +18,5 @@ module.exports = {
// Vidhya // Vidhya
// Alagu Raj // Alagu Raj - 'home4card', '(home)/homeAbout'

View File

@ -40,7 +40,7 @@ export default HomePage;
export async function getStaticProps({ locale }) { export async function getStaticProps({ locale }) {
return { return {
props: { props: {
...(await serverSideTranslations(locale, ['common', 'menu', 'homeHero'])), // Add 'home', 'footer', etc. if needed ...(await serverSideTranslations(locale, ['common', 'menu', 'homeHero', 'home4Card', '(home)/homeAbout'])), // Add 'home', 'footer', etc. if needed
}, },
}; };
} }

View File

@ -0,0 +1,11 @@
{
"expertGuidance": "Expert Immigration Guidance",
"mainTitle": "We Turn Immigration Challenges Into Success Stories",
"paragraphs": [
"Every immigration case tells a unique story of hope, determination, and the pursuit of the American dream. At Janahan law, we understand that behind every petition, application, and legal document is a real person with real dreams.",
"Our comprehensive approach combines decades of legal expertise with genuine care for our clients' futures. Whether you're seeking to reunite with family, advance your career, or find safety and protection in America, we provide the skilled advocacy and personal attention your case deserves.",
"From the initial consultation through the final approval, we stand with you every step of the way, ensuring no detail is overlooked and no opportunity is missed."
],
"quote": "“We believe every family deserves the chance to stay together, every professional deserves to pursue their career, and every person deserves safety and opportunity.”",
"buttonText": "Know More"
}

View File

@ -0,0 +1,18 @@
{
"familyImmigration": {
"sTitle": "Family Immigration",
"description": "Reunite with loved ones via green cards, fiancé visas, and petitions from filing to processing."
},
"employmentVisas": {
"sTitle": "Employment Visas",
"description": "Build your U.S. career with H-1B, L-1, O-1, EB visas, expert support for professionals, investors."
},
"deportationDefense": {
"sTitle": "Deportation Defense",
"description": "Protect your stay with removal cancellation, asylum claims, and strong representation."
},
"citizenship": {
"sTitle": "Citizenship Services",
"description": "Achieve citizenship with naturalization help, test, and guidance on residency requirements."
}
}

View File

@ -0,0 +1,11 @@
{
"expertGuidance": "Guía Experta en Inmigración",
"mainTitle": "Convertimos los desafíos de inmigración en historias de éxito",
"paragraphs": [
"Cada caso de inmigración cuenta una historia única de esperanza, determinación y la búsqueda del sueño americano. En Janahan law, entendemos que detrás de cada petición, solicitud y documento legal hay una persona real con sueños reales.",
"Nuestro enfoque integral combina décadas de experiencia legal con un cuidado genuino por el futuro de nuestros clientes. Ya sea que busque reunirse con su familia, avanzar en su carrera o encontrar seguridad y protección en Estados Unidos, ofrecemos la defensa experta y la atención personal que su caso merece.",
"Desde la consulta inicial hasta la aprobación final, estamos con usted en cada paso del camino, asegurándonos de que ningún detalle se pase por alto y ninguna oportunidad se pierda."
],
"quote": "“Creemos que cada familia merece la oportunidad de permanecer unida, cada profesional merece perseguir su carrera y cada persona merece seguridad y oportunidad.”",
"buttonText": "Saber más"
}

View File

@ -0,0 +1,18 @@
{
"familyImmigration": {
"sTitle": "Inmigración Familiar",
"description": "Reúnase con sus seres queridos mediante tarjetas verdes, visas de prometido y peticiones."
},
"employmentVisas": {
"sTitle": "Visas de Trabajo",
"description": "Desarrolle su carrera en EE.UU. con visas H-1B, L-1, O-1, EB y apoyo experto."
},
"deportationDefense": {
"sTitle": "Defensa Contra Deportación",
"description": "Proteja su estadía con cancelación de remoción, solicitudes de asilo y representación legal."
},
"citizenship": {
"sTitle": "Servicios de Ciudadanía",
"description": "Logre la ciudadanía con ayuda en naturalización, pruebas y requisitos de residencia."
}
}