| name | livepolls-pricing-localization-audit |
| description | Generate an actionable HTML handoff for LivePolls pricing-page localization audits. Use when the user asks to check LivePolls app pricing pages across languages, compare other products against a known-good standard page such as ai_image_generator/pricing, identify missing non-English language packs from yichong_pricing_language R2 JSON files, review subscription copy/FAQ/benefits for payment-conversion risk, or produce a direct product-by-product HTML modification plan for engineers or translators. |
LivePolls Pricing Localization Audit
Output Goal
Produce one self-contained handoff.html that a modification owner can open and act on directly. The page must contain clickable product pricing links, observed issue categories, concrete fix steps, evidence links, accepted UI exceptions, and verification boundaries.
Do not produce a generic report. The user expects product-level rows with specific URLs and fixes.
Required Inputs
Collect these before building the final HTML:
- Standard page URL, usually
https://www.livepolls.app/ai_image_generator/pricing.
- Product slug list, from a user file, old scan output, repo data, or browser crawl.
- Existing browser evidence if available, such as old render scan status, screenshots, 404 classifications, or captured page text.
- R2 language URL pattern, usually
https://project.deletetweets.ai/yichong_pricing_language/{slug}/jp.json.
- User-defined accepted English UI terms. In the 2026-05 audit, accepted exceptions were
Pricing, More >>, payment brand names, footer labels, USD, and product English names.
If product list is missing, derive it from the supplied artifact or ask one concise question for the source.
Core Interpretation Rules
- Treat the standard page as the comparison template and exclude it from the problem table.
- Apply known special pricing URL overrides before marking a route as 404:
convert -> https://convert.livepolls.app/pricing
recorder -> https://recorder.livepolls.app/pricing
translate -> https://translate.livepolls.app/pricing
https://www.imgkits.com/pricing and https://www.livepolls.app/pricing are standalone/root pricing pages, not extra app-key rows.
- Do not use root
https://www.livepolls.app/api/order/plans as the套餐 source for arbitrary product slugs; it returns the Live Polls Maker root plan. For special-domain app rows, use that domain's root /api/order/plans; for normal app rows, preserve the route that returns that product's own channel.
- Use
jp.json as a non-English language-pack probe, not as "Japanese only".
- If
jp.json is 404, write the issue as 缺多语言文件: "日语探针文件不存在,通常代表该产品除英语默认外的多语言订阅文案包未覆盖".
- If
jp.json exists but pricing titles, features, FAQ, or unit fields contain English fallback, write the issue as 多语言混英文.
- If key fields are missing or arrays are empty, write the issue as
字段不完整.
- If localized structure exists but benefits are generic, write the issue as
权益偏弱.
- If the pricing route itself fails, write the issue as
URL 异常.
- Do not flag accepted UI English, payment provider names, currency names, product slugs, or brand names.
Browser Evidence
Use browser-visible evidence for anything source data cannot prove:
- Confirm the standard page language switch really changes all subscription-card and FAQ copy.
- Spot-check abnormal products where R2 data and page behavior may diverge.
- Check folded FAQ content when possible.
- Do not click login continuation, Google account continuation, or payment/Paddle checkout.
- If Chrome automation is unavailable, use Computer Use or available browser tooling and state the boundary in the HTML.
Browser evidence is not required for every product when a large R2 probe is used, but the HTML must say which parts are data-derived and which were browser-tested.
Classification Workflow
- Normalize product slugs from the input list. Preserve lower-case URL slug behavior; for the known standard page use
ai_image_generator, not historical uppercase variants.
- Fetch or inspect each probe URL:
https://project.deletetweets.ai/yichong_pricing_language/{slug}/jp.json
- Parse JSON structurally. Check at least:
monthPlans.title
yearPlans.title
lifetimePlans.title if present
features
faqs
config.unit
- Use old browser scan status when present to mark
URL 异常 or price/card anomalies.
- Compare copy against the standard page behavior and user-accepted exceptions.
- Convert each failing product into one table row with:
- product pricing link
- product category
- conclusion pill
- actual problem
- exact modification steps
- evidence, including the
jp.json link and scan status
Benefit Copy Heuristics
For 权益偏弱, do not only say "make it more specific". Give product-type-specific fixes.
Use these benefit dimensions:
- Image/portrait tools: generation count, style options, HD download, no watermark, privacy deletion, commercial use.
- Video/GIF tools: generated minutes/count, resolution, no watermark, export format, speed, commercial use.
- Audio/music/voice: audio minutes, song/voice generation count, download format, commercial license, processing speed.
- PDF/OCR/document conversion: pages/files, OCR or table extraction quota, supported formats, batch processing, export quality.
- Design/print/brand: template/design generation count, brand assets, PNG/PDF/SVG or print export, HD/no watermark, commercial use.
- Education/assessment: question/test/grading quota, explanations, student/class or report export, history.
- Workflow/connectors: sync/automation runs, charts/maps, import/export formats, monitoring or notification quota.
- Games/puzzles: game/puzzle count, themes/difficulty, answer sheets, print/share export.
- Figma/web/publishing: conversion count, editable layers, asset extraction, export/publish targets, collaboration sharing.
- Detection/security: scans/detections, report export, privacy/security scope, monitored objects.
Replace vague localized terms such as 無制限, 高速, 高解像度 with concrete quota, format, output, or permission details.
HTML Structure
Build a single self-contained HTML file with inline CSS and no remote scripts.
Recommended sections:
- Header
- Title:
LivePolls 订阅页多语言对应修改步骤
- Standard page link
- Clear note that
jp.json is a non-English language-pack probe
- Accepted English UI chips
- 检查路径
- Product scope
- Standard template
- R2 probe path
- Browser evidence boundary
- 结果概览
- Checked product count
- Must-fix count
- Benefit-weak count
- Basically-pass count
- 按产品类型的工作量
- Category cards with counts and example slugs
- 需要修改的产品清单
- Columns:
#, 产品链接, 结论, 实际问题, 对应修改步骤, 证据
- Use clickable links for product page and
jp.json
- 基本通过,暂不列入本轮修改
- Collapsible list of pass products
- 给修改人员的执行顺序
- Prioritize missing language files and English fallback before benefit optimization
- 验证边界
- State what was not verified, especially login state, region/currency, Paddle checkout, and post-payment entitlement delivery
Keep wording practical and direct. The HTML is for implementers, not executives.
Required Wording
Use this wording pattern when a probe file is missing:
日语探针文件不存在,通常代表该产品除英语默认外的多语言订阅文案包未覆盖;切换非英语语言时会回退到英文产品文案。
Use this wording pattern in the execution steps:
缺文件的产品:不要只补一个 jp.json。先用 project.deletetweets.ai/yichong_pricing_language/{产品}/jp.json 做验证入口,同时按同一字段结构补齐除英语默认外的其他语言文件。
Avoid stale wording such as:
缺日语文件
日语 R2 文件不存在
保留日语结构
已有日语字段
只缺日语
Validation Checklist
Before final response, verify:
handoff.html exists at the requested path.
- Problem table excludes the standard page.
- Product rows have clickable
https://www.livepolls.app/{slug}/pricing links.
- Evidence cells include clickable R2
jp.json links where applicable.
- The page says
jp.json is a probe for non-English language packs.
- No stale wording remains:
rg -n "缺日语|日语 R2 文件不存在|保留日语结构|已有日语|日语字段|日语化|日语界面|只缺日语" handoff.html
- Count the problem rows and standard-page exclusion with a structural check:
node - <<'NODE'
const fs=require('fs');
const h=fs.readFileSync('handoff.html','utf8');
const section=(h.match(/<section class="panel">\s*<h2>需要修改的产品清单[\s\S]*?<\/section>/)||[''])[0];
const tbody=(section.match(/<tbody>([\s\S]*?)<\/tbody>/)||['',''])[1];
console.log(JSON.stringify({
problemRows:(tbody.match(/<tr>/g)||[]).length,
standardInProblem:section.includes('https://www.livepolls.app/ai_image_generator/pricing'),
hasProbeExplanation:h.includes('jp.json') && h.includes('除英语默认外')
}));
NODE
Final Response
Reply in Chinese. Keep it short:
- Link the final HTML with a local file link.
- Mention the row count and the standard page exclusion.
- State any verification boundary.
Do not paste the full report into chat.