Skip to content

Commit

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

## Что этот PR делает

Восстановление перевода утраченного из-за технических ошибок

#569
#607
#608
#609


## Почему это хорошо для игры

<!-- Опишите, почему, по вашему, следует добавить эти изменения в игру.
-->

## Изображения изменений
<!-- Если вы не меняли карту или спрайты, можете опустить эту секцию.
Если хотите, можете вставить видео. -->

## Тестирование
<!-- Как вы тестировали свой PR, если делали это вовсе? -->

## Changelog

:cl:
add: Вернулся утраченный перевод
/:cl:

<!-- Оба :cl:'а должны быть на месте, что-бы чейнджлог работал! Вы
можете написать свой ник справа от первого :cl:, если хотите. Иначе
будет использован ваш ник на ГитХабе. -->
<!-- Вы можете использовать несколько записей с одинаковым префиксом
(Они используются только для иконки в игре) и удалить ненужные. Помните,
что чейнджлог должен быть понятен обычным игроком. -->
<!-- Если чейнджлог не влияет на игроков(например, это рефактор), вы
можете исключить всю секцию. -->
  • Loading branch information
KoJIT2009 authored Nov 4, 2023
1 parent 7569fe5 commit 02a7109
Show file tree
Hide file tree
Showing 6 changed files with 130 additions and 185 deletions.
142 changes: 71 additions & 71 deletions code/datums/ai_law_sets.dm

Large diffs are not rendered by default.

16 changes: 8 additions & 8 deletions code/datums/revision.dm
Original file line number Diff line number Diff line change
Expand Up @@ -74,7 +74,7 @@ GLOBAL_PROTECT(revision_info) // Dont mess with this
/datum/code_revision/proc/get_testmerge_chatmessage(header = FALSE)
var/list/msg = list()
if(header)
msg += "<span class='notice'>The following PRs are currently testmerged:</span>"
msg += "<span class='notice'>Следующие ПРы на данный момент тестируются:</span>"

for(var/pr in GLOB.revision_info.testmerges)
var/datum/tgs_revision_information/test_merge/tm = pr
Expand All @@ -83,14 +83,14 @@ GLOBAL_PROTECT(revision_info) // Dont mess with this
return msg.Join("<br>")

/client/verb/get_revision_info()
set name = "Get Revision Info"
set name = "Получить тех. информацию"
set category = "OOC"
set desc = "Retrieve technical information about the server"
set desc = "Получить техническую информацию о сервере"

var/list/msg = list()
msg += "<span class='notice'><b>Server Revision Info</b></span>"
msg += "<span class='notice'><b>Информация о сервере</b></span>"
// Round ID first
msg += "<b>Round ID:</b> [GLOB.round_id ? GLOB.round_id : "NULL"]"
msg += "<b>Номер раунда:</b> [GLOB.round_id ? GLOB.round_id : "NULL"]"

// Commit info
if(GLOB.revision_info.commit_hash && GLOB.revision_info.commit_date && GLOB.configuration.url.github_url)
Expand All @@ -101,12 +101,12 @@ GLOBAL_PROTECT(revision_info) // Dont mess with this
msg += "<b>Server Commit:</b> <i>Unable to determine</i>"

if(world.TgsAvailable() && length(GLOB.revision_info.testmerges))
msg += "<b>Active Testmerges:</b>"
msg += "<b>Активные тестовые обновления:</b>"
msg += GLOB.revision_info.get_testmerge_chatmessage(FALSE)

// Show server BYOND version
msg += "<b>Server BYOND Version:</b> [world.byond_version].[world.byond_build]"
msg += "<b>Версия серверного BYOND:</b> [world.byond_version].[world.byond_build]"
// And the clients for good measure
msg += "<b>Client (your) BYOND Version:</b> [byond_version].[byond_build]"
msg += "<b>Версия клиентского (твоего) BYOND:</b> [byond_version].[byond_build]"

to_chat(usr, msg.Join("<br>"))
2 changes: 1 addition & 1 deletion code/modules/mob/dead/observer/observer_base.dm
Original file line number Diff line number Diff line change
Expand Up @@ -284,7 +284,7 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp
..()
if(statpanel("Status"))
show_stat_emergency_shuttle_eta()
stat(null, "Respawnability: [HAS_TRAIT(src, TRAIT_RESPAWNABLE) ? "Yes" : "No"]")
stat(null, "Возможность респавна: [HAS_TRAIT(src, TRAIT_RESPAWNABLE) ? "Да" : "Нет"]")

/mob/dead/observer/verb/reenter_corpse()
set category = "Ghost"
Expand Down
12 changes: 6 additions & 6 deletions code/modules/mob/mob.dm
Original file line number Diff line number Diff line change
Expand Up @@ -998,13 +998,13 @@ GLOBAL_LIST_INIT(slot_equipment_priority, list( \
show_stat_turf_contents()

if(statpanel("Status"))
stat(null, "Round ID: [GLOB.round_id ? GLOB.round_id : "NULL"]")
stat(null, "Номер раунда: [GLOB.round_id ? GLOB.round_id : "NULL"]")
stat(null, "Map: [SSmapping.map_datum.fluff_name]")
if(SSmapping.next_map)
stat(null, "Next Map: [SSmapping.next_map.fluff_name]")
stat(null, "Следующая карта: [SSmapping.next_map.fluff_name]")
if(SSticker)
show_stat_station_time()
stat(null, "Players Connected: [length(GLOB.clients)]")
stat(null, "Игроков подключено: [length(GLOB.clients)]")

if(length(mob_spell_list))
for(var/obj/effect/proc_holder/spell/S in mob_spell_list)
Expand Down Expand Up @@ -1070,9 +1070,9 @@ GLOBAL_LIST_INIT(slot_equipment_priority, list( \

// this function displays the station time in the status panel
/mob/proc/show_stat_station_time()
stat(null, "Server Uptime: [worldtime2text()]")
stat(null, "Round Time: [ROUND_TIME ? time2text(ROUND_TIME, "hh:mm:ss") : "N/A"]")
stat(null, "Station Time: [station_time_timestamp()]")
stat(null, "Время работы сервера: [worldtime2text()]")
stat(null, "Длительность раунда: [ROUND_TIME ? time2text(ROUND_TIME, "hh:mm:ss") : "N/A"]")
stat(null, "Станционное время: [station_time_timestamp()]")
stat(null, "Time Dilation: [round(SStime_track.time_dilation_current,1)]% " + \
"AVG:([round(SStime_track.time_dilation_avg_fast,1)]%, " + \
"[round(SStime_track.time_dilation_avg,1)]%, " + \
Expand Down
84 changes: 42 additions & 42 deletions code/modules/mob/new_player/new_player.dm
Original file line number Diff line number Diff line change
Expand Up @@ -38,10 +38,10 @@
// Dont blank out the other window. This one is read only.
if(!GLOB.configuration.system.external_tos_handler)
src << browse(null, "window=playersetup")
output += "<p><a href='byond://?src=[UID()];consent_signed=SIGNED'>I consent</A>"
output += "<p><a href='byond://?src=[UID()];consent_rejected=NOTSIGNED'>I DO NOT consent</A>"
output += "<p><a href='byond://?src=[UID()];consent_signed=SIGNED'>Я согласен</A>"
output += "<p><a href='byond://?src=[UID()];consent_rejected=NOTSIGNED'>Я не согласен</A>"
src << browse(output,"window=privacy_consent;size=500x300")
var/datum/browser/popup = new(src, "privacy_consent", "<div align='center'>Privacy Consent</div>", 500, 400)
var/datum/browser/popup = new(src, "privacy_consent", "<div align='center'>Соглашение о конфиденциальности</div>", 500, 400)
// Let them close it here, this is a read only pane
if(!GLOB.configuration.system.external_tos_handler)
popup.set_window_options("can_close=0")
Expand All @@ -54,36 +54,36 @@
set waitfor = FALSE
var/real_name = client.prefs.active_character.real_name
if(client.prefs.toggles2 & PREFTOGGLE_2_RANDOMSLOT)
real_name = "Random Character Slot"
var/output = "<center><p><a href='byond://?src=[UID()];show_preferences=1'>Setup Character</A><br /><i>[real_name]</i></p>"
real_name = "Случайный персонаж"
var/output = "<center><p><a href='byond://?src=[UID()];show_preferences=1'>Настройка персонажа</A><br /><i>[real_name]</i></p>"

if(!SSticker || SSticker.current_state <= GAME_STATE_PREGAME)
if(!ready) output += "<p><a href='byond://?src=[UID()];ready=1'>Declare Ready</A></p>"
else output += "<p><b>You are ready</b> (<a href='byond://?src=[UID()];ready=2'>Cancel</A>)</p>"
if(!ready) output += "<p><a href='byond://?src=[UID()];ready=1'>Нажмите, если готовы</A></p>"
else output += "<p><b>Вы готовы</b> (<a href='byond://?src=[UID()];ready=2'>Отмена</A>)</p>"
else
output += "<p><a href='byond://?src=[UID()];manifest=1'>View the Crew Manifest</A></p>"
output += "<p><a href='byond://?src=[UID()];late_join=1'>Join Game!</A></p>"
output += "<p><a href='byond://?src=[UID()];manifest=1'>Просмотр списка экипажа</A></p>"
output += "<p><a href='byond://?src=[UID()];late_join=1'>Присоединиться к игре!</A></p>"

var/list/antags = client.prefs.be_special
if(antags && antags.len)
if(!client.skip_antag) output += "<p><a href='byond://?src=[UID()];skip_antag=1'>Global Antag Candidacy</A>"
if(!client.skip_antag) output += "<p><a href='byond://?src=[UID()];skip_antag=1'>Глобальная настройка антагов</A>"
else output += "<p><a href='byond://?src=[UID()];skip_antag=2'>Global Antag Candidacy</A>"
output += "<br /><small>You are <b>[client.skip_antag ? "ineligible" : "eligible"]</b> for all antag roles.</small></p>"
output += "<br /><small>Вы <b>[client.skip_antag ? "не готовы" : "готовы"]</b> для всех антаг ролей.</small></p>"

if(!SSticker || SSticker.current_state == GAME_STATE_STARTUP)
output += "<p>Observe (Please wait...)</p>"
output += "<p>Наблюдать (Ожидайте...)</p>"
else
output += "<p><a href='byond://?src=[UID()];observe=1'>Observe</A></p>"
output += "<p><a href='byond://?src=[UID()];observe=1'>Наблюдать</A></p>"

if(GLOB.join_tos)
output += "<p><a href='byond://?src=[UID()];tos=1'>Terms of Service</A></p>"
output += "<p><a href='byond://?src=[UID()];tos=1'>Условия использования</A></p>"

if(length(GLOB.configuration.system.region_map))
output += "<p><a href='byond://?src=[UID()];setregion=1'>Set region (reduces ping)</A></p>"

output += "</center>"

var/datum/browser/popup = new(src, "playersetup", "<div align='center'>New Player Options</div>", 240, 340)
var/datum/browser/popup = new(src, "playersetup", "<div align='center'>Новый игрок</div>", 240, 340)
popup.set_window_options("can_close=0")
popup.set_content(output)
popup.open(0)
Expand All @@ -93,24 +93,24 @@
..()
if(statpanel("Status") && SSticker)
if(!SSticker.hide_mode)
stat("Game Mode: [GLOB.master_mode]")
stat("Режим: [GLOB.master_mode]")
else
stat("Game Mode: Secret")
stat("Режим: Секрет")

if(SSticker.current_state == GAME_STATE_PREGAME)
if(SSticker.ticker_going)
stat("Time To Start: [round(SSticker.pregame_timeleft/10)]")
stat("Начало через: [round(SSticker.pregame_timeleft/10)]")
else
stat("Time To Start:", "DELAYED")
stat("Начало через:", "УДЕРЖАНИЕ")

stat("Players: [totalPlayers]")
stat("Игроки: [totalPlayers]")
if(check_rights(R_ADMIN, 0, src))
stat("Players Ready: [totalPlayersReady]")
stat("Готово: [totalPlayersReady]")
totalPlayers = 0
totalPlayersReady = 0
for(var/mob/new_player/player in GLOB.player_list)
if(check_rights(R_ADMIN, 0, src))
stat("[player.key] [(player.ready) ? ("(Playing)") : (null)]")
stat("[player.key] [(player.ready) ? ("(В игре)") : (null)]")
totalPlayers++
if(player.ready)
totalPlayersReady++
Expand All @@ -133,7 +133,7 @@
new_player_panel_proc()
if(href_list["consent_rejected"])
client.tos_consent = FALSE
to_chat(usr, "<span class='warning'>You must consent to the terms of service before you can join!</span>")
to_chat(usr, "<span class='warning'>Перед тем как присоединиться, вы должны согласиться с условиями использования!</span>")
var/datum/db_query/query = SSdbcore.NewQuery("REPLACE INTO privacy (ckey, datetime, consent) VALUES (:ckey, Now(), 0)", list(
"ckey" = ckey
))
Expand All @@ -147,13 +147,13 @@

if(href_list["ready"])
if(!client.tos_consent)
to_chat(usr, "<span class='warning'>You must consent to the terms of service before you can join!</span>")
to_chat(usr, "<span class='warning'>Перед тем как присоединиться, вы должны согласиться с условиями использования!</span>")
return FALSE
if(client.version_blocked)
client.show_update_notice()
return FALSE
if(!ready && !client.prefs.active_character.check_any_job() && (client.prefs.active_character.alternate_option == RETURN_TO_LOBBY))
to_chat(usr, "<span class='danger'>You have no jobs enabled, along with return to lobby if job is unavailable. This makes you ineligible for any round start role, please update your job preferences.</span>")
to_chat(usr, "<span class='danger'>Вы не выбрали ни одну должность, а также включена функция возврата в лобби в случае недоступности должности. Это не даёт вам получить раунд-стартовую роль, проверьте ваши настройки должностей.</span>")
ready = FALSE
return FALSE

Expand All @@ -173,16 +173,16 @@

if(href_list["observe"])
if(!client.tos_consent)
to_chat(usr, "<span class='warning'>You must consent to the terms of service before you can join!</span>")
to_chat(usr, "<span class='warning'>Перед тем как присоединиться, вы должны согласиться с условиями использования!</span>")
return FALSE
if(client.version_blocked)
client.show_update_notice()
return FALSE
if(!SSticker || SSticker.current_state == GAME_STATE_STARTUP)
to_chat(usr, "<span class='warning'>You must wait for the server to finish starting before you can join!</span>")
to_chat(usr, "<span class='warning'>Вы должны дождаться окончания запуска сервера, прежде чем сможете присоединиться к нему!</span>")
return FALSE

if(alert(src,"Are you sure you wish to observe? You cannot normally join the round after doing this!","Player Setup","Yes","No") == "Yes")
if(alert(src,"Вы уверены, что хотите наблюдать? <br> После этого Вы не сможете присоединиться к раунду!","Настройка игрока","Да","Нет") == "Да")
if(!client)
return 1
var/mob/dead/observer/observer = new(src)
Expand All @@ -194,7 +194,7 @@
observer.started_as_observer = 1
close_spawn_windows()
var/obj/O = locate("landmark*Observer-Start")
to_chat(src, "<span class='notice'>Now teleporting.</span>")
to_chat(src, "<span class='notice'>Телепортация...</span>")
observer.forceMove(O.loc)
observer.timeofdeath = world.time // Set the time of death so that the respawn timer works correctly.
client.prefs.active_character.update_preview_icon(1)
Expand All @@ -220,16 +220,16 @@

if(href_list["late_join"])
if(!client.tos_consent)
to_chat(usr, "<span class='warning'>You must consent to the terms of service before you can join!</span>")
to_chat(usr, "<span class='warning'>Перед тем как присоединиться, вы должны согласиться с условиями использования!</span>")
return FALSE
if(client.version_blocked)
client.show_update_notice()
return FALSE
if(!SSticker || SSticker.current_state != GAME_STATE_PLAYING)
to_chat(usr, "<span class='warning'>The round is either not ready, or has already finished...</span>")
to_chat(usr, "<span class='warning'>Раунд либо не готов, либо уже завершился...</span>")
return
if(!can_use_species(src, client.prefs.active_character.species))
to_chat(src, alert("You are currently not whitelisted to play [client.prefs.active_character.species]."))
to_chat(src, alert("В настоящее время вы не включены в белый список для игры на [client.prefs.active_character.species]."))
return FALSE

if(!check_tts_seed_ready()) // SS220 ADDITION
Expand All @@ -243,14 +243,14 @@
if(href_list["SelectedJob"])

if(!GLOB.enter_allowed)
to_chat(usr, "<span class='notice'>There is an administrative lock on entering the game!</span>")
to_chat(usr, "<span class='notice'>Администратор запретил входить в игру!</span>")
return

if(client.prefs.toggles2 & PREFTOGGLE_2_RANDOMSLOT)
client.prefs.load_random_character_slot(client)

if(!can_use_species(src, client.prefs.active_character.species))
to_chat(src, alert("You are currently not whitelisted to play [client.prefs.active_character.species]."))
to_chat(src, alert("В настоящее время вы не включены в белый список для игры на [client.prefs.active_character.species]."))
return FALSE

AttemptLateSpawn(href_list["SelectedJob"])
Expand Down Expand Up @@ -315,20 +315,20 @@
if(src != usr)
return 0
if(!SSticker || SSticker.current_state != GAME_STATE_PLAYING)
to_chat(usr, "<span class='warning'>The round is either not ready, or has already finished...</span>")
to_chat(usr, "<span class='warning'>Раунд либо не готов, либо уже завершился...</span>")
return 0
if(!GLOB.enter_allowed)
to_chat(usr, "<span class='notice'>There is an administrative lock on entering the game!</span>")
to_chat(usr, "<span class='notice'>Администратор запретил входить в игру!</span>")
return 0
if(!IsJobAvailable(rank))
to_chat(src, alert("[rank] is not available. Please try another."))
to_chat(src, alert("[rank] не доступен. Попробуйте другую должность."))
return 0
var/datum/job/thisjob = SSjobs.GetJob(rank)
if(thisjob.barred_by_disability(client))
to_chat(src, alert("[rank] is not available due to your character's disability. Please try another."))
to_chat(src, alert("[rank] недоступен из-за инвалидности вашего персонажа. Попробуйте другую должность."))
return 0
if(thisjob.barred_by_missing_limbs(client))
to_chat(src, alert("[rank] is not available due to your character having amputated limbs without a prosthetic replacement. Please try another."))
to_chat(src, alert("[rank] недоступен из-за того, что у вашего персонажа ампутированы конечности и отсутствуют протезы. Попробуйте другую должность."))
return 0

SSjobs.AssignRole(src, rank, 1)
Expand Down Expand Up @@ -510,7 +510,7 @@
categorizedJobs["Miscellaneous"]["jobs"] += job

if(num_jobs_available)
dat += "Choose from the following open positions:<br><br>"
dat += "Выберите одну из следующих открытых вакансий:<br><br>"
dat += "<table><tr><td valign='top'>"
for(var/jobcat in categorizedJobs)
if(categorizedJobs[jobcat]["colBreak"])
Expand All @@ -529,11 +529,11 @@

dat += "</td></tr></table></center>"
else
dat += "<br><br><center>Unfortunately, there are no job slots free currently.<BR>Wait a few minutes, then try again.<BR>Or, try observing the round.</center>"
dat += "<br><br><center>К сожалению, в настоящее время свободных вакансий нет.<BR>Попробуйте снова через несколько минут<BR>Или попробуйте понаблюдать за раундом.</center>"
// Removing the old window method but leaving it here for reference
// src << browse(dat, "window=latechoices;size=300x640;can_close=1")
// Added the new browser window method
var/datum/browser/popup = new(src, "latechoices", "Choose Profession", 900, 600)
var/datum/browser/popup = new(src, "latechoices", "Выберите должность", 900, 600)
popup.add_stylesheet("playeroptions", 'html/browser/playeroptions.css')
popup.add_script("delay_interactivity", 'html/browser/delay_interactivity.js')
popup.set_content(dat)
Expand Down
Loading

0 comments on commit 02a7109

Please sign in to comment.