• Страница 1 из 1
  • 1
Модератор форума: Kris†a™  
Форум » TES V: Skyrim » Мастерская » Кракозябры в скриптах

Кракозябры в скриптах
Dagnir  Offline  Сообщение №1 написано: 25 января 2018, 09:47



48
Всем приветы! Помогите с такой проблемой при переводе: Выводимое сообщение из скрипта при подстановке переменной превращается в кракозябры. Например есть сообщение "Пунктом возврата установлен: (не выбрано)" Отображается нормально. Но если выбрать, например Вайтран, то всё сообщение превращается в иероглифы, кроме слова Вайтран...

Multigone  Offline  Сообщение №2 написано: 25 января 2018, 11:59 | Отредактировано: Multigone - 25 января 2018, 12:16



832
Dagnir, возможно, проблема в скрипте из-за использования GetName(). С латиницей там все нормально работает, но с кириллицей нет, она имеет разную кодировку внутри СК и в папирусе.

Например, такая конструкция:


Код
String Property sDestinationPoint = "By the destination it is established: (" Auto ; В СК переводишь этот Property как "Пунктом возврата установлен: (".

Location Property xLocationPoint Auto Hidden; Локация, меняется откуда-то извне, в СК ее имя переведено на русский.

Function ShowMessage()
    Debug.Notification(sDestinationPoint + xLocationPoint.GetName() + ")")
Endfunction

В этом случае текст sDestinationPoint принадлежит скриптам, GetName() - СК. Их объединение вызовет кракозябру.

Как один из кривых вариатов решения (возможно, единственный), люди советуют создать в СК любую форму с именем 'Пунктом возврата установлен: ', и такое:


Код
Location Property xLocationPoint Auto Hidden; Локация, меняется откуда-то извне, в СК ее имя переведено на русский.
MiscObject  Property xSomeTextName Auto ; Объект с именем 'Пунктом возврата установлен: '

Function ShowMessage()
    Debug.Notification(xSomeTextName.GetName() + xLocationPoint.GetName())
        ; Неизвестно, как дополнительные текстовые слагаемые типа + ")" могут повлиять на результат.
Endfunction

Я не проверял, но говорят, работает.
Может, у тебя дело в чем-то другом, а я просто неправильно понял проблему.

И да, тут есть тема по скриптам.

Dsion  Offline  Сообщение №3 написано: 25 января 2018, 14:13



Dagnir, ты вообще сообщение выводишь с помощью Message? Debug - это для отладки только.

Dagnir  Offline  Сообщение №4 написано: 27 января 2018, 04:24



48
Это не я вывожу. Я пытаюсь готовый скрипт заставить общаться на великом и могучем. Вот ещё живой пример:

debug.Messagebox("Компас настроен на путешествие в " + Location1 + "(Локация 1), " + Location2 + " (Локация 2), " + Location3 + " (Локация 3), а точкой возврата является " + Wayspot + " ")

В таком виде сообщение отображается нормально. Но как только вместо Location подставляется значение на кириллице, на экране абракадабра.

Форум » TES V: Skyrim » Мастерская » Кракозябры в скриптах
  • Страница 1 из 1
  • 1
Поиск:





Ответ на жалобу смотрите в разделе жалоб