Перейти к содержимому
Zone of Games Forum
lilinoa

Не поддерживается русский язык при вводе имени

Рекомендованные сообщения

Здравствуйте!

Закончили перевод новеллы Amnesia:Memories , но как всегда в последний момент обнаружилась проблема. Невозможно ввести имя героини на русском языке,  оно просто не отображается. 

Покопавшись в файлах, оказалось, что алфавит для ввода имени записан вот такими символами “ABCDEFGHIJKLM” , естественно, замена на обычные “А Б В Г Д” только ухудшила ситуацию:

Скрытый текст

6I7OPiiwRzw.jpg

Возможно ли как-то решить эту проблему? Или тут уже всё, без вариантов? Не вводить имя нельзя, игра не пускает без этого. Можно как-то заблокировать возможность выбора имени?

p.s. заменяла информацию в файлах: mode_name.iet и function_utility.lua. Можно скачать вот тут 

Поделиться сообщением


Ссылка на сообщение
On 6/3/2018 at 11:38 PM, lilinoa said:

Здравствуйте!

Закончили перевод новеллы Amnesia:Memories , но как всегда в последний момент обнаружилась проблема. Невозможно ввести имя героини на русском языке,  оно просто не отображается. 

Покопавшись в файлах, оказалось, что алфавит для ввода имени записан вот такими символами “ABCDEFGHIJKLM” , естественно, замена на обычные “А Б В Г Д” только ухудшила ситуацию:

Spoiler

 

Чтобы отображались русские имена и русские символы при вводе, вы сможете лишь в том случае, если перерисуете в шрифте ttf или otf английский и японский в японской локали. (U+FF21 и далее) (Это сработает)

Spoiler

fullwidth = fullwidth .. "abcdefghijklmnopqrstuvwxyz" (для отображения введённого символа)
fullwidth = fullwidth .. "ABCDEFGHIJKLMNOPQRSTUVWXYZ" (для отображения введённого символа)
fullwidth = fullwidth .. "アイウエオカキクケコサシスセソ\タチツテトナニヌネノ" (для отображения введённого символа)
fullwidth = fullwidth .. "ハヒフヘホマミムメモヤユヨラリルレロワヲンァィゥェォッャュョ" (для отображения введённого символа)

table.insert(t, "ABCDEFGHIJKLM") (для отображения вводимого символа)
table.insert(t, "NOPQRSTUVWXYZ") (для отображения вводимого символа)
table.insert(t, "abcdefghijklm") (для отображения вводимого символа)
table.insert(t, "nopqrstuvwxyz") (для отображения вводимого символа)
table.insert(t, "ハヒフヘホマミムメモヤユヨラ") (для отображения вводимого символа)

 

Но учтите, что ширина русской буквы должны быть, такой же как и в японской кодировке.

33/33 русских символов (нижнего и верхнего регистра) = 26/26 английских символов (нижнего и верхнего регистра) + 14 символов японской локали итого = 66 перерисованных символов, но можно и сократить, убрав из верхнего регистра несколько ненужных русских символов.

Spoiler

af1f368096c1afa58b4ae35d7467ac7d.jpg

 

А можно всего этого избежать.

 

Spoiler

 

mode_name.iet

    local t = {}
    table.insert(t, "АБВГДЕЁЖЗИЙКЛМНОП")
    table.insert(t, "РСТУФХЦЧШЩЪЫЬЭЮЯ")
    table.insert(t, "абвгдеёжзийклмноп")
    table.insert(t, "рстуфхцчшщъыьэюя")
    table.insert(t, "0123456789!?-@#$")
    S_TxtInput.txt_area2 = {}
    _text_set(e, S_TxtInput.txt_area2, t, 2)  (изначально стоит 3 = три символа для отображения японских символов в ANSI / 2 символа для отображения русских символов в ANSI)

    table.insert(t, "АБВГДЕЁЖЗИЙКЛМНОП") (вмещается 13 символов) МНОП — будут видны, но не будут работать как вводимый символ.

mode_name.iet

    local t = {}
    table.insert(t, "АБВГДЕЁЖЗИЙКЛ")
    table.insert(t, "МНОПРСТУФХЦЧШ")
    table.insert(t, "ЩЪЫЬЭЮЯабвгде")
    table.insert(t, "ёжзийклмнопрст")
    table.insert(t, "уфхцчшщъыьэюя")
    S_TxtInput.txt_area2 = {}
    _text_set(e, S_TxtInput.txt_area2, t, 2)

Лучше так без твёрдого знака Ъ

 

Где-то ещё надо искать код для 3 символов ввода в mode_name.iet (данный файл служит для ввода символов) (и скорее всего код для изменения размера выделенной области для буквы, немного выше)

function_utility.lua

        halfwidth = halfwidth .. "abcdefghijklmnopqrstuvwxyz"
        halfwidth = halfwidth .. "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
        halfwidth = halfwidth .. "アイウエオカキクケコサシスセソタチツテトナニヌネノハヒフヘホマミムメモヤユヨラリルレロワヲンァィゥェォッャュョ。「」、・ー゙゚"
        fullwidth = fullwidth .. "абвгдеёжзийклмнопрстуфхцчшщъыьэюя"
        fullwidth = fullwidth .. "АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ"
        fullwidth = fullwidth .. "アイウエオカキクケコサシスセソ\タチツテトナニヌネノ"
        fullwidth = fullwidth .. "ハヒフヘホマミムメモヤユヨラリルレロワヲンァィゥェォッャュョ"
        fullwidth = fullwidth .. "。「」、・ー゛゜"

 

Spoiler

b426ca0e58a9b2c02868f1c1e004a42c.jpg

 

Изменено пользователем Tericonio
  • +1 1

Поделиться сообщением


Ссылка на сообщение
23 часа назад, Tericonio сказал:
  Не актуально (Показать содержимое)

 

Чтобы отображались русские имена и русские символы при вводе, вы сможете лишь в том случае, если перерисуете в шрифте ttf или otf английский и японский в японской локали. (U+FF21 и далее) (Это сработает)

  Код в скриптах (Показать содержимое)

fullwidth = fullwidth .. "abcdefghijklmnopqrstuvwxyz" (для отображения введённого символа)
fullwidth = fullwidth .. "ABCDEFGHIJKLMNOPQRSTUVWXYZ" (для отображения введённого символа)
fullwidth = fullwidth .. "アイウエオカキクケコサシスセソ\タチツテトナニヌネノ" (для отображения введённого символа)
fullwidth = fullwidth .. "ハヒフヘホマミムメモヤユヨラリルレロワヲンァィゥェォッャュョ" (для отображения введённого символа)

table.insert(t, "ABCDEFGHIJKLM") (для отображения вводимого символа)
table.insert(t, "NOPQRSTUVWXYZ") (для отображения вводимого символа)
table.insert(t, "abcdefghijklm") (для отображения вводимого символа)
table.insert(t, "nopqrstuvwxyz") (для отображения вводимого символа)
table.insert(t, "ハヒフヘホマミムメモヤユヨラ") (для отображения вводимого символа)

 

Но учтите, что ширина русской буквы должны быть, такой же как и в японской кодировке.

33/33 русских символов (нижнего и верхнего регистра) = 26/26 английских символов (нижнего и верхнего регистра) + 14 символов японской локали итого = 66 перерисованных символов, но можно и сократить, убрав из верхнего регистра несколько ненужных русских символов.

  Как будет смотрется (Показать содержимое)

af1f368096c1afa58b4ae35d7467ac7d.jpg

 

А можно всего этого избежать.

 

  Лучший вариант (Скрыть содержимое)

 

mode_name.iet

    local t = {}
    table.insert(t, "АБВГДЕЁЖЗИЙКЛМНОП")
    table.insert(t, "РСТУФХЦЧШЩЪЫЬЭЮЯ")
    table.insert(t, "абвгдеёжзийклмноп")
    table.insert(t, "рстуфхцчшщъыьэюя")
    table.insert(t, "0123456789!?-@#$")
    S_TxtInput.txt_area2 = {}
    _text_set(e, S_TxtInput.txt_area2, t, 2)  (изначально стоит 3 = три символа для отображения японских символов в ANSI / 2 символа для отображения русских символов в ANSI)

    table.insert(t, "АБВГДЕЁЖЗИЙКЛМНОП") (вмещается 13 символов) МНОП — будут видны, но не будут работать как вводимый символ.

mode_name.iet

    local t = {}
    table.insert(t, "АБВГДЕЁЖЗИЙКЛ")
    table.insert(t, "МНОПРСТУФХЦЧШ")
    table.insert(t, "ЩЪЫЬЭЮЯабвгде")
    table.insert(t, "ёжзийклмнопрст")
    table.insert(t, "уфхцчшщъыьэюя")
    S_TxtInput.txt_area2 = {}
    _text_set(e, S_TxtInput.txt_area2, t, 2)

Лучше так без твёрдого знака Ъ

 

Где-то ещё надо искать код для 3 символов ввода в mode_name.iet (данный файл служит для ввода символов) (и скорее всего код для изменения размера выделенной области для буквы, немного выше)

function_utility.lua

        halfwidth = halfwidth .. "abcdefghijklmnopqrstuvwxyz"
        halfwidth = halfwidth .. "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
        halfwidth = halfwidth .. "アイウエオカキクケコサシスセソタチツテトナニヌネノハヒフヘホマミムメモヤユヨラリルレロワヲンァィゥェォッャュョ。「」、・ー゙゚"
        fullwidth = fullwidth .. "абвгдеёжзийклмнопрстуфхцчшщъыьэюя"
        fullwidth = fullwidth .. "АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ"
        fullwidth = fullwidth .. "アイウエオカキクケコサシスセソ\タチツテトナニヌネノ"
        fullwidth = fullwidth .. "ハヒフヘホマミムメモヤユヨラリルレロワヲンァィゥェォッャュョ"
        fullwidth = fullwidth .. "。「」、・ー゛゜"

 

  В итоге как будет смотреться (Показать содержимое)

b426ca0e58a9b2c02868f1c1e004a42c.jpg

 

Большое спасибо! Стало лучше, но лишь немного.. Набираются буквы с трудом, буквально через раз. Но вот в самой игре, после ввода имени,  когда персонажи обращаются к героине, оно всё ещё на английском. Возможно, где-то ещё нужно что-то исправить?

Поделиться сообщением


Ссылка на сообщение

@lilinoa 

Пока есть такая проблема, только как её решить не прибегая к первому варианту — кодирования символов английских и японских, пока нет представления.

Сами файлы написаны на Lua. Если с вводимыми символами решаемо, то если в нижнем коде менять 1 на 2, при том что — выше в коде будет стоять 3, в окне ввода введённые символы исчезают, но появляются в диалоге как и должно быть на русском.

Так же непонятен код расстояния между символами, для любой кодировки при вводе этих символов, его как будто, куда-то впихнули не в тот скрипт.

Вот эта злосчастная 1 — портит всё.

Изменено пользователем Tericonio

Поделиться сообщением


Ссылка на сообщение
On 6/3/2018 at 11:38 PM, lilinoa said:

Можно как-то заблокировать возможность выбора имени?

Заблокировать ввод имени возможно так же.

Но тогда вам придётся придумать имя Героине. Изменить немного диалог до ввода имени, и заменить #Name[0] на имя героини во всех файлах .iet/*.lua. Где что закомментировать я помогу. Но это не совсем верное решение.

Блокировку ввода добился, после диалога о вводе имени

        [maintxt_print text="   What about your name?"]
        [maintxt_print text="   Do you think you can at least"]
        [maintxt_print text="   remember your name?"]

переходит к следующему диалогу игнорируя ввод символов.

        [maintxt_print text="   #Name[0]......?"]
        [maintxt_print text="   Is that your name?"]

Если ввести за место #Name[0] — Сью, то диалог примет такой оборот.

Сью......?
Is that your name?

А вот решить проблему с вводом имени пока не удаётся, кроме как кодировать шрифт от A-Z и a-z.  Тут нужен спец по Lua, а также нужны будут:  вся игра, и все распакованные файлы, если кто-то возьмётся.

Код скорее всего для правильного ввода, находится в mode_name.iet

Spoiler

    local _text_set = function (e, dst, src, byte_len)
        for i = 1, #src do
            dst = {}
            for j = 1, math.floor(string.len(src) / byte_len) do
                local idx_begin = 1 + byte_len * (j -1)
                dst[j] = string.sub(src, idx_begin, idx_begin + (byte_len -1))
            end
        end
    end

Или может не только в ней, но ещё и ниже.

 

Изменено пользователем Tericonio

Поделиться сообщением


Ссылка на сообщение

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас


  • Сейчас популярно

  • Продвигаемые темы

  • Последние сообщения

    • Могу посмотреть. Но мне нужна сама игра той версии, которую переводите. На рутрекер есть версия 1.5.50. Она подойдёт?
    • [B.0.9.0.r01] Обновлён текст перевода под новую версию игры B.0.9.0
    • Я ничего не приводил как пример запредельной сложности. Я приводил пример, того, что готовые ассеты, в реальности совсем не готовые. И они нуждаются в доработке под нужды твоего проекта. А эти нужны — заставляют обучаться тебя знать сторонние программы. То есть это ответ, на то, что бесплатные ассеты — заставят тебя все равно идти это учить. Кроме того, я честно говоря не представляют какого-то проффесионального разработчика игр, которому вдруг если попадется модель которая прозрачная снаружи, но нормальная внутри, не будет знать в чём дело. А что бы это знать нужно опять же знать как работает 3д моделирование. А не бесплатные ассеты...чтож, если у тебя есть деньги, то жизнь твоя становится действительно значительно проще, тебе там все сделают, все модельки, может даже игру, сделают, если и на программиста денег хватит но суть ведь совсем не в этом.   А делать много много сцен, новичкам не противопоказано? Получается либо делаешь лоуполи с большой локацией, либо делаешь много сцен если хочешь нормальные текстуры — такой себе выбор так то. Кто? Как налоги платят инди низкого класса? Ну наверное как самозанятые платят, не знаю. Ну стим за тебя налоги не платит, это точно.   Я не думаю, что разрабы низкого инди парятся о собственности своей игры.  Это никогда не сработает с игрой. Когда ты игру разрабатываешь, у тебя сохраняются ранние билды, видеозаписи. Максимум что кто-то сможет сделать, это просто использовать твою идею, в своей будущей игре, или сделать свою очень и очень похожую игру на твою. Но заявить, что ты украл их игру — это бред) Да и никому это не надо в случае с каким то низкоклассовым инди.
    • почему то по предложенной ссылке началась мне пишет: Страница не найдена ? Project Winter https://store.epicgames.com/ru/p/project-winter-3b9e84 Samorost 2 https://store.epicgames.com/ru/p/samorost-2-1b9bb1
    • @piton4 Нет, мне нужно, чтобы были честные 60+FPS, чтобы задержка с FG не росла. Чем ниже реальный FPS, чем больше задержка растёт с включённым FG. Это было бы не критично для какой-нибудь игры по типу Индиано Джонс, где геймплей неспешный и не требует от игрока каких резких действий. Но вот в таких играх как Вуконг, очень важно, чтобы отклик от персонажа был максимальный чёткий, так как приходится часто по таймингам уходить от ударов. У меня на режиме “качество”, FPS держится почти всегда ниже 60, с просадками до 40+- моментами. Как бы тоже не критично, этого достаточно, чтобы с включённым FG был нормальная отзывчивость, но всё ровно будет не идеальным.
    • Ну, собственно, релиз. Цена 850, но до 2 октября действует скидка 20% и игру можно купить за 680 рублей.
    • Я уверен, ты проголосовал правильно     Нас, таких правильных, здесь всего трое, надо держаться вместе, а то сметут.  Насколько я знаю, оппозицию возглавляют некие два гражданина — Сильвер и Тирниэль.  Надо за ними следить повнимательнее, как бы чего не задумали.
    • Лол. Ты так усложняешь всё. Да, небольшая доработка нужна, но на фоне трудозатрат для того, чтобы сделать с нуля — это ерунда полнейшая. В т.ч. никто тебе не запрещает если уж используешь бесплатные ассеты подбирать по совместимости именно то, что тебе нужнО, а не кидаться дорабатывать всё подряд. А в случае ассетов на заказ это и вовсе всё будет сделано за тебя. К слову, альфа и нормали делаются за пару минут, не понимаю, почему ты их в пример привёл как нечто запредельной сложности. Добавить костей к анимации? Они уже есть, иди, да привязывай к анимациям, если нужны правки (хотя даже “маленькие бездные инди кампании” типа много миллиардных михоё не сильно-то запариваются с анимациями платьев, просто обрезая их для своего удобства, т.к. платье — это геморно для них, они ломают легаси). Типичный случай, когда человек пытается по верхам всего нахвататься, не пытаясь кооперироваться со специалистами, а потом даже тривиальные задачи кажутся ему наисложнейшими. Большей части ассетов лоды в принципе не нужны. Тем более крупные локации новичкам и вовсе противопоказаны, где лоды могут использоваться, нужны методы попроще для оптимизации. Надо лишь подумать головой, когда смотришь на число полигонов, а потом прогнать их, сохраняя с упрощением, если тебе вот прям настолько суперзапредельно полигональная трава и деревья не нужны. Максимальное качество упрощать всяко проще, чем делать обратное действие. И лоды не текстуры упрощают, а полигональность моделек от удаления в первую очередь так-то, к слову, сменяя модель на более простую, а на должном отдалении её и вовсе можно убрать, в т.ч. есть метод проверки того, видит игрок что-либо или нет и выгружая ряд объектов вообще. Например, при входе в здание можно выгрузить объекты, которые игрок не может увидеть на улице у ряда стен, если дом, конечно, не аквариум, а также большую часть интерьера других домов, в т.ч. и наоборот. решений проблемы вагон и маленькая тележка, даже колеса изобретать не нужно, достаточно посмотреть на чужой опыт. Ага-ага, а налоги ты как платить собрался? А как ты своё право собственности подтвердишь при выкладывании? А права на ресурсы по-твоему тоже не проверяются в случае ассетных сборок? Если ты выложишь что-либо и тебе по каким-либо причинам вообще позволят сделать это “как есть”, то потом может кто-либо взять, да получить права на твой проект, если тот станет популярным, а потом маякнуть о том, что ты украл у того человека проект, особенно если у того есть доступ к твоему коду, если код не защищён вообще никакой лицензией.
    • На следующей неделе их сменят Eastern Exorcist и Jorel’s Brother and The Most Important Game of the Galaxy. В Epic Games Store началась раздача экшена Project Winter и квеста Samorost 2. На следующей неделе их сменят Eastern Exorcist и Jorel’s Brother and The Most Important Game of the Galaxy.
  • Изменения статусов

    • Дмитрий Соснов  »  Tirniel

      Привет! ты разбираешься в компьютерном железе, сможешь помочь с советом по апгрейду старого компа?
      · 1 ответ
    • SHAMAH

      Куда вход на сайт убрали и ЗАЧЕМ? Хотел файл скачать, там только медленная загрузка и “зарегистрируйтесь”. Все. Пришлось вручную страницу входа прописывать.
      · 0 ответов
    • Nosferatu  »  behar

      Добрый вечер.
      Подскажите пожалуйста, у вас не осталось случайно исходников для фикса на широкоформатные мониторы для игры Vampire The Masquerade Redemption?
      Если да, то не могли бы вы ими поделиться, а если нет, то прошу прощенья что побеспокоил.
      Заранее спасибо.
      · 0 ответов
    • AlcoKolyic  »  makc_ar

      Здраствуйте! Извините, а можно попросить ссылку на место где можно взять перевод (патч или образ игры с переводом) El Shaddai: Ascension of the Metatron для ps3, пожалуйста? А то в теме к этой игре у меня не получилось найти работающие ссылки… Первая ведет в группу в которой удалены большинство постов, а пост с этой игрой ведет на сайт https://psnext.ru который сейчас не имеет отношения к видеоиграм. 
      · 0 ответов
    • oleg72  »  Boor

      https://www.skidrowcodex.net/fate-reawakened-goldberg/
      · 0 ответов
  • Лучшие авторы


Zone of Games © 2003–2025 | Реклама на сайте.

×