Copilot commented on code in PR #2922:
URL: https://github.com/apache/sedona/pull/2922#discussion_r3199122790


##########
docs-overrides/main.html:
##########
@@ -163,15 +298,15 @@ <h1 class="page-title">Apache Sedona</h1>
             </div>
             <div class="col-right">
               <h2 class="section-title">
-                Get started in seconds
+                {{ t.get_started_title }}
               </h2>
               <div class="section-description editor">
-                Install SedonaDB, or run Sedona on distributed systems when 
you need additional scale.
+                {{ t.get_started_desc }}
               </div>
               <div class="bth-group">
                 <a href="/sedonadb" class="btn btn-red">

Review Comment:
   These absolute links (`/sedonadb`) will always route to the default-language 
site root, which breaks the goal of an end-to-end `/zh/` experience. Prefer 
building links through MkDocs/Jinja URL helpers (e.g., using the `| url` filter 
/ page-relative URLs) so the locale prefix is preserved when applicable.



##########
docs-overrides/main.html:
##########
@@ -183,19 +318,19 @@ <h2 class="section-title">
       <!-- Section Deploy -->
       <section class="section-deploy">
         <div class="container">
-          <h2 class="section-title">Deploy Sedona where you need it</h2>
-          <div class="section-description editor">Choose the right runtime for 
your infrastructure, from local setups to distributed and cloud-native 
systems.</div>
+          <h2 class="section-title">{{ t.deploy_title }}</h2>
+          <div class="section-description editor">{{ t.deploy_desc }}</div>
           <div class="info-grid">
 
             <div class="info-item">
               <div class="info-item__tag">
                 <img src="image/home/deploy/desktop.svg" alt="" class="">
                 <div class="caption">
-                  Local
+                  {{ t.tag_local }}
                 </div>
               </div>
               <h3 class="info-item__title">SedonaDB</h3>
-              <div class="info-item__description editor">Standalone runtime 
for local processing and development.</div>
+              <div class="info-item__description editor">{{ t.sedonadb_desc 
}}</div>
               <div class="info-item__cta">
                 <a href="/sedonadb" class="btn-link">

Review Comment:
   These absolute links (`/sedonadb`) will always route to the default-language 
site root, which breaks the goal of an end-to-end `/zh/` experience. Prefer 
building links through MkDocs/Jinja URL helpers (e.g., using the `| url` filter 
/ page-relative URLs) so the locale prefix is preserved when applicable.



##########
docs-overrides/main.html:
##########
@@ -20,14 +25,144 @@
 {% endblock %}
 
 {% block header %}
+  {%- set lang = config.theme.language if config.theme.language in ['en', 
'zh'] else 'en' -%}
+  {%- set announcement = {
+      'en': 'Apache Sedona 1.9.0 is out now, featuring Spark 4.1 support, 
proj4sedona CRS transformation, Bing Tile functions, and more!',
+      'zh': 'Apache Sedona 1.9.0 已正式发布,新增 Spark 4.1 支持、proj4sedona 坐标系转换、Bing 
Tile 函数等众多特性!'
+  } -%}
   <div style="background: #CA463A; color: white; text-align: center; padding: 
0.5rem;">
-    <a href="setup/release-notes/" title="Announcement">Apache Sedona 1.9.0 is 
out now, featuring Spark 4.1 support, proj4sedona CRS transformation, Bing Tile 
functions, and more!</a>
+    <a href="setup/release-notes/" title="Announcement">{{ announcement[lang] 
}}</a>

Review Comment:
   This is a relative link rendered in the global header. On non-home pages 
(e.g., `/download/`), it will resolve relative to the current path (e.g., 
`/download/setup/release-notes/`) and likely 404. Use an MkDocs-aware URL 
construction (e.g., `{{ 'setup/release-notes/' | url }}`) or a root-relative 
path so the link works from any page.
   



##########
docs-overrides/main.html:
##########
@@ -20,14 +25,144 @@
 {% endblock %}
 
 {% block header %}
+  {%- set lang = config.theme.language if config.theme.language in ['en', 
'zh'] else 'en' -%}
+  {%- set announcement = {
+      'en': 'Apache Sedona 1.9.0 is out now, featuring Spark 4.1 support, 
proj4sedona CRS transformation, Bing Tile functions, and more!',
+      'zh': 'Apache Sedona 1.9.0 已正式发布,新增 Spark 4.1 支持、proj4sedona 坐标系转换、Bing 
Tile 函数等众多特性!'
+  } -%}
   <div style="background: #CA463A; color: white; text-align: center; padding: 
0.5rem;">
-    <a href="setup/release-notes/" title="Announcement">Apache Sedona 1.9.0 is 
out now, featuring Spark 4.1 support, proj4sedona CRS transformation, Bing Tile 
functions, and more!</a>
+    <a href="setup/release-notes/" title="Announcement">{{ announcement[lang] 
}}</a>
   </div>
   {{ super() }} {# This renders the original header below your test bar #}
 {% endblock %}
 
 {% block container %}
-    {% if page.is_homepage %}
+    {% set is_home = page.is_homepage or (page.file and page.file.src_uri in 
['index.md', 'index.zh.md']) %}
+    {% if is_home %}
+    {%- set lang = config.theme.language if config.theme.language in ['en', 
'zh'] else 'en' -%}

Review Comment:
   The `lang` computation is duplicated across multiple blocks, and 
`events_decor` is defined separately from the main `i18n` dict. Consider 
defining `lang` once near the top of the template (outside blocks) and folding 
the decorative event strings into the same `i18n` structure used elsewhere. 
This reduces duplication and makes future locale additions less error-prone.



##########
docs-overrides/main.html:
##########
@@ -20,14 +25,144 @@
 {% endblock %}
 
 {% block header %}
+  {%- set lang = config.theme.language if config.theme.language in ['en', 
'zh'] else 'en' -%}
+  {%- set announcement = {
+      'en': 'Apache Sedona 1.9.0 is out now, featuring Spark 4.1 support, 
proj4sedona CRS transformation, Bing Tile functions, and more!',
+      'zh': 'Apache Sedona 1.9.0 已正式发布,新增 Spark 4.1 支持、proj4sedona 坐标系转换、Bing 
Tile 函数等众多特性!'
+  } -%}
   <div style="background: #CA463A; color: white; text-align: center; padding: 
0.5rem;">
-    <a href="setup/release-notes/" title="Announcement">Apache Sedona 1.9.0 is 
out now, featuring Spark 4.1 support, proj4sedona CRS transformation, Bing Tile 
functions, and more!</a>
+    <a href="setup/release-notes/" title="Announcement">{{ announcement[lang] 
}}</a>
   </div>
   {{ super() }} {# This renders the original header below your test bar #}
 {% endblock %}
 
 {% block container %}
-    {% if page.is_homepage %}
+    {% set is_home = page.is_homepage or (page.file and page.file.src_uri in 
['index.md', 'index.zh.md']) %}
+    {% if is_home %}
+    {%- set lang = config.theme.language if config.theme.language in ['en', 
'zh'] else 'en' -%}
+    {%- set i18n = {
+        'en': {
+            'hero_subtitle': 'Apache Sedona™ makes it easy to process spatial 
datasets of any scale.',
+            'hero_cta': 'Get Started',
+            'global_scale_title_1': 'QUERY and JOIN',
+            'global_scale_title_2': 'from local to global scale',
+            'typed_gps': 'GPS points',
+            'typed_buildings': 'buildings',
+            'typed_parcels': 'parcels',
+            'typed_trips': 'trips',
+            'typed_places': 'places',
+            'typed_businesses': 'businesses',
+            'typed_land': 'land',
+            'typed_vegetation': 'vegetation',
+            'typed_rasters': 'rasters',
+            'typed_vectors': 'vectors',
+            'typed_tabular': 'tabular tables',
+            'get_started_title': 'Get started in seconds',
+            'get_started_desc': 'Install SedonaDB, or run Sedona on 
distributed systems when you need additional scale.',
+            'install_sedonadb_cta': 'Install SedonaDB',
+            'deploy_title': 'Deploy Sedona where you need it',
+            'deploy_desc': 'Choose the right runtime for your infrastructure, 
from local setups to distributed and cloud-native systems.',
+            'tag_local': 'Local',
+            'tag_batch': 'Batch',
+            'tag_streaming': 'Streaming',
+            'tag_cloud': 'Cloud',
+            'sedonadb_desc': 'Standalone runtime for local processing and 
development.',
+            'sedonaspark_desc': 'Distributed batch processing on Apache Spark 
clusters.',
+            'sedonaflink_desc': 'Real-time spatial analytics using Apache 
Flink.',
+            'sedonasnow_desc': 'Native spatial support inside Snowflake 
environments.',
+            'sedona_cloud_title': 'Sedona in the Cloud',
+            'sedona_cloud_desc': 'Integrated spatial support in your preferred 
cloud environment',
+            'sedona_cloud_cta': 'Explore the ecosystem',
+            'industries_title': 'Want to share your Sedona use case?',
+            'industries_subtitle': 'Join our Discord or create a GitHub 
Discussion so we can collaborate.',
+            'industry_mobility': 'Mobility',
+            'industry_telecom': 'Telecom',
+            'industry_data': 'Data and map production',
+            'industry_logistics': 'Logistics',
+            'industry_energy': 'Energy',
+            'industry_finance': 'Finance',
+            'features_title': 'Apache Sedona at a glance',
+            'features_desc': 'Core features that define Sedona’s geospatial 
performance',
+            'feature_scalable_title': 'Scalable',
+            'feature_scalable_desc': 'Works with small or large datasets with 
Spark, Flink, or locally.',
+            'feature_complete_title': 'Feature Complete',
+            'feature_complete_desc': '300+ spatial functions, support for 
spatial file formats, and compatible with lakehouses and databases.',
+            'feature_raster_title': 'Raster and Vector Support',
+            'feature_raster_desc': 'Analyze both raster and vector datasets.',
+            'feature_portable_title': 'Portable',
+            'feature_portable_desc': 'Easy to run locally, in the cloud, or 
with any data platform.',
+            'feature_fast_title': 'Fast',
+            'feature_fast_desc': 'Optimized execution for single node or 
distribute cluster environments.',

Review Comment:
   Fix grammar in the English string: 'distribute cluster' should be 
'distributed cluster'. Note this will change the rendered English output, so 
only do this if byte-identical output is no longer a requirement.
   



##########
docs-overrides/main.html:
##########
@@ -1,9 +1,14 @@
 {% extends "base.html" %}
 
 {% block outdated %}
-You're not viewing the latest stable version.
+{%- set lang = config.theme.language if config.theme.language in ['en', 'zh'] 
else 'en' -%}

Review Comment:
   The `lang` computation is duplicated across multiple blocks, and 
`events_decor` is defined separately from the main `i18n` dict. Consider 
defining `lang` once near the top of the template (outside blocks) and folding 
the decorative event strings into the same `i18n` structure used elsewhere. 
This reduces duplication and makes future locale additions less error-prone.



##########
docs/sedonaflink.zh.md:
##########
@@ -0,0 +1,111 @@
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one
+ or more contributor license agreements.  See the NOTICE file
+ distributed with this work for additional information
+ regarding copyright ownership.  The ASF licenses this file
+ to you under the Apache License, Version 2.0 (the
+ "License"); you may not use this file except in compliance
+ with the License.  You may obtain a copy of the License at
+
+   http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing,
+ software distributed under the License is distributed on an
+ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ KIND, either express or implied.  See the License for the
+ specific language governing permissions and limitations
+ under the License.
+ -->
+
+# SedonaFlink
+
+SedonaFlink 将地理空间函数集成到 Apache Flink 中,是构建依赖地理空间数据的流式管道的理想选择。
+
+以下是 SedonaFlink 的一些典型应用场景:
+
+* 从 Kafka 读取地理空间数据并写入 Iceberg
+* 
[实时分析交通密度](https://www.alibabacloud.com/help/en/flink/realtime-flink/use-cases/analyze-traffic-density-with-flink-and-apache-sedona)
+* 电信行业的实时网络规划与优化
+
+下面是一些示例代码片段:
+
+=== "Java"
+
+    ```java
+    sedona.createTemporaryView("myTable", tbl)
+    Table geomTbl = sedona.sqlQuery("SELECT ST_GeomFromWKT(geom_polygon) as 
geom_polygon, name_polygon FROM myTable")
+    geomTbl.execute().print()

Review Comment:
   This Java snippet is not valid Java as written (missing semicolons on 
statements). Since this is a landing-page example, it’s important that 
copy/paste works; add the required semicolons (and any other minimal syntax 
fixes) so the snippet compiles.
   



##########
docs-overrides/main.html:
##########
@@ -627,21 +762,22 @@ <h2 class="section-title">Join the community</h2>
           <div class="content-box">
             <div class="content-box__inner">
               <h2 class="section-title">
-                Monthly community meetings and programming conferences
+                {{ t.events_title }}
               </h2>
               <div class="btn-group">
                 <a href="community/contact/" class="btn btn-red">
                      <span class="caption">
-                    Find Events
+                    {{ t.events_cta }}
                   </span>
                 </a>
               </div>
             </div>
             <img src="image/home/events/corner-mountains.svg" alt="" 
class="corner-img">
             <div class="events-line">
-              <div>Sedona <strong>Events</strong></div>
-              <div>Sedona <strong>Events</strong></div>
-              <div>Sedona <strong>Events</strong></div>
+              {%- set events_decor = {'en': ['Sedona ', 'Events'], 'zh': 
['Sedona ', '活动']} -%}

Review Comment:
   The `lang` computation is duplicated across multiple blocks, and 
`events_decor` is defined separately from the main `i18n` dict. Consider 
defining `lang` once near the top of the template (outside blocks) and folding 
the decorative event strings into the same `i18n` structure used elsewhere. 
This reduces duplication and makes future locale additions less error-prone.



##########
docs-overrides/main.html:
##########
@@ -20,14 +25,144 @@
 {% endblock %}
 
 {% block header %}
+  {%- set lang = config.theme.language if config.theme.language in ['en', 
'zh'] else 'en' -%}

Review Comment:
   The `lang` computation is duplicated across multiple blocks, and 
`events_decor` is defined separately from the main `i18n` dict. Consider 
defining `lang` once near the top of the template (outside blocks) and folding 
the decorative event strings into the same `i18n` structure used elsewhere. 
This reduces duplication and makes future locale additions less error-prone.



##########
docs/download.zh.md:
##########
@@ -0,0 +1,63 @@
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one
+ or more contributor license agreements.  See the NOTICE file
+ distributed with this work for additional information
+ regarding copyright ownership.  The ASF licenses this file
+ to you under the Apache License, Version 2.0 (the
+ "License"); you may not use this file except in compliance
+ with the License.  You may obtain a copy of the License at
+
+   http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing,
+ software distributed under the License is distributed on an
+ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ KIND, either express or implied.  See the License for the
+ specific language governing permissions and limitations
+ under the License.
+ -->
+
+## GitHub 代码仓库
+
+最新源代码:[GitHub 代码仓库](https://github.com/apache/sedona/)
+
+历史 GeoSpark 版本:[GitHub Releases](https://github.com/apache/sedona/releases)
+
+每次提交到 master 分支后自动构建的二进制 JAR 包:[GitHub 
Action](https://github.com/apache/sedona/actions/workflows/java.yml)
+
+## 校验完整性
+
+[公钥](https://downloads.apache.org/sedona/KEYS)
+
+[校验说明](https://www.apache.org/info/verification.html)
+
+## 版本
+
+### 1.9.0
+
+| |                                    从 ASF 下载                                
     |                                         校验和                              
            |                                      签名                           
           |
+|:-----------------:|:----------------------------------------------------------------------------------------:|:-----------------------------------------------------------------------------------------:|:-----------------------------------------------------------------------------------:|
+|    源代码    | 
[src](https://www.apache.org/dyn/closer.lua/sedona/1.9.0/apache-sedona-1.9.0-src.tar.gz)
 | 
[sha512](https://downloads.apache.org/sedona/1.9.0/apache-sedona-1.9.0-src.tar.gz.sha512)
 | 
[asc](https://downloads.apache.org/sedona/1.9.0/apache-sedona-1.9.0-src.tar.gz.asc)
 |
+|       二进制      | 
[bin](https://www.apache.org/dyn/closer.lua/sedona/1.9.0/apache-sedona-1.9.0-bin.tar.gz)
 | 
[sha512](https://downloads.apache.org/sedona/1.9.0/apache-sedona-1.9.0-bin.tar.gz.sha512)
 | 
[asc](https://downloads.apache.org/sedona/1.9.0/apache-sedona-1.9.0-bin.tar.gz.asc)
 |
+
+### 1.8.1
+
+| |                                    从 ASF 下载                                
     |                                         校验和                              
            |                                      签名                           
           |
+|:-----------------:|:----------------------------------------------------------------------------------------:|:-----------------------------------------------------------------------------------------:|:-----------------------------------------------------------------------------------:|
+|    源代码    | 
[src](https://www.apache.org/dyn/closer.lua/sedona/1.8.1/apache-sedona-1.8.1-src.tar.gz)
 | 
[sha512](https://downloads.apache.org/sedona/1.8.1/apache-sedona-1.8.1-src.tar.gz.sha512)
 | 
[asc](https://downloads.apache.org/sedona/1.8.1/apache-sedona-1.8.1-src.tar.gz.asc)
 |
+|       二进制      | 
[bin](https://www.apache.org/dyn/closer.lua/sedona/1.8.1/apache-sedona-1.8.1-bin.tar.gz)
 | 
[sha512](https://downloads.apache.org/sedona/1.8.1/apache-sedona-1.8.1-bin.tar.gz.sha512)
 | 
[asc](https://downloads.apache.org/sedona/1.8.1/apache-sedona-1.8.1-bin.tar.gz.asc)
 |
+
+### 1.7.2
+
+| |                                    从 ASF 下载                                
     |                                         校验和                              
            |                                      签名                           
           |

Review Comment:
   The table rows start with `||`, which creates an extra empty leading column 
and can render inconsistently across Markdown engines (including MkDocs 
extensions). Consider rewriting the table with an explicit first header cell 
(e.g., “类型”) and a single leading `|` per row to ensure consistent rendering.
   



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to