From #1346158: Decide on coding standard for capitalization of module names [policy, no patch]:

contextual/ = Contextual links
dblog/ = Database logging
php/ = PHP filter
translation/ = Content translation
update/ = Update manager

And a number of the test-only modules do not follow this convention either.

Proposed resolution

Patch all core modules to use Proper Name Case in .info files, inline documentation, and interface text where appropriate.

This issue changes only module names in contexts where they are used as names. For other contexts, please discuss at #1435840: Make capitalization in UI text in general more consistent in Core.

#20 proper-case-modules-1430452-20.patch29.01 KBCottser
PASSED: [[SimpleTest]]: [MySQL] 34,795 pass(es). View
#20 interdiff.txt17.06 KBCottser
#7 proper-case-modules-1430452-7.patch42.89 KBCottser
PASSED: [[SimpleTest]]: [MySQL] 34,226 pass(es). View
Members fund testing for the Drupal project. Drupal Association Learn more


Tor Arne Thune’s picture

Issue tags: +Novice

I agree it's best to do it now so that Drupal core can go ahead as a "good example."

Cottser’s picture

Assigned: Unassigned » Cottser

I can work on a patch for this. Is this just for D8 or are we backporting as well?

xjm’s picture

Since it's a change in interface text and in coding standards, it's not backportable, so D8 only. Thanks @Cottser!

Michelle’s picture

I don't know that it's worthwhile to change D7 core at this point... Especially if it breaks strings (Does it? I don't know if capitalization affects translations). But there's no reason why contrib can't start following the standard, even in D7, so I would hope that the issues being made to break existing correct capitalization will stop, at least.


Edit: Crossposted with xjm. :)

jhodgdon’s picture

xjm is right: There is no way we can backport to Drupal 7 at this point. It will break strings/translations, and we also have a policy of not backporting new standards to old versions of Drupal in general.

klonos’s picture

Title: Use Proper Name Case for modules » Use Proper Name Case for core modules.

...just clarifying the scope of this issue in its title (for our dashboards).

Cottser’s picture

Status: Active » Needs review
42.89 KB
PASSED: [[SimpleTest]]: [MySQL] 34,226 pass(es). View

Added the "Field SQL storage" module to the list.

There are some cases where it's not the module itself being referenced, but the module's functionality. In these cases, I don't think it's the proper noun in use, and sentence case should be used. Two examples below from help text.

Only the most trusted users should be granted permission to use the PHP filter, and all PHP code added through the PHP filter should be carefully examined before use.

Contextual links are supplied by modules, to give you quick access to tasks associated with regions of pages on your site.

I've left similar phrases as is (sentence case intact) where I saw fit. Mostly in contextual.module and php.module.

Of note are two more ambiguous cases in the documentation from update.module. I think the @defgroup should be changed to Update Manager, but "Update manager for installing new code" almost reads as "An update manager" rather than "The Update Manager" to me, so I've left these as sentence case for now (two instances).

 * @defgroup update_manager_install Update manager: install
 * @{
 * Update manager for installing new code.
 * Provides a user interface to install new code.
Michelle’s picture

I agree that it's not a proper name when you aren't specifically referring to the project.


jhodgdon’s picture

Actually, I think all three of the update manager @defgroups should just be deleted. They don't have any/much useful text that is not already in the @file and none contains more than a few functions. They are just cluttering up the Topics page.

And I agree with the idea in #7 too. The module name should be capitalized as a proper name, and other uses of the same text should not.

In that regard... I wasn't sure whether or not all of these uses of "update manager" should be capitalized (I'm willing for the answer to be yes or no, but I wasn't sure -- thoughts?):

--- a/core/modules/update/
+++ b/core/modules/update/
@@ -221,7 +221,7 @@ function update_authorize_update_batch_finished($success, $results) {
   $_SESSION['authorize_results']['page_message'] = $page_message;
   $_SESSION['authorize_results']['messages'] = $results['log'];
   $_SESSION['authorize_results']['tasks'] = $results['tasks'];
-  $_SESSION['authorize_operation']['page_title'] = t('Update manager');
+  $_SESSION['authorize_operation']['page_title'] = t('Update Manager');

- * Build the form for the update manager page to update existing projects.
+ * Build the form for the Update Manager page to update existing projects.

- * Returns HTML for the first page in the update manager wizard to select projects.
+ * Returns HTML for the first page in the Update Manager wizard to select projects.

- * Build the form for the update manager page to install new projects.
+ * Build the form for the Update Manager page to install new projects.


It seems like there are a lot of instances of referring to the process of running the update manager that don't specifically refer to it as the Update Manager module. But maybe "Update Manager" is also the proper name for the wizard and page that do updates? ??? Not sure... any opinions?

Other than than these Update Manager text pieces, the patch looks good. I didn't get grep through core to verify these are the only uses of those module names. Thanks for catching the Field SQL Storage module too!

Cottser’s picture

@jhodgdon - I had the same thought regarding Update Manager, I think it could go either way and I'd be okay with either way. My reasoning was that it's "The" Update Manager, as opposed to "a" contextual link, but I suppose you could also say it's also "The" PHP Filter.

Michelle’s picture

I would capitalize those. An example of where I wouldn't would be: "This module is an update manager for your site." "The Update Manager page" is basically saying "Update Manager's page" or "The page for Update Manager" and capitals sound correct for me in both of those instances.

I'm also wondering if rewording it a bit would make it clearer in general, not just where caps are concerned...

"Build the form for the Update Manager page to install new projects" ->
"Build the form for the "install new projects" page provided by Update Manager"

Just makes it clearer what page it is referring to. Unless I have that totally wrong... I don't actually use Update Manager to install new projects so not quite sure where this text is. :)


jhodgdon’s picture

Actually, I kind of disagree here. I think if it says the "Update Manager module" it should be capitalized, but we don't capitalize other systems in Drupal like "search", "forums", "field manager", etc., as in "Configure search", "Manage fields".

Michelle’s picture

On my D7 install, there is:

"Users with Use search permission can use the search block and Search page."
"Indexing behavior can be adjusted using the Search settings page. "
"The Search module includes a default Search form block, which can be enabled and configured on the Blocks administration page. The block is available to users with the Search content permission."

So how is this different aside from capitalizing all letters of the module name instead of just the first?


Michelle’s picture

Hmm... On further looking, there's a lot of inconsistancy in core. In my example above, "search block" but "Search page". In Taxonomy we have "Before you can use a new vocabulary to classify your content, a new Taxonomy term field must be added to a content type on its manage fields page. When adding a taxonomy field," So, "Taxonomy term" but "taxonomy field"?

Do we need to have better guidelines of when the module name is being used in a "proper" sense? For instance, I would write, "Hello Mother" and then "I told my mother hello". The first is addressing the person and a proper name but the second is just referring to her "position".


jcisio’s picture

Take Search module as an example. I think we could write Seach module, but we write search page, search block... as they are features instead of proper name. BTW, we could also write "Search block" if we want to mean the search block provided by Search module.

So the rule is, I think, to consider only module name as proper name.

Michelle’s picture

re #15: Are you saying what you think it should be? Because it is currently the exact opposite of what you said. It's capitalizing it with page and not with block.


jhodgdon’s picture

Status: Needs review » Needs work

Let's discuss #13-16 on a separate issue:
#1435840: Make capitalization in UI text in general more consistent in Core

This issue is about fixing the capitalization of the core module names. So let's remove the capitalization changes where we aren't referring directly to "the Whatever Whatever module" from this patch, and work on other capitalization issues on the other issue.

Cottser’s picture

I agree. I'll work on a revised patch to revert most of the Update Manager changes.

Kristen Pol’s picture

Title: Use Proper Name Case for core modules. » Use Proper Name Case for core modules
Cottser’s picture

Status: Needs work » Needs review
17.06 KB
29.01 KB
PASSED: [[SimpleTest]]: [MySQL] 34,795 pass(es). View

Revised patch here.

There are plenty of cases where 'Update manager' is used in the middle of a sentence and should probably be 'update manager', but that can be handled in #1435840: Make capitalization in UI text in general more consistent in Core .

xjm’s picture

Status: Needs review » Reviewed & tested by the community

I read #20 closely and I believe all the changes there are correct.

bleen’s picture


webchick’s picture

Assigned: Cottser » jhodgdon

This seems like a reasonable thing for Jennifer to take a look at.

jhodgdon’s picture

I'll start with a retest, just in case -- it's been a while since this patch was created.

jhodgdon’s picture

jhodgdon’s picture

Status: Reviewed & tested by the community » Fixed

This has been committed to 8.x. Thanks!

Status: Fixed » Closed (fixed)

Automatically closed -- issue fixed for 2 weeks with no activity.

klonos’s picture

Version: 8.x-dev » 7.x-dev
Status: Closed (fixed) » Active
Issue tags: +needs backport to D7

...sorry for re-opening this one but shouldn't we do the same for D7?

From the Available updates page (/admin/reports/updates) for core:


Enabled: Block, Book, Color, Comment, Contact, Content translation, Contextual links, Dashboard, Database logging, Field, Field SQL storage, Field UI, File, Filter, Forum, Garland, Help, Image, List, Locale, Menu, Node, Number, Options, Path, RDF, Search, Shortcut, Syslog, System, Taxonomy, Text, Update manager, User
Disabled: Aggregator, Bartik, Blog, OpenID, Overlay, PHP filter, Poll, Seven, Stark, Statistics, Testing, Toolbar, Tracker, Trigger

...or did we at some point decide to only do this for D8 and ignore D7/D6 and older and I missed that?

longwave’s picture

Version: 7.x-dev » 8.x-dev
Status: Active » Closed (fixed)
Issue tags: -needs backport to D7

From #3:

Since it's a change in interface text and in coding standards, it's not backportable, so D8 only.

Changing interface text breaks existing translations, so we cannot do this now in D7.

klonos’s picture

Version: 8.x-dev » 7.x-dev
Status: Closed (fixed) » Active

Yeah, but AFAIK module names are not translated/able. So the rule about this change altering UI text doesn't actually apply (or if you prefer, we can make an exception). Correct me if I'm wrong.

PS: sorry for re-re-changing status and branch. I don't mean to play ping-pong here, but some people filter closed issues out of their dashboard.

jcisio’s picture

Version: 7.x-dev » 8.x-dev
Status: Active » Closed (fixed)

For consistence, we cannot translation module name without translating all related help text.

jhodgdon’s picture

That is correct. There are too many dependencies in UI text that needs translation, so we are not doing this for Drupal 7. Sorry.

klonos’s picture

Yes, but module names are not translated/able AFAIK as nor is the word "Drupal" (please correct me if I'm wrong). The only change made would be to capitalize their first letters. The text UI will change -I give you that- but in a way that won't hurt translators if they don't update.

Besides, I was only referring to changing the name entry in the modules' .info files not their descriptions or any UI text. The only places where this would take effect actually would be the modules admin page and the available updates page.

jhodgdon’s picture

We just want things to be consistent. If the module is called "Foo bar module" in the help text, then it should also be called "Foo bar" on the Modules page. We don't want to update the help text. Ergo, we also don't want to update the Modules page.

Anyway, the standards were updated long after Drupal 7 came out, and we are not going to go back and fix it now. That is not how we do standards except in the case of really terrible bugs, and this isn't one... sorry! I complained about this case problem several times before Drupal 7 came out and no one listened until this issue (finally), so we are stuck with it now.

klonos’s picture

Yeah yeah. I won't argue any more. Only one last thing though:

We just want things to be consistent. ...

Precisely! you can't have some modules in the modules page having sentence case in their names and some others having proper case and still call that consistent. Oh well, I rest my case :/

klonos’s picture

Issue summary: View changes

add a link to another issue