Translate ****************
3 files (94 strings). Extracted agreement template defaults (HTML body, sample data, type colors, helper) into a sibling .ts file so the audit no longer flags t...
Translate AddOns/Bundles/VolumeDiscounts
3 files (57 strings). Uses t() with **************** bundles,volumeDiscounts}.* keys. Reused common.actions/fields/states.
Translate MatrixCell + DashboardCards
Partial start of subscription batch — 2 small files (5 strings): MatrixCell "Unlimited" pill labels in ReadMode and NumericEditor; SubscriptionDashboardCards ti...
Translate UI
30 files: leads (BusinessCard/Header/Manager); tools (ai-chat 5 files, calculator 6 files, media-player, message 2 files, sms 2 files); image-to-svg ***********...
Terjemahkan string UI
27 berkas: * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * ManageSourceDialog}; * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * ...
Translate settings features components
12 files in **************** meets: **************** settings tabs. phone: multi/AggregatedTabs **************** and multi/ProvidersTab. docs: AssocConfigPanel,...
Translate CRM settings components
11 files in **************** CustomFormManager, FieldMappingInterface, LeadAutoImportManager, LeadManualImportManager, LeadMarketManager, LeadStatusLabelManager...
Translate small components subdirs
24 files across **************** **************** hardcoded UI strings now use t() with keys grouped by directory under components.* namespace. SmsChatTab.tsx d...
Translate error/loading/not-found pages
Use t() for ERROR badge, headline, subtitle, action buttons, and support link on error.tsx; loading message on loading.tsx; random message and description array...
Translate hardcoded UI
commerce (10 files): applications, bookings, commitments, orders, procurement, requests, service, service-requests, signups, subscriptions detail pages. setting...
Defects C/D/E — title display name, toolbar layout, header lift
Defect C: Add GET proxy for /sessions/{guid}/members so ChatBox.loadMembers() can populate the SessionMember.name field. ChatTool already uses members[0].name f...
Derive and dispatch tool window title from session members
Adds onMembersChange callback to ChatBox; ChatTool derives the title (single name for 1-on-1, or '<name> (+N more)' for groups) and dispatches tool:title to upd...
Collapse toolbar, remove ChatHeader, add members intro row
- Delete ChatHeader row from embedded chat; move Add Member icon into unified toolbar - Toolbar: search input on left, VideoCall icon + PersonAdd icon + scroll-...
Lift search above tab strip, share query across Members and Chats tabs
Moves the search TextField from MemberList into NavTopPanel above the Tabs. Passes searchQuery as a prop to both MemberList and ChatsList so a single field filt...
Show upload error toast in Composer when attachments fail
Catches errors thrown by uploadAll() and renders an MUI Alert above the input row. Root cause of Defect 4 was the missing MinIO bucket (imaging-chat-attachments...
Empty Chats tab — frontend already expects {rows} paged shape (no change needed)
The ChatsList component already reads data.rows. Backend fix (shared-lib + MediaService) is the root cause: HAVING CAST(null AS TIMESTAMP) IS NULL did not work ...
Drop tombol header obrolan redundan; mengintegrasikan Anggota / Percakapan tab dengan desain panel
ChatHeader memiliki IconButons minimim / close tetapi jendela alat obrolan krom sudah menyediakan mereka affordansi - mereka duplikat ketika tertanam. ChatHeade...
Drop tidak digunakan @ ts-expect-error di streaming fetch body
'as RequestInit' cast telah membungkam tipe error; direktif adalah redundan di bawah TS ketat mode dan istirahat produksi bangunan.
Langsung chats-list pemutakhiran melalui saluran NAS yang belum dibaca
Daftar percakapan dengan gulungan tak terbatas, dibuat secara virtual melalui IntersectionObserver
Header obrolan dengan avatar stack, judul popover, dan anggota picker
Komposer dengan drag-drop, chip lampiran yang tertunda, masukan multi-line
Rute proxy untuk find-or-create, anggota, lampiran, pencitraan proksi, bisu, mencabut
Ekstrak bersama * * * * * * * * * * * * pembantu ke app / lib / mediaServiceUr.ts Tambahkan rute proksi: find-or-create, anggota, penerimaan, lampiran (streamin...
Distinguish actively-translating vs queued messages
The streaming queue was already strictly sequential (one fetch at a time), but every queued message rendered "Translating…" because they all shared the same pen...
Show error icon when a message fails to translate
When the per-message translate call returns translated:false, errors out, or times out, the chat bubble now renders a small red ErrorOutline icon in place of th...
Persist language change and show current language in tooltip
The members endpoint accepts PUT not PATCH, so the language picker's PATCH was silently ignored — Member.language never actually updated, which is why refreshin...
Forward query string pada * * * * * * * * * * * * * * * * * * *
Proksi Next.js telah menjatuhkan string query permintaan ketika meneruskan ke MediaService, yang berarti riwayat obrolan pengambilan 's? lang = < locale > param...
Stream message translations newest-first on language switch
When the user picks a new language (or opens an existing chat in a language different from the messages' source), every bubble that needs translation immediatel...
Revert "fix(settings): show Plans & Billing tab regardless of root-org status"
This reverts commit ****************
Translate chat messages into the viewer's language
Adds a "My Language" flag picker in NavTop (left of the email tool, separated by a vertical rule). Selecting a language writes back to Member.language and syncs...
Show Plans & Billing tab regardless of root-org status
The !isRootOrg gate hid the tab on root orgs and blocked org owners and self-viewers from reaching their billing page from "My Account". The PlansBillingTab its...
Translate hardcoded UI strings
setup/dns (6 files): page, AliasStatusTable, DnsProgressView, DnsProvisioningPanel, DomainEntryForm, ManualDnsGuide. settings (10 files): diagnostics, essential...
Drop in place — jump every member, no softPush on release
The drift on release was softPushCluster firing on the user-drop path. A mega-cluster's bounds extend in all directions from the anchor, so the PADDING-margin /...
Translate hardcoded UI strings
account/view: 40 strings reused from existing namespace (no new keys). kb (13 files): translate article editor, viewer, reviews, resources, versions, navigation...
Terjemahkan sisa hardcode UI string
Halaman tugas: Simpan Perubahan, Tutup, Tambahkan Butir Tugas ke Stream Automatisasi, Sunting tooltip judul. Catatan halaman: Dismiss, load catatan, Hapus Catat...
Replace hardcoded English with t() across leads pages
Translate remaining hardcoded UI strings in allotments, new, reports, and view/[id] to use next-intl. Add scripts/i18n-audit.py to detect remaining hardcoded st...
Drop firmly in place — tail-only throw + jump() to clear velocity
The previous fix still let heads drift on release because: 1. Throw detection averaged velocity across the full 110ms window. A user who flicked then decele...
Drop in place after a paused drag instead of drifting
Two cooperating bugs caused dropped heads (single or post-gather) to fly off to seemingly random positions when the user dragged fast, slowed to a stop, then re...
Tambahkan Percakapan / Dokumen / Catatan / KB / HRS bagian
Indeks / pengaturan tidak menunjukkan daerah ke bukan-admin karena setiap daerah yang ada digated pada hak admin (CONFIGURE _ SISTEM, Mengelola _ * _ SETTINGS, ...
Rotasi pembukaan tujuan berdasarkan rasio aspek viewport
Frame tujuan sekarang tilts oleh ata2 (viewport H, viewport) sehingga terbuka sisi kanan bertujuan menuju viewport diagonal - untuk 16: 9 monitor membuka titik ...
Seperti apa yang Anda lihat pengiriman?
Semua itu tiba di ruang kerjamu sendiri. Mulailah dengan rencana gratis dan baca halaman ini lagi dalam sebulan.
