Skip to content

fix(l10n): load app translations so Dutch displays in Procest#6

Closed
WilcoLouwerse wants to merge 34 commits intodevelopmentfrom
feature/wilco-testing
Closed

fix(l10n): load app translations so Dutch displays in Procest#6
WilcoLouwerse wants to merge 34 commits intodevelopmentfrom
feature/wilco-testing

Conversation

@WilcoLouwerse
Copy link

@WilcoLouwerse WilcoLouwerse commented Mar 5, 2026

->>> #7

complete-l10n:

  • Add ~250 missing keys to l10n/en.json and l10n/nl.json (302 total)
  • Archive complete-l10n change

fix-settings-bug:

  • Replace settings dropdown with single Settings button in MainMenu.vue
  • Remove /case-types route from router
  • Archive fix-settings-bug change

fix-dutch-display:

  • Load app translations via loadTranslations('procest') before Vue mount
    (Nextcloud does not inject Procest's l10n)
  • Use translate as t, translatePlural as n from @nextcloud/l10n
    (package exports translate/translatePlural, not t/n)
  • Apply to main.js and settings.js
  • Archive fix-dutch-display change

openspec:

  • Add verify-l10n.js for l10n validation (JSON, key sync, placeholders)

rubenvdlinde and others added 30 commits February 26, 2026 15:14
Document the promotion-based branching model (feature→development→beta→main),
hotfix policy, required quality checks, and local development workflow
with a mermaid flow diagram.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Adds NcAppSettingsDialog-based user settings accessible from sidebar
Configuration menu. Consolidates UserPreferencesController into
SettingsController. Backend uses OCP\IConfig for per-user storage.
Updates register schema JSON and repair step.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
New modal dialog for creating tasks from list view. Dashboard KPI card
hover fixes. Case and task list views updated with consistent filtering.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…rary

AdminRoot uses CnSettingsSection for Case Type Management section.
Settings wraps form in CnSettingsSection with doc-url and loading state.
Webpack dedup aliases use $ suffix for exact-match.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…webpack alias

Makes the shared library work in both monorepo dev (local source alias)
and CI/production builds (npm package from git). The alias only activates
when ../nextcloud-vue/src exists.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Replaces github:ConductionNL/nextcloud-vue#main with ^0.1.0-beta.1
from npm registry. Faster installs, no git clone + build step.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
The Nextcloud App Store schema does not accept EUPL-1.2 as a valid
licence value, causing all release uploads to fail with HTTP 400.
Revert to 'agpl' which is in the accepted set.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Add vimeo/psalm ^5.26 + psalm.xml config
- Add phpstan/phpstan ^1.10 + phpstan.neon config
- Add nextcloud/coding-standard, phpcsstandards/phpcsextra
- Add roave/security-advisories, edgedesign/phpqa
- Add psalm, phpstan, phpmetrics:violations, phpcs:output, phpqa scripts
- Fix phpmetrics:violations flag to --violations-xml (matching OpenRegister)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…e coverage

Replaces the one-liner README with a comprehensive document covering:
- Logo and CI badges header
- Screenshots table (dashboard, cases, admin)
- Detailed feature sections organized by category
- Mermaid architecture diagram
- Data model table with CMMN 1.1 and ZGW API mappings
- Directory structure
- Requirements, installation, and development guide
- Tech stack and standards/compliance

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…tcloud-vue

Replaces manual currentView/currentRoute navigation with vue-router.
App.vue now renders <router-view /> and mounts CnIndexSidebar globally.
CaseList and TaskList are refactored to use CnIndexPage with schema-
driven columns and built-in CRUD dialogs. Adds src/router/ for route
definitions. Updates procest_register.json schema and bumps dependencies.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
feat: Migrate to Vue Router and refactor views to @conduction/nextcloud-vue
- Add @conduction/nextcloud-vue to import/ignore and import/no-unresolved
  ignore list (package is resolved via webpack alias at build time;
  published npm version may lag behind local source)
- Fix vue/no-mutating-props in UserSettings.vue: replace :open.sync with
  :open + @update:open emit pattern
- Regenerate package-lock.json to include @conduction/nextcloud-vue
  (was missing from lock file, causing npm ci failure in CI)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Fixes indentation and formatting issues flagged by vue/html-indent and
vue/singleline-html-element-content-newline rules that are enforced
consistently in the CI environment.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
fix: Resolve ESLint errors and update package-lock.json
…ud-vue@0.1.0-beta.3

@conduction/nextcloud-vue@0.1.0-beta.3 now ships css/index.css at the package
root, so the css/index.css import and all named exports resolve correctly.
Removes the temporary import/ignore and import/no-unresolved ignore rules.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
fix: Standardize logos, fix ESLint errors, upgrade to @conduction/nextcloud-vue@0.1.0-beta.3
…sable

Replace boilerplate setup/teardown sidebar methods, fetchCases/fetchTasks,
and computed store refs with useListView(objectType, { sidebarState,
defaultSort }) in setup().

- CaseList.vue: useListView('case', { sidebarState, defaultSort: deadline asc })
  Supplementary loadCaseTypes/loadStatusTypes remain in mounted() since
  they load independent reference data for template formatters.
- TaskList.vue: useListView('task', { sidebarState, defaultSort: dueDate asc })
  loadCaseTitle helper preserved in methods; calls useObjectStore() directly.

All entity-specific logic (deadline/status formatting, row classes,
quick-status dropdown, case title resolution) is unchanged.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Add phpunit.xml with PHPUnit 10.5 configuration
- Add tests/bootstrap.php with OCP class autoloader
- Add tests/unit/Controller/SettingsControllerTest.php (2 tests)
- Update .github/workflows/code-quality.yml to run PHPUnit on every PR
- Fix composer.json test:unit script to use correct vendor binary

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Add Psalm (Static Analysis) step to code-quality.yml php-quality job

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…lateParam in Psalm

Add DeepLinkRegistrationEvent to UndefinedClass suppressions (runtime OpenRegister dependency)
and add MissingTemplateParam suppressor for IEventListener generic param to reach 0 Psalm errors.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
# Conflicts:
#	.github/workflows/code-quality.yml
#	composer.json
#	psalm.xml
complete-l10n:
- Add ~250 missing keys to l10n/en.json and l10n/nl.json (302 total)
- Archive complete-l10n change

fix-settings-bug:
- Replace settings dropdown with single Settings button in MainMenu.vue
- Remove /case-types route from router
- Archive fix-settings-bug change

fix-dutch-display:
- Load app translations via loadTranslations('procest') before Vue mount
  (Nextcloud does not inject Procest's l10n)
- Use translate as t, translatePlural as n from @nextcloud/l10n
  (package exports translate/translatePlural, not t/n)
- Apply to main.js and settings.js
- Archive fix-dutch-display change

openspec:
- Add verify-l10n.js for l10n validation (JSON, key sync, placeholders)
- Add phpstan-bootstrap.php to register OCP/NCU autoloading (nextcloud/ocp has no composer autoload)
- Add ignoreErrors for OCP unknown classes, invalid types, and OpenRegister runtime dependency
- Fixes 76 PHPStan errors in CI

Made-with: Cursor
- Move AI/IDE config and workflows to parent apps-extra folder
- Add to .gitignore to prevent re-adding

Made-with: Cursor
@WilcoLouwerse
Copy link
Author

#7

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.

2 participants