     locale: PropTypes.string
   
   getDefaultProps: ->
+    locale: do moment.locale
     format: defaultFormat
     defaultValue: (do moment).format defaultFormat
   
   getInitialState: ->
-    {value, defaultValue} = @props
+    {value, defaultValue, locale} = @props
+    @setLocale? locale if locale?
     value ?= defaultValue
     {value}
   
-  componentWillReceiveProps: ({value})->
+  componentWillReceiveProps: ({value, locale})->
     # We need update value in state only when it differs from existing value
     @setState {value} if value? and value isnt @state.value
-
+    # We need reconfigure locale when it changed
+    @setLocale? locale if locale? and locale isnt @props.locale
+  
   setValue: (value)->
     # Set new value and call onChange handler
     @setState {value}, @props.onChange if value? and value isnt @state.value

    @updateValue "time"
  
  render: ->
    {label, help, addonBefore, addonAfter, format, datePart, timePart, dateGlyph, timeGlyph, dropup, bsStyle} = @props
    {value, dateView} = @state
    datetime = moment value, format
    
    createElement Input, {label, help, addonBefore, addonAfter},
      createElement ButtonToolbar, null,

  pickMon: (mon)-> =>
    @modifyValue -> @month mon
  
  setLocale: (locale)->
    datetime = do moment
    datetime.locale locale
    @monthName = ((datetime.month month).format "MMMM" for month in [0...12])
  render: ->
    datetime = do @getMoment

