Size: a a a

2020 June 19

AP

Alexander P in unity3d.ru
Артем Петров
Ну типа я хочу сделать локализацию игры. В json хранятся все слова.
Тоесть на каждом тексте  (Unity textComponent) у меня висит компонент с enum.

Я думаю как лучше это сделать поиск по слову чтобы каждому тексту присваивалось нужное слово из массива слов
Словарь с ключами enum
источник

AP

Alexander P in unity3d.ru
Зачем тебе int был нужен-то?
источник

FD

FinniVꑭ Deadman in unity3d.ru
Alexander P
Словарь с ключами enum
Словарь словарей 👍🏻
В первом лежит id строки локализации, во втором через enum языков тянется нужная строка
источник

AP

Alexander P in unity3d.ru
С другой стороны, я не вижу смысла хранить строки в словаре, если можно отдельно каждому компоненту выдать свой enum или строковый заменитель, а потом подписать через Наблюдателя к компоненту-локализатору
источник

АП

Артем Петров... in unity3d.ru
Alexander P
Словарь с ключами enum
Вот . А как мне вписать теперь все слова в Dictionary<enum, string>?

Ну я получил string массив всех слов из Json с помощью JsonUtility
источник

AP

Alexander P in unity3d.ru
FinniVꑭ Deadman
Словарь словарей 👍🏻
В первом лежит id строки локализации, во втором через enum языков тянется нужная строка
Зачем?
источник

DN

Dmitry Novikov in unity3d.ru
Артем Петров
Ну типа я хочу сделать локализацию игры. В json хранятся все слова.
Тоесть на каждом тексте  (Unity textComponent) у меня висит компонент с enum.

Я думаю как лучше это сделать поиск по слову чтобы каждому тексту присваивалось нужное слово из массива слов
Тебе нужен по dictionary<string, string> на каждый язык, ключ -  одинаковый во всех, значение перевод, напр "#мoney" "деньги"
источник

AP

Alexander P in unity3d.ru
Артем Петров
Вот . А как мне вписать теперь все слова в Dictionary<enum, string>?

Ну я получил string массив всех слов из Json с помощью JsonUtility
Ну, в JSON у тебя должен быть массив объектов ключ-значение
источник

T_

Trell _ in unity3d.ru
Артем Петров
Вот . А как мне вписать теперь все слова в Dictionary<enum, string>?

Ну я получил string массив всех слов из Json с помощью JsonUtility
Ну можна каждую локализацию держать в отдельном файле, просто подгрузить ту что надо и с ней работать
источник

DN

Dmitry Novikov in unity3d.ru
Dmitry Novikov
Тебе нужен по dictionary<string, string> на каждый язык, ключ -  одинаковый во всех, значение перевод, напр "#мoney" "деньги"
Сначала выбираешь от локали дикшенари, потом по ключу ввставляешь перевод
источник

АП

Артем Петров... in unity3d.ru
Trell _
Ну можна каждую локализацию держать в отдельном файле, просто подгрузить ту что надо и с ней работать
Я так и делаю . Тут вопрос именно с поиском
источник

AP

Alexander P in unity3d.ru
В данном случае лучше не делать enum, потому что придется выполнять лишнюю операцию по преобразованию строки в перечисление
источник

AP

Alexander P in unity3d.ru
Я бы остановился на строковом ключе
источник

DN

Dmitry Novikov in unity3d.ru
Enum не нужен
источник

AP

Alexander P in unity3d.ru
Артем Петров
Я так и делаю . Тут вопрос именно с поиском
Зачем что-то искать?
источник

FD

FinniVꑭ Deadman in unity3d.ru
Alexander P
Ну, в JSON у тебя должен быть массив объектов ключ-значение
Ну смотри, допустим на какой то кнопке у нас текст купить.
Для этого текста будет ключ #buy-button-txt по нему мы вытянули список всех локализаций для этой кнопки, по текущему языку приложения - стянули нужную нам строку
источник

T_

Trell _ in unity3d.ru
Артем Петров
Я так и делаю . Тут вопрос именно с поиском
ну так чём проблема, просто говоришь тут должна быть фраза с id 0 и берёш из массива ту фразу
источник

АП

Артем Петров... in unity3d.ru
Alexander P
Зачем что-то искать?
А что ещё делать ? Нужно же найти по ключу нужное слово
источник

FD

FinniVꑭ Deadman in unity3d.ru
FinniVꑭ Deadman
Ну смотри, допустим на какой то кнопке у нас текст купить.
Для этого текста будет ключ #buy-button-txt по нему мы вытянули список всех локализаций для этой кнопки, по текущему языку приложения - стянули нужную нам строку
Имхо
Самый простой вариант
источник

AP

Alexander P in unity3d.ru
Артем Петров
А что ещё делать ? Нужно же найти по ключу нужное слово
Используй ключ и ищи уже в своем инструменте работы с JSON
источник