   defaultLocale: 'zh-CN',
   directory: join(__dirname, 'i18n'),
   updateFiles: false,
-  indent: "\t",
   extension: '.json'
 window.i18n.secretary.setLocale(window.language)
 __ = window.i18n.secretary.__.bind(window.i18n.secretary)


    ###*
     * Update notification config using audio of ship
     * @param {number} ship id in window.$ships
     ###
    updateNotifyConfig: (ship_id) ->
      return unless ship_id > 0
      server = SERVERS[(ship_id + SERVER_NONCE) % SERVERS.length]
      filename = @state.shipgraph[ship_id]?.api_filename
      return unless server
      return unless filename
      audio_constr = "http://#{server}/kcs/sound/kc#{filename}/5.mp3"
      audio_expedi = "http://#{server}/kcs/sound/kc#{filename}/7.mp3"
      audio_repair = "http://#{server}/kcs/sound/kc#{filename}/6.mp3"
      audio_morale = "http://#{server}/kcs/sound/kc#{filename}/27.mp3"
      config.set('poi.notify.construction.audio', audio_constr)
      config.set('poi.notify.expedition.audio', audio_expedi)
      config.set('poi.notify.repair.audio', audio_repair)
      config.set('poi.notify.morale.audio', audio_morale)

    handleShipChange: (e) ->
      ship_id = parseInt(e.target.value)

      # Reset server nonce
      SERVER_NONCE = Math.floor(Math.random() * SERVERS.length)
      # Update notify config
      if @state.notifySecretary == 0
        @updateNotifyConfig(@state.fleetSecretary)
      else
        @updateNotifyConfig(@state.notifySecretary)

    render: ->
      <div>
