Setting up relationships on a gaming schema with multiple locales
Your approach is the correct one if the typical workload consists of small transactions that access only a few rows at a time (OLTP).

The extra join won't hurt, because it will be a nested loop join. Databases are optimized for stuff like that.

Any small performance loss will be outweighed by the advantage of having foreign keys to guarantee data integrity.