dotCMS / dotCMS/core

✨ Implement Multilingual Breadcrumbs via GraphQL

Open
#31,556 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Team : Scout
Dominant language
Java
Stars
970
Forks
486
Avg merge
3d 33m
Merged PRs (30d)
170

Description

Problem Statement

Users struggle to navigate through multilingual websites due to the lack of a dynamic breadcrumb system that reflects the correct content hierarchy and properly displays language-specific titles, leading to confusion and poor user experience across global markets.

Objectives
  • Create a flexible and efficient GraphQL query.
  • Support multilingual titles in the breadcrumbs using language variables in folder titles.
  • Ensure the breadcrumb structure reflects the hierarchy from the root to the current page or folder.
User Story

As a front-end developer, I want to retrieve structured breadcrumb data based on a specified path with language-specific titles (stored as language variables in folder titles), so I can display accurate navigation aids in the application that cater to a global audience.

Acceptance Criteria
  • [ ] The GraphQL query accepts a path string as input and returns a structured JSON object representing the hierarchy.
  • [ ] The query accepts a languageId to translate if needed
  • [ ] Query efficiently handles different path depths and structures.
  • [ ] Support fallback to a default language if the specified language variable is not available.
  • [ ] Proper error handling and validation for the input path to avoid query failures.
External Links

[Link to the GraphQL schema documentation or API guidelines]

Assumptions & Initiation Needs
  • Assumes multilingual content management using language variables in folder titles is already in place.
  • Proper indexing of paths and titles for efficient query retrieval.
Quality Assurance Notes & Workarounds

[Test this feature with different path lengths and various language settings.]

Technical Details

Using GraphQL for the API implementation, focusing on high-performance data retrieval. Language variables in folder titles will be used to display the appropriate language version.

Potential Challenges
  • Dynamic path resolution: Precise parsing and fetching based on input paths.
  • Language variable integration: Implementing an effective fallback and language resolution system for folder titles.
Out of Scope

While we're implementing a folder-based breadcrumb solution as it's the most common approach, we acknowledge that some customers may require more advanced breadcrumb control (e.g., using category trees). These advanced use cases are recognized but not included in the current implementation.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

No source files or tests are named. Start by locating the existing GraphQL schema and the implementation for folder titles and language variables, then trace how paths are resolved. Done should include a path-based breadcrumb response, language selection with default fallback, validation, and coverage for different path depths and language settings.

Written by the indexing model from the issue text.

Assessment

Tech stack
graphql, java
Domain
api, internationalization
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.