diff --git a/README.md b/README.md index 4d74271..7398535 100644 --- a/README.md +++ b/README.md @@ -33,6 +33,12 @@

Turn visibility signals into growth decisions from one open-source workspace.

+
+

Join the OpenCMO community

+ OpenCMO WeChat group QR code +

Questions, ideas, or feedback? Scan with WeChat to join our group chat.

+
+ --- ## Real Production Examples diff --git a/README_es.md b/README_es.md index c75edcb..c1948a1 100644 --- a/README_es.md +++ b/README_es.md @@ -33,6 +33,12 @@

Un solo workspace para monitoreo, reportes, aprobaciones y contexto competitivo.

+
+

Únete a la comunidad de OpenCMO

+ Código QR del grupo de WeChat de OpenCMO +

¿Preguntas, ideas o comentarios? Escanea el QR con WeChat para unirte a nuestro grupo.

+
+ --- ## Ejemplos de Produccion Reales diff --git a/README_ja.md b/README_ja.md index e103324..a28e4a1 100644 --- a/README_ja.md +++ b/README_ja.md @@ -33,6 +33,12 @@

監視、レポート、承認、競合文脈を1つの画面で確認できます。

+
+

OpenCMO コミュニティに参加

+ OpenCMO WeChat グループQRコード +

ご質問・ご意見・フィードバックは、WeChat でQRを読み取ってグループにご参加ください。

+
+ --- ## 本番環境の実例 diff --git a/README_ko.md b/README_ko.md index b963420..415522a 100644 --- a/README_ko.md +++ b/README_ko.md @@ -33,6 +33,12 @@

모니터링, 리포트, 승인, 경쟁 맥락을 하나의 화면에서 봅니다.

+
+

OpenCMO 커뮤니티 참여

+ OpenCMO WeChat 그룹 QR 코드 +

질문, 아이디어, 피드백이 있으신가요? WeChat으로 QR을 스캔해 그룹에 참여하세요.

+
+ --- ## 실제 프로덕션 사례 diff --git a/README_zh.md b/README_zh.md index 967e86b..c5db04e 100644 --- a/README_zh.md +++ b/README_zh.md @@ -33,6 +33,12 @@

在一个开源工作区里,把可见性信号变成增长决策。

+
+

加入 OpenCMO 交流群

+ OpenCMO 微信交流群二维码 +

有任何问题、想交流意见?用微信扫码进群沟通。

+
+ --- ## 真实生产示例 diff --git a/assets/community-qr.png b/assets/community-qr.png new file mode 100644 index 0000000..78cae8c Binary files /dev/null and b/assets/community-qr.png differ diff --git a/frontend/public/contact-qr.README.md b/frontend/public/contact-qr.README.md index 9e87269..ac66baf 100644 --- a/frontend/public/contact-qr.README.md +++ b/frontend/public/contact-qr.README.md @@ -1,3 +1,11 @@ -Real WeChat QR is at `contact-qr.png` (480x480, auto-cropped to the QR + quiet zone). -To swap: overwrite `contact-qr.png` with a new image, or change `QR_ASSET` in +The asset `contact-qr.png` is now the OpenCMO WeChat GROUP QR card (portrait, +dark background that already includes a title and the QR with quiet zone). + +To swap it later, overwrite BOTH of these with the new exported PNG: +- `frontend/public/contact-qr.png` +- `assets/community-qr.png` (repo root, used by the READMEs) + +The widget renders the card full-bleed and undistorted (`w-full h-auto`), so +export the new image at the same portrait aspect ratio. If you change the file +name, also update `QR_ASSET` in `frontend/src/components/FloatingContactQR.tsx`. diff --git a/frontend/public/contact-qr.png b/frontend/public/contact-qr.png index f6ba4ce..78cae8c 100644 Binary files a/frontend/public/contact-qr.png and b/frontend/public/contact-qr.png differ diff --git a/frontend/src/components/FloatingContactQR.tsx b/frontend/src/components/FloatingContactQR.tsx index dd8938d..0d658e4 100644 --- a/frontend/src/components/FloatingContactQR.tsx +++ b/frontend/src/components/FloatingContactQR.tsx @@ -180,14 +180,14 @@ export function FloatingContactQR() {

{t("contactQR.subheading")}

-
+
{t("contactQR.imageAlt")}
diff --git a/frontend/src/i18n/locales/en.ts b/frontend/src/i18n/locales/en.ts index 4655ee2..e6a4c6f 100644 --- a/frontend/src/i18n/locales/en.ts +++ b/frontend/src/i18n/locales/en.ts @@ -2013,10 +2013,10 @@ export const en = { "monitors.addAnotherDesc": "Add another URL, locale, or schedule for this project without leaving the page.", // Floating contact QR widget - "contactQR.pillLabel": "Add me on WeChat", - "contactQR.heading": "Scan to connect on WeChat", - "contactQR.subheading": "Scan the QR with WeChat to message us directly.", - "contactQR.imageAlt": "WeChat contact QR code", + "contactQR.pillLabel": "Join our group", + "contactQR.heading": "Join the OpenCMO group", + "contactQR.subheading": "Questions or feedback? Scan with WeChat to join our group chat.", + "contactQR.imageAlt": "OpenCMO WeChat group QR code", "contactQR.close": "Close", // Unlock custom plan CTA + modal diff --git a/frontend/src/i18n/locales/es.ts b/frontend/src/i18n/locales/es.ts index 1e4ac4d..95e8c40 100644 --- a/frontend/src/i18n/locales/es.ts +++ b/frontend/src/i18n/locales/es.ts @@ -1059,10 +1059,10 @@ export const es: Partial> = { "verify.missingUser": "Falta contexto de verificación", "verify.missingUserBody": "Vuelve a registrarte para recibir un código nuevo.", // Floating contact QR widget - "contactQR.pillLabel": "Agrégame en WeChat", - "contactQR.heading": "Conectar en WeChat", - "contactQR.subheading": "Escanea el QR con WeChat para escribirnos directamente.", - "contactQR.imageAlt": "Código QR de contacto en WeChat", + "contactQR.pillLabel": "Unirse al grupo", + "contactQR.heading": "Únete al grupo de OpenCMO", + "contactQR.subheading": "¿Preguntas o comentarios? Escanea el QR con WeChat para unirte a nuestro grupo.", + "contactQR.imageAlt": "Código QR del grupo de WeChat de OpenCMO", "contactQR.close": "Cerrar", // Unlock custom plan CTA + modal diff --git a/frontend/src/i18n/locales/ja.ts b/frontend/src/i18n/locales/ja.ts index df09a41..7fa2a2f 100644 --- a/frontend/src/i18n/locales/ja.ts +++ b/frontend/src/i18n/locales/ja.ts @@ -1122,10 +1122,10 @@ export const ja: Partial> = { "verify.missingUser": "確認情報が不足しています", "verify.missingUserBody": "もう一度サインアップしてコードを取得してください。", // Floating contact QR widget - "contactQR.pillLabel": "WeChatで追加", - "contactQR.heading": "WeChatで連絡", - "contactQR.subheading": "WeChatでQRをスキャンすると、すぐにメッセージを送れます。", - "contactQR.imageAlt": "WeChat連絡QRコード", + "contactQR.pillLabel": "グループに参加", + "contactQR.heading": "QRでグループに参加", + "contactQR.subheading": "ご質問・ご意見は、WeChatでQRを読み取ってグループにご参加ください。", + "contactQR.imageAlt": "OpenCMO WeChatグループQRコード", "contactQR.close": "閉じる", // Unlock custom plan CTA + modal diff --git a/frontend/src/i18n/locales/ko.ts b/frontend/src/i18n/locales/ko.ts index 75bbdc2..84dcba0 100644 --- a/frontend/src/i18n/locales/ko.ts +++ b/frontend/src/i18n/locales/ko.ts @@ -1059,10 +1059,10 @@ export const ko: Partial> = { "verify.missingUser": "인증 정보가 없습니다", "verify.missingUserBody": "새 코드를 받으려면 다시 가입해 주세요.", // Floating contact QR widget - "contactQR.pillLabel": "위챗으로 추가", - "contactQR.heading": "위챗으로 연결하기", - "contactQR.subheading": "위챗으로 QR을 스캔하면 바로 메시지를 보낼 수 있어요.", - "contactQR.imageAlt": "위챗 연락 QR 코드", + "contactQR.pillLabel": "그룹 참여", + "contactQR.heading": "QR로 그룹 참여", + "contactQR.subheading": "질문이나 피드백이 있으신가요? WeChat으로 QR을 스캔해 그룹에 참여하세요.", + "contactQR.imageAlt": "OpenCMO WeChat 그룹 QR 코드", "contactQR.close": "닫기", // Unlock custom plan CTA + modal diff --git a/frontend/src/i18n/locales/zh.ts b/frontend/src/i18n/locales/zh.ts index 5e8ef04..00545aa 100644 --- a/frontend/src/i18n/locales/zh.ts +++ b/frontend/src/i18n/locales/zh.ts @@ -1991,10 +1991,10 @@ export const zh: Partial> = { "verify.missingUser": "缺少验证上下文", "verify.missingUserBody": "请重新走一遍注册流程以获取新的验证码。", // Floating contact QR widget - "contactQR.pillLabel": "加我微信", - "contactQR.heading": "扫码加我微信", - "contactQR.subheading": "用微信扫码即可与我们直接沟通。", - "contactQR.imageAlt": "微信联系二维码", + "contactQR.pillLabel": "进群交流", + "contactQR.heading": "扫码进群交流", + "contactQR.subheading": "有任何问题、想交流意见?用微信扫码加入我们的群聊。", + "contactQR.imageAlt": "OpenCMO 微信交流群二维码", "contactQR.close": "关闭", // Unlock custom plan CTA + modal