There are two things you're going to have to tackle. First, all your string definitions are going to have to be changed to place them in program space:
:
#define TEXT_FINISHED "fertig"
:
becomes
#include <avr/pgmspace.h
:
#define TEXT_FINISHED PSTR("fertig")
:
Then, when you go to send the string to the LCD, your're going to have to have a jacket function to lcd.print() that understands the PROGMEM string.
void lcd_print_P(const PROGMEM char *s)
{
uint8_t c;
while ((c = pgm_read_byte_near(s++)) != 0)
lcd.print(c);
}
And where you write to the LCD, thats going to use your spiffy new jacket function:
clear_second_line();
lcd.setCursor(0,1);
lcd.print(TEXT_PICTURETAKEN);
becomes
clear_second_line();
lcd.setCursor(0,1);
lcd_print_P(TEXT_PICTURETAKEN);
This is a rough approximation, but should give you a reasonable idea what needs doing.