I would try to explain whomever came up with the idea of localized URL slugs that it will be pretty difficult to maintain. As the site grows bigger and gets translated to more languages, you are likely to encounter words that are similar or even the same in different languages and then you'll have problems coming up with unique URLs, not to mention it will be difficult for the web master to find the translated page corresponding to some original. Because inevitably the webmaster will not understand all the languages.
So my recommendation is to use
/zh_CN/about-us etc. That way you:
- don't need any extra relations and
- you can quickly see which page corresponds to which
On the other hand if you insist on the localized URLs, all you really need to add is a column
enUrlSegment (properly indexed). Or numeric ID, which is a bit more efficient, but a bit more difficult to work with as you always need to select the English URL segment for any kind of administrative interface.
Even in that case I'd still recommend having
/de/uber-uns etc. to avoid any potential problems with same words in multiple languages.
Of course this is really the easy part, the support for multiple languages, or internationalization (i18n). The difficult part is keeping all the translations in sync, the localization (l10n). I can recommend splitting the pages up to paragraphs using
html2po from Translate Toolkit and using one of the many tools available for the po format for the translation. This way when the copywriter modifies the master version, you just run the tooling, the translators will see exactly the paragraphs that changed and you'll run the tooling again and get translated versions exactly corresponding to the master version.