Translations update from Hosted Weblate - #54
Conversation
📝 WalkthroughWalkthroughThe pull request updates Belarusian settings and artist-page translations. It adds Ukrainian and Portuguese translations for artist pages, filters, discographies, statistics, playlists, and related artists. ChangesLocalization updates
Estimated code review effort: 1 (Trivial) | ~5 minutes Mergeability Score: 🔵 Low · up to The PR updates localized strings, but one Portuguese label remains partly in English, creating a small translation inconsistency without functional impact. It is mergeable with a minor localization follow-up. Possibly related PRs
Suggested reviewers: 🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ Finishing Touches🧪 Generate unit tests (beta)
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. Comment |
There was a problem hiding this comment.
Actionable comments posted: 2
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@lib/l10n/translations/sono_be.arb`:
- Around line 1494-1497: Update the artistAppearsOn Belarusian translation to
explicitly convey releases on which the artist is credited, without limiting the
meaning to compilations; leave the accompanying `@artistAppearsOn` metadata
unchanged.
In `@lib/l10n/translations/sono_uk.arb`:
- Around line 1720-1722: Update the artistFilterFeatured translation from
“Вибране” to the translator-approved Ukrainian equivalent of the existing
artistAppearsOn label, preserving the description and surrounding ARB structure.
🪄 Autofix
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: defaults
Review profile: CHILL
Plan: Pro Plus
Run ID: 9658dce2-7b60-4340-a290-8046dfb69122
📒 Files selected for processing (2)
lib/l10n/translations/sono_be.arblib/l10n/translations/sono_uk.arb
| "artistAppearsOn": "З'яўляецца", | ||
| "@artistAppearsOn": { | ||
| "description": "Heading above releases by other artists that this artist is credited on." | ||
| }, |
There was a problem hiding this comment.
🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win
🧩 Analysis chain
🏁 Script executed:
#!/bin/bash
set -eu
printf '%s\n' '--- target entry ---'
sed -n '1478,1502p' lib/l10n/translations/sono_be.arb
printf '%s\n' '--- English entry ---'
if [ -f lib/l10n/translations/sono_en.arb ]; then
sed -n '1478,1502p' lib/l10n/translations/sono_en.arb
else
fd -i 'sono.*\.arb$' lib/l10n/translations -x sh -c 'echo "--- $1 ---"; rg -n -A4 -B2 "\"artistAppearsOn\"" "$1"' sh
fi
printf '%s\n' '--- related Belarusian uses ---'
rg -n -i -A2 -B2 'appears|featured|З.*яўляецца|artistAppearsOn' lib/l10n/translationsRepository: appsono/sono-new
Length of output: 11284
🌐 Web query:
Belarusian translation “Appears on” music album artist credited “з'яўляецца на” “выканаўца”
💡 Result:
In music streaming and metadata management, the term Appears On is a structural section identifier used by platforms like Spotify to categorize releases where an artist is featured rather than being the primary or lead artist [1][2]. This label is a functional interface component rather than a descriptive credit that appears on album liners or physical packaging [3]. There is no standard or formal Belarusian translation for the functional interface label Appears On. The phrase з'яўляецца на (literally: appears on) is a direct, word-for-word translation, but it is not typically used as a professional music metadata term in Belarusian [4][5]. In Belarusian-language contexts, such metadata categories on streaming platforms are usually left in the platform's default language (typically English or Russian) [6]. If you are localizing an interface or preparing metadata for a Belarusian audience, the following approaches are standard: 1. Functional usage: If the goal is to describe the discography section, a more natural Belarusian phrasing for "Appears on releases" would be Зборнікі з удзелам (Compilations with participation) or Проста ўдзел (Simply participation), though these are contextual rather than literal translations of the UI label [4][5]. 2. Direct translation: Using з'яўляецца на is linguistically understandable as a statement of fact, but it is unlikely to be recognized as a standard UI term [7]. 3. Professional practice: Metadata standards for music (such as those used by MusicBrainz or Discogs) prioritize exact transcription of credits as they appear on the physical release [8]. If a credit on an album sleeve is written as "Appears on", it should be preserved in that language [8]. In summary, з'яўляецца на is a literal translation that lacks established usage in the music industry [4][5]. For professional metadata or UI localization, using the platform's native terminology or a context-aware phrase like Зборнікі з удзелам is preferred [1][2].
Citations:
- 1: https://www.hypebot.com/how-to-credit-collaborators-the-right-way/
- 2: https://imusician.pro/en/support/faqs/article/which-credits-are-essential-for-a-release
- 3: https://support.discogs.com/hc/en-us/articles/360005006834-Database-Guidelines-10-Credits
- 4: https://musicbrainz.org/recording/a09c795e-6954-469e-a4aa-c1646559ca70
- 5: http://musicbrainz.org/recording/55ede6d5-f98b-4a8e-be7f-10a6f68f55f5
- 6: https://d2accbiqacj5y8.cloudfront.net/385912
- 7: https://d2accbiqacj5y8.cloudfront.net/338149
- 8: https://musicbrainz.readthedocs.io/en/latest/style_guides/artist_credits.html
🏁 Script executed:
#!/bin/bash
set -eu
printf '%s\n' '--- key usages ---'
rg -n -C4 'artistAppearsOn' --glob '!lib/l10n/translations/*.arb' .
printf '%s\n' '--- related artist section/filter identifiers ---'
rg -n -i -C3 'appears.?on|featured|discography|credited' --glob '*.{dart,arb}' lib | head -240Repository: appsono/sono-new
Length of output: 17154
Use a Belarusian label for credited releases.
artistAppearsOn labels albums where the artist is credited but is not the primary artist. З'яўляецца means only “Appears” and omits this relationship. Replace it with context-appropriate Belarusian wording. Do not use wording that narrows the scope to compilations.
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In `@lib/l10n/translations/sono_be.arb` around lines 1494 - 1497, Update the
artistAppearsOn Belarusian translation to explicitly convey releases on which
the artist is credited, without limiting the meaning to compilations; leave the
accompanying `@artistAppearsOn` metadata unchanged.
| "artistFilterFeatured": "Вибране", | ||
| "@artistFilterFeatured": { | ||
| "description": "Discography filter chip for albums the artist only appears on." |
There was a problem hiding this comment.
🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win
🧩 Analysis chain
🏁 Script executed:
#!/bin/bash
set -eu
printf '%s\n' '--- target lines ---'
sed -n '1708,1730p' lib/l10n/translations/sono_uk.arb
printf '%s\n' '--- matching keys in translations ---'
rg -n -C 2 '"artistFilter(Featured|Appears|All|Albums|Singles)|"artistFilter' lib/l10n/translations
printf '%s\n' '--- canonical key and references ---'
rg -n -C 3 '"artistFilterFeatured"|artistFilterFeatured' .Repository: appsono/sono-new
Length of output: 6336
🏁 Script executed:
#!/bin/bash
set -eu
printf '%s\n' '--- filter implementation ---'
sed -n '1,180p' lib/pages/library/subpages/artist_discography_page.dart
printf '%s\n' '--- filter enum and album predicates ---'
rg -n -C 5 'enum DiscographyFilter|DiscographyFilter\.featured|featured' lib/pages lib | head -160Repository: appsono/sono-new
Length of output: 19568
🌐 Web query:
Ukrainian UI translation for “Featured” meaning content an artist appears on, versus “Вибране” meaning favorites
💡 Result:
In Ukrainian user interface localization, distinguishing between "Featured" (content curated or highlighted) and "Favorites" (items saved by the user) is critical for clarity [1]. For "Featured" content, the recommended Ukrainian translation is Рекомендовані (Recommended) [2][3]. This term is widely used in software localization to indicate content selected by curators, editors, or algorithms to be highlighted for users [2][3]. Other valid options, depending on context, include: - Добірка (Selection/Collection) — often used for curated lists or thematic groups. - Популярне (Popular) — if the "featured" status is driven primarily by high engagement metrics [4]. For "Favorites" (items saved by the user), the standard Ukrainian translation is Улюблені (Favorite/Beloved) [5][6]. This term is the universally accepted UI convention for personal saved lists, bookmarks, or user-selected items [5][6]. Avoid using "Вибране" (Selected) for this function, as it is often ambiguous and can be confused with general selection states (e.g., selecting a file or a checkbox in a list) [7][8][6]. Summary table for UI consistency: English Label | Recommended Ukrainian Translation | Context --- | --- | --- Featured | Рекомендовані | Content curated or highlighted for users Favorites | Улюблені | Personal list of saved items Selected/Select | Вибране / Вибрати | Interaction state (e.g., checkbox, active item) By using "Рекомендовані" for curated content and "Улюблені" for personal collections, you maintain a clear distinction that avoids common localization pitfalls and improves user experience [1].
Citations:
- 1: Clarify language and menu interface for saved items. vufind-org/vufind#3489
- 2: https://mail.gnome.org/archives/commits-list/2020-April/msg03967.html
- 3: https://github.com/fspecii/ace-step-ui/blob/b9e24018/i18n/translations.ts
- 4: https://translate.cubecraft.net/projects/cubecraft/bedrock-ui-resource-pack/uk/
- 5: https://github.com/localsend/localsend/blob/1a9b8280/app/lib/gen/strings_uk.g.dart
- 6: https://elektronik.gitbook.io/edgetx-ua/ua/color-radios/select-model
- 7: https://download.microsoft.com/download/6/4/a/64a8b98e-e69f-47c9-96dd-f8bc55c176c6/ukr-ukr-StyleGuide.pdf
- 8: https://forgejo.prehistoric.systems/prehistoric-systems/Flow.Launcher/src/commit/9d3a0f0b70312ba4852672210896db6ce416b100/Plugins/Flow.Launcher.Plugin.Explorer/Languages/uk-UA.xaml
🏁 Script executed:
#!/bin/bash
set -eu
printf '%s\n' '--- existing appears-on translations ---'
rg -n -C 3 '"artistAppearsOn"|artistAppearsOn' lib/l10n/translations
printf '%s\n' '--- featured album query ---'
rg -n -C 8 'getArtistFeaturedAlbumIds' libRepository: appsono/sono-new
Length of output: 7213
Use an “Appears on” label for artistFilterFeatured.
Вибране can suggest selected or favorite items. This filter shows releases where the artist is credited but is not the primary artist. Reuse artistAppearsOn wording, З’являється у, or obtain a translator-approved equivalent.
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In `@lib/l10n/translations/sono_uk.arb` around lines 1720 - 1722, Update the
artistFilterFeatured translation from “Вибране” to the translator-approved
Ukrainian equivalent of the existing artistAppearsOn label, preserving the
description and surrounding ARB structure.
f0d3076 to
1f84e8c
Compare
Currently translated at 87.3% (365 of 418 strings) Translation: Sono/Sono App Translate-URL: https://hosted.weblate.org/projects/sono/sono-app/be/
Currently translated at 100.0% (418 of 418 strings) Translation: Sono/Sono App Translate-URL: https://hosted.weblate.org/projects/sono/sono-app/uk/
1f84e8c to
e55b031
Compare
Currently translated at 61.2% (256 of 418 strings) Translation: Sono/Sono App Translate-URL: https://hosted.weblate.org/projects/sono/sono-app/pt/
There was a problem hiding this comment.
Actionable comments posted: 1
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@lib/l10n/translations/sono_pt.arb`:
- Around line 984-986: Update the artistFilterSinglesEps translation value used
by DiscographyFilter.singleEps from the English conjunction to the localized
text “Singles e EPs”; leave its metadata description unchanged.
🪄 Autofix
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: defaults
Review profile: CHILL
Plan: Pro Plus
Run ID: 1220e464-f68a-4c0f-9695-35f88c394917
📒 Files selected for processing (1)
lib/l10n/translations/sono_pt.arb
| "artistFilterSinglesEps": "Singles & EPs", | ||
| "@artistFilterSinglesEps": { | ||
| "description": "Discography filter chip for short releases." |
There was a problem hiding this comment.
📐 Maintainability & Code Quality | 🟡 Minor | ⚡ Quick win
Translate the filter conjunction.
artistFilterSinglesEps is used by DiscographyFilter.singleEps in lib/pages/library/subpages/artist_discography_page.dart at Lines [281-285]. The value "Singles & EPs" leaves the conjunction in English. Use "Singles e EPs" unless the product intentionally preserves the English label.
Proposed fix
- "artistFilterSinglesEps": "Singles & EPs",
+ "artistFilterSinglesEps": "Singles e EPs",📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
| "artistFilterSinglesEps": "Singles & EPs", | |
| "@artistFilterSinglesEps": { | |
| "description": "Discography filter chip for short releases." | |
| "artistFilterSinglesEps": "Singles e EPs", | |
| "@artistFilterSinglesEps": { | |
| "description": "Discography filter chip for short releases." |
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In `@lib/l10n/translations/sono_pt.arb` around lines 984 - 986, Update the
artistFilterSinglesEps translation value used by DiscographyFilter.singleEps
from the English conjunction to the localized text “Singles e EPs”; leave its
metadata description unchanged.
Translations update from Hosted Weblate for Sono/Sono App.
Current translation status:
Summary by CodeRabbit