I consider myself "fluent" in a language when I can sit down and write a program without looking at a reference to do so. That I know the ins and outs of a language and can use some language specific features well.
I consider myself "proficient" in a language if I can sit down and read code, and write some basic code without a reference.
I consider myself "familiar" with a language if I can read the code and understand it and have written a few simple programs using it, but haven't really done any heavy lifting with it and still rely heavily on a reference to code in it.
That's me though. This is how I portray myself on my resume and in interviews. I've interviewed some people who greatly over state their skills in a language, saying the are proficient when they couldn't do a "Hello World" app without looking up how.