Skip to content

Provide localization context/comments - #11808

Merged
grliszas14 merged 5 commits into
audacity:masterfrom
grliszas14:localization_context
Aug 27, 2026
Merged

Provide localization context/comments#11808
grliszas14 merged 5 commits into
audacity:masterfrom
grliszas14:localization_context

Conversation

@grliszas14

Copy link
Copy Markdown
Contributor

Resolves: #11627

  • I signed CLA
  • The title of the pull request describes an issue it addresses
  • If changes are extensive, then there is a sequence of easily reviewable commits
  • Each commit's message describes its purpose and effects
  • There are no behavior changes unnecessary for the stated purpose of the PR

Recommended:

  • Each commit compiles and runs on my machine without known undesirable changes of behavior

QA:

  • Testflow test cases have been run

@grliszas14
grliszas14 requested a review from kryksyh August 27, 2026 13:22
@coderabbitai

coderabbitai Bot commented Aug 27, 2026

Copy link
Copy Markdown

Review Change Stack

📝 Walkthrough

Walkthrough

The changes standardize UI action descriptions under the action_description translation context. They add translator comments for action titles, descriptions, tooltips, labels, dialog text, accessibility names, units, error messages, and undo history entries across application modules and QML views. Runtime behavior, action metadata, control flow, and public declarations remain unchanged.

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

Merge Risk: 🔵 Low · up to 0562c

The PR improves localization guidance across the application, but three bounded context mismatches could lead to misleading or less accurate translations in specific UI messages. The change is otherwise mergeable with explicit owner follow-up on those localization details.

🚥 Pre-merge checks | ✅ 3 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Description check ⚠️ Warning The description includes the issue link and checklist responses, but it does not provide the required short summary of the changes or their motivation. Add a short description that explains the localization-context changes, the separation of action descriptions, and the motivation from issue #11627. Update the QA checkbox if testflow cases were run.
✅ Passed checks (3 passed)
Check name Status Explanation
Title check ✅ Passed The title clearly and concisely describes the main change: adding localization context and comments.
Linked Issues check ✅ Passed The changes satisfy issue #11627 by adding translator context comments and separating action descriptions into the action_description translation context. The changes address ambiguous UI strings with…
Out of Scope Changes check ✅ Passed The changes remain within scope. They add localization comments, translation context, and action-description disambiguation across affected UI strings. No unrelated functional changes are present.
Full details: Linked Issues check

Explanation

The changes satisfy issue #11627 by adding translator context comments and separating action descriptions into the action_description translation context. The changes address ambiguous UI strings without introducing unrelated behavior changes.

  • Fix all pre-merge checks with AI

Warning

Linked repositories: Public OSS repositories can only analyze public repositories installed in this organization. No linked repositories were analyzed; skipped musescore/musescore.


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.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Actionable comments posted: 3


ℹ️ Review info
⚙️ Run configuration

Configuration used: Repository UI (base), Organization UI (inherited)

Review profile: CHILL

Plan: Pro Plus

Run ID: 92da5727-ef81-4ad8-bbb9-3ffe7c24ac41

📥 Commits

Reviewing files that changed from the base of the PR and between 247876e and 0562c9a.

📒 Files selected for processing (52)
  • src/appshell/internal/applicationuiactions.cpp
  • src/appshell/qml/Audacity/AppShell/AboutDialog.qml
  • src/appshell/qml/Audacity/AppShell/AlphaWelcomePopup.qml
  • src/appshell/qml/Audacity/AppShell/appmenumodel.cpp
  • src/au3cloud/internal/au3audiocomservice.cpp
  • src/au3cloud/internal/clouduiactions.cpp
  • src/effects/builtin_collection/dynamics/compressor/compressorsettingmodel.cpp
  • src/effects/builtin_collection/filtercurveeq/FilterCurveEqView.qml
  • src/effects/builtin_collection/loudness/normalizeloudnessviewmodel.cpp
  • src/effects/builtin_collection/noisereduction/NoiseReductionView.qml
  • src/effects/builtin_collection/normalize/NormalizeView.qml
  • src/effects/builtin_collection/normalize/normalizeeffect.cpp
  • src/effects/builtin_collection/reverb/reverbviewmodel.cpp
  • src/effects/builtin_collection/tonegen/ChirpView.qml
  • src/effects/effects_base/internal/effectsuiactions.cpp
  • src/effects/effects_base/qml/Audacity/Effects/BypassEffectButton.qml
  • src/effects/effects_base/qml/Audacity/Effects/DestructiveEffectsViewerDialog.qml
  • src/effects/effects_base/qml/Audacity/Effects/EffectPresetsBar.qml
  • src/effects/effects_base/qml/Audacity/Effects/MissingPluginsDialog.qml
  • src/effects/effects_base/qml/Audacity/Effects/PresetNameDialog.qml
  • src/effects/effects_base/view/pluginmanagertableviewmodel.cpp
  • src/effects/nyquist/nyquistprompt/NyquistPromptView.qml
  • src/importexport/export/internal/au3/au3exporter.cpp
  • src/importexport/export/qml/Export/ExportDialog.qml
  • src/importexport/export/qml/Export/internal/MetadataControlPanel.qml
  • src/playback/internal/au3/au3trackplaybackcontrol.cpp
  • src/playback/internal/playbackuiactions.cpp
  • src/playback/qml/Audacity/Playback/panels/PlaybackMeterPanel.qml
  • src/preferences/qml/Audacity/Preferences/commonaudioapiconfigurationmodel.cpp
  • src/project/internal/audacityproject.cpp
  • src/project/internal/opensaveprojectscenario.cpp
  • src/project/internal/projectactionscontroller.cpp
  • src/project/internal/projectuiactions.cpp
  • src/project/qml/Audacity/Project/internal/NewProject/TitleListView.qml
  • src/project/qml/Audacity/Project/internal/Properties/PropertyItem.qml
  • src/projectscene/internal/projectsceneuiactions.cpp
  • src/projectscene/qml/Audacity/ProjectScene/toolbars/PlaybackToolBar.qml
  • src/projectscene/qml/Audacity/ProjectScene/tracksitemsview/labeleditor/LabelEditorTopPanel.qml
  • src/projectscene/qml/Audacity/ProjectScene/trackspanel/RealtimeEffectListItem.qml
  • src/projectscene/qml/Audacity/ProjectScene/trackspanel/TracksTitleBar.qml
  • src/projectscene/qml/Audacity/ProjectScene/trackspanel/WaveTrackItem.qml
  • src/projectscene/view/tracksitemsview/labeleditor/labelstableviewmodel.cpp
  • src/projectscene/view/tracksitemsview/multiclipcontextmenumodel.cpp
  • src/projectscene/view/tracksitemsview/selectioncontextmenumodel.cpp
  • src/record/internal/au3/au3record.cpp
  • src/record/internal/recordcontroller.cpp
  • src/record/internal/recorduiactions.cpp
  • src/spectrogram/internal/spectrogramuiactions.cpp
  • src/spectrogram/view/colorsectionparameterlistmodel.cpp
  • src/trackedit/internal/trackeditactionscontroller.cpp
  • src/trackedit/internal/trackeditoperationcontroller.cpp
  • src/trackedit/internal/trackedituiactions.cpp

Included review availability: Your plan provides up to 10 included reviews per hour; 9 remain after this review.

Comment on lines +1473 to 1474
//: Title of an error dialog shown when generating the audio preview fails
interactive()->error(trc("cloud", "Generate audio preview"), ret.text());

Copy link
Copy Markdown

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

Use accurate context for the shared error title.

The cloud / "Generate audio preview" message is also used at Lines 1518, 1531, 1538, and 1545 for cloud-project download or opening failures. This comment describes only audio-preview generation. Use separate message IDs for the different error-dialog titles, or update the comment to cover every use of this message ID.

Comment on lines +45 to +48
//: Action title: shown as a menu item or a button label; keep it short
TranslatableString("action", "Show in Finder"),
TranslatableString("action", "Show in Finder")
//: Action description: shown as a tooltip; can be a full sentence
TranslatableString("action_description", "Show in Finder")

Copy link
Copy Markdown

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

Update the Windows and fallback description contexts.

The new action_description context is applied only in the Q_OS_MAC branch. The Q_OS_WIN and fallback branches at Lines 50-54 still use the action context for descriptions. Add the description comments and use action_description in both branches.

Comment on lines +123 to 126
//: Message shown when a search returns nothing
text: qsTrc("global", "No results found")

visible: view.count < 1

Copy link
Copy Markdown

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

🔎 Supported by static analysis

🏁 Script executed:

#!/bin/bash
set -euo pipefail

# Inspect all TitleListView usages and confirm that empty models only occur during search.
rg -n -C 12 'TitleListView[[:space:]]*\{' --glob '*.qml'

Repository: audacity/audacity

Length of output: 155


🏁 Script executed:

#!/bin/bash
set -euo pipefail

printf '%s\n' '--- repository conventions ---'
find /tmp/coderabbit-repo-knowledge/audacity-audacity-1bc7f016 -type f -path '*/\*.md' -print 2>/dev/null | sort
printf '%s\n' '--- TitleListView files and usages ---'
fd -HI 'TitleListView' .
rg -n -C 15 'TitleListView' --glob '*.qml' .
printf '%s\n' '--- component context ---'
sed -n '1,180p' src/project/qml/Audacity/Project/internal/NewProject/TitleListView.qml

Repository: audacity/audacity

Length of output: 298


🏁 Script executed:

#!/bin/bash
set -euo pipefail

printf '%s\n' '--- TitleListView.qml ---'
cat -n src/project/qml/Audacity/Project/internal/NewProject/TitleListView.qml

printf '%s\n' '--- references to the component file or type ---'
rg -n -C 12 'TitleListView|titleListView|titleList' src/project/qml --glob '*.qml' --glob '*.qmldir' || true

printf '%s\n' '--- NewProject QML files ---'
fd -HI -e qml -e qmldir . src/project/qml/Audacity/Project/internal/NewProject src/project/qml/Audacity/Project 2>/dev/null | sort

Repository: audacity/audacity

Length of output: 6474


🏁 Script executed:

#!/bin/bash
set -euo pipefail

printf '%s\n' '--- repository-wide references ---'
rg -n -C 8 'TitleListView|titleListView|titleList' . || true

printf '%s\n' '--- direct model and search bindings in nearby NewProject components ---'
rg -n -C 10 'GeneralInfoView|ProjectInfoPage|model:|searchEnabled|searchText|searching' \
  src/project/qml/Audacity/Project/internal/NewProject \
  src/project/qml/Audacity/Project --glob '*.qml' || true

Repository: audacity/audacity

Length of output: 50374


🏁 Script executed:

#!/bin/bash
set -euo pipefail

printf '%s\n' '--- non-translation source references ---'
rg -n -C 10 'TitleListView|titleListView|titleList' . \
  -g '!share/locale/**' -g '!*.ts' || true

printf '%s\n' '--- NewProject component declarations and uses ---'
rg -n -C 8 'GeneralInfoView|ProjectInfoPage|TitleListView|searchEnabled|searching|searchText|model:' \
  src/project/qml/Audacity/Project/internal/NewProject \
  src/project/qml/Audacity/Project/NewProjectDialog.qml \
  src/project/qml/Audacity/Project/ProjectsPage.qml \
  --glob '*.qml' 2>/dev/null || true

Repository: audacity/audacity

Length of output: 15635


Align the empty-state comment with all render paths.

noResultsFoundHint is visible whenever view.count < 1; it does not depend on searching or searchEnabled. An empty model can therefore display “No results found” without an active search. Describe this as an empty-list message, or gate visible on the search state if it is search-only.

@grliszas14
grliszas14 merged commit 4d65404 into audacity:master Aug 27, 2026
17 checks passed
@grliszas14
grliszas14 deleted the localization_context branch August 27, 2026 14:51
kryksyh added a commit that referenced this pull request Aug 27, 2026
Provide localization context/comments
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.

Provide localization context/comments for UI strings following the shift to Sentence Case for Audacity 4.x

2 participants