"say" in different language?
You can use the following command in the Terminal to get a list of all the available voices:
say -v ?

On my system the output looks like this with the voice name followed by the language abbreviation (I removed the comments):

Agnes en_US
Albert    en_US
Alex  en_US
Alice it_IT
Alva  sv_SE
Amelie    fr_CA
Anna  de_DE
Bad   News
Bahh  en_US
Bells en_US
Boing en_US
Bruce en_US
Bubbles   en_US
Carmit    he_IL
Cellos    en_US
Damayanti id_ID
Daniel    en_GB
Deranged  en_US
Diego es_AR
Ellen nl_BE
Fiona en-scotland
Fred  en_US
Good  News
Hysterical    en_US
Ioana ro_RO
Joana pt_PT
Junior    en_US
Kanya th_TH
Karen en_AU
Kathy en_US
Kyoko ja_JP
Laura sk_SK
Lekha hi_IN
Luciana   pt_BR
Maged ar_SA
Mariska   hu_HU
Mei-Jia   zh_TW
Melina    el_GR
Milena    ru_RU
Moira en_IE
Monica    es_ES
Nora  nb_NO
Paulina   es_MX
Pipe  Organ
Princess  en_US
Ralph en_US
Samantha  en_US
Sara  da_DK
Satu  fi_FI
Sin-ji    zh_HK
Tessa en_ZA
Thomas    fr_FR
Ting-Ting zh_CN
Trinoids  en_US
Veena en_IN
Vicki en_US
Victoria  en_US
Whisper   en_US
Xander    nl_NL
Yelda tr_TR
Yuna  ko_KR
Zarvox    en_US
Zosia pl_PL
Zuzana    cs_CZ

This is an example on how to use say with a german voice, as suggested by scottishwildcat in the comments:
say -v Anna 'Guten Tag!'

In case you want to hear the example list, you can copy this for loop into your terminal, which will result in all installed voices speaking a text example:
say -v \? | while read LINE
 do
  SPEAKER=$(echo $LINE | egrep -o &quot;^[a-zA-Z\-]*[ ]?[A-Z][a-z]+&quot;)
  TEXT=$(echo $LINE | egrep -o &quot;#.*&quot; | tr &quot;#&quot; &quot; &quot;)
  echo $SPEAKER
  echo -ne &quot;This is voice $SPEAKER speaking the example text: \n&quot; $TEXT | say -v $SPEAKER
 done