Can you post a simple repo with your issue? I am not sure if I get it.
Maybe the frontmatter of your lproj files defines the slug wrong?
A full view would probably help to debug this. I would search for the issue not in translation setup but in the frontmatter and linkformat setup.
I think the languageCode is obsolete if you have multiple languages
You need to set defaultContentLanguageInSubdir to true so ALL languages are in subfolders
your german was weight 2, en was weight 1, so german was the main language in the index.html, then en in the subfolder, higher weight, more importance
with this setup you could produce two different websites under their own urls. set the baseURL property below the language to the baseurl you need.
I am not sure if that solves the main issue yet, because apart from the two language folders there is no root index.html to send people where ever they have to go and it takes some subfolders until we have the first index.html inside of the language folders. But it might be a beginning?
You don’t have contentDir configured for either language; so there is no way for Hugo to know which bits of content is in de vs en.
Additionally none of the content is in the format foo.xx.md or similar, xx being the language code. This means the content has no language explicitly assigned; therefore the content is all assigned to the default en.
So, in short, technically, Hugo sees all of your content as en (as defined in defaultContentLanguage).
I need the language subdir not be /en but /Contents/Resources/en.lproj
I think this here is really your problem. It seems Hugo uses the language code (ie en, de) as directory name to publish each language to.
Each language gets its own subdir under public, named after its language code. So it looks like (at least from how I understand the docs + the experimenting I’ve done) the language code dir name is included, and is based on the defined language code in the config.