]> git.ipfire.org Git - thirdparty/bugzilla.git/commitdiff
The calendar widget is not localizable.
authorMarc Schumann <wurblzap@gmail.com>
Fri, 18 May 2012 12:09:05 +0000 (14:09 +0200)
committerMarc Schumann <wurblzap@gmail.com>
Fri, 18 May 2012 12:09:05 +0000 (14:09 +0200)
r/a=LpSolit

https://bugzilla.mozilla.org/show_bug.cgi?id=581365

js/field.js
template/en/default/bug/field.html.tmpl
template/en/default/bug/summarize-time.html.tmpl
template/en/default/global/calendar.js.tmpl [new file with mode: 0644]
template/en/default/search/field.html.tmpl
template/en/default/search/form.html.tmpl

index 0824e2714d8de5db65d492505e12ac258fcd9643..4150f8ce4246f664a9680e7388eed6848db4c96a 100644 (file)
@@ -83,9 +83,17 @@ function _errorFor(field, name) {
     YAHOO.util.Dom.addClass(field, 'validation_error_field');
 }
 
-function createCalendar(name) {
+/* This function is never to be called directly, but only indirectly
+ * using template/en/default/global/calendar.js.tmpl, so that localization
+ * works. For the same reason, if you modify this function's parameter list,
+ * you need to modify the documentation in said template as well. */
+function createCalendar(name, start_weekday, months_long, weekdays_short) {
     var cal = new YAHOO.widget.Calendar('calendar_' + name, 
-                                        'con_calendar_' + name);
+                                        'con_calendar_' + name,
+                                        { START_WEEKDAY:  start_weekday,
+                                          MONTHS_LONG:    months_long,
+                                          WEEKDAYS_SHORT: weekdays_short
+                                        });
     YAHOO.bugzilla['calendar_' + name] = cal;
     var field = document.getElementById(name);
     cal.selectEvent.subscribe(setFieldFromCalendar, field, false);
index e6660256f3d87975d0348bfbe35dd999f1276fda..1f0ea175acebe50a5d4028f131bd60fd78e2e7d7 100644 (file)
@@ -56,8 +56,9 @@
       <div id="con_calendar_[% field.name FILTER html %]"></div>
 
       <script type="text/javascript">
-        createCalendar('[% field.name FILTER js %]')
-      </script>
+        <!--
+          [%+ PROCESS "global/calendar.js.tmpl" id = field.name %]
+        //--></script>
     [% CASE constants.FIELD_TYPE_BUG_ID %]
         <span id="[% field.name FILTER html %]_input_area">
           <input name="[% field.name FILTER html %]" id="[% field.name FILTER html %]"
index 3978a1c59e25f4edd01d6e862230f250b18b19ed..932a6e3f4500c55140f7cc4397ae5e8e93f1a935 100644 (file)
 
 </form>
 <script type="text/javascript">
-<!--
-  createCalendar('start_date');
-  createCalendar('end_date');
-  document.forms['summary'].start_date.focus();
-//--></script>
+  <!--
+    [%+ PROCESS "global/calendar.js.tmpl" id = 'start_date' %]
+    [% PROCESS "global/calendar.js.tmpl" id = 'end_date' %]
+    document.forms['summary'].start_date.focus();
+  //--></script>
 <hr noshade size=1>
 [% END %]
diff --git a/template/en/default/global/calendar.js.tmpl b/template/en/default/global/calendar.js.tmpl
new file mode 100644 (file)
index 0000000..26f3fa0
--- /dev/null
@@ -0,0 +1,33 @@
+[%# This Source Code Form is subject to the terms of the Mozilla Public
+  # License, v. 2.0. If a copy of the MPL was not distributed with this
+  # file, You can obtain one at http://mozilla.org/MPL/2.0/.
+  #
+  # This Source Code Form is "Incompatible With Secondary Licenses", as
+  # defined by the Mozilla Public License, v. 2.0.
+  #%]
+
+[%# INTERFACE:
+  # id: The id of the input field the calendar widget is to be assigned to.
+  #%]
+
+[%# This template exists because createCalendar accepts additional parameters
+  # which allow for localization. Please see the YUI documentation at
+  # http://developer.yahoo.com/yui/calendar/#internationalization for details.
+  # As an example, here's what you'd specify as additional parameters to
+  # localize for German calendars; replace the ellipsis ("...") by the original
+  # parameter (we cannot put it into the example because it'd break this
+  # template comment):
+  #
+  #   createCalendar(...
+  #                  /* The weekday the week begins on; 0 is Sunday,
+  #                   * 1 is Monday and so on: */
+  #                  1,
+  #                  /* Months, full names; first must be January: */
+  #                  ['Januar',    'Februar',   'März',      'April',
+  #                   'Mai',       'Juni',      'Juli',      'August',
+  #                   'September', 'Oktober',   'November',  'Dezember'],
+  #                  /* Weekdays, two-letter abbreviations; first must be
+  #                   * Sunday: */
+  #                  ['So', 'Mo', 'Di', 'Mi', 'Do', 'Fr', 'Sa']);
+  #%]
+createCalendar('[% id FILTER js %]');
index dd5e1fac7a2c5f2ef39c2b84942129d64abe238a..34a480f315822ceadb105809e42eaefc1d4c2374 100644 (file)
     
     <span id="con_calendar_[% field.name FILTER html %]to"></span>
     <script type="text/javascript">
-      createCalendar('[% field.name FILTER js %]');
-      createCalendar('[% field.name FILTER js %]to');
-    </script>
+      <!--
+        [%+ PROCESS "global/calendar.js.tmpl" id = field.name %]
+        [% PROCESS "global/calendar.js.tmpl" id = field.name _ 'to' %]
+      //--></script>
   [% CASE [ constants.FIELD_TYPE_SINGLE_SELECT, 
             constants.FIELD_TYPE_MULTI_SELECT ] %]
     <div id="container_[% field.name FILTER html %]" class="search_field_grid">      
index fc6f597cfb815424c59c51a434c03af4fd7ccfb9..48980b633c5a68f93dc165f330b7569227511198 100644 (file)
@@ -319,9 +319,10 @@ TUI_hide_default('information_query');
           <div id="con_calendar_chfieldto"></div>
     (YYYY-MM-DD or relative dates)
     <script type="text/javascript">
-      createCalendar('chfieldfrom');
-      createCalendar('chfieldto');
-    </script>
+      <!--
+        [%+ PROCESS "global/calendar.js.tmpl" id = 'chfieldfrom' %]
+        [% PROCESS "global/calendar.js.tmpl" id = 'chfieldto' %]
+      //--></script>
   </li>    
 </ul>