If you don't care about the distinction between "meaningful" words and mere prepositions and articles and so on, here's a suggestion that could be simpler than the one [over on the AutoCAD-Forum thread] that involves subdividing a text object into all the separate words as separate text objects and then counting them. [I don't imagine it would be able to do that with Block Attributes, anyway, not to mention that you probably don't want to break all the text objects apart into pieces.] If all words are separated by single spaces, you can just check for how many spaces there are in an object's string content, by first taking them all out, and then comparing the length of the string before and after. One more than that difference is the number of words.
Command: (setq test "This is a test of the emergency broadcast system.")
"This is a test of the emergency broadcast system."
Command: (setq full (strlen test))
49 <-- number of characters in original string
Command: (while (wcmatch test "* *") (setq test (vl-string-subst "" " " test)))
"Thisisatestoftheemergencybroadcastsystem."
Command: (setq nospaces (strlen test))
41 <-- number of characters with all spaces removed
Command: (setq words (1+ (- full nospaces))) <-- difference + 1
9 <-- number of words in that string
A single-word string with no spaces would return 1 [because that difference would be zero], etc.
That would have to be applied to all the extracted text-string content from all the appropriate objects [that's the hard part], and added up. But working with just the string content, and not manipulating actual drawing entities, should be a lot faster. And it's subject to being thrown off by the possibility of things like two spaces between sentences, or , a comma with a space before it as well as after, etc. But for purposes of something like estimating the scope of translation work needed, a precise figure probably isn't needed, and it should be a good approximation.
Kent Cooper, AIA