From 47d20d5f26ef30bc630bb69e0e04bfafca2021a4 Mon Sep 17 00:00:00 2001 From: Alaguraj0361 Date: Mon, 18 Aug 2025 14:18:39 +0530 Subject: [PATCH 1/3] home page about and 4 card section language updated --- api/service.js | 16 ++--- components/Features/Features.js | 18 ++--- components/about/about.js | 91 +++++++++---------------- next-i18next.config.js | 4 +- pages/index.js | 2 +- public/locales/en/(home)/homeAbout.json | 11 +++ public/locales/en/home4Card.json | 18 +++++ public/locales/es/(home)/homeAbout.json | 11 +++ public/locales/es/home4Card.json | 18 +++++ 9 files changed, 111 insertions(+), 78 deletions(-) create mode 100644 public/locales/en/(home)/homeAbout.json create mode 100644 public/locales/en/home4Card.json create mode 100644 public/locales/es/(home)/homeAbout.json create mode 100644 public/locales/es/home4Card.json diff --git a/api/service.js b/api/service.js index 212a872..fe5ad63 100644 --- a/api/service.js +++ b/api/service.js @@ -38,9 +38,9 @@ const Services = [ { Id: '1', sImgS: sImgS1, - sTitle: 'Family Immigration', + sTitle: 'familyImmigration.sTitle', 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 professional’s area of expertise such as competitive analysis, corporate strategy the activities', iconImg: iconImg1, ssImg1: sSingleimg1, @@ -49,9 +49,9 @@ const Services = [ { Id: '2', sImgS: sImgS2, - sTitle: 'Employment Visas', + sTitle: 'employmentVisas.sTitle', 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 .', des3: 'One way to categorize the activities is in terms of the professional’s area of expertise such as competitive analysis, corporate strategy the activities', iconImg: iconImg2, @@ -61,9 +61,9 @@ const Services = [ { Id: '3', sImgS: sImgS3, - sTitle: 'Deportation Defense', + sTitle: 'deportationDefense.sTitle', 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 .', des3: 'One way to categorize the activities is in terms of the professional’s area of expertise such as competitive analysis, corporate strategy the activities', iconImg: iconImg3, @@ -73,9 +73,9 @@ const Services = [ { Id: '4', sImgS: sImgS4, - sTitle: 'Citizenship Services', + sTitle: 'citizenship.sTitle', 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 .', des3: 'One way to categorize the activities is in terms of the professional’s area of expertise such as competitive analysis, corporate strategy the activities', iconImg: iconImg4, diff --git a/components/Features/Features.js b/components/Features/Features.js index d4c10dd..dcdddf2 100644 --- a/components/Features/Features.js +++ b/components/Features/Features.js @@ -6,7 +6,7 @@ import Link from 'next/link' import SectionTitle from "../SectionTitle/SectionTitle"; import Services from '../../api/service' import Image from "next/image"; - +import { useTranslation } from 'next-i18next'; const settings = { dots: true, @@ -65,6 +65,8 @@ const ClickHandler = () => { } const Features = (props) => { + const { t } = useTranslation('home4Card'); + return (
@@ -75,21 +77,21 @@ const Features = (props) => {
- -
+ +
{service.sTitle}
{/*

{service.sTitle}

*/} -

{service.sTitle}

+

{t(service.sTitle)}

- {service.description.length > 100 - ? service.description.slice(0, 100) + "..." - : service.description} + {t(service.description).length > 100 + ? t(service.description).slice(0, 100) + "..." + : t(service.description)}

diff --git a/components/about/about.js b/components/about/about.js index af72336..cd41c3b 100644 --- a/components/about/about.js +++ b/components/about/about.js @@ -1,9 +1,16 @@ -import React from 'react' -import sign from '/public/images/signeture.png' +import React from 'react'; +import sign from '/public/images/signeture.png'; import Image from 'next/image'; import Link from 'next/link'; +import { useTranslation } from 'next-i18next'; 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 (
@@ -11,44 +18,7 @@ const About = (props) => {
- - {/*
-

1998

- -
- W - e - A - r - e - W - o - r - k - i - n - g - F - o - r - Y - o - u - S - i - n - c - e -
-
- - - -
-
-
-
-
*/} + About image
@@ -57,22 +27,25 @@ const About = (props) => {
+
- Expert Immigration Guidance -

We Turn Immigration Challenges Into Success Stories

+ {t('expertGuidance')} +

{t('mainTitle')}

-

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. -

+ + {paragraphList.map((para, index) => ( +

{para}

+ ))} +
-

“We believe every family deserves the chance to stay together, every professional deserves to pursue their career, and every person deserves safety and opportunity.”

+

{t('quote')}

- {/*
+ + {/* Optional signature block */} + {/* +
Robert Willum
@@ -80,14 +53,14 @@ const About = (props) => {
- + Signature
-
*/} +
+ */} +
- Know More - {/* - - */} + + {t('buttonText')}
@@ -96,7 +69,7 @@ const About = (props) => {
- ) -} + ); +}; -export default About; \ No newline at end of file +export default About; diff --git a/next-i18next.config.js b/next-i18next.config.js index 34240d4..a689538 100644 --- a/next-i18next.config.js +++ b/next-i18next.config.js @@ -4,7 +4,7 @@ module.exports = { locales: ['en', 'es'], localeDetection: false, }, - ns: ['common', 'menu', 'homeHero'], + ns: ['common', 'menu', 'homeHero', 'home4Card'], defaultNS: 'common', // localePath: './public/locales', }; @@ -18,5 +18,5 @@ module.exports = { // Vidhya -// Alagu Raj +// Alagu Raj - 'home4card', '(home)/homeAbout' diff --git a/pages/index.js b/pages/index.js index 2820601..48ab0fa 100644 --- a/pages/index.js +++ b/pages/index.js @@ -40,7 +40,7 @@ export default HomePage; export async function getStaticProps({ locale }) { return { 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 }, }; } diff --git a/public/locales/en/(home)/homeAbout.json b/public/locales/en/(home)/homeAbout.json new file mode 100644 index 0000000..6c2921d --- /dev/null +++ b/public/locales/en/(home)/homeAbout.json @@ -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" +} diff --git a/public/locales/en/home4Card.json b/public/locales/en/home4Card.json new file mode 100644 index 0000000..d49260f --- /dev/null +++ b/public/locales/en/home4Card.json @@ -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." + } +} \ No newline at end of file diff --git a/public/locales/es/(home)/homeAbout.json b/public/locales/es/(home)/homeAbout.json new file mode 100644 index 0000000..a58cf10 --- /dev/null +++ b/public/locales/es/(home)/homeAbout.json @@ -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" +} \ No newline at end of file diff --git a/public/locales/es/home4Card.json b/public/locales/es/home4Card.json new file mode 100644 index 0000000..b7b6529 --- /dev/null +++ b/public/locales/es/home4Card.json @@ -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." + } +} \ No newline at end of file From bee1d919b698cc97806120603c4167c4674c3b4c Mon Sep 17 00:00:00 2001 From: vidhubk Date: Mon, 18 Aug 2025 15:11:56 +0530 Subject: [PATCH 2/3] our-approach page --- components/our-approach/OurApproachSection.js | 7 ++- next-i18next.config.js | 4 +- package-lock.json | 2 +- pages/our-approach/index.js | 11 +++++ public/locales/en/ourApproach.json | 47 +++++++++++++++++++ public/locales/es/ourApproach.json | 46 ++++++++++++++++++ 6 files changed, 113 insertions(+), 4 deletions(-) create mode 100644 public/locales/en/ourApproach.json create mode 100644 public/locales/es/ourApproach.json diff --git a/components/our-approach/OurApproachSection.js b/components/our-approach/OurApproachSection.js index 8d0d2d8..81bb2aa 100644 --- a/components/our-approach/OurApproachSection.js +++ b/components/our-approach/OurApproachSection.js @@ -1,11 +1,13 @@ import React from 'react'; import Image from 'next/image'; -import Ourapproach from '../../api/our-approach'; +import { useTranslation } from 'next-i18next' +// import Ourapproach from '../../api/our-approach'; const OurApproachSection = () => { + const { t } = useTranslation('ourApproach') return ( <> - {Ourapproach.map((item, index) => { + {ourApproach.map((item, index) => { const isEven = index % 2 !== 0; const sectionStyle = { backgroundColor: index % 2 === 0 ? '#fbfbfbff' : '#e8ebf5', @@ -69,3 +71,4 @@ const OurApproachSection = () => { }; export default OurApproachSection; + diff --git a/next-i18next.config.js b/next-i18next.config.js index 34240d4..6e89ef0 100644 --- a/next-i18next.config.js +++ b/next-i18next.config.js @@ -1,3 +1,5 @@ +const { default: OurApproach } = require("./pages/our-approach"); + module.exports = { i18n: { defaultLocale: 'es', @@ -16,7 +18,7 @@ module.exports = { // Vidhya - +OurApproach // Alagu Raj diff --git a/package-lock.json b/package-lock.json index 8c7bc0f..28883be 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,5 +1,5 @@ { - "name": "politian", + "name": "janahan-law", "lockfileVersion": 2, "requires": true, "packages": { diff --git a/pages/our-approach/index.js b/pages/our-approach/index.js index 4d89655..153bcc5 100644 --- a/pages/our-approach/index.js +++ b/pages/our-approach/index.js @@ -6,6 +6,7 @@ import approach from '/public/images/about/our-approach-banner.webp'; import Footer from '../../components/footer/Footer'; import abimg from '/public/images/about-s2.jpg' import OurApproachSection from '../../components/our-approach/OurApproachSection'; +import { serverSideTranslations } from 'next-i18next/serverSideTranslations'; const OurApproach = () => { return ( @@ -19,3 +20,13 @@ const OurApproach = () => { ) }; export default OurApproach; + +// ✅ This enables translations (menu, and more if you add other namespaces) +export async function getStaticProps({ locale }) { + return { + props: { + ...(await serverSideTranslations(locale, ['common', 'menu'])), // Add 'home', 'footer', etc. if needed + }, + }; +} + diff --git a/public/locales/en/ourApproach.json b/public/locales/en/ourApproach.json new file mode 100644 index 0000000..a98f54a --- /dev/null +++ b/public/locales/en/ourApproach.json @@ -0,0 +1,47 @@ +{ + "ourApproach": [ + { + "id": 1, + "authorTitle": "STRATEGIC FOUNDATION", + "title": "Comprehensive Case Analysis from Day One", + "para": "Every successful immigration case begins with thorough analysis and strategic planning. We start each client relationship with comprehensive consultation to understand not only your immediate immigration needs but also your long-term goals in America. Our experienced attorneys examine all available pathways, identify potential challenges, and develop customized strategies that maximize your chances of success while minimizing delays and complications. This foundational approach ensures that every decision we make together serves your broader objectives of building a secure future in the United States.", + "screens": "/images/our-approach/1.webp" + }, + { + "id": 2, + "authorTitle": "MODERN PRACTICE", + "title": "Leveraging Technology for Better Outcomes", + "para": "Immigration law practice has evolved dramatically with technological advancement, and we've embraced these changes to better serve our clients. Our firm utilizes cutting-edge case management systems, automated compliance monitoring, and secure digital communication platforms that keep you informed and engaged throughout your case. We employ advanced research tools to stay current with policy changes, use predictive analytics to optimize filing strategies, and provide clients with 24/7 access to case updates through our secure client portal. Technology enhances our ability to deliver precise, efficient, and responsive legal services.", + "screens": "/images/our-approach/2.webp" + }, + { + "id": 3, + "authorTitle": "TEAM EXCELLENCE", + "title": "Collaborative Expertise Across All Practice Areas", + "para": "Complex immigration cases require diverse expertise and collaborative approach. Our multidisciplinary team includes attorneys specializing in family immigration, employment visas, deportation defense, and humanitarian protection, ensuring that every aspect of your case receives expert attention. We combine decades of collective experience with fresh perspectives, innovative thinking, and unwavering dedication to client success. Regular team consultations on challenging cases mean that you benefit from our entire firm's knowledge and experience, not just your assigned attorney.", + "screens": "/images/our-approach/3.webp" + }, + { + "id": 4, + "authorTitle": "CLIENT PARTNERSHIP", + "title": "Transparent Communication Every Step Forward", + "para": "We believe that informed clients make better decisions and achieve better outcomes. Our approach emphasizes clear, frequent communication in a language you understand, whether that's English, Spanish, or another language spoken by our multilingual team. We explain complex legal concepts in plain terms, provide realistic timelines and expectations, and keep you updated on case progress and policy developments that might affect your situation. You're not just hiring lawyers - you're gaining partners who are invested in your success and committed to guiding you through every stage of the immigration process.", + "screens": "/images/our-approach/4.webp" + }, + { + "id": 5, + "authorTitle": "PROACTIVE ADVOCACY", + "title": "Anticipating Challenges Before They Arise", + "para": "Successful immigration practice requires anticipating problems before they develop and preparing comprehensive responses to potential challenges. We continuously monitor policy changes, track processing trends, and maintain relationships with government officials to stay ahead of developments that might affect our clients' cases. Our proactive approach includes thorough document preparation, strategic timing of filings, and contingency planning for various scenarios. When challenges do arise, we're prepared with immediate responses that protect your interests and keep your case moving forward.", + "screens": "/images/our-approach/5.webp" + }, + { + "id": 6, + "authorTitle": "LASTING RELATIONSHIPS", + "title": "Supporting Your American Journey Beyond Case Completion", + "para": "Our relationship with clients doesn't end when your case is approved. We understand that immigration is often a multi-step process involving family members, status changes, and evolving needs over time. We provide ongoing guidance for naturalization, help with adjustment issues, and remain available for future immigration needs as your life in America develops. Many of our clients return to us for green card renewals, citizenship applications, and petitions for family members. We take pride in being your trusted immigration counsel throughout your entire American journey.", + "screens": "/images/our-approach/6.webp" + } +] +} + diff --git a/public/locales/es/ourApproach.json b/public/locales/es/ourApproach.json new file mode 100644 index 0000000..ae2a5aa --- /dev/null +++ b/public/locales/es/ourApproach.json @@ -0,0 +1,46 @@ +{ + "ourApproach": [ + { + "id": 1, + "authorTitle": "BASE ESTRATÉGICA", + "title": "Análisis Completo del Caso Desde el Primer Día", + "para": "Cada caso de inmigración exitoso comienza con un análisis exhaustivo y una planificación estratégica. Iniciamos cada relación con el cliente con una consulta integral para entender no solo sus necesidades inmediatas de inmigración sino también sus objetivos a largo plazo en Estados Unidos. Nuestros abogados experimentados examinan todos los caminos disponibles, identifican posibles desafíos y desarrollan estrategias personalizadas que maximizan sus posibilidades de éxito mientras minimizan retrasos y complicaciones. Este enfoque fundamental garantiza que cada decisión que tomemos juntos sirva a sus objetivos más amplios de construir un futuro seguro en Estados Unidos.", + "screens": "/images/our-approach/1.webp" + }, + { + "id": 2, + "authorTitle": "PRÁCTICA MODERNA", + "title": "Aprovechando la Tecnología para Mejores Resultados", + "para": "La práctica del derecho migratorio ha evolucionado drásticamente con los avances tecnológicos, y hemos adoptado estos cambios para servir mejor a nuestros clientes. Nuestra firma utiliza sistemas de gestión de casos de última generación, monitoreo automatizado de cumplimiento y plataformas digitales seguras de comunicación que le mantienen informado y comprometido durante todo su caso. Empleamos herramientas avanzadas de investigación para mantenernos al día con los cambios de políticas, usamos análisis predictivo para optimizar las estrategias de presentación y brindamos a los clientes acceso 24/7 a actualizaciones de casos a través de nuestro portal seguro para clientes. La tecnología mejora nuestra capacidad para ofrecer servicios legales precisos, eficientes y sensibles.", + "screens": "/images/our-approach/2.webp" + }, + { + "id": 3, + "authorTitle": "EXCELENCIA EN EQUIPO", + "title": "Experiencia Colaborativa en Todas las Áreas de Práctica", + "para": "Los casos complejos de inmigración requieren experiencia diversa y un enfoque colaborativo. Nuestro equipo multidisciplinar incluye abogados especializados en inmigración familiar, visas de empleo, defensa contra deportaciones y protección humanitaria, asegurando que cada aspecto de su caso reciba atención experta. Combinamos décadas de experiencia colectiva con nuevas perspectivas, pensamiento innovador y dedicación inquebrantable al éxito del cliente. Las consultas regulares del equipo sobre casos difíciles garantizan que usted se beneficie del conocimiento y experiencia de toda nuestra firma, no solo de su abogado asignado.", + "screens": "/images/our-approach/3.webp" + }, + { + "id": 4, + "authorTitle": "ASOCIACIÓN CON EL CLIENTE", + "title": "Comunicación Transparente en Cada Paso", + "para": "Creemos que los clientes informados toman mejores decisiones y logran mejores resultados. Nuestro enfoque enfatiza una comunicación clara y frecuente en un idioma que usted entienda, ya sea inglés, español u otro idioma hablado por nuestro equipo multilingüe. Explicamos conceptos legales complejos en términos sencillos, proporcionamos cronogramas y expectativas realistas, y le mantenemos actualizado sobre el progreso del caso y las políticas que podrían afectar su situación. No solo contrata abogados, sino socios comprometidos con su éxito y dedicados a guiarle en cada etapa del proceso migratorio.", + "screens": "/images/our-approach/4.webp" + }, + { + "id": 5, + "authorTitle": "DEFENSA PROACTIVA", + "title": "Anticipándose a los Desafíos Antes de que Surjan", + "para": "El éxito en la práctica migratoria requiere anticipar problemas antes de que se desarrollen y preparar respuestas integrales a posibles desafíos. Monitorizamos continuamente los cambios de políticas, seguimos las tendencias de procesamiento y mantenemos relaciones con funcionarios gubernamentales para anticiparnos a desarrollos que podrían afectar los casos de nuestros clientes. Nuestro enfoque proactivo incluye una preparación minuciosa de documentos, cronogramas estratégicos para las presentaciones y planificación de contingencias para varios escenarios. Cuando surgen desafíos, estamos preparados con respuestas inmediatas que protegen sus intereses y mantienen su caso en movimiento.", + "screens": "/images/our-approach/5.webp" + }, + { + "id": 6, + "authorTitle": "RELACIONES DURADERAS", + "title": "Apoyando su Viaje Americano Más Allá de la Finalización del Caso", + "para": "Nuestra relación con los clientes no termina cuando su caso es aprobado. Entendemos que la inmigración a menudo es un proceso de múltiples etapas que involucra a miembros de la familia, cambios de estatus y necesidades cambiantes a lo largo del tiempo. Ofrecemos orientación continua para la naturalización, ayuda con cuestiones de ajuste y permanecemos disponibles para futuras necesidades migratorias a medida que su vida en Estados Unidos se desarrolla. Muchos de nuestros clientes regresan para renovar tarjetas de residencia, solicitudes de ciudadanía y peticiones para miembros familiares. Nos enorgullece ser su asesor migratorio de confianza durante todo su viaje americano.", + "screens": "/images/our-approach/6.webp" + } + ] +} From a64f09af9ea92363b2f445a9efa1ab2d4a63c281 Mon Sep 17 00:00:00 2001 From: Alaguraj0361 Date: Mon, 18 Aug 2025 15:15:58 +0530 Subject: [PATCH 3/3] home page feature, testimonial and call to action section language updated --- components/Donors/Donors.js | 10 +- components/ServiceSection/ServiceSection.js | 42 +++-- components/Testimonial/Testimonial.js | 147 +++++++----------- next-i18next.config.js | 2 +- pages/index.js | 4 +- .../locales/en/(home)/homeCalltoAction.json | 4 + public/locales/en/(home)/homeFeature.json | 18 +++ public/locales/en/(home)/testimonial.json | 19 +++ .../locales/es/(home)/homeCalltoAction.json | 4 + public/locales/es/(home)/homeFeature.json | 18 +++ public/locales/es/(home)/testimonial.json | 19 +++ styles/sass/components/_section-title.scss | 4 + styles/sass/page/_home-default.scss | 67 ++++++++ 13 files changed, 242 insertions(+), 116 deletions(-) create mode 100644 public/locales/en/(home)/homeCalltoAction.json create mode 100644 public/locales/en/(home)/homeFeature.json create mode 100644 public/locales/en/(home)/testimonial.json create mode 100644 public/locales/es/(home)/homeCalltoAction.json create mode 100644 public/locales/es/(home)/homeFeature.json create mode 100644 public/locales/es/(home)/testimonial.json diff --git a/components/Donors/Donors.js b/components/Donors/Donors.js index bee676f..f042613 100644 --- a/components/Donors/Donors.js +++ b/components/Donors/Donors.js @@ -1,11 +1,13 @@ import React from 'react'; -import Link from 'next/link' +import Link from 'next/link'; +import { useTranslation } from 'next-i18next'; const ClickHandler = () => { window.scrollTo(10, 0); } const Donors = () => { + const { t } = useTranslation('(home)/homeCalltoAction'); return (
@@ -13,12 +15,12 @@ const Donors = () => {
-

Ready to take the first step toward your American future?

+

{t('donorsTitle')}

{/* $10 Donation */} - Call us Today + {t('donorsButton')}
@@ -28,4 +30,4 @@ const Donors = () => { ); } -export default Donors; \ No newline at end of file +export default Donors; diff --git a/components/ServiceSection/ServiceSection.js b/components/ServiceSection/ServiceSection.js index 6669e5c..4be496b 100644 --- a/components/ServiceSection/ServiceSection.js +++ b/components/ServiceSection/ServiceSection.js @@ -6,6 +6,12 @@ import Link from 'next/link' import SectionTitle from "../SectionTitle/SectionTitle"; import Services from '../../api/service' import { featuresData, homeFeature } from "../../utils/constant.utils"; +import { useTranslation } from "next-i18next"; +import iconImg1 from '/public/images/home/icons/strategic-planning.webp' +import iconImg2 from '/public/images/home/icons/expert-preparation.webp' +import iconImg3 from '/public/images/home/icons/ongoing-support.webp' + +const iconMap = [iconImg1, iconImg2, iconImg3]; const settings = { @@ -65,13 +71,19 @@ const ClickHandler = () => { } const ServiceSection = (props) => { + const { t } = useTranslation("(home)/homeFeature"); + const features = t("features", { returnObjects: true }); + return (
- +
- {featuresData.map((feature, index) => ( + {features.map((feature, index) => (
@@ -80,21 +92,18 @@ const ServiceSection = (props) => {
{`${feature.title} + src={iconMap[index].src} + alt={`${feature.title} icon`} + className="feature-img" + />
- {/*

- - {feature.title} - -

*/} -

{feature.title}

- {feature.description.length > 100 - ? feature.description.slice(0, 100) + "..." - : feature.description} +

{feature.title}

+

+ {feature.description.length > 100 + ? feature.description.slice(0, 100) + "..." + : feature.description} +

@@ -102,10 +111,9 @@ const ServiceSection = (props) => { ))}
-
); -} +}; export default ServiceSection; \ No newline at end of file diff --git a/components/Testimonial/Testimonial.js b/components/Testimonial/Testimonial.js index 16d4394..c6a5a96 100644 --- a/components/Testimonial/Testimonial.js +++ b/components/Testimonial/Testimonial.js @@ -2,106 +2,69 @@ import React, { useState } from 'react'; import Slider from "react-slick"; import "slick-carousel/slick/slick.css"; import "slick-carousel/slick/slick-theme.css"; -import ts1 from '/public/images/testimonial/1.png' -import ts2 from '/public/images/testimonial/2.png' -import ts3 from '/public/images/testimonial/3.png' - -import thumb1 from '/public/images/testimonial/thumb1.png' -import thumb2 from '/public/images/testimonial/thumb2.png' -import thumb3 from '/public/images/testimonial/thumb3.png' import Image from 'next/image'; -import testiImage from '/public/images/home/quotes.webp' +import { useTranslation } from 'next-i18next'; +import ts1 from '/public/images/testimonial/1.png'; +import ts2 from '/public/images/testimonial/2.png'; +import ts3 from '/public/images/testimonial/3.png'; +import testiImage from '/public/images/home/quotes.webp'; - -const testimonial = [ - { - id: '01', - tImg: ts1, - thumbImg: thumb1, - Des: "Janahan Law turned my dream of living in the United States into reality. They handled every step of my green card process with precision and care, making a complex journey feel simple and stress-free. Today, my family and I are proud to call America our home.", - Title: 'Robert Willum', - Sub: "President of BPT", - }, - { - id: '01', - tImg: ts2, - thumbImg: thumb2, - Des: "I had almost lost hope of bringing my spouse to the United States. Janahan Law not only explained every option clearly but also worked tirelessly to reunite us. Their dedication and expertise made the impossible possible, and now we’re building our life together in America.", - Title: 'Leslie Alexander', - Sub: "President of TBP", - }, - { - id: '01', - tImg: ts3, - thumbImg: thumb3, - Des: "When I was facing the risk of deportation, I felt my whole world collapsing. Janahan Law stood by me like a lifeline — fighting for my case with unmatched dedication and compassion. Thanks to their expertise, I now have the security to build a future in the U.S. without fear.", - Title: 'David Joy', - Sub: "President of AML", - } -] +const images = [ts1, ts2, ts3]; const Testimonial = (props) => { + const { t } = useTranslation('(home)/testimonial'); + const [nav1, setNav1] = useState(); + const [nav2, setNav2] = useState(); - const [nav1, setNav1] = useState(); - const [nav2, setNav2] = useState(); + const testimonials = t('testimonials', { returnObjects: true }); - - return ( -
-
-
-
-
-
-
-
- -
- -
- -
- {/*
-
-
-
*/} -
-
-
-
-
-
- setNav1(slider1)} dots={true} arrows={false}> - { - testimonial.map((tesmnl, tsm) => ( -
-
- -

“{tesmnl.Des}”

- {/*
-
- -
-
-

{tesmnl.Title}

- {tesmnl.Sub} -
-
*/} -
-
- )) - } -
- -
-
-
+ return ( +
+
+
+
+
+
+
+
+
+ testimonial quote image
+
+
-
- ); -} +
+
+
+ setNav1(slider1)} dots={true} arrows={false}> + {testimonials.map((item, index) => ( +
+
+ +

“{item.description}”

+ {/*
+
+ {item.name} +
+
+

{item.name}

+ {item.position} +
+
*/} +
+
+ ))} +
+
+
+
+
+
+
+
+ ); +}; -export default Testimonial; \ No newline at end of file +export default Testimonial; diff --git a/next-i18next.config.js b/next-i18next.config.js index 7878a91..606c7f6 100644 --- a/next-i18next.config.js +++ b/next-i18next.config.js @@ -18,5 +18,5 @@ module.exports = { // Vidhya -// Alagu Raj - 'home4card', '(home)/homeAbout' +// Alagu Raj - 'common', 'menu', 'home4card', '(home)/homeAbout', '(home)/homeFeature', '(home)/testimonial', '(home)/homeCalltoAction' diff --git a/pages/index.js b/pages/index.js index 48ab0fa..de920eb 100644 --- a/pages/index.js +++ b/pages/index.js @@ -23,7 +23,7 @@ const HomePage = () => { - + {/* */} @@ -40,7 +40,7 @@ export default HomePage; export async function getStaticProps({ locale }) { return { props: { - ...(await serverSideTranslations(locale, ['common', 'menu', 'homeHero', 'home4Card', '(home)/homeAbout'])), // Add 'home', 'footer', etc. if needed + ...(await serverSideTranslations(locale, ['common', 'menu', 'homeHero', 'home4Card', '(home)/homeAbout', '(home)/homeFeature', '(home)/testimonial', '(home)/homeCalltoAction'])), // Add 'home', 'footer', etc. if needed }, }; } diff --git a/public/locales/en/(home)/homeCalltoAction.json b/public/locales/en/(home)/homeCalltoAction.json new file mode 100644 index 0000000..42d5c2f --- /dev/null +++ b/public/locales/en/(home)/homeCalltoAction.json @@ -0,0 +1,4 @@ +{ + "donorsTitle": "Ready to take the first step toward your American future?", + "donorsButton": "Call us Today" +} diff --git a/public/locales/en/(home)/homeFeature.json b/public/locales/en/(home)/homeFeature.json new file mode 100644 index 0000000..be64725 --- /dev/null +++ b/public/locales/en/(home)/homeFeature.json @@ -0,0 +1,18 @@ +{ + "sectionSubTitle": "STRENGTHENING AMERICA'S FUTURE", + "sectionTitle": "How We Build Better Futures Together", + "features": [ + { + "title": "Strategic Planning", + "description": "We create custom legal strategies based on immigration law, policy changes, and your needs." + }, + { + "title": "Expert Preparation", + "description": "Careful document preparation, evidence gathering, and filing to boost your application success." + }, + { + "title": "Ongoing Support", + "description": "We monitor your case, provide updates, and represent you through your full immigration process." + } + ] +} diff --git a/public/locales/en/(home)/testimonial.json b/public/locales/en/(home)/testimonial.json new file mode 100644 index 0000000..8ec1544 --- /dev/null +++ b/public/locales/en/(home)/testimonial.json @@ -0,0 +1,19 @@ +{ + "testimonials": [ + { + "description": "Janahan Law turned my dream of living in the United States into reality. They handled every step of my green card process with precision and care, making a complex journey feel simple and stress-free. Today, my family and I are proud to call America our home.", + "name": "Robert Willum", + "position": "President of BPT" + }, + { + "description": "I had almost lost hope of bringing my spouse to the United States. Janahan Law not only explained every option clearly but also worked tirelessly to reunite us. Their dedication and expertise made the impossible possible, and now we’re building our life together in America.", + "name": "Leslie Alexander", + "position": "President of TBP" + }, + { + "description": "When I was facing the risk of deportation, I felt my whole world collapsing. Janahan Law stood by me like a lifeline — fighting for my case with unmatched dedication and compassion. Thanks to their expertise, I now have the security to build a future in the U.S. without fear.", + "name": "David Joy", + "position": "President of AML" + } + ] +} diff --git a/public/locales/es/(home)/homeCalltoAction.json b/public/locales/es/(home)/homeCalltoAction.json new file mode 100644 index 0000000..6ab0824 --- /dev/null +++ b/public/locales/es/(home)/homeCalltoAction.json @@ -0,0 +1,4 @@ +{ + "donorsTitle": "¿Listo para dar el primer paso hacia tu futuro en Estados Unidos?", + "donorsButton": "Llámanos hoy" +} \ No newline at end of file diff --git a/public/locales/es/(home)/homeFeature.json b/public/locales/es/(home)/homeFeature.json new file mode 100644 index 0000000..e7773c9 --- /dev/null +++ b/public/locales/es/(home)/homeFeature.json @@ -0,0 +1,18 @@ +{ + "sectionSubTitle": "FORTALECIENDO EL FUTURO DE ESTADOS UNIDOS", + "sectionTitle": "Cómo construimos mejores futuros juntos", + "features": [ + { + "title": "Planificación Estratégica", + "description": "Creamos estrategias legales personalizadas basadas en la ley de inmigración, los cambios en las políticas y tus necesidades." + }, + { + "title": "Preparación Experta", + "description": "Preparación cuidadosa de documentos, recopilación de pruebas y presentación para aumentar el éxito de tu solicitud." + }, + { + "title": "Apoyo Continuo", + "description": "Monitoreamos tu caso, proporcionamos actualizaciones y te representamos durante todo tu proceso de inmigración." + } + ] +} diff --git a/public/locales/es/(home)/testimonial.json b/public/locales/es/(home)/testimonial.json new file mode 100644 index 0000000..787711f --- /dev/null +++ b/public/locales/es/(home)/testimonial.json @@ -0,0 +1,19 @@ +{ + "testimonials": [ + { + "description": "Janahan Law convirtió mi sueño de vivir en Estados Unidos en realidad. Manejaron cada paso de mi proceso de tarjeta verde con precisión y cuidado, haciendo que un camino complejo pareciera simple y sin estrés. Hoy, mi familia y yo estamos orgullosos de llamar hogar a América.", + "name": "Robert Willum", + "position": "Presidente de BPT" + }, + { + "description": "Casi había perdido la esperanza de traer a mi cónyuge a los Estados Unidos. Janahan Law no solo explicó cada opción con claridad, sino que también trabajó incansablemente para reunirnos. Su dedicación y experiencia hicieron posible lo imposible, y ahora estamos construyendo nuestra vida juntos en América.", + "name": "Leslie Alexander", + "position": "Presidente de TBP" + }, + { + "description": "Cuando enfrentaba el riesgo de deportación, sentí que mi mundo se derrumbaba. Janahan Law estuvo a mi lado como un salvavidas, luchando por mi caso con una dedicación y compasión inigualables. Gracias a su experiencia, ahora tengo la seguridad para construir un futuro en EE.UU. sin miedo.", + "name": "David Joy", + "position": "Presidente de AML" + } + ] +} \ No newline at end of file diff --git a/styles/sass/components/_section-title.scss b/styles/sass/components/_section-title.scss index 0053a80..5823b10 100644 --- a/styles/sass/components/_section-title.scss +++ b/styles/sass/components/_section-title.scss @@ -98,4 +98,8 @@ font-size: 18px; } +} + +.wpo-features-s2{ + padding: 0; } \ No newline at end of file diff --git a/styles/sass/page/_home-default.scss b/styles/sass/page/_home-default.scss index 38cdb53..fd6b8df 100644 --- a/styles/sass/page/_home-default.scss +++ b/styles/sass/page/_home-default.scss @@ -2113,4 +2113,71 @@ .no-padding { padding: 0 !important; } +} + +.home-call-to-action h3 { + font-style: normal; + font-weight: 600; + font-size: 46px; + line-height: 58px; + color: $white; + margin: 0 0 0.2em; + font-family: $heading-font; + display: flex; + align-items: center; + justify-content: start; + text-align: start; + + @include media-query(1200px) { + font-size: 50px; + ont-size: calc-rem-value(50); + } + + @include media-query(991px) { + font-size: 40px; + font-size: calc-rem-value(40); + } + + @include media-query(767px) { + font-size: 35px; + font-size: calc-rem-value(35); + } + + span { + font-family: $heading-font; + } +} + +.donors-btn { + text-align: right; + + @media(max-width:991px) { + text-align: center; + margin-top: 40px; + } + + @media(max-width:575px) { + margin-top: 30px; + } + + a { + padding: 15px 20px; + background: $dark-gray; + font-weight: 700; + font-size: 20px; + line-height: 27px; + text-align: center; + color: $white; + border-radius: 10px; + + @media(max-width:575px) { + font-size: 15px; + } + + &+a { + margin-left: 10px; + background: $white; + color: $theme-primary-color; + } + } } \ No newline at end of file