Bug 179244

Summary: AM/PM not capitalized in localizations
Product: [Frameworks and Libraries] kdelibs Reporter: Anthony M. <tonymoon>
Component: klocaleAssignee: John Layt <jlayt>
Severity: wishlist CC: jlayt
Priority: NOR    
Version: unspecified   
Target Milestone: ---   
Platform: Fedora RPMs   
OS: Linux   
Latest Commit: Version Fixed In:

Description Anthony M. 2008-12-31 23:22:25 UTC
Version:            (using KDE 4.1.3)
OS:                Linux
Installed from:    Fedora RPMs

It's quite annoying for the anal retentive, all the other DE's have the proper capitalization though.
Comment 1 John Layt 2010-09-16 00:41:59 UTC
I'm incorporating AM/PM handling into KLocale so they are consistently handled throughout KDE.  This will also allow user overrides.  As part of this the default will probably revert to the POSIX/CLDR default of uppercase.  Note however that some countries/languages actually have lowercase as their standard format so it's not entirely wrong.
Comment 2 John Layt 2010-10-22 23:41:17 UTC
SVN commit 1188668 by jlayt:

KLocale: Provide common localization of AM/PM text.

This change moves the localization of AM/PM into KLocale allowing for a single
consistent translation that can be overridden at system, country or user level.

Currently AM/PM text is translated in several different places which could lead
to inconsistencies.  The translation is also only done at language level,
meaning country level localization cannot be performed and users cannot modify
them to their personal preference.  Further, it will become a problem on the
Mac and Windows platforms when we switch to use the platform localization
settings as they do provide a common localization which users can override.

The change implements the Unicode CLDR Periods concept to achieve this (see
http://www.unicode.org/reports/tr35/tr35-15.html#DayPeriodRules) to cater for
cultures that split the day into more than 2 periods.

Note I have changed our default text from lowercase to uppercase AM/PM.  POSIX,
Unicode, Windows and Mac all default to uppercase, the POSIX %p format symbol
is defined as uppercase, with the more recent %P defined as lowercase.

The KDayPeriod class and accessor methods are private for now, but may be
exported later if needed.

The KCM will be modified to allow users to override the value in a later

See review http://svn.reviewboard.kde.org/r/5639/

BUG: 179244 

 M  +1 -0      CMakeLists.txt  
 M  +4 -21     date/kdatetimeformatter.cpp  
 A             date/kdayperiod.cpp   [License: LGPL (v2+)]
 A             date/kdayperiod_p.h   [License: LGPL (v2+)]
 M  +21 -0     localization/klocale.cpp  
 M  +59 -0     localization/klocale.h  
 M  +111 -70   localization/klocale_kde.cpp  
 M  +23 -0     localization/klocale_mac.cpp  
 M  +27 -0     localization/klocale_p.h  
 M  +18 -0     localization/klocale_win.cpp  
 M  +168 -5    tests/klocaletest.cpp  
 M  +1 -0      tests/klocaletest.h  
 M  +10 -10    tests/klocaletimeformattest.cpp  

WebSVN link: http://websvn.kde.org/?view=rev&revision=1188668