Локализация json C# Discord BotC#

Место общения программистов C#
Ответить
Anonymous
 Локализация json C# Discord Bot

Сообщение Anonymous »

Мне нужен пример локализации json для ботов Discord. Для С# есть способ сделать это с помощью файлов .resx, но мне больше подходит json (необязательно). Я не нашел для этого шаблона...
И я хочу еще одну вещь: глобальную локализацию названий команд, описаний и т. д., но я хочу использовать эту локализацию и для сообщений ботов.
Есть схема локализации json, но я не знаю, как ее использовать..
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"title": "Discord.NET Json Localization Schema",
"description": "Json schema to be used with the Default Json Localization Manager of D.NET",
"type": [
"object",
"string"
],
"$defs": {
"slash": {
"type": "object",
"properties": {
"name": {
"description": "Localized name of the Slash Command Group/Slash Command/Slash Command Parameter",
"type": "string",
"pattern": "^[\\w-]{1,32}$"
},
"description": {
"description": "Localized description of the Slash Command Group/Slash Command/Slash Command Parameter",
"type": "string",
"minLength": 1,
"maxLength": 100
}
},
"additionalProperties": {
"anyOf": [
{
"$ref": "#/$defs/slash"
},
{
"$ref": "#/$defs/choice"
}
]
},
"required": [
"name",
"description"
]
},
"context": {
"type": "object",
"properties": {
"name": {
"description": "Localized name of the Context Command",
"type": "string",
"minLength": 1,
"maxLength": 32
}
},
"required": [
"name"
],
"additionalProperties": false
},
"choice": {
"type": "object",
"properties": {
"name": {
"description": "Localized name of the Slash Command Parameter Choice",
"type": "string",
"minLength": 1,
"maxLength": 32
}
},
"required": [
"name"
],
"additionalProperties": false
}
},
"additionalProperties": {
"anyOf": [
{
"$ref": "#/$defs/slash"
},
{
"$ref": "#/$defs/context"
}
]
}
}

Пример использования .resx;
изображение файла CommandLocales.resx
конфигурация program.cs
private static readonly InteractionServiceConfig _interactionServiceConfig = new()
{
LocalizationManager = new ResxLocalizationManager("Pleasure.Resources.CommandLocales", Assembly.GetEntryAssembly(),
new CultureInfo("en-US"), new CultureInfo("tr"))
};


Подробнее здесь: https://stackoverflow.com/questions/782 ... calization
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»