feat: eng language
This commit is contained in:
parent
9db725dde3
commit
2bb97c5a24
|
|
@ -88,16 +88,16 @@ const page = () => {
|
|||
};
|
||||
|
||||
const validationSchema = Yup.object().shape({
|
||||
firstName: Yup.string().required("Nama Lengkap tidak boleh kosong"),
|
||||
username: Yup.string().required("Username tidak boleh kosong"),
|
||||
phoneNumber: Yup.string().required("Nomor Telepon tidak boleh kosong"),
|
||||
address: Yup.string().required("Alamat tidak boleh kosong"),
|
||||
email: Yup.string().required("Email tidak boleh kosong"),
|
||||
provinsi: Yup.string().required("Provinsi tidak boleh kosong"),
|
||||
kota: Yup.string().required("Kota tidak boleh kosong"),
|
||||
kecamatan: Yup.string().required("Kecamatan tidak boleh kosong"),
|
||||
password: Yup.string().required("Kata Sandi tidak boleh kosong"),
|
||||
passwordConf: Yup.string().required("Konfirmasi Kata Sandi tidak boleh kosong"),
|
||||
firstName: Yup.string().required(t("nameEmpty")),
|
||||
username: Yup.string().required(t("usernameEmpty")),
|
||||
phoneNumber: Yup.string().required(t("numberEmpty")),
|
||||
address: Yup.string().required(t("addressEmpty")),
|
||||
email: Yup.string().required(t("emailEmpty")),
|
||||
provinsi: Yup.string().required(t("provinceEmpty")),
|
||||
kota: Yup.string().required(t("cityEmpty")),
|
||||
kecamatan: Yup.string().required(t("subdistrictEmpty")),
|
||||
password: Yup.string().required(t("passwordEmpty")),
|
||||
passwordConf: Yup.string().required(t("confirmEmpty")),
|
||||
});
|
||||
|
||||
const formOptions = {
|
||||
|
|
@ -358,7 +358,7 @@ const page = () => {
|
|||
setEmailValidate("");
|
||||
setEmail(e);
|
||||
} else {
|
||||
setEmailValidate("Email tidak valid");
|
||||
setEmailValidate(t("emailValid"));
|
||||
setEmail("");
|
||||
}
|
||||
};
|
||||
|
|
@ -562,7 +562,7 @@ const page = () => {
|
|||
: {}
|
||||
}
|
||||
>
|
||||
<p className="text-2xl lg:text-4xl px-0 lg:px-12 font-bold ">{stepThreeActive ? "Silahkan lengkapi data pengguna" : "Silahkan registrasi terlebih dahulu"}</p>
|
||||
<p className="text-2xl lg:text-4xl px-0 lg:px-12 font-bold ">{stepThreeActive ? t("userData") : t("registerFirst")}</p>
|
||||
<p className="px-0 lg:px-12 text-sm lg:text-base mt-2">
|
||||
{t("alreadyHave")}{" "}
|
||||
<Link href="/auth" className="text-red-500">
|
||||
|
|
@ -580,14 +580,14 @@ const page = () => {
|
|||
: {}
|
||||
}
|
||||
>
|
||||
<p className="text-black text-2xl px-0 lg:px-20 font-semibold">Masukkan Kode OTP</p>
|
||||
<p className="text-red-500 text-sm px-0 lg:px-20">Silahkan cek inbox atau kotak spam pada email Anda.</p>
|
||||
<p className="text-black text-2xl px-0 lg:px-20 font-semibold">{t("enterOTP")}</p>
|
||||
<p className="text-red-500 text-sm px-0 lg:px-20">{t("checkInbox")}</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div className={`flex flex-col gap-3 px-8 lg:px-12 ${formProfile == true || stepTwoActive ? "hidden" : ""}`}>
|
||||
<div
|
||||
className="flex flex-col"
|
||||
className="flex flex-col px-0 lg:px-8"
|
||||
style={
|
||||
Number(category) == 6
|
||||
? {}
|
||||
|
|
@ -597,11 +597,16 @@ const page = () => {
|
|||
}
|
||||
>
|
||||
<Label htmlFor="association" className="mb-2">
|
||||
Jenis Keanggotaan <span className="text-red-500">*</span>
|
||||
{t("member")} <span className="text-red-500">*</span>
|
||||
</Label>
|
||||
<select className={`py-2 px-1 rounded-md border border-slate-300 bg-white ${errors.association ? "block" : ""}`} {...register("association")} id="association" onChange={(e) => setAssociation(e.target.value)}>
|
||||
<select
|
||||
className={`py-2 px-1 rounded-md border text-sm text-slate-400 border-slate-300 bg-white ${errors.association ? "block" : ""}`}
|
||||
{...register("association")}
|
||||
id="association"
|
||||
onChange={(e) => setAssociation(e.target.value)}
|
||||
>
|
||||
<option disabled selected>
|
||||
Pilih Asosiasi
|
||||
{t("association")}
|
||||
</option>
|
||||
<option value="PWI" key="1">
|
||||
PWI (Persatuan Wartawan Indonesia)
|
||||
|
|
@ -616,7 +621,7 @@ const page = () => {
|
|||
AJI (Asosiasi Jurnalis Indonesia)
|
||||
</option>
|
||||
<option value="Wartawan" key="5">
|
||||
Identitas Lainnya
|
||||
{t("otherIdentity")}
|
||||
</option>
|
||||
</select>
|
||||
<div className="hidden w-full mt-[0.25rem] text-lg text-[#dc3545]">{errors.association?.message}</div>
|
||||
|
|
@ -625,7 +630,7 @@ const page = () => {
|
|||
{Number(category) == 7 ? (
|
||||
<div className="px-0 lg:px-[34px]">
|
||||
<label htmlFor="userIdentity" className="mb-3">
|
||||
<b>Nomor Registrasi Polri (NRP)</b> <span className="text-red-500">*</span>
|
||||
<b>{t("policeNumber")}</b> <span className="text-red-500">*</span>
|
||||
</label>
|
||||
<Input className="mt-3" autoComplete="off" placeholder="Masukan Nomor Registrasi Polri Anda" type="text" onChange={(event: any) => setPersonilNRP(event.target.value)} />
|
||||
<p className="text-red-500">{userIdentityValidate}</p>
|
||||
|
|
@ -645,9 +650,9 @@ const page = () => {
|
|||
}
|
||||
>
|
||||
<Label htmlFor="journalistCertificate">
|
||||
Nomor Sertifikasi Wartawan <span className="text-red-500">*</span>
|
||||
{t("journalistNumber")} <span className="text-red-500">*</span>
|
||||
</Label>
|
||||
<Input className="rounded-md py-3" autoComplete="off" placeholder="Masukan Nomor Sertifikasi" type="text" onChange={(event: any) => setJournalistCertificate(event.target.value)} />
|
||||
<Input className="rounded-md py-3" autoComplete="off" placeholder={t("inputJournalist")} type="text" onChange={(event: any) => setJournalistCertificate(event.target.value)} />
|
||||
</div>
|
||||
) : (
|
||||
""
|
||||
|
|
@ -656,7 +661,7 @@ const page = () => {
|
|||
<label htmlFor="email">
|
||||
<b>Email</b> <span className="text-red-500">*</span>
|
||||
</label>
|
||||
<Input className="w-full" autoComplete="off" placeholder="Masukkan Email Anda" type="email" onChange={(event) => checkEmail(event.target.value)} />
|
||||
<Input className="w-full" autoComplete="off" placeholder={t("inputEmail")} type="email" onChange={(event) => checkEmail(event.target.value)} />
|
||||
<p className="text-sm text-red-500 mt-1">{emailValidate}</p>
|
||||
</div>
|
||||
</div>
|
||||
|
|
@ -685,10 +690,10 @@ const page = () => {
|
|||
</p>
|
||||
<div className="flex flex-row px-0 lg:px-28 justify-between items-center my-4">
|
||||
<a className="bg-slate-300 text-center rounded-lg mr-1 w-[200px] py-2 text-base cursor-pointer" onClick={() => handleResendOTP()}>
|
||||
Kirim Ulang ({convertMilisecondsToHour(timerCount)})
|
||||
{t("resending")} ({convertMilisecondsToHour(timerCount)})
|
||||
</a>
|
||||
<a className="bg-red-700 w-[200px] py-2 text-center text-white rounded-lg ml-1 cursor-pointer" onClick={() => handleVerifyOTP()}>
|
||||
Lanjut
|
||||
{t("next")}
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
|
|
@ -698,7 +703,7 @@ const page = () => {
|
|||
{Number(category) == 6 || Number(category) == 7 ? (
|
||||
<div className="px-0 lg:px-[34px]">
|
||||
<Label className="mb-2">
|
||||
{`${Number(category) == 6 ? "Nomor Sertifikasi Wartawan" : "NRP"}`}
|
||||
{`${Number(category) == 6 ? t("journalistNumber") : "NRP"}`}
|
||||
<span className="text-red-500">*</span>
|
||||
</Label>
|
||||
<Input
|
||||
|
|
@ -706,7 +711,7 @@ const page = () => {
|
|||
autoComplete="off"
|
||||
className={`mb-3 ${errors.memberIdentity ? "block" : ""}`}
|
||||
{...register("memberIdentity")}
|
||||
placeholder="Masukan Nomor Identitas"
|
||||
placeholder={t("inputNumberIdentity")}
|
||||
onChange={(e) => handleIdentity(e.target.value)}
|
||||
disabled
|
||||
/>
|
||||
|
|
@ -717,9 +722,9 @@ const page = () => {
|
|||
)}
|
||||
<div className="mb-4 px-0 lg:px-[34px]">
|
||||
<Label className="mb-2">
|
||||
Nama Lengkap <span className="text-red-500">*</span>
|
||||
{t("fullName")} <span className="text-red-500">*</span>
|
||||
</Label>
|
||||
<Input type="text" autoComplete="off" className={` ${errors.firstName ? "block" : ""}`} {...register("firstName")} placeholder="Masukan Nama Lengkap Anda" />
|
||||
<Input type="text" autoComplete="off" className={` ${errors.firstName ? "block" : ""}`} {...register("firstName")} placeholder={t("enterFullName")} />
|
||||
<div className="text-red-500">{errors.firstName?.message}</div>
|
||||
</div>
|
||||
<div className="mb-4 px-0 lg:px-[34px]">
|
||||
|
|
@ -731,7 +736,7 @@ const page = () => {
|
|||
type="text"
|
||||
autoComplete="off"
|
||||
className={`${errors.username ? "block" : ""}`}
|
||||
placeholder="Masukan Username"
|
||||
placeholder={t("enterUsername")}
|
||||
onChange={(e) => {
|
||||
setValUsername(e.target.value.trim());
|
||||
}}
|
||||
|
|
@ -754,27 +759,27 @@ const page = () => {
|
|||
</div>
|
||||
<div className="flex flex-col px-0 lg:px-[34px]">
|
||||
<Label className="mb-2">
|
||||
No. HP<span className="text-red-500">*</span>
|
||||
{t("number")} <span className="text-red-500">*</span>
|
||||
</Label>
|
||||
<Input type="number" autoComplete="off" className={`mb-3 ${errors.phoneNumber ? "block" : ""}`} {...register("phoneNumber")} placeholder="Masukan Nomor Telepon Anda" />
|
||||
<Input type="number" autoComplete="off" className={`mb-3 ${errors.phoneNumber ? "block" : ""}`} {...register("phoneNumber")} placeholder={t("enterNumber")} />
|
||||
<div className="text-red-500">{errors.phoneNumber?.message}</div>
|
||||
</div>
|
||||
<div className="mb-4 px-0 lg:px-[34px]">
|
||||
<Label htmlFor="address" className="mb-2">
|
||||
Alamat <span className="text-red-500">*</span>
|
||||
{t("address")} <span className="text-red-500">*</span>
|
||||
</Label>
|
||||
<Textarea className={` ${errors.address ? "block" : ""}`} {...register("address")} placeholder="Masukan Alamat Lengkap Anda" rows={3} />
|
||||
<Textarea className={` ${errors.address ? "block" : ""}`} {...register("address")} placeholder={t("insertAddress")} rows={3} />
|
||||
<div className="text-red-500">{errors.address?.message}</div>
|
||||
</div>
|
||||
{Number(category) == 6 ? (
|
||||
<div className="flex flex-col gap-3 px-0 lg:px-[34px]">
|
||||
<div className="flex flex-col mb-2">
|
||||
<Label htmlFor="provinsi">
|
||||
Institusi <span className="text-red-500">*</span>
|
||||
<Label htmlFor="provinsi" className="mb-2">
|
||||
{t("institutions")} <span className="text-red-500">*</span>
|
||||
</Label>
|
||||
<select className="mb-3 p-2 border rounded-md border-slate-300 bg-white cursor-pointer" id="provinsi" onChange={(event) => handleInstituteOption(event)}>
|
||||
<select className="mb-3 p-2 border text-sm text-slate-400 rounded-md border-slate-300 bg-white cursor-pointer" id="provinsi" onChange={(event) => handleInstituteOption(event)}>
|
||||
<option disabled selected>
|
||||
Pilih Institusi
|
||||
{t("selectInst")}
|
||||
</option>
|
||||
{institution.map((row: any) => (
|
||||
<option value={row.id} key={row.id}>
|
||||
|
|
@ -782,7 +787,7 @@ const page = () => {
|
|||
</option>
|
||||
))}
|
||||
<option value="0" key="0">
|
||||
Nama Institusi Lainnya
|
||||
{t("otherInst")}
|
||||
</option>
|
||||
</select>
|
||||
</div>
|
||||
|
|
@ -797,33 +802,33 @@ const page = () => {
|
|||
}
|
||||
>
|
||||
<Label htmlFor="alamat" className="mb-2">
|
||||
Nama Institusi <span className="text-red-500">*</span>
|
||||
{t("instName")} <span className="text-red-500">*</span>
|
||||
</Label>
|
||||
<Input className="mb-3" autoComplete="off" placeholder="Masukan Nama Lengkap Institusi Anda" type="text" onChange={(event) => setCustomInstituteName(event.target.value)} />
|
||||
</div>
|
||||
<div>
|
||||
<Label htmlFor="alamat" className="mb-2">
|
||||
Alamat Institusi <span className="text-red-500">*</span>
|
||||
{t("instAddress")} <span className="text-red-500">*</span>
|
||||
</Label>
|
||||
<Textarea className="mb-3" placeholder="Masukan Alamat Lengkap Institusi Anda" rows={3} value={institusiAddress} onChange={(event) => setInstitusiAddress(event.target.value)} />
|
||||
<Textarea className="mb-3" placeholder={t("addressInst")} rows={3} value={institusiAddress} onChange={(event) => setInstitusiAddress(event.target.value)} />
|
||||
</div>
|
||||
</div>
|
||||
) : (
|
||||
""
|
||||
)}
|
||||
<div className="flex flex-col px-0 lg:px-[34px]">
|
||||
<label htmlFor="provinsi" className="mb-2">
|
||||
Provinsi <span className="text-red-500">*</span>
|
||||
<label htmlFor="provinsi" className="mb-2 ">
|
||||
{t("province")} <span className="text-red-500">*</span>
|
||||
</label>
|
||||
<select
|
||||
className={`mb-3 p-2 border rounded-md border-slate-300 bg-white cursor-pointer ${errors.provinsi ? "block" : ""}`}
|
||||
className={`mb-3 p-2 border rounded-md text-sm text-slate-400 border-slate-300 bg-white cursor-pointer ${errors.provinsi ? "block" : ""}`}
|
||||
{...register("provinsi")}
|
||||
id="provinsi"
|
||||
name="provinsi"
|
||||
onChange={(event) => getCity(event.target.value)}
|
||||
>
|
||||
<option disabled selected>
|
||||
Pilih Provinsi
|
||||
{t("selectProv")}
|
||||
</option>
|
||||
{province?.map((row: any) => (
|
||||
<option value={row.id} key={row.id}>
|
||||
|
|
@ -835,11 +840,16 @@ const page = () => {
|
|||
</div>
|
||||
<div className="flex flex-col px-0 lg:px-[34px]">
|
||||
<label htmlFor="kota" className="mb-2">
|
||||
Kota/Kabupaten <span className="text-red-500">*</span>
|
||||
{t("city")} <span className="text-red-500">*</span>
|
||||
</label>
|
||||
<select className={`mb-3 p-2 border rounded-md border-slate-300 bg-white cursor-pointer ${errors.kota ? "block" : ""}`} {...register("kota")} id="kota" onChange={(event) => getDistricts(event.target.value)}>
|
||||
<select
|
||||
className={`mb-3 p-2 border text-sm text-slate-400 rounded-md border-slate-300 bg-white cursor-pointer ${errors.kota ? "block" : ""}`}
|
||||
{...register("kota")}
|
||||
id="kota"
|
||||
onChange={(event) => getDistricts(event.target.value)}
|
||||
>
|
||||
<option disabled selected>
|
||||
Pilih Kota/Kabupaten
|
||||
{t("selectCity")}
|
||||
</option>
|
||||
{city?.map((row: any) => (
|
||||
<option value={row.id} key={row.id}>
|
||||
|
|
@ -851,11 +861,11 @@ const page = () => {
|
|||
</div>
|
||||
<div className="flex flex-col px-0 lg:px-[34px]">
|
||||
<label htmlFor="kecamatan" className="mb-2">
|
||||
Kecamatan <span className="text-red-500">*</span>
|
||||
{t("subdistrict")} <span className="text-red-500">*</span>
|
||||
</label>
|
||||
<select className={`p-2 border rounded-md border-slate-300 bg-white cursor-pointer ${errors.kecamatan ? "block" : ""}`} {...register("kecamatan")} id="kecamatan">
|
||||
<select className={`p-2 border text-sm text-slate-400 rounded-md border-slate-300 bg-white cursor-pointer ${errors.kecamatan ? "block" : ""}`} {...register("kecamatan")} id="kecamatan">
|
||||
<option disabled selected>
|
||||
Pilih Kecamatan
|
||||
{t("selectSub")}
|
||||
</option>
|
||||
{districts?.map((row: any) => (
|
||||
<option value={row.id} key={row.id}>
|
||||
|
|
@ -896,7 +906,7 @@ const page = () => {
|
|||
</div> */}
|
||||
<div className="mt-3.5 space-y-2 px-0 lg:px-[34px]">
|
||||
<Label htmlFor="password" className="mb-2 font-medium text-default-600">
|
||||
Kata Sandi <span className="text-red-500">*</span>
|
||||
{t("password")} <span className="text-red-500">*</span>
|
||||
</Label>
|
||||
<div className="relative">
|
||||
<Input
|
||||
|
|
@ -905,7 +915,7 @@ const page = () => {
|
|||
autoComplete="off"
|
||||
className={` ${errors.password ? "block" : ""}`}
|
||||
{...register("password")}
|
||||
placeholder="Masukan Kata Sandi"
|
||||
placeholder={t("inputPass")}
|
||||
onChange={(e) => {
|
||||
setValPassword(e.target.value.trim());
|
||||
}}
|
||||
|
|
@ -954,7 +964,7 @@ const page = () => {
|
|||
</div> */}
|
||||
<div className="mt-3.5 space-y-2 px-0 lg:px-[34px]">
|
||||
<Label htmlFor="password" className="mb-2 font-medium text-default-600">
|
||||
Konfirmasi Kata Sandi <span className="text-red-500">*</span>
|
||||
{t("confirmPass")} <span className="text-red-500">*</span>
|
||||
</Label>
|
||||
<div className="relative">
|
||||
<Input
|
||||
|
|
@ -963,7 +973,7 @@ const page = () => {
|
|||
autoComplete="off"
|
||||
className={` ${errors.passwordConf ? "block" : ""}`}
|
||||
{...register("passwordConf")}
|
||||
placeholder="Masukan Kata Sandi yang Sama"
|
||||
placeholder={t("samePass")}
|
||||
onChange={(e) => {
|
||||
setValPasswordConf(e.target.value.trim());
|
||||
}}
|
||||
|
|
@ -991,11 +1001,11 @@ const page = () => {
|
|||
setIsValidPassword(isValid);
|
||||
}}
|
||||
messages={{
|
||||
minLength: "Password harus lebih dari 8 karakter",
|
||||
specialChar: "Password harus memiliki spesial karakter",
|
||||
number: "Password harus memiliki angka",
|
||||
capital: "Password harus memiliki huruf kapital",
|
||||
match: "Password sama",
|
||||
minLength: t("passCharacter"),
|
||||
specialChar: t("passSpecial"),
|
||||
number: t("passNumber"),
|
||||
capital: t("passCapital"),
|
||||
match: t("passSame"),
|
||||
}}
|
||||
/>
|
||||
</div>
|
||||
|
|
@ -1013,13 +1023,13 @@ const page = () => {
|
|||
>
|
||||
<div className="text-center mb-2 px-[34px]">
|
||||
<p className="text-sm lg:text-base">
|
||||
Dengan mendaftar, saya telah menyetujui <br />{" "}
|
||||
{t("byRegis")} <br />{" "}
|
||||
<a href="/privacy" target="_blank" className="text-red-500">
|
||||
<b>Syarat dan Ketentuan</b>
|
||||
<b>{t("terms")}</b>
|
||||
</a>{" "}
|
||||
serta{" "}
|
||||
{t("and")}{" "}
|
||||
<a href="/privacy" target="_blank" className="text-red-500">
|
||||
<b>Kebijakan Privasi</b>
|
||||
<b>{t("privacy")}</b>
|
||||
</a>
|
||||
</p>
|
||||
</div>
|
||||
|
|
@ -1032,7 +1042,7 @@ const page = () => {
|
|||
setStepTwoActive(true);
|
||||
}}
|
||||
>
|
||||
Kirim OTP
|
||||
{t("send")} OTP
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
|
|
@ -1047,7 +1057,7 @@ const page = () => {
|
|||
}
|
||||
>
|
||||
<Button type="submit" className="border w-[550px] text-center bg-red-700 text-white hover:bg-white hover:text-red-700 ">
|
||||
Daftar
|
||||
{t("register")}
|
||||
</Button>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -17,17 +17,19 @@ const Home = ({ params: { locale } }: { params: { locale: string } }) => {
|
|||
return (
|
||||
<MountedProvider isProtected={false}>
|
||||
<ReactLenis root>
|
||||
<Navbar />
|
||||
<NewsTicker />
|
||||
<Hero />
|
||||
<SearchSection />
|
||||
<NewContent group="mabes" type="latest" />
|
||||
<NewContent group="mabes" type="popular" />
|
||||
{/* <PopularContent /> */}
|
||||
<ContentCategory group="mabes" />
|
||||
<Coverage />
|
||||
<Division />
|
||||
<Footer />
|
||||
<div className="pb-14">
|
||||
<Navbar />
|
||||
<Hero />
|
||||
<SearchSection />
|
||||
<NewContent group="mabes" type="latest" />
|
||||
<NewContent group="mabes" type="popular" />
|
||||
{/* <PopularContent /> */}
|
||||
<ContentCategory group="mabes" />
|
||||
<Coverage />
|
||||
<Division />
|
||||
<Footer />
|
||||
<NewsTicker />
|
||||
</div>
|
||||
</ReactLenis>
|
||||
</MountedProvider>
|
||||
);
|
||||
|
|
|
|||
|
|
@ -4,11 +4,13 @@ import { getHeroData, listCarousel } from "@/service/landing/landing";
|
|||
import { formatDateToIndonesian, textEllipsis } from "@/utils/globals";
|
||||
import { useEffect, useState } from "react";
|
||||
import { Icon } from "../ui/icon";
|
||||
import { useTranslations } from "next-intl";
|
||||
|
||||
export default function NewsTicker() {
|
||||
const [article, setArticle] = useState<any>([]);
|
||||
const [currentNewsIndex, setCurrentNewsIndex] = useState(0);
|
||||
const [animate, setAnimate] = useState(false);
|
||||
const t = useTranslations("LandingPage");
|
||||
|
||||
useEffect(() => {
|
||||
async function getArticle() {
|
||||
|
|
@ -47,7 +49,7 @@ export default function NewsTicker() {
|
|||
return (
|
||||
<div className="fixed bottom-0 z-50 flex flex-row h-[60px] gap-3 w-full justify-between dark:bg-stone-800 bg-gray-50">
|
||||
<div className="relative px-4 py-2 font-semibold text-xs lg:text-sm flex items-center bg-[#bb3523] text-white w-[30%] lg:w-[10%]">
|
||||
<span className="mr-2"></span> BREAKING NEWS
|
||||
<span className="mr-2"></span> {t("breakingNews")}
|
||||
<div className="absolute right-0 top-0 h-full w-4 bg-[#bb3523] transform translate-x-full clip-path-triangle"></div>
|
||||
</div>
|
||||
<div className={`w-full px-5 py-1 flex flex-col gap-1 transition-transform duration-300 ${animate ? "opacity-0 translate-y-5" : "opacity-100 translate-y-0"}`}>
|
||||
|
|
|
|||
|
|
@ -398,7 +398,63 @@
|
|||
"next": "Next",
|
||||
"categoryReg": "Registration Category",
|
||||
"selectOne": "Please Select One",
|
||||
"alreadyHave": "Already have an account?"
|
||||
"alreadyHave": "Already have an account?",
|
||||
"userData": "Please Complete the User Data",
|
||||
"registerFirst": "Please Register First",
|
||||
"byRegis": "By registering, I have agreed to the",
|
||||
"terms": "Terms and Conditions",
|
||||
"enterOTP": "Enter OTP Code",
|
||||
"checkInbox": "Please check your email inbox or spam box.",
|
||||
"resending": "Resending",
|
||||
"fullName": "Full Name",
|
||||
"enterFullName": "Insert your full name",
|
||||
"enterUsername": "Insert your Username",
|
||||
"number": "Mobile phone number",
|
||||
"enterNumber": "Insert Your Phone Number",
|
||||
"enterEmail": "Insert your Email",
|
||||
"address": "Address",
|
||||
"insertAddress": "Insert Your Address",
|
||||
"province": "Province",
|
||||
"selectProv": "Select Province",
|
||||
"city": "City / District",
|
||||
"selectCity": "Select City / District",
|
||||
"subdistrict": "Subdistrict",
|
||||
"selectSub": "Select Subdistrict",
|
||||
"confirmPass": "Confirm Password",
|
||||
"inputPass": "Input Password",
|
||||
"samePass": "Input Same Password",
|
||||
"passCharacter": "Password must be more than 8 characters",
|
||||
"passSpecial": "Password must have special characters",
|
||||
"passNumber": "Password must have numbers",
|
||||
"passCapital": "Password must have capital letters",
|
||||
"passSame": "Passwords are the same",
|
||||
"member": "Membership Types",
|
||||
"association": "Select Association",
|
||||
"journalistNumber": "Journalist Certification Number",
|
||||
"otherIdentity": "Other Identities",
|
||||
"inputJournalist": "Input Certification Number",
|
||||
"inputNumberIdentity": "Input Identity Number",
|
||||
"institutions": "Institutions",
|
||||
"selectInst": "Select Institutions",
|
||||
"otherInst": "Other Institution Names",
|
||||
"instAddress": "Institutions Address",
|
||||
"instName": "Institution Name",
|
||||
"inputEmail": "Input your Email",
|
||||
"emailValid": "Invalid Email",
|
||||
"nameEmpty": "Full Name Cannot be Empty",
|
||||
"usernameEmpty": "Username Cannot be Empty",
|
||||
"numberEmpty": "Phone Number cannot be empty",
|
||||
"addressEmpty": "Address cannot be empty",
|
||||
"emailEmpty": "Email cannot be empty",
|
||||
"provinceEmpty": "Province cannot be empty",
|
||||
"cityEmpty": "City/district cannot be empty",
|
||||
"subdistrictEmpty": "Subdistrict cannot be empty",
|
||||
"passwordEmpty": "Password cannot be empty",
|
||||
"confirmEmpty": "Confirm Password cannot be empty",
|
||||
"addressInst": "Input the complete address of your institution",
|
||||
"identityEmpty": "Identity number cannot be empty",
|
||||
"policeNumber": "Police Registration Number",
|
||||
"breakingNews": "BREAKING NEWS"
|
||||
},
|
||||
"FilterPage": {
|
||||
"image": "Image",
|
||||
|
|
|
|||
|
|
@ -398,7 +398,64 @@
|
|||
"next": "Selanjutnya",
|
||||
"categoryReg": "Kategori Registrasi",
|
||||
"selectOne": "Silahkan Pilih Salah Satu",
|
||||
"alreadyHave": "Sudah Memiliki Akun?"
|
||||
"alreadyHave": "Sudah Memiliki Akun?",
|
||||
"userData": "Silahkan Lengkapi Data Pengguna",
|
||||
"registerFirst": "Silahkan Daftar terlebih Dahulu",
|
||||
"byRegis": "Dengan mendaftar, saya telah menyetujui",
|
||||
"terms": "Syarat dan Ketentuan",
|
||||
"enterOTP": "Masukkan kode OTP",
|
||||
"checkInbox": "Silahkan cek inbox atau kotak spam pada email Anda.",
|
||||
"resending": "Kirim Ulang",
|
||||
"fullName": "Nama Lengkap",
|
||||
"enterFullName": "Masukkan Nama Lengkap Anda",
|
||||
"enterUsername": "Masukkan Username Anda",
|
||||
"number": "Nomor Telepon",
|
||||
"enterNumber": "Masukkan Nomor Telepon Anda",
|
||||
"enterEmail": "Masukkan Email Anda",
|
||||
"address": "Alamat",
|
||||
"insertAddress": "Masukkan Alamat Lengkap Anda",
|
||||
"province": "Provinsi",
|
||||
"selectProv": "Pilih Provinsi",
|
||||
"city": "Kota / Kabupaten",
|
||||
"selectCity": "Pilih Kota / Kabupaten",
|
||||
"subdistrict": "Kecamatan",
|
||||
"selectSub": "Pilih Kecamatan",
|
||||
"confirmPass": "Konfirmasi Kata Sandi",
|
||||
"inputPass": "Masukkan Kata Sandi",
|
||||
"samePass": "Masukkan Kata Sandi yang Sama",
|
||||
"passCharacter": "Kata Sandi harus lebih dari 8 karakter",
|
||||
"passSpecial": "Kata Sandi harus memiliki spesial karakter",
|
||||
"passNumber": "Kata Sandi harus memiliki angka",
|
||||
"passCapital": "Kata Sandi harus memiliki huruf kapital",
|
||||
"passSame": "Kata Sandi Sama",
|
||||
"member": "Jenis Keanggotaan",
|
||||
"association": "Pilih Asosiasi",
|
||||
"otherIdentity": "Identitas Lainnya",
|
||||
"inputJournalist": "Masukkan Nomor Sertifikasi",
|
||||
"journalistNumber": "Nomor Sertifikasi Wartawan",
|
||||
"inputNumberIdentity": "Masukkan Nomor Identitas",
|
||||
"institutions": "Institusi",
|
||||
"selectInst": "Pilih Institusi",
|
||||
"otherInst": "Nama Institusi Lainnya",
|
||||
"instAddress": "Alamat Institusi",
|
||||
"instName": "Nama Institusi",
|
||||
"inputEmail": "Masukkan Email Anda",
|
||||
"emailValid": "Email Tidak Valid",
|
||||
"nameEmpty": "Nama Lengkap Tidak Boleh Kosong",
|
||||
"usernameEmpty": "Username Tidak Boleh Kosong",
|
||||
"numberEmpty": "Nomor Telepon Tidak Boleh Kosong",
|
||||
"addressEmpty": "Alamat Tidak boleh Kosong",
|
||||
"emailEmpty": "Email Tidak Boleh Kosong",
|
||||
"provinceEmpty": "Provinsi Tidak Boleh Kosong",
|
||||
"cityEmpty": "Kota/Kabupaten tidak boleh kosong",
|
||||
"subdistrictEmpty": "Kecamatan tidak boleh kosong",
|
||||
"passwordEmpty": "Kata Sandi tidak boleh kosong",
|
||||
"confirmEmpty": "Konfirmasi Kata Sandi tidak boleh kosong",
|
||||
"addressInst": "Masukkan Alamat lengkap institusi anda",
|
||||
"identityEmpty": "Nomor identitas tidak boleh kosong",
|
||||
"policeNumber": "Nomor Registrasi Polri (NRP)",
|
||||
"breakingNews": "BERITA TERKINI"
|
||||
|
||||
},
|
||||
"FilterPage": {
|
||||
"image": "Foto",
|
||||
|
|
|
|||
Loading…
Reference in New Issue