Skip to content

Commit

Permalink
Translate: most of atom_say and autosay (#937)
Browse files Browse the repository at this point in the history
<!-- Пишите **НИЖЕ** заголовков и **ВЫШЕ** комментариев, иначе что то
может пойти не так. -->
<!-- Вы можете прочитать Contributing.MD, если хотите узнать больше. -->

## Что этот PR делает
Перевод всех (или почти всех) atom_say (то что видно в рунчате) и
autosay (то что выплевывается зачастую рацию)

## Почему это хорошо для игры
Озвучка ТТС, перевод

## Изображения изменений

![image](https://github.com/ss220club/Paradise-SS220/assets/20109643/9187a5e4-0652-43b2-9250-9b24786ca5ad)

![image](https://github.com/ss220club/Paradise-SS220/assets/20109643/c920f0c4-7aea-4555-8e3e-54df9ab897d2)

![image](https://github.com/ss220club/Paradise-SS220/assets/20109643/220d8777-c92a-4a87-bd22-8923c45b2b1f)

![image](https://github.com/ss220club/Paradise-SS220/assets/20109643/b9db8556-2b09-420f-b01f-2f72d63cf751)

![image](https://github.com/ss220club/Paradise-SS220/assets/20109643/cdaaf387-baf2-4001-b9c7-bc10b87113c2)

## Тестирование
В игре

## Changelog

:cl:
spellcheck: Перевод всех (или почти всех) atom_say и autosay
/:cl:

<!-- Оба :cl:'а должны быть на месте, что-бы чейнджлог работал! Вы
можете написать свой ник справа от первого :cl:, если хотите. Иначе
будет использован ваш ник на ГитХабе. -->
<!-- Вы можете использовать несколько записей с одинаковым префиксом
(Они используются только для иконки в игре) и удалить ненужные. Помните,
что чейнджлог должен быть понятен обычным игроком. -->
<!-- Если чейнджлог не влияет на игроков(например, это рефактор), вы
можете исключить всю секцию. -->

---------

Co-authored-by: Mikhail Dzianishchyts <[email protected]>
  • Loading branch information
dj-34 and m-dzianishchyts authored Jan 29, 2024
1 parent d70dafd commit dde4119
Show file tree
Hide file tree
Showing 32 changed files with 99 additions and 99 deletions.
2 changes: 1 addition & 1 deletion code/__HELPERS/time.dm
Original file line number Diff line number Diff line change
Expand Up @@ -108,7 +108,7 @@
/proc/seconds_to_time(seconds as num)
var/numSeconds = seconds % 60
var/numMinutes = (seconds - numSeconds) / 60
return "[numMinutes] [numMinutes > 1 ? "minutes" : "minute"] and [numSeconds] seconds"
return "[numMinutes] [(numMinutes % 10) != 1 ? "минут(ы)" : "минута"] и [numSeconds] секунд"

/// Take a value in seconds and makes it display like a clock. Hours are stripped. (mm:ss)
/proc/seconds_to_clock(seconds as num)
Expand Down
14 changes: 7 additions & 7 deletions code/datums/holocall.dm
Original file line number Diff line number Diff line change
Expand Up @@ -34,10 +34,10 @@
dialed_holopads += H
var/area/area = get_area(H)
LAZYADD(H.holo_calls, src)
H.atom_say("[area] pad beeps: Incoming call from [caller]!")
H.atom_say("Оповещение с голопада [area]: Входящий звонок от [caller]!")

if(!dialed_holopads.len)
calling_holopad.atom_say("Connection failure.")
calling_holopad.atom_say("Соединение не установлено.")
qdel(src)
return

Expand Down Expand Up @@ -87,9 +87,9 @@
/datum/holocall/proc/Disconnect(obj/machinery/hologram/holopad/H)
if(H == connected_holopad)
var/area/A = get_area(connected_holopad)
calling_holopad.atom_say("[A] holopad disconnected.")
calling_holopad.atom_say("Связь с голопадом [A] прервана.")
else if(H == calling_holopad && connected_holopad)
connected_holopad.atom_say("[user] disconnected.")
connected_holopad.atom_say("[user] отключился.")

user.unset_machine(H)
if(istype(hangup))
Expand All @@ -101,15 +101,15 @@
/datum/holocall/proc/ConnectionFailure(obj/machinery/hologram/holopad/H, graceful = FALSE)
if(H == connected_holopad || H == calling_holopad)
if(!graceful && H != calling_holopad)
calling_holopad.atom_say("Connection failure.")
calling_holopad.atom_say("Соединение прервано.")
qdel(src)
return

LAZYREMOVE(H.holo_calls, src)
dialed_holopads -= H
if(!dialed_holopads.len)
if(graceful)
calling_holopad.atom_say("Call rejected.")
calling_holopad.atom_say("Вызов завершен.")
qdel(src)

//Answers a call made to a holopad `H` which cannot be the calling holopad. Pads not in the call are ignored
Expand Down Expand Up @@ -171,7 +171,7 @@
if(!connected_holopad)
. = world.time < (call_start_time + HOLOPAD_MAX_DIAL_TIME)
if(!.)
calling_holopad.atom_say("No answer received.")
calling_holopad.atom_say("Ответ не получен.")
calling_holopad.temp = ""
if(!.)
qdel(src)
Expand Down
4 changes: 2 additions & 2 deletions code/game/gamemodes/miniantags/abduction/machinery/console.dm
Original file line number Diff line number Diff line change
Expand Up @@ -228,11 +228,11 @@
/obj/machinery/abductor/console/proc/Dispense(item,cost=1)
if(experiment && experiment.credits >= cost)
experiment.credits -=cost
atom_say("Incoming supply!")
atom_say("Поступление средств!")
if(pad)
flick("alien-pad", pad)
new item(pad.loc)
else
new item(src.loc)
else
atom_say("Insufficient data!")
atom_say("Недостаточно средств!")
Original file line number Diff line number Diff line change
Expand Up @@ -111,16 +111,16 @@
if(H in history)
return "Specimen already in database."
if(H.stat == DEAD)
atom_say("Specimen deceased - please provide fresh sample.")
atom_say("Образец утрачен - пожалуйста, предоставьте свежий образец.")
return "Specimen deceased."
var/obj/item/organ/internal/heart/gland/GlandTest = locate() in H.internal_organs
if(!GlandTest)
atom_say("Experimental dissection not detected!")
atom_say("Экспериментальное вскрытие не обнаружено!")
return "No glands detected!"
if(H.mind != null && H.ckey != null)
history += H
abductee_minds += H.mind
atom_say("Processing specimen...")
atom_say("Образец обрабатывается...")
sleep(5)
switch(text2num(type))
if(1)
Expand Down Expand Up @@ -155,7 +155,7 @@
playsound(src.loc, 'sound/machines/buzz-sigh.ogg', 50, TRUE)
return "Experiment failed! No replacement organ detected."
else
atom_say("Brain activity nonexistent - disposing sample...")
atom_say("Мозговая активность отсутствует - утилизация образца...")
eject_abductee()
send_back(H)
return "Specimen braindead - disposed."
Expand Down
2 changes: 1 addition & 1 deletion code/game/machinery/Sleeper.dm
Original file line number Diff line number Diff line change
Expand Up @@ -131,7 +131,7 @@
if(world.timeofday > (R.last_addiction_dose + ADDICTION_SPEEDUP_TIME)) // 2.5 minutes
addiction_removal_chance = 10
if(prob(addiction_removal_chance))
atom_say("Patient's addiction was cured.")
atom_say("Пациент излечен от зависимости.")
playsound(get_turf(src), 'sound/machines/ping.ogg', 50, 0)
to_chat(occupant, "<span class='boldnotice'>You no longer feel reliant on [R.name]!</span>")
occupant.reagents.addiction_list.Remove(R)
Expand Down
6 changes: 3 additions & 3 deletions code/game/machinery/clonepod.dm
Original file line number Diff line number Diff line change
Expand Up @@ -319,7 +319,7 @@ GLOBAL_LIST_INIT(cloner_biomass_items, list(\

else if((occupant) && (occupant.loc == src))
if((occupant.stat == DEAD) || (occupant.suiciding)) //Autoeject corpses and suiciding dudes.
announce_radio_message("The cloning of <b>[occupant]</b> has been aborted due to unrecoverable tissue failure.")
announce_radio_message("Клонирование <b>[occupant]</b> было прервано из-за неустранимого разрушения тканей.")
go_out()
connected_message("Clone Rejected: Deceased.")

Expand Down Expand Up @@ -355,7 +355,7 @@ GLOBAL_LIST_INIT(cloner_biomass_items, list(\

else if((occupant.cloneloss <= (100 - heal_level)))
connected_message("Cloning Process Complete.")
announce_radio_message("The cloning cycle of <b>[occupant]</b> is complete.")
announce_radio_message("Цикл клонирования <b>[occupant]</b> завершен.")
go_out()

else if((!occupant) || (occupant.loc != src))
Expand All @@ -377,7 +377,7 @@ GLOBAL_LIST_INIT(cloner_biomass_items, list(\
return
else
connected_message("Authorized Ejection")
announce_radio_message("An authorized ejection of [(occupant) ? occupant.real_name : "the malfunctioning pod"] has occurred")
announce_radio_message("Внимание, произошло экстренное извлечение [(occupant) ? occupant.real_name : "неисправной капсулы"].")
to_chat(user, "<span class='notice'>You force an emergency ejection.</span>")
go_out()

Expand Down
14 changes: 7 additions & 7 deletions code/game/machinery/computer/Operating.dm
Original file line number Diff line number Diff line change
Expand Up @@ -199,20 +199,20 @@
var/isNewPatient = (table.patient != currentPatient) //Is this a new Patient?

if(table.patient.stat == DEAD || HAS_TRAIT(table.patient, TRAIT_FAKEDEATH))
patientStatus = "Dead"
patientStatus = "Отсутствует пульс"
else if(table.patient.stat == CONSCIOUS)
patientStatus = "Awake"
patientStatus = "В сознании"
else if(table.patient.stat == UNCONSCIOUS)
patientStatus = "Asleep"
patientStatus = "Без сознания"

if(isNewPatient)
atom_say("New patient detected, loading stats")
atom_say("Обнаружен пациент, загрузка данных.")
var/blood_type_msg
if(ishuman(table.patient))
blood_type_msg = table.patient.dna.blood_type
else
blood_type_msg = "\[ERROR: UNKNOWN\]"
atom_say("[table.patient], [blood_type_msg] blood, [patientStatus]")
blood_type_msg = "\[ОШИБКА: НЕИЗВЕСТНО\]"
atom_say("Пациент [table.patient], группа крови [blood_type_msg], статус пациента: [patientStatus].")
SStgui.update_uis(src)
patientStatusHolder = table.patient.stat
currentPatient = table.patient
Expand All @@ -226,5 +226,5 @@
if(healthAnnounce && table.patient.health <= healthAlarm)
atom_say("[round(table.patient.health)]")
if(table.patient.stat != patientStatusHolder)
atom_say("Patient is now [patientStatus]")
atom_say("Статус пациента: [patientStatus].")
patientStatusHolder = table.patient.stat
2 changes: 1 addition & 1 deletion code/game/machinery/computer/brigcells.dm
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,7 @@
var/obj/machinery/door_timer/T = locate(ref)
if(T)
T.timer_end()
T.Radio.autosay("Timer stopped manually from a cell management console.", T.name, "Security", list(z))
T.Radio.autosay("Таймер остановлен вручную с консоли управления камерами.", T.name, "Security", list(z))
return TRUE

return FALSE
2 changes: 1 addition & 1 deletion code/game/machinery/computer/card.dm
Original file line number Diff line number Diff line change
Expand Up @@ -623,7 +623,7 @@ GLOBAL_VAR_INIT(time_last_changed_position, 0)
if(R.fields["id"] == E.fields["id"])
if(status_valid_for_demotion(R.fields["criminal"]))
set_criminal_status(usr, R, SEC_RECORD_STATUS_DEMOTE, reason, scan.assignment)
Radio.autosay("[scan.registered_name] ([scan.assignment]) has set [tempname] ([temprank]) to demote for: [reason]", name, "Command", list(z))
Radio.autosay("[scan.registered_name] ([scan.assignment]) назначил [tempname] ([temprank]) на понижение за: [reason]", name, "Command", list(z))
message_admins("[key_name_admin(usr)] ([scan.assignment]) has set [tempname] ([temprank]) to demote for: \"[reason]\"")
log_game("[key_name(usr)] ([scan.assignment]) has set \"[tempname]\" ([temprank]) to demote for: \"[reason]\".")
SSjobs.notify_by_name(tempname, "[scan.registered_name] ([scan.assignment]) has ordered your demotion. Report to their office, or the HOP. Reason given: \"[reason]\"")
Expand Down
18 changes: 9 additions & 9 deletions code/game/machinery/doors/brigdoors.dm
Original file line number Diff line number Diff line change
Expand Up @@ -80,13 +80,13 @@
var/datum/data/record/R = find_security_record("name", occupant)

var/timetext = seconds_to_time(timetoset / 10)
var/announcetext = "Detainee [occupant] ([prisoner_drank]) has been incarcerated for [timetext] for the crime of: '[crimes]'. \
Arresting Officer: [usr.name].[R ? "" : " Detainee record not found, manual record update required."]"
var/announcetext = "Задержанный [occupant] ([prisoner_drank]) был помещен в камеру заключения на [timetext], за преступление: '[crimes]'. \
Ответственный офицер: [usr.name].[R ? "" : " Запись о задержанном не найдена, требуется обновление записи вручную."]"
Radio.autosay(announcetext, name, "Security")

// Notify the actual criminal being brigged. This is a QOL thing to ensure they always know the charges against them.
// Announcing it on radio isn't enough, as they're unlikely to have sec radio.
notify_prisoner("You have been incarcerated for [timetext] for the crime of: '[crimes]'.")
notify_prisoner("Вы были заключены в камеру заключения на [timetext], за преступление: '[crimes]'.")

if(prisoner_trank != "unknown" && prisoner_trank != "Assistant")
SSjobs.notify_dept_head(prisoner_trank, announcetext)
Expand Down Expand Up @@ -166,7 +166,7 @@
return
if(timing)
if(timeleft() <= 0)
Radio.autosay("Timer has expired. Releasing prisoner.", name, "Security", list(z))
Radio.autosay("Время заключения истекло. Освобождение заключенного.", name, "Security", list(z))
occupant = CELL_NONE
timer_end() // open doors, reset timer, clear status screen
timing = FALSE
Expand Down Expand Up @@ -376,9 +376,9 @@
to_chat(usr, "<span class='warning'>Cancelled reset: reason field is required.</span>")
return FALSE
releasetime = world.timeofday + timetoset
var/resettext = isobserver(usr) ? "for: [reset_reason]." : "by [usr.name] for: [reset_reason]."
Radio.autosay("Prisoner [occupant] had their timer reset [resettext]", name, "Security", list(z))
notify_prisoner("Your brig timer has been reset for: '[reset_reason]'.")
var/resettext = isobserver(usr) ? "по причине: '[reset_reason]'" : "офицером [usr.name], по причине: '[reset_reason]'"
Radio.autosay("Таймер заключенного [occupant] был сброшен [resettext].", name, "Security", list(z))
notify_prisoner("Ваш таймер был сброшен по причине: '[reset_reason]'.")
var/datum/data/record/R = find_security_record("name", occupant)
if(istype(R))
R.fields["comments"] += "Autogenerated by [name] on [GLOB.current_date_string] [station_time_timestamp()]<BR>Timer reset [resettext]"
Expand All @@ -387,8 +387,8 @@
if("stop")
if(timing)
timer_end()
var/stoptext = isobserver(usr) ? "from cell control." : "by [usr.name]."
Radio.autosay("Timer stopped manually [stoptext]", name, "Security", list(z))
var/stoptext = isobserver(usr) ? "консолью управления камерами." : "офицером [usr.name]."
Radio.autosay("Таймер остановлен вручную [stoptext]", name, "Security", list(z))
else
. = FALSE
if("flash")
Expand Down
4 changes: 2 additions & 2 deletions code/game/machinery/doppler_array.dm
Original file line number Diff line number Diff line change
Expand Up @@ -74,12 +74,12 @@ GLOBAL_LIST_EMPTY(doppler_arrays)

/obj/machinery/doppler_array/proc/print_explosive_logs(mob/user)
if(!logged_explosions.len)
atom_say("No logs currently stored in internal database.")
atom_say("В данный момент отчеты во внутренней базе данных отсутствуют.")
return
if(active_timers)
to_chat(user, "<span class='notice'>[src] is already printing something, please wait.</span>")
return
atom_say("Printing explosive log. Standby...")
atom_say("Распечатка отчета. Ожидайте...")
addtimer(CALLBACK(src, PROC_REF(print)), 50)

/obj/machinery/doppler_array/proc/print()
Expand Down
2 changes: 1 addition & 1 deletion code/game/machinery/hologram.dm
Original file line number Diff line number Diff line change
Expand Up @@ -292,7 +292,7 @@ GLOBAL_LIST_EMPTY(holopads)
var/datum/holocall/HC = I
//Sanity check and skip if no longer valid call
if(!HC.Check())
atom_say("Call was terminated at remote terminal.")
atom_say("Вызов был прерван удаленно.")
continue

if(HC.connected_holopad != src)
Expand Down
10 changes: 5 additions & 5 deletions code/game/machinery/requests_console.dm
Original file line number Diff line number Diff line change
Expand Up @@ -243,9 +243,9 @@ GLOBAL_LIST_EMPTY(allRequestConsoles)
else if(recipient in SUPPLY_ROLES)
radiochannel = "Supply"
message_log.Add(list(list("Message sent to [recipient] at [station_time_timestamp()]", "[message]")))
Radio.autosay("Alert; a new requests console message received for [recipient] from [department]", null, "[radiochannel]")
Radio.autosay("Оповещение: получено новое сообщение с консоли запросов для [recipient] от [department]", null, "[radiochannel]")
else
atom_say("No server detected!")
atom_say("Сервер не обнаружен!")

//Handle screen switching
if("setScreen")
Expand All @@ -271,11 +271,11 @@ GLOBAL_LIST_EMPTY(allRequestConsoles)
if("printLabel")
var/error_message
if(!ship_tag_index)
error_message = "Please select a destination."
error_message = "Пожалуйста, выберите пункт назначения."
else if(!msgVerified)
error_message = "Please verify shipper ID."
error_message = "Пожалуйста, проверьте ID отправителя."
else if(world.time < print_cooldown)
error_message = "Please allow the printer time to prepare the next shipping label."
error_message = "Пожалуйста, дайте принтеру время на подготовку следующей транспортировочной маркировки."
if(error_message)
atom_say("[error_message]")
return
Expand Down
16 changes: 8 additions & 8 deletions code/game/machinery/teleporter.dm
Original file line number Diff line number Diff line change
Expand Up @@ -111,10 +111,10 @@
return

if(!check_hub_connection())
atom_say("Error: Unable to detect hub.")
atom_say("Ошибка: Хаб не обнаружен.")
return
if(calibrating)
atom_say("Error: Calibration in progress. Stand by.")
atom_say("Ошибка: Выполняется калибровка. Ожидайте.")
return

. = TRUE
Expand All @@ -132,7 +132,7 @@
resetPowerstation()
var/turf/tmpTarget = locate(text2num(params["x"]), text2num(params["y"]), text2num(params["z"]))
if(!isturf(tmpTarget))
atom_say("No valid targets available.")
atom_say("Отсутствуют доступные пункты назначения.")
return
target = tmpTarget
if(regime == REGIME_TELEPORT)
Expand All @@ -141,13 +141,13 @@
gate_helper()
if("calibrate")
if(!target)
atom_say("Error: No target set to calibrate to.")
atom_say("Ошибка: Отсутствует пункт назначения для калибровки.")
return
if(power_station.teleporter_hub.calibrated || power_station.teleporter_hub.accurate >= 3)
atom_say("Hub is already calibrated.")
atom_say("Хаб уже откалиброван.")
return

atom_say("Processing hub calibration to target...")
atom_say("Калибровка хаба до пункта назначения...")
calibrating = TRUE
addtimer(CALLBACK(src, PROC_REF(calibrateCallback)), 50 * (3 - power_station.teleporter_hub.accurate)) //Better parts mean faster calibration

Expand All @@ -167,9 +167,9 @@
calibrating = FALSE
if(check_hub_connection())
power_station.teleporter_hub.calibrated = TRUE
atom_say("Calibration complete.")
atom_say("Калибровка завершена.")
else
atom_say("Error: Unable to detect hub.")
atom_say("Ошибка: Хаб не обнаружен.")

/obj/machinery/computer/teleporter/proc/check_hub_connection()
if(!power_station)
Expand Down
4 changes: 2 additions & 2 deletions code/game/objects/items/collar.dm
Original file line number Diff line number Diff line change
Expand Up @@ -70,8 +70,8 @@
pet_death_announcer.follow_target = src
if(istype(pet_death_area, /area/syndicate_mothership) || istype(pet_death_area, /area/shuttle/syndicate_elite))
//give the syndicats a bit of stealth
pet_death_announcer.autosay("[M] has been vandalized in Space!", "[M]'s Death Alarm")
pet_death_announcer.autosay("[M] подвергся акту вандализма в космосе!", "Датчик Смерти [M]")
else
pet_death_announcer.autosay("[M] has been vandalized in [pet_death_area.name]!", "[M]'s Death Alarm")
pet_death_announcer.autosay("[M] подвергся акту вандализма в [pet_death_area.name]!", "Датчик Смерти [M]")
qdel(pet_death_announcer)
STOP_PROCESSING(SSobj, src)
Loading

0 comments on commit dde4119

Please sign in to comment.