Problem/Motivation

The theme prints several strings and values in a way that stays in the site's default language when a second language is installed, so translated pages mix languages. Found by crawling a right-to-left translation of The Rightup and reading the markup.

  • Episode lists (views-view-fields--podcast-episodes--by-podcast and --more-by-podcast) print row._entity.label, the default-language title, next to a summary in the row's language.
  • The date atom prints date|date('M j, Y'), which never localizes month names, and the live feed item does the same for its time.
  • The hero slider scripts write "Play" and "Pause" directly instead of through Drupal.t.
  • About twenty component templates print English without |t (labels, placeholders, alternative text).
  • The podcast episode count joins a number and a word, which cannot follow a language's plural forms (some languages have six).
  • The Share component prints each platform title as stored in the Webshare table, so no translation can reach it.

Steps to reproduce

  1. Install The Rightup, add a second language with translated episodes, and open the translated show page, for example /<langcode>/podcasts/field-notes.
  2. Episode titles are in the default language, the summaries in the page language. Dates read "Jul 16, 2026". The ticker time is "12:00 PM".

Proposed resolution

  • Read the row title through the view's own title field, so it follows the row's translation.
  • Print dates with format_date and a translatable pattern (context "PHP date format") so the interface language names the month and can reorder the parts. The datetime attribute stays ISO.
  • Use Drupal.t in the slider scripts and declare core/drupal.
  • Wrap the remaining component strings in |t, use {% trans %} with a plural for the episode count, and pass the Share titles through |t.

Strings that come from Canvas inputs or config (headers, labels typed in the editor) are out of scope: they are translated per language, not by the theme.

Remaining tasks

  • ✅ File an issue
  • ✅ Addition/Change/Update/Fix
  • ❌ Testing to ensure no regression
  • ❌ Automated unit/functional testing coverage
  • ➖ Developer Documentation support
  • ➖ User Guide Documentation support
  • ➖ UX/UI designer responsibilities
  • ❌ Accessibility and Readability
  • ❌ Reviewed by a human
  • ❌ Code review by maintainers
  • ❌ Full testing and approval
  • ❌ Credit contributors
  • ❌ Review with the product owner
  • ❌ Update Release Notes
  • ❌ Release

User interface changes

  • None in English. Translated pages keep each row, date and label in one language.

API changes

  • N/A

Data model changes

  • N/A

Release notes snippet

  • None in English. Translated pages keep each row, date and label in one language.

AI-Generated: Yes. Drafted and tested with Claude Code, reviewed by the contributor.

Command icon Show commands

Start within a Git clone of the project using the version control instructions.

Or, if you do not have SSH keys set up on git.drupalcode.org:

Comments

rajab natshah created an issue. See original summary.

rajab natshah’s picture

Before and after screenshots, 1440 wide, on a translated right-to-left page unless named LTR.

  • Episode rows on a show page: titles now follow the row's translation.
    Episode rows before and after, titles translated
  • Card dates: month names follow the interface language.
    Card dates before and after, month names translated
  • Live feed time: AM/PM follows the interface language.
    Live feed time before and after
  • LTR ticker unchanged.
    LTR live feed before and after

  • rajab natshah committed 3f5f9b64 on 1.0.x
    fix: #3628116 Make the theme render translations: row titles, dates,...
rajab natshah’s picture

Status: Needs review » Fixed
Issue tags: +vartheme_bs5_rightup-1.0.4

Now that this issue is closed, review the contribution record.

As a contributor, attribute any organization that helped you, or if you volunteered your own time.

Maintainers, credit people who helped resolve this issue.

Status: Fixed » Closed (fixed)

Automatically closed - issue fixed for 2 weeks with no activity.