Рейтинг темы:
  • Голосов: 1 - Средняя оценка: 5. Если голосов меньше 5 оценка не показывается.
  • 1
  • 2
  • 3
  • 4
  • 5
Создание перевода средствами RenPy
#31
Народ, подскажите, как обратно запаковать игру в archive.rpa?

 
Ответить
#32
Второй вопрос. Нужно перевести строку:
Код:
   show text "{color=#FFFFFF}Bla-bla-bla{/color}"

Делаю замену:
Код:
   show text _("{color=#FFFFFF}Bla-bla-bla{/color}")

В файле перевода меняю текст:
Код:
old "{color=#FFFFFF}Bla-bla-bla{/color}"
new "{color=#FFFFFF}Бла-бла-бла{/color}"

А при запуске проекта выскакивает сообщение:
Цитата:'text' takes a single string parameter

Что я делаю не так?

P.S. Догадываюсь, что во всём виноват "{color=#FFFFFF}", но как исправить не знаю.


Разбил строку на 3 части(хз, можно так делать или нет):
Код:
   show text "{color=#FFFFFF}" + _("Bla-bla-bla") + "{/color}"

Ошибка пропала, в файл перевода текст добавляется, но перевод не цепляется.

 
Ответить
#33
Такой вопрос.. А где в RenPy прописывается шрифт? Иногда нужно заменить, а где это находится - не знаю

 
Ответить
#34
@86bf37bf, https://www.renpy.org/doc/html/text.html#fonts
Конкретнее сказать можно только глянув на игру.

 
Ответить
#35
Добрый день.
Пытаюсь сделать билингвистический перевод по схеме указанной в шапке.
Я слегка далёк от любого кода, поэтому попробую объяснить как могу.
Запускаю SDK. Создаю новый проект, под него лаунчером создаётся папка, в этой папке всё кошу и бросаю туда игру(всю полностью), которую надо перевести. Нажимаю создать перевод, и получаю ошибку.
"Ошибка. Запуск проекта провален.Пожалуйста убедитесь, что ваш проект запускается перед использованием этой команды".
При этом сама игра работает.
Внимание, вопрос. Что я делаю не так?

 
Хочется завернуться в тёплый плед, пить горячий шоколад и смотреть "Justified".
Но приходится вкалывать по 14 часов в сутки 7 дней в неделю и ненавидеть весь мир.
Блог
Ответить
#36
Есть предположение что он все таки не работает.
Точнее он собранный работает, но не собирается.

поэтому предлагаю вычистить из проекта *.rpyc файлы и попробовать снова

 
Открыт к предложениям проектов по python\renpy
Ответить
#37
@90748021, глупый наверное вопрос.
Вычистить .rpyc из папки "game" или всего проекта?
Может вообще только папку "game" в проект закидывать?
Потому как проект запускается и через .exe и через SDK, но перевод достать не могу.
Пробовал удалить .rpyc из папки "game", но результат тот же, и файлы .rpyc волшебным образом восстанавливаются.
Пробовал также вычистить содержимое папки "cache" в игре.
Тоже восстановилось. И всё та же ошибка.cray

 
Хочется завернуться в тёплый плед, пить горячий шоколад и смотреть "Justified".
Но приходится вкалывать по 14 часов в сутки 7 дней в неделю и ненавидеть весь мир.
Блог
Ответить
#38
(02.08.2017, 08:19)4a62919c писал(а): Народ, подскажите, как обратно запаковать игру в archive.rpa?

Не знаю как делают многие, я все разбирал/собирал через python и этот дешифровщик https://github.com/Shizmob/rpatool

 
Ответить
#39
(24.02.2018, 05:38)5a031b3c писал(а): @90748021, глупый наверное вопрос.
Вычистить .rpyc из папки "game" или всего проекта?
Может вообще только папку "game" в проект закидывать?
Потому как проект запускается и через .exe и через SDK, но перевод достать не могу.
Пробовал удалить .rpyc из папки "game", но результат тот же, и файлы .rpyc волшебным образом восстанавливаются.
Пробовал также вычистить содержимое папки "cache" в игре.
Тоже восстановилось. И всё та же ошибка.cray

Проект игры - это только папка game (насколько я помню). Остальное движек и питон.
Файлы .rpyc восстанавливаются не "Магически". В момент запуска игры все исходные коды собираться в перпроцессорные байт коды python. Они и будут восстанавливаться в момент запуска, потому что SDK выдирает (пытается) по семантике вызовов определенных функцию renpy. Ты давно обновлял SDK?

 
Открыт к предложениям проектов по python\renpy
Ответить
#40
Обновляю прямо сейчас.
То есть в проект надо закидывать только папку "game" без файлов .rpyc?
Кстати они восстанавливаются и от попытки достать текст.

 
Хочется завернуться в тёплый плед, пить горячий шоколад и смотреть "Justified".
Но приходится вкалывать по 14 часов в сутки 7 дней в неделю и ненавидеть весь мир.
Блог
Ответить
#41
(24.02.2018, 13:23)5a031b3c писал(а): Обновляю прямо сейчас.
То есть в проект надо закидывать только папку "game" без файлов .rpyc?
Кстати они восстанавливаются и от попытки достать текст.

Система питона (языка на котором написан renpy) такова, что он будет использовать *.pyc если они есть и они соотв исходнику.
соотв само собой что они обновляются - тк по сути именно они и есть код, который запускается внутри. Отсутствие rpyc файлов в начале процесса гарантирует, что созданные rpyc файлы текущим интерпетатором будут той же версии и с той же линковкой (если она там есть) что и текущая версия движка..

 
Открыт к предложениям проектов по python\renpy
Ответить
#42
Господа, словил такой баг. Есть у меня файл "translations", куда запилена всю эта лабуда
Код:
   config.translations[u'Developer Menu'] = u'Меню Разработчика'
   config.translations[u'Return to the developer menu'] = u'Вернуться к меню разработчика'

   config.translations[u'Skip Mode'] = u'Режим Пропуска'
   config.translations[u'Fast Skip Mode'] = u'Быстрый Пропуск'
   config.translations[u"While Ren'Py games may be playable without the renpy module, some features may be disabled. For more information, read the module/README.txt file or go to http://www.bishoujo.us/renpy/."] = u"Игры Ren'Py могут запускаться и без модуля renpy, но некоторые функции возможно будут отключены. Более подробную информацию можно прочесть в файле module/README.txt или по адресу http://www.bishoujo.us/renpy/."
   config.translations[u'renpy module not found.'] = u'не найден модуль renpy.'
   config.translations[u'The renpy module could not be loaded on your system.'] = u'Не получается загрузить модуль renpy под вашей системой.'
   config.translations[u'Old renpy module found.'] = u'Обнаружен устаревший модуль renpy.'
   config.translations[u"An old version (%d) of the Ren'Py module was found on your system, while this game requires version %d."] = u"Обнаружена устаревшая версия (%d) модуля Ren'Py. Игра требует версии старше %d."
   config.translations[u'Please click to continue.'] = u'Для продолжения нажмите левую кнопку мыши.'

и т.д.

Так вот этот файл напрочь отказывается переводиться обратно на инглишь. В старой игре все отлично работало. Пробовал добавлять _(""), но движок просто отказывается создавать файл перевода. В чем может быть косяк?

 
Ответить
#43
(18.03.2018, 20:32)13aea73a писал(а): Господа, словил такой баг. Есть у меня файл "translations", куда запилена всю эта лабуда
Код:
   config.translations[u'Developer Menu'] = u'Меню Разработчика'
   config.translations[u'Return to the developer menu'] = u'Вернуться к меню разработчика'

   config.translations[u'Skip Mode'] = u'Режим Пропуска'
   config.translations[u'Fast Skip Mode'] = u'Быстрый Пропуск'
   config.translations[u"While Ren'Py games may be playable without the renpy module, some features may be disabled. For more information, read the module/README.txt file or go to http://www.bishoujo.us/renpy/."] = u"Игры Ren'Py могут запускаться и без модуля renpy, но некоторые функции возможно будут отключены. Более подробную информацию можно прочесть в файле module/README.txt или по адресу http://www.bishoujo.us/renpy/."
   config.translations[u'renpy module not found.'] = u'не найден модуль renpy.'
   config.translations[u'The renpy module could not be loaded on your system.'] = u'Не получается загрузить модуль renpy под вашей системой.'
   config.translations[u'Old renpy module found.'] = u'Обнаружен устаревший модуль renpy.'
   config.translations[u"An old version (%d) of the Ren'Py module was found on your system, while this game requires version %d."] = u"Обнаружена устаревшая версия (%d) модуля Ren'Py. Игра требует версии старше %d."
   config.translations[u'Please click to continue.'] = u'Для продолжения нажмите левую кнопку мыши.'

и т.д.

Так вот этот файл напрочь отказывается переводиться обратно на инглишь. В старой игре все отлично работало. Пробовал добавлять _(""), но движок просто отказывается создавать файл перевода. В чем может быть косяк?
а ну дай сам файлик?
(ну и попробуй в __(двойное подчеркивание) обернуть)

 
Открыт к предложениям проектов по python\renpy
Ответить
#44
(19.03.2018, 11:22)e44a1cb9 писал(а): (ну и попробуй в __(двойное подчеркивание) обернуть)
Попробовал, не помогает cray
Вот ссыль

 
Ответить
#45
(19.03.2018, 22:25)13aea73a писал(а):
(19.03.2018, 11:22)e44a1cb9 писал(а): (ну и попробуй в __(двойное подчеркивание) обернуть)
Попробовал, не помогает  cray
Вот ссыль

"Пааанятна"... Он не "не генерирует" файл. Просто ты не там их ищешь. Проверяй файлы перевода common.rpy(rpym). Есть не нулевая вероятность что там все твои строки

На удивление у меня "эта фиговина" с легкостью генерирует файл перевода по твоему rpy.
Так что скорее всего я прав - и все эти строки у тебя уже входят в какой -то из файлов перевода. Попробуй "сделать пару ошибок" в той же новой игре и посмотреть, сгенерит ли после этого он перевод

 
Открыт к предложениям проектов по python\renpy
Ответить
#46
@90748021, Проверил все переведенные файлы, нигде ничего лишнего нет. Если делаю ошибки в этом файле, то перевод проваливается. Но в переведенном файле common лежат некоторые оригинальные английские реплики, как бы ожидающие перевода на русский. Но их игра как бы игнорирует.


Кажется, я понял свой косяк. Я подставил _() к строчке "Новая игра". Но эта строчка есть в другом файле, и видимо движок проигнорил ее. Попробовал подставить к другим строчкам, и файл создался, все заработало вроде.

 
Ответить
#47
(20.03.2018, 12:33)13aea73a писал(а): @90748021, Проверил все переведенные файлы, нигде ничего лишнего нет. Если делаю ошибки в этом файле, то перевод проваливается. Но в переведенном файле common лежат некоторые оригинальные английские реплики, как бы ожидающие перевода на русский. Но их игра как бы игнорирует.


Кажется, я понял свой косяк. Я подставил _() к строчке "Новая игра". Но эта строчка есть в другом файле, и видимо движок проигнорил ее. Попробовал подставить к другим строчкам, и файл создался, все заработало вроде.

Угу, он "строки" генерит один раз для перевода.

 
Открыт к предложениям проектов по python\renpy
Ответить
#48
(20.03.2018, 13:24)e44a1cb9 писал(а): Угу, он "строки" генерит один раз для перевода.
Вообще это когда как. Иногда идентичную строчку по миллиард раз переводит, только успевай отыскивать. Теперь все починилось, спасибо drinks

 
Ответить
#49
всем прив
поможите с переводом плиз.
не пойму какие файлы переводить в ренпай чтобы не поломать игру
сама игра take over

заранее спасибо


я прямо код переводить пробую ,мне так понятнее , я так все игры переводил . для себя , даж на qsp и твин как то оно мн проще когда видишь код .

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

 
Ответить
#50
(19.01.2019, 18:19)3c8be94a писал(а): всем прив
поможите с переводом плиз.
не пойму какие файлы переводить в ренпай чтобы не поломать игру
сама игра take over

заранее спасибо


я прямо код переводить пробую  ,мне так понятнее  , я так все игры переводил . для себя , даж на qsp и твин  как то оно мн  проще когда видишь код .

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

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

Переводить на renpy можно двумя способами:
  • Первым - менять в главном коде игры фразы (подходит для законченных игр, т.к. каждый патч заипешься копипастом заниматься, а если игра еще и большая...) Но кому-то такой вариант заходит;
  • Второй способ используя встроенную возможность RenPy SDK, о ней есть информация в первом посте, головняка по началу кажется больше, зато если игра постоянно обновляется, избавляет от проблемы переводить ВСЮ игру заного, а не только добавленную/измененную часть.

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



Чтобы ничего ненароком не поломать - перечитай первое сообщение в этой теме, там все относительно верно, за исключением вероятно, прописать выбор языка (оно стало менее актуально в том виде).

Выбор языка можно сделать в игре несколькими способами:
1.Сделать выбор через настройки игры;
2.Сделать при запуске игры, до главного меню;
3.Сделать выбор на главном меню, в самом меню или отдельной кнопкой на экране.


Разные методы потребуют написания разного кода, так к примеру для первого метода (через настройки игры), надо в файл screens.rpy
В раздел Preferences с новым GUI прописать это:

Код:
   vbox:
       style_prefix "radio"
       label _("Language")
       textbutton _("Russian") action Language("russian")
       textbutton _("English") action Language(None)
Если ты при выборе языка перевода назвал его "russian", если назвал его "rus", то и вписывай "rus", тут надеюсь понятно.
А вот так это выглядит в игре
то же самое, но на русском

на старом GUI:
Код:
frame:
   style_prefix "pref"
   has vbox

   label _("Language")
   textbutton _("English") action Language(None)
   textbutton _("Русский") action Language("russian")
Если ты при выборе языка перевода назвал его "russian", если назвал его "rus", то и вписывай "rus", тут надеюсь понятно.
скриншот, где примерно этот код нужно вписывать
В этом месте кода я прописал этот выбор

А вот так это выглядит в игре


Для второго метода:
Можно прописать хоть в отдельный файл, хоть в какой-то из имеющихся, принципиально нет никакой разницы. Просто если будет отдельный файл, то ты его вероятно не потеряешь, если тебе придется вносить изминения... Назовем его к примеру change_language.rpy (ну или kaktopodrygomy, главное чтобы файл был обозван английскими буквами и расширение на конце имел .rpy) Кодировка файла должна быть utf-8, чтобы избежать проблем. Убедись что нигде в коде нету больше label splashscreen, если есть, то прописывай прямо в этот блок в конец того, что там есть, перед return следующие строки, только надеюсь догадаешься дважды label splashscreen: в label splashscreen: не писать.

Пишем:
Код:
label splashscreen:
       label language_chooser:
           scene title_screen
       
           menu:
               "Choose language / Выбор Языка"
               "English":
                   $ persistent.lang = "english"
                   $ renpy.change_language("english")
               "Русский":
                   $ persistent.lang = "russian"
                   $ renpy.change_language("russian")
           #$ renpy.utter_restart()
       return
В игре это будет выглядеть примерно так:
При запуске игры, но до основного/главного игрового меню


Для третьего варианта, чтобы выбор языка появился в самом меню игры, надо проделать в файле screens.rpy кое-какие манипуляции, добавить строчки:
Код:
textbutton _("Russian") action Language ("russian")
textbutton _("English") action Language (None)
Если ты при выборе языка перевода назвал его "russian", если назвал его "rus", то и вписывай "rus", тут надеюсь понятно.

В игре это будет выглядеть примерно так:
Так это выглядит на русском
и
Так это выглядит на английском


Как внедрять вместо текста выбор языка картинкой.
Что же касается внедрение переключения языка какой-нибудь красивой кнопкой на главном меню, тут все дело вкуса, и простых решений возьми это и скопируй туда - не существует.
Главное тут надо опредилить, в каких координатах тебе надо эту конпку установить

Например в Witch Trainer - Russian Edition (SadCrab)
код устроен так:

Код:
   imagebutton:
       xpos 110
       ypos 406

       focus_mask True
       xanchor "center"
       yanchor "center"
       idle "03_hp/23_title/ru_dis.png"
       hover "03_hp/23_title/ru_en.png"

       action [ Language(None)]

   imagebutton:
       xpos 110
       ypos 453

       focus_mask True
       xanchor "center"
       yanchor "center"
       idle "03_hp/23_title/en_dis.png"
       hover "03_hp/23_title/en_en.png"

       action [ Language("english")]

screen lang_menu:
   window:
       style "gm_root"
   frame:
       style_group "gm_nav"
       xalign .98
       yalign .98


       has vbox

       label _("Выбор языка")
       textbutton "Русский" action Language(None)
       textbutton "English" action Language("english")
       textbutton _("Отмена") action Start("assmenu")
Так это выглядит в игре

А так например в Pleasuremancer
Код:
imagebutton idle "gui/bouton_menu/fr.png" hover "gui/bouton_menu/fr_hover.png" action SetVariable("lang", "francais"), Language(None) xpos 50 ypos 450
imagebutton idle "gui/bouton_menu/eng.png" hover "gui/bouton_menu/eng_hover.png"  action SetVariable("lang","english"), Language("english") xpos 160 ypos 450
imagebutton idle "gui/bouton_menu/rus.png" hover "gui/bouton_menu/rus_hover.png" action SetVariable("lang","russian"), Language("russian") xpos 270 ypos 450
Где указывается сразу и картинка и координаты...

Так это выглядит в игре на французком
Так это выглядит в игре на русском

Теперь о плюсах и минусах каждого из трех методов.
Первый метод хорош практически всем, кто запустив игру догадается или докумекает в забугорском языке, как войти в настройки и переключить язык там. Ну мало ли там Арабская вязь или Японские иероглифы... Плюс: в любой момент можно переключать язык, даже на середине игры и для этого необязательно выходить в главное меню = удобно. Минус: какой-нибудь чайник может все таки, не найти (но я в этом сомневаюсь, но раз в год и палка стреляет).

Второй вариант лично я не использовал, но плюс у него в том, что при запуске игры игрок сразу выберет, на каком ему языке изображать текст. Минус: При прохождении игры и даже в главном меню переключить язык неполучится, если только дополнительно не прописывать возможность.

Третий вариант. Плюс, такой-же как у второго варианта, возможность при запуске выбрать язык. Минусы: надо, найти/нарисовать кнопку, а потом еще искать и прописывать координаты, где эта кнопка должна быть на экране.

Какой вариант выберешь дело твое. И немного еще зависит от самой игры, стиля меню.


Что белать с квадратиками и другими тексто-графическими непотребствами

Еще, мы же хотим чтобы вместо кракозябр и квадратиков нам выдавало русские буквы, а что делать если шрифт выбранный разработчиком не поддерживает Кириллицу? Тут есть два варианта нубский и продвинутый, но обо всем по порядку.

Вариант первый - нубский.
Смотрим в файлах игры какой используется шрифт, ищем такой его же, но с поддержкой кириллицы. Нашли поздравляем себя, что не пришлось тра.. заниматься дополнительно и шрифтом. Скачали, переименовали буква в букву с таким же, который уже в папке с игрой и радуемся. Если такого же шрифта с поддержкой кириллицы не нашлось, то тут тоже есть два решения, первый нарисовать шрифт самостоятельно, благо в интернете есть об этом туториалы. Или же подобрать похожий шрифт на используемый в игре и скачав его закидываем в папку с игрой за место того, который без кириллицы.

Вариант второй - продвинутый.
Заходим в файл gui.rpy или если используется старый интерфейс ищем по всем файлам упоминания "font", нашли поздравляем себя.
В данном случае файл gui.rpy, смотрим на буквы после define
Код:
## Шрифт, используемый внутриигровым текстом.
## The font used for in-game text.
define gui.text_font = "DejaVuSans.ttf"

## Шрифт, используемый именами персонажей.
## The font used for character names.
define gui.name_text_font = "DejaVuSans.ttf"

## Шрифт, используемый текстом вне игры.
## The font used for out-of-game text.
define gui.interface_text_font = "DejaVuSans.ttf"
Это как раз стили, которые мы можем изменить, чтобы квадратики превратились в буковки. Можно поменять прямо тут же, а можно пойти другим путем и в последующем при изменении разработчиком стилей или выход новой версии игры, нам не надо будет каждый раз залезать и править ручками код.


Создаем новый какой-нибудь файл, чтобы не путаться... что-то типа translation_style.rpy, я закидываю его в папку tl примерно так:
Сам код выглядит как-то так:
Код:
   translate russian style kakoytostlyle:
       size 12
       font "CooperBlack.ttf"

т.е. для перевода "russian" и для стиля kakoytostlyle, игра, отображай этот стиль размером 12 пикселей и шрифтом "CooperBlack.ttf"

параметр size - отвечает за размер, можно как сделать шрифт крупнее , так и мельче. Шрифт должен находится в папке game, если его положить в папку с переводом, то и путь должен принять вид
Код:
translate russian style kakoytostlyle:
   size 12
   font "/tl/[tvoy_perevod_language]/CooperBlack.ttf"

   например я использую при переводе язык перевода "russian", поэтому использую путь
font "/tl/russian/CooperBlack.ttf"    
потому, что у меня, язык на который я перевожу, называется "russian" тот что под цифрой 1 в скриншоте ниже, а не как там используется "Ru", иначе я бы писал "Ru".
Таким образом можно до неузнаваемости изменить шрифт используемый в разных версиях перевода. Думаю суть понятна.

После слова size идет название шрифта, допустим мы хотим поменять шрифт, на другой и размер текста выставить на 10, чтобы помещался в нужную нам область, которым отображаются имена персонажей... смотрим в файл gui.rpy или см.выше по тексту было:
Код:
## Шрифт, используемый именами персонажей.
## The font used for character names.
define gui.name_text_font = "DejaVuSans.ttf"
Вот его и вписываем
Код:
translate russian style gui.name_text_font:
    size 10
    font "Arial.ttf"
В итоге при переключении игры на русский язык, шрифт которым будут написаны имена говорящих персонажей будет Arial.ttf и размером этот шрифт будет 10 пикселей. То что менять не надо, можно и не писать, допустим если нам не надо изменять размер шрифта, то size можно и не прописывать, или закомментировать строчку
Код:
translate russian style gui.name_text_font:
    #size 10
    font "Arial.ttf"
или
Код:
translate russian style gui.name_text_font:
    font "Arial.ttf"


Как примерно этот файл может выглядеть, тут не принципиально, просто вписываем, как хотим чтобы игра изменила стили:
Код:
translate russian style gui.name_text_font:
    size 10
    font "Arial.ttf"

translate russian style gui.name_text_font:
    font "Tahoma.ttf"

translate russian style gui.interface_text_font:
    size 25
    font "segoepr.ttf"

Разработчик может, кроме стандартных трех стилей, добавить еще вагон и маленькую тележку в свою игру. Ищем во всех файлах игры ключевые слова font и style прописываем для стилей новые параметры в наш файл, если это требуется.

Вообще в файле gui.rpy с русскими комментариями все намного понятнее, чем брать оригинальные, забугорские.
Надеюсь эта статья кому-то пригодится... Эх, мне бы эти знания, год назад...

 


Прикрепления
.txt   gui.txt (Размер: 15,87 КБ / Загрузок: 5)
1
Ответить
#51
Можно ли перевести то, что напрямую не переводится? (ошибки игры летят)
И можно ли как-то "выдрать" из кода тот текст, который ренпай сам не выдирает? (при создании перевода файлы создает, но некоторые пустые...)

 
Ответить
#52
@5b869a42, Вообще можно(см. мой длиннопост выше. вариант №1), но без знания языка программирования RenPY, практически - не реально.


Выдрать то, что не выдирается - тоже можно, но проблема в том, что в таком случае все такие слова будут заменятся 1 вариантом, а двух вариантов такого перевода - быть НЕ ДОЛЖНО! Правило/ограничение RenPy

Например:
bottom
будет переведено для конкретного варианта допустим как попа
А в определенном месте, как раз будет совпадение, но к примеру по смыслу там подойдет к примеру дно, но оно у тебя будет все равно как попа(ну т.е. зад) Поэтому этот метод не такой гибкий. И не надейся подогнать окончания слов, все равно будет ломаный-странный "моя твоя не понимать"

Прикинь, читаешь такой новеллу, а там "У нее такая прекрасная попа", а далее по тексту "ДНО" а должно быть "У нее такая прекрасная попа", "ПОПА"
Надеюсь я разъяснил нюанс, такого метода.

Но если ты решил, все равно его использовать, то все, что тебе надо сделать, это заключить необходимые слова, которое Renpy SDK не подхватывает, взять в такую конструкцию _("*")

Например:
"word"
должно в итоге получится
_("word")
После прогнать через SDK -> создание перевода. Добавятся новые строки в конец файла.

*Да, этот метод работает не на 100%, а примерно на 95-98%, бывают хитрые заковыки, которые даже этим методом не берутся.

 
Ответить
#53
Надумал попробовать перевести одну игру, но не могу декомпилировать файлы .rpyc... Извлёк архивы и декомпилировал с помощью UnRen, но мало того, что в итоге не все файлы получили .rpy, так ещё и игра запускается с ворохом ошибок, которые хз как исправить. Извлёк архивы с помощью RPAExtractor, но хз как декомпилировать, но так хоть игра нормально работает. Что я делаю не так? Как подготовить всё для перевода? Разработка игры завершена, думал переводить сразу в скриптах. С одними играми нет таких проблем, но с другими такая вот катавасия, и таких игр всё больше (по крайней мере, проблемы у меня).

 
Ответить
#54
(11.08.2019, 02:16)ddc33f5a писал(а): Надумал попробовать перевести одну игру, но не могу декомпилировать файлы .rpyc... Извлёк архивы и декомпилировал с помощью UnRen, но мало того, что в итоге не все файлы получили .rpy, так ещё и игра запускается с ворохом ошибок, которые хз как исправить. Извлёк архивы с помощью RPAExtractor, но хз как декомпилировать, но так хоть игра нормально работает. Что я делаю не так? Как подготовить всё для перевода? Разработка игры завершена, думал переводить сразу в скриптах. С одними играми нет таких проблем, но с другими такая вот катавасия, и таких игр всё больше (по крайней мере, проблемы у меня).

Короче, ты все делаешь не так smile Ну если тебе так хочется переводить в самих скриптах - валяй, но приготовься к изучению RenPy. Потому, что ошибок(traceback) у тебя будет появляться при запуске с завидной регулярностью. И на ранние сохранения игра будет ругаться, причем постоянно. Вот перевел кусок игры, захотел проверить - первый раз запуститься, сохранился. А при следующем запуске после редактирования, БАЦ и лови traceback, ну т.е. отчет об ошибке... В общем удачи. Если не отпугнул, то читай дальше, как распаковать.

Сейчас напишу, что тебе надо сделать:
Во первых возьми чистую игру, без своих экспериментов с UnRen и RPAExtractor над нею.

Как пользоваться UnRen.bat. Запускаешь скрипт, выбираешь там 1, этим ты *.rpa файлы распаковываешь в *.rpyc, после того, как скрипт отработал, нажимаешь 1, чтобы вернуться снова в меню батника и выбираешь 2. Так ты *.rpyc файлы разберешь в *.rpy с которыми уже сможешь работать. После того, как твой батник отработал ВАЖНО!!! Удалить из папки с игрой все *.rpa файлы-архивы!!! И если ты выберешь 9, то у тебя игра при запуске тоже будет ругаться, потому, как там лишние файлы создаются.
Короче, сперва 1;1;2; выход; удалить все *.rpa файлы

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


И вообще, как ты собрался переводить игру, если не можешь перевести то, что тебе батник пишет... хм интересный Вопрос!!!  wink

 
Ответить
#55
(20.01.2019, 13:40)478e3b37 писал(а): Вот его и вписываем
Код:
translate russian style gui.name_text_font:
    size 10
    font "Arial.ttf"
Привет, попытался так сделать, меня послали далеко и на долго.
Свёрнутый текст:
Код:
translate russian style gui.text_font:
   font "Oswald-Light.ttf"

translate russian style gui.name_text_font:
   font "Gismonda CYR.otf"

translate russian style gui.interface_text_font:
   font "Gismonda CYR.otf"
Код:
I'm sorry, but errors were detected in your script. Please correct the
errors listed below, and try again.

File "game/gui.rpy", line 78: Line is indented, but the preceding style statement statement does not expect a block. Please check this line's indentation.
   font "Oswald-Light.ttf"
   ^
File "game/gui.rpy", line 81: Line is indented, but the preceding style statement statement does not expect a block. Please check this line's indentation.
   font "Gismonda CYR.otf"
   ^
File "game/gui.rpy", line 84: Line is indented, but the preceding style statement statement does not expect a block. Please check this line's indentation.
   font "Gismonda CYR.otf"
   ^
Ren'Py Version: Ren'Py 7.3.2.320
Thu Aug 15 14:14:52 2019

В учебной игре предлагают это делать несколько иначе:
Код:
translate russian python:
   gui.text_font = "Oswald-Light.ttf"
   gui.name_text_font = "Gismonda CYR.otf"
   gui.interface_text_font = "Gismonda CYR.otf"
Но таким макаром часть текста отображается квадратами

При этом если просто заменить в коде шрифты
Код:
define gui.text_font = "Oswald-Light.ttf"
define gui.name_text_font = "Gismonda CYR.otf"
define gui.interface_text_font = "Gismonda CYR.otf"

Всё отображается корректно.
Есть идеи почему так происходит, как исправить?

 
Ответить
#56
(15.08.2019, 11:24)d5db981a писал(а):
(20.01.2019, 13:40)478e3b37 писал(а): Вот его и вписываем
Код:
translate russian style gui.name_text_font:
    size 10
    font "Arial.ttf"
Привет, попытался так сделать, меня послали далеко и на долго.
Свёрнутый текст:
Код:
translate russian style gui.text_font:
   font "Oswald-Light.ttf"

translate russian style gui.name_text_font:
   font "Gismonda CYR.otf"

translate russian style gui.interface_text_font:
   font "Gismonda CYR.otf"
Код:
I'm sorry, but errors were detected in your script. Please correct the
errors listed below, and try again.

File "game/gui.rpy", line 78: Line is indented, but the preceding style statement statement does not expect a block. Please check this line's indentation.
   font "Oswald-Light.ttf"
   ^
File "game/gui.rpy", line 81: Line is indented, but the preceding style statement statement does not expect a block. Please check this line's indentation.
   font "Gismonda CYR.otf"
   ^
File "game/gui.rpy", line 84: Line is indented, but the preceding style statement statement does not expect a block. Please check this line's indentation.
   font "Gismonda CYR.otf"
   ^
Ren'Py Version: Ren'Py 7.3.2.320
Thu Aug 15 14:14:52 2019

В учебной игре предлагают это делать несколько иначе:
Код:
translate russian python:
   gui.text_font = "Oswald-Light.ttf"
   gui.name_text_font = "Gismonda CYR.otf"
   gui.interface_text_font = "Gismonda CYR.otf"
Но таким макаром часть текста отображается квадратами

При этом если просто заменить в коде шрифты
Код:
define gui.text_font = "Oswald-Light.ttf"
define gui.name_text_font = "Gismonda CYR.otf"
define gui.interface_text_font = "Gismonda CYR.otf"

Всё отображается корректно.
Есть идеи почему так происходит, как исправить?


По поводу трейсбека
Дословно тебя игра тролит на счет отступов, советует их убрать ;)
А зачем ты код замены вписал в оригинальный файл игры?
game/gui.rpy?
У меня же черным по белому написано, создай новый файл *.rpy(название может быть любым, но на англицких буковах, например style.rpy и в таком тоне) и помести туда строку... И закинуть его можно к файлам где и перевод сидит - не принципиально. Вот и посылает тебя далеко и надолго пешочком, что ты нарушил структуру питона smile

Да, можно и как в учебной программе СДК(тоже вариант-второй), ошибка заключается в том, что у тебя файл шрифта не подхватывается, либо ошибка в написании либо ошибка в пути к файлу и ренпай автоматически подбирает старый шрифт. Либо заменяемый тобой файл не имеет русского языка.
Это у тебя Oswald-Light.ttf мозг любит его и смотри. (И вообще он кажется в оригинале не так выглядит, как у тебя и в нем нет русского...)
http://allfont.ru/download/oswald-light/
А вообще можешь закинуть свои шрифты в папку с переводом, чтобы не путаться, а в код добавь пути
Код:
translate russian python:
   gui.text_font = "tl/langfolder/Oswald-Light.ttf"
   gui.name_text_font = "tl/langfolder/Gismonda CYR.otf"
   gui.interface_text_font = "tl/langfolder/Gismonda CYR.otf"
где langfolder - точное название папки где у тебя лежит перевод.
чтобы меньше путаться, что заменил, а что оставил. И вообще можешь допустим прописать вместо Oswald-Light.ttf любой другой, у которого точно есть кирилица, тот же Arial или New Times Roman или DejaVuSans и посмотреть, как игра на них отреагирует. Если отобразит нормально, то смело ищи другой файл шрифта, этот у тебя не имеет кириллицы.

 
Ответить
#57
Wasya2009
Ну это было сделано еще до ознакомления с гайдом  blush
Наличие/отсутствие отступов, абсолютный/относительный путь до шрифта не влияют на ошибку.

Собственно на первом скрине, весь текст должен отображаться Гисмондой, также как на втором. С другим шрифтом проблема сохраняется. Вроде никаких ошибок в написании нету, особенно учитывая, что половина текста отображается корректно. Тем не менее на первом скрине, Patreon написано оригинальным шрифтом, в котором как раз нет кириллицы. Похоже он подтягивает шрифт, но потом почему то для кнопок переходит на оригинальный шрифт (или наоборот) при этом второй вариант не даёт такого результата.
Код:
   gui.interface_text_font = "Gismonda CYR.otf"
Код:
define gui.interface_text_font = "Gismonda CYR.otf"

 
Ответить
#58
Вроде бы? diablo
Тут всего несколько причин и ты методом исключения не можешь понять где именно?
У меня тоже была проблема, не подхватывались русские картинки, оказалось оригинальная папка images а я обозвал ее image, и у меня естественно их не подхватывало. Вот и у тебя схожая беда. Я не телетайп, на расстоянии диагностики винчестеров не делаю, пути по космическому разуму не сверяю, так что ищите, Шура ищите. blush

Я же тебе все вероятные проблемы начертал:
1. Ошибка в путях, Russian или russian к примеру имеют различие(но это не точно, но лучше перестраховаться).
2. Твой файл игрой подхватывается, но он не имеет в себе кириллицы.
3. Ошибка в написании имени файла или его расширения.
Все, других проблем быть не может(но это не точно...).

Замени оригинальный шрифт новым, отсюда https://www.fonts-online.ru/font/Gismonda-CYR и не люби моск mosking
Зачем ищешь проблему, где ее нет? Ты же нашел оригинальный шрифт, но с поддержкой кириллицы, ну, и замени шрифт автора этим и не мучайся.

===========================
Пройдись поиском слова "font" и "gui.interface_text_font" по всем файлам проекта, возможно есть еще где-то упоминание о стиле(но это не точно).
Вполне возможно, что шрифт прописан где-нибудь еще и в screens.rpy, как вариант.

 
Ответить
#59
delete, проблема решена)

 
Ответить
#60
@a5c715d, мне так нравятся такие посты. "Как решить такую-то проблему? А, всё решил." Как решил, что решил. Может быть, это решение помогло бы другим в подобной ситуации.

 
Ответить


Переход:


Просматривают эту тему: 3 Гость(ей)