Skip to content

Commit

Permalink
translations tools sorting (TauCetiStation#12595)
Browse files Browse the repository at this point in the history
  • Loading branch information
volas authored Dec 14, 2023
1 parent a894076 commit abbcb29
Show file tree
Hide file tree
Showing 12 changed files with 168 additions and 141 deletions.
131 changes: 131 additions & 0 deletions code/__DEFINES/_translation.dm
Original file line number Diff line number Diff line change
@@ -0,0 +1,131 @@
////////////////////////////////////////////////
// Падежи //
////////////////////////////////////////////////

#define NOMINATIVE_CASE 1 //delete when names get translated... or dont.
#define GENITIVE_CASE 2
#define DATIVE_CASE 3
#define ACCUSATIVE_CASE 4
#define ABLATIVE_CASE 5
#define PREPOSITIONAL_CASE 6

// Пример определения CASEs у объекта:
// /atom
// cases = list("атом", "атома", "атому", "атом", "атомом", "атоме")
//
// Пример использования:
// "... [CASE(atom, DATIVE_CASE)] ..."
// Если у объекта не определены cases, будет взят дефолтный name, который скорее всего на английском.

#define CASE(atom, case) (atom.cases && atom.cases[case] ? atom.cases[case] : atom.name)

////////////////////////////////////////////////
// Местоимения(ENG) //
////////////////////////////////////////////////

// В английском большинство ситуаций покрывается дефолтными бьендовскими макросами:
// https://www.byond.com/docs/ref/info.html#/DM/text/macros
// но дефолтные макросы контекстно зависимы от положения в строке и их не всегда достаточно

#define P_THEY(atom) atom.gender == MALE && "he" \
|| atom.gender == FEMALE && "she" \
|| atom.gender == NEUTER && "it" \
|| "they"

#define P_THEM(atom) atom.gender == MALE && "him" \
|| atom.gender == FEMALE && "her" \
|| "them"

#define P_THEIR(atom) atom.gender == MALE && "his" \
|| atom.gender == FEMALE && "her" \
|| "their"

////////////////////////////////////////////////
// Местоимения(RU) //
////////////////////////////////////////////////

// По большей части аналоги дефолтных бьендовских макросов, но для русского языка

// И Кто/что
// "Неудачно пошутив, [THEY_RU(src)] падает без признаков жизни"
#define THEY_RU(atom) atom.gender == MALE && "он" \
|| atom.gender == FEMALE && "она" \
|| atom.gender == NEUTER && "оно" \
|| "они"
// Р Кого/чего
// "У вас больше нет [THEIR_RU(src)]"
#define THEIR_RU(atom) atom.gender == MALE && "его" \
|| atom.gender == FEMALE && "её" \
|| atom.gender == NEUTER && "этого" \
|| "их"
// Д Кому/чему
// "Вы передали [TO_RU(src)] предмет"
#define TO_RU(atom) atom.gender == MALE && "ему" \
|| atom.gender == FEMALE && "ей" \
|| atom.gender == NEUTER && "этому" \
|| "им"
// Д К кому/к чему
// "По [TO2_RU(src)] сразу видно"
#define TO2_RU(atom) atom.gender == MALE && "нему" \
|| atom.gender == FEMALE && "ней" \
|| atom.gender == NEUTER && "этому" \
|| "ним"
// В Кого/что
// "Вы больше не видите [THEM_RU(src)]"
#define THEM_RU(atom) atom.gender == MALE && "его" \
|| atom.gender == FEMALE && "её" \
|| atom.gender == NEUTER && "это" \
|| "их"
// Т Кем/чем
// "Вы пытаетесь ударить [BY_RU(src)]"
#define BY_RU(atom) atom.gender == MALE && "им" \
|| atom.gender == FEMALE && "ею" \
|| atom.gender == NEUTER && "этим" \
|| "ими"
// П (В) ком/чём
// "Вы полностью уверены в [IN_RU(src)]"
#define IN_RU(atom) atom.gender == MALE && "нём" \
|| atom.gender == FEMALE && "ней" \
|| atom.gender == NEUTER && "этом" \
|| "них"
// П О ком/о чём
// "Вы всё время думаете [ABOUT_RU(src)]"
#define ABOUT_RU(atom) atom.gender == MALE && "о нём" \
|| atom.gender == FEMALE && "о ней" \
|| atom.gender == NEUTER && "об этом" \
|| "о них"
// Чьё
// "По неизвестной причине [MY_RU(src)] зрение ухудшается" // todo: имеется в виду [MY_RU(зрение)], тут и ниже - так себе примеры
#define MY_RU(atom) atom.gender == MALE && "мой" \
|| atom.gender == FEMALE && "моя" \
|| atom.gender == NEUTER && "моё" \
|| "мои"
// Чьё
// "Вы пытаетесь встать, но [YOURS_RU(src)] ноги не шевелятся"
#define YOURS_RU(atom) atom.gender == MALE && "ваш" \
|| atom.gender == FEMALE && "ваша" \
|| atom.gender == NEUTER && "ваше" \
|| "ваши"
// Который
// "К сожалению, [WHICH_RU(src)] органическое лезвие нельзя положить в сумку"
#define WHICH_RU(atom) atom.gender == MALE && "этот" \
|| atom.gender == FEMALE && "эта" \
|| atom.gender == NEUTER && "это" \
|| "эти"

////////////////////////////////////////////////
// Глагол //
////////////////////////////////////////////////

// Прошедшее время глагола
// "делал[VERB_RU(src)]"
#define VERB_RU(atom) atom.gender == MALE && "" \
|| atom.gender == FEMALE && "а" \
|| atom.gender == NEUTER && "о" \
|| "и"
// Прошедшее время возвратного глагола
// "отказал[VERB2_RU(src)] взять предмет"
#define VERB2_RU(atom) atom.gender == MALE && "ся" \
|| atom.gender == FEMALE && "ась" \
|| atom.gender == NEUTER && "ось" \
|| "ись"
96 changes: 0 additions & 96 deletions code/__DEFINES/pronouns.dm

This file was deleted.

12 changes: 0 additions & 12 deletions code/__HELPERS/translation.dm

This file was deleted.

8 changes: 4 additions & 4 deletions code/datums/emotes/generic/audible.dm
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@
)

/datum/emote/roar/get_impaired_msg(mob/user)
return "opens [P_THEIR(user.gender)] mouth wide and scary!"
return "opens [P_THEIR(user)] mouth wide and scary!"

/datum/emote/gasp
key = "gasp"
Expand Down Expand Up @@ -81,7 +81,7 @@
cloud = "cloud-gasp"

/datum/emote/choke/get_impaired_msg(mob/user)
return "clutches [P_THEIR(user.gender)] throat desperately!"
return "clutches [P_THEIR(user)] throat desperately!"

/datum/emote/moan
key = "moan"
Expand All @@ -102,7 +102,7 @@
)

/datum/emote/moan/get_impaired_msg(mob/user)
return "opens [P_THEIR(user.gender)] mouth wide"
return "opens [P_THEIR(user)] mouth wide"

/datum/emote/cough
key = "cough"
Expand All @@ -121,4 +121,4 @@
)

/datum/emote/cough/get_impaired_msg(mob/user)
return "moves [P_THEIR(user.gender)] face forward as [P_THEY(user.gender)] open and close [P_THEIR(user.gender)] mouth!"
return "moves [P_THEIR(user)] face forward as [P_THEY(user)] open and close [P_THEIR(user)] mouth!"
4 changes: 2 additions & 2 deletions code/datums/emotes/generic/visual.dm
Original file line number Diff line number Diff line change
Expand Up @@ -94,7 +94,7 @@
)

/datum/emote/shake/get_emote_message_3p(mob/user)
return "shakes [P_THEIR(user.gender)] head."
return "shakes [P_THEIR(user)] head."


/datum/emote/twitch
Expand Down Expand Up @@ -164,4 +164,4 @@
)

/datum/emote/deathgasp/get_emote_message_3p(mob/user)
return "seizes up and falls limp, [P_THEIR(user.gender)] eyes dead and lifeless..."
return "seizes up and falls limp, [P_THEIR(user)] eyes dead and lifeless..."
Loading

0 comments on commit abbcb29

Please sign in to comment.