Rename displayed program name from 'rubyripper' to 'RubyRipperRemix' in GUI and translations#11
Rename displayed program name from 'rubyripper' to 'RubyRipperRemix' in GUI and translations#11Masterisk-F wants to merge 3 commits into
Conversation
…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
left a comment
There was a problem hiding this comment.
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.pofiles):
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)
-
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.
-
No tests added. Existing specs don't cover
gtkShortMessage,gtkDirExists,cliArguments, orrippingInfoAtStart, so nothing broke — but a one-liner asserting, e.g., that--versionoutput containsRubyRipperRemix versionwould protect against this kind of silent regression. Past features (e.g.musicbrainzSubmitURLin commit05d84e5) added specs, so the project convention leans that way. -
No
CHANGELOGentry. 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
bindtextdomaincall,requirepaths, 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.
|
Pushed a follow-up commit (
Also fixed three brand-name stragglers ( Verification: Re: the existing cdparanoia / libcdio-paranoia (cd-paranoia) mismatch between |
|
Thanks for the follow-up commit — both blockers from the previous review are One pre-existing source/pot mismatch that I'd like to flag for a follow-up
|
Summary
Updates all user-visible strings from
rubyripper/Rubyripper/RUBYRIPPERtoRubyRipperRemix/RUBYRIPPERREMIXin 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)
gtkShortMessage.rb):"Welcome to rubyripper"→"Welcome to RubyRipperRemix"gtkDirExists.rb):"What do you want rubyripper to do?"→"What do you want RubyRipperRemix to do?"CLI
* RUBYRIPPER MAIN MENU *→* RUBYRIPPERREMIX MAIN MENU *"Exit rubyripper..."→"Exit RubyRipperRemix...""Thanks for using rubyripper."→"Thanks for using RubyRipperRemix."--versiondescription and output (cliArguments.rb)cliPreferences.rb)Logging / Error messages
rippingInfoAtStart.rb):"Rubyripper extraction logfile from:"dependency.rb):"Rubyripper can't be used without cdparanoia!"Build system
configure:package_name 'Rubyripper'→'RubyRipperRemix'(2 occurrences)Translations
po/rubyripper.pottemplate: all 8 relevant msgids updatedbg,da,de,es,fr,hu,it,nl,ru,se— bothmsgidand translatedmsgstrupdatedNot changed (internal identifiers)
GetText.bindtextdomain("rubyripper")— internal translation domainrequire 'rubyripper/...'— internal load pathsrubyripper_gtk3,rubyripper_cli), icon filename (rubyripper.png)network.rb), freedb submission strings, CTDB and encoder metadata tags — these are protocol-level identifiers, not user-facing textVerification
ruby -c)rubyripperinmsgidormsgstrlines