def update_blurb(state, locale, key, value, overwrite = false)
      id = key
      key = "projects:#{api_key}:#{state}_blurbs:#{key}"
      
      current_value = redis.sismember("projects:#{api_key}:#{state}_blurb_keys", id) ? JSON.parse(redis.get(key)) : {}
      phrase = Phrase.new(self, current_value)
      
      # A new value is only written if no previous translation was present, or overwriting is enabled.
      if overwrite || phrase[locale].text.nil?
        phrase[locale] = value
        
        redis.sadd "projects:#{api_key}:#{state}_blurb_keys", id
        redis.sadd "projects:#{api_key}:locales", locale
        redis.set key, phrase.to_hash.to_json
        redis.set "projects:#{api_key}:#{state}_blurbs_etag", Projects.random_key
      end
    end
def update_blurb(state, locale, key, value, overwrite = false)
      id = key
      key = "projects:#{api_key}:#{state}_blurbs:#{key}"
      
      current_value = redis.sismember("projects:#{api_key}:#{state}_blurb_keys", id) ? JSON.parse(redis.get(key)) : {}
      phrase = Phrase.new(self, current_value)
      
      # A new value is only written if no previous translation was present, or overwriting is enabled.
      if overwrite || phrase[locale].text.nil?
        phrase[locale] = value
        
        redis.sadd "projects:#{api_key}:#{state}_blurb_keys", id
        redis.sadd "projects:#{api_key}:locales", locale
        redis.set key, phrase.to_hash.to_json
        redis.set "projects:#{api_key}:#{state}_blurbs_etag", Projects.random_key
      end
    end
Set the overwrite option to true to force overwriting existing translations.