I’m using Ghost 5.31.0 in a self-hosted docker-compose service for a local community organization web page. The members will be invite-only. Since we have members, and the subscriber/subscription language may confuse some of our older members, I’d like to change any instance of “subscribe” to “join” (I’ve already done this with the button at the bottom of every Ghost page), and any mention of “subscriber” or “subscription” to “member(s)” and “membership”.
I’m using a modified Casper theme (basically overridden the “Subscribe” button with “Join”), but I can’t seem to find where to rename every message that mentions the subscribe/subscriber/subscription terms with join/members/membership. Grepping through the theme with:
grep -REins "subscribe|subscription" casper/*
I find a span in post.hbs with “Subscribe” in it, so I changed it to “Join”. But on members-only content, I see a message “This page is for subscribers only,” with a button that says “Subscribe now”. I’d like to change this to “This page is for members only,” with a button that says,“Join now”, or better yet “Contact the owner to join this site,” since it’s invite-only.
We manage membership outside of the web page. Perhaps in the future we may add Stripe as a way of paying dues, but we’re nowhere near close to that.
I think you’re looking at code that’s in Portal, not within the theme. That code is not easily customizable, unfortunately, unless you’re self-hosted and can edit Portal.
Oh wait! You’re self-hosted. Great. So what you need to do is fork the Portal code from Github and edit the strings that need changing there. Then make sure you include the url for your forked Portal in config.production.json, not the Ghost default one.
That seems a little bit more complicated, since I’m using the official Ghost Docker image. I’d basically need to create my own Docker image, and modify the Portal code there. Not impossible, but pretty cumbersome. I will have to review how to make my own Docker images, and use them in my docker-compose
stack. Thus far I’ve only been using official Docker images unmodified in my stack.
I’d have to make this edit every time Ghost is upgraded. Since I track the latest version, I’d have to update the Docker image quite frequently. Again, not impossible, but an extra step every time a new version of Ghost is released. Something that should be very scriptable, at least.
Thanks for the tip, it’s something to think about.
If you fork portal, you can put the built version of your fork anywhere, so you’d only need to change the one setting in docker’s equivalent of config.json to load it instead of the default one.
But yes, you’d have to update your portal build occasionally too. I’m hoping that when the translation features for portal go in, you can ‘translate’ your Portal to use the wording you prefer.