This commit is contained in:
liangzai 2024-09-20 21:41:33 +08:00
parent c4de918726
commit 6bf444b164
3 changed files with 34 additions and 6 deletions

View File

@ -12,11 +12,16 @@ export default function Page() {
url: "/api/plans/", url: "/api/plans/",
method: "GET", method: "GET",
}); });
const isMobile = useIsMobile();
useEffect(() => { useEffect(() => {
GetPricing().then((res) => { GetPricing().then((res) => {
console.log("pricing:", res); console.log("pricing:", res);
}); });
}, []); }, []);
let alipayUrl = "/api/alipay/create_order/";
if (isMobile) {
alipayUrl = "api/alipay/create_h5_order/";
}
const { const {
fetchData: createPayPalOrder, fetchData: createPayPalOrder,
loading: payPalLoading, loading: payPalLoading,
@ -32,7 +37,7 @@ export default function Page() {
loading: alipayLoading, loading: alipayLoading,
data: alipayData, data: alipayData,
} = useFetch({ } = useFetch({
url: "/api/alipay/create_order/", url: alipayUrl,
method: "POST", method: "POST",
}); });
@ -245,3 +250,16 @@ export default function Page() {
</> </>
); );
} }
const useIsMobile = () => {
const [isMobile, setIsMobile] = useState(false);
useEffect(() => {
const userAgent =
typeof window !== "undefined" ? navigator.userAgent : "";
const mobileRegex =
/Android|iPhone|iPad|iPod|Opera Mini|IEMobile|WPDesktop/i;
setIsMobile(mobileRegex.test(userAgent));
}, []);
return isMobile;
};

View File

@ -1,5 +1,6 @@
import { getRequestConfig } from 'next-intl/server'; import { getRequestConfig } from 'next-intl/server';
import { headers } from "next/headers"; import { headers } from "next/headers";
export default getRequestConfig(async () => { export default getRequestConfig(async () => {
const headersList = headers(); const headersList = headers();
const acceptLanguage = headersList.get("accept-language"); const acceptLanguage = headersList.get("accept-language");
@ -8,7 +9,8 @@ export default getRequestConfig(async () => {
let locale = 'en'; // 默认语言 let locale = 'en'; // 默认语言
if (acceptLanguage) { if (acceptLanguage) {
// 根据首选语言选择合适的 locale // 根据首选语言选择合适的 locale
const preferredLanguages = acceptLanguage.split(',').map(lang => lang.split(';')[0].trim()); const preferredLanguages = acceptLanguage.split(',')
.map(lang => lang.split(';')[0].trim().slice(0, 2)); // 提取语言的前两个字符,如 'zh-CN' -> 'zh'
const supportedLocales = ['en', 'zh']; // 支持的语言列表 const supportedLocales = ['en', 'zh']; // 支持的语言列表
// 检查首选语言是否在支持的语言列表中 // 检查首选语言是否在支持的语言列表中
@ -24,4 +26,4 @@ export default getRequestConfig(async () => {
locale, locale,
messages: (await import(`../../public/locales/${locale}.json`)).default messages: (await import(`../../public/locales/${locale}.json`)).default
}; };
}); });

View File

@ -12,11 +12,19 @@ export default function PageFooter() {
<span>{t("companyNameEn")}</span> <span>{t("companyNameEn")}</span>
</div> </div>
<div className="text-center text-gray-300 text-sm mt-2"> <div className="text-center text-gray-300 text-sm mt-2">
<a href={t("domain1")} target="_blank" rel="noopener noreferrer"> <a
href={t("domain1")}
target="_blank"
rel="noopener noreferrer"
>
{t("domain1")} {t("domain1")}
</a>{" "} </a>{" "}
|{" "} |{" "}
<a href={t("domain2")} target="_blank" rel="noopener noreferrer"> <a
href={t("domain2")}
target="_blank"
rel="noopener noreferrer"
>
{t("domain2")} {t("domain2")}
</a> </a>
</div> </div>
@ -24,7 +32,7 @@ export default function PageFooter() {
{t("icpNumber")} {t("icpNumber")}
</div> </div>
</div> </div>
<div className="flex flex-col-reverse md:flex-row justify-between mt-8"> <div className="flex justify-center mt-8">
{/* 其他内容 */} {/* 其他内容 */}
<div className="text-[#BEFFD6] underline underline-offset-2 space-x-3"> <div className="text-[#BEFFD6] underline underline-offset-2 space-x-3">
<a href="/terms">{t("termsOfService")}</a> <a href="/terms">{t("termsOfService")}</a>