Настройка локализации

Поделиться
HTML-код
  • Опубликовано: 12 ноя 2024

Комментарии • 78

  • @flugenkehhannen
    @flugenkehhannen Год назад

    Было бы круто если бы этот же разработчик рассказал о лидербордах

    • @yagamesdev
      @yagamesdev  Год назад

      Здравствуйте. О настройке лидерборда и сохранении результатов рассказываем в другом видеоролике курса по ссылке: clck.ru/35y5mt

  • @МихаилТарасов-е1я
    @МихаилТарасов-е1я Год назад +4

    У Unity уже некоторое время есть свой пакет для локализации, почему бы его не использовать? Понятно, что он сложнее, но и функционал у него богаче.

    • @treyler
      @treyler 9 месяцев назад

      ДЛя Яндекс игр это нужно

  • @АлексейБочкарев-ш2й
    @АлексейБочкарев-ш2й 5 месяцев назад +2

    Прикольно, но (особенно) в яндекс браузере работает с ошибками. При обновлении страницы не создается ysdk и перевод не работает.

    • @yagamesdev
      @yagamesdev  5 месяцев назад

      Здравствуйте. Чтобы детальнее разобраться в вопросе, пожалуйста, пришлите ссылку на игру в личные сообщения t.me/YandexGamesSupport - подскажем.

  • @ИванМартыненко-х8к
    @ИванМартыненко-х8к 5 месяцев назад +1

    большое спасибо за видео.
    Но тут по моему одни и те же грабли раз за разом.
    пишет ошибку что не определен ysdk для функции GetLang.
    То есть уже третье видео. где вызов функции идет до инициализации ysdk как я понимаю.
    Может есть смысл как то переделать ? добавить нужную информацию
    А кто каждый раз человек делает и влетает в одну и ту же ошибку.
    За видео все равно спасибо:)

    • @yagamesdev
      @yagamesdev  5 месяцев назад +1

      Здравствуйте. Дело в том, что мы изменили ожидания по инициализации SDK. Видео было выпущено до этого момента. Сейчас нужно контролировать порядок вызовов. Подробнее в Руководстве разработчика по ссылке: clck.ru/3B7D6P.

    • @ИванМартыненко-х8к
      @ИванМартыненко-х8к 5 месяцев назад +2

      @@yagamesdev спасибо.
      а может какие то пометки в видео сделать? или с этим долго заморачиваться ?

    • @taric4037
      @taric4037 4 месяца назад +1

      ​@@yagamesdevДобрый день. Нельзя ли помочь с примером как убрать эту ошибку? У меня самого не получается этого сделать, учитывая информацию по ссылке.

  • @poshlhumorrr
    @poshlhumorrr Год назад +1

    Здравствуйте, подскажите пожалуста, информация с данного ролика еще актуальна? Сделал все индентично как в ролике только добавил еще турецкий как было сказано через else if , но смена языка не работает, не могу найти в чем может быть прицина

    • @yagamesdev
      @yagamesdev  Год назад

      Здравствуйте. Для автоматического определения языка пользователя в игре рекомендуем использовать структуру i18n и параметр lang. В таком случае локализация игры будет выбираться в зависимости от домена, на котором она была запущена. Подробнее по ссылке: clck.ru/ZaEJh

  • @apolon17
    @apolon17 Год назад

    Здравствуйте, делал игру по вашим урокам, никаких ошибок не было, но когда начал билдить итоговую версию, юнити выдает ошибки и не делает билд, вот одна из ошибок:UnityEditor.BuildPlayerWindow+BuildMethodException: 4 errors
    at UnityEditor.BuildPlayerWindow+DefaultBuildMethods.BuildPlayer (UnityEditor.BuildPlayerOptions options) [0x002cc] in :0
    at UnityEditor.BuildPlayerWindow.CallBuildMethods (System.Boolean askForBuildLocation, UnityEditor.BuildOptions defaultBuildOptions) [0x00080] in :0
    UnityEngine.GUIUtility:ProcessEvent (int,intptr,bool&) в чем может быть проблема?

  • @taric4037
    @taric4037 4 месяца назад +1

    Кто-нибудь решил эту проблему с Get lang и инициализации sdk? Напишите нормальный, рабочий пример. Спасибо

    • @yagamesdev
      @yagamesdev  4 месяца назад

      Здравствуйте. Если появляется уведомление «ysdk is not defined at _GetLang», это означает, что инициализация SDK происходит после запроса языка. В этом случае необходимо гарантировать корректный порядок вызовов. Для этого рекомендуем прописывать проверку на инициализацию SDK перед запросом языка. Подробнее в Справке: clck.ru/344GKf.

  • @evgenii.zaikin
    @evgenii.zaikin 25 дней назад

    Привет! Сделайте пожалуйста по Defold! 🙏

    • @yagamesdev
      @yagamesdev  25 дней назад

      Здравствуйте. Подумаем над тем, чтобы сделать отдельные видео по Defold. Спасибо за идею 🙂

  • @littlechanels
    @littlechanels Год назад +1

    А как сделать это, если слова записанны в массив?Магический шар с рандомной генерацией слов из массива

    • @yagamesdev
      @yagamesdev  Год назад

      Здравствуйте. В этом случае нужно создать массив слов для каждой локализации на соответствующем языке и выбирать массив в зависимости от языка интерфейса пользователя. Определять его можно через SDK Яндекс Игр, структура i18n. Подробнее в Справке: clck.ru/34sPP5
      Далее нужно переключать локализацию с помощью конструкции if - else или switch - case.

  • @Vo4aDo
    @Vo4aDo Год назад

    @eccentricgames Благодарю за урок! Подскажи пожалуйста, у меня выпадает ошибка(в браузере) - cannot read properties of undefined (reading 'lang')
    На что обратить внимание?

    • @yagamesdev
      @yagamesdev  Год назад

      Здравствуйте. Рекомендуем проверить реализацию SDK Яндекс Игр в коде. Инструкции собраны в Руководстве разработчика: clck.ru/357hQz

  • @mrgates231
    @mrgates231 Год назад +2

    У меня ошибка "ReferenceError: ysdk is not defined" при обращении к GetLang, хотя сдк подключена и инитится раньше вызова.

    • @litrendshop1117
      @litrendshop1117 Год назад +1

      У меня тоже самое, как решили проблему?

    • @LEVON007100
      @LEVON007100 Год назад

      @@litrendshop1117 Если при создания билда выскакивает то проверь jslib,с синтаксисом могут быть проблемы(запитые везде поставил?) если просто в Юнити то забей, плей мод в юнити не передает тебе информацию о языке, так что все верно.

    • @litrendshop1117
      @litrendshop1117 Год назад

      @@LEVON007100 Спасибо за ответ, да я потом разобрался, была ошибка в коде jslib, нижнее подчеркивание не поставил)

    • @valengame3726
      @valengame3726 Год назад +1

      @@litrendshop1117 До сих пор такая ошибка, то без нее грузится, то опять появляется, что именно ты правил? Я брал код с видео

    • @Александр-я6б2ф
      @Александр-я6б2ф Год назад +1

      У меня ровно эта жа проблема. Как я понимаю запрос языка бывает происходит до инициализации в index.html. как исправить?

  • @Александр-я6б2ф
    @Александр-я6б2ф Год назад +1

    Как победить нюанс, что инициализация SDK в Index.html может произвойти уже после запроса языка?

    • @yagamesdev
      @yagamesdev  Год назад

      Александр, здравствуйте. Чтобы гарантировать корректный порядок вызовов, рекомендуем прописывать проверку на инициализацию SDK перед запросом языка. Подробнее в Справке: clck.ru/344GKf

    • @yhnzxc
      @yhnzxc Год назад +1

      @@yagamesdev А как это применить к данному коду из этого видео ? отдельное видео не нужно. Просто напишите как и что куда дописать нужно для получения языка. Там в примере только про рекламу ( к паре слов добавить еще пару слов и работает) , а в этом видео 4 строчки кода , совсем не понятно как это сделать

    • @vladimirkolomiychenko5087
      @vladimirkolomiychenko5087 Год назад

      Привет,удалось решить проблему?@@yhnzxc

  • @WicortVideoGames
    @WicortVideoGames Год назад

    Подскажите, кто сталкивался.
    Загрузил приложение на Яндекс.игры, появилась ссылка на черновик, но при переходе по ссылке ошибка 404, Такой игры или страницы нет на сервисе.
    Прошло уже 5 дней, но ошибка не пропадает.

    • @yagamesdev
      @yagamesdev  Год назад

      Здравствуйте. Выберите в черновике «Поддерживаемые платформы» и в поле «Игра переведена на...» установите параметр «Да». Тогда игра должна корректно открыться в каталоге. Если не поможет, пришлите, пожалуйста, ссылку на черновик нам через форму обратной связи, всё проверим: clck.ru/332j6S

    • @sinrad1596
      @sinrad1596 Год назад

      была такая фигня, оказалось нужно просто почистить кэш браузера

  • @Artemiyzs
    @Artemiyzs Год назад

    Спасибо за урок. Очень подробно и информативно. Только постоянно ошибка ReferenceError: ysdk is not defined. А если ставить задержку как в документации описано, то сцена загружается быстрее, чем яндекс сдк и текст пустой постоянно. Есть ли другой способ, например загрузить яндекс сдк, до основной загрузки страницы?

    • @yagamesdev
      @yagamesdev  Год назад +2

      Здравствуйте. Рады, что наши уроки помогают вам в создании игр. Если SDK Яндекс Игр инициализируется позже проекта, то можно использовать Try Catch, чтобы запуск прошёл корректно. Делимся примером:
      GetLang: function () {
      try {
      var lang = ysdk.environment.i18n.lang;
      var bufferSize = lengthBytesUTF8(lang) + 1;
      var buffer = _malloc(bufferSize);
      stringToUTF8(lang, buffer, bufferSize);
      return buffer;
      } catch(err){
      // взять язык с браузера
      return navigator.language;
      }
      },

    • @Евгений-ы2л9т
      @Евгений-ы2л9т 9 месяцев назад

      @@yagamesdev ваш метод работает, но криво, всегда когда не получается язык подгрузить загружается английский, в итоге почти всегда на всех браузерах английская версия игры((( Раздражает, почему на оф канале яндекса выходят такие уроки полные багов, если делаешь работу делай её хорошо либо вообще не делай, почти в каждом уроке критические баги, жесть....

    • @mhc180
      @mhc180 8 месяцев назад

      да. английский подгружает по-умолчанию. о прохождении модерации можно забыть)@@Евгений-ы2л9т

  • @kamidereneko336
    @kamidereneko336 6 месяцев назад

    А в игре обязательно должна быть кнопка для смены языка? Или чтобы пройти модерацию, достаточно чтобы язык автоматически определялся?

    • @yagamesdev
      @yagamesdev  6 месяцев назад

      Здравствуйте. Добавлять переключение языка по кнопке необязательно. Рекомендуем определять локализацию пользователя автоматически с помощью i18n.lang. Подробнее в Руководстве разработчика: clck.ru/3Aex64.

    • @electrocat9493
      @electrocat9493 4 месяца назад

      @@yagamesdev Здравствуйте.
      А если будет только кнопка смены языка? Точнее дропдаун.

  • @pixsar5696
    @pixsar5696 13 дней назад

    Привет! У меня этот код вызывает зависание, висит на уровни Логотипа загрузки Юнити, и дальше 90% не загружается

    • @yagamesdev
      @yagamesdev  12 дней назад +1

      Здравствуйте. Чтобы во всём разобраться, понадобятся подробности. Пожалуйста, пришлите нам ссылку на игру, а также скриншоты или видео сценария в личные сообщения Telegram: t.me/YandexGamesSupport. Будем разбираться.

    • @pixsar5696
      @pixsar5696 12 дней назад

      @@yagamesdev Большое Спасибо! Я делал как в этом примере, но как я понял он уже не актуален, все намного проще
      Может кому то пригодится в jslib нужно написать так, (myGameInstance.SendMessage("Languege", "LangChange", lang); это обращение к методу в C# которому и надо передать lang))
      GetLang: function () {
      var lang = ysdk.environment.i18n.lang;
      myGameInstance.SendMessage("Languege", "LangChange", lang);
      },
      и в index.html нужно еще myGameInstance.SendMessage подключить,
      var myGameInstance = null;// вот это
      var script = document.createElement("script");
      script.src = loaderUrl;
      script.onload = () => {
      createUnityInstance(canvas, config, (progress) => {
      document.querySelector("#unity-progress-bar-full").style.width = 100 * progress + "%";
      }).then((unityInstance) => {
      myGameInstance = unityInstance;// и еще вот это
      document.querySelector("#unity-loading-bar").style.display = "none";
      // document.querySelector("#unity-fullscreen-button").onclick = () => {
      // unityInstance.SetFullscreen(1);
      // };
      }).catch((message) => {
      alert(message);
      });
      };

  • @ITEgor
    @ITEgor Год назад +1

    Здравствуйте, а где найти файл my.jslib?

    • @yagamesdev
      @yagamesdev  Год назад

      Здравствуйте. Создать файл .jslib можно в проекте Unity. Для этого в окне «Project» добавьте папку с названием Plugins. Внутри неё нужно создать файл в формате .jslib. Вносить в него изменения можно в любом текстовом редакторе.
      Также про создание файла .jslib рассказываем в другом видео курса: clck.ru/33gH9Q

  • @alekseyn7866
    @alekseyn7866 11 месяцев назад

    Добрый день. Если в браузере ставить язык русский, то игра хорошо работает, а если браузер перевести на английский, то игра запускается с ошибками. Почему такое может быть?

    • @yagamesdev
      @yagamesdev  11 месяцев назад

      Здравствуйте. Уточните, пожалуйста, какие уведомления отображаются в проекте или консоли браузера?

    • @alekseyn7866
      @alekseyn7866 11 месяцев назад

      Спасибо. Уже разобрался.@@yagamesdev

  • @mammon9402
    @mammon9402 7 месяцев назад

    Не работает. При сборке ответ "Failed" и все. Почему просто нельзя использовать встроенные методы Unity?

    • @mammon9402
      @mammon9402 7 месяцев назад

      Он не может прочитать файл jslib. Можно ли как то подробней об этом файле?

    • @yagamesdev
      @yagamesdev  7 месяцев назад

      Здравствуйте. Вероятно, уведомление «Failed» появляется из-за некорректного файла jslib. Пожалуйста, проверьте его повторно.
      Встроенные методы Unity могут не совсем верно работать в Web приложениях. Поэтому рекомендуем использовать методы нашего SDK.

  • @sergeyromanov1920
    @sergeyromanov1920 Год назад

    что-то у меня ошибка при клике "GO", которая вообщем-то переведена как "Поехали", язык определился, а при клике - алерт про какой-то null пишет незнай где (ничего особо приметного нету в сообщении, хоть оно во всю страницу), уже больше часа не получилось найти, может я где накосячил, жаль было бы курс бросить, до конца не дойдя какую-то малость.

    • @sergeyromanov1920
      @sergeyromanov1920 Год назад

      фух, починил, правда не очень ясно что же именно глючило. Возможно от того, что был достигнут макс. лвл, который был записан в яндекс, и при попытки начать новую игру - просто не находил сцену, но заработало только когда я пробовал вывести уровень в консоль до и после загрузки сцены в скрипте StartMenu . Go
      int sceneToGo = Progress.Instance.playerInfo.Level + 1;
      if (sceneToGo >= SceneManager.sceneCountInBuildSettings)
      sceneToGo = 1;
      Debug.Log("sceneToGo = " + sceneToGo);
      SceneManager.LoadScene(sceneToGo);
      Debug.Log("after load scene");

    • @roiz5204
      @roiz5204 Год назад

      @@sergeyromanov1920 таже самая проблема. Не понимаю, как решить

    • @yagamesdev
      @yagamesdev  Год назад +1

      @@roiz5204 Здравствуйте. Такое может происходить, если вызываемый метод срабатывает до окончания инициализации SDK Яндекс Игр. Можно добавить задержку перед вызовом метода с помощью корутин в Unity. Или реализовать дополнительную проверку на инициализацию SDK. Инструкция в Руководстве разработчика: clck.ru/344GKf

  • @Daniil_Rust-cg5uu
    @Daniil_Rust-cg5uu 11 месяцев назад

    Можете подсказать пожалуйсто? Почему у меня не работает русский язык вообще? даже если просто писать какой то текст на нём, всё перерыл не где не нашёл решения проблемы

    • @yagamesdev
      @yagamesdev  11 месяцев назад

      Добрый день. Расскажите, пожалуйста, более подробно о том, с чем вы столкнулись. Что подразумевается под тем, что русский язык не работает?

    • @Daniil_Rust-cg5uu
      @Daniil_Rust-cg5uu 11 месяцев назад

      @@yagamesdev В канвас добавляю текст мешь про, и в тексте пишу на русском языке, а там просто какие то квадраты за место текста и в кансоль выводится ошибка какая то, английский язык работает

  • @GGamess
    @GGamess 11 месяцев назад +2

    эта инструкция не рабочая, модерацию не пройдете.

    • @vovan_na_kyhne
      @vovan_na_kyhne 8 месяцев назад +1

      Поподробнее пожалуйста :)

  • @АлексейЧ-ы8е
    @АлексейЧ-ы8е 10 месяцев назад

    Привет. А как сделать , чтоб Level переводился на русский?

    • @yagamesdev
      @yagamesdev  9 месяцев назад

      Здравствуйте. Подробно рассказали, как настроить локализацию в ролике. Рекомендуем посмотреть его по ссылке: clck.ru/37uSpp
      Также вы можете использовать язык из системы. Подробнее в документации Unity: clck.ru/37uSu5

  • @RAZRAB-dev
    @RAZRAB-dev Год назад

    снимите пж ролик как подключить стики баннер

    • @yagamesdev
      @yagamesdev  Год назад +1

      Здравствуйте. Sticky-баннер можно настроить в консоли разработчика. Подробнее рассказываем в Справке: clck.ru/33nTjR
      Для корректной работы баннера нужно зарегистрироваться в РСЯ и полностью заполнить черновик. Инструкция по подключению монетизации по ссылке: clck.ru/343PX3

  • @aramharutyunyan5681
    @aramharutyunyan5681 Год назад

    Проблема с Яндексом
    в Юнити нормально выводятся и русский и английский
    в Яндекс английский тоже выводится, но вот русский почему то проподает
    например есть кнопка Play, в Юнити при русском написано Играть, но в Яндексе Кнкопка пустует, текст вообще не отображается, что делать?

    • @aramharutyunyan5681
      @aramharutyunyan5681 Год назад +1

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

    • @fungimal
      @fungimal Год назад

      @@aramharutyunyan5681 А вы какую версию юнити для этого курса используете?

    • @aramharutyunyan5681
      @aramharutyunyan5681 Год назад

      @@fungimal 2021.3.4f1
      Проблему эту я решил, огромное спасибо одному человеку, дал мне сайт с шрифтами которые используют кириллицу, ы поставил шрифты и сработало)

    • @Александр-я6б2ф
      @Александр-я6б2ф Год назад

      Вы используете text из legacy. Для него нужны шрифты. Если использовать как в примерах TextmeshPro то такой проблемы не будет.

  • @Shergon_41k
    @Shergon_41k 11 месяцев назад

    где найти файл .jslib?

    • @yagamesdev
      @yagamesdev  10 месяцев назад +1

      Здравствуйте. О создании файла .jslib рассказываем в другом видеоролике курса по ссылке: clck.ru/33gH9Q

  • @d.m.g6805
    @d.m.g6805 Год назад +2

    М... да нагородил, что без стакана не разберёшься, лазить по документациям, а в чём смысл тогда вашего видео?

    • @MoonlightInTheFog
      @MoonlightInTheFog Год назад +8

      Чтобы научить тебя разрабатывать не только по видео, а самостоятельно, используя документацию, может быть???