Re: Name Capitalization

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



----- Original Message ----- From: "Jochem Maas" <jochem@xxxxxxxxxxxxx>
To: "Leonard Burton" <leonardburton@xxxxxxxxx>
Cc: "Chris W. Parker" <cparker@xxxxxxxxxxxx>; "PHP" <php-general@xxxxxxxxxxxxx>
Sent: Tuesday, March 20, 2007 11:09 AM
Subject: Re:  Name Capitalization


Leonard Burton wrote:
HI Chris,

Here is one option. Make a long list (array) of search/replace pairs and
loop through your text replacing as necessary.

'mcdonald' => 'McDonald'
'mcdowell' => 'McDowell'
'o\'reilly' => 'O\'Reilly'
'de la rosa' => 'De La Rosa'
etc ad nauseum...

I think the better solution would be some pregs that would go through
and look for "mc" then have it turn the name into "Mc" then Capitalize
the next letter. [same thing for "mac"]

Then Do the same thing with "O'Henry" it would look for "o\' " then it
would turn it into "O' " and capitalize the "H".

Let us know when you're done! :)

This project shouldn't be that hard as there are probably only 10 to
15 rules for names.

give or take a few *thousand* variations alot of which will conflict,
take for instance the surname prefix 'de' - in a spanish name (we'll assume
Chris' example is correct) the 'd' of a 'de' prefix should be capitalized
BUT in a dutch name the 'd' of a 'de' prefix should not capitalized:

JOSE DE LA ROSA => Jose De La Rosa
FRANK DE BOER => Frank de Boer

this actual example may not be valid

Indeed, it is not. The correct capitalization is José de la Rosa. At least in Spanish the rules are quite simple, unless someone is actually called 'De', neither 'de', ' la' ,'del', 'y', 'e' or 'i' would be capitalized, and there is no such a thing as a capital letter in the middle of a word or name, not in native Spanish names at least. Nevertheless, you would expect the first letter of a sentence to be capitalized so a news heading such as 'De la Rosa won a 3rd place for McLaren' is correct.

Satyam

but I guarantee that you'll come
across this kind of conflicting rules that are language/region/culture based and that you will have pretty much no chance of determining which rule to apply
given just the name input.

Chris' suggestion of a 1 to 1 map using an assoc array is actually probably
the cleanest and most successful strategy - but rather you than me when it
comes to compiling that list ;-) though please do put it online when you
have completed it :-P

assuming the correction that is made to the name capitalization is presented to the user you could consider asking the user whether it is correct and/of offering a number of variations (including an 'other' field) from which they
could choose - this is based on the idea that you'll probably guess the
capitalization wrong quite a lot of the time but that regardless of that
fact you may still be able to offer an interface that is helpful to the user -
even if it's not saying much more than
'HEY CHIEF, ARE YOU SURE YOU WANT YOUR NAME TO LOOK LIKE THIS?'


Take Care,


--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



--
No virus found in this incoming message.
Checked by AVG Free Edition.
Version: 7.5.446 / Virus Database: 268.18.14/727 - Release Date: 19/03/2007 11:49



--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php


[Index of Archives]     [PHP Home]     [Apache Users]     [PHP on Windows]     [Kernel Newbies]     [PHP Install]     [PHP Classes]     [Pear]     [Postgresql]     [Postgresql PHP]     [PHP on Windows]     [PHP Database Programming]     [PHP SOAP]

  Powered by Linux