update: 英文排版+打包方式修改

style
icefire 2024-10-18 22:49:26 +08:00
parent 2f9f128f7d
commit da158c84ff
45 changed files with 66 additions and 92 deletions

View File

@ -1,6 +1,5 @@
/** @type {import('next').NextConfig} */ /** @type {import('next').NextConfig} */
const nextConfig = { const nextConfig = {
output: 'export',
}; };
export default nextConfig; export default nextConfig;

File diff suppressed because one or more lines are too long

View File

@ -1 +0,0 @@
self.__BUILD_MANIFEST={__rewrites:{afterFiles:[],beforeFiles:[],fallback:[]},"/_error":["static/chunks/pages/_error-2b1e5691dd2d9302.js"],sortedPages:["/_app","/_error"]},self.__BUILD_MANIFEST_CB&&self.__BUILD_MANIFEST_CB();

View File

@ -1 +0,0 @@
self.__SSG_MANIFEST=new Set(["\u002F[lang]\u002Fhome"]);self.__SSG_MANIFEST_CB&&self.__SSG_MANIFEST_CB()

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -1 +0,0 @@
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[958],{9238:function(e,t,n){Promise.resolve().then(n.bind(n,7168))},7168:function(e,t,n){"use strict";n.d(t,{default:function(){return c}});var r=n(881),s=n(6509),i=n(4149);function a(e){let{dict:t,lang:n}=e,[a,c]=(0,i.useState)(!1);return(0,r.jsx)(r.Fragment,{children:(0,r.jsxs)("div",{className:"relative",children:[(0,r.jsxs)("div",{className:"flex items-center w-[129px] h-[28px] bg-[#EEF1F6] border-[1px] border-[#eeeeee] rounded-[3px] px-[10px] mt-[18px] cursor-pointer",onClick:()=>c(!a),children:[(0,r.jsx)("img",{src:"/common/earth.png",width:16.5,height:16.5,alt:"logo"}),(0,r.jsx)("div",{className:"flex-1 text-[14px] text-[#333333] mx-[9px]",children:null==t?void 0:t.lang}),(0,r.jsx)("img",{className:"transition-transform duration-300 transform rotate-0 ".concat(a&&"rotate-180"),src:"/common/arrow.png",width:10,height:5,alt:"logo"})]}),(0,r.jsx)(s.default,{href:"zh"===n?"/en/home.html":"/index.html",children:(0,r.jsx)("div",{className:"absolute ".concat(!a&&"hidden"," top-[30px] w-[129px] h-[28px] \n bg-[#EEF1F6] text-center transition-all duration-300 origin-top group-hover:block"),children:(0,r.jsx)("div",{className:"text-[14px] text-[#333333]",children:null==t?void 0:t.lang1})})})]})})}function c(e){let{dict:t,lang:n}=e,[c,l]=(0,i.useState)(t.home),o=[{name:t.home,href:"#home"},{name:t.services,href:"#service"},{name:t.caseGallery,href:"#case"},{name:t.contactUs,href:"#contact "}];return(0,r.jsx)(r.Fragment,{children:(0,r.jsxs)("div",{className:"flex items-center px-[20px] h-[80px] border-b-1 border-solid border-[#D8D8D8]",style:{borderBottom:"1px solid #D8D8D8"},children:[(0,r.jsx)("img",{src:"/common/logo.png",width:180,height:47,alt:"logo"}),(0,r.jsx)("div",{className:"flex flex-1 items-end h-[80px] mx-[13px]",children:o.map(e=>(0,r.jsx)(s.default,{href:e.href,children:(0,r.jsxs)("div",{className:"text-center cursor-pointer",onClick:()=>l(e.name),children:[(0,r.jsx)("div",{className:"my-[10px] w-[144px] text-[18px]",children:e.name}),c===e.name?(0,r.jsx)("img",{src:"/common/tab_checked.png",width:144,height:8,alt:""}):(0,r.jsx)("div",{className:"h-[8px]"})]})},e.name))}),(0,r.jsx)("div",{className:"",children:(0,r.jsx)(a,{dict:t,lang:n})})]})})}}},function(e){e.O(0,[509,985,330,744],function(){return e(e.s=9238)}),_N_E=e.O()}]);

View File

@ -1 +0,0 @@
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[409],{6325:function(e,t,n){(window.__NEXT_P=window.__NEXT_P||[]).push(["/_not-found/page",function(){return n(9094)}])},9094:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"default",{enumerable:!0,get:function(){return s}}),n(8806);let i=n(881);n(4149);let o={fontFamily:'system-ui,"Segoe UI",Roboto,Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji"',height:"100vh",textAlign:"center",display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center"},l={display:"inline-block"},r={display:"inline-block",margin:"0 20px 0 0",padding:"0 23px 0 0",fontSize:24,fontWeight:500,verticalAlign:"top",lineHeight:"49px"},d={fontSize:14,fontWeight:400,lineHeight:"49px",margin:0};function s(){return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)("title",{children:"404: This page could not be found."}),(0,i.jsx)("div",{style:o,children:(0,i.jsxs)("div",{children:[(0,i.jsx)("style",{dangerouslySetInnerHTML:{__html:"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}),(0,i.jsx)("h1",{className:"next-error-h1",style:r,children:"404"}),(0,i.jsx)("div",{style:l,children:(0,i.jsx)("h2",{style:d,children:"This page could not be found."})})]})})]})}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)}},function(e){e.O(0,[985,330,744],function(){return e(e.s=6325)}),_N_E=e.O()}]);

View File

@ -1 +0,0 @@
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[185],{62:function(e,a,_){Promise.resolve().then(_.t.bind(_,5418,23)),Promise.resolve().then(_.t.bind(_,2045,23)),Promise.resolve().then(_.t.bind(_,8226,23))},8226:function(){},2045:function(e){e.exports={style:{fontFamily:"'__geistMono_c3aa02', '__geistMono_Fallback_c3aa02'"},className:"__className_c3aa02",variable:"__variable_c3aa02"}},5418:function(e){e.exports={style:{fontFamily:"'__geistSans_1e4310', '__geistSans_Fallback_1e4310'"},className:"__className_1e4310",variable:"__variable_1e4310"}}},function(e){e.O(0,[473,985,330,744],function(){return e(e.s=62)}),_N_E=e.O()}]);

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -1 +0,0 @@
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[744],{3030:function(e,n,t){Promise.resolve().then(t.t.bind(t,1013,23)),Promise.resolve().then(t.t.bind(t,8073,23)),Promise.resolve().then(t.t.bind(t,1626,23)),Promise.resolve().then(t.t.bind(t,6102,23)),Promise.resolve().then(t.t.bind(t,4262,23)),Promise.resolve().then(t.t.bind(t,2609,23))}},function(e){var n=function(n){return e(e.s=n)};e.O(0,[985,330],function(){return n(39),n(3030)}),_N_E=e.O()}]);

View File

@ -1 +0,0 @@
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[888],{9452:function(n,_,u){(window.__NEXT_P=window.__NEXT_P||[]).push(["/_app",function(){return u(4820)}])}},function(n){var _=function(_){return n(n.s=_)};n.O(0,[774,179],function(){return _(9452),_(6699)}),_N_E=n.O()}]);

View File

@ -1 +0,0 @@
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[820],{7022:function(n,_,u){(window.__NEXT_P=window.__NEXT_P||[]).push(["/_error",function(){return u(3936)}])}},function(n){n.O(0,[888,774,179],function(){return n(n.s=7022)}),_N_E=n.O()}]);

File diff suppressed because one or more lines are too long

View File

@ -1 +0,0 @@
!function(){"use strict";var e,t,n,r,o,u,i,c,f,a={},l={};function d(e){var t=l[e];if(void 0!==t)return t.exports;var n=l[e]={exports:{}},r=!0;try{a[e](n,n.exports,d),r=!1}finally{r&&delete l[e]}return n.exports}d.m=a,e=[],d.O=function(t,n,r,o){if(n){o=o||0;for(var u=e.length;u>0&&e[u-1][2]>o;u--)e[u]=e[u-1];e[u]=[n,r,o];return}for(var i=1/0,u=0;u<e.length;u++){for(var n=e[u][0],r=e[u][1],o=e[u][2],c=!0,f=0;f<n.length;f++)i>=o&&Object.keys(d.O).every(function(e){return d.O[e](n[f])})?n.splice(f--,1):(c=!1,o<i&&(i=o));if(c){e.splice(u--,1);var a=r();void 0!==a&&(t=a)}}return t},d.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return d.d(t,{a:t}),t},n=Object.getPrototypeOf?function(e){return Object.getPrototypeOf(e)}:function(e){return e.__proto__},d.t=function(e,r){if(1&r&&(e=this(e)),8&r||"object"==typeof e&&e&&(4&r&&e.__esModule||16&r&&"function"==typeof e.then))return e;var o=Object.create(null);d.r(o);var u={};t=t||[null,n({}),n([]),n(n)];for(var i=2&r&&e;"object"==typeof i&&!~t.indexOf(i);i=n(i))Object.getOwnPropertyNames(i).forEach(function(t){u[t]=function(){return e[t]}});return u.default=function(){return e},d.d(o,u),o},d.d=function(e,t){for(var n in t)d.o(t,n)&&!d.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},d.f={},d.e=function(e){return Promise.all(Object.keys(d.f).reduce(function(t,n){return d.f[n](e,t),t},[]))},d.u=function(e){},d.miniCssF=function(e){},d.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r={},o="_N_E:",d.l=function(e,t,n,u){if(r[e]){r[e].push(t);return}if(void 0!==n)for(var i,c,f=document.getElementsByTagName("script"),a=0;a<f.length;a++){var l=f[a];if(l.getAttribute("src")==e||l.getAttribute("data-webpack")==o+n){i=l;break}}i||(c=!0,(i=document.createElement("script")).charset="utf-8",i.timeout=120,d.nc&&i.setAttribute("nonce",d.nc),i.setAttribute("data-webpack",o+n),i.src=d.tu(e)),r[e]=[t];var s=function(t,n){i.onerror=i.onload=null,clearTimeout(p);var o=r[e];if(delete r[e],i.parentNode&&i.parentNode.removeChild(i),o&&o.forEach(function(e){return e(n)}),t)return t(n)},p=setTimeout(s.bind(null,void 0,{type:"timeout",target:i}),12e4);i.onerror=s.bind(null,i.onerror),i.onload=s.bind(null,i.onload),c&&document.head.appendChild(i)},d.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},d.tt=function(){return void 0===u&&(u={createScriptURL:function(e){return e}},"undefined"!=typeof trustedTypes&&trustedTypes.createPolicy&&(u=trustedTypes.createPolicy("nextjs#bundler",u))),u},d.tu=function(e){return d.tt().createScriptURL(e)},d.p="/_next/",i={272:0,473:0},d.f.j=function(e,t){var n=d.o(i,e)?i[e]:void 0;if(0!==n){if(n)t.push(n[2]);else if(/^(272|473)$/.test(e))i[e]=0;else{var r=new Promise(function(t,r){n=i[e]=[t,r]});t.push(n[2]=r);var o=d.p+d.u(e),u=Error();d.l(o,function(t){if(d.o(i,e)&&(0!==(n=i[e])&&(i[e]=void 0),n)){var r=t&&("load"===t.type?"missing":t.type),o=t&&t.target&&t.target.src;u.message="Loading chunk "+e+" failed.\n("+r+": "+o+")",u.name="ChunkLoadError",u.type=r,u.request=o,n[1](u)}},"chunk-"+e,e)}}},d.O.j=function(e){return 0===i[e]},c=function(e,t){var n,r,o=t[0],u=t[1],c=t[2],f=0;if(o.some(function(e){return 0!==i[e]})){for(n in u)d.o(u,n)&&(d.m[n]=u[n]);if(c)var a=c(d)}for(e&&e(t);f<o.length;f++)r=o[f],d.o(i,r)&&i[r]&&i[r][0](),i[r]=0;return d.O(a)},(f=self.webpackChunk_N_E=self.webpackChunk_N_E||[]).forEach(c.bind(null,0)),f.push=c.bind(null,f.push.bind(f))}();

File diff suppressed because one or more lines are too long

Binary file not shown.

Before

Width:  |  Height:  |  Size: 316 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 645 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 529 B

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

Binary file not shown.

Before

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 198 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 159 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 160 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 340 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 86 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 117 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 229 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 424 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 63 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 39 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 550 B

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -1,8 +1,4 @@
export async function generateStaticParams() {
return ['en', 'zh'].map((post) => ({
lang: post,
}))
}
@ -17,15 +13,15 @@ type CaseType = {
} }
export type PropsType = { export type PropsType = {
params: { params: {
lang: string; lang: string[];
}; };
} }
export default async function Home (props: PropsType) { export default async function Home (props: PropsType) {
const lang = props.params.lang; const lang = props.params.lang || ['zh'];
const dict = await getDictionary(lang); const dict = await getDictionary(lang[0]);
const caseList: CaseType[] = [ const caseList: CaseType[] = [
{ img: '/home/case_1.png' }, { img: '/home/case_1.png' },
{ img: '/home/case_2.png' }, { img: '/home/case_2.png' },
@ -45,12 +41,12 @@ export default async function Home (props: PropsType) {
] ]
return <> return <>
<div className='w-full'> <div className='w-full'>
<div className="w-[1440px] mx-auto"> <div className="w-min-[1440px] w-max-[1920px] mx-auto">
<Header dict={dict} lang={lang} /> <Header dict={dict} lang={lang} />
<section id="home"> <section id="home">
<div className="w-full h-[770px] bg-[url('/home/img_header.png')] bg-right bg-no-repeat pt-[279px] pl-[172px]"> <div className="w-full h-[770px] bg-[url('/home/img_header.png')] bg-right bg-no-repeat pt-[279px] pl-[72px]">
<div <div
className="text-[46px] leading-[62px] w-[368px] text-center" className="text-[46px] leading-[62px] w-[585px] text-center"
> >
<div <div
className="font-black" className="font-black"
@ -135,6 +131,7 @@ export default async function Home (props: PropsType) {
{ dict.expandInfluence } { dict.expandInfluence }
</div> </div>
</div> </div>
<section id="case">
<div className="w-full h-[317px] relative mt-[83px]"> <div className="w-full h-[317px] relative mt-[83px]">
<img <img
className="absolute" className="absolute"
@ -144,16 +141,17 @@ export default async function Home (props: PropsType) {
alt="" alt=""
/> />
<div className="absolute w-[610px] text-[32px] top-[100px] right-[115px] text-[#333333] text-right font-semibold"> <div className="absolute w-[691px] text-[32px] top-[100px] right-[115px] text-[#333333] text-right font-semibold">
{ dict.lightweightDeployment } { dict.lightweightDeployment }
</div> </div>
<div className="absolute w-[600px] text-[32px] top-[145px] right-[115px] text-[#333333] text-right font-semibold"> <div className="absolute w-[712px] text-[32px] top-[145px] right-[115px] text-[#333333] text-right font-semibold">
{ dict.simplifyProcess } { dict.simplifyProcess }
</div> </div>
</div> </div>
<div className="w-full flex flex-col justify-center items-center mt-[98px]"> <div className="w-full flex flex-col justify-center items-center mt-[98px]">
<div <div
className="leading-[34px] text-[36px] font-black w-[150px] mb-[11px]" className="leading-[42px] text-[36px] font-black w-[300px] mb-[11px] text-center"
style={{ style={{
background: 'linear-gradient(90deg, #93BBE6 0%, #4C76E4 100%)', background: 'linear-gradient(90deg, #93BBE6 0%, #4C76E4 100%)',
backgroundClip: 'text', backgroundClip: 'text',
@ -162,20 +160,28 @@ export default async function Home (props: PropsType) {
>{ dict.caseGallery }</div> >{ dict.caseGallery }</div>
<div className="text-[19px] text-[#59676C]">{ dict.clickNow }</div> <div className="text-[19px] text-[#59676C]">{ dict.clickNow }</div>
</div> </div>
</section>
<section id="case">
<div className="w-full px-[40px] flex flex-wrap justify-center gap-[50px] mt-[34px] mb-[83px]"> <div className="w-full px-[40px] flex flex-wrap justify-center gap-[50px] mt-[34px] mb-[83px]">
{ {
caseList.map((item: CaseType, index: number) => { caseList.map((item: CaseType, index: number) => {
return <div key={'key'+index} className="cursor-pointer"> return <div key={'key'+index} className="cursor-pointer relative group">
<img <div className='hover:scale-[1.17] hover:shadow-[0px_0px_20px_8px_#0988FF] rounded-[60px]'>
className="hover:scale-[1.17] hover:shadow-[0px_0px_20px_8px_#0988FF] rounded-[60px] <img
transition ease-in-out duration-300" className="rounded-[60px]
src={item.img} transition ease-in-out duration-300"
width={300} src={item.img}
height={300} width={300}
alt="" height={300}
/> alt=""
/>
<div className='absolute bottom-0 w-full h-[81px] bg-[#002653] text-center
text-white text-[30px] hidden group-hover:block '
style={{borderRadius: '0px 0px 60px 60px', lineHeight: '81px'}}
>
{dict.clickToPlay}
</div>
</div>
</div> </div>
}) })
} }
@ -186,11 +192,11 @@ export default async function Home (props: PropsType) {
<div>{ dict.contactUs1 }</div> <div>{ dict.contactUs1 }</div>
</div> </div>
</div> </div>
</section>
<section id="contact"> <section id="contact">
<div className="w-full flex flex-col justify-center items-center mt-[98px] mb-[59px]"> <div className="w-full flex flex-col justify-center items-center mt-[98px] mb-[59px]">
<div <div
className="leading-[34px] text-[36px] font-black w-[150px] mb-[11px]" className="leading-[34px] text-[36px] font-black w-[300px] mb-[11px] text-center"
style={{ style={{
background: 'linear-gradient(90deg, #93BBE6 0%, #4C76E4 100%)', background: 'linear-gradient(90deg, #93BBE6 0%, #4C76E4 100%)',
backgroundClip: 'text', backgroundClip: 'text',

View File

@ -3,16 +3,17 @@ import Link from "next/link";
import { useState } from "react"; import { useState } from "react";
type NavType = { type NavType = {
name: string; name: string;
href: string; href: string;
} }
function SplitButton(props: {dict: Record<string, string>, lang: string}) { function SplitButton(props: {dict: Record<string, string>, lang: string[]}) {
const { dict, lang } = props const { dict, lang } = props
const [show, setShow] = useState(false) const [show, setShow] = useState(false)
return <> return <>
<div className="relative"> <div className="">
<div className="flex items-center w-[129px] h-[28px] bg-[#EEF1F6] <div className="flex items-center w-[129px] h-[28px] bg-[#EEF1F6]
border-[1px] border-[#eeeeee] rounded-[3px] px-[10px] mt-[18px] cursor-pointer" border-[1px] border-[#eeeeee] rounded-[3px] px-[10px] mt-[18px] cursor-pointer"
onClick={() => setShow(!show)}> onClick={() => setShow(!show)}>
@ -32,17 +33,21 @@ function SplitButton(props: {dict: Record<string, string>, lang: string}) {
/> />
</div> </div>
{ {
<Link href={lang === 'zh' ? '/en/home.html' : '/index.html'}>
<div className={`absolute ${!show && 'hidden'} top-[30px] w-[129px] h-[28px] <div className={`absolute ${!show && 'hidden'} w-[100vw] h-[100vh] left-0 top-0 z-[1000]`} onClick={() => setShow(false)}>
bg-[#EEF1F6] text-center transition-all duration-300 origin-top group-hover:block`}> <Link href={lang[0] === 'zh' ? '/en' : '/'}>
<div className="text-[14px] text-[#333333]">{dict?.lang1}</div> <div className={`absolute right-[40px] top-[68px] w-[129px] h-[28px]
bg-[#EEF1F6] text-center transition-all duration-300 origin-top group-hover:block`}>
<div className="text-[14px] text-[#333333]">{dict?.lang1}</div>
</div>
</Link>
</div> </div>
</Link>
} }
</div> </div>
</> </>
} }
export default function Header(props: {dict: Record<string, string>, lang: string}) { export default function Header(props: {dict: Record<string, string>, lang: string[]}) {
const { dict, lang } = props const { dict, lang } = props
const [activeTab, setActiveTab] = useState(dict.home) const [activeTab, setActiveTab] = useState(dict.home)
const navList: NavType[] = [ const navList: NavType[] = [
@ -64,7 +69,7 @@ export default function Header(props: {dict: Record<string, string>, lang: strin
}, },
] ]
return (<> return (<>
<div className={"flex items-center px-[20px] h-[80px] border-b-1 border-solid border-[#D8D8D8]"} <div className={"flex items-center px-[20px] h-[80px] border-b-1 border-solid border-[#D8D8D8] fixed w-full bg-white z-[999]"}
style={{ borderBottom: '1px solid #D8D8D8' }} style={{ borderBottom: '1px solid #D8D8D8' }}
> >
<img <img
@ -90,9 +95,11 @@ export default function Header(props: {dict: Record<string, string>, lang: strin
} }
</div> </div>
<div className=""> <div className="">
<SplitButton dict={dict} lang={lang} /> <SplitButton dict={dict} lang={lang} />
</div> </div>
</div> </div>
<div className="h-[80px]"></div>
</> </>
) )
} }

View File

@ -3,21 +3,21 @@
"lang1": "简体中文", "lang1": "简体中文",
"home": "Home", "home": "Home",
"services": "Services", "services": "Services",
"caseGallery": "Case gallery", "caseGallery": "Case Gallery",
"contactUs": "Contact Us", "contactUs": "Contact Us",
"FocusingOnPlayableAds": "Focusing on playable ads", "FocusingOnPlayableAds": "Realization of",
"goOverseas": "comprehensively assisting the game to go overseas", "goOverseas": "high quality playable ads",
"customized": "100% customized , tailored to the needs of the project to create a playable ad Ensure full compliance with product image and market positioning", "customized": "100% customized, Ensure full compliance with product image and market positioning",
"ABTesting": "Support A/B testing, by optimizing the material content", "ABTesting": "Supports A/B testing to improve",
"iterateGameplay": "Iterate gameplay to improve conversion rate and user experience", "iterateGameplay": "conversions through iterative gameplay",
"multiLanguage": "Multi-language support, covering the global multi-language version", "multiLanguage": "Multi-language support and",
"breakingGeographical": "Breaking geographical restrictions and realizing internationalized layout", "breakingGeographical": "internationalized layout",
"allChannel": "All-channel adaptation, access to major mainstream distribution channels", "allChannel": "Omni-channel adaptation to",
"expandInfluence": "Let your products reach more potential users and expand your brand influence", "expandInfluence": "expand brand influence",
"lightweightDeployment": "Lightweight deployment, providing convenient product effect preview solutions", "lightweightDeployment": "Lightweight deployment, providing",
"simplifyProcess": "Simplify the user decision-making process, easy to track the progress of each stage", "simplifyProcess": "convenient product effect preview solutions",
"clickNow": "Click on the icon to experience it now", "clickNow": "Click on the icon to experience it now",
"seeMore": "Want to see more?", "seeMore": "See more?",
"contactUs1": "Contact us!", "contactUs1": "Contact us!",
"businessCooperation": "Business Cooperation/Job Hunting:", "businessCooperation": "Business Cooperation/Job Hunting:",
"addWeChat": "Add WeChat to enjoy exclusive services", "addWeChat": "Add WeChat to enjoy exclusive services",
@ -27,6 +27,7 @@
"legalAgreements": "Legal & Agreements", "legalAgreements": "Legal & Agreements",
"privacyPolicy": "Privacy Policy", "privacyPolicy": "Privacy Policy",
"userAgreement": "User Agreement", "userAgreement": "User Agreement",
"productPricing": "Product Pricing" "productPricing": "Product Pricing",
"clickToPlay": "Click to play"
} }

View File

@ -27,5 +27,6 @@
"legalAgreements": "法律与协议", "legalAgreements": "法律与协议",
"privacyPolicy": "隐私条款", "privacyPolicy": "隐私条款",
"userAgreement": "用户协议", "userAgreement": "用户协议",
"productPricing": "产品定价" "productPricing": "产品定价",
"clickToPlay": "点击游玩"
} }