Commit Graph

957 Commits

Author SHA1 Message Date
Mohamad Tarbin
ba8d8fbdb1 Merge pull request #212 from everysingletear/i18n/new-namespaces
i18n: add things, history, projects, labels, filters, timer and points namespaces (Part of #145)
2026-08-13 19:39:39 -04:00
Mo Tarbin
f193c46d73 missing comma 2026-08-13 19:38:07 -04:00
Mohamad Tarbin
da1c8f1068 Merge branch 'develop' into i18n/new-namespaces 2026-08-13 19:35:17 -04:00
Mohamad Tarbin
8b33ba7c5d Merge pull request #209 from everysingletear/i18n/common
i18n: extract shared strings into the existing `common` namespace (Part of #145)
2026-08-13 19:32:47 -04:00
Mohamad Tarbin
323ffe72a0 Merge pull request #208 from everysingletear/i18n/auth-v2
i18n: extract Authorization screens into a new `auth` namespace (Part of #145)
2026-08-13 19:31:56 -04:00
Mohamad Tarbin
5d2d696ddd Merge pull request #214 from donetick/0811-fixes
0811 fixes
2026-08-13 19:30:07 -04:00
Mohamad Tarbin
081942a6cd Merge branch 'develop' into 0811-fixes 2026-08-13 19:28:48 -04:00
Mo Tarbin
462af85a38 Update MUI Joy package version and refactor z-index usage across components 2026-08-13 19:24:23 -04:00
everysingletear
72aa57f018 i18n: extract things, history, projects, labels, filters, timer and points
Part of #145.

Fourteen files across seven feature areas that had no namespace yet: the
things create/edit modals and their history, the chore history detail and
edit modals, the activity feed, the points view and its redemption modal,
the project view with its selector and icon picker, the label view, the
advanced filter builder and the timer edit modal.

Seven new namespaces registered in `src/i18n/config.js` in one change
rather than one per PR, so the `ns:` array is touched once and my other
extraction PRs cannot conflict with this one. Namespaces stay
feature-scoped as described in #145; if you'd rather fold any of these
into `common` or `chores`, say which and I'll rework it.

Dictionaries: `history` 57 keys, `points` 50, `timer` 25, `projects` 16,
`things` 14, `filters` 13, `labels` 5.

English only — no translations, no behaviour change. Every t() value is
checked against this branch's base: the string must appear
character-for-character in the code it replaces (226 call sites).

Three values in `UserPoints` are matched loosely and worth naming. The
base builds the leaderboard heading and subtitle around a ternary —
`{mode === 'points' ? 'Points' : 'Tasks'} Leaderboard` and `Rankings based
on {…} during the selected time period` — so neither full sentence exists
contiguously in the source. Each key holds exactly what one branch
renders. The sentences are kept whole rather than split around the
ternary, since a sentence assembled from fragments cannot be reordered by
a translator.
2026-08-13 10:21:57 +08:00
everysingletear
bdac10ac57 i18n: extract shared strings into the existing common namespace
Part of #145.

Fourteen files whose user-facing strings are generic enough to belong in
`common` — loading and empty states, the confirmation modal, the shared
input modals (text/date/user/attachment viewer), the mobile nav bar, the
autocomplete input, the error screen and the file-upload error paths.

Extends the namespace that already exists, so `src/i18n/config.js` is
untouched and this cannot collide with any other extraction PR over the
`ns:` array. 28 keys added to `public/locales/en/common.json`.

English only — no translations, no behaviour change. Every t() value is
checked against this branch's base: the string must appear
character-for-character in the code it replaces (36 call sites).

One value is matched loosely and worth naming: `errorScreen.hideDetails`.
The base renders `{showDetails ? 'Hide' : 'Show'} error details`, so
neither full phrase exists contiguously in the source — only one branch of
the ternary can. Both keys hold exactly what each branch renders. The
sentence is kept whole rather than split around the ternary, because a
split sentence cannot be reordered by a translator.
2026-08-13 10:16:14 +08:00
everysingletear
6dc7c3d370 i18n: extract Authorization screens into a new auth namespace
Every user-facing string under src/views/Authorization/ moves to i18next.
English only — no translations in this PR, so it is language-agnostic and
reviewable as a pure refactor.

Covered:
- LoginView — primary/sub-account tabs, credential form, social and
  Authentik buttons, welcome-back state, every auth error toast
- Signup — account creation form and each field-validation message
- ForgotPasswordView / UpdatePasswordView — reset flow and its toasts
- Authenticating — the OAuth landing screen, including its MFA branches
- MFAVerificationModal — code entry, backup codes, error states
- AuthFields / LoginSettings — shared field labels and server settings

`auth` is registered in src/i18n/config.js; public/locales/en/auth.json
holds the 103 keys. The Crowdin config picks up /public/locales/en/*.json
by glob, so the namespace flows into the pipeline with no change to
crowdin.yml.

No behaviour change: every t() value is the string that rendered before,
character for character — checked mechanically against this branch's base.
The e2e suite selects auth controls by visible text ('Create account',
'Username must be at least 4 characters'), so a green run is the proof.

Two fixes fell out of the extraction:
- AuthPasswordField had label='Password' as a prop default, so neither
  LoginView nor Signup passed one. A default cannot be translated at module
  scope, so the label moves to the call sites and both now pass it.
- AuthDivider defaulted children to 'or' for the same reason; it now falls
  back to t('or').
2026-08-12 20:03:02 +08:00
Mohamad Tarbin
7eba12e718 Merge pull request #202 from donetick/l10n_develop
New Crowdin updates
2026-08-11 21:45:51 -04:00
Mohamad Tarbin
41c58505fa Merge branch 'develop' into l10n_develop 2026-08-11 21:45:30 -04:00
Mo Tarbin
fb4d4efe66 Add report bug functionality and settings sections refactor 2026-08-11 17:42:23 -04:00
Mohamad Tarbin
5c9afa0b6e New translations settings.json (French)
[ci skip]
2026-08-11 10:50:28 -04:00
Mohamad Tarbin
e2816bc54d New translations settings.json (Portuguese, Brazilian)
[ci skip]
2026-08-11 10:50:26 -04:00
Mohamad Tarbin
9b71ce910b New translations common.json (Portuguese, Brazilian)
[ci skip]
2026-08-11 10:50:24 -04:00
Mohamad Tarbin
946190c9e0 New translations settings.json (Chinese Simplified)
[ci skip]
2026-08-11 10:50:23 -04:00
Mohamad Tarbin
3e4a44bd00 New translations common.json (Chinese Simplified)
[ci skip]
2026-08-11 10:50:22 -04:00
Mohamad Tarbin
1c1e8e218b New translations settings.json (Dutch)
[ci skip]
2026-08-11 10:50:20 -04:00
Mohamad Tarbin
236deb465a New translations common.json (Dutch)
[ci skip]
2026-08-11 10:50:19 -04:00
Mohamad Tarbin
f0cdcd4f45 New translations settings.json (Japanese)
[ci skip]
2026-08-11 10:50:18 -04:00
Mohamad Tarbin
e26100c308 New translations common.json (Japanese)
[ci skip]
2026-08-11 10:50:16 -04:00
Mohamad Tarbin
f1f6d45e41 New translations settings.json (German)
[ci skip]
2026-08-11 10:50:15 -04:00
Mohamad Tarbin
32b86c0dde New translations common.json (German)
[ci skip]
2026-08-11 10:50:14 -04:00
Mohamad Tarbin
6d968d6a2d New translations settings.json (Arabic)
[ci skip]
2026-08-11 10:50:12 -04:00
Mohamad Tarbin
4642ad1918 New translations common.json (Arabic)
[ci skip]
2026-08-11 10:50:11 -04:00
Mohamad Tarbin
0d7f178d68 New translations settings.json (Spanish)
[ci skip]
2026-08-11 10:50:10 -04:00
Mohamad Tarbin
8af2ed3702 New translations common.json (Spanish)
[ci skip]
2026-08-11 10:50:08 -04:00
Mohamad Tarbin
25eb13d12a New translations common.json (French)
[ci skip]
2026-08-11 10:50:07 -04:00
Mohamad Tarbin
7e8802052a Merge pull request #206 from donetick/localization-settings
feat: enhance localization across settings views
2026-08-11 02:24:59 -04:00
Mo Tarbin
5199240148 feat: update localization files and import moment locales for Hebrew and Japanese 2026-08-11 02:23:35 -04:00
Mo Tarbin
8c9bf0db1d feat: enhance localization across settings views
- Updated LocalizationSettings to use translation keys for titles and descriptions.
- Refactored MFASettings to utilize translation for error messages, success messages, and UI text.
- Improved NotificationSetting by integrating translation for all user-facing strings.
- Initial Hebrew translation ( testing AI translation ( some of crowdin)
- Adjusted ProfileSettings to use translation for the edit photo title.
- Enhanced SettingsOverview to utilize translation for the early access label.
- Updated SidepanelSettings to implement translation for card names and descriptions.
- Refined StorageSettings to use translation for all storage-related messages and titles.
- Improved ThemeSettings to utilize translation for theme descriptions and titles.
2026-08-11 02:19:40 -04:00
Mohamad Tarbin
d34a7e7d34 Merge pull request #205 from donetick/localization-rtl
Localization rtl
2026-08-11 02:11:35 -04:00
Mo Tarbin
4e5222758d Add RTL support for ArrowBack icon in NavBar component 2026-08-11 02:10:12 -04:00
Mo Tarbin
6ace462797 Add RTL support for JoyToggleButtonGroup and implement i18n for search actions 2026-08-11 02:09:56 -04:00
Mo Tarbin
7e4b4b8fd6 Refactor RTL support in contexts and NavBar; update CSS for improved direction handling 2026-08-11 01:47:34 -04:00
Mohamad Tarbin
9bc82b9dc5 Merge pull request #204 from donetick/e2e-add-tests
Add end-to-end tests and enhance authentication flow
2026-08-11 00:59:01 -04:00
Mo Tarbin
dbd1fa72c4 remove e2e workflow 2026-08-11 00:55:40 -04:00
Mo Tarbin
43ffb3da5a Add end-to-end tests for chore and project functionalities, enhance auth flow, and update package version 2026-08-11 00:55:17 -04:00
Mohamad Tarbin
6100738db6 Merge pull request #203 from donetick/e2e-test
Add end-to-end testing setup with Playwright and initial tests
2026-08-10 23:10:03 -04:00
Mohamad Tarbin
c8f97f6957 New translations settings.json (German)
[ci skip]
2026-08-10 22:49:57 -04:00
Mohamad Tarbin
5cbc8a4c37 New translations common.json (German)
[ci skip]
2026-08-10 22:49:55 -04:00
Mohamad Tarbin
2b7dfe68c2 Add way to run the e2e test 2026-08-10 22:47:36 -04:00
Mohamad Tarbin
30ab8d755d New translations settings.json (Portuguese, Brazilian)
[ci skip]
2026-08-10 10:26:47 -04:00
Mohamad Tarbin
77dd689cc6 New translations common.json (Portuguese, Brazilian)
[ci skip]
2026-08-10 10:26:46 -04:00
Mohamad Tarbin
8dc2340b46 New translations settings.json (Chinese Simplified)
[ci skip]
2026-08-10 10:26:44 -04:00
Mohamad Tarbin
950807693c New translations common.json (Chinese Simplified)
[ci skip]
2026-08-10 10:26:42 -04:00
Mohamad Tarbin
d760ede92f New translations settings.json (Dutch)
[ci skip]
2026-08-10 10:26:41 -04:00
Mohamad Tarbin
784b667e95 New translations common.json (Dutch)
[ci skip]
2026-08-10 10:26:40 -04:00