Title: [125741] trunk
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);
     };
 }
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to