Bug #6628
Default values in F3\FLOW3\Locale\Locale
Status: | Resolved | Start date: | ||
---|---|---|---|---|
Priority: | Should have | Due date: | ||
Assigned To: | Karol Gusak | % Done: | 100% |
|
Category: | I18n | |||
Target version: | - | |||
PHP Version: | Complexity: | |||
Has patch: | Affected Flow version: |
Description
Hi!
If you create an locale object (\F3\FLOW3\Locale\Locale) with only the language, the default values interferes.
For example: If you create locale objects out of the browser env. 'accept-language', the locale settings are like this: de,de-DE;q=0.8,en-EN;q=0.5,en-US; ...
You'll see the first item is only "de". After create a locale you get:>getLanguage() = 'de'>getRegion() = 'EN'
Perhaps needed here an locale mapping with defaults to avoid this. I've done this once but i'm not shure if the list is completed. The proprty "script" is missing. I think it good enough for this time ;)
$this->locale = array( 'af' => array('encode' => 'UTF-8', 'af_ZA'), 'am' => array('encode' => 'UTF-8', 'am_ET'), 'be' => array('encode' => 'UTF-8', 'be_BY'), 'bg' => array('encode' => 'UTF-8', 'bg_BG'), 'ca' => array('encode' => 'UTF-8', 'ca_ES'), 'cz' => array('encode' => 'UTF-8', 'cs_CZ'), 'da' => array('encode' => 'UTF-8', 'da_DK'), 'de' => array('encode' => 'UTF-8', 'de_DE', 'de_AT', 'de_CH', 'de_LU'), 'el' => array('encode' => 'UTF-8', 'el_GR'), 'en' => array('encode' => 'UTF-8', 'en_GB', 'en_US', 'en_AU', 'en_CA', 'en_IE', 'en_NZ'), 'es' => array('encode' => 'UTF-8', 'es_ES'), 'et' => array('encode' => 'UTF-8', 'et_EE'), 'eu' => array('encode' => 'UTF-8', 'eu_ES'), 'fi' => array('encode' => 'UTF-8', 'fi_FI'), 'fr' => array('encode' => 'UTF-8', 'fr_FR', 'fr_CH', 'fr_CA', 'fr_BE'), 'he' => array('encode' => 'UTF-8', 'he_IL'), 'hi' => array('encode' => 'UTF-8', 'hi_IN'), 'hr' => array('encode' => 'UTF-8', 'hr_HR'), 'hu' => array('encode' => 'UTF-8', 'hu_HU'), 'hy' => array('encode' => 'UTF-8', 'hy_AM'), 'is' => array('encode' => 'UTF-8', 'is_IS'), 'it' => array('encode' => 'UTF-8', 'it_IT', 'it_CH'), 'ja' => array('encode' => 'UTF-8', 'ja_JP'), 'kk' => array('encode' => 'UTF-8', 'kk_KZ'), 'ko' => array('encode' => 'UTF-8', 'ko_KR'), 'lt' => array('encode' => 'UTF-8', 'lt_LT'), 'nl' => array('encode' => 'UTF-8', 'nl_NL', 'nl_BE'), 'no' => array('encode' => 'UTF-8', 'no_NO'), 'pl' => array('encode' => 'UTF-8', 'pl_PL'), 'pt' => array('encode' => 'UTF-8', 'pt_PT', 'pt_BR'), 'ro' => array('encode' => 'UTF-8', 'ro_RO'), 'ru' => array('encode' => 'UTF-8', 'ru_RU'), 'sk' => array('encode' => 'UTF-8', 'sk_SK'), 'sl' => array('encode' => 'UTF-8', 'sl_SI'), 'sr' => array('encode' => 'UTF-8', 'sr_YU'), 'sv' => array('encode' => 'UTF-8', 'sv_SE'), 'tr' => array('encode' => 'UTF-8', 'tr_TR'), 'uk' => array('encode' => 'UTF-8', 'uk_UA'), 'zh' => array('encode' => 'UTF-8', 'zh_CN', 'zh_HK', 'zh_TW'), );
Related issues
History
#1 Updated by Karsten Dambekalns over 5 years ago
- Category set to I18n
#2 Updated by Karsten Dambekalns about 5 years ago
- Assigned To set to Karol Gusak
- Start date deleted (
2010-02-27)
#3 Updated by Karol Gusak about 5 years ago
- Status changed from New to Resolved
Default values in Locale class were removed in Revision r4308.
As for now, the idea is as follows:- Locale objects are light representations of particular locales. They do not validate themselves (so they can represent nonexistent locale)
- In order to obtain validated (correct) Locale object, specific API should be used (like
getDefaultLocale()
in \F3\FLOW3\Locale\Service ordetectLocaleFromHttpHeader()
in \F3\FLOW3\Locale\Detector) - More classes will be done to cover all use-cases when validated Locale object is needed. But self-validation of Locale objects would be bad as they are meant to be used very frequently (so I think they should be as light as possible).
#4 Updated by Karol Gusak about 5 years ago
- % Done changed from 0 to 100