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

Русификация Star Wars: The Old Republic

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

Всем доброго времени суток! В общем хотелось бы заняться переводом MMORPG Star Wars: The Old Republic, в которой тонны сюжетного текста. Хотелось бы узнать, переводил уже кто-то или нет? Нашёл файлик в папке "locales", с расширением ".pak" - "en-US.pak", думаю можно будет его как-нибудь разобрать, так как я профан, было бы не плохо дать руку помощи :)

Вот ссыль на файл: http://rghost.ru/69Fw6hpnZ

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


Ссылка на сообщение
Всем доброго времени суток! В общем хотелось бы заняться переводом MMORPG Star Wars: The Old Republic, в которой тонны сюжетного текста. Хотелось бы узнать, переводил уже кто-то или нет? Нашёл файлик в папке "locales", с расширением ".pak" - "en-US.pak", думаю можно будет его как-нибудь разобрать, так как я профан, было бы не плохо дать руку помощи :)

Вот ссыль на файл: http://rghost.ru/69Fw6hpnZ

есть только один файлик или есть ещё? в 2Кб вряд ли можно засунуть "тонны сюжетного текста"

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


Ссылка на сообщение
есть только один файлик или есть ещё? в 2Кб вряд ли можно засунуть "тонны сюжетного текста"

А там и нет текста толком - всё, что есть по ссылке http://rghost.ru/8spkgRzBj .

Шаблон:

struct{  long unk;  long count;  byte flags;  struct  {    short id;    short offset;    short unk;  } items[count];  short unk;  long filesize;} hdr;local int i = 0;local int k, len;local int fl = FileNew("Text");for(i = 0; i < hdr.count; i++){  k = i + 1;  if (k < hdr.count)    len = hdr.items[k].offset - hdr.items[i].offset;  else   len = hdr.filesize - hdr.items[i].offset;  FPrintf(fl, "%s\n", ReadString(hdr.items[i].offset, len));   }

 

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


Ссылка на сообщение
А там и нет текста толком - всё, что есть по ссылке http://rghost.ru/8spkgRzBj .

Шаблон:

struct{  long unk;  long count;  byte flags;  struct  {    short id;    short offset;    short unk;  } items[count];  short unk;  long filesize;} hdr;local int i = 0;local int k, len;local int fl = FileNew("Text");for(i = 0; i < hdr.count; i++){  k = i + 1;  if (k < hdr.count)    len = hdr.items[k].offset - hdr.items[i].offset;  else   len = hdr.filesize - hdr.items[i].offset;  FPrintf(fl, "%s\n", ReadString(hdr.items[i].offset, len));   }

 

Печально, ну в принципе ожидал этого. Хотелось бы как-нибудь перевести игрушку, пример перевода той же ММОшки это Elder Scrolls Online.

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


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

сколько текста в данном файле я и сам в курсе, поэтому и спросил есть ли ещё такие файлы... самому качать 25гиг абы посмотреть - пока нет такого желания...

зы: short offset; short unk; полагаю можно заменить на long offset;

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


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

В папке с игровыми данными много файлов с en-US в начале, вот один из них. Если хотите, чекните на предмет текста.

Архив с файлом: https://yadi.sk/d/FETCQIrigx7Aw

153d90dbe968t.jpg

Изменено пользователем makc_ar
Звук

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


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

текст сидит в этом файле http://rghost.ru/6C6CzTbSC

зы: "в которой тонны сюжетного текста" - это явное преуменьшение...

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


Ссылка на сообщение
текст сидит в этом файле http://rghost.ru/6C6CzTbSC

зы: "в которой тонны сюжетного текста" - это явное преуменьшение...

Было бы неплохо найти способ как-то начать перевод игры

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


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

Поднимая тему перевода.

Текст хранится в файлах с расширением tor в папке игры Assets. Это особый архив игровых ресурсов: MYP Archives from EA Mythic. Его можно открыть (и модифицировать) программой EasyMyp.

Файлам tor нужно на время сменить расширение на myp, что бы можно было с ними работать. Открываем в указанной мной программе и можем извлекать текст (и другие ресурсы).

В извлечённых файлах в самом начале, помимо текста, идут какие-то параметры. Возможно это что-то типа ссылок на фразы и их длину? В общем, я думаю, на это тоже нужно обратить внимание.

Вот пример одного маленького файла:

  0   yY    A  Ђ?O   з  O   yY    P  Ђ?    6      zY    A  Ђ?   6     zY    P  Ђ?    S      {Y    A  Ђ?    _      {Y    P  Ђ?   _     |Y    A  Ђ?;   v;   |Y    P  Ђ?    ±      }Y    A  Ђ?    ±      }Y    P  Ђ?    ±      ~Y    A  Ђ?4   ±  4   ~Y    P  Ђ?   е     Y    A  Ђ?,   ь  ,   Y    P  Ђ?    (      ЂY    A  Ђ?    (      ЂY    P  Ђ?    (      ЃY    A  Ђ?2   (  2   ЃY    P  Ђ?    Z      ‚Y    A  Ђ?    Z      ‚Y    P  Ђ?    Z      ѓY    A  Ђ?L   Z  L   ѓY    P  Ђ?    ¦      „Y    A  Ђ?    ¦      „Y    P  Ђ?    ¦      …Y    A  Ђ?H   ¦  H   …Y    P  Ђ?    о      †Y    A  Ђ?    о      †Y    P  Ђ?    о      ‡Y    A  Ђ?y   о  y   ‡Y    P  Ђ?    g      €Y    A  Ђ?U   g  U   €Y    P  Ђ?   ј     ‰Y    A  Ђ?    Р      ‰Y    P  Ђ?   Р     ЉY    A  Ђ?   а     ЉY    P  Ђ?    ф      ‹Y    A  Ђ?    ф      ‹Y    P  Ђ?    ф      ЊY    A  Ђ?I   ф  I   ЊY    P  Ђ?   =     ЌY    A  Ђ?   G     ЌY    P  Ђ?    a      ЋY    A  Ђ?    a      ЋY    P  Ђ?    a      ЏY    A  Ђ?*   a  *   ЏY    P  Ђ?    ‹      ’Y    A  Ђ?    ‹      ’Y    P  Ђ?    ‹      Name: Marcovic. Rank: Lieutenant. That's all you're getting from me, Jedi scum.I'm not here for you, anyway.Fair enough.Spare me the tough act.You may as well kill me now. You'll never hold me prisoner.If you won't be useful, why should I keep you alive?Don't make me kill you.Get spaced. I'm proud to die for the Empire.Hey, what's that droid doing? Get away from there!Hyperspace data transceiver = operational // T7 = scanning transmission logsT7 = found Planet Prison designs + Tarnis communications to Darth AngralT7 = located design files code-named "Desolator" // Darth Angral = creating world-killer weapon using Republic technologyCopy every file you can, Teeseven. We need to know what this Desolator weapon can do.Download everything.That's not good.T7 = bad feeling tooTarnis's talk on Coruscant about creating "non-lethal" weapons was a lie.I knew it.Republic = in great dangerYou won't live long enough to tell anyone.

 

Сам файл: https://yadi.sk/d/OqDh6moamTrEf

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

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


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

Так, структура нашлась на забугорном форуме. Вот здесь народ вскрывает ресурсы SW ToR: http://forum.xentax.com/viewtopic.php?p=87785#p87785

Структура нужного нам формата:

String buckets specification (.stb file format)

01 00 00: header bytes

uint32: number of strings

FOR EACH (string) {

--- uint64: string id

--- byte: type1

--- byte: type2

--- float: unknown, always 00 00 80 3F = 1.0, possibly related to how quickly the text is read

--- uint32: string length

--- uint32: string offset

--- uint32: repetition of string length

} END FOR

To get a specific string, go to the given offset and read the given number of bytes. Then convert these bytes into a string.

Type1 can be:

- 65 = 0x41 : main string

- 70 = 0x46: alternate female string (e.g. huntress instead of hunter). Only used by German and French strings, where it is more common that male and female professions are named differently.

- 80 = 0x50 : for conversations, the main summary when you can choose one of the three responses

- 81 = 0x51: for conversations, the alternate female summary

Type2 seems to be related to localization. If type2==0, then the string should not be translated, e.g. because it is just a placeholder and may be changed later when the content goes live.

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


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

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

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

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

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

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

Войти

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

Войти сейчас



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

×