• Skip to primary navigation
  • Skip to main content
  • Skip to primary sidebar

RocketGeek

Home of WP-Members, The Original WordPress Membership Plugin

  • WordPress Plugins
    • WP-Members
      • FAQs
      • Quick Start
      • Documentation
      • Extensions
    • Advanced Options
      • Documentation
      • Purchase the Plugin
      • Get the Pro Bundle
    • Download Protect
      • Documentation
      • Purchase the Plugin
      • Get the Pro Bundle
    • Invite Codes
      • Documentation
      • Purchase the Plugin
      • Get the Pro Bundle
    • MailChimp Integration
      • Documentation
      • Purchase the Plugin
      • Get the Pro Bundle
    • PayPal Subscriptions
      • Documentation
      • Purchase the Plugin
      • Get the Pro Bundle
    • Salesforce Web-to-Lead
    • Security
      • Documentation
      • Purchase the Plugin
      • Get the Pro Bundle
    • Text Editor
      • Purchase the Plugin
      • Get the Pro Bundle
    • User List
      • Documentation
      • Purchase the Plugin
      • Get the Pro Bundle
    • User Tracking
      • Documentation
      • Purchase the Plugin
      • Get the Pro Bundle
    • Memberships for WooCommerce
    • WordPass
  • Blog
    • Basics
    • Tips and Tricks
    • Filters
    • Actions
    • Code Snippets
    • Shortcodes
    • Design
    • Release Announcements
  • Store
    • Cart
    • Checkout
  • Contact
  • Log In
  • Show Search
Hide Search
Home » Plugins » WP-Members » Documentation » Maintain a custom translation file

Maintain a custom translation file

You can maintain a custom translation file for your situation.  The upside to doing this is that you have a proper translation of all user facing strings (including custom fields). The downside is that you need to make sure you keep it up to date if any changes are made in the plugin.  I try not to make changes affecting translation, but sometimes it is unavoidable.

To maintain a custom translation file, you can start from what is available in your language at the polyglots project. Download (export) the .po file from the site.  Then, using a tool like Poedit, you can add your necessary strings and translate them.  Poedit will compile this as an .mo file when you save it.  The .po is your template file, the .mo is the machine readable compiled file necessary to display translations.

Poedit is free, and there is a premium version as well. You only need the free version to do this, but I recommend the paid version.  First, there are additional features; and second, it supports the project. (In keeping with my personal standards, I have a paid version of the program. I don’t recommend products that I don’t own and use myself.)

Once you create a set of custom translation files, you’ll need to do two things:

  1. Load the files to a location on your web server,
  2. Set up a filter to tell the plugin to load your custom file instead of the default file.

Custom translation files can live anywhere on your server, but I recommend that you put them somewhere in the wp-content directory.  If you use a child theme, that’s a good location that isn’t generally touched.  You can also upload via the WP Media Manager and make note of that location.  Essentially, do what is right based on your specific WP install as long as they are not in a location that would be overwritten (i.e. not the wp-members folder).

Make sure that your custom file is “wp-members-{locale}.mo”.  For example, a standard German is “de_DE” so your file would be wp-members-de_DE.mo (make careful note of the difference between hyphens and underscores – these are critical).

Then set up a filter to load your custom translation file using the wpmem_localization_file filter.  This filters the location of the .mo file being loaded.  The filter has an added parameter of the current $locale, making it useful for multi-language sites (as long as the plugin locale is correct).  You can use the filter in the documentation “as is.” Just make sure to adjust the path based on where you have saved your custom file.

 

  • Getting Started
  • Recommended WordPress® Settings
  • Plugin Settings
    • Options
    • Fields
    • Dialogs
    • Emails
    • New Feature Settings
  • Managing Content
    • Restricting Posts
    • Restricting Pages
    • Show Excerpts
    • Custom Post Types
  • Managing Users
    • Import Users
    • Export Users
    • Edit Users
    • Search Users
  • Login
  • Registration
    • Choosing Fields
    • Create a Registration Page
    • Moderating Registration
    • Using CAPTCHA
    • Removing Registration Options
  • User Profile
  • Memberships
    • Membership Properties
    • Membership Levels
  • Menus
    • Individual Menu Items
    • Logged In Menus
    • Login/Logout Menu Link
  • Customizing Emails
    • Email Address
    • Email Content
    • Email Format
    • Email Shortcodes
    • Email Troubleshooting
  • Customizing Forms
    • Create a Custom Stylesheet
    • Using the WordPress Customizer
    • Login Form HTML
    • Registration Form HTML
    • Widget Login Form HTML
  • Translation and Localization
    • Maintain a custom translation file
    • Filter untranslated strings
    • Multi-language Considerations
  • Shortcodes
    • Pages and Forms
    • Login Status
    • User Fields
    • Memberships
    • Email
    • Other Shortcodes
  • WP-CLI Commands
  • API Functions
  • Filter Hooks
  • Action Hooks
  • FAQs
    • Email troubleshooting
    • Passwords are not being included in Emails
    • The plugin isn’t blocking my content
    • Are files protected?
    • How can I prevent registration spam?
    • How to add a shortcode
    • How to apply login redirects
    • Why can’t users log in?
    • Why does reCAPTCHA v3 fail?
    • Troubleshooting Really Simple Captcha
    • Why do I get a 403 error?
    • How do I use code snippets?
    • My changes aren’t showing up
    • How to hide the “Admin Bar”
    • How to add a forgot password link
    • Password reset doesn’t show any fields
    • Domain not included in the password reset link
    • There was an error processing the form
    • Hidden vs. Restricted
  • Demo Videos
  • How to Request Support
  • Copy Settings for Support
  • Hosting Recommendations

Ready to get started?

Join Today!

© 2025 · butlerblog.com · RocketGeek is built using WordPress, WP-Members, and the Genesis Framework

  • butlerblog.com
  • WP-Members Support Subscription
  • Terms of Service
  • Privacy Policy
  • Refund Policy