Я хочу, чтобы в тот момент, когда пользователь регистрируется в моей системе, он выбирает язык (tbParam [язык]), и на основе языка, который он выбирает, доступные ему страны уже переведены
Когда пользователь регистрируется в моей системе, он может выбрать язык, который сохраняется в tbParam[язык], и с этим выбранным языком остальная часть веб-сайта будет переведена соответствующим образом.
Сначала я подумал о том, чтобы сделать это через ресурсы на моем С# с ключом и значением, например: Скриншот ресурсов слева — это имя на языке по умолчанию (португальском), а значение — это ключ, переведенный на английский, он отлично работает для одного языка, но я делаю вид, что делаю это для испанского, немецкого и английского. Потом я подумал обо всей работе по ее выполнению и подумал о втором пути.
Второй способ: использование базы данных
Я думал о создании некоторых таблиц, содержащих языки, страны и переводы. Какие все они связаны друг с другом, к тому времени, когда вы выбираете язык, базу данных для переводов по языковому ключу и обрабатываете результат запроса в моем коде С#.
Я хотел бы знать, какой способ лучше всего, если это база данных, то какой подход будет лучшим в отношении взаимосвязей таблиц.
Вы можете использовать файл ресурсов для каждого языка. Все, что вам нужно, это включить несколько файлов ресурсов в ваш проект:
например добавьте имена файлов ресурсов YourResourceFileName.resx. их, чтобы добавить файл ресурсов для определенного языка, добавьте файл ресурсов с именем YourResourceFileName.[CULTURECODE].resx Для испанского добавьте YourResourceFileName.es.resx Для немецкого языка добавьте YourResourceFileName.de.resx (Вы даже можете использовать файл ресурсов для определенной культуры, такой как en-US или en-GB)
Затем рассмотрите возможность редактирования файла .csproj напрямую и включите новые файлы в качестве зависимостей от предыдущего (вы можете щелкнуть правой кнопкой мыши проект, выбрать «Выгрузить проект», затем снова щелкнуть правой кнопкой мыши и выбрать «Редактировать .csproj» - когда закончите, перезагрузите проект через правый клик.
Вам нужно будет изменить:
<Compile Include = "YourResourceFileName.es.Designer.cs">
<DependentUpon>YourResourceFileName.es.resx</DependentUpon>
</Compile>
<Compile Include = "YourResourceFileName.es.resx">
к:
<Compile Include = "YourResourceFileName.es.resx">
<DependentUpon>YourResourceFileName.resx</DependentUpon>
</Compile>
Это поместит YourResourceFileName.es.resx и YourResourceFileName.es.Designer.cs в узел YourResourceFileName.resx.
Сделайте то же самое с немецким файлом ресурсов, измените:
<Compile Include = "YourResourceFileName.de.Designer.cs">
<DependentUpon>YourResourceFileName.de.resx</DependentUpon>
</Compile>
<Compile Include = "YourResourceFileName.de.resx">
к:
<Compile Include = "YourResourceFileName.de.resx">
<DependentUpon>YourResourceFileName.resx</DependentUpon>
</Compile>