[phpBB Debug] PHP Notice: in file /includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Notice: in file /includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Notice: in file /includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Notice: in file /includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Notice: in file /includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Notice: in file /includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Notice: in file /includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Notice: in file /includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Notice: in file /includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Notice: in file /includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Notice: in file /includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Notice: in file /includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Notice: in file /includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Notice: in file /includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Notice: in file /includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Notice: in file /includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Notice: in file /includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Notice: in file /includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Notice: in file /includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Notice: in file /includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Notice: in file /includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Notice: in file /includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Notice: in file /includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Notice: in file /includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Notice: in file /includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Notice: in file /includes/bbcode.php on line 379: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Notice: in file /includes/bbcode.php on line 112: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Notice: in file /includes/bbcode.php on line 112: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Notice: in file /includes/bbcode.php on line 112: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Notice: in file /includes/bbcode.php on line 112: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Notice: in file /includes/bbcode.php on line 112: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Notice: in file /includes/bbcode.php on line 112: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Notice: in file /includes/bbcode.php on line 112: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Notice: in file /includes/bbcode.php on line 112: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Notice: in file /includes/functions.php on line 4505: Cannot modify header information - headers already sent by (output started at /includes/functions.php:3706)
[phpBB Debug] PHP Notice: in file /includes/functions.php on line 4507: Cannot modify header information - headers already sent by (output started at /includes/functions.php:3706)
[phpBB Debug] PHP Notice: in file /includes/functions.php on line 4508: Cannot modify header information - headers already sent by (output started at /includes/functions.php:3706)
[phpBB Debug] PHP Notice: in file /includes/functions.php on line 4509: Cannot modify header information - headers already sent by (output started at /includes/functions.php:3706)
GreenCubes • Просмотр темы - Записки разработчика: Строки и переводы
GreenCubes WikiИнформацияПремиум-магазинНачать игратьКарта мира

Записки разработчика: Строки и переводы

Записки разработчика: Строки и переводы

Сообщение Feyola » 22 июл 2014, 05:35

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

В клиенте можно увидеть названия предметов в инвентаре. Эти названия нужно придумать, записать, структурировать, проверить на ошибки, и так далее. Но это только вершина айсберга. Существует множество технических строк, названия которых игроки не видят, но порядок и отсутствие ошибок в них так же важны. Кроме того, я сразу делаю перевод на английский язык и задаю объем предметов (для нового инвентаря). Об этом я и расскажу.

Русские названия предметов. (Для простоты я буду называть предметами и блоки и предметы.) За основу своего списка я взяла наш серверный . В нем около 1000 записей. Я начала с исправления множества ошибок и казусов. Многие предметы изначально (в minecraft) существовали в единственном варианте (бревно, доски, листва), позже были добавлены другие вариации. Эти предметы так и оставались просто, например, бревном или листвой, без уточнения, из какого дерева они сделаны. Предметы добавлялись порциями, и в разное время я избирала разные способы образования названий, в результате получалось так:
ИзображениеЛистья
ИзображениеБерезовая листва
ИзображениеЕловая листва
ИзображениеЛиства яблони
ИзображениеЛиства баобаба
Правильной формулировкой является «Листва чего-либо», потому что образовать прилагательное из некоторых слов может быть сложно или неприятно, например «баобабовая листва». И такие проблемы со всем подряд, от полублоков до заборов.
Еще удивительные примеры под спойлером.


Декоративные модификации блоков. Кроме исправлений и других менее массовых изменений, я решила внести серьёзное изменение стиля именования списка предметов (42 наименования), и об этом я хочу отдельно рассказать, как о изменении в новом клиенте по сравнению со старым. У нас есть различные модификации некоторых блоков, которые фактически представляют собой декоративные модификации. Это, например, мшистый, треснувший, заснеженный каменный кирпич. Пока у нас не появилось три варианта декоративных песчаников, эта проблема не стояла так остро. Само перечисление названий вызывает улыбку:
ИзображениеДекоративный песчаник
ИзображениеДекоративный гладкий песчаник
ИзображениеГладкий песчаник
А когда нашим художникам придет вдохновение на какую-нибудь декоративную модификацию, придется придумывать еще и еще странные названия с прилагательными, условно изображающими свойства блока. Чтобы решить и нынешнюю и будущие проблемы с именованием, я решила называть такие блоки "Декоративный блок (модификация)". Например "Декоративный песчаник (крипер)". Это сильно упрощает именование декоративных модификаций блоков, позволяя просто придумать существительное. Кроме того, это название не склоняется в названиях производных из материала, чтобы не усложнять именование. Наличие верхних и боковых полублоков, а так же двойных модификаций (заснеженный треснувший каменный кирпич) заставили меня сомневаться в адекватности такого принципа именования. Однако я решила это перечислением модификаций в одних скобках, например:
ИзображениеДекоративный каменный кирпич (треснувший, заснеженный)
ИзображениеПолублок декоративного песчаного камня (верхний, гладкий)
Кроме того, именование различных производных из материалов (колонны, октаблоки и т.д.) усложняет именование. Да, в случае с простыми вариантами вроде "Ступени из мшистого булыжника" старый вариант и правда лучше. Но в сложных вариантах такой принцип не подходит. Я считаю что лучше везде по одному принципу, стандартизировано, чем подходяще для каждого случая, но как попало.

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

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

Английский язык.
С английским языком все очевидно, нужно перевести. При этом у нас нет ошибок, оставшихся с майнкрафта, и даже оригинальными названиями майнкрафтовской части предметов я не обязана руководствоваться. Тут конечно же есть проблемы свойственные любому переводу, но они не очень сложные. Я узнала много нового о различиях между британским и американским английским, определилась что перевожу на американский. Позже было решено не тратить сейчас время на доведение перевода до готовности, и он был оставлен в недоделанном виде. Около 30% переведено качественно, еще около 55% переведены автоматически, и остальные строки просто пусты. Переключиться на английский язык пока нельзя.

Моя палочка в английском переводе:
Изображение

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

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

Так как я упомянула не раскрытые ранее элементы новой игры, то чтобы не порождать неверные додумывания, я должна их объяснить. Типы предметов - строка, определяющая тип предмета. Это может иметь множество применений от слота в рецепте, принимающего любой предмет заданного типа, до элементарного понимания игроком, что за предмет перед ним находится, и, к примеру, какой навык отвечает за качество использования этого предмета. Таблица конвертации старых предметов в новые. Большую часть различий составляют материалы. Например, золотой самородок, слиток золота и золотой куб - будут конвертированы в материал золото с соответствующим количеством.

Если вы хотите написать мне в личку:
Аватара пользователя
Feyola
 
Сообщения: 950
Зарегистрирован: 18 фев 2011, 22:48
Откуда: 日本

Re: Записки разработчика: Строки и переводы

Сообщение MacMax » 22 июл 2014, 11:16

Здорво!
А как будет побеждено то, что большие строки наименования не влезают на таблички и укорачиваются до двух-полтора слов?
Может отличительное прилагательное все же первым делать?
Например "Заснеженный треснувший декоративный каменный кирпич"

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

Соответственно образование имени будет по такой схеме:
Камень -> Каменный кирпич -> Заснеженный каменный кирпич
Камень -> Каменный кирпич -> Треснувший декоративный каменный кирпич -> Заснеженный треснувший декоративный каменный кирпич
во всех случаях обрезка имени до двух слов все же позволяет их отличить.

В общем, есть проблема использования наименований в малом пространстве, как правило имя там обрезано.
MacMax
 
Сообщения: 1207
Зарегистрирован: 25 дек 2011, 12:41
Откуда: Москва

Re: Записки разработчика: Строки и переводы

Сообщение Nickolay_V » 22 июл 2014, 11:23

Честшопов же не будет в новой игре. Будут торговые хабы.
Аватара пользователя
Nickolay_V
 
Сообщения: 2542
Зарегистрирован: 14 сен 2011, 20:51
Откуда: Москва

Re: Записки разработчика: Строки и переводы

Сообщение MacMax » 22 июл 2014, 11:29

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

Так, что проблема будет,
MacMax
 
Сообщения: 1207
Зарегистрирован: 25 дек 2011, 12:41
Откуда: Москва

Re: Записки разработчика: Строки и переводы

Сообщение Feyola » 22 июл 2014, 11:33

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

Если вы хотите написать мне в личку:
Аватара пользователя
Feyola
 
Сообщения: 950
Зарегистрирован: 18 фев 2011, 22:48
Откуда: 日本

Re: Записки разработчика: Строки и переводы

Сообщение Rena4ka » 22 июл 2014, 11:53

Можно сделать уменьшение размера текста на табличке в честшопах.
Аватара пользователя
Rena4ka
Judgmento desu no!
 
Сообщения: 9480
Зарегистрирован: 18 фев 2011, 22:46
Откуда: Информационное пространство Земли

Re: Записки разработчика: Строки и переводы

Сообщение OnlyAW » 22 июл 2014, 11:56

Переводы будут храниться отдельными файлами?
Аватара пользователя
OnlyAW
 
Сообщения: 2311
Зарегистрирован: 26 июл 2011, 13:52

Re: Записки разработчика: Строки и переводы

Сообщение Rena4ka » 22 июл 2014, 12:01

Да.
Аватара пользователя
Rena4ka
Judgmento desu no!
 
Сообщения: 9480
Зарегистрирован: 18 фев 2011, 22:46
Откуда: Информационное пространство Земли

Re: Записки разработчика: Строки и переводы

Сообщение Rena4ka » 23 июл 2014, 07:46

Кстати, вы можете «потестировать» английский добавив в config.yml строку «lang: enUS».
Аватара пользователя
Rena4ka
Judgmento desu no!
 
Сообщения: 9480
Зарегистрирован: 18 фев 2011, 22:46
Откуда: Информационное пространство Земли

Re: Записки разработчика: Строки и переводы

Сообщение MaRk0FFka » 23 июл 2014, 15:12

Какие языки будут ещё?
Аватара пользователя
MaRk0FFka
 
Сообщения: 4431
Зарегистрирован: 07 фев 2012, 13:28
Откуда: Екатеринбург. Россия.

Re: Записки разработчика: Строки и переводы

Сообщение Rena4ka » 23 июл 2014, 16:33

Какие понадобятся в будущем :)
Аватара пользователя
Rena4ka
Judgmento desu no!
 
Сообщения: 9480
Зарегистрирован: 18 фев 2011, 22:46
Откуда: Информационное пространство Земли

Re: Записки разработчика: Строки и переводы

Сообщение Feyola » 24 июл 2014, 06:59

Очень многие игры и программы (в том числе Minecraft) имеют переводы, сделанные сообществом игроков из разных стран. Разработчики делают перевод на языки которые знают сами (обычно англ. и их родной), после чего предлагают игрокам сделать переводы на свои языки и добавляют готовые переводы. А потом обновляют. Я даже знаю несколько сайтов-платформ для таких переводов.

Если вы хотите написать мне в личку:
Аватара пользователя
Feyola
 
Сообщения: 950
Зарегистрирован: 18 фев 2011, 22:48
Откуда: 日本

Re: Записки разработчика: Строки и переводы

Сообщение BloodyAvenger » 24 июл 2014, 09:20

Недавно заметил в TMI все виды дерева которые назывались Бревно яблони :?
Аватара пользователя
BloodyAvenger
 
Сообщения: 4079
Зарегистрирован: 28 окт 2011, 21:57
Откуда: Санкт-Петербург

Re: Записки разработчика: Строки и переводы

Сообщение Aceko » 24 июл 2014, 09:24

Кстати языки вы добавили а вот набирать текст можно только русский и английский.
Аватара пользователя
Aceko
 
Сообщения: 670
Зарегистрирован: 31 авг 2012, 21:02

Re: Записки разработчика: Строки и переводы

Сообщение Rena4ka » 24 июл 2014, 09:31

Потому что у нас на сервере запрещены символы из других языков, клиент тоже не даёт набирать.
Аватара пользователя
Rena4ka
Judgmento desu no!
 
Сообщения: 9480
Зарегистрирован: 18 фев 2011, 22:46
Откуда: Информационное пространство Земли

Re: Записки разработчика: Строки и переводы

Сообщение Aceko » 24 июл 2014, 09:41

Аватара пользователя
Aceko
 
Сообщения: 670
Зарегистрирован: 31 авг 2012, 21:02

Re: Записки разработчика: Строки и переводы

Сообщение Lenald » 24 июл 2014, 11:53

А вообще я думал, что это будет вроде блога без возможности комментировать. Так было бы лучше, имхо.
Lenald
 
Сообщения: 1692
Зарегистрирован: 18 июн 2013, 02:40
Откуда: skype: lle0_nard

Re: Записки разработчика: Строки и переводы

Сообщение Aceko » 24 июл 2014, 13:02

Обсуждения иногда помогает исправить недочеты
Аватара пользователя
Aceko
 
Сообщения: 670
Зарегистрирован: 31 авг 2012, 21:02

Re: Записки разработчика: Строки и переводы

Сообщение benseeley » 24 июл 2014, 13:18


Вопрос - клиент же нормально будет отображать кастомные французские символы, такие как "é", "è", "ï", "œ", прочие? я не о написании в чат, а в названиях предметов/блоков в инвентаре.
Последний раз редактировалось benseeley 25 июл 2014, 16:15, всего редактировалось 20 раз(а).
Аватара пользователя
benseeley
 
Сообщения: 3131
Зарегистрирован: 28 ноя 2012, 08:02
Откуда: Ничего не помню: шел, подскользнулся, упал, потерял сознание. Проснулся - гипс.

Re: Записки разработчика: Строки и переводы

Сообщение Rena4ka » 24 июл 2014, 13:46

Аватара пользователя
Rena4ka
Judgmento desu no!
 
Сообщения: 9480
Зарегистрирован: 18 фев 2011, 22:46
Откуда: Информационное пространство Земли

Re: Записки разработчика: Строки и переводы

Сообщение benseeley » 24 июл 2014, 13:52

Аватара пользователя
benseeley
 
Сообщения: 3131
Зарегистрирован: 28 ноя 2012, 08:02
Откуда: Ничего не помню: шел, подскользнулся, упал, потерял сознание. Проснулся - гипс.

Re: Записки разработчика: Строки и переводы

Сообщение Feyola » 24 июл 2014, 13:57


Если вы хотите написать мне в личку:
Аватара пользователя
Feyola
 
Сообщения: 950
Зарегистрирован: 18 фев 2011, 22:48
Откуда: 日本

Re: Записки разработчика: Строки и переводы

Сообщение Ostap_Bender » 24 июл 2014, 14:24

Считаю обязательным ввести такую букву испанского языка как ñ. А так же все буквы, требующие ударения в написании á, é, ó, í...
Аватара пользователя
Ostap_Bender
 
Сообщения: 802
Зарегистрирован: 16 авг 2013, 10:30
Откуда: Санкт-Петербург

Re: Записки разработчика: Строки и переводы

Сообщение delfigamer » 24 июл 2014, 19:40

Аватара пользователя
delfigamer
 
Сообщения: 710
Зарегистрирован: 15 май 2011, 16:31

Re: Записки разработчика: Строки и переводы

Сообщение benseeley » 24 июл 2014, 19:42

Аватара пользователя
benseeley
 
Сообщения: 3131
Зарегистрирован: 28 ноя 2012, 08:02
Откуда: Ничего не помню: шел, подскользнулся, упал, потерял сознание. Проснулся - гипс.

Re: Записки разработчика: Строки и переводы

Сообщение delfigamer » 24 июл 2014, 19:46

Она нужна только на этапе разработки. Как только выйдет 1.0.0, старый клиент отправится на помойку.
К тому же, ничто не мешает научить новый клиент отображать Юникод и сейчас. Кроме, возможно, разве что формата строк, но и эта проблема вполне решаема.
Аватара пользователя
delfigamer
 
Сообщения: 710
Зарегистрирован: 15 май 2011, 16:31

Re: Записки разработчика: Строки и переводы

Сообщение benseeley » 24 июл 2014, 19:48

Аватара пользователя
benseeley
 
Сообщения: 3131
Зарегистрирован: 28 ноя 2012, 08:02
Откуда: Ничего не помню: шел, подскользнулся, упал, потерял сознание. Проснулся - гипс.

Re: Записки разработчика: Строки и переводы

Сообщение delfigamer » 24 июл 2014, 19:54

Не вижу, процитируй.
Аватара пользователя
delfigamer
 
Сообщения: 710
Зарегистрирован: 15 май 2011, 16:31

Re: Записки разработчика: Строки и переводы

Сообщение benseeley » 24 июл 2014, 20:24

Аватара пользователя
benseeley
 
Сообщения: 3131
Зарегистрирован: 28 ноя 2012, 08:02
Откуда: Ничего не помню: шел, подскользнулся, упал, потерял сознание. Проснулся - гипс.

Re: Записки разработчика: Строки и переводы

Сообщение delfigamer » 25 июл 2014, 05:53

This starts getting interesting...

Ваш ход, господин Бенсили! Изображение
_

Не, серьёзно, так сложно показать, в каком именно предложении ты вычитал «поддержку Юникода»?
Я вот, например, не уверен на 100%, что клиент справится с китайскими иероглифами - их может просто не быть в используемых шрифтах. Есть сомнения на счёт Zalgo-символов - они требуют особого обращения при отображении.
С другой стороны, есть вероятность, что новый клиент отобразит даже древнеегипетские письмена - они тоже где-то в Юникоде висят.
Аватара пользователя
delfigamer
 
Сообщения: 710
Зарегистрирован: 15 май 2011, 16:31

След.

Вернуться в Блог разработки



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 3

cron