I got this idea from a discussion of how to capitalize menu items.
Apple's Human Interface Guidelines tell us how to capitalize labels on user interface elements. For example, menu items should be in title case, which Apple calls title style.
From the section "Capitalization of Interface Element Labels and Text" [1] in the chapter on "Text":
Title style means that you capitalize every word except:
- Articles (a, an, the)
- Coordinating conjunctions (and, or)
- Prepositions of four or fewer letters [2], except when the preposition is part of a verb phrase, as in “Starting Up the Computer.” [3]
In title style, always capitalize the first and last word, even if it is an article, a conjunction, or a preposition of four or fewer letters.
Apple gives examples of correctly capitalized menu items [4]:
Save as Draft
Save As…
Log Out [5]
Make Alias
Go To…
Go to Page…
Outgoing Mail
My idea is is for a script and/or app that would scan your nib files and check that you're using the right capitalization style for your menu items. I'd call it "iblint": "ib" as in "Interface Builder", and "lint" as in lint (which is glorifying it somewhat, but maybe the tool could be extended to perform enough checks to merit the link reference). Ideally it would do the right thing internationalization-wise, but just an English version might be a helpful start.
It would be nice if iblint could also check the UI elements that should be in sentence style, but this is trickier. For one thing, a label might contain proper nouns. For another, labels that are not full sentences should use title style, and it might be tricky for a program to figure out what is a full sentence — though on the other hand there are grammar checkers that can spot sentence fragments, so maybe it's feasible.
There might be too many special cases, and it might not be important enough, for this kind of checking to be built into IB, but I think a third-party script that performs a rough sanity check might be useful, if only a teeny bit so. And it might provide a tiny amount of geek fun to run it against all the nibs in my installed apps to see how well they conform to the capitalization guidelines.
Footnotes [6]:
[1] I'd have linked directly to the section, but I've found sometimes links to internal sections of Apple's docs don't work. The link might work for you.
[2] I was glad to come across this, because I'd been wondering whether it should be "Check For Update…" or "Check for Update…". Since "for" has fewer than four letters, I see now it should be the latter.
[3] I agree with the capitalization, but I don't think "Up" is technically a preposition here. I think it's an adverb. But I'm willing to be corrected, and in any case it's obvious what they mean.
[4] They give examples for other UI elements, like push buttons and dialog messages, but not for toolbar items. Presumably the toolbar should use title style, since toolbar items generally correspond to menu items. But I think it's worth saying so explicitly, and I've submitted feedback to that effect.
[5] Notice that "Log Out" is not one word.
[6] Sorry about the flurry of footnotes. I'm too lazy to weave all these side thoughts into something coherent.
It's a good idea, and one that's existed before on the Mac: SoftPolish.
There's an old MacTutor review here:
http://www.mactech.com/articles/mactech/Vol.08/08.06/SoftPolish/index.html
A simple way to manage this would be to allow you to modify the textual output to indicate certain controls should be ignored (or to define your own capitalization rules, etc.)
Nicholas,
Interesting, thanks!