Jagerente / VRisingAcademySite

VRising Database
https://vrising-academy.info
0 stars 1 forks source link

Implement localisation table DB #79

Open Jagerente opened 2 years ago

Jagerente commented 2 years ago

САМЫЙ НИЗКИЙ ПРИОРИТЕТ! ДЕЛАТЬ В ПОСЛЕДНЮЮ ОЧЕРЕДЬ!

Сделать промежуточную таблицу для локализации со следующими полями:

locales

id | en | ru | ...
1 | 'Bone' | 'Кость' | ...

Хотя мне кажется лучше сделать под каждый из языков таблицу вроде:

locale_ru

id | en
1 | 'Bone'

locale_en

id | ru
1 | 'Кость'

Все остальные текстовые поля во всех таблицах, соответственно, переделать с типа String на Int id, связав с соответствующими таблицами. Надеюсь в db можно динамически связь id устанавливать.

Endpoint

Добавить параметр к общему запросу ?locale=ru/en/..., который будет обращаться к той или иной языковой таблице.

Bobrokrot commented 2 years ago
{
      "Guid": "c2104733-ba7f-474a-9873-a389792867f9",
      "Text": "Crystal Lance"
    },
    {
      "Guid": "67a15455-fbfe-43e2-8992-cbbf341c1cd0",
      "Text": "Launch a projectile dealing {damage} magic damage and inflicting Chill. Hitting a chilled enemy freezes it for {freezeduration}s. The Crystal Lance splinters into a nova of projectiles on impact, each splinter deal {secondarydamage} magic damage, chilling or freezing targets as well.\\n\\nEnemy vampires are frozen for {freezevampire}s."
    },
    {
      "Guid": "15feb009-e91e-439b-aeed-852d0b092f3e",
      "Text": "Frost Bat"
    },
    {
      "Guid": "64b59760-196b-4750-be30-41cc54ba35da",
      "Text": "Launch a projectile that explodes upon impact, dealing {damage} magic damage and inflicts Chill on surrounding enemies. Hitting a chilled enemy freezes it for {freezeduration}s.\\n\\nEnemy vampires are frozen for {freezevampire}s."
    }

Пример описания. У всех спеллов и у некоторых предметов есть переменные в {название_переменной}. Насколько я могу судить, какой-то общей системы нет, у каждого спелла могут быть свои переменные со своими именами. Соответсвенно при парсинге на разных языках надо заменить эти {имя_переменной} на число, актуальное на данный патч, а ещё лучше число, быть может с %.

{
      "Guid": "7d693d06-2e15-450f-b722-2295ad0e7525",
      "Text": "Used to uncover new technology at a <teal1>Research Desk</c>."
    } 

Также есть вот такие теги с цветами. С ними понятно, что делать. Аналогично \n надо менять на
. В начале json файла есть цвета, которые соответствуют им, но мы сейчас используем свои.

Bobrokrot commented 2 years ago

1) В тексте описаний могут встречаются запятые. Вероятно, их надо будет заменять на \,

2) Value могут быть числом, но могут быть числом с %.

3) Некоторые имена составные. Например, Ковёр - красный имеет отдельный guid на название ковра и отдельный guid на Красный.

Проще говоря, у каждого item'а есть:

@aelariane