I'm working on a complicated web application and being tripped up by the simplest of things. But I worked it out by reading other people's documentation.
If you've forgotten your password, you click on the "forgot my password" link. You put in your email address and click "Email new password." It sends you an email, but it also puts a status message on the screen that says "Further instructions have been sent to your e-mail address." The client wants to remove the hyphen, so that it says "email" instead of "e-mail."
This is part of Drupal's core functionality. This status message is set deep in the User module. I do not want to have to hack core just to remove a stupid hyphen. Fortunately, the people who build these systems are smart.
According to the documentation for the function that does the "password reset," that status message is passed to the t() function. The t() function is handy but not often used; it allows you to translate a string. Usually this would mean translating into another language, and that hasn't come up. But in this case, maybe it'll help me. The documentation for t() says
// First, check for an array of customized strings. If present, use the array // *instead of* database lookups. This is a high performance way to provide a // handful of string replacements. See settings.php for examples.
Sure enough, there's a nice bit of documentation, with an example, in the settings.php. So I do this.
$conf['locale_custom_strings_en'] = array(
'Further instructions have been sent to your e-mail address.' => 'Further instructions have been sent to your email address.'
And I've changed the status message without hacking core.