Revision: 8423
Author: [email protected]
Date: Fri Jun 24 09:58:28 2011
Log: Change timeType and dateType in i18n date format API into
timeStyle and dateStyle to match the proposal.
I've kept old keys too, until ChromeOS user switches to time/dateStyle.
Fixed regex for matching styles in date and number format.
TEST=i18n.kaziprst.org/datetimeformat.html should show proper results for
both timeType and timeStyle.
Review URL: http://codereview.chromium.org/7244008
http://code.google.com/p/v8/source/detail?r=8423
Modified:
/branches/bleeding_edge/src/extensions/experimental/datetime-format.cc
/branches/bleeding_edge/src/extensions/experimental/i18n.js
=======================================
--- /branches/bleeding_edge/src/extensions/experimental/datetime-format.cc
Wed Jun 1 14:10:56 2011
+++ /branches/bleeding_edge/src/extensions/experimental/datetime-format.cc
Fri Jun 24 09:58:28 2011
@@ -293,34 +293,34 @@
}
}
- // Extract date type and time type from settings.
- icu::UnicodeString date_type;
- icu::DateFormat::EStyle date_style = icu::DateFormat::kNone;
- if (I18NUtils::ExtractStringSetting(settings, "dateType", &date_type)) {
- date_style = GetDateTimeStyle(date_type);
+ // Extract date style and time style from settings.
+ icu::UnicodeString date_style;
+ icu::DateFormat::EStyle icu_date_style = icu::DateFormat::kNone;
+ if (I18NUtils::ExtractStringSetting(settings, "dateStyle", &date_style))
{
+ icu_date_style = GetDateTimeStyle(date_style);
}
- icu::UnicodeString time_type;
- icu::DateFormat::EStyle time_style = icu::DateFormat::kNone;
- if (I18NUtils::ExtractStringSetting(settings, "timeType", &time_type)) {
- time_style = GetDateTimeStyle(time_type);
+ icu::UnicodeString time_style;
+ icu::DateFormat::EStyle icu_time_style = icu::DateFormat::kNone;
+ if (I18NUtils::ExtractStringSetting(settings, "timeStyle", &time_style))
{
+ icu_time_style = GetDateTimeStyle(time_style);
}
- // Try all combinations of date/time types.
- if (date_style == icu::DateFormat::kNone &&
- time_style == icu::DateFormat::kNone) {
+ // Try all combinations of date/time styles.
+ if (icu_date_style == icu::DateFormat::kNone &&
+ icu_time_style == icu::DateFormat::kNone) {
// Return default short date, short
return icu::DateFormat::createDateTimeInstance(
icu::DateFormat::kShort, icu::DateFormat::kShort, icu_locale);
- } else if (date_style != icu::DateFormat::kNone &&
- time_style != icu::DateFormat::kNone) {
+ } else if (icu_date_style != icu::DateFormat::kNone &&
+ icu_time_style != icu::DateFormat::kNone) {
return icu::DateFormat::createDateTimeInstance(
- date_style, time_style, icu_locale);
- } else if (date_style != icu::DateFormat::kNone) {
- return icu::DateFormat::createDateInstance(date_style, icu_locale);
+ icu_date_style, icu_time_style, icu_locale);
+ } else if (icu_date_style != icu::DateFormat::kNone) {
+ return icu::DateFormat::createDateInstance(icu_date_style, icu_locale);
} else {
- // time_style != icu::DateFormat::kNone
- return icu::DateFormat::createTimeInstance(time_style, icu_locale);
+ // icu_time_style != icu::DateFormat::kNone
+ return icu::DateFormat::createTimeInstance(icu_time_style, icu_locale);
}
}
=======================================
--- /branches/bleeding_edge/src/extensions/experimental/i18n.js Wed Jun 22
11:55:06 2011
+++ /branches/bleeding_edge/src/extensions/experimental/i18n.js Fri Jun 24
09:58:28 2011
@@ -145,9 +145,8 @@
* @param {Object} locale - locale object to pass to formatter.
* @param {Object} settings - formatting flags:
* - skeleton
- * - dateType
- * - timeType
- * - calendar
+ * - dateStyle
+ * - timeStyle
* @private
* @constructor
*/
@@ -161,25 +160,37 @@
cleanSettings['skeleton'] = settings['skeleton'];
} else {
cleanSettings = {};
- if (settings.hasOwnProperty('dateType')) {
+ if (settings.hasOwnProperty('dateStyle')) {
+ var ds = settings['dateStyle'];
+ if (!/^(short|medium|long|full)$/.test(ds)) ds = 'short';
+ cleanSettings['dateStyle'] = ds;
+ } else if (settings.hasOwnProperty('dateType')) {
+ // Obsolete. New spec requires dateStyle, but we'll keep this around
+ // for current users.
+ // TODO(cira): Remove when all internal users switch to dateStyle.
var dt = settings['dateType'];
- if (!/^short|medium|long|full$/.test(dt)) dt = 'short';
- cleanSettings['dateType'] = dt;
+ if (!/^(short|medium|long|full)$/.test(dt)) dt = 'short';
+ cleanSettings['dateStyle'] = dt;
}
- if (settings.hasOwnProperty('timeType')) {
+ if (settings.hasOwnProperty('timeStyle')) {
+ var ts = settings['timeStyle'];
+ if (!/^(short|medium|long|full)$/.test(ts)) ts = 'short';
+ cleanSettings['timeStyle'] = ts;
+ } else if (settings.hasOwnProperty('timeType')) {
+ // TODO(cira): Remove when all internal users switch to timeStyle.
var tt = settings['timeType'];
- if (!/^short|medium|long|full$/.test(tt)) tt = 'short';
- cleanSettings['timeType'] = tt;
+ if (!/^(short|medium|long|full)$/.test(tt)) tt = 'short';
+ cleanSettings['timeStyle'] = tt;
}
}
// Default is to show short date and time.
if (!cleanSettings.hasOwnProperty('skeleton') &&
- !cleanSettings.hasOwnProperty('dateType') &&
- !cleanSettings.hasOwnProperty('timeType')) {
- cleanSettings = {'dateType': 'short',
- 'timeType': 'short'};
+ !cleanSettings.hasOwnProperty('dateStyle') &&
+ !cleanSettings.hasOwnProperty('timeStyle')) {
+ cleanSettings = {'dateStyle': 'short',
+ 'timeStyle': 'short'};
}
locale = v8Locale.__createLocaleOrDefault(locale);
@@ -249,7 +260,7 @@
cleanSettings['pattern'] = settings['pattern'];
} else if (settings.hasOwnProperty('style')) {
var style = settings['style'];
- if (!/^decimal|currency|percent|scientific$/.test(style)) {
+ if (!/^(decimal|currency|percent|scientific)$/.test(style)) {
style = 'decimal';
}
cleanSettings['style'] = style;
--
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev