diff --git a/frontend/src/app/jobs/new/page.tsx b/frontend/src/app/jobs/new/page.tsx index 210786c..369e919 100644 --- a/frontend/src/app/jobs/new/page.tsx +++ b/frontend/src/app/jobs/new/page.tsx @@ -13,6 +13,7 @@ import { Input } from "@/components/ui/input"; import { Label } from "@/components/ui/label"; import { Checkbox } from "@/components/ui/checkbox"; import { RichTextEditor } from "@/components/rich-text-editor"; +import { useTranslation } from "@/lib/i18n"; type Step = 1 | 2 | 3 | 4; @@ -62,8 +63,66 @@ const pricingByCountry: Record = { JP: { amount: "¥14,900", duration: "30 dias" }, }; +const contentByLocale = { + "pt-BR": { + heroTitle: "Anuncie vagas de emprego de forma rápida e eficiente", + freeTitle: "Anuncie a sua vaga de emprego", + freeHighlight: "GRÁTIS!", + resumesText: "Mais de", + resumesHighlight: "50 mil currículos cadastrados", + steps: ["Detalhes da vaga", "Pré-visualização", "Informações de faturamento", "Pagamento"], + languageLabel: "Idioma da descrição da vaga *", + languageHint: "Recomendação: escreva na língua principal do país em que a vaga está sendo anunciada.", + selectPlaceholder: "Selecione", + languageOptions: { + "pt-BR": "Português", + en: "English", + es: "Español", + }, + }, + en: { + heroTitle: "Post jobs quickly and efficiently", + freeTitle: "Post your job", + freeHighlight: "FOR FREE!", + resumesText: "More than", + resumesHighlight: "50 thousand resumes registered", + steps: ["Job details", "Preview", "Billing information", "Payment"], + languageLabel: "Job description language *", + languageHint: "Recommendation: write in the main language of the country where the job is being advertised.", + selectPlaceholder: "Select", + languageOptions: { + "pt-BR": "Portuguese", + en: "English", + es: "Spanish", + }, + }, + es: { + heroTitle: "Publique vacantes de forma rápida y eficiente", + freeTitle: "Publique su vacante", + freeHighlight: "¡GRATIS!", + resumesText: "Más de", + resumesHighlight: "50 mil currículums registrados", + steps: ["Detalles de la vacante", "Vista previa", "Información de facturación", "Pago"], + languageLabel: "Idioma de la descripción de la vacante *", + languageHint: "Recomendación: escriba en el idioma principal del país donde se anuncia la vacante.", + selectPlaceholder: "Seleccione", + languageOptions: { + "pt-BR": "Portugués", + en: "Inglés", + es: "Español", + }, + }, +} as const; + +const mapDescriptionLanguageToApi = (language: string) => { + if (language === "pt-BR") return "pt"; + return language; +}; + export default function PostJobPage() { const router = useRouter(); + const { locale } = useTranslation(); + const pageCopy = contentByLocale[locale]; const [step, setStep] = useState(1); const [loading, setLoading] = useState(false); @@ -263,7 +322,7 @@ export default function PostJobPage() { workMode: "onsite", status: "review", questions: null, - languageLevel: job.descriptionLanguage || null, + languageLevel: mapDescriptionLanguageToApi(job.descriptionLanguage) || null, requirements: { category: null, resumeRequirement: job.resumeRequirement, @@ -301,14 +360,14 @@ export default function PostJobPage() { }; return ( -
+

- Anuncie vagas de emprego de forma rápida e eficiente + {pageCopy.heroTitle}

    @@ -334,22 +393,17 @@ export default function PostJobPage() { />
-
+

- Anuncie a sua vaga de emprego
GRÁTIS! + {pageCopy.freeTitle}
{pageCopy.freeHighlight}

- Mais de 50 mil currículos cadastrados + {pageCopy.resumesText} {pageCopy.resumesHighlight}

- {[ - "Detalhes da vaga", - "Pré-visualização", - "Informações de faturamento", - "Pagamento", - ].map((label, index) => { + {pageCopy.steps.map((label, index) => { const number = (index + 1) as Step; return (
= number ? "bg-[#ef9225] text-white border-[#ef9225]" : "bg-white text-[#1d2c44]"}`}> @@ -678,19 +732,19 @@ export default function PostJobPage() { )}
- +

- Recomendação: escreva na língua principal do país em que a vaga está sendo anunciada. + {pageCopy.languageHint}