Как отобразить переводы в базу данных - PullRequest
0 голосов
/ 30 мая 2019

Я хочу, чтобы в тот момент, когда пользователь зарегистрировался в моей системе, он выбирал язык (tbParam [language]) и в зависимости от того, на каком языке он выбирал. Доступные ему страны уже переведены

КогдаПользователь, зарегистрировавшийся в моей системе, может выбрать язык, который будет сохранен в tbParam [language] , и с этим выбранным языком остальные сайты будут переведены соответствующим образом.

Сначала яподумал о том, чтобы сделать это с помощью ресурсов на моем C # с ключом и значением, как показано ниже: Скриншот ресурсов слева это имя на языке по умолчанию (португальский), а значение - это ключ, переведенный на английский,это прекрасно работает для одного языка, но я делаю вид, что делаю это для испанского, немецкого и английского языков.Затем я подумал обо всей работе по ее выполнению и подумал о втором способе.

Второй способ: использование базы данных

Я думал о создании некоторых таблиц, содержащих языки, страныи переводы.Которые все они связаны друг с другом, к тому времени, когда вы выбираете язык, базу данных для переводов по ключу языка и обрабатывает результат запроса в моем коде c #.

Я хотел бызнать, какой путь лучше, если это база данных, то какой подход лучше всего подходит для таблиц.

1 Ответ

0 голосов
/ 30 мая 2019

Вы можете использовать файл ресурсов для каждого языка. Все, что вам нужно, это включить несколько файлов ресурсов в ваш проект:

например. добавьте имена файлов ресурсов YourResourceFileName.resx. чтобы добавить файл ресурсов для определенного языка, добавьте файл ресурсов с именем YourResourceFileName. [CULTURECODE] .resx Для испанского добавить YourResourceFileName.es.resx Для немецкого языка добавьте YourResourceFileName.de.resx (Вы даже можете использовать файл ресурсов для определенной культуры, например en-US или en-GB)

Затем рассмотрите возможность редактирования файла .csproj напрямую и добавьте новые файлы в качестве зависимостей предыдущего (вы можете щелкнуть правой кнопкой мыши проект, выбрать «Unload Project», затем снова щелкнуть правой кнопкой мыши и выбрать «Edit .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>

В итоге вы получите что-то вроде этого: YourResourceFile with several cultures

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...