Translation:Kateřina has been working in hotels for five years.
"Pracovala" would probably be translated as "was working" or "worked," while the Czech sentence uses "pracuje," which is present tense. (This is a clue for us.)
In most exercises, "pracuje" has been translated as "works" or "is working." But here, if we translate "pracuje" like that, the sentence becomes incorrect in English because of the length of time specified -- which started five years ago and continues today.
So we need to use "has been working" or "has worked," either of which covers the activity in both the past and the present. (Disclaimer: I am learning, too!)
An aside regarding the main thread here about present vs past: I've been observing that Czech often uses present where English would use some form of a past tense, so long as there are other clues in the sentence that the action is past.
However, my question is regarding pět let. We've seen na plus accusative indicate durations (e.g., na pět let). It looks like it's also acceptable to use just the accusative case as here? Is that a correct inference?
I would prefer “in hotels” here. When you are talking about a specific hotel or hotels, you can use either, but I’d personally prefer “at” (e.g., ”Kateřina works at that hotel”). They do have slightly different connotations (e.g., “We are at the hotel” vs. “We are in the hotel”, where “in” emphasizes being inside the building).
Of course, there could be regional differences or just different individual preferences, as well. This is not a case where one option is clearly wrong, as far as I know — just that “in” sounds quite a bit better to me here.