Dagnir
Offline
|
Сообщение №1
написано: 25 января 2018, 09:47
|
|
Всем приветы! Помогите с такой проблемой при переводе: Выводимое сообщение из скрипта при подстановке переменной превращается в кракозябры. Например есть сообщение "Пунктом возврата установлен: (не выбрано)" Отображается нормально. Но если выбрать, например Вайтран, то всё сообщение превращается в иероглифы, кроме слова Вайтран...
|
|
|
|
|
Multigone
Offline
|
Сообщение №2
написано: 25 января 2018, 11:59
| Отредактировано: Multigone - 25 января 2018, 12:16
|
|
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
|
|
Это не я вывожу. Я пытаюсь готовый скрипт заставить общаться на великом и могучем. Вот ещё живой пример:
debug.Messagebox("Компас настроен на путешествие в " + Location1 + "(Локация 1), " + Location2 + " (Локация 2), " + Location3 + " (Локация 3), а точкой возврата является " + Wayspot + " ")
В таком виде сообщение отображается нормально. Но как только вместо Location подставляется значение на кириллице, на экране абракадабра.
|
|
|
|
|