- Revision
- 125741
- Author
- [email protected]
- Date
- 2012-08-15 20:54:03 -0700 (Wed, 15 Aug 2012)
Log Message
Calendar Picker: Localize numbers in a calendar picker
https://bugs.webkit.org/show_bug.cgi?id=93704
Reviewed by Hajime Morita.
.:
* ManualTests/forms/calendar-picker.html:
Add a mock pagePopupController.localizeNumberString().
Source/WebCore:
Because Number.toLocaleString() of V8 returns no localized
numbers, we provide a localization function via
PagePopupController.
No new tests. We have no ways to change the locale in layout tests.
* Resources/pagepopups/calendarPicker.js:
(localizeNumber): Added. A wrapper for pagePopupController.localizeNumberString().
(formatJapaneseImperialEra): Use localizeNumber().
(formatYearMonth): ditto.
(DaysTable.prototype._renderMonth): ditto.
* page/PagePopupController.cpp:
(WebCore::PagePopupController::localizeNumberString):
Added. Just calls WebCore::convertToLocalizedNumber().
* page/PagePopupController.h:
(PagePopupController): Declare localizeNumberString().
* page/PagePopupController.idl: Add localizeNumberString().
Modified Paths
Diff
Modified: trunk/ChangeLog (125740 => 125741)
--- trunk/ChangeLog 2012-08-16 03:45:39 UTC (rev 125740)
+++ trunk/ChangeLog 2012-08-16 03:54:03 UTC (rev 125741)
@@ -1,3 +1,13 @@
+2012-08-15 Kent Tamura <[email protected]>
+
+ Calendar Picker: Localize numbers in a calendar picker
+ https://bugs.webkit.org/show_bug.cgi?id=93704
+
+ Reviewed by Hajime Morita.
+
+ * ManualTests/forms/calendar-picker.html:
+ Add a mock pagePopupController.localizeNumberString().
+
2012-08-15 Ryosuke Niwa <[email protected]>
Update manual tests and comments to refer to TestRunner instead of LayoutTestController
Modified: trunk/ManualTests/forms/calendar-picker.html (125740 => 125741)
--- trunk/ManualTests/forms/calendar-picker.html 2012-08-16 03:45:39 UTC (rev 125740)
+++ trunk/ManualTests/forms/calendar-picker.html 2012-08-16 03:54:03 UTC (rev 125741)
@@ -93,6 +93,11 @@
window.log('number=' + numValue + ', string="' + stringValue + '"');
if (numValue == 0)
window.document.getElementById('date').value = stringValue;
+ },
+ localizeNumberString: function(numString) {
+ if (typeof numString == "number")
+ return numString.toLocaleString();
+ return numString.toString();
}
}
Modified: trunk/Source/WebCore/ChangeLog (125740 => 125741)
--- trunk/Source/WebCore/ChangeLog 2012-08-16 03:45:39 UTC (rev 125740)
+++ trunk/Source/WebCore/ChangeLog 2012-08-16 03:54:03 UTC (rev 125741)
@@ -1,3 +1,28 @@
+2012-08-15 Kent Tamura <[email protected]>
+
+ Calendar Picker: Localize numbers in a calendar picker
+ https://bugs.webkit.org/show_bug.cgi?id=93704
+
+ Reviewed by Hajime Morita.
+
+ Because Number.toLocaleString() of V8 returns no localized
+ numbers, we provide a localization function via
+ PagePopupController.
+
+ No new tests. We have no ways to change the locale in layout tests.
+
+ * Resources/pagepopups/calendarPicker.js:
+ (localizeNumber): Added. A wrapper for pagePopupController.localizeNumberString().
+ (formatJapaneseImperialEra): Use localizeNumber().
+ (formatYearMonth): ditto.
+ (DaysTable.prototype._renderMonth): ditto.
+ * page/PagePopupController.cpp:
+ (WebCore::PagePopupController::localizeNumberString):
+ Added. Just calls WebCore::convertToLocalizedNumber().
+ * page/PagePopupController.h:
+ (PagePopupController): Declare localizeNumberString().
+ * page/PagePopupController.idl: Add localizeNumberString().
+
2012-08-15 MORITA Hajime <[email protected]>
Regression(121518) TextFieldDecorationElement formatting is broken.
Modified: trunk/Source/WebCore/Resources/pagepopups/calendarPicker.js (125740 => 125741)
--- trunk/Source/WebCore/Resources/pagepopups/calendarPicker.js 2012-08-16 03:45:39 UTC (rev 125740)
+++ trunk/Source/WebCore/Resources/pagepopups/calendarPicker.js 2012-08-16 03:54:03 UTC (rev 125741)
@@ -97,6 +97,14 @@
return result[1];
}
+/**
+ * @param {!number} number
+ * @return {!string}
+ */
+function localizeNumber(number) {
+ return window.pagePopupController.localizeNumberString(number);
+}
+
/*
* @const
* @type {number}
@@ -114,17 +122,17 @@
if (year > ImperialEraLimit)
return "";
if (year > 1989)
- return "(平成" + (year - 1988) + "年)";
+ return "(平成" + localizeNumber(year - 1988) + "年)";
if (year == 1989)
return "(平成元年)";
if (year >= 1927)
- return "(昭和" + (year - 1925) + "年)";
+ return "(昭和" + localizeNumber(year - 1925) + "年)";
if (year > 1912)
- return "(大正" + (year - 1911) + "年)";
+ return "(大正" + localizeNumber(year - 1911) + "年)";
if (year == 1912 && month >= 7)
return "(大正元年)";
if (year > 1868)
- return "(明治" + (year - 1867) + "年)";
+ return "(明治" + localizeNumber(year - 1867) + "年)";
if (year == 1868)
return "(明治元年)";
return "";
@@ -136,8 +144,7 @@
* @return {!string}
*/
function formatYearMonth(year, month) {
- // FIXME: Need localized number?
- var yearString = String(year);
+ var yearString = localizeNumber(year);
var monthString = global.params.monthLabels[month];
switch (getLanguage()) {
case "eu":
@@ -857,8 +864,7 @@
var iterMonth = dayIterator.getUTCMonth();
var time = dayIterator.getTime();
var element = this._days[w][d];
- // FIXME: Need localized number?
- element.innerText = String(dayIterator.getUTCDate());
+ element.innerText = localizeNumber(dayIterator.getUTCDate());
element.className = ClassNames.Day;
element.dataset.submitValue = serializeDate(iterYear, iterMonth, dayIterator.getUTCDate());
if (outOfRange(time))
Modified: trunk/Source/WebCore/page/PagePopupController.cpp (125740 => 125741)
--- trunk/Source/WebCore/page/PagePopupController.cpp 2012-08-16 03:45:39 UTC (rev 125740)
+++ trunk/Source/WebCore/page/PagePopupController.cpp 2012-08-16 03:54:03 UTC (rev 125741)
@@ -32,6 +32,7 @@
#include "PagePopupController.h"
#if ENABLE(PAGE_POPUP)
+#include "LocalizedNumber.h"
#include "PagePopupClient.h"
namespace WebCore {
@@ -52,5 +53,10 @@
m_popupClient->setValueAndClosePopup(numValue, stringValue);
}
+String PagePopupController::localizeNumberString(const String& numberString)
+{
+ return convertToLocalizedNumber(numberString);
}
+
+}
#endif
Modified: trunk/Source/WebCore/page/PagePopupController.h (125740 => 125741)
--- trunk/Source/WebCore/page/PagePopupController.h 2012-08-16 03:45:39 UTC (rev 125740)
+++ trunk/Source/WebCore/page/PagePopupController.h 2012-08-16 03:54:03 UTC (rev 125741)
@@ -44,6 +44,7 @@
public:
static PassRefPtr<PagePopupController> create(PagePopupClient*);
void setValueAndClosePopup(int numValue, const String& stringValue);
+ String localizeNumberString(const String&);
private:
explicit PagePopupController(PagePopupClient*);
Modified: trunk/Source/WebCore/page/PagePopupController.idl (125740 => 125741)
--- trunk/Source/WebCore/page/PagePopupController.idl 2012-08-16 03:45:39 UTC (rev 125740)
+++ trunk/Source/WebCore/page/PagePopupController.idl 2012-08-16 03:54:03 UTC (rev 125741)
@@ -33,5 +33,6 @@
Conditional=PAGE_POPUP
] PagePopupController {
void setValueAndClosePopup(in long numberValue, in DOMString stringValue);
+ DOMString localizeNumberString(in DOMString numberString);
};
}