Don't Starve Together

Don't Starve Together

Russian Language Pack [Outdated]
Polymorphm 5 May, 2015 @ 6:13pm
кодировка русского текста
добрый день!

есть ли какие мысли-и-идеи по поводу того чтобы сделать как-то чтобы Русские Сообщения -- были бы в нормальной кодировке (utf-8) а не в дурацкой кодировке "cp1251" ?

"Russian Language Pack" зачем-то использует кодировку cp1251 .. не знаю кто это придумал -- но идея совершенно странная в наше время :-) ..

спасибо!
< >
Showing 1-15 of 21 comments
FanixSay  [developer] 5 May, 2015 @ 11:10pm 
Это невозможно в рамках использования игрой Lua версии 5.1. Игра не понимает и не декодирует utf-8, при передаче ей строк в этой кодировке вместо символов, формирующихся из многобайтовых последовательностей, мы получим просто последовательности исходных байт в ansi. Конкретнее все русские символы будут состоять из двух байт (и двух букв на экране), потому что игра будет интерпретировать utf-8 строку как ansi (ну а с русификатором как cp1251).

Впрочем, у меня есть некоторые наработки, которыми пока преждевременно делиться. В них я эмулирую поддержку utf-8, однако это потребовало настолько глобальных изменений, что это уже не русификатор. Это отдельный мод, который ещё не готов, и который я ещё не представлял публике.
Last edited by FanixSay; 6 May, 2015 @ 12:28am
FanixSay  [developer] 6 May, 2015 @ 12:33am 
С другой стороны, если тебя инетерсует именно кодировка po файлов самих по себе, то довольно легко сделать так, чтобы они были в utf-8, а в игре уже конвертировались в cp1251. Только я этого делать не буду, ведь такое конвертирование будет КАЖДЫЙ РАЗ занимать около двух секунд при загрузке игры у КАЖДОГО игрока, и это слишком большая цена за то, чтобы тебе было удобно читать po файлы :)
Last edited by FanixSay; 6 May, 2015 @ 12:34am
Polymorphm 6 May, 2015 @ 7:17am 
не, не.. я забыл написать.. я имею ввиду "Русские Сообщения" -- это только *чат* между игроками!

(то есть -- в этой -- теме я затрагиваю только лишь функцию чата!)

простите, что я не уточнил сразу :-) . моя вина..

сами сообщения (чат) пересылаются по сети как cp1251 -- и именно это вызывает у меня когнитивный диссонанс.. именно чат -- есть возможность ли реализовать в utf-8 ? (сделать так чтобы по сети НЕ передовалось бы *ни_каких* cp1251 )

--------------------------------------------------

если русские игроки используют cp1251 для передачи своих русских сообщений в чате (и используют для этого этот "Russian Language Pack") -- то это СРАЗУ ставит крест на всех тех случаях когда другие люди НЕ используют этот мод!

получается что своим модом ("Russian Language Pack") -- вы разделяете людей на две группы -- "либо ты с нами, либо ты против нас!" :-)
Last edited by Polymorphm; 6 May, 2015 @ 7:37am
Polymorphm 6 May, 2015 @ 7:43am 
Это невозможно в рамках использования игрой Lua версии 5.1. Игра не понимает и не декодирует utf-8, при передаче ей строк в этой кодировке вместо символов, формирующихся из многобайтовых последовательностей, мы получим просто последовательности исходных байт в ansi. Конкретнее все русские символы будут состоять из двух байт (и двух букв на экране), потому что игра будет интерпретировать utf-8 строку как ansi (ну а с русификатором как cp1251).

utf8 в lua это конечно проблемы.. жаль что всё так..

в lua-5.3 есть улучшения.. но не думаю что разработчики когда-нибудь пойдут на такой апгрейд :-( .. ды и наверно дело не только в версии lua , но и в графическом движке?

у меня тогда сразу вопрос: допустим я сделаю следующий эксперимент:

1. я переименю свой Steam-аккаунт в какое-то другое имя -- и буду использовать русские буквы в его названии.

2. я открою DST и попрошу открыть кого-то ещё DST .

3. как будет обображаться моё имя пользователя -- в ситуации когда НЕТ "Russian Language Pack" (ни у кого у нас) ?

4. если будет обображаться криво (так как нет поддержки utf-8 в игре?) -- то это ведь повод написать багрепорт для Создателей Игры? :-)

есть ли какие-то замечанию к этому списку шагов? мне действительно ли стоит так сделать? (ведь на то оно и есть бета-тестирование, чтобы багрепорты писать :-))
Last edited by Polymorphm; 6 May, 2015 @ 7:45am
Polymorphm 6 May, 2015 @ 8:03am 
вот utf8 в имени Персонажа (не установлено "Russian Language Pack"):

http://i1.minus.com/iBDDO412IEgVa.jpg
http://i4.minus.com/ibk3rRNBtSOxiM.jpg

это заметно по бквам "Ð..Ð..Ð.." -- в слове "Тестовое_Рус_ИмÑ" :)
Last edited by Polymorphm; 6 May, 2015 @ 8:05am
FanixSay  [developer] 6 May, 2015 @ 8:16am 
Ну вот, и если я сделаю чат через utf-8, то русские сообщения в чате будут выглядеть так же. То есть, как минимум, увеличат свою длину почти вдвое.
Багрепорт писать бесполезно. Разработчики совершенно определённо не планируют вводить поддержку utf-8 в игру, при том, что уже сейчас, как ты верно заметил, никнеймы приходят именно в этой кодировке.

Какая практическая выгода от использования utf-8 в чате?
Last edited by FanixSay; 6 May, 2015 @ 9:29am
Polymorphm 6 May, 2015 @ 8:56am 
> Какая практическая выгода от использования utf-8 в чате?

сейчас пока-что -- возможность безконфликтного создания других модов. :-)

(тоесть чисто теоретическая возможность.. не более того)

например есть мод "Russian Language Pack" и [предположим] есть другой мод. и пользователи обоих могут видеть сообщения друг друга, так как оба мода используют стандартную кодировку.

на практике это разумеется пока что не поменяет особо ни чего.

> как минимум, увеличат свою длину почти вдвое

отличная шутка :-) ..

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

ладно.. я готов соглситься что сейчас (сегодня, в данную секунду, до тех пор пока существует только одно-единственное решение для русификации чата) -- переделывание чата "Russian Language Pack" в utf-8 НЕ несёт в себе более чем потенциальных возможности.

но если разговор будет идти в сторону "utf-8 занмает в два раза больше байт" -- то это уже будет напоминать троллинг в мою сторону :-) .. и кстати, не вполне тонкий троллинг :-)

тоже самое как и порядок байт переделывают из "little endian" в "big endian" , при передаче по сети (а при получении наоборот: из "big endian" в "little endian" ) -- ни кто не жалуется что наносекунды процессора тратятся на эти операции.. так как на спи4ках не экономят же :-)
Last edited by Polymorphm; 6 May, 2015 @ 9:04am
Polymorphm 6 May, 2015 @ 9:04am 
вообще, в этой теме форума я хотел бы главным образом выяснить -- какие сейчас настрояние витают вокрут темы с Чатом и utf8 ..

вобщем-то от части -- я выяснил :-)

и ещё хочу заодно поблагодарить автора, что ДАЖЕ при выборе нестандартной кодировки (cp1251) -- всё равно работа была проделана -- КАЧЕСТВЕННО.. чат работает без проблем, на сегодняшний день, даже хоть и выбрали эту кодировку
Last edited by Polymorphm; 6 May, 2015 @ 9:04am
Polymorphm 6 May, 2015 @ 9:10am 
и ещё хочу заодно поблагодарить автора, что ДАЖЕ при выборе нестандартной кодировки (cp1251) -- всё равно работа была проделана -- КАЧЕСТВЕННО.. чат работает без проблем, на сегодняшний день, даже хоть и выбрали эту кодировку

# P.S.: ну точнее -- почти качественно :) .. печатать-то в игре я всё равно не могу (не получается, символны не вводятся с клавиатуры при русской раскладке -- только смотреть русские сообщения получается, если установлен мод "Russian Language Pack"). ну мне вполне достаточно даже и просто смотреть, печатать можно и на транслите..
Last edited by Polymorphm; 6 May, 2015 @ 9:10am
FanixSay  [developer] 6 May, 2015 @ 9:15am 
А почему, собственно, бесконфликтно работали бы моды, если бы в чате кодировка была в utf-8?
Поскольку игра сама по себе работает в 8-битном режиме, то и ввод с клавиатуры она воспринимает как 8-битный. То есть, по сути ввод приходит в ansi (что с русификатором, что без). Русификатор, меняя внешний вид второй половины ansi, позволяет интерпретировать ввод как cp1251, хотя по сути просто меняется внешний вид символов старше 128.
Если разработчики модов захотят работать с русификатором, они будут всё писать в cp1251, поскольку под эту игру ни один мод не набирается в utf-8.

Короче, когда я ещё начинал делать мод, я столкнулся с вопросом выбора кодировки, который почти сразу же сам собой решился, когда стало ясно, что игра не поддерживает utf-8. Согласись, глупо писать мод в utf-8, и влепливать в него конвертеры просто потому, что хочется писать в utf-8, ведь хоть так хоть так, вывод придётся делать в cp1251.
FanixSay  [developer] 6 May, 2015 @ 9:19am 
П.С. А про длину сообщений я писал не в том смысле, что это болезненно для трафика. Это неприятно для глаз нерусских игроков. Так наши сообщения, пусть даже и кракозяблями, но выводятся приблизительно нормальной длины. А так они к тому-же ещё и удлинятся вдвое :)
FanixSay  [developer] 6 May, 2015 @ 9:23am 
Originally posted by Polymorphm:
# P.S.: ну точнее -- почти качественно :) .. печатать-то в игре я всё равно не могу (не получается, символны не вводятся с клавиатуры при русской раскладке -- только смотреть русские сообщения получается, если установлен мод "Russian Language Pack"). ну мне вполне достаточно даже и просто смотреть, печатать можно и на транслите..
У тебя не windows? Это, как раз, проблема разработчиков. И вопрос тут не в поддержке utf-8, потому что даже если я сделаю ввод-вывод в utf-8, по сути это ничего не изменит. Ведь utf-8 — кодирование дополнительных символов многобайтными последовательностями. Ввод на твоей системе не работает в принципе. Иначе ты при вводе видел бы свой utf-8 в представлении cp1251.
Last edited by FanixSay; 6 May, 2015 @ 9:23am
FanixSay  [developer] 6 May, 2015 @ 9:26am 
Тебе следует понимать, что сам по себе utf-8 передаётся точно так-же, последовательностью байт. Принципиально ничего не меняется. Если ты нажимаешь на «ё», то в cp1251 это один байт, попавший в поток ввода, а в utf-8 — два. Если же у тебя ничего не появилось, значит игра вообще не поняла, что ты нажал что-либо. Дело не в кодировке, а в понимании (а точнее его отсутствии) игрой ввода в твоей системе. И эта часть, увы, за пределами lua. Это реализовано на C разработчиками. Видимо, криво. Вот тут есть смысл составить багрепорт.
Last edited by FanixSay; 6 May, 2015 @ 9:27am
Polymorphm 6 May, 2015 @ 9:31am 

Короче, когда я ещё начинал делать мод, я столкнулся с вопросом выбора кодировки, который почти сразу же сам собой решился, когда стало ясно, что игра не поддерживает utf-8. Согласись, глупо писать мод в utf-8, и влепливать в него конвертеры просто потому, что хочется писать в utf-8, ведь хоть так хоть так, вывод придётся делать в cp1251.

ну примерно я понимаю твою мысль! темболее ты знаком с "недрами" игры, и вполне знаешь о чём говоришь!

ну а можешь ещё рассказать -- почему ты выбрал именно cp1251 ?

почему ты не выбрал например -- cp866 ? или koi8-r ? или ISO-8859-5 ? (я не критикую щаз, а просто пытаюсь понять мотивации!)

например, кодировка cp1251 -- была выбрана из-за каких-то особенностей со шрифтом? или по какой-то другой причине?

ведь в самой игре -- поидее *изначально* (без модов) -- не должно быть ни чего связанного с кириллицей, и, наверное, была полная свобода выбора...

я НЕ имею ввиду что нужно ОБЯЗАТЕЛЬНО ИЗБЕГАТЬ использования cp1251 нет! cp1251 -- кодировка как кодировка, вполне нормальная, пусть хоть и нестандартная -- как и любые другие 8-битные кодировки .. не лучше и не хуже других 8-битных кодировок.. :-)
Last edited by Polymorphm; 6 May, 2015 @ 9:37am
Polymorphm 6 May, 2015 @ 9:32am 
> У тебя не windows? Это, как раз, проблема разработчиков.

нет. на Linux такое
< >
Showing 1-15 of 21 comments
Per page: 1530 50