Skip to content

Rename displayed program name from 'rubyripper' to 'RubyRipperRemix' in GUI and translations#11

Open
Masterisk-F wants to merge 3 commits into
masterfrom
worktree-fix+gui-program-name
Open

Rename displayed program name from 'rubyripper' to 'RubyRipperRemix' in GUI and translations#11
Masterisk-F wants to merge 3 commits into
masterfrom
worktree-fix+gui-program-name

Conversation

@Masterisk-F

Copy link
Copy Markdown
Owner

Summary

Updates all user-visible strings from rubyripper/Rubyripper/RUBYRIPPER to RubyRipperRemix/RUBYRIPPERREMIX in the source code, the .pot translation template, and all 10 language .po translation files.

This is a continuation of commit 0082ab5 which renamed the window title and log entries. This PR covers the remaining user-visible strings.

Changes

GUI (primary target)

  • Welcome message (gtkShortMessage.rb): "Welcome to rubyripper""Welcome to RubyRipperRemix"
  • Directory exists dialog (gtkDirExists.rb): "What do you want rubyripper to do?""What do you want RubyRipperRemix to do?"

CLI

  • Main menu header: * RUBYRIPPER MAIN MENU ** RUBYRIPPERREMIX MAIN MENU *
  • Exit message: "Exit rubyripper...""Exit RubyRipperRemix..."
  • Goodbye message: "Thanks for using rubyripper.""Thanks for using RubyRipperRemix."
  • --version description and output (cliArguments.rb)
  • Preferences menu header (cliPreferences.rb)

Logging / Error messages

  • Log header (rippingInfoAtStart.rb): "Rubyripper extraction logfile from:"
  • Dependency error (dependency.rb): "Rubyripper can't be used without cdparanoia!"

Build system

  • configure: package_name 'Rubyripper''RubyRipperRemix' (2 occurrences)

Translations

  • po/rubyripper.pot template: all 8 relevant msgids updated
  • All 10 language .po files: bg, da, de, es, fr, hu, it, nl, ru, se — both msgid and translated msgstr updated

Not changed (internal identifiers)

  • GetText.bindtextdomain("rubyripper") — internal translation domain
  • require 'rubyripper/...' — internal load paths
  • Binary names (rubyripper_gtk3, rubyripper_cli), icon filename (rubyripper.png)
  • User-Agent string (network.rb), freedb submission strings, CTDB and encoder metadata tags — these are protocol-level identifiers, not user-facing text

Verification

  • All 7 modified Ruby files pass syntax check (ruby -c)
  • All .po/.pot files verified: zero remaining lowercase-rubyripper in msgid or msgstr lines

…PER' to 'RubyRipperRemix'/'RUBYRIPPERREMIX'

This change updates all user-visible strings across source code,
translation templates (.pot), and all 10 language translations (.po):

- GUI welcome: 'Welcome to rubyripper' -> 'Welcome to RubyRipperRemix'
- GUI dialog: 'What do you want rubyripper to do?' -> 'What do you want RubyRipperRemix to do?'
- CLI menu: '* RUBYRIPPER MAIN MENU *' -> '* RUBYRIPPERREMIX MAIN MENU *'
- CLI messages: 'Exit/Thanks for using rubyripper' -> 'Exit/Thanks for using RubyRipperRemix'
- CLI --version: 'Show current version of rubyripper' -> 'Show current version of RubyRipperRemix'
- CLI preferences: 'RUBYRIPPER PREFERENCES' -> 'RUBYRIPPERREMIX PREFERENCES'
- Log header: 'Rubyripper extraction logfile from:' -> 'RubyRipperRemix extraction logfile from:'
- Dependency error: 'Rubyripper cannot be used without...' -> 'RubyRipperRemix cannot be used without...'
- Build script: package_name 'Rubyripper' -> 'RubyRipperRemix'

Internal identifiers (bindtextdomain, require paths, filenames)
are kept unchanged.

@Masterisk-F Masterisk-F left a comment

Copy link
Copy Markdown
Owner Author

Choose a reason for hiding this comment

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

Thanks for tackling the remaining user-visible strings. The scope is right (continue 0082ab5, leave internal identifiers / binary names / protocol-level strings alone), and the touched file set is complete. Unfortunately I found two real bugs in the .po files that need to be fixed before merging.

Blocker 1 — Duplicated Remix in Project-Id-Version of every .po file

All 10 language files have a malformed header:

-"Project-Id-Version: Rubyripper 0.7.0a1\n"
+"Project-Id-Version: RubyRipperRemixRemix 0.7.0a1\n"

Confirmed in: po/bg/rubyripper.po, po/da/rubyripper.po, po/de/rubyripper.po, po/es/rubyripper.po, po/fr/rubyripper.po, po/hu/rubyripper.po, po/it/rubyripper.po, po/nl/rubyripper.po, po/ru/rubyripper.po, po/se/rubyripper.po (10 occurrences in the diff). The .pot template is fine (RubyRipperRemix 0.8.0rc4), so only the language files are affected.

Likely cause: the replacement script ran Rubyripper → RubyRipperRemix and then matched ripper (case-insensitive) inside the resulting Remix suffix and substituted again. The fix is to make the pattern more specific (word boundary, or anchor on Rubyripper exactly) and regenerate.

Blocker 2 — Native translations partially overwritten with English in 5 languages

For the msgid "Rubyripper version %s" entry, the translator's existing msgstr was overwritten with the English phrase This log was created by in five .po files. The pattern is identical in all five, so a hard-coded English string clearly leaked out of the replacement script:

File Original msgstr (excerpt) New msgstr (excerpt)
po/bg/rubyripper.po Този лог е генериран от RubyRipper версия %s This log was created by RubyRipperRemix версия %s
po/es/rubyripper.po Este log ha sido creado por Rubyripper, versión %s This log was created by RubyRipperRemix, versión %s
po/hu/rubyripper.po Ez a naplófájl a Rubyripper %s verziójával készült This log was created by RubyRipperRemix %s verziójával készült
po/it/rubyripper.po Questo file di log è stato creato da Rubyripper, versione %s This log was created by RubyRipperRemix, versione %s
po/se/rubyripper.po Denna logg skapades med Rubyripper, version %s This log was created by RubyRipperRemix, version %s

For reference, po/de/rubyripper.po, po/fr/rubyripper.po, and po/nl/rubyripper.po correctly kept their native translations. The fact that the exact same English phrase appears in five different language files is a strong indicator that the script's input contained an English string and it was used to overwrite msgstr blocks.

The entry is marked #, fuzzy and the msgstr body is "" in the .pot, so technically the language-specific line is just a hint for translators — but we should not be destroying the work the original translators contributed.

Existing inconsistency carried over (not introduced, but worth flagging)

The cd-paranoia entry in po/rubyripper.pot does not match the source:

  • Source (lib/rubyripper/system/dependency.rb:109):
    _("RubyRipperRemix can't be used without libcdio-paranoia (cd-paranoia)!")
  • po/rubyripper.pot (and all .po files):
    msgid "RubyRipperRemix can't be used without cdparanoia!"

This was already wrong on master before this PR; the PR just preserves the same mismatch after the rename. The next time ./configure update_po is run, the .pot will be regenerated with the actual source msgid, and the current msgstrs for that entry will become orphans. Worth fixing in a follow-up PR, but I'd appreciate at least an acknowledgment in this PR.

Suggestions (non-blocking)

  1. Add a simple grep to the verification step so this kind of bug is caught automatically:

    # Double occurrence of the new product name in any single .po line:
    grep -nE 'RubyRipperRemix.*RubyRipperRemix' po/*/rubyripper.po po/rubyripper.pot

    This would have flagged Blocker 1 immediately.

  2. No tests added. Existing specs don't cover gtkShortMessage, gtkDirExists, cliArguments, or rippingInfoAtStart, so nothing broke — but a one-liner asserting, e.g., that --version output contains RubyRipperRemix version would protect against this kind of silent regression. Past features (e.g. musicbrainzSubmitURL in commit 05d84e5) added specs, so the project convention leans that way.

  3. No CHANGELOG entry. The user-facing welcome / exit / version strings are changing, which is a visible behavior change. The 0.8.0 section could use a one-liner.

What's good

  • Scope is right: only user-visible strings, internal identifiers, binary names, the bindtextdomain call, require paths, the icon, and protocol-level strings (User-Agent, freedb submission, CTDB / encoder tags) are intentionally untouched.
  • The diff is reviewable size (218/-218 across 20 files) and the per-file change sets are tight.

Verdict

I'd hold off on merging until the two Blocker items above are fixed. Both should be a quick scripted fix + verification with the grep above.

…e native msgstrs

Addresses review feedback on PR #11.

Blocker 1: Project-Id-Version header contained 'RubyRipperRemixRemix' in all 10
.po files. The rename script applied 'Rubyripper -> RubyRipperRemix' and then
matched 'ripper' (case-insensitive) inside the freshly generated 'Remix' suffix.
Fixed by replacing the duplicated token with the correct 'RubyRipperRemix' on
the single Project-Id-Version line of each .po file.

Blocker 2: msgstr for 'RubyRipperRemix version %s' was overwritten with the
English phrase 'This log was created by ...' in po/{bg,es,hu,it,se}/rubyripper.po,
destroying the original translators' work. Native translations have been restored
using master as the reference, with the embedded brand name updated to
'RubyRipperRemix' for consistency with the rest of this rename.

Follow-up consistency fixes: the brand token 'Rubyripper' still embedded in
po/de, po/ru, and po/da msgstrs (one occurrence each, missed by the original
script's case-sensitive pattern) is now also 'RubyRipperRemix'.

Note: the pre-existing source/.pot mismatch between
'RubyRipperRemix can\'t be used without libcdio-paranoia (cd-paranoia)!'
(dependency.rb) and
'RubyRipperRemix can\'t be used without cdparanoia!' (rubyripper.pot)
is acknowledged but not addressed here, since it predates this PR. It will be
fixed in a follow-up by running './configure --update-po' to regenerate the
.pot from source.
@Masterisk-F

Copy link
Copy Markdown
Owner Author

Pushed a follow-up commit (0e4c2d1) addressing both blockers.

  • Blocker 1: stripped the duplicated Remix from Project-Id-Version in all 10 .po files (one-line change per file).
  • Blocker 2: restored the native msgstr for RubyRipperRemix version %s in bg / es / hu / it / se from the master reference, replacing the leaked English This log was created by ... prefix. Embedded brand name is now RubyRipperRemix to stay consistent with the rest of this rename.

Also fixed three brand-name stragglers (Rubyripper left intact inside de / ru / da msgstrs, missed by the original script's case-sensitive pattern) for full consistency.

Verification:

grep -nE 'RubyRipperRemix.*RubyRipperRemix' po/*/rubyripper.po po/rubyripper.pot   # empty
grep -n 'This log was created by' po/*/rubyripper.po                                # empty
grep -nE 'msgstr.*[Rr]ubyripper' po/*/rubyripper.po po/rubyripper.pot               # empty

Re: the existing cdparanoia / libcdio-paranoia (cd-paranoia) mismatch between lib/rubyripper/system/dependency.rb:109 and po/rubyripper.pot — acknowledged. It predates this PR (already present on master). I'll address it in a follow-up PR by running ./configure --update-po to regenerate the .pot from source and msgmerge the .po files.

@Masterisk-F

Copy link
Copy Markdown
Owner Author

Thanks for the follow-up commit — both blockers from the previous review are
resolved (Project-Id-Version dedup, native msgstr restoration in
bg/es/hu/it/se, and the de/ru/da stragglers). With those fixes in place, this
PR is mergeable from my side.

One pre-existing source/pot mismatch that I'd like to flag for a follow-up
(acknowledged as out of scope for this PR):

cdparanoia msgid diverges from source

  • Source (lib/rubyripper/system/dependency.rb:109):
    'cd-paranoia' => _("RubyRipperRemix can't be used without libcdio-paranoia (cd-paranoia)!"),
  • .pot (po/rubyripper.pot:1745):
    msgid "RubyRipperRemix can't be used without cdparanoia!"
    

The .pot is still tracking the old cdparanoia wording; the source has been
updated to the more accurate libcdio-paranoia (cd-paranoia) (presumably in
the libcdio-paranoia migration work, but the .pot was never regenerated).

Risk

The next time someone runs ./configure --update-po, the .pot will be
regenerated from the current source. The current msgid (...cdparanoia!) will
disappear, and the corresponding msgstrs in all .po files will become
orphan entries (or be left behind as fuzzy hints — neither outcome is ideal).

Per-file impact:

  • po/nl/rubyripper.po has the only real translation: RubyRipperRemix is niet bruikbaar zonder het programma cdparanoia! — this translator's work
    will be silently dropped unless we act.
  • The other 9 .po files (bg/da/de/es/fr/hu/it/ru/se)
    currently have msgstr "", so the impact is small.

Recommended follow-up PR

  1. Decide on the canonical wording (I'd keep the source as-is —
    libcdio-paranoia (cd-paranoia) matches the actual implementation).
  2. Regenerate .pot with ./configure --update-po.
  3. msgmerge --update against all 10 .po files.
  4. Verify that nl's translation surfaces as a fuzzy match for the new msgid
    (or re-translate it).
  5. msgfmt --check on all .po files to confirm format validity.

Not a blocker for this PR, but worth filing as a tracked issue / follow-up PR
before the next release.

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.

1 participant