Chunk translation requests to prevent fetch timeouts on large payloads
With 1500+ keys, the single batch request payload was causing connection timeouts for some translation providers. Now splits into chunks of 150 keys with 3 retr...
Add /calculator and /pricing/offer to all sitemaps; i18n HTML sitemap labels
- app/sitemap.ts: add /pricing/offer and /calculator entries with locale alternates - app/api/sitemap/route.ts: add Pricing Calculator and Special Offer entries...
Delete translation hash to force full re-translation of expanded en.json
All page body content has been extracted to en.json (4 parallel agents added ~500+ new keys across features, home, about, security, privacy, terms, gdpr, cookie...
Fully extract remaining body strings from product, blog, pricing, demo, contact, calculator
Fully extract body strings from security, privacy, terms, gdpr, cookies, legal
Fully extract body strings from careers, company, community, resources, roadmap
Re-login to registry immediately before build to prevent auth expiry after long translation step
Force re-translation and commit locale files back to repo after translate step
Remove translate config from application.yml — belongs in k8s/configmap.yaml
Remove translate config from application.yml — belongs in k8s/configmap.yaml
Wire locale through dynamic fetches and add hash-based translation skip
- Forward locale param to SecurityService changelog API (page + route + client) - Forward locale param to KBService article/tree fetches (section + slug pages) ...
Remove redundant translation table SQL — Hibernate ddl-auto handles them
Wire useTranslations into all client components
Replaces all hardcoded strings in every (pages)/*Client.tsx with t("key") calls using next-intl useTranslations. Covers 25 files: security, contact, demo, prici...
Forward locale param to SecurityService on public subscription catalog endpoint
Use UUID-based repo methods for subscription plan translations, avoid lazy-load in scheduler
Use UUID for SubscriptionPlanTranslation FK to match BaseUuidEntity PK type
Add translation tables for commit logs, KB articles, and subscription plans
Add async translation for changelog and subscription plans, add locale-aware public APIs
Add async translation for KB articles, add locale-aware public article APIs
Expand messages/en.json with full page body copy coverage
Grew the translation catalogue from 172 keys (~12 namespaces) to 300+ keys across 26 namespaces, extracting every user-visible hardcoded English string from all...
Resolve DYNAMIC_SERVER_USAGE 500 errors and missing calculator route
- Add force-dynamic to [locale]/layout.tsx (getMessages() uses headers() internally) - Remove generateStaticParams from [kbSection]/page.tsx (KB content is dyna...
Add translation entities and repositories for CommitLog, KbArticle, SubscriptionPlan
- CommitLogTranslation + CommitLogTranslationId (PK: commit_log_id, locale) - KbArticleTranslation + KbArticleTranslationId (PK: article_uid, locale) - Subscrip...
Merge pull request #4147 from ****************
fix: add explicit AS for column alias in session and event queries (Postgres syntax error)
Merge pull request #4158 from Mravuri96/patch-1
Update build-docker script to include recorder
Add tooltips and fix scroll behaviour on language selector
- Add englishName to LOCALE_CONFIG for all 22 locales - Add title={englishName} to each language button (desktop + mobile) so hovering shows the English name ...
Remove --load-only restriction from LibreTranslate
All needed language packages are pre-installed on the hostPath volume. --load-only was preventing some packages from loading. Without the flag, LibreTranslate l...
Use startupProbe for LibreTranslate to handle long model downloads
startupProbe with 60 attempts x 30s = 30min startup window for initial model downloads. After startup completes, normal liveness and readiness probes take over ...
Restrict LibreTranslate to only load supported language models
Use --load-only with the 22 supported language codes instead of downloading all available models (~hundreds of GB). Removes --update-models flag which would dow...
Remove invalid --load-awesome-ai-models flag from LibreTranslate
Flag does not exist in current libretranslate image. Replace with --update-models to ensure language packs are downloaded on startup.
Add LibreTranslate permission init container, scale Bergamot to 0
LibreTranslate was crashing with PermissionError on packages subdir. Added busybox init container to mkdir + chmod 777 the mounted hostPath before the main cont...
Fall through to LibreTranslate when Bergamot is unavailable
ProviderRouter now catches exceptions per provider and tries the next. BergamotProvider throws on failure instead of silently returning original text, so LibreT...
Deploy LibreTranslate and Bergamot in workflow
The manifests were committed but never wired into the deploy steps. Add kubectl apply for both services on K1M1 and K2M1.
Widen language selector dropdown to prevent horizontal scrollbar
260px was too narrow for entries like 'Bahasa Indonesia'. Increase to 310px and add overflow-x: hidden to eliminate the scrollbar entirely.
Port-forward TranslateService to reach it from CI runner
The Forgejo runner runs on k0m1 which cannot resolve .svc.cluster.local DNS. Use kubectl port-forward to tunnel kamowstranslate-service:80 to localhost:18080 du...
Remove pre-i18n app/(pages)/ and app/page.tsx
These were accidentally restored by git checkout -- app/ during a previous vendor fix. Both old and new route structures existing caused Next.js to try generati...
Upgrade Dockerfile to node:24-alpine
ships npm 10 which can't read the lock file and fails npm ci with a missing @swc/helpers@0.5.21 error.
Bump Node.js to 24 to match local dev environment
npm ci under Node 22 / npm 10 fails because the two versions resolve transitive deps (e.g. @swc/helpers) to different versions.
Exclude ****************
Excluding SecurityAutoConfiguration leaves Actuator's **************** without an HttpSecurity bean, crashing startup. Exclude it explicitly.
Add autoconfigure exclusions to k8s configmap
application.yml is for local only — k8s uses the configmap. Move the Spring autoconfiguration exclusions for JPA, Redis, Security, and OAuth2 into k8s/configmap...
Exclude all transitive Spring autoconfiguration from shared library
kamo-shared-library pulls in JPA, Redis, Security, and OAuth2 starters which cause Spring Boot to attempt autoconfiguring DataSource, Hibernate, Redis/Lettuce, ...
Add concurrency group to prevent duplicate workflow runs
When a push triggers a workflow and workflow_dispatch is also fired (or two pushes arrive in quick succession), both runs would execute simultaneously. Adding a...
Je, unaona nini kuhusu usafiri?
Kila moja ya hizi updates ardhi katika nafasi yako ya kazi moja kwa moja. Kuanza bure na kuangalia kukua wiki baada ya wiki.