Sidebar

Xash3D на русском.

  • Наступило лето и у нас стартовал конкурс с призовым фондом в $120!
    "De-Make It!" Summer Contest.

TigerHeart01

Member
26.06.2017
101
0
16
Награды
0
Дядя Миша сказал(а):
2 TigerHeart01: если надо учить - быстрее точно не будет
Ну я думал, что там достаточно просто открыть этот файл Блокнотом и по CTRL-F вбивать фразы и смотреть номер строки.
Или там всё гораздо сложнее ?
 
Команда форума
VIP
28.03.2010
15 328
252
83
Награды
4
Кубань
  • Золотая медаль 215
  • Серебряная медаль 214
  • Золотая медаль 221
  • Cat
Примерно. Только там два файла и надо сопоставлять их. А потом находить эту же строку в коде меню. Работа несложная но муторная
 
Команда форума
VIP
28.03.2010
15 328
252
83
Награды
4
Кубань
  • Золотая медаль 215
  • Серебряная медаль 214
  • Золотая медаль 221
  • Cat
Лично я эти строки вообще искал в strings.lst пользовательских модов. Но там далеко не полный перечень
 

Qwertyus

Well-known member
13.08.2009
1 363
26
48
Награды
1
  • Xash медаль
Вот уже переведённый файл от WON-версии. Строки, может, и не все, но большинство.
 

Вложения

Команда форума
VIP
28.03.2010
15 328
252
83
Награды
4
Кубань
  • Золотая медаль 215
  • Серебряная медаль 214
  • Золотая медаль 221
  • Cat
Ну вот теперь мало того что эти строки надо перевести обратно на английский, так еще и догадаться каким пунктам меню они соответствуют. Я ж говорю муторная работа.

[ADDED=Дядя Миша]1540999574[/ADDED]
Выкладываю hl_res

[ADDED=Дядя Миша]1540999768[/ADDED]
Там что получается. в resource.h находятся номера наших строк (поименованные), а в hl_res.rc (он тоже текстовый) - соответственно строки. Но к счастью порядок везде одинаковый, от 1 до 557. Путаницы добавляет еще и то, что там половина строк к меню вообще не имеет никакого отношения, это ошибки движка.

[ADDED=Дядя Миша]1541000031[/ADDED]
А в сорцах меню надо открыть src_main\mainui\menu_strings.cpp и добавлять туда эти строчки, попадая в нужный номер (они там пронумерованы для удобства).
А потом в menu_strings.h писать эти номера, по типу как в resource.h
И вот когда это будет сделано, дальше действовать будем мы.
 

Вложения

Последнее редактирование:

TigerHeart01

Member
26.06.2017
101
0
16
Награды
0
Дядя Миша сказал(а):
А в сорцах меню надо открыть src_main\mainui\menu_strings.cpp и добавлять туда эти строчки, попадая в нужный номер (они там пронумерованы для удобства).
Добавлять туда строчки на английском, или на русском ?
 
Команда форума
VIP
28.03.2010
15 328
252
83
Награды
4
Кубань
  • Золотая медаль 215
  • Серебряная медаль 214
  • Золотая медаль 221
  • Cat
2 TigerHeart01: На русском локализация будет в strings.lst, а дефолтные строчки на английском.
 
Команда форума
VIP
28.03.2010
15 328
252
83
Награды
4
Кубань
  • Золотая медаль 215
  • Серебряная медаль 214
  • Золотая медаль 221
  • Cat
Да, но при условии, что ты точно попал номерами строчек в соответствующие ячейки. Иначе при локализации всё перепутается.
 

Qwertyus

Well-known member
13.08.2009
1 363
26
48
Награды
1
  • Xash медаль
2 TigerHeart01:
Там нужно прилинковать к каждой английской строчке сооответствующий номер строки из strings.lst. Чтобы движок, обнаруживая в strings.lst строку с таким номером, подменял её на локализованную.
 

a1batross

Umu~!
06.01.2015
672
27
28
Награды
0
21
Москва
xash.su
Всё это не удобно с той точки зрения, что strings.lst:
1) не настолько гибок. Множество строк в нём как класс отсутствуют, только заводить собственные номера, где-то их сохранять и всё такое.
2) лежит в одном файле. Новый перевод -- замена файла.
 

Qwertyus

Well-known member
13.08.2009
1 363
26
48
Награды
1
  • Xash медаль
2 a1batross:
1. В strings.lst можно найти такое:
Код:
// #define IDS_MAIN_PREVIEWSHELP           400
Не относится ли это к назначению индексов?

2. Один файл - это вообще не минус. Да и зачем новый-то перевод? Если в моде, так там как раз может быть сокращённый strings.lst, только с теми строчками, которые потребовалось изменить.
 

TigerHeart01

Member
26.06.2017
101
0
16
Награды
0
Дядя Миша сказал(а):
Да, но при условии, что ты точно попал номерами строчек в соответствующие ячейки. Иначе при локализации всё перепутается.
Прошу прощения, не заметил, что в файле resource.h несколько номеров просто пропущены.
Высылаю исправленный вариант.
Да, я точно попал номерами строчек в соответствующие ячейки. Можешь проверить.

Например, строка с номером 522:
resource.h : #define IDS_MOD_NOFILES 522
HL_Res.RC : IDS_MOD_NOFILES "Nothing to download"
strings.lst : 522 "Нечего загрузить"
В моём MenuStrings.txt : "Nothing to download",

[ADDED=TigerHeart01]1541046284[/ADDED]
a1batross сказал(а):
2) лежит в одном файле. Новый перевод -- замена файла.
Но ведь в случае с kb_act.lst тоже - Новый перевод -- замена файла.
Согласен, что в Стиме это реализовано немного поинтереснее, через resource\valve_english.txt. Но в WON было именно так.
Да и ведь работает же хоть как-то, и слава Богу. Приспособимся. :)
 

Вложения

Последнее редактирование:
Команда форума
VIP
28.03.2010
15 328
252
83
Награды
4
Кубань
  • Золотая медаль 215
  • Серебряная медаль 214
  • Золотая медаль 221
  • Cat
Да, индексы тоже надо объявить в menu_strings.h для удобства.
А потом уже самое муторное начинается - линковка этих строк с кодом меню. Но это уже по нашей части с Альбатроссом.

[ADDED=Дядя Миша]1541057115[/ADDED]
Да, я точно попал номерами строчек в соответствующие ячейки. Можешь проверить.
Да в том-то и дело, что проверять никто не будет, это по времени займет столько же, сколько вся работа с нуля.
 
Последнее редактирование:

TigerHeart01

Member
26.06.2017
101
0
16
Награды
0
Дядя Миша сказал(а):
Да, индексы тоже надо объявить в menu_strings.h для удобства.
Вот здесь я не понял. Индексы эти именовать от фонаря, что ли ?
И почему бы просто не взять в точности те же индексы, что в resource.h ? Зачем "изобретать велосипед" ?
 

a1batross

Umu~!
06.01.2015
672
27
28
Награды
0
21
Москва
xash.su
2 Дядя Миша:
ты не понял к чему я.

strings.lst это удобно скорее для модов, чтобы вместо стандартных скучных предложений сделать свои "нескучные". Навроде подходящих по сеттингу. И к переводам имеет посредственное отношение.

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

И никакого неудобства с индексами нет.

Впрочем, я у себя давно вбил все возможные индексы(на самом деле, скопировал из HLSDK 2.3) в MenuStrings.h: https://github.com/FWGS/mainui_cpp/blob/master/MenuStrings.h. Так этим и не воспользовался, поскольку планирую как раз сделать переводы на основе системы предложенной в Steam HL.
 
Команда форума
VIP
28.03.2010
15 328
252
83
Награды
4
Кубань
  • Золотая медаль 215
  • Серебряная медаль 214
  • Золотая медаль 221
  • Cat
В стиме переводы базируются на юникоде, а мне этой пакости не надо.
 
Команда форума
VIP
28.03.2010
15 328
252
83
Награды
4
Кубань
  • Золотая медаль 215
  • Серебряная медаль 214
  • Золотая медаль 221
  • Cat
2 a1batross: юникод надо было добавлять изначально, а не размешивать пополам со старой кодировкой. Тогда уж и энтити-стринг должны быть целиком в юникоде, и чтоб компиляторы это понимали и все поля энтить должны быть в юникоде и спрашивается, какой из редакторов карт умеет писать строки в юникоде? Судя по всему никакой. Ну и зачем мне эта частичная поддержка? И как я потом буду различать где юникод, а где нет? И как этот юникод будут рисовать шрифты из fonts.wad? То есть на ровном месте взять и поломать всё, непонятно зачем. Самое интересное, что до появления юникода никакой проблемы вообщем-то и не было. Не считая китайского и японского, все раскладки прекрасно умещались в 8 бит, снизу английский, сверху любой другой и все были довольны. Мы бы просто постепенно переучили китайцев на английский и проблема отпала бы сама собой.
 

Донат - Операционные расходы

Итого
1 121.00 $
Цель
1 300.00 $
Донат завершается:

Доноры Красавчики

Новые сообщения

Пользователи онлайн