diff --git a/build.js b/build.js index 84cdf62..2b82573 100644 --- a/build.js +++ b/build.js @@ -8,7 +8,7 @@ const template = fs.readFileSync(path.join(__dirname, 'template.html'), 'utf-8') data.languages.forEach(lang => { const content = data.content[lang]; let html = template; - + html = html.replace(/{{langCode}}/g, lang); html = html.replace(/{{title}}/g, content.title); html = html.replace(/{{metaDesc}}/g, content.metaDesc); @@ -16,8 +16,7 @@ data.languages.forEach(lang => { // 语言链接 - 动态生成 const langLinksHtml = data.languages.map(l => { const lContent = data.content[l]; - // 只有当不是当前语言时,才显示链接 - if (l === lang) return `${lContent.langName}`; + if (l === lang) return `${lContent.langName}`; return `${lContent.langName}`; }).join(''); html = html.replace(/{{languageLinks}}/g, langLinksHtml); @@ -28,10 +27,12 @@ data.languages.forEach(lang => { // 表格行 + 详情行 const rowsHtml = content.cities.map((city, idx) => ` - + - ${city.name} - ${city.region} +
+ ${city.name} + ${city.region} +
${city.matches} ${city.budget} @@ -53,7 +54,7 @@ data.languages.forEach(lang => { `).join(''); - + html = html.replace(/{{tableRows}}/g, rowsHtml); const distDir = path.join(__dirname, 'dist'); diff --git a/data.js b/data.js index dace2ec..77004dd 100644 --- a/data.js +++ b/data.js @@ -10,19 +10,16 @@ module.exports = { ui_stadium: "球场详情", ui_logistics: "物流与避坑", cities: [ - // 西部赛区 (West) { name: "🇨🇦 温哥华 (Vancouver)", region: "西部", matches: "7 场", budget: "$250 - $350", visa: "需加签/eTA", vCls: "v-warn", tips: "气候最凉爽的夏季赛区", std: "卑诗体育馆 (BC Place): 位于市中心,步行可达,有伸缩顶棚。", log: "物价极高;公共交通发达;6月气候宜人适合旅游。" }, { name: "🇺🇸 西雅图 (Seattle)", region: "西部", matches: "6 场", budget: "$220 - $320", visa: "需美签", vCls: "v-req", tips: "全美足球氛围最浓城市", std: "流明球场 (Lumen Field): 以全美最吵闹的观众席著称。", log: "坡道多,建议穿着运动鞋;海鲜非常出名。" }, { name: "🇺🇸 旧金山 (San Francisco)", region: "西部", matches: "6 场", budget: "$300 - $450", visa: "需美签", vCls: "v-req", tips: "科技迷朝圣地", std: "李维斯体育场 (Levi's Stadium): 实际位于圣克拉拉。", log: "⚠️ 警告:球场离旧金山市区 1 小时车程,建议住圣何塞附近。" }, { name: "🇺🇸 洛杉矶 (Los Angeles)", region: "西部", matches: "8 场", budget: "$300 - $500", visa: "需美签", vCls: "v-req", tips: "最奢华的视听球场", std: "SoFi 体育场: 全球造价最高,带环形巨屏,全室内空调。", log: "交通拥堵严重,公共交通差,必须租车。消费水平高。" }, - // 中部赛区 (Central) { name: "🇲🇽 瓜达拉哈拉 (Guadalajara)", region: "中部", matches: "4 场", budget: "$70 - $110", visa: "免签 (有美签)", vCls: "v-free", tips: "最正宗的墨西哥风情", std: "阿克伦球场: 造型前卫。墨西哥国家队分主场。", log: "龙舌兰之乡;物价极低;需留意基本安全及卫生。" }, { name: "🇲🇽 墨西哥城 (Mexico City)", region: "中部", matches: "5 场 (揭幕战)", budget: "$80 - $130", visa: "免签 (有美签)", vCls: "v-free", tips: "世界杯“朝圣”第一站", std: "阿兹特克球场: 足球史上唯一的“三朝圣地”,海拔 2240m。", log: "⚠️ 警惕高原反应;开幕式地点;历史感最强,性价比极高。" }, { name: "🇲🇽 蒙特雷 (Monterrey)", region: "中部", matches: "4 场", budget: "$90 - $140", visa: "免签 (有美签)", vCls: "v-free", tips: "景观最美的“马鞍山”球场", std: "BBVA 体育场: 坐在看台能直视壮丽的山景。", log: "工业之都,生活便利;夏季极热,注意补水。" }, { name: "🇺🇸 休斯顿 (Houston)", region: "中部", matches: "7 场", budget: "$150 - $220", visa: "需美签", vCls: "v-req", tips: "完全无视天气的室内球场", std: "NRG 体育场: 巨大的室内空调球场,完全无视户外热浪。", log: "气候极度湿热;城市极其分散,完全依赖租车。" }, { name: "🇺🇸 达拉斯 (Dallas)", region: "中部", matches: "9 场 (场次最多)", budget: "$180 - $260", visa: "需美签", vCls: "v-req", tips: "全美赛程大本营", std: "AT&T 体育场: 承办半决赛,拥有全球最大的吊顶屏幕。", log: "全美最核心中转站;夏天极热,但球场内有空调。" }, { name: "🇺🇸 堪萨斯城 (Kansas City)", region: "中部", matches: "6 场", budget: "$140 - $200", visa: "需美签", vCls: "v-req", tips: "烧烤与最狂热死忠", std: "箭头体育场: 曾创造全球最响亮体育场分贝记录。", log: "地理位置绝佳,适合作为东西部跨城中转站。" }, - // 东部赛区 (East) { name: "🇨🇦 多伦多 (Toronto)", region: "东部", matches: "6 场", budget: "$220 - $320", visa: "需加签/eTA", vCls: "v-warn", tips: "华人社区最发达的赛区", std: "BMO 球场: 扩建后观感紧凑。加国家队主场。", log: "公共交通极其便利;多元文化饮食丰富,生活无障碍。" }, { name: "🇺🇸 波士顿 (Boston)", region: "东部", matches: "7 场", budget: "$280 - $400", visa: "需美签", vCls: "v-req", tips: "历史底蕴与学院风", std: "吉列体育场: 位于 Foxborough 郊区。", log: "⚠️ 警告:离波士顿市区很远,建议搭乘赛事特开火车。" }, { name: "🇺🇸 费城 (Philadelphia)", region: "东部", matches: "6 场", budget: "$200 - $300", visa: "需美签", vCls: "v-req", tips: "东部核心陆路枢纽", std: "林肯金融体育场: 位于费城综合体育中心。", log: "离纽约极近,可以作为纽约住宿太贵的替代选择。" }, @@ -33,29 +30,54 @@ module.exports = { }, en: { langName: "English", - title: "2026 World Cup: 16 Host Cities Planner", - metaDesc: "Detailed comparison of all 16 host cities for the 2026 World Cup. Visa, budget, and stadiums info.", - headers: ["City & Region", "Matches", "Budget", "Visa", "Vibe"], - ui_stadium: "Stadium Info", - ui_logistics: "Logistics", + title: "FIFA 2026: 16 Cities Comparison Tool", + metaDesc: "Comprehensive guide for the 2026 FIFA World Cup: Compare 16 host cities on matches, budget, visas, and stadium tips.", + headers: ["City & Region", "Matches", "Budget", "Visa Info", "Key Tips"], + ui_stadium: "Stadium Details", + ui_logistics: "Logistics & Advice", cities: [ - { name: "🇲🇽 Mexico City", region: "Central", matches: "5 (Opener)", budget: "$80-130", visa: "Visa Free*", vCls: "v-free", tips: "The Opening Ceremony", std: "Estadio Azteca: Historic temple.", log: "Altitude alert: 2,240m. Stay hydrated." }, - { name: "🇺🇸 Dallas", region: "Central", matches: "9 (Most)", budget: "$180-260", visa: "Visa Req.", vCls: "v-req", tips: "Most Matches / Hub", std: "AT&T Stadium: Massive dome with giant screen.", log: "Texas heat is real; car rental is a must." }, - { name: "🇺🇸 NY/NJ", region: "East", matches: "8 (Final)", budget: "$400-600", visa: "Visa Req.", vCls: "v-req", tips: "The Grand Finale", std: "MetLife Stadium: World stage for the Final.", log: "Hotels are extremely expensive. Book early." } - // ... (Other 13 cities simplified for briefness, same structure as above) + { name: "🇨🇦 Vancouver", region: "West", matches: "7 Matches", budget: "$250 - $350", visa: "Visa/eTA Req.", vCls: "v-warn", tips: "Coolest summer climate", std: "BC Place: Downtown, retractable roof, walkable.", log: "High prices; great public transit; pleasant June weather." }, + { name: "🇺🇸 Seattle", region: "West", matches: "6 Matches", budget: "$220 - $320", visa: "US Visa Req.", vCls: "v-req", tips: "Best football atmosphere in USA", std: "Lumen Field: Known for the loudest crowd in the US.", log: "Hilly city, wear sneakers; famous for seafood." }, + { name: "🇺🇸 San Francisco", region: "West", matches: "6 Matches", budget: "$300 - $450", visa: "US Visa Req.", vCls: "v-req", tips: "Tech lover's pilgrimage", std: "Levi's Stadium: Located in Santa Clara, not SF city center.", log: "Warning: Stadium is 1 hour from SF; consider staying in San Jose." }, + { name: "🇺🇸 Los Angeles", region: "West", matches: "8 Matches", budget: "$300 - $500", visa: "US Visa Req.", vCls: "v-req", tips: "Ultimate luxury stadium experience", std: "SoFi Stadium: World's most expensive stadium with a giant ring screen.", log: "Heavy traffic, car rental mandatory; high living costs." }, + { name: "🇲🇽 Guadalajara", region: "Central", matches: "4 Matches", budget: "$70 - $110", visa: "Visa-Free (with US Visa)", vCls: "v-free", tips: "Authentic Mexican culture", std: "Estadio Akron: Modern design. Alternative home for Mexico.", log: "Birthplace of Tequila; very affordable; watch for basic safety." }, + { name: "🇲🇽 Mexico City", region: "Central", matches: "5 (Opening)", budget: "$80 - $130", visa: "Visa-Free (with US Visa)", vCls: "v-free", tips: "Football's holiest shrine", std: "Estadio Azteca: Only stadium to host 3 World Cups; 2240m altitude.", log: "Altitude warning; opening match site; historic and great value." }, + { name: "🇲🇽 Monterrey", region: "Central", matches: "4 Matches", budget: "$90 - $140", visa: "Visa-Free (with US Visa)", vCls: "v-free", tips: "Most scenic mountain view stadium", std: "Estadio BBVA: Incredible views of the 'Saddle Mountain'.", log: "Industrial hub; very convenient; extremely hot in summer." }, + { name: "🇺🇸 Houston", region: "Central", matches: "7 Matches", budget: "$150 - $220", visa: "US Visa Req.", vCls: "v-req", tips: "All-weather indoor stadium", std: "NRG Stadium: Massive air-conditioned dome ignoring outdoor heat.", log: "Very humid; city is sprawling; car rental is essential." }, + { name: "🇺🇸 Dallas", region: "Central", matches: "9 (Most)", budget: "$180 - $260", visa: "US Visa Req.", vCls: "v-req", tips: "Central hub for the tournament", std: "AT&T Stadium: Semi-final host, world's largest suspended screen.", log: "The true central hub; hot summer but indoor AC is great." }, + { name: "🇺🇸 Kansas City", region: "Central", matches: "6 Matches", budget: "$140 - $200", visa: "US Visa Req.", vCls: "v-req", tips: "BBQ and die-hard fans", std: "Arrowhead Stadium: Once held the Guinness record for loudest stadium.", log: "Perfect central location for cross-country travel." }, + { name: "🇨🇦 Toronto", region: "East", matches: "6 Matches", budget: "$220 - $320", visa: "Visa/eTA Req.", vCls: "v-warn", tips: "Diverse multicultural hub", std: "BMO Field: Compact atmosphere. Home for Canada.", log: "Excellent transit; amazing food diversity; zero-barrier living." }, + { name: "🇺🇸 Boston", region: "East", matches: "7 Matches", budget: "$280 - $400", visa: "US Visa Req.", vCls: "v-req", tips: "History and academic charm", std: "Gillette Stadium: Located in Foxborough, far from downtown.", log: "Warning: Far from Boston; use special tournament trains." }, + { name: "🇺🇸 Philadelphia", region: "East", matches: "6 Matches", budget: "$200 - $300", visa: "US Visa Req.", vCls: "v-req", tips: "The East Coast transit hub", std: "Lincoln Financial Field: Part of the city's sports complex.", log: "Close to NYC; a great budget alternative for accommodation." }, + { name: "🇺🇸 Miami", region: "East", matches: "7 Matches", budget: "$300 - $500", visa: "US Visa Req.", vCls: "v-req", tips: "Football, beach, and parties", std: "Hard Rock Stadium: 3rd place match host. Messi-land.", log: "Vibrant atmosphere; tropical summer rains; stay flexible." }, + { name: "🇺🇸 Atlanta", region: "East", matches: "8 Matches", budget: "$180 - $280", visa: "US Visa Req.", vCls: "v-req", tips: "World's busiest travel hub", std: "Mercedes-Benz Stadium: Semi-final host, unique shutter-style roof.", log: "Busiest airport in the world; stadium is transit-accessible." }, + { name: "🇺🇸 New York / NJ", region: "East", matches: "8 (Final)", budget: "$400 - $600", visa: "US Visa Req.", vCls: "v-req", tips: "Center of the world / Final venue", std: "MetLife Stadium: The venue for the Final on July 19, 2026.", log: "Highest costs; hotels are scarce; stay on NJ side for better rates." } ] }, es: { langName: "Español", - title: "Guía de las 16 Sedes del Mundial 2026", - metaDesc: "Comparativa detallada de las 16 sedes de la Copa Mundial 2026. Visa, presupuesto y estadios.", - headers: ["Ciudad", "Partidos", "Presupuesto", "Visa", "Consejo"], - ui_stadium: "Estadio", - ui_logistics: "Logística", + title: "Sedes Mundial 2026: Guía Comparativa", + metaDesc: "Guía completa del Mundial 2026: Compara las 16 sedes, presupuestos, visas y consejos de estadios.", + headers: ["Ciudad y Región", "Partidos", "Presupuesto", "Visa", "Claves"], + ui_stadium: "Detalles del Estadio", + ui_logistics: "Logística y Consejos", cities: [ - { name: "🇲🇽 CDMX", region: "Central", matches: "5 (Apertura)", budget: "$80-130", visa: "Sin Visa", vCls: "v-free", tips: "La Inauguración", std: "Estadio Azteca: El coloso de Santa Úrsula.", log: "Cuidado con la altitud. Hidrátate bien." }, - { name: "🇺🇸 Dallas", region: "Central", matches: "9 (Máximo)", budget: "$180-260", visa: "Visa Requerida", vCls: "v-req", tips: "Sede con más partidos", std: "AT&T Stadium: El domo más grande de Texas.", log: "El calor es extremo; transporte público limitado." } - // ... (Other 13 cities follow same structure) + { name: "🇨🇦 Vancouver", region: "Oeste", matches: "7 Partidos", budget: "$250 - $350", visa: "Visa/eTA Req.", vCls: "v-warn", tips: "El clima más fresco del verano", std: "BC Place: En el centro, techo retráctil.", log: "Precios altos; buen transporte público; clima ideal en junio." }, + { name: "🇺🇸 Seattle", region: "Oeste", matches: "6 Partidos", budget: "$220 - $320", visa: "Visa EEUU Req.", vCls: "v-req", tips: "Mejor ambiente futbolero de EEUU", std: "Lumen Field: Conocido por ser el estadio más ruidoso.", log: "Ciudad con muchas pendientes; prueba el marisco local." }, + { name: "🇺🇸 San Francisco", region: "Oeste", matches: "6 Partidos", budget: "$300 - $450", visa: "Visa EEUU Req.", vCls: "v-req", tips: "Meca de la tecnología", std: "Levi's Stadium: Ubicado en Santa Clara, no en SF central.", log: "Aviso: El estadio está a 1 hora de SF; quédate en San José." }, + { name: "🇺🇸 Los Ángeles", region: "Oeste", matches: "8 Partidos", budget: "$300 - $500", visa: "Visa EEUU Req.", vCls: "v-req", tips: "Estadio más lujoso del mundo", std: "SoFi Stadium: El más caro de la historia con pantalla gigante circular.", log: "Tráfico denso; alquiler de coche obligatorio; costes altos." }, + { name: "🇲🇽 Guadalajara", region: "Centro", matches: "4 Partidos", budget: "$70 - $110", visa: "Exento (con Visa EEUU)", vCls: "v-free", tips: "Auténtica cultura mexicana", std: "Estadio Akron: Diseño vanguardista. Casa de las Chivas.", log: "Tierra del Tequila; muy económico; precaución básica de seguridad." }, + { name: "🇲🇽 CDMX", region: "Centro", matches: "5 (Apertura)", budget: "$80 - $130", visa: "Exento (con Visa EEUU)", vCls: "v-free", tips: "Santuario mundial del fútbol", std: "Estadio Azteca: Único en tener 3 mundiales; 2240m altitud.", log: "Aviso de altitud; sede de la inauguración; gran valor histórico." }, + { name: "🇲🇽 Monterrey", region: "Centro", matches: "4 Partidos", budget: "$90 - $140", visa: "Exento (con Visa EEUU)", vCls: "v-free", tips: "Estadio con las mejores vistas", std: "Estadio BBVA: Vistas increíbles al Cerro de la Silla.", log: "Centro industrial; muy conveniente; calor intenso en verano." }, + { name: "🇺🇸 Houston", region: "Centro", matches: "7 Partidos", budget: "$150 - $220", visa: "Visa EEUU Req.", vCls: "v-req", tips: "Estadio techado con aire", std: "NRG Stadium: Gran domo climatizado ideal para el calor.", log: "Extremadamente húmedo; ciudad dispersa; coche necesario." }, + { name: "🇺🇸 Dallas", region: "Centro", matches: "9 (Máximo)", budget: "$180 - $260", visa: "Visa EEUU Req.", vCls: "v-req", tips: "Base central del torneo", std: "AT&T Stadium: Sede de semis, la pantalla colgante más grande.", log: "Centro neurálgico; verano caluroso pero estadio climatizado." }, + { name: "🇺🇸 Kansas City", region: "Centro", matches: "6 Partidos", budget: "$140 - $200", visa: "Visa EEUU Req.", vCls: "v-req", tips: "BBQ y fans apasionados", std: "Arrowhead Stadium: Récord Guinness de ruido en estadio.", log: "Ubicación ideal para viajar por el país." }, + { name: "🇨🇦 Toronto", region: "Este", matches: "6 Partidos", budget: "$220 - $320", visa: "Visa/eTA Req.", vCls: "v-warn", tips: "Hub multicultural", std: "BMO Field: Ambiente compacto. Casa de Canadá.", log: "Excelente transporte; comida diversa; vida cosmopolita." }, + { name: "🇺🇸 Boston", region: "Este", matches: "7 Partidos", budget: "$280 - $400", visa: "Visa EEUU Req.", vCls: "v-req", tips: "Historia y encanto académico", std: "Gillette Stadium: En Foxborough, lejos del centro.", log: "Aviso: Lejos de Boston; usa los trenes del torneo." }, + { name: "🇺🇸 Filadelfia", region: "Este", matches: "6 Partidos", budget: "$200 - $300", visa: "Visa EEUU Req.", vCls: "v-req", tips: "Eje de transporte de la costa este", std: "Lincoln Financial Field: Parte del complejo deportivo.", log: "Cerca de NY; alternativa barata para alojamiento." }, + { name: "🇺🇸 Miami", region: "Este", matches: "7 Partidos", budget: "$300 - $500", visa: "Visa EEUU Req.", vCls: "v-req", tips: "Fútbol, playa y fiesta", std: "Hard Rock Stadium: Sede del 3er puesto. Tierra de Messi.", log: "Ambiente vibrante; lluvias tropicales; mantente flexible." }, + { name: "🇺🇸 Atlanta", region: "Este", matches: "8 Partidos", budget: "$180 - $280", visa: "Visa EEUU Req.", vCls: "v-req", tips: "Hub aéreo más grande", std: "Mercedes-Benz Stadium: Sede de semis, techo único.", log: "Aeropuerto muy transitado; estadio accesible en metro." }, + { name: "🇺🇸 NY / NJ", region: "Este", matches: "8 (Final)", budget: "$400 - $600", visa: "Visa EEUU Req.", vCls: "v-req", tips: "Centro del mundo / Gran Final", std: "MetLife Stadium: Escenario de la Final el 19 de julio.", log: "Costes máximos; hoteles caros; busca en el lado de NJ." } ] } } diff --git a/template.html b/template.html index 7453f01..f70b159 100644 --- a/template.html +++ b/template.html @@ -1,63 +1,319 @@ + {{title}} - - - - + + + + + + -
-
-

{{title}}

-
{{metaDesc}}
-
+
+

{{title}}

+

{{metaDesc}}

+
+
@@ -83,15 +339,28 @@
+ +
+

© 2026 World Cup Planner - Unofficial Guide

+
- + + \ No newline at end of file