Skip to content

feat: add Saturday week-start option - #1416

Open
Navdeepannu wants to merge 3 commits into
usekaneo:mainfrom
Navdeepannu:feat/1414-saturday-week-start
Open

feat: add Saturday week-start option#1416
Navdeepannu wants to merge 3 commits into
usekaneo:mainfrom
Navdeepannu:feat/1414-saturday-week-start

Conversation

@Navdeepannu

@Navdeepannu Navdeepannu commented Jul 21, 2026

Copy link
Copy Markdown
Contributor

Description

Adds Saturday as an available first-day-of-week preference, giving users more flexibility to match their regional, workweek, or personal calendar conventions.

This PR also refactors the week-start configuration so supported days are defined centrally in WEEK_START_DAYS. The WeekStartDay type is derived from that list, and isWeekStartDay validates selected values at runtime.

The preferences dropdown is now generated from the supported-days list instead of containing separate hardcoded options. To support another day in the future, contributors only need to:

  1. Add its numeric value to WEEK_START_DAYS.
  2. Add its localized label to the translation mapping.

The type, validation, and rendered dropdown options then remain synchronized automatically.

Additional changes:

  • Adds the weekStartsOnSaturday translation key.
  • Generalizes the description so it no longer mentions only Sunday and Monday.
  • Preserves the existing Sunday and Monday preferences for current users.

Related Issue(s)

Fixes #1414

Type of Change

  • Bug fix (non-breaking change that fixes an issue)
  • New feature (non-breaking change that adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to not work as expected)
  • Documentation update
  • Refactoring (no functional changes)
  • Performance improvement
  • Test addition or update
  • Other (please describe):

How Has This Been Tested?

  • Unit tests
  • Integration tests
  • Manual testing
  • Other (please describe): The three changed files pass the targeted Biome style and lint check.

Before submitting, manually verify:

  • Saturday appears in Settings → Account → Preferences → First Day of Week.
  • Selecting Saturday updates the preference.
  • The selected value remains after refreshing the application.
  • Existing Sunday and Monday selections continue to work.
  • Calendar and weekly-range views begin on the selected day.

Screenshots (if applicable)

Screenshot 2026-07-21 at 11 17 39 AM Screenshot 2026-07-21 at 11 17 04 AM

Checklist

  • My code follows the style guidelines of this project
  • I have performed a self-review of my own code
  • I have commented my code, particularly in hard-to-understand areas
  • I have made corresponding changes to the documentation
  • My changes generate no new warnings
  • I have added tests that prove my fix is effective or that my feature works
  • New and existing unit tests pass locally with my changes
  • Any dependent changes have been merged and published

Additional Notes

Week-start values follow the JavaScript day numbering convention:

  • 0: Sunday
  • 1: Monday
  • 6: Saturday

Centralizing these values avoids duplicating union types and individual dropdown components. Future week-start options can be added without rewriting the preference store, validation logic, or select rendering.

Summary by CodeRabbit

  • New Features
    • Added Saturday as an available first day of the week.
    • Expanded the first-day-of-week selector to support Sunday, Monday, and Saturday.
  • Bug Fixes
    • Improved reliability of the saved “first day of week” preference by validating stored values.
  • Documentation
    • Updated the first-day-of-week descriptions, labels, and localization text (including the new Saturday option) across supported languages.

@coderabbitai

coderabbitai Bot commented Jul 21, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

📝 Walkthrough

Walkthrough

The week-start preference now supports Sunday, Monday, and Saturday through shared typed constants, runtime validation, rehydration safeguards, dynamic selector options, and updated localization.

Changes

Week Start Preference

Layer / File(s) Summary
Week-start store contract
apps/web/src/store/user-preferences.ts
Defines supported week-start days, exports a type guard, updates preference types, and resets invalid persisted values.
Preferences selector integration
apps/web/src/routes/.../account/preferences.tsx, i18n/en-US.json
Validates selections, renders all supported days, adds Saturday labeling, and updates English text.
Localization contract and translations
i18n/schema.json, i18n/*-*.json
Requires the Saturday translation key and updates first-day-of-week descriptions across locales.

Estimated code review effort: 3 (Moderate) | ~20 minutes

Possibly related PRs

  • usekaneo/kaneo#1206: Updates the same preferences page and user-preferences store week-start flow.

Suggested reviewers: andrejsshell

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly matches the main change: adding Saturday as a week-start option.
Linked Issues check ✅ Passed The PR adds Saturday to the first-day-of-week options and updates validation as requested in #1414.
Out of Scope Changes check ✅ Passed The changes stay focused on week-start support and related localization/schema updates.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

Warning

There were issues while running some tools. Please review the errors and either fix the tool's configuration or disable the tool if it's a critical failure.

🔧 Checkov (3.3.8)
i18n/de-DE.json

Traceback (most recent call last):
File "/usr/local/bin/checkov", line 2, in
from checkov.main import Checkov
ModuleNotFoundError: No module named 'checkov'

i18n/el-GR.json

Traceback (most recent call last):
File "/usr/local/bin/checkov", line 2, in
from checkov.main import Checkov
ModuleNotFoundError: No module named 'checkov'

i18n/es-ES.json

Traceback (most recent call last):
File "/usr/local/bin/checkov", line 2, in
from checkov.main import Checkov
ModuleNotFoundError: No module named 'checkov'

  • 9 others

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@qodo-free-for-open-source-projects

Copy link
Copy Markdown

PR Summary by Qodo

Add Saturday as a first-day-of-week preference (centralized config)

✨ Enhancement ⚙️ Configuration changes 🕐 10-20 Minutes

Grey Divider

AI Description

• Add Saturday as a supported first-day-of-week preference.
• Centralize week-start support list, types, and runtime validation in the preferences store.
• Generate the preferences dropdown and labels from the supported-days list.
Diagram

graph TD
UI["Preferences page"] --> Store["User prefs store"] --> Storage[("localStorage")]
Store --> Config["Week-start config"]
UI --> I18n["i18n labels"]
UI --> Config
subgraph Legend
  direction LR
  _ui["UI"] ~~~ _mod["Module"] ~~~ _db[("Storage")]
end
Loading
High-Level Assessment

The following are alternative approaches to this PR:

1. TypeScript enum for week-start days
  • ➕ More self-documenting named constants (e.g., WeekStart.Saturday)
  • ➕ Avoids “magic numbers” at call sites
  • ➖ Harder to iterate consistently without extra mapping
  • ➖ Still needs runtime validation if parsing from strings/localStorage
2. Schema-based validation (e.g., zod) for persisted prefs
  • ➕ Single source for runtime validation/coercion of persisted data
  • ➕ Clear error handling when storage contains unexpected values
  • ➖ Adds a dependency/overhead for a small preference field
  • ➖ May be inconsistent with existing lightweight store patterns

Recommendation: The PR’s approach (const tuple + derived union type + type guard) is a good balance: it keeps the UI options, persisted type, and runtime validation in sync with minimal complexity. Consider an enum only if you want named constants broadly across the app; consider schema validation only if you expect frequent persisted-data drift or more complex preference shapes.

Files changed (3) +36 / -17

Enhancement (1) +24 / -13
preferences.tsxDrive week-start select from centralized supported-days list +24/-13

Drive week-start select from centralized supported-days list

• Adds Saturday to the week-start label map and derives its keys from WeekStartDay. Replaces hardcoded SelectItems and ad-hoc string checks with WEEK_START_DAYS iteration plus isWeekStartDay validation before persisting the value.

apps/web/src/routes/_layout/_authenticated/dashboard/settings/account/preferences.tsx

Refactor (1) +9 / -2
user-preferences.tsCentralize week-start supported values, types, and runtime guard +9/-2

Centralize week-start supported values, types, and runtime guard

• Introduces WEEK_START_DAYS, derives the WeekStartDay union type from it, and adds isWeekStartDay for safe runtime validation of parsed values. Updates the store field and setter types to use WeekStartDay while keeping the default at Sunday (0).

apps/web/src/store/user-preferences.ts

Other (1) +3 / -2
en-US.jsonAdd Saturday label and generalize week-start description text +3/-2

Add Saturday label and generalize week-start description text

• Adds the weekStartsOnSaturday translation key. Updates the first-day-of-week description and select placeholder to be day-agnostic and shorter.

i18n/en-US.json

@qodo-free-for-open-source-projects

Copy link
Copy Markdown

Code Review by Qodo

🐞 Bugs (3) 📘 Rule violations (0) 📎 Requirement gaps (0) 📜 Skill insights (0)

Context used

Grey Divider


Remediation recommended

1. Unvalidated hydrated weekStartsOn 🐞 Bug ☼ Reliability
Description
weekStartsOn is persisted to localStorage and rehydrated without runtime validation, so values
outside WEEK_START_DAYS can enter the store despite the WeekStartDay type. This can lead to
missing labels in the Preferences select and inconsistent week calculations (e.g., app using an
unsupported start day).
Code

apps/web/src/store/user-preferences.ts[R44-45]

+  weekStartsOn: WeekStartDay;
+  setWeekStartsOn: (weekStartsOn: WeekStartDay) => void;
Evidence
The store uses persist with localStorage but no migrate/merge validation, while UI and other code
paths assume weekStartsOn is in the supported set and use it for label lookup and week-boundary
calculations.

apps/web/src/store/user-preferences.ts[4-9]
apps/web/src/store/user-preferences.ts[48-123]
apps/web/src/routes/_layout/_authenticated/dashboard/settings/account/preferences.tsx[204-235]
apps/web/src/hooks/use-task-filters.ts[56-142]
apps/web/src/routes/_layout/_authenticated/dashboard/workspace/$workspaceId/project/$projectId/gantt.tsx[124-144]

Agent prompt
The issue below was found during a code review. Follow the provided context and guidance below and implement a solution

### Issue description
`weekStartsOn` is typed as `WeekStartDay` but Zustand `persist` rehydrates from localStorage without validating the value. A stale/tampered/legacy stored value can therefore bypass `isWeekStartDay`, causing undefined UI labels and unsupported week-start behavior.

### Issue Context
- UI validation exists only in the preferences dropdown `onValueChange`.
- The store is the canonical source for week calculations across the app.

### Fix Focus Areas
- Add a persist `merge` or `migrate` (or `onRehydrateStorage`) step that coerces `weekStartsOn` to a safe default (e.g. `0`) when `!isWeekStartDay(persisted.weekStartsOn)`.
- Optionally harden `setWeekStartsOn` with a runtime guard as a second line of defense.
- (Optional) Add a defensive fallback when rendering the label in the preferences UI.

- apps/web/src/store/user-preferences.ts[4-9]
- apps/web/src/store/user-preferences.ts[48-123]
- apps/web/src/routes/_layout/_authenticated/dashboard/settings/account/preferences.tsx[204-235]

ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools


2. i18n schema missing Saturday key 🐞 Bug ⚙ Maintainability
Description
en-US.json adds weekStartsOnSaturday, but i18n/schema.json does not define/require that key
while also setting additionalProperties: false, making the translation file inconsistent with the
schema. Any schema-driven translation validation/tooling will flag this mismatch.
Code

i18n/en-US.json[452]

+			"weekStartsOnSaturday": "Saturday",
Evidence
weekStartsOnSaturday exists in the English locale file, but the schema for preferencesPage lists
only Sunday/Monday and disallows additional keys.

i18n/en-US.json[445-453]
i18n/schema.json[1702-1817]

Agent prompt
The issue below was found during a code review. Follow the provided context and guidance below and implement a solution

### Issue description
A new translation key was added in `en-US.json`, but the i18n JSON schema still declares the preferences page as a closed object (`additionalProperties: false`) and does not include the new key in `properties`/`required`.

### Issue Context
The schema and locale files need to evolve together to avoid breaking schema-based validation or editor tooling.

### Fix Focus Areas
- Add `weekStartsOnSaturday` to the relevant `preferencesPage.properties` section.
- Add `weekStartsOnSaturday` to the corresponding `required` list if the other week-start labels are required.

- i18n/en-US.json[445-453]
- i18n/schema.json[1702-1817]

ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools



Informational

3. Non-English week description outdated 🐞 Bug ≡ Correctness
Description
Only en-US updates firstDayOfWeekDescription to no longer mention Sunday/Monday, while other
locales still state the week starts on Sunday or Monday even though Saturday is now selectable. This
results in misleading settings copy for those locales.
Code

i18n/en-US.json[R448-449]

+			"firstDayOfWeekDescription": "Choose which day calendars and weekly ranges start on",
+			"selectFirstDayOfWeek": "Select first day",
Evidence
The English string was generalized, but at least German and Spanish (and other locales) still
explicitly mention only Sunday/Monday in their description text.

i18n/en-US.json[445-452]
i18n/de-DE.json[441-449]
i18n/es-ES.json[338-346]

Agent prompt
The issue below was found during a code review. Follow the provided context and guidance below and implement a solution

### Issue description
After adding Saturday as a supported first day of week, several non-English locale strings for `firstDayOfWeekDescription` still explicitly say "Sunday or Monday", which is now incorrect.

### Issue Context
This is user-facing settings copy and should match the available options.

### Fix Focus Areas
- Update `firstDayOfWeekDescription` translations in other locale JSON files to a generic phrasing (similar to en-US).
- (Optional) Add localized `weekStartsOnSaturday` values per locale; otherwise fallback will show English.

- i18n/en-US.json[445-452]
- i18n/de-DE.json[441-449]
- i18n/es-ES.json[338-346]

ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools


Grey Divider

Qodo Logo

Comment on lines +44 to +45
weekStartsOn: WeekStartDay;
setWeekStartsOn: (weekStartsOn: WeekStartDay) => void;

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Remediation recommended

1. Unvalidated hydrated weekstartson 🐞 Bug ☼ Reliability

weekStartsOn is persisted to localStorage and rehydrated without runtime validation, so values
outside WEEK_START_DAYS can enter the store despite the WeekStartDay type. This can lead to
missing labels in the Preferences select and inconsistent week calculations (e.g., app using an
unsupported start day).
Agent Prompt
### Issue description
`weekStartsOn` is typed as `WeekStartDay` but Zustand `persist` rehydrates from localStorage without validating the value. A stale/tampered/legacy stored value can therefore bypass `isWeekStartDay`, causing undefined UI labels and unsupported week-start behavior.

### Issue Context
- UI validation exists only in the preferences dropdown `onValueChange`.
- The store is the canonical source for week calculations across the app.

### Fix Focus Areas
- Add a persist `merge` or `migrate` (or `onRehydrateStorage`) step that coerces `weekStartsOn` to a safe default (e.g. `0`) when `!isWeekStartDay(persisted.weekStartsOn)`.
- Optionally harden `setWeekStartsOn` with a runtime guard as a second line of defense.
- (Optional) Add a defensive fallback when rendering the label in the preferences UI.

- apps/web/src/store/user-preferences.ts[4-9]
- apps/web/src/store/user-preferences.ts[48-123]
- apps/web/src/routes/_layout/_authenticated/dashboard/settings/account/preferences.tsx[204-235]

ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools

Comment thread i18n/en-US.json
"selectFirstDayOfWeek": "Select first day",
"weekStartsOnSunday": "Sunday",
"weekStartsOnMonday": "Monday",
"weekStartsOnSaturday": "Saturday",

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Remediation recommended

2. I18n schema missing saturday key 🐞 Bug ⚙ Maintainability

en-US.json adds weekStartsOnSaturday, but i18n/schema.json does not define/require that key
while also setting additionalProperties: false, making the translation file inconsistent with the
schema. Any schema-driven translation validation/tooling will flag this mismatch.
Agent Prompt
### Issue description
A new translation key was added in `en-US.json`, but the i18n JSON schema still declares the preferences page as a closed object (`additionalProperties: false`) and does not include the new key in `properties`/`required`.

### Issue Context
The schema and locale files need to evolve together to avoid breaking schema-based validation or editor tooling.

### Fix Focus Areas
- Add `weekStartsOnSaturday` to the relevant `preferencesPage.properties` section.
- Add `weekStartsOnSaturday` to the corresponding `required` list if the other week-start labels are required.

- i18n/en-US.json[445-453]
- i18n/schema.json[1702-1817]

ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools

Comment thread i18n/en-US.json
Comment on lines +448 to +449
"firstDayOfWeekDescription": "Choose which day calendars and weekly ranges start on",
"selectFirstDayOfWeek": "Select first day",

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Informational

3. Non-english week description outdated 🐞 Bug ≡ Correctness

Only en-US updates firstDayOfWeekDescription to no longer mention Sunday/Monday, while other
locales still state the week starts on Sunday or Monday even though Saturday is now selectable. This
results in misleading settings copy for those locales.
Agent Prompt
### Issue description
After adding Saturday as a supported first day of week, several non-English locale strings for `firstDayOfWeekDescription` still explicitly say "Sunday or Monday", which is now incorrect.

### Issue Context
This is user-facing settings copy and should match the available options.

### Fix Focus Areas
- Update `firstDayOfWeekDescription` translations in other locale JSON files to a generic phrasing (similar to en-US).
- (Optional) Add localized `weekStartsOnSaturday` values per locale; otherwise fallback will show English.

- i18n/en-US.json[445-452]
- i18n/de-DE.json[441-449]
- i18n/es-ES.json[338-346]

ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 3

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@i18n/el-GR.json`:
- Around line 432-435: Add the missing weekStartsOnSaturday localization entry
to i18n/el-GR.json lines 432-435 as “Σάββατο”, i18n/es-ES.json lines 342-345 as
“Sábado”, i18n/fr-FR.json lines 434-437 as “Samedi”, i18n/id-ID.json lines
434-437 as “Sabtu”, i18n/ko-KR.json lines 432-435 as “토요일”, and i18n/mk-MK.json
lines 432-435 as “Сабота”, preserving the existing Sunday and Monday entries and
JSON structure.

In `@i18n/nl-NL.json`:
- Around line 342-345: Add the missing weekStartsOnSaturday translation
alongside the existing weekStartsOnSunday and weekStartsOnMonday entries in
i18n/nl-NL.json lines 342-345 (“Zaterdag”), i18n/ru-RU.json lines 432-435
(“Суббота”), i18n/tr-TR.json lines 433-436 (“Cumartesi”), and i18n/uk-UA.json
lines 432-435 (“Субота”).

In `@i18n/schema.json`:
- Around line 1717-1719: Update i18n/de-DE.json near the existing weekday
translations to add the required weekStartsOnSaturday key with the German value
"Samstag"; keep the weekStartsOnSaturday property and required entry in
i18n/schema.json unchanged.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: 36ab98f7-98a3-43a8-ac97-69146f1d7a44

📥 Commits

Reviewing files that changed from the base of the PR and between 48af788 and d07808b.

📒 Files selected for processing (13)
  • apps/web/src/store/user-preferences.ts
  • i18n/de-DE.json
  • i18n/el-GR.json
  • i18n/es-ES.json
  • i18n/fr-FR.json
  • i18n/id-ID.json
  • i18n/ko-KR.json
  • i18n/mk-MK.json
  • i18n/nl-NL.json
  • i18n/ru-RU.json
  • i18n/schema.json
  • i18n/tr-TR.json
  • i18n/uk-UA.json

Comment thread i18n/el-GR.json
Comment on lines +432 to 435
"firstDayOfWeekDescription": "Επιλέξτε ποια ημέρα ξεκινούν τα ημερολόγια και οι εβδομάδες",
"selectFirstDayOfWeek": "Επιλέξτε την πρώτη ημέρα",
"weekStartsOnSunday": "Κυριακή",
"weekStartsOnMonday": "Δευτέρα",

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win

Add weekStartsOnSaturday to every changed locale.

The new Saturday option is supported by the selector, but these locale files still define only Sunday and Monday. Add the missing key to preserve the localization contract:

  • i18n/el-GR.json#L432-L435: add "weekStartsOnSaturday": "Σάββατο".
  • i18n/es-ES.json#L342-L345: add "weekStartsOnSaturday": "Sábado".
  • i18n/fr-FR.json#L434-L437: add "weekStartsOnSaturday": "Samedi".
  • i18n/id-ID.json#L434-L437: add "weekStartsOnSaturday": "Sabtu".
  • i18n/ko-KR.json#L432-L435: add "weekStartsOnSaturday": "토요일".
  • i18n/mk-MK.json#L432-L435: add "weekStartsOnSaturday": "Сабота".
📍 Affects 6 files
  • i18n/el-GR.json#L432-L435 (this comment)
  • i18n/es-ES.json#L342-L345
  • i18n/fr-FR.json#L434-L437
  • i18n/id-ID.json#L434-L437
  • i18n/ko-KR.json#L432-L435
  • i18n/mk-MK.json#L432-L435
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@i18n/el-GR.json` around lines 432 - 435, Add the missing weekStartsOnSaturday
localization entry to i18n/el-GR.json lines 432-435 as “Σάββατο”,
i18n/es-ES.json lines 342-345 as “Sábado”, i18n/fr-FR.json lines 434-437 as
“Samedi”, i18n/id-ID.json lines 434-437 as “Sabtu”, i18n/ko-KR.json lines
432-435 as “토요일”, and i18n/mk-MK.json lines 432-435 as “Сабота”, preserving the
existing Sunday and Monday entries and JSON structure.

Comment thread i18n/nl-NL.json
Comment on lines +342 to 345
"firstDayOfWeekDescription": "Kies op welke dag kalenders en weekoverzichten beginnen",
"selectFirstDayOfWeek": "Selecteer de eerste dag",
"weekStartsOnSunday": "Zondag",
"weekStartsOnMonday": "Maandag",

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🎯 Functional Correctness | 🟠 Major | ⚡ Quick win

Add weekStartsOnSaturday to every affected locale.

The Saturday option is now supported by the selector, but these locale files still define only Sunday and Monday labels. Add the localized Saturday key at each site:

  • i18n/nl-NL.json#L342-L345: add "weekStartsOnSaturday": "Zaterdag".
  • i18n/ru-RU.json#L432-L435: add "weekStartsOnSaturday": "Суббота".
  • i18n/tr-TR.json#L433-L436: add "weekStartsOnSaturday": "Cumartesi".
  • i18n/uk-UA.json#L432-L435: add "weekStartsOnSaturday": "Субота".
📍 Affects 4 files
  • i18n/nl-NL.json#L342-L345 (this comment)
  • i18n/ru-RU.json#L432-L435
  • i18n/tr-TR.json#L433-L436
  • i18n/uk-UA.json#L432-L435
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@i18n/nl-NL.json` around lines 342 - 345, Add the missing weekStartsOnSaturday
translation alongside the existing weekStartsOnSunday and weekStartsOnMonday
entries in i18n/nl-NL.json lines 342-345 (“Zaterdag”), i18n/ru-RU.json lines
432-435 (“Суббота”), i18n/tr-TR.json lines 433-436 (“Cumartesi”), and
i18n/uk-UA.json lines 432-435 (“Субота”).

Comment thread i18n/schema.json
Comment on lines +1717 to +1719
"weekStartsOnSaturday": {
"type": "string"
},

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🗄️ Data Integrity & Integration | 🟠 Major | ⚡ Quick win

Synchronize the required Saturday key across the localization contract.

The schema now requires weekStartsOnSaturday, but the German locale does not define it, so locale validation will fail.

  • i18n/schema.json#L1717-L1719,1800-1800: Keep the new property and required entry only after all locales provide it.
  • i18n/de-DE.json#L446-L446: Add "weekStartsOnSaturday": "Samstag" beside the existing weekday translations.
📍 Affects 2 files
  • i18n/schema.json#L1717-L1719 (this comment)
  • i18n/de-DE.json#L446-L446
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@i18n/schema.json` around lines 1717 - 1719, Update i18n/de-DE.json near the
existing weekday translations to add the required weekStartsOnSaturday key with
the German value "Samstag"; keep the weekStartsOnSaturday property and required
entry in i18n/schema.json unchanged.

@randoneering

Copy link
Copy Markdown
Contributor

@Navdeepannu Thank you for your contribution. This will certainly make Kaneo more regionally flexible. Please take a look at the review comments made by both AI Code Reviewer tools.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

feat: First day of week

2 participants