fix: 对齐平台渠道与最新情报快照

2026-08-14 平台渠道专项更新:前端和静态SEO只展示平台官网、官方入驻及非中文入驻页辅助翻译;移除类目入口翻译、消费者官网翻译和内部成熟度/新兴参考分文案。

同步59/59权威源、65场跨境活动、28个平台和208条趋势内容;修正IBTE、CCBEC、法国教育部、Shopee和Shopify语种判断,更新README与CHANGELOG并通过Python、Node及静态构建验证。
This commit is contained in:
Jack
2026-08-14 22:18:51 +08:00
parent f1ce583fd1
commit 7e74bd989e
14 changed files with 64302 additions and 63460 deletions
+4 -9
View File
@@ -144,7 +144,7 @@ def tags_html(values: list[str] | tuple[str, ...] | None) -> str:
TRANSLATED_LINK_LABEL = "查看译文版"
def links_html(links: list[tuple[str, str]], class_name: str = "") -> str:
def links_html(links: list[tuple[str, str]], class_name: str = "", translation_label: str = TRANSLATED_LINK_LABEL) -> str:
seen: set[str] = set()
output: list[str] = []
translation_group = 0
@@ -154,7 +154,7 @@ def links_html(links: list[tuple[str, str]], class_name: str = "") -> str:
seen.add(url)
provider = "yandex" if "translate.yandex.com/" in url else ("google" if "translate.google.com/" in url else "")
if provider:
label = TRANSLATED_LINK_LABEL
label = translation_label
else:
translation_group += 1
translation_gate = f' data-translation-provider="{provider}" data-translation-group="{translation_group}" hidden' if provider else ""
@@ -349,16 +349,11 @@ def build_detail(item: dict[str, Any], section: str, site_url: str) -> str:
</section>"""
elif section == "platforms":
platform_links = links_html([
("查看家纺类目", str(item.get("official_url") or "")),
(TRANSLATED_LINK_LABEL, str(item.get("official_translation_url") or "")),
(TRANSLATED_LINK_LABEL, str(item.get("official_translation_fallback_url") or "")),
("打开平台官网", str(item.get("homepage_url") or "")),
(TRANSLATED_LINK_LABEL, str(item.get("homepage_translation_url") or "")),
(TRANSLATED_LINK_LABEL, str(item.get("homepage_translation_fallback_url") or "")),
("打开平台官网", str(item.get("homepage_url") or "") if item.get("homepage_url") != item.get("seller_url") else ""),
("去官方入驻", str(item.get("seller_url") or "")),
(TRANSLATED_LINK_LABEL, str(item.get("seller_translation_url") or "")),
(TRANSLATED_LINK_LABEL, str(item.get("seller_translation_fallback_url") or "")),
])
], translation_label="辅助翻译入驻说明")
section_details = f"""<section class="seo-context">
<h2>家纺类目与入驻判断</h2>
<p><strong>{esc(item.get('access_level'))} {esc(item.get('access_label'))}</strong> · {esc(item.get('cross_border'))}</p>
+2 -6
View File
@@ -93,10 +93,7 @@ def build_platforms(checked_at: str, session: requests.Session) -> list[dict[str
for item in PLATFORMS:
homepage_url = PLATFORM_HOME_URLS[item["id"]]
sales_score, emergence_score = PLATFORM_RANKING.get(item["id"], (50, 50))
translated = {
prefix: translation_fields(url)
for prefix, url in (("official", item["official_url"]), ("homepage", homepage_url), ("seller", item["seller_url"]))
}
seller_translation = translation_fields(item["seller_url"])
items.append({
**item,
"title": item["name"],
@@ -112,8 +109,7 @@ def build_platforms(checked_at: str, session: requests.Session) -> list[dict[str
"verified_at": checked_at,
"checked_at": checked_at,
**{
f"{prefix}_{field}": values[field]
for prefix, values in translated.items()
f"seller_{field}": seller_translation[field]
for field in ("needs_translation", "translation_url", "translation_fallback_url")
},
"seller_url_status": status_codes[item["id"]],
+8 -4
View File
@@ -53,13 +53,16 @@ def detect_text_language(text: str = "", declared_language: str = "") -> str:
def url_language_hint(url: str) -> str:
value = (url or "").lower()
if re.search(r"(?:[?&](?:lang|language|localetype)=|/)(?:zh-cn|zh-hans|cn)(?:\.html?)?(?:[&#/?]|$)", value):
if re.search(r"(?:[?&](?:lang|language|localetype)=|/)(?:zh-cn|zh-hans|zh|cn)(?:\.html?)?(?:[&#/?]|$)", value):
return "zh-CN"
if re.search(r"(?:[?&](?:lang|language|localetype)=|/)(?:zh-tw|zh-hant|tw|hk)(?:\.html?)?(?:[&#/?]|$)", value):
return "zh-Hant"
host = (urlparse(url).hostname or "").lower().rstrip(".")
host_languages = {
"bizevent.ccpit.org": "zh-CN",
"ccbec-shenzhen.com": "zh-CN",
"ibte.co.id": "en",
"www.ccbec-shenzhen.com": "zh-CN",
"www.coupang.com": "ko",
"www.mercadolibre.com": "es",
}
@@ -88,11 +91,12 @@ def is_simplified_chinese_site(url: str, source_language: str = "", source_text:
host = (urlparse(url).hostname or "").lower().rstrip(".")
if host.endswith(".cn"):
return True
url_language = url_language_hint(url)
if url_language:
return url_language == "zh-CN"
declared = detect_text_language("", source_language) if source_language else ""
content_language = detect_text_language(source_text) if source_text.strip() else ""
if declared in ("zh-CN", "zh-hans", "zh-sg") or content_language == "zh-CN":
return True
return False
return declared == "zh-CN" or content_language == "zh-CN"
def needs_simplified_chinese_translation(language: str) -> bool: