Page MenuHomePhabricator

Turkish needs lc / uc methods
Open, LowPublic


Split from bug 31490.

Our Turkish language class lacks proper implementation of lc() and uc() for that language. It uses a dotted i and a dotless i, which mean that I and i are actually different letter in that language!

An implementation was deployed on wmf wiki for 1.18 but it was reverted by r99289 & r99290. The reason is that it broke magic words and related parser functions (i.e. {{#lcfirst}}) on the turkish wikis.

The MediaWiki code handling magic words normalize then to lower case using the content language (look for lc() calls in MagicWord class). Hence a magic word such as lcfirst is treated just like a turkish word and end up upper cased with a dotted i.

Two possibilities:

  • magic words could optionally be made an array referencing the language. Then we could use that language thus using the proper lc / uc implementations
  • for turkish language, forge magic words aliases having dotted or dot less i. i.e. 'ucfirst' (with dot) could have an alias UCFIRST (without dot). Both would then be valid.

Optionally, parser functions could use a parameter to change the language being used. This would let Turkish project to use the English lc / uc function, for example to upper case iPhone to IPhone (dotless i).

Version: 1.20.x
Severity: enhancement



Event Timeline

bzimport raised the priority of this task from to Low.Nov 22 2014, 12:06 AM
bzimport set Reference to bz33643.
bzimport added a subscriber: Unknown Object (MLST).
hashar created this task.Jan 10 2012, 8:23 PM
  • Bug 33299 has been marked as a duplicate of this bug. ***
  • Bug 32707 has been marked as a duplicate of this bug. ***
  • Bug 40012 has been marked as a duplicate of this bug. ***
hashar added a comment.Sep 7 2012, 1:34 PM

This is still an ongoing issue though I am not working in it myself.

vitomedia wrote:

The issue about the system messages at TR projects is quite annoying (see Bug 40012), so it'd be fantastic if it could be worked out.

wondering if this is a part of T32759 or not?