C# Значение ключа по умолчанию в качестве ключа - PullRequest
1 голос
/ 07 апреля 2020

:)

Я ищу то, что видел в проекте несколько месяцев за go. Я не знаю, что они используют, и я очень заинтересован, чтобы знать, как это работает, но я не знаю, как искать это ... и я ищу это в течение 6 часов сейчас ... Можете ли вы помочь мне улучшить мои знания? : D

База данных:

|id |key             |en          |fr           |
|1  |TheNameOfTheKey |Hello       |Bonjour      |
|2  |TheNameOfTheKey2|Hello2      |Bonjour2     |

Код:

String s1 = Singleton.Instance.Translation.TheNameOfTheKey
String s2 = Singleton.Instance.Translation.TheNameOfTheKey2

// this key don't exist in Db but return his name instead
String s3 = Singleton.Instance.Translation.AnotherKeyNotInDb 

// Results
// s1 = "Hello"
// s2 = "Hello2"
// s3 = "AnotherKeyNotInDb"

Мои вопросы:

  1. Какой тип Перевод ? Если у вас есть документация, я посмотрю!

  2. Что-то похожее на то, что я ищу: ExpandoObject

Заранее спасибо!

Ответы [ 2 ]

0 голосов
/ 07 апреля 2020

Если вы хотите сохранить в базе данных, плохая идея хранить языки в виде столбцов. Я бы оставил их в виде строк:

|Id|Key             |Language|Translation|
|1 |TheNameOfTheKey |en      |Hello      |
|2 |TheNameOfTheKey |fr      |Bonjour    |

Индексный ключ и столбец языка, и у вас будут очень быстрые результаты запроса. Это сила баз данных. :)

0 голосов
/ 07 апреля 2020

Вы можете использовать Resource file, он работает как словарь и зависит от вашей локализации, загружает соответствующий файл ресурсов

Публикация strings это strings.resx файл

Thread.CurrentThread.CurrentUICulture = CultureInfo.GetCultureInfo("fr-FR");
Console.WriteLine(Properties.strings.Hello);

Подробнее детали в Как использовать локализацию в C#

https://docs.microsoft.com/en-us/aspnet/core/fundamentals/localization?view=aspnetcore-3.1

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