feat: link the Codewhale Discord from the README and the site
Adds https://discord.gg/37gfS3ksug in the places someone actually looks for a community: a badge in the first badge row and an entry on the language/link line of all ten READMEs, a Discord action in the site nav beside the star badge, an entry in the footer Project column, and a link in the homepage community section. "Discord" is a brand name, so it is a literal rather than a dictionary key — it needs no translation and every routed locale gets the identical link shape. The one exception is the zh README's nav line, which reads "Discord 社区" so the word is a noun phrase in context rather than a bare English token. docs-ia.test.ts pins the footer project routes in exact locale-swap parity, so its expectation is extended rather than relaxed — a new footer link still has to appear in every locale or the test fails. Receipts: cd web && npx tsc --noEmit exit=0; npm test -> 28 files, 235 tests passed; npm run lint exit=0.
This commit is contained in:
+2
-1
@@ -19,11 +19,12 @@ Siempre estamos buscando personas que contribuyan y formas de mejorar. Si falta
|
||||
un modelo o proveedor que usas, o algo se rompe, contárnoslo es una de las cosas
|
||||
más útiles que puedes hacer — mira [Contribuir](#contribuir).
|
||||
|
||||
[English](README.md) · [简体中文](README.zh-CN.md) · [日本語](README.ja-JP.md) · [Tiếng Việt](README.vi.md) · [Bahasa Indonesia](README.id.md) · [한국어](README.ko-KR.md) · [Português](README.pt-BR.md) · [Русский](README.ru.md) · [Українська](README.uk.md) · [codewhale.net](https://codewhale.net/) · [Docs](docs) · [Changelog](CHANGELOG.md)
|
||||
[English](README.md) · [简体中文](README.zh-CN.md) · [日本語](README.ja-JP.md) · [Tiếng Việt](README.vi.md) · [Bahasa Indonesia](README.id.md) · [한국어](README.ko-KR.md) · [Português](README.pt-BR.md) · [Русский](README.ru.md) · [Українська](README.uk.md) · [codewhale.net](https://codewhale.net/) · [Docs](docs) · [Changelog](CHANGELOG.md) · [Discord](https://discord.gg/37gfS3ksug)
|
||||
|
||||
[](https://github.com/Hmbown/CodeWhale/actions/workflows/ci.yml)
|
||||
[](https://crates.io/crates/codewhale-cli)
|
||||
[](https://www.npmjs.com/package/codewhale)
|
||||
[](https://discord.gg/37gfS3ksug)
|
||||
|
||||

|
||||
|
||||
|
||||
+2
-1
@@ -9,11 +9,12 @@ Berikan penyedia, model, dan tugas: Codewhale akan membaca kode Anda, mengedit b
|
||||
|
||||
Kami selalu membuka kesempatan bagi para kontributor dan cara untuk terus berkembang. Jika model atau penyedia yang Anda gunakan belum tersedia, atau ada hal yang tidak berjalan semestinya, memberi tahu kami adalah salah satu kontribusi paling berharga yang bisa Anda lakukan — lihat [Kontribusi](#kontribusi).
|
||||
|
||||
[English](README.md) · [简体中文](README.zh-CN.md) · [日本語](README.ja-JP.md) · [Tiếng Việt](README.vi.md) · [Bahasa Indonesia](README.id.md) · [한국어](README.ko-KR.md) · [Español](README.es-419.md) · [Português](README.pt-BR.md) · [codewhale.net](https://codewhale.net/) · [Docs](docs) · [Changelog](CHANGELOG.md)
|
||||
[English](README.md) · [简体中文](README.zh-CN.md) · [日本語](README.ja-JP.md) · [Tiếng Việt](README.vi.md) · [Bahasa Indonesia](README.id.md) · [한국어](README.ko-KR.md) · [Español](README.es-419.md) · [Português](README.pt-BR.md) · [codewhale.net](https://codewhale.net/) · [Docs](docs) · [Changelog](CHANGELOG.md) · [Discord](https://discord.gg/37gfS3ksug)
|
||||
|
||||
[](https://github.com/Hmbown/CodeWhale/actions/workflows/ci.yml)
|
||||
[](https://crates.io/crates/codewhale-cli)
|
||||
[](https://www.npmjs.com/package/codewhale)
|
||||
[](https://discord.gg/37gfS3ksug)
|
||||
|
||||

|
||||
|
||||
|
||||
+2
-1
@@ -9,11 +9,12 @@ Codewhale は DeepSeek のためのネイティブ体験として始まりまし
|
||||
|
||||
私たちは常にコントリビューターと改善の方法を探しています。使っているモデルやプロバイダが見当たらないとき、あるいは何かが壊れたときは、それを知らせてもらえることが最も役に立つことのひとつです — [コントリビューション](#コントリビューション)を見てください。
|
||||
|
||||
[English](README.md) · [简体中文](README.zh-CN.md) · [Tiếng Việt](README.vi.md) · [Bahasa Indonesia](README.id.md) · [한국어](README.ko-KR.md) · [Español](README.es-419.md) · [Português](README.pt-BR.md) · [Русский](README.ru.md) · [Українська](README.uk.md) · [codewhale.net](https://codewhale.net/) · [Docs](docs) · [Changelog](CHANGELOG.md)
|
||||
[English](README.md) · [简体中文](README.zh-CN.md) · [Tiếng Việt](README.vi.md) · [Bahasa Indonesia](README.id.md) · [한국어](README.ko-KR.md) · [Español](README.es-419.md) · [Português](README.pt-BR.md) · [Русский](README.ru.md) · [Українська](README.uk.md) · [codewhale.net](https://codewhale.net/) · [Docs](docs) · [Changelog](CHANGELOG.md) · [Discord](https://discord.gg/37gfS3ksug)
|
||||
|
||||
[](https://github.com/Hmbown/CodeWhale/actions/workflows/ci.yml)
|
||||
[](https://crates.io/crates/codewhale-cli)
|
||||
[](https://www.npmjs.com/package/codewhale)
|
||||
[](https://discord.gg/37gfS3ksug)
|
||||
|
||||

|
||||
|
||||
|
||||
+2
-1
@@ -9,11 +9,12 @@ Codewhale은 DeepSeek을 위한 네이티브 경험으로 시작했습니다.
|
||||
|
||||
우리는 항상 기여자와 개선할 방법을 찾고 있습니다. 사용하는 모델이나 프로바이더가 빠져 있거나 무언가가 깨진다면, 그것을 알려 주는 일이 할 수 있는 가장 유용한 일 중 하나입니다 — [기여](#기여)를 참고하세요.
|
||||
|
||||
[English](README.md) · [简体中文](README.zh-CN.md) · [日本語](README.ja-JP.md) · [Tiếng Việt](README.vi.md) · [Bahasa Indonesia](README.id.md) · [Español](README.es-419.md) · [Português](README.pt-BR.md) · [Русский](README.ru.md) · [Українська](README.uk.md) · [codewhale.net](https://codewhale.net/) · [Docs](docs) · [Changelog](CHANGELOG.md)
|
||||
[English](README.md) · [简体中文](README.zh-CN.md) · [日本語](README.ja-JP.md) · [Tiếng Việt](README.vi.md) · [Bahasa Indonesia](README.id.md) · [Español](README.es-419.md) · [Português](README.pt-BR.md) · [Русский](README.ru.md) · [Українська](README.uk.md) · [codewhale.net](https://codewhale.net/) · [Docs](docs) · [Changelog](CHANGELOG.md) · [Discord](https://discord.gg/37gfS3ksug)
|
||||
|
||||
[](https://github.com/Hmbown/CodeWhale/actions/workflows/ci.yml)
|
||||
[](https://crates.io/crates/codewhale-cli)
|
||||
[](https://www.npmjs.com/package/codewhale)
|
||||
[](https://discord.gg/37gfS3ksug)
|
||||
|
||||

|
||||
|
||||
|
||||
@@ -17,11 +17,12 @@ We're always looking for contributors and ways to improve. If a model or
|
||||
provider you use is missing, or something breaks, telling us is one of the most
|
||||
useful things you can do — see [Contributing](#contributing).
|
||||
|
||||
[简体中文](README.zh-CN.md) · [日本語](README.ja-JP.md) · [Tiếng Việt](README.vi.md) · [Bahasa Indonesia](README.id.md) · [한국어](README.ko-KR.md) · [Español](README.es-419.md) · [Português](README.pt-BR.md) · [Русский](README.ru.md) · [Українська](README.uk.md) · [codewhale.net](https://codewhale.net/) · [Docs](docs) · [Changelog](CHANGELOG.md)
|
||||
[简体中文](README.zh-CN.md) · [日本語](README.ja-JP.md) · [Tiếng Việt](README.vi.md) · [Bahasa Indonesia](README.id.md) · [한국어](README.ko-KR.md) · [Español](README.es-419.md) · [Português](README.pt-BR.md) · [Русский](README.ru.md) · [Українська](README.uk.md) · [codewhale.net](https://codewhale.net/) · [Docs](docs) · [Changelog](CHANGELOG.md) · [Discord](https://discord.gg/37gfS3ksug)
|
||||
|
||||
[](https://github.com/Hmbown/CodeWhale/actions/workflows/ci.yml)
|
||||
[](https://crates.io/crates/codewhale-cli)
|
||||
[](https://www.npmjs.com/package/codewhale)
|
||||
[](https://discord.gg/37gfS3ksug)
|
||||
|
||||

|
||||
|
||||
|
||||
+2
-1
@@ -19,11 +19,12 @@ Estamos sempre em busca de pessoas que contribuam e de formas de melhorar. Se um
|
||||
modelo ou provedor que você usa está faltando, ou se algo quebra, nos contar é
|
||||
uma das coisas mais úteis que você pode fazer — veja [Contribuindo](#contribuindo).
|
||||
|
||||
[English](README.md) · [简体中文](README.zh-CN.md) · [日本語](README.ja-JP.md) · [Tiếng Việt](README.vi.md) · [Bahasa Indonesia](README.id.md) · [한국어](README.ko-KR.md) · [Español](README.es-419.md) · [Русский](README.ru.md) · [Українська](README.uk.md) · [codewhale.net](https://codewhale.net/) · [Docs](docs) · [Changelog](CHANGELOG.md)
|
||||
[English](README.md) · [简体中文](README.zh-CN.md) · [日本語](README.ja-JP.md) · [Tiếng Việt](README.vi.md) · [Bahasa Indonesia](README.id.md) · [한국어](README.ko-KR.md) · [Español](README.es-419.md) · [Русский](README.ru.md) · [Українська](README.uk.md) · [codewhale.net](https://codewhale.net/) · [Docs](docs) · [Changelog](CHANGELOG.md) · [Discord](https://discord.gg/37gfS3ksug)
|
||||
|
||||
[](https://github.com/Hmbown/CodeWhale/actions/workflows/ci.yml)
|
||||
[](https://crates.io/crates/codewhale-cli)
|
||||
[](https://www.npmjs.com/package/codewhale)
|
||||
[](https://discord.gg/37gfS3ksug)
|
||||
|
||||

|
||||
|
||||
|
||||
+2
-1
@@ -21,11 +21,12 @@ Codewhale начинался как нативный клиент для DeepSee
|
||||
одно из самых полезных действий с вашей стороны: см.
|
||||
[Участие в проекте](#участие-в-проекте).
|
||||
|
||||
[English](README.md) · [简体中文](README.zh-CN.md) · [日本語](README.ja-JP.md) · [Tiếng Việt](README.vi.md) · [Bahasa Indonesia](README.id.md) · [한국어](README.ko-KR.md) · [Español](README.es-419.md) · [Português](README.pt-BR.md) · [Українська](README.uk.md) · [Українська](README.uk.md) · [codewhale.net](https://codewhale.net/) · [Docs](docs) · [Changelog](CHANGELOG.md)
|
||||
[English](README.md) · [简体中文](README.zh-CN.md) · [日本語](README.ja-JP.md) · [Tiếng Việt](README.vi.md) · [Bahasa Indonesia](README.id.md) · [한국어](README.ko-KR.md) · [Español](README.es-419.md) · [Português](README.pt-BR.md) · [Українська](README.uk.md) · [Українська](README.uk.md) · [codewhale.net](https://codewhale.net/) · [Docs](docs) · [Changelog](CHANGELOG.md) · [Discord](https://discord.gg/37gfS3ksug)
|
||||
|
||||
[](https://github.com/Hmbown/CodeWhale/actions/workflows/ci.yml)
|
||||
[](https://crates.io/crates/codewhale-cli)
|
||||
[](https://www.npmjs.com/package/codewhale)
|
||||
[](https://discord.gg/37gfS3ksug)
|
||||
|
||||

|
||||
|
||||
|
||||
+2
-1
@@ -21,11 +21,12 @@ Codewhale починався як нативний інструмент для D
|
||||
це — одна з найкорисніших речей, які ви можете зробити — див.
|
||||
[Участь у проєкті](#участь-у-проєкті).
|
||||
|
||||
[English](README.md) · [简体中文](README.zh-CN.md) · [日本語](README.ja-JP.md) · [Tiếng Việt](README.vi.md) · [Bahasa Indonesia](README.id.md) · [한국어](README.ko-KR.md) · [Español](README.es-419.md) · [Português](README.pt-BR.md) · [Русский](README.ru.md) · [codewhale.net](https://codewhale.net/) · [Документація](docs) · [Журнал змін](CHANGELOG.md)
|
||||
[English](README.md) · [简体中文](README.zh-CN.md) · [日本語](README.ja-JP.md) · [Tiếng Việt](README.vi.md) · [Bahasa Indonesia](README.id.md) · [한국어](README.ko-KR.md) · [Español](README.es-419.md) · [Português](README.pt-BR.md) · [Русский](README.ru.md) · [codewhale.net](https://codewhale.net/) · [Документація](docs) · [Журнал змін](CHANGELOG.md) · [Discord](https://discord.gg/37gfS3ksug)
|
||||
|
||||
[](https://github.com/Hmbown/CodeWhale/actions/workflows/ci.yml)
|
||||
[](https://crates.io/crates/codewhale-cli)
|
||||
[](https://www.npmjs.com/package/codewhale)
|
||||
[](https://discord.gg/37gfS3ksug)
|
||||
|
||||

|
||||
|
||||
|
||||
+2
-1
@@ -19,11 +19,12 @@ Chúng tôi luôn tìm kiếm người đóng góp và cách cải thiện. Nế
|
||||
provider bạn dùng còn thiếu, hoặc có gì đó hỏng, báo cho chúng tôi biết là một
|
||||
trong những điều hữu ích nhất bạn có thể làm — xem [Đóng góp](#đóng-góp).
|
||||
|
||||
[English](README.md) · [简体中文](README.zh-CN.md) · [日本語](README.ja-JP.md) · [한국어](README.ko-KR.md) · [Español](README.es-419.md) · [Português](README.pt-BR.md) · [Русский](README.ru.md) · [Українська](README.uk.md) · [Bahasa Indonesia](README.id.md) · [codewhale.net](https://codewhale.net/) · [Docs](docs) · [Changelog](CHANGELOG.md)
|
||||
[English](README.md) · [简体中文](README.zh-CN.md) · [日本語](README.ja-JP.md) · [한국어](README.ko-KR.md) · [Español](README.es-419.md) · [Português](README.pt-BR.md) · [Русский](README.ru.md) · [Українська](README.uk.md) · [Bahasa Indonesia](README.id.md) · [codewhale.net](https://codewhale.net/) · [Docs](docs) · [Changelog](CHANGELOG.md) · [Discord](https://discord.gg/37gfS3ksug)
|
||||
|
||||
[](https://github.com/Hmbown/CodeWhale/actions/workflows/ci.yml)
|
||||
[](https://crates.io/crates/codewhale-cli)
|
||||
[](https://www.npmjs.com/package/codewhale)
|
||||
[](https://discord.gg/37gfS3ksug)
|
||||
|
||||

|
||||
|
||||
|
||||
+2
-1
@@ -9,11 +9,12 @@ Codewhale 最初是为 DeepSeek 打造的原生体验,如今已成长为一个
|
||||
|
||||
我们一直在寻找贡献者和改进的方式。如果你在用的某个模型或 provider 还不支持,或者有什么东西坏了,告诉我们就是你能做的最有用的事之一——见[贡献](#贡献)。
|
||||
|
||||
[English](README.md) · [日本語](README.ja-JP.md) · [Tiếng Việt](README.vi.md) · [Bahasa Indonesia](README.id.md) · [한국어](README.ko-KR.md) · [Español](README.es-419.md) · [Português](README.pt-BR.md) · [Русский](README.ru.md) · [Українська](README.uk.md) · [codewhale.net](https://codewhale.net/) · [Docs](docs) · [Changelog](CHANGELOG.md)
|
||||
[English](README.md) · [日本語](README.ja-JP.md) · [Tiếng Việt](README.vi.md) · [Bahasa Indonesia](README.id.md) · [한국어](README.ko-KR.md) · [Español](README.es-419.md) · [Português](README.pt-BR.md) · [Русский](README.ru.md) · [Українська](README.uk.md) · [codewhale.net](https://codewhale.net/) · [Docs](docs) · [Changelog](CHANGELOG.md) · [Discord 社区](https://discord.gg/37gfS3ksug)
|
||||
|
||||
[](https://github.com/Hmbown/CodeWhale/actions/workflows/ci.yml)
|
||||
[](https://crates.io/crates/codewhale-cli)
|
||||
[](https://www.npmjs.com/package/codewhale)
|
||||
[](https://discord.gg/37gfS3ksug)
|
||||
|
||||

|
||||
|
||||
|
||||
@@ -10,7 +10,7 @@ import { Whale } from "@/components/whale";
|
||||
import { getFacts } from "@/lib/facts";
|
||||
import { fetchFeed } from "@/lib/github";
|
||||
import { fill, getChrome, getHome, splitToken } from "@/lib/i18n/dictionaries";
|
||||
import { REPO_ISSUES_URL, REPO_RELEASES_URL, REPO_URL } from "@/lib/i18n/links";
|
||||
import { REPO_ISSUES_URL, REPO_RELEASES_URL, REPO_URL, DISCORD_URL } from "@/lib/i18n/links";
|
||||
import { getEnv } from "@/lib/kv";
|
||||
import type { FeedItem } from "@/lib/types";
|
||||
|
||||
@@ -345,6 +345,7 @@ export default async function HomePage({ params }: { params: Promise<{ locale: s
|
||||
<nav aria-label={d.communityLinksAria}>
|
||||
<a href={REPO_URL}>GitHub</a>
|
||||
<a href={REPO_ISSUES_URL}>Issues</a>
|
||||
<a href={DISCORD_URL}>Discord</a>
|
||||
<Link href={`/${locale}/contribute`}>{d.contribute}</Link>
|
||||
{publishedRelease ? (
|
||||
<a href={publishedRelease.url}>{publishedRelease.tag}</a>
|
||||
|
||||
@@ -2,7 +2,7 @@ import Link from "next/link";
|
||||
import type { Locale } from "@/lib/i18n/config";
|
||||
import { FACTS } from "@/lib/facts.generated";
|
||||
import { fill, getChrome } from "@/lib/i18n/dictionaries";
|
||||
import { navLinks, REPO_URL } from "@/lib/i18n/links";
|
||||
import { navLinks, REPO_URL, DISCORD_URL } from "@/lib/i18n/links";
|
||||
import { fetchRepoStats, formatStars } from "@/lib/github";
|
||||
import { getEnv } from "@/lib/kv";
|
||||
import { LocaleSwitcher } from "./locale-switcher";
|
||||
@@ -93,6 +93,13 @@ export async function Nav({ locale = "en" }: { locale?: Locale }) {
|
||||
>
|
||||
★ {stars > 0 ? formatStars(stars) : chrome.githubFallback}
|
||||
</Link>
|
||||
<Link
|
||||
href={DISCORD_URL}
|
||||
className="site-discord-link paper-discord-badge"
|
||||
aria-label="Discord"
|
||||
>
|
||||
Discord
|
||||
</Link>
|
||||
<Link
|
||||
href={`/${locale}/install`}
|
||||
className="paper-install-cta hidden md:inline-flex"
|
||||
|
||||
@@ -147,6 +147,7 @@ describe("navigation parity and accessibility", () => {
|
||||
expect(project.map((l) => l.href), `${locale} footer project routes`).toEqual([
|
||||
"https://github.com/Hmbown/CodeWhale",
|
||||
"https://github.com/Hmbown/CodeWhale/issues",
|
||||
"https://discord.gg/37gfS3ksug",
|
||||
`/${locale}/contribute`,
|
||||
"https://github.com/Hmbown/CodeWhale/blob/main/LICENSE",
|
||||
]);
|
||||
|
||||
@@ -14,6 +14,8 @@ export const REPO_URL = "https://github.com/Hmbown/CodeWhale";
|
||||
export const REPO_ISSUES_URL = `${REPO_URL}/issues`;
|
||||
export const REPO_RELEASES_URL = `${REPO_URL}/releases`;
|
||||
export const REPO_LICENSE_URL = `${REPO_URL}/blob/main/LICENSE`;
|
||||
/** Community chat. A brand name, so it is not a dictionary string. */
|
||||
export const DISCORD_URL = "https://discord.gg/37gfS3ksug";
|
||||
|
||||
/** A chrome link. `secondary` is the small bilingual companion label. */
|
||||
export interface ChromeLink {
|
||||
@@ -67,6 +69,7 @@ export function footerProjectLinks(locale: string, chrome: ChromeDict): ChromeLi
|
||||
return [
|
||||
{ href: REPO_URL, label: "GitHub" },
|
||||
{ href: REPO_ISSUES_URL, label: chrome.footerIssues },
|
||||
{ href: DISCORD_URL, label: "Discord" },
|
||||
{ href: `/${locale}/contribute`, label: chrome.footerContribute },
|
||||
{ href: REPO_LICENSE_URL, label: chrome.footerLicense },
|
||||
];
|
||||
|
||||
Reference in New Issue
Block a user