Page MenuHomePhabricator

Interlanguage links in Turkish and Azerbaijani show a capital dotted İ
Open, Needs TriagePublic

Description

In Azerbaijani (az) and Turkish (tr) Wikipedias, names of languages that start with the letter ⟨I⟩, are shown with a dotted I, e.g. "İtaliano" instead of "Italiano".

This happens because these two languages capitalize ⟨i⟩ as ⟨İ⟩ and not as ⟨I⟩ as most other Latin-script languages do.

Names of languages in the interlanguage links list are capitalized using ucfirst in the Language class. It probably runs using the az or tr locales, but it must use the locale that is relevant for the language the name of which is being capitalized.

Another option is to remove capitalization entirely, and just use the name from Names.php as-is. It already includes capitalization for language names that need it, like English.

Event Timeline

Only four languages override ucfirst (actually they should probably be overriding uc and lc instead of ucfirst and lcfirst):

languages/classes/LanguageAz.php:       public function ucfirst( $string ) {
languages/classes/LanguageKaa.php:      public function ucfirst( $string ) {
languages/classes/LanguageKk.php:       public function ucfirst( $string ) {
languages/classes/LanguageTr.php:       public function ucfirst( $string ) {

And none of those languages' names begin with i/I. So we could just use a language-neutral (e.g. English) Language object to capitalise the first letter of the sidebar language names.

The problem is not with the names of these languages themselves, but with names of other languages, like "İtaliano".

What I'm saying is, because there are no languages whose names begin with a dotted i (as opposed to the standard Latin-alphabet i), we never need to transform the letter i to its uppercase dotted form in this context, hence for simplicity the English language class could be used for all languages.

This is likely a duplicate of T35643 which is to implement lc() and uc() methods for the Turkish language. I did write an implementation a while ago, but it broke at least the handling of magic words in the parser.