Translation:Kateřina has been working in hotels for five years.
The English is much more likely to be said using the present perfect ('has worked' or 'has been working') because it is about an activity that began in the past (5 years ago) and has continued into the present.
"Katrina works in hotels (for) five years" would normaly be used only if narrating the past in the historical present tense. For example, "Katerina leaves her parents' home, works in hotels for 5 years, then emigrates to England."
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.
If it's 'she has worked' then it should be 'pracovala' and not pracuje. Pracovala is female past. Pracuje is present. The current acceptance of the answer is incorrect I think.
"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?
"has been working" is the present (perfect) tense
Normally you use just "pět let". "Na pět let" is specifically for the planned length of some action.