9be979ee90
feat(acadenice): add dual editor (WYSIWYG + markdown source) for R3.4
...
Custom bidirectional markdown converter (no new deps) with full round-trip
support for database-view, wikilink, mention nodes. DualEditor component wraps
PageEditor with a toolbar toggle (WYSIWYG<->markdown), lossy-switch modal, and
localStorage persistence per page. 77 tests covering 24 round-trip cases + 4
custom nodes + 9 edge cases. i18n FR+EN.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-08 01:18:29 +02:00
4e2af88144
feat(acadenice): add custom slash commands system for R3.3
...
Workspace admins can declare dynamic /keyword commands via settings UI
without recompile. Five action types: insert-template, insert-table,
embed-url, run-webhook, insert-snippet. Webhook security: HTTPS-only,
ACADENICE_WEBHOOK_ALLOWLIST allowlist, 10s timeout, no redirects, 1MB cap.
New permission slash_commands:manage added to catalogue (23 perms) and
seeded to Owner + Admin roles.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-08 01:06:11 +02:00
2fc310a2f2
feat(acadenice): add bidirectional backlinks + wikilinks for R3.2
...
- Migration: acadenice_backlink table (source/target/link_type/excerpt/workspace)
with 3 indexes and UNIQUE(source,target,type) constraint. Up+down.
- Backend module AcadeniceBacklinksModule:
BacklinkParserService: walks Tiptap JSON, extracts wikilinks/mentions/databaseView.
BacklinkIndexerService: idempotent delete-then-insert per page save.
BacklinkService: permission-aware query (space_members / public visibility).
BacklinksController: GET /api/acadenice/pages/:pageId/backlinks (JWT auth).
PageContentUpdatedListener: OnEvent handler for collab saves -> async reindex.
Tests: 16 Vitest specs (parser/indexer/service/controller).
- PersistenceExtension patch: emits ACADENICE_PAGE_CONTENT_UPDATED_EVENT after
each collab onStoreDocument (fire-and-forget, no impact on save path).
- CoreModule patch: imports AcadeniceBacklinksModule.
- Frontend WikilinkExtension: Tiptap inline atom node, [[Title]] / [[Title|alias]],
Suggestion popup (reuses mention pattern + floating-ui), ReactNodeView with
broken-link state, insertWikilink command.
Tests: 9 Vitest specs (schema/attrs/commands/HTML parse+render).
- LinkedReferencesPanel: React Query useBacklinks(pageId, staleTime=30s),
accordion grouped by link_type, excerpt preview, navigate to source page.
Tests: 7 Vitest specs (loading/error/empty/render/navigate/groups).
- extensions.ts patch: + WikilinkExtension in mainExtensions[].
- full-editor.tsx patch: + LinkedReferencesPanel below editor (Divider + panel).
- i18n: 11 keys added in en-US and fr-FR (backlinks.* + wikilink.*).
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-08 00:51:02 +02:00
f3fae2ac78
feat(client): add kanban + calendar renderers + inline edit for R3.1.d
...
- KanbanRenderer: @dnd-kit drag-drop, group by single_select field,
optimistic update + rollback, empty column placeholder, read-only mode
- CalendarRenderer: @fullcalendar month/week/day toggle, eventDrop ->
PATCH date field, event click -> RowDetailModal, stub deps noted
- InlineEditor: polymorphic (text/number/date/select/multi-select),
save on blur/Enter, cancel on Escape, permission denied read-only
- RowDetailModal: simple field detail view opened from calendar events
- useUpdateRow: generic PATCH with React Query v5 optimistic+rollback
- usePermissions: reads acadenice_permissions from window global or cookie
- patchRow helper added to bridge-client.ts
- DatabaseViewComponent: dispatches kanban/calendar to real renderers
- TableRenderer: integrates InlineEditor on double-click cells
- i18n: +12 keys (kanban.*, calendar.*, edit.*, row_detail.*) in en-US + fr-FR
- 5 new test suites: kanban, calendar, inline-editor, use-update-row, use-permissions
- Updated database-view-component.test.tsx for R3.1.d dispatch
Deps to install: @dnd-kit/core@^6 @dnd-kit/sortable@^8 @dnd-kit/utilities@^3
@fullcalendar/react@^6 @fullcalendar/daygrid@^6
@fullcalendar/timegrid@^6 @fullcalendar/interaction@^6
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-08 00:24:12 +02:00
71c2abad8a
feat(client): add database-view Tiptap extension for R3.1.c
...
- Tiptap Node extension (database-view) with attrs tableId/viewId/viewType/bridgeUrl
- NodeViewWrapper dispatches on viewType: grid/table -> TableRenderer, other -> PlaceholderRenderer
- TableRenderer (HTML table, TanStack Table v8 migration-ready - dep not yet installed)
- InsertDatabaseModal (Mantine, 2-step: table -> view selection)
- useDatabaseRealtimeUpdates SSE hook (EventSource + exponential backoff + React Query invalidation)
- bridge-client.ts (axios wrapper, per-origin singleton, cookie Bearer passthrough)
- Slash command /database registered in menu-items CommandGroups
- DatabaseViewExtension wired in mainExtensions array
- i18n: 22 keys added in en-US and fr-FR
- 41 Vitest tests across 5 suites (extension schema, component dispatch, renderer states, modal steps, SSE hook)
Upstream patches: extensions.ts (+2 lines), menu-items.ts (+4 lines), 2 translation files
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-08 00:07:33 +02:00
022add9acc
feat(rbac): R2.2 frontend pages settings RBAC dynamique avec PermissionMatrix
...
- Pages /settings/roles (liste + filtres + create), /settings/roles/:id (matrix
permissions + danger zone), /settings/users/:userId/roles (multi-select +
preview union)
- PermissionMatrix : groupes Mantine cards, wildcard <group>:* qui grise les
individuals, admin:* qui court-circuite tout, indeterminate states, tooltips
avec descriptions du catalogue
- React Query hooks pour CRUD roles + assignations user-roles, notifications
Mantine sur succes / erreurs avec extraction du message backend
- Hook useAcadenicePermissions : best-effort lecture du claim JWT R2.1, fallback
sur role natif Docmost (defense en profondeur — backend reste source de verite)
- i18n complet FR + EN (~80 cles)
- Vitest + Testing Library introduits dans apps/client (devDeps + config + setup)
- 22 tests couvrant matrix wildcards, list filters, detail save/delete flow,
multi-select assignments
- Patches upstream minimaux : 3 routes ajoutees au router, 1 entree sidebar
(visible si canManageRoles)
- Documente comme Patch 004 dans ACADENICE_PATCHES.md
2026-05-07 22:42:39 +02:00
Philipinho
81ae7a17a6
confirm dialog
2026-04-14 17:56:36 +01:00
Philip Okugbe
0e8b3bbfb3
New Crowdin updates ( #2109 )
...
* New translations translation.json (French)
* New translations translation.json (Spanish)
* New translations translation.json (German)
* New translations translation.json (Italian)
* New translations translation.json (Japanese)
* New translations translation.json (Korean)
* New translations translation.json (Dutch)
* New translations translation.json (Russian)
* New translations translation.json (Ukrainian)
* New translations translation.json (Chinese Simplified)
* New translations translation.json (Portuguese, Brazilian)
2026-04-14 00:05:51 +01:00
Philip Okugbe
1113f17a43
New Crowdin updates ( #2104 )
2026-04-12 22:46:39 +01:00
Philip Okugbe
642024ba9d
New Crowdin updates ( #2078 )
2026-03-31 21:14:41 +01:00
Philip Okugbe
cbdb37ed0a
New Crowdin updates ( #2061 )
2026-03-28 20:29:06 +00:00
Philip Okugbe
2d835da0e3
New Crowdin updates ( #2059 )
2026-03-27 22:11:19 +00:00
Philip Okugbe
d2641db895
New Crowdin updates ( #1984 )
...
* New translations translation.json (Spanish)
* New translations translation.json (German)
* New translations translation.json (Italian)
* New translations translation.json (Japanese)
* New translations translation.json (Korean)
* New translations translation.json (Dutch)
* New translations translation.json (Russian)
* New translations translation.json (Ukrainian)
* New translations translation.json (Chinese Simplified)
* New translations translation.json (English)
* New translations translation.json (Portuguese, Brazilian)
* New translations translation.json (French)
* New translations translation.json (Spanish)
* New translations translation.json (German)
* New translations translation.json (Italian)
* New translations translation.json (Japanese)
* New translations translation.json (Korean)
* New translations translation.json (Dutch)
* New translations translation.json (Russian)
* New translations translation.json (Ukrainian)
* New translations translation.json (Chinese Simplified)
* New translations translation.json (Portuguese, Brazilian)
* New translations translation.json (French)
2026-03-03 16:44:49 +00:00
Philip Okugbe
5d2aad3668
New Crowdin updates ( #1978 )
...
* New translations translation.json (Spanish)
* New translations translation.json (German)
* New translations translation.json (Italian)
* New translations translation.json (Japanese)
* New translations translation.json (Korean)
* New translations translation.json (Dutch)
* New translations translation.json (Russian)
* New translations translation.json (Ukrainian)
* New translations translation.json (Chinese Simplified)
* New translations translation.json (English)
* New translations translation.json (Portuguese, Brazilian)
* New translations translation.json (Spanish)
* New translations translation.json (German)
* New translations translation.json (Italian)
* New translations translation.json (Japanese)
* New translations translation.json (Korean)
* New translations translation.json (Dutch)
* New translations translation.json (Russian)
* New translations translation.json (Ukrainian)
* New translations translation.json (Chinese Simplified)
* New translations translation.json (English)
* New translations translation.json (Portuguese, Brazilian)
* New translations translation.json (French)
* New translations translation.json (Spanish)
* New translations translation.json (German)
* New translations translation.json (Italian)
* New translations translation.json (Japanese)
* New translations translation.json (Korean)
* New translations translation.json (Dutch)
* New translations translation.json (Russian)
* New translations translation.json (Ukrainian)
* New translations translation.json (Chinese Simplified)
* New translations translation.json (English)
* New translations translation.json (Portuguese, Brazilian)
* New translations translation.json (French)
* New translations translation.json (Spanish)
* New translations translation.json (German)
* New translations translation.json (Italian)
* New translations translation.json (Japanese)
* New translations translation.json (Korean)
* New translations translation.json (Dutch)
* New translations translation.json (Russian)
* New translations translation.json (Ukrainian)
* New translations translation.json (Chinese Simplified)
* New translations translation.json (English)
* New translations translation.json (Portuguese, Brazilian)
* New translations translation.json (French)
* New translations translation.json (Spanish)
* New translations translation.json (German)
* New translations translation.json (Italian)
* New translations translation.json (Japanese)
* New translations translation.json (Korean)
* New translations translation.json (Dutch)
* New translations translation.json (Russian)
* New translations translation.json (Ukrainian)
* New translations translation.json (Chinese Simplified)
* New translations translation.json (English)
* New translations translation.json (Portuguese, Brazilian)
* New translations translation.json (French)
* New translations translation.json (Spanish)
* New translations translation.json (German)
* New translations translation.json (Italian)
* New translations translation.json (Japanese)
* New translations translation.json (Korean)
* New translations translation.json (Dutch)
* New translations translation.json (Russian)
* New translations translation.json (Ukrainian)
* New translations translation.json (Chinese Simplified)
* New translations translation.json (English)
* New translations translation.json (Portuguese, Brazilian)
* New translations translation.json (French)
* New translations translation.json (Spanish)
* New translations translation.json (German)
* New translations translation.json (Italian)
* New translations translation.json (Japanese)
* New translations translation.json (Korean)
* New translations translation.json (Dutch)
* New translations translation.json (Russian)
* New translations translation.json (Ukrainian)
* New translations translation.json (Chinese Simplified)
* New translations translation.json (Portuguese, Brazilian)
* New translations translation.json (French)
2026-03-03 00:22:51 +00:00
Philip Okugbe
85ce0d32bf
New Crowdin updates ( #1960 )
...
* New translations translation.json (Russian)
* New translations translation.json (French)
* New translations translation.json (Spanish)
* New translations translation.json (German)
* New translations translation.json (Italian)
* New translations translation.json (Japanese)
* New translations translation.json (Korean)
* New translations translation.json (Dutch)
* New translations translation.json (Russian)
* New translations translation.json (Ukrainian)
* New translations translation.json (Chinese Simplified)
* New translations translation.json (English)
* New translations translation.json (Portuguese, Brazilian)
* New translations translation.json (French)
* New translations translation.json (Spanish)
* New translations translation.json (German)
* New translations translation.json (Italian)
* New translations translation.json (Japanese)
* New translations translation.json (Korean)
* New translations translation.json (Dutch)
* New translations translation.json (Russian)
* New translations translation.json (Ukrainian)
* New translations translation.json (Chinese Simplified)
* New translations translation.json (Portuguese, Brazilian)
* New translations translation.json (French)
* New translations translation.json (Spanish)
* New translations translation.json (German)
* New translations translation.json (Italian)
* New translations translation.json (Japanese)
* New translations translation.json (Korean)
* New translations translation.json (Dutch)
* New translations translation.json (Russian)
* New translations translation.json (Ukrainian)
* New translations translation.json (Chinese Simplified)
* New translations translation.json (English)
* New translations translation.json (Portuguese, Brazilian)
* New translations translation.json (Dutch)
* New translations translation.json (Dutch)
* New translations translation.json (French)
* New translations translation.json (Spanish)
* New translations translation.json (German)
* New translations translation.json (Italian)
* New translations translation.json (Japanese)
* New translations translation.json (Korean)
* New translations translation.json (Russian)
* New translations translation.json (Ukrainian)
* New translations translation.json (Chinese Simplified)
* New translations translation.json (Portuguese, Brazilian)
2026-02-28 01:24:57 +00:00
Philip Okugbe
92d5d0b237
New Crowdin updates ( #1950 )
...
* New translations
2026-02-16 04:22:40 +00:00
Philip Okugbe
621ef4f0cf
New Crowdin updates ( #1948 )
...
* New translations
2026-02-15 23:10:32 +00:00
Philip Okugbe
bc3ce893c4
New Crowdin updates ( #1914 )
...
* New translations translation.json (Japanese)
* New translations translation.json (French)
* New translations translation.json (Spanish)
* New translations translation.json (German)
* New translations translation.json (Italian)
* New translations translation.json (Korean)
* New translations translation.json (Dutch)
* New translations translation.json (Russian)
* New translations translation.json (Ukrainian)
* New translations translation.json (Chinese Simplified)
* New translations translation.json (Portuguese, Brazilian)
* New translations translation.json (Japanese)
* New translations translation.json (French)
* New translations translation.json (Spanish)
* New translations translation.json (German)
* New translations translation.json (Italian)
* New translations translation.json (Korean)
* New translations translation.json (Dutch)
* New translations translation.json (Russian)
* New translations translation.json (Ukrainian)
* New translations translation.json (Chinese Simplified)
* New translations translation.json (Portuguese, Brazilian)
2026-02-06 11:31:12 -08:00
Philip Okugbe
fba9f4cb2b
New Crowdin updates ( #1896 )
...
* New translations translation.json (Japanese)
* New translations translation.json (French)
* New translations translation.json (Spanish)
* New translations translation.json (German)
* New translations translation.json (Italian)
* New translations translation.json (Korean)
* New translations translation.json (Dutch)
* New translations translation.json (Russian)
* New translations translation.json (Ukrainian)
* New translations translation.json (Chinese Simplified)
* New translations translation.json (Portuguese, Brazilian)
* New translations translation.json (Japanese)
* New translations translation.json (French)
* New translations translation.json (Spanish)
* New translations translation.json (German)
* New translations translation.json (Italian)
* New translations translation.json (Korean)
* New translations translation.json (Dutch)
* New translations translation.json (Russian)
* New translations translation.json (Ukrainian)
* New translations translation.json (Chinese Simplified)
* New translations translation.json (English)
* New translations translation.json (Portuguese, Brazilian)
* New translations translation.json (Japanese)
* New translations translation.json (French)
* New translations translation.json (Spanish)
* New translations translation.json (German)
* New translations translation.json (Italian)
* New translations translation.json (Korean)
* New translations translation.json (Dutch)
* New translations translation.json (Russian)
* New translations translation.json (Ukrainian)
* New translations translation.json (Chinese Simplified)
* New translations translation.json (English)
* New translations translation.json (Portuguese, Brazilian)
* New translations translation.json (Japanese)
* New translations translation.json (French)
* New translations translation.json (Spanish)
* New translations translation.json (German)
* New translations translation.json (Italian)
* New translations translation.json (Korean)
* New translations translation.json (Dutch)
* New translations translation.json (Russian)
* New translations translation.json (Ukrainian)
* New translations translation.json (Chinese Simplified)
* New translations translation.json (Portuguese, Brazilian)
2026-02-03 13:16:27 -08:00
Philip Okugbe
de5f71894a
New Crowdin updates ( #1869 )
...
* New translations translation.json (Japanese)
* New translations translation.json (French)
* New translations translation.json (Spanish)
* New translations translation.json (German)
* New translations translation.json (Italian)
* New translations translation.json (Korean)
* New translations translation.json (Dutch)
* New translations translation.json (Russian)
* New translations translation.json (Ukrainian)
* New translations translation.json (Chinese Simplified)
* New translations translation.json (Portuguese, Brazilian)
2026-01-25 12:39:19 +00:00
Philip Okugbe
5588ec34fb
New Crowdin updates ( #1866 )
...
* New translations translation.json (Japanese)
* New translations translation.json (French)
* New translations translation.json (Spanish)
* New translations translation.json (German)
* New translations translation.json (Italian)
* New translations translation.json (Korean)
* New translations translation.json (Dutch)
* New translations translation.json (Russian)
* New translations translation.json (Ukrainian)
* New translations translation.json (Chinese Simplified)
* New translations translation.json (Portuguese, Brazilian)
* New translations translation.json (Japanese)
* New translations translation.json (French)
* New translations translation.json (Spanish)
* New translations translation.json (German)
* New translations translation.json (Italian)
* New translations translation.json (Korean)
* New translations translation.json (Dutch)
* New translations translation.json (Russian)
* New translations translation.json (Ukrainian)
* New translations translation.json (Chinese Simplified)
* New translations translation.json (English)
* New translations translation.json (Portuguese, Brazilian)
2026-01-25 00:04:50 +00:00
Philip Okugbe
3dbb957bd7
New Crowdin updates ( #1541 )
...
* New translations translation.json (Dutch)
* New translations translation.json (French)
* New translations translation.json (Spanish)
* New translations translation.json (German)
* New translations translation.json (Italian)
* New translations translation.json (Japanese)
* New translations translation.json (Korean)
* New translations translation.json (Dutch)
* New translations translation.json (Russian)
* New translations translation.json (Ukrainian)
* New translations translation.json (Chinese Simplified)
* New translations translation.json (English)
* New translations translation.json (Portuguese, Brazilian)
* New translations translation.json (Russian)
* New translations translation.json (German)
* New translations translation.json (German)
* New translations translation.json (German)
* New translations translation.json (French)
* New translations translation.json (Spanish)
* New translations translation.json (Italian)
* New translations translation.json (Japanese)
* New translations translation.json (Korean)
* New translations translation.json (Dutch)
* New translations translation.json (Russian)
* New translations translation.json (Ukrainian)
* New translations translation.json (Chinese Simplified)
* New translations translation.json (English)
* New translations translation.json (Portuguese, Brazilian)
* New translations translation.json (Russian)
* New translations translation.json (Ukrainian)
* New translations translation.json (Ukrainian)
* New translations translation.json (Russian)
* New translations translation.json (Spanish)
* New translations translation.json (Korean)
* New translations translation.json (Korean)
* New translations translation.json (French)
* New translations translation.json (Spanish)
* New translations translation.json (German)
* New translations translation.json (Italian)
* New translations translation.json (Japanese)
* New translations translation.json (Korean)
* New translations translation.json (Dutch)
* New translations translation.json (Russian)
* New translations translation.json (Ukrainian)
* New translations translation.json (Chinese Simplified)
* New translations translation.json (English)
* New translations translation.json (Portuguese, Brazilian)
* New translations translation.json (French)
* New translations translation.json (Spanish)
* New translations translation.json (German)
* New translations translation.json (Italian)
* New translations translation.json (Japanese)
* New translations translation.json (Korean)
* New translations translation.json (Dutch)
* New translations translation.json (Russian)
* New translations translation.json (Ukrainian)
* New translations translation.json (Chinese Simplified)
* New translations translation.json (English)
* New translations translation.json (Portuguese, Brazilian)
* New translations translation.json (French)
* New translations translation.json (Spanish)
* New translations translation.json (German)
* New translations translation.json (Italian)
* New translations translation.json (Japanese)
* New translations translation.json (Korean)
* New translations translation.json (Dutch)
* New translations translation.json (Russian)
* New translations translation.json (Ukrainian)
* New translations translation.json (Chinese Simplified)
* New translations translation.json (Portuguese, Brazilian)
2025-12-12 17:15:19 +00:00
Philip Okugbe
1919eba340
New Crowdin updates ( #1522 )
...
* New translations translation.json (French)
* New translations translation.json (Spanish)
* New translations translation.json (German)
* New translations translation.json (Italian)
* New translations translation.json (Japanese)
* New translations translation.json (Korean)
* New translations translation.json (Dutch)
* New translations translation.json (Russian)
* New translations translation.json (Ukrainian)
* New translations translation.json (Chinese Simplified)
* New translations translation.json (Portuguese, Brazilian)
2025-09-03 13:17:08 -07:00
Philip Okugbe
7951b2e0c6
New Crowdin updates ( #1509 )
...
* New translations translation.json (French)
* New translations translation.json (Spanish)
* New translations translation.json (German)
* New translations translation.json (Italian)
* New translations translation.json (Japanese)
* New translations translation.json (Korean)
* New translations translation.json (Dutch)
* New translations translation.json (Russian)
* New translations translation.json (Ukrainian)
* New translations translation.json (Chinese Simplified)
* New translations translation.json (English)
* New translations translation.json (Portuguese, Brazilian)
* New translations translation.json (French)
* New translations translation.json (Spanish)
* New translations translation.json (German)
* New translations translation.json (Italian)
* New translations translation.json (Japanese)
* New translations translation.json (Korean)
* New translations translation.json (Dutch)
* New translations translation.json (Russian)
* New translations translation.json (Ukrainian)
* New translations translation.json (Chinese Simplified)
* New translations translation.json (English)
* New translations translation.json (Portuguese, Brazilian)
2025-09-03 18:28:30 +01:00
Philip Okugbe
a3d058042f
New Crowdin updates ( #1342 )
...
* New translations translation.json (German)
* New translations translation.json (Spanish)
* New translations translation.json (Russian)
* New translations translation.json (Spanish)
* New translations translation.json (Russian)
* New translations translation.json (French)
* New translations translation.json (German)
* New translations translation.json (Italian)
* New translations translation.json (Japanese)
* New translations translation.json (Korean)
* New translations translation.json (Dutch)
* New translations translation.json (Ukrainian)
* New translations translation.json (Chinese Simplified)
* New translations translation.json (English)
* New translations translation.json (Portuguese, Brazilian)
* New translations translation.json (Spanish)
* New translations translation.json (Russian)
* New translations translation.json (French)
* New translations translation.json (German)
* New translations translation.json (Italian)
* New translations translation.json (Japanese)
* New translations translation.json (Korean)
* New translations translation.json (Dutch)
* New translations translation.json (Ukrainian)
* New translations translation.json (Chinese Simplified)
* New translations translation.json (Portuguese, Brazilian)
2025-07-29 21:53:16 +01:00
Philip Okugbe
f39d48d6ee
New Crowdin updates ( #1063 )
...
* New translations translation.json
2025-06-11 23:21:01 +01:00
Philip Okugbe
00d92a3690
New Crowdin updates ( #1008 )
...
* New translations translation.json (Russian)
* New translations translation.json (Russian)
* New translations translation.json (Chinese Simplified)
* New translations translation.json (Spanish)
* New translations translation.json (French)
* New translations translation.json (Spanish)
* New translations translation.json (German)
* New translations translation.json (Italian)
* New translations translation.json (Japanese)
* New translations translation.json (Korean)
* New translations translation.json (Dutch)
* New translations translation.json (Russian)
* New translations translation.json (Chinese Simplified)
* New translations translation.json (English)
* New translations translation.json (Portuguese, Brazilian)
2025-04-22 20:57:07 +01:00
Philip Okugbe
a9f370660b
New Crowdin updates ( #1005 )
...
* New translations translation.json (French)
* New translations translation.json (Spanish)
* New translations translation.json (German)
* New translations translation.json (Italian)
* New translations translation.json (Japanese)
* New translations translation.json (Korean)
* New translations translation.json (Dutch)
* New translations translation.json (Russian)
* New translations translation.json (Chinese Simplified)
* New translations translation.json (Portuguese, Brazilian)
* New translations translation.json (French)
* New translations translation.json (Spanish)
* New translations translation.json (German)
* New translations translation.json (Italian)
* New translations translation.json (Japanese)
* New translations translation.json (Korean)
* New translations translation.json (Dutch)
* New translations translation.json (Russian)
* New translations translation.json (Chinese Simplified)
* New translations translation.json (Portuguese, Brazilian)
2025-04-08 17:28:33 +01:00
Philip Okugbe
ee30d9d0f2
New Crowdin updates ( #1003 )
...
* New translations translation.json (French)
* New translations translation.json (Italian)
* New translations translation.json (Japanese)
* New translations translation.json (Korean)
* New translations translation.json (Russian)
* New translations translation.json (Chinese Simplified)
* New translations translation.json (English)
* New translations translation.json (Portuguese, Brazilian)
2025-04-08 17:10:08 +01:00
Philip Okugbe
2a535de29d
New Crowdin updates ( #840 )
2025-03-13 15:10:28 +00:00
Philip Okugbe
59b514fa26
New Crowdin updates ( #630 )
...
* New translations translation.json
2025-01-15 14:18:05 +00:00
Philip Okugbe
0c1f9304f4
New Crowdin updates ( #627 )
...
New translations translation.json
2025-01-15 14:12:48 +00:00
Philip Okugbe
f7ac6bb4bb
New Crowdin updates ( #605 )
...
* New translations translation.json (French)
* New translations translation.json (Spanish)
* New translations translation.json (German)
* New translations translation.json (Chinese Simplified)
* New translations translation.json (Portuguese, Brazilian)
* New translations translation.json (French)
* New translations translation.json (Spanish)
* New translations translation.json (German)
* New translations translation.json (Chinese Simplified)
* New translations translation.json (English)
* New translations translation.json (Portuguese, Brazilian)
* New translations translation.json (French)
* New translations translation.json (Spanish)
* New translations translation.json (German)
* New translations translation.json (Chinese Simplified)
* New translations translation.json (English)
* New translations translation.json (Portuguese, Brazilian)
* New translations translation.json (French)
* New translations translation.json (German)
* New translations translation.json (Chinese Simplified)
* New translations translation.json (Portuguese, Brazilian)
* New translations translation.json (French)
* New translations translation.json (Spanish)
* New translations translation.json (German)
* New translations translation.json (Chinese Simplified)
* New translations translation.json (English)
* New translations translation.json (Portuguese, Brazilian)
* New translations translation.json (French)
* New translations translation.json (French)
* New translations translation.json (Spanish)
* New translations translation.json (German)
* New translations translation.json (Chinese Simplified)
* New translations translation.json (English)
* New translations translation.json (Portuguese, Brazilian)
* New translations translation.json (French)
* New translations translation.json (Spanish)
* New translations translation.json (German)
* New translations translation.json (Chinese Simplified)
* New translations translation.json (English)
* New translations translation.json (Portuguese, Brazilian)
* New translations translation.json (French)
* New translations translation.json (German)
* New translations translation.json (Chinese Simplified)
* New translations translation.json (Portuguese, Brazilian)
2025-01-11 15:38:32 +00:00