Перейти к содержимому
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

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


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

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

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

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

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

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

Войти

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

Войти сейчас


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

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

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

    • У меня точно такая  проблема русик не хочет устанавливаться висит это окно и закрыть его можно только через диспетчер ,думал у меня така проблема только на ноуте ,попробовал через стим дэк думал хоть там выйдет как и остальными русиками, а нет там даже окна нет там выдает ошибку что ему  не хватает файла Я неспорю что стим дэк это линукс но русификаторы на другие игры  для винды у меня устанавливались
    • Чувак буквально зачем-то поделился ответом от нейронки, будто находится в ответах мэйл ру О_О
    • Оригинальный Third Crisis для версии Steam (GOG и itch.io не проверял, поэтому не знаю) Перевод не полноценно полный, но огромная часть текста переведена через нейронку (Gemini) Патч Что переведено? Всё до чего вообще можно было добраться, преимущественно диалоги. Огромная часть текста была прогнана через нейросеть Gemini. Что не переведено? * Описания предметов * Заголовки записей журналов * Где-то текст может быть не переведён из-за смещения тегов (даже в диалогах) * Может быть корявый текст из-за нейронки Были исправлены только поверхностные баги, пока неизвестно что вас будет ждать во время игры (у меня не было времени на редактуру и полноценные тесты). Как перевести не переведенное? Включить автопереводчик можно нажав (ALT + 0) и выбрав в пункте "Translator:" Google Translate (v2) и "Fallback:" Google Translate (v2) Подробности
    • PS PLUS - ДЕКАБРЬ 2025

      Появятся в PS Plus 2 декабря 2025:
      • LEGO Horizon Adventures (PS5)
      • Killing Floor 3 (PS5)
      • The Outlast Trials (PS4, PS5)
      • Synduality Echo of Ada (PS5)
      • Neon White (PS4, PS5)

      Покидают PS Plus 2 декабря 2025:
      • Stray (PS4, PS5)
      • EA Sports WRC 24 (PS5)
      • Totally Accurate Battle Simulator (PS4, PS5)

      https://youtu.be/adh0ONV9o2w
    • Его хоть на рабочем столе держи — он автоматически ищет exe игры во всех установленных локальных дисках: Если не находит игру → не создается временная папка → нет папки, нет файлов.
      Если игра установлена, то могу скинуть программу распаковки и батники для обратно упаковки, но все придется делать “ручками”.

      З.Ы. У всех такая проблема? Мой совет — подождать. Если у тебя 4 локальных диска, то коду нужно проверить все 4.
    • При хорошем везении и высоком уровне можно ещё и дорогостоящие металлические карточки выбить. Чем выше уровень, тем чаще они выпадают. У меня 72-й и 62 значка. В этом году мне повезло получить и продать редкий металл из BloodRayne: Terminal Cut за 600 рублей и Split/Second аж за 2500. Был металл и подешевле, конечно - из God of War рублей за 70, из Dead Island рублей за 40 и ещё штуки 3-4, не помню уже. Только от прибыли с металла взял по итогу на распродаже штук 6-7 хороших больших игр - по идее, получил их на халяву :)) Ну а что касается выпадения наборов — за 11 лет ни разу ничего не выпало :))
    • 13 февраля выходит. Вы чего?
    • Игра вышла. Надеюсь кто-нибудь возьмется)
    • @Sett78 Ну, я опять забросила, не было времени. Но и редактировать приходится много. Надеюсь, что со второй не будет таких проблем, но сначала надо первую закончить, а я сейчас на другое отвлеклась.
  • Изменения статусов

  • Лучшие авторы


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

×