KDE Core/Platform 11/Locale: Difference between revisions
Appearance
< KDE Core | Platform 11
Line 4: | Line 4: | ||
* http://community.kde.org/KDE_Core/ISO_Codes | * http://community.kde.org/KDE_Core/ISO_Codes | ||
* http://community.kde.org/KDE_Core/QtMerge/QDateTime | * http://community.kde.org/KDE_Core/QtMerge/QDateTime | ||
== KLocale | |||
Based on POSIX standard locales with many extensions. | |||
What's wrong with KLocale: | What's wrong with KLocale: | ||
Line 16: | Line 20: | ||
* Apps can customise locale settings | * Apps can customise locale settings | ||
* Many advanced settings and formats not in QLocale (yet) | * Many advanced settings and formats not in QLocale (yet) | ||
== QLocale == | |||
Based on Unicode CLDR standard locales. Obtaining a POSIX backend in Qt4.8? | |||
What's wrong with QLocale: | What's wrong with QLocale: | ||
* Not all settings are supported | * Not all KDE, CLDR or POSIX settings are supported | ||
* Apps and users unable to change settings | * Apps and users unable to change settings | ||
Line 25: | Line 33: | ||
* Low-level common class so good for Qt Addons | * Low-level common class so good for Qt Addons | ||
* Some settings not yet in KDE | * Some settings not yet in KDE | ||
* QSystemLocale settings container that can be sub-classed | |||
The Plan | == The Plan == | ||
* Add all KDE settings that | |||
* Add all KDE settings that are also in CLDR to QLocale | |||
* Use QLocale to replace KLocale's role as settings container | * Use QLocale to replace KLocale's role as settings container | ||
** Gives correct Windows, Mac, Gnome, Meego settings | ** Gives correct Windows, Mac, Gnome, Meego settings | ||
Line 37: | Line 47: | ||
* Apps use parser/formatter classes/api's to alter settings for one-off calls rather than changing the locale itself, or create a whole new locale object. | * Apps use parser/formatter classes/api's to alter settings for one-off calls rather than changing the locale itself, or create a whole new locale object. | ||
* Settings not available in QLocale are used by formatter/parser classes | * Settings not available in QLocale are used by formatter/parser classes | ||
* Remove our kde-runtime/l10n locale files | |||
== Big Questions == | |||
* Date/Time formats: Keep POSIX formats (need own formatter/parser that translates Unicode format) or switch to Unicode format (not SC, QDateTime may not support all our features) | * Date/Time formats: Keep POSIX formats (need own formatter/parser that translates Unicode format) or switch to Unicode format (not SC, QDateTime may not support all our features) | ||
* How will QLocale load custom CLDR? Fallback to custom POSIX but lacks some settings. | * How will QLocale load custom CLDR? Fallback to custom POSIX but lacks some settings. | ||
What's missing in QLocale | == What's missing in QLocale == | ||
* ISO codes for language/country, uses enums instead | * ISO codes for language/country, uses enums instead | ||
* Digit Sets | * Digit Sets | ||
Line 52: | Line 65: | ||
* ... | * ... | ||
What's extra in QLocale | == What's extra in QLocale == | ||
* More locale metadata | * More locale metadata | ||
* Script | * Script | ||
Line 58: | Line 72: | ||
* Lists | * Lists | ||
* More number symbols | * More number symbols | ||
* ... |
Revision as of 08:54, 6 June 2011
Locale
- http://community.kde.org/KDE_Core/KLocale
- http://community.kde.org/KDE_Core/ISO_Codes
- http://community.kde.org/KDE_Core/QtMerge/QDateTime
== KLocale
Based on POSIX standard locales with many extensions.
What's wrong with KLocale:
- Gtk/Qt apps running under kde-workspace don't use the KDE locale
- KDE apps running under other platforms/workspaces do not use host locale
- Class merges settings, formatters, parsers and translations in one giant blob
- Circular dependencies with KConfig and KCalendarSystem
- Unnecessary dependency for Qt-Addon libraries
What's great about KLocale:
- Users can customise workspace locale settings
- Apps can customise locale settings
- Many advanced settings and formats not in QLocale (yet)
QLocale
Based on Unicode CLDR standard locales. Obtaining a POSIX backend in Qt4.8?
What's wrong with QLocale:
- Not all KDE, CLDR or POSIX settings are supported
- Apps and users unable to change settings
What's good with QLocale:
- Uses host settings on all platforms
- Low-level common class so good for Qt Addons
- Some settings not yet in KDE
- QSystemLocale settings container that can be sub-classed
The Plan
- Add all KDE settings that are also in CLDR to QLocale
- Use QLocale to replace KLocale's role as settings container
- Gives correct Windows, Mac, Gnome, Meego settings
- KDE Workspace to set locale envvar on login if KDE locale different to system locale
- Gives correct locale Gtk/Qt apps
- KCM to load settings from QLocale, write out as both POSIX and CLDR format files only if user chooses different settings
- locale envvar then set to absolute path to users POSIX file so all Gtk apps get right settings
- QLocale loads CLDR(?) file so KDE/Qt apps get right settings
- Apps use parser/formatter classes/api's to alter settings for one-off calls rather than changing the locale itself, or create a whole new locale object.
- Settings not available in QLocale are used by formatter/parser classes
- Remove our kde-runtime/l10n locale files
Big Questions
- Date/Time formats: Keep POSIX formats (need own formatter/parser that translates Unicode format) or switch to Unicode format (not SC, QDateTime may not support all our features)
- How will QLocale load custom CLDR? Fallback to custom POSIX but lacks some settings.
What's missing in QLocale
- ISO codes for language/country, uses enums instead
- Digit Sets
- Binary Formats
- Page Size
- Decimal Places
- Separate monetary number symbols (decimal, sign, etc) but that's a Unicode CLDR thing
- Monetary formatting options internal only not exposed
- ...
What's extra in QLocale
- More locale metadata
- Script
- Quotes
- Lists
- More number symbols
- ...