diff --git a/apps/client/.env.example b/apps/client/.env.example index 69db148e..7e11ce07 100644 --- a/apps/client/.env.example +++ b/apps/client/.env.example @@ -4,9 +4,11 @@ VITE_PUBLIC_URL=http://localhost:3000 VITE_DEBUG_LOGGING=true VITE_DEFAULT_LANGUAGE=en VITE_SUPPORT_EMAIL=support@orienteerfeed.com -VITE_DOCS_URL=docs.orienteerfeed.com +VITE_DOCS_URL=https://docs.orienteerfeed.com VITE_DISCORD_INVITE_URL=https://discord.gg/QMvnurgKzU VITE_GITHUB_REPO_URL=https://github.com/orienteerfeed/ofeed +VITE_WEBLATE_URL=https://hosted.weblate.org/projects/ofeed +VITE_BUY_ME_A_COFFEE_URL=https://buymeacoffee.com/ofeed # Docker runtime (used by nginx.conf.template inside container) PORT=80 diff --git a/apps/client/src/config.ts b/apps/client/src/config.ts index a3da65fb..7076a7fc 100644 --- a/apps/client/src/config.ts +++ b/apps/client/src/config.ts @@ -43,6 +43,14 @@ export const config = { import.meta.env.VITE_GITHUB_REPO_URL, 'https://github.com/orienteerfeed/ofeed' ), + WEBLATE_URL: optional( + import.meta.env.VITE_WEBLATE_URL, + 'https://hosted.weblate.org/projects/ofeed' + ), + BUY_ME_A_COFFEE_URL: optional( + import.meta.env.VITE_BUY_ME_A_COFFEE_URL, + 'https://buymeacoffee.com/ofeed' + ), // Debug flags - all controlled by VITE_DEBUG_LOGGING DEBUG_LOGGING: DEBUG, diff --git a/apps/client/src/lib/paths/externalLinks.ts b/apps/client/src/lib/paths/externalLinks.ts index 50c59518..a3ebd622 100644 --- a/apps/client/src/lib/paths/externalLinks.ts +++ b/apps/client/src/lib/paths/externalLinks.ts @@ -31,7 +31,8 @@ export function buildExternalEventUrl( export const externalLinks = { mrb: (baseApi: string) => `${baseApi}/mrb`, docs: config.DOCS_URL, - buyMeCoffee: 'https://buymeacoffee.com/ofeed', - discord: 'https://discord.gg/YWURC23tHZ', - github: 'https://github.com/orienteerfeed/ofeed', + buyMeCoffee: config.BUY_ME_A_COFFEE_URL, + discord: config.DISCORD_INVITE_URL, + github: config.GITHUB_REPO_URL, + weblate: config.WEBLATE_URL, } as const; diff --git a/apps/client/src/pages/About/AboutPage.tsx b/apps/client/src/pages/About/AboutPage.tsx index a3b1a88e..cf83c093 100644 --- a/apps/client/src/pages/About/AboutPage.tsx +++ b/apps/client/src/pages/About/AboutPage.tsx @@ -1,9 +1,11 @@ import { Card } from '@/components/ui/card'; +import { externalLinks } from '@/lib/paths/externalLinks'; import { useTranslation } from 'react-i18next'; import { MainPageLayout } from '../../templates/MainPageLayout'; export const AboutPage = () => { const { t } = useTranslation(); + const contributeDocsUrl = `${externalLinks.docs.replace(/\/$/, '')}/contribute`; return (
@@ -151,14 +153,14 @@ export const AboutPage = () => {

- We are orienteering enthusiasts who enjoy - connecting technology with orienteering. + We are orienteering enthusiasts who enjoy connecting + technology with orienteering.

- After using the core of the platform privately for many years, we - decided to open it to the wider orienteering community to make - event organization simpler, faster, and more reliable. + After using the core of the platform privately for many years, + we decided to open it to the wider orienteering community to + make event organization simpler, faster, and more reliable.

@@ -168,7 +170,7 @@ export const AboutPage = () => {

Questions or feedback? Get in touch via{' '} { {' '} or check the{' '} { for more details.

+ +

Contribute

+

+ Help us improve localization in your language, we use{' '} + + Weblate + {' '} + for translation management. You can find more detailed information + on how to join us in the{' '} + + documentation + + . +

+