Why do you think that the second option is the better one?
Because you don't need to hardcode the sort order. And you don't need to worry about new languages. And you don't need to worry about adjusting your queries (the order by case) when you change the name of a status.
It is J2EE web app.
Every translation is in its properties file. Status names are translated too and I am able to easily pick them from property file. Then sort them and build proper "ORDER BY CASE..."
I am using hibernate, so I have to decide which one of those tho ways is better for me.
But the first solution is worry-free too (I don't prefer it, it is still a tie )
Status names are translated in property files. I could add/remove/correct status in properties and it wouldn't break anything.
If I choose the second solution I will depend on those property files too, because on every deploy/start of web application I would need to delete all rows in status_names_table, read status names from property files and recreate them into the table (this assures that table is filled by up-to-date status names). Otherwise I would have to add/remove/correct names in that table manually (what is waste of time and a potential source of problems).
I guess I will try both ways and see which one brings less troubles.