Internationalize date picker.

This commit is contained in:
Neil Fraser
2015-02-04 22:57:45 -08:00
parent dfb315b011
commit cbb7204c27
7 changed files with 769 additions and 10 deletions

View File

@@ -27,7 +27,9 @@
goog.provide('Blockly.FieldColour');
goog.require('Blockly.Field');
goog.require('goog.dom');
goog.require('goog.ui.ColorPicker');
goog.require('goog.style');
/**

View File

@@ -2,7 +2,7 @@
* @license
* Visual Blocks Editor
*
* Copyright 2012 Google Inc.
* Copyright 2015 Google Inc.
* https://developers.google.com/blockly/
*
* Licensed under the Apache License, Version 2.0 (the "License");
@@ -27,7 +27,12 @@
goog.provide('Blockly.FieldDate');
goog.require('Blockly.Field');
goog.require('goog.date');
goog.require('goog.dom');
goog.require('goog.ui.DatePicker');
goog.require('goog.style');
goog.require('goog.i18n.DateTimeSymbols');
goog.require('goog.i18n.DateTimeSymbols_he');
/**
@@ -105,7 +110,10 @@ Blockly.FieldDate.prototype.setValue = function(date) {
Blockly.FieldDate.prototype.showEditor_ = function() {
Blockly.WidgetDiv.show(this, Blockly.FieldDate.widgetDispose_);
// Create the date picker using Closure.
Blockly.FieldDate.loadLanguage_();
var picker = new goog.ui.DatePicker();
picker.setAllowNone(false);
picker.setShowWeekNum(false);
// Position the picker to line up with the field.
// Record windowSize and scrollOffset before adding the picker.
@@ -168,3 +176,21 @@ Blockly.FieldDate.widgetDispose_ = function() {
goog.events.unlistenByKey(Blockly.FieldDate.changeEventKey_);
}
};
/**
* Load the best language pack by scanning the Blockly.Msg object for a
* language that maches the available languages in Closure.
* @private
*/
Blockly.FieldDate.loadLanguage_ = function() {
var reg = /^DateTimeSymbols_(.+)$/;
for (var prop in goog.i18n) {
var m = prop.match(reg);
if (m) {
var lang = m[1].toLowerCase().replace('_', '.'); // E.g. 'pt.br'
if (goog.getObjectByName(lang, Blockly.Msg)) {
goog.i18n.DateTimeSymbols = goog.i18n[prop];
}
}
}
};