Skip to content

Conversation

@staceybeard
Copy link
Member

@staceybeard staceybeard commented Jan 20, 2026

By submitting this merge request, I confirm the following:

  • The merge request title follows the conventional commits convention (see Backend project's README.md)
    • feat: minor app version will be incremented.
    • fix, deps, perf: patch app version will be incremented.
    • chore, ci, etc.: app version will not be incremented.
    • See semantic-release/commit-analyzer
      for complete set of rules.

Changes

Updated code across the app to support a truly multilingual UI.

While angular-translate was already set up to facilitate adding more languages, the app's controllers and views still expected data to be provided in either English or French. This meant that setting the app to a new language would break the majority of the data display. The PR linked below moves the responsibility to the listener to provide translated strings and data, with a fallback language when the requested language isn't available. This allows the app to receive and display data in any language, and allows the user to set the UI to a language other than English or French.

The following example describes the most common change required for a multilingual UI. Suppose a piece of data has a description; the data would come from the listener with fields Description_EN and Description_FR. The app view would then display Description_${language}. However, with the app in Spanish (for example), the view would be trying to access Description_ES, which doesn't exist. To fix this problem, the code was changed to expect just a Description, already translated by the listener either in the correct language or a fallback language.

Extra changes:

  • Deleted unused src/views/personal/documents/pdf-view.html. Then renamed pdf-view.directive.css to pdf-viewer.directive.css for clarity.
  • Installed @babel/plugin-proposal-throw-expressions to allow the syntax return data || throw error; (used in dynamicContentService.js when a link is missing in the chosen language and in the fallback language).

Dependencies

Screenshots

The following languages are provided as an example.

opal-app-language-selection

# Conflicts:
#	src/js/controllers/home/homeController.js
@staceybeard staceybeard self-assigned this Jan 20, 2026
@staceybeard staceybeard added the enhancement New feature or request label Jan 20, 2026
Copy link
Member

@mschoettle mschoettle left a comment

Choose a reason for hiding this comment

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

Great work!

@staceybeard
Copy link
Member Author

Great work!

Thanks @mschoettle!

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

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants