/* File: application-9f32646d775c281dfd1b1b13c480bf5f.js Server: en_GB Time: 2021-09-30T14:06:10+02:00 Formatter: https://github.com/beautify-web/js-beautify Formatter Version: 1.13.0 Formatter Settings: {"indent_size":"4","indent_char":" ","max_preserve_newlines":"1","preserve_newlines":true,"keep_array_indentation":true,"break_chained_methods":true,"indent_scripts":"normal","brace_style":"collapse","space_before_conditional":true,"unescape_strings":false,"jslint_happy":true,"end_with_newline":false,"wrap_line_length":"110","indent_inner_html":true,"comma_first":false,"e4x":false,"indent_empty_lines":false} */ function check_and_enable_apng_support() { "use strict"; var e = new Image, t = document.createElement("canvas") .getContext("2d"); e.onload = function () { t.drawImage(e, 0, 0), self.apng_supported = 0 === t.getImageData(0, 0, 1, 1) .data[3] }, e.src = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAACGFjVEwAAAABAAAAAcMq2TYAAAANSURBVAiZY2BgYPgPAAEEAQB9ssjfAAAAGmZjVEwAAAAAAAAAAQAAAAEAAAAAAAAAAAD6A+gBAbNU+2sAAAARZmRBVAAAAAEImWNgYGBgAAAABQAB6MzFdgAAAABJRU5ErkJggg==" } function searchMission() { var e = $("#search_input_field_missions") .attr("search_class"), t = $("#search_input_field_missions") .val() .toUpperCase(); $("." + e) .each(function () { -1 !== $(this) .attr("search_attribute") .toUpperCase() .indexOf(t) ? $(this) .removeClass("searchHelperInvisble") : $(this) .addClass("searchHelperInvisble") }), missionScrollUpdate() } function mission_overview_timer_call() { var e = 0, t = (new Date) .getTime(); "undefined" != typeof mission_overview_last_count && (e = t - mission_overview_last_count), mission_overview_last_count = t, $(".mission_overview_countdown[timeleft!=0]") .each(function () { var t = $(this) .attr("timeleft"); t > 0 && (t -= e, 0 >= t ? (t = 0, $(this) .html("")) : $(this) .html(I18n.t("javascript.mission_start_in") + " " + formatTime(Math.round(t / 1e3), ! 1)), $(this) .attr("timeleft", t)) }) } function successfullMessage(e) { $("#important_messages_success") .html(e), $("#important_messages_success") .show(), setTimeout(function () { $("#important_messages_success") .hide() }, 2e3) } function aao_building_check(e, t) { if (e.length <= 0) return !0; if (t.attr("building_id") .indexOf("_") >= 0) { var i = t.attr("building_id") .split("_"), n = !1; return $.each(i, function (t, i) { e.indexOf(parseInt(i)) >= 0 && (n = !0) }), n } return e.indexOf(parseInt(t.attr("building_id"))) >= 0 ? !0 : !1 } function aao_check(e, t, i) { var n = -3; if (i > 0) { n = 0; var o; if (-1 !== e.indexOf("vehicle_type_id_")) { var a = e.substring(16); o = $(aao_source_element + " input") .filter(function () { return $(this) .attr("vehicle_type_id") === a }) } else o = $(aao_source_element + " input") .filter(function () { return $(this) .attr(e) > 0 }); o.each(function () { if (i > 0) { var o = []; if ("" != t.attr("building_ids")) var o = jQuery.parseJSON(t.attr("building_ids")); aao_building_check(o, $(this)) && !$(this) .is(":checked") && !$(this) .is(":disabled") && $(this) .attr("ignore_aao") <= 0 && ($(this) .attr("vehicle_type_ignore_default_aao") <= 0 || -1 !== e.indexOf("custom_") ) && (i -= "wasser_amount" == e || "wasser_amount_tlf" == e || "water_damage_pump_value" == e || "water_damage_pump_value_only_pumps" == e || "foam_amount" == e ? $(this) .attr(e) : 1), 0 >= i && (n = $("#vehicle_sort_" + $(this) .val()) .attr("timevalue")) } }) } return i > 0 ? !1 : { max_time: n } } function aaoNextAvailable(e, t) { var i = -1; return $(aao_source_element + " input[" + e + "|=1]") .each(function () { if (-1 == i) { var n = []; if ("" != t.attr("building_ids")) var n = jQuery.parseJSON(t.attr("building_ids")); if (aao_building_check(n, $(this)) && !$(this) .prop("checked") && !$(this) .prop("disabled") && $(this) .attr("ignore_aao") <= 0 && ($(this) .attr("vehicle_type_ignore_default_aao") <= 0 || -1 !== e.indexOf("custom_"))) { var o = $(this) .val(); i = parseInt($("#vehicle_sort_" + o) .attr("sortvalue")) } } }), i } function aao(e, t, i, n) { if (n > 0) { var o; if (-1 !== e.indexOf("vehicle_type_id_")) { var a = e.substring(16); o = $(aao_source_element + " input") .filter(function () { return $(this) .attr("vehicle_type_id") === a }) } else o = $(aao_source_element + " input") .filter(function () { return $(this) .attr(e) > 0 }); o.each(function () { if (n > 0) { var i = []; if ("" != t.attr("building_ids")) var i = jQuery.parseJSON(t.attr("building_ids")); aao_building_check(i, $(this)) && !$(this) .prop("checked") && !$(this) .prop("disabled") && $(this) .attr("ignore_aao") <= 0 && ($(this) .attr("vehicle_type_ignore_default_aao") <= 0 || -1 !== e.indexOf("custom_") ) && ("grtw0" == e && $("#vehicle_mode_" + $(this) .val() + "_0") .prop("checked", !0) .change(), "grtw1" == e && $("#vehicle_mode_" + $(this) .val() + "_1") .prop("checked", !0) .change(), n -= "wasser_amount" == e || "wasser_amount_tlf" == e || "water_damage_pump_value" == e || "water_damage_pump_value_only_pumps" == e || "foam_amount" == e ? $(this) .attr(e) : 1, $(this) .prop("checked", !0), $(this) .change()) } }) } return n > 0 ? I18n.t("javascript.missed_vehicle") + " " + n + " " + i + ". " : "" } function mission_participation_add(e) { $("#mission_participant_" + e) .removeClass("hidden"), $("#mission_participant_new_" + e) .addClass("hidden") } function vehicleDistance(e, t, i, n, o, a, s) { return a > 0 ? (vehicleDistanceDraw(t, i, e, a), !0) : 1 != e ? (url = "https://www.leitstellenspiel.de/osrmroute/viaroute?loc=" + t + "," + i + "&loc=" + n + "," + o, $ .get(url, function (a) { if ("undefined" != typeof a.code && "Ok" == a.code && (0 == a.routes[0].distance ? a .status = -1 : (a.route_summary = {}, a.route_summary.total_time = a.routes[0] .duration, a.status = 200)), 200 != a.status) return vehicleDistanceLeitstellenspiel(e, t, i, n, o, s), !0; var r = TIME_MODIFIER_NORMAL; ("undefined" == typeof s || 1 == s) && (r = TIME_MODIFIER_SONDERRECHTE); var l = Math.round(a.route_summary.total_time * r), c = vehicleDistanceDirectTimeToObject(20, t, i, n, o, s); l > c && (l = vehicleDistanceDirectTimeToObject(30, t, i, n, o, s)), vehicleDistanceDraw( t, i, e, l), reload_table() }), !0) : (vehicleDistanceDirect(190, e, t, i, n, o, s), void 0) } function vehicleDistanceLeitstellenspiel(direct_move, source_latitude, source_longitude, target_latitude, target_longitude, sonderrechte) { $.get("/distance/" + String(source_latitude) .replace(".", "o") + "/" + String(source_longitude) .replace(".", "o") + "/" + direct_move + "/" + String(target_latitude) .replace(".", "o") + "/" + String(target_longitude) .replace(".", "o") + "/v3/" + (sonderrechte ? "1" : "0"), function (data) { eval(data), reload_table() }) } function vehicleDistanceDirectTimeToObject(e, t, i, n, o, a) { var s = distance(t, i, n, o) / 1e3; .1 > s && (s = .1); var r = TIME_MODIFIER_NORMAL; return ("undefined" == typeof a || 1 == a) && (r = TIME_MODIFIER_SONDERRECHTE), Math.round(60 * (s / (e / 60)) * r) } function vehicleDistanceDraw(e, t, i, n) { $(".alarm_distance_" + String(e) .replace(".", "_") + "_" + String(t) .replace(".", "_") + "_" + i) .each(function () { var e = parseInt($(this) .attr("start_delay")); isNaN(e) && (e = 0); var t = n + e; $(this) .html(formatTimeDescription(t, !0)), $(this) .attr("sortValue", t) .attr("timevalue", t) }) } function vehicleDistanceDirect(e, t, i, n, o, a, s) { var r = vehicleDistanceDirectTimeToObject(e, i, n, o, a, s); vehicleDistanceDraw(i, n, t, r), reload_table() } function allianceChatHeaderInfo(e) { $("#alliance_chat_header_info") .html(e), e.length > 0 ? $("#alliance_chat_header_info") .show() : $("#alliance_chat_header_info") .hide() } function allianceChat(e) { var t = "", i = !1; (-1 != e.message.toUpperCase() .indexOf("@" + username.toUpperCase()) || -1 != e.message.toUpperCase() .indexOf("@all ".toUpperCase()) || -1 != e.message.toUpperCase() .indexOf("@all:".toUpperCase()) || -1 != e.message.toUpperCase() .indexOf("@admin".toUpperCase()) && (alliance_admin || alliance_coadmin) || "0" != e.whisper) && (t = "chatToSelf", "0" != e.whisper && (t = "chatWhisper", splitMessage = e.message.split(" "), splitMessage[0] = "" + splitMessage[0] + "", e.message = splitMessage.join(" ")), audio_chat_highlight && 1 != e.ignore_audio && user_id != e.user_id && ! i && (play("chat_message_highlight"), i = !0), !$("body") .hasClass("bigMap") || missionMarkerBulkAdd || $("#chat_outer") .hasClass("fadeIn") || $("#bigMapMenuChatButton") .addClass("bigMapMenuButtonBlack")); var n = e.iso_timestamp ? e.iso_timestamp : "", o = "
  • [" + e.date + "] " + e.username + ":", e.mission_id && (o = o + "", "undefined" != typeof e .mission_caption && e.mission_caption && (o = o + "[" + e.mission_caption + "]"), o += " "), o = o + " " + e.message + "
  • ", $("#mission_chat_messages") .prepend(o), !$("body") .hasClass("bigMap") || missionMarkerBulkAdd || $("#chat_outer") .hasClass("fadeIn") || $("#bigMapMenuChatButton") .addClass("bigMapMenuButtonGreen") } function waterCalculatorSetPercent(e, t, i) { var n = 100 - i; t > n && (t = n), t > 0 ? e.css("width", t + "%") .show() : e.css("width", "0%") .hide() } function waterCalculator(e, t) { t = t || "water"; var i = { water: { containerSelector: "#mission_water_holder_", translations: { amountOnSite: "javascript.water_on_site", amountApproaching: "javascript.water_approaching", amountSelected: "javascript.water_selected", amountMissing: "javascript.water_missing" } }, pump: { containerSelector: "#mission_pump_holder_", translations: { amountOnSite: "javascript.pump_speed_on_site", amountApproaching: "javascript.pump_speed_approaching", amountSelected: "javascript.pump_speed_selected", amountMissing: "javascript.pump_speed_missing" } }, foam: { containerSelector: "#mission_foam_holder_", translations: { amountOnSite: "javascript.foam_on_site", amountApproaching: "javascript.foam_approaching", amountSelected: "javascript.foam_selected", amountMissing: "javascript.foam_missing" } } }, n = i[t], o = n.containerSelector, a = $(o + e), s = 0; a.find(".progress-bar-mission-window-water") .each(function () { s = $(this) .data("need_water") }); var r = a.find(".mission_water_bar_at_mission_" + e) .data("water-has"), l = a.find(".mission_water_bar_driving_" + e) .data("water-has"), c = a.find(".mission_water_bar_selected_" + e) .data("water-has"), u = a.find(".mission_water_bar_at_mission_" + e) .data("water-modifier") / 100, d = a.find(".mission_water_bar_driving_" + e) .data("water-modifier") / 100, h = a.find(".mission_water_bar_selected_" + e) .data("water-modifier") / 100, p = r + r * u, m = l + l * (d + u) + r * d, _ = c + c * (h + d + u) + r * h + l * h, f = s - (p + m + _), g = parseInt(100 * (p / s)), v = parseInt(100 * (m / s)), b = parseInt(100 * (_ / s)), y = parseInt(100 * (f / s)), w = 100 - (g + v + b + y); w > 0 && (g > 0 ? g += w : v > 0 ? v += w : b > 0 ? b += w : y > 0 && (b += w)), waterCalculatorSetPercent(a.find(".mission_water_bar_at_mission_" + e), g, 0), waterCalculatorSetPercent(a.find(".mission_water_bar_driving_" + e), v, g), waterCalculatorSetPercent( a.find(".mission_water_bar_selected_" + e), b, v + g), waterCalculatorSetPercent(a.find( ".mission_water_bar_missing_" + e), 100, b + v + g); var k = n.translations; a.find(".mission_water_bar_at_mission_" + e) .html(I18n.t(k.amountOnSite, { amount: number_format(parseInt(p)) })), a.find(".mission_water_bar_driving_" + e) .html(I18n.t(k.amountApproaching, { amount: number_format(parseInt(m)) })), a.find(".mission_water_bar_selected_" + e) .html(I18n.t(k.amountSelected, { amount: number_format(parseInt(_)) })), a.find(".mission_water_bar_missing_" + e) .html(I18n.t(k.amountMissing, { amount: number_format(parseInt(f)) })), b + v + g >= 100 ? (a.find(".mission_water_bar_selected_" + e) .addClass("progress-bar-success") .removeClass("progress-bar-danger"), a.find(".mission_water_progress_" + e) .addClass("progress-glow-success") .removeClass("progress-glow-danger")) : (a.find(".mission_water_bar_selected_" + e) .addClass("progress-bar-danger") .removeClass("progress-bar-success"), a.find(".mission_water_progress_" + e) .addClass("progress-glow-danger") .removeClass("progress-glow-success")) } function missionWindowHasUpdate(e) { $("#mission_bar_holder_" + e) .addClass("col-xs-3 col-md-6"), $("#mission_reload_request_" + e) .show() } function missionAlarmTrailerCheck(e) { return $("input.vehicle_checkbox[trailer=1][fms=2]" + ("undefined" != typeof e ? "[building_id=" + e + "]" : "") + ":checked") .each(function () { var e = !1, t = $(this) .val(); if ($("input.vehicle_checkbox[fms=2][trailer_vehicle_id=" + $(this) .val() + "]") .length >= 1) e = !0; else if ("1" == $(this) .attr("tractive_random")) { var i = jQuery.parseJSON($(this) .attr("possible_tractive")), n = "[building_id=" + $(this) .attr("building_id") + "]", o = $(this) .attr("tractive_building_random"); $.each(i, function (i, a) { e || ($(".vehicle_checkbox" + n + "[vehicle_type_id=" + a + "][fms=2][trailer_vehicle_id=0]") .each(function () { e || (e = !0, $(".vehicle_checkbox[value=" + $(this) .val() + "]") .attr("trailer_vehicle_id", t)) }), e || "1" != o || $(".vehicle_checkbox[vehicle_type_id=" + a + "][fms=2][trailer_vehicle_id=0]") .each(function () { e || (e = !0, $(".vehicle_checkbox[value=" + $(this) .val() + "]") .attr("trailer_vehicle_id", t)) })) }) } else $(".vehicle_checkbox[value=" + $(this) .attr("tractive_vehicle_id") + "]") .attr("trailer_vehicle_id", t) }), $("input.vehicle_checkbox[trailer=1][fms=2]" + ("undefined" != typeof e ? "[building_id=" + e + "]" : "")) .each(function () { var e = !1, t = $(this) .prop("checked"); if (!t) { if ($(this) .val(), "1" == $(this) .attr("tractive_random")) { var i = jQuery.parseJSON($(this) .attr("possible_tractive")), n = "[building_id=" + $(this) .attr("building_id") + "]", o = $(this) .attr("tractive_building_random"); $.each(i, function (t, i) { e || ($(".vehicle_checkbox" + n + "[vehicle_type_id=" + i + "][fms=2][trailer_vehicle_id=0]") .length >= 1 && (e = !0), e || "1" != o || $( ".vehicle_checkbox[vehicle_type_id=" + i + "][fms=2][trailer_vehicle_id=0]") .length >= 1 && (e = !0)) }) } else $("#vehicle_checkbox_" + $(this) .attr("tractive_vehicle_id") + "[fms=2][trailer_vehicle_id=0]") .length >= 1 && (e = !0); e ? ($(".vehicle_not_tractive_message_" + $(this) .val()) .css("display", "none"), $(this) .attr("disabled", !1)) : ($(this) .attr("disabled", !0), $(".vehicle_not_tractive_message_" + $(this) .val()) .css("display", "inline")) } }), !0 } function mapkitDeselectAnnotation() { map.selectedAnnotation = null } function mapExpand(e) { mapViewExpandedWindow = window.open("/?mapview=true", "mapWindow", "width=600,height=400,status=yes,scrollbars=yes,resizable=yes"), e ? $("#map") .hide() : $("#map_outer") .hide(), $("#map_expand_button") .hide(), $("#map_adress_search") .hide(), mapViewExpanded = !0, $("#restore_map") .show(), $("#arrow_location_select") .hide(), $("#radio_outer") .removeClass("col-sm-4"), $("#radio_outer") .addClass("col-sm-12") } function mapViewOnly() { $("#navbar-mobile-footer") .hide(), $("#navbar-mobile-footer") .removeClass("visible-xs"), $("#col_navbar_holder") .hide(), $("#map_outer") .removeClass("col-sm-8"), $("#map_outer") .addClass("col-sm-12"), $("#level_upgrade_hint") .hide(), $("#bigMapMenu") .hide(), $("#map") .height($(window) .height()) .width($(window) .width()), "undefined" == typeof mapkit && map.invalidateSize() } function mapViewDesignBigMap() { $("#navbar-mobile-footer") .hide(), $("#navbar-mobile-footer") .removeClass("visible-xs"), $("#map_outer") .removeClass("col-sm-8"), $("#map_outer") .addClass("col-sm-12"), mapViewResizeDesignBigMap() } function mapViewResize() { $("#map") .height($(window) .height()) .width($(window) .width()), "undefined" == typeof mapkit && map.invalidateSize() } function mapViewResizeDesignBigMap() { $("#map") .height($(window) .height() - parseInt($("#col_navbar_holder") .height())) .width($(window) .width()), $("#map_outer") .height($(window) .height() - parseInt($("#col_navbar_holder") .height())) .width($(window) .width()), "undefined" == typeof mapkit && map.invalidateSize() } function mapViewRestore() { mapViewExpanded && ($("#map_outer") .show(), $("#map") .show(), $("#map_adress_search") .show(), $("#map_expand_button") .show(), $("#restore_map") .hide(), $("#radio_outer") .addClass("col-sm-4"), $("#radio_outer") .removeClass("col-sm-12"), mapViewExpanded = !1, "undefined" == typeof mapkit && map .invalidateSize(), mapViewExpandedWindow.close()) } function vehicleSelectionReset() { $(".vehicle_checkbox") .attr("checked", !1), $(".vehicle_checkbox:first") .change() } function vehicleResetTrailer(e) { "1" == e.attr("trailer") && (e.prop("checked") || $("input.vehicle_checkbox[trailer_vehicle_id=" + e .val() + "]") .attr("trailer_vehicle_id", 0), missionAlarmTrailerCheck()) } function aaoNearSelection(e, t, i, n, o, a) { for (missing = ""; n > 0;) { var s = aaoNextAvailable(t, a), r = aaoNextAvailable(i, a), l = aaoNextAvailable(e, a); - 1 != r && -1 != s && -1 != l ? s > l || r > l ? missing += aao(e, a, o[1], 1) : (missing += aao(t, a, o[1], 1), missing += aao(i, a, o[1], 1)) : -1 != r && -1 != s ? (missing += aao(t, a, o[1], 1), missing += aao(i, a, o[1], 1)) : -1 != l ? missing += aao(e, a, o[1], 1) : (missing += aao(o[0], a, o[1], n), n = 0), n -= 1 } return missing } function aaoClickHandler(e) { var t = "", i = $(e); "true" == i.attr("reset") && (vehicleSelectionReset(), $(".vehicle_checkbox") .each(function () { vehicleResetTrailer($(this)) })), $.each(aao_types, function (e, n) { if ("naw_or_rtw_and_nef" == n[0] || "naw_or_rtw_and_nef_or_rth" == n[0]) { var o = "nef"; "naw_or_rtw_and_nef" == n[0] && (o = "nef_only"); var a = i.attr(n[0]); t += aaoNearSelection("naw", o, "rtw", a, n, i) } else if ("hlf_or_rw_and_lf" == n[0]) { var a = i.attr(n[0]); t += aaoNearSelection("hlf_only", "rw_only", "lf_only", a, n, i) } else { var a = i.attr(n[0]); t += aao(n[0], i, n[1], a) } }); var n = i.attr("custom"); if ("" != n) { var o = jQuery.parseJSON(n); $.each(o, function (e, n) { t += aao("custom_" + md5(e), i, e, n) }) } var a = i.attr("vehicle_type_ids"), s = i.attr("vehicle_type_captions"); if (void 0 !== a && void 0 !== s) { var r = jQuery.parseJSON(a), s = jQuery.parseJSON(s); $.each(r, function (e, n) { var o = s[e]; t += aao("vehicle_type_id_" + e, i, o, n) }) } return "" != t ? ("undefined" != typeof pressedKeys && (pressedKeys = {}), alert(t)) : aao_available(i .attr("aao_id"), !0), !1 } function vehicleGroupClickHandler(vehicle_group_element) { var missing = [], vehicle_group_id = $(vehicle_group_element) .attr("vehicle_group_id"), vehicle_ids = eval($("#vehicle_group_" + vehicle_group_id) .attr("vehicles")); return $.each(vehicle_ids, function (e, t) { $("#vehicle_checkbox_" + t[0]) .length <= 0 || $("#vehicle_checkbox_" + t[0]) .is(":disabled") ? missing.push(t[1]) : ($("#vehicle_checkbox_" + t[0]) .prop("checked", !0), $("#vehicle_checkbox_" + t[0]) .change()) }), missing.length > 0 && ("undefined" != typeof pressedKeys && (pressedKeys = {}), alert(I18n.t( "javascript.missed_vehicle") + " " + missing.join(", ") + ". ")), !1 } function saveFcm() {} function radioMessage(e) { if ($("#radio_no_message") .hide(), "vehicle_fms" == e.type) { alliance_message = !1, e.user_id != user_id && (alliance_message = !0, e.fms_text = "[" + I18n.t( "map.alliance") + "] " + e.fms_text); var t = "", i = ""; if ("" != e.additionalText && (e.fms_text = e.additionalText, e.fms = 5, e.fms_real = 5, "nl_NL" == I18n.locale && (e.fms = 7), t = "" + I18n.t("javascript.understand") + " "), 5 == e.fms_real ? (target = "radio_messages_important", e.user_id == user_id && $("body") .hasClass("bigMap") && !$("#radio_outer") .hasClass("fadeIn") && $("#bigMapMenuRadioButton") .addClass("bigMapMenuButtonGreen")) : target = "radio_messages", $(".radio_message_vehicle_" + e.id) .remove(), "" != e.mission_id && e.mission_id > 0 && (i = "" + I18n.t("javascript.to_mission") + " " ), "" != e.target_building_id && e.target_building_id > 0) { var n = buildingCaption(e.target_building_id); n || (n = I18n.t("javascript.to_building")), i = "" + n + " " } $("#" + target) .prepend("
  • " + e.fms + " " + e .caption + " " + i + t + e.fms_text + "
  • "), alliance_message && alliance_ignore_fms || (audio && 5 == e.fms_real ? "de_DE" == I18n.locale ? play("fms5") : play("doorbell") : audio && play("funk")) } else if ("sicherheitswache" == e.type) { if (message = "", target = "radio_messages", e.user_id != user_id) return !0; message = e.success ? '" : '", $("#" + target) .prepend("
  • " + message + "
  • ") } } function vehicleSearch(e) { if (mapViewExpanded) return mapViewExpandedWindow.vehicleSearch(e); var t = !1; $.each(mission_vehicles, function (i, n) { !n.vehicle_marker_deleted && n.visible && n.vehicle_id == e && (t = !0, "undefined" != typeof mapkit ? map.setCenterAnimated(new mapkit.Coordinate(n.latitude, n.longitude), !0) : map.setView([n.latitude, n.longitude])) }), t || alert(I18n.t("javascript.not_found_map")) } function missionLabel() { $.each(mission_markers, function (e, t) { t.getTooltip() .options.permanent = mission_label, mission_label ? t.openTooltip() : t.closeTooltip() }) } function vehicleLabel() { $.each(mission_vehicles, function (e, t) { t.vehicle_marker_deleted || (vehicle_label ? t.openTooltip() : t.closeTooltip()) }) } function setTitle() { "" == title_default && (title_default = document.title), document.title = $(window) .is(":focus") ? "Focus" : "Kein Focus" } function mapMoveToSearch() { $.getJSON("https://nominatim.openstreetmap.org/search?format=json&limit=1&q=" + $("#map_adress_search") .val(), function (e) { e.length <= 0 ? alert(I18n.t("javascript.location_not_found")) : $.each(e, function (e, t) { "undefined" == typeof mapkit ? map.panTo([t.lat, t.lon]) : map.setCenterAnimated( new mapkit.Coordinate(parseFloat(t.lat), parseFloat(t.lon)), !0) }) }) } function mapIsVisible(e) { if ("undefined" != typeof mapkit) { var t = parseFloat(map.region.center.latitude) - parseFloat(map.region.span.latitudeDelta), i = parseFloat(map.region.center.latitude) + parseFloat(map.region.span.latitudeDelta), n = parseFloat(map.region.center.longitude) - parseFloat(map.region.span.longitudeDelta), o = parseFloat(map.region.center.longitude) + parseFloat(map.region.span.longitudeDelta); return t <= e[0] && i >= e[0] && n <= e[1] && o >= e[1] ? !0 : !1 } var a = map.getBounds(); return a.contains(e) } function buildingLoadContent(url) { $("#buildings") .html(I18n.t("common.loading")), buildingResetContentPossible = !1, building_eval_unload && (eval( building_eval_unload), building_eval_unload = null), $.ajax({ url: url, cache: !1 }) .success(function (e) { $("#buildings") .html(e), tutorial.callBuildingLoadContentListener(!0), bigMapWindowSizeChanged() }) } function buildingResetContent() { buildingLoadContent("/buildings"), buildingResetContentPossible = !0 } function buildingResetContentWhenPossible() { buildingResetContentPossible && buildingResetContent() } function buildingMarkerReset() { leitstelle_latitude = !1, leitstelle_longitude = !1, leitstelles = [], $.each(building_markers, function ( e, t) { "undefined" == typeof mapkit ? map.removeLayer(t) : map.removeAnnotation(t) }), $.each(building_timers, function (e, t) { window.clearTimeout(t) }), mobile_bridge_use && mobileBridgeAdd("building_remove_all", {}), building_markers = Array(), building_markers_cache = Array() } function iconAnchorCalculate(e) { return [e[0] / 2, e[1]] } function eventAnnounce(e) { if (window.clearTimeout(eventTimer), e.end_in > 0) { eventRunning = !0; var t = "
    " + e.running_text + " " + I18n.t("javascript.finish_in") + " " + formatTime(e.end_in) + "."; null != e.start_username && (t = t + " " + I18n.t("javascript.start_username") + " " + e .start_username), t += "
    ", $("#eventInfo") .html(t) } e.end_in = e.end_in - 1, e.start_in = e.start_in - 1, e.end_in > 0 ? eventTimer = window.setTimeout( function () { eventAnnounce(e) }, 1e3) : (eventRunning = !1, $("#navbar-inner") .removeClass("navbar-inner-event"), $("#eventInfo") .html("")) } function alliance_ignore_fms_set(e, t) { alliance_ignore_fms = e, alliance_ignore_fms ? ($("#alliance_radio_off") .show(), $("#alliance_radio_on") .hide(), $(".radio_message_alliance") .hide()) : ($("#alliance_radio_on") .show(), $("#alliance_radio_off") .hide(), $(".radio_message_alliance") .show()), t && $.ajax({ url: "profile/alliance_ignore_fms/" + (alliance_ignore_fms ? "1" : "0"), cache: !1, type: "POST" }) } function premium(e) { 1 == e && ($("#premium_a") .hide("fast"), $("#premium_b") .hide("fast"), $("#premium_c") .hide("fast")), user_premium = e } function zoom_change() { building_maps_redraw(), building_load_alliance() } function map_moved() { building_maps_redraw(), building_load_alliance() } function building_load_alliance() { if ("undefined" != typeof mapkit) var min_lat = parseFloat(map.region.center.latitude) - parseFloat(map .region.span.latitudeDelta), max_lat = parseFloat(map.region.center.latitude) + parseFloat(map.region.span.latitudeDelta), min_lng = parseFloat(map.region.center.longitude) - parseFloat(map.region.span.longitudeDelta), max_lng = parseFloat(map.region.center.longitude) + parseFloat(map.region.span.longitudeDelta); else { if (!map.hasLayer(map_filters_service.getMapFiltersLayers() .alliance_members)) return !0; var bounds = map.getBounds(), min_lat = 0, max_lat = 0, min_lng = 0, max_lng = 0; bounds.getNorth() < bounds.getSouth() ? (min_lat = bounds.getNorth(), max_lat = bounds.getSouth()) : ( max_lat = bounds.getNorth(), min_lat = bounds.getSouth()), bounds.getWest() < bounds .getEast() ? (min_lng = bounds.getWest(), max_lng = bounds.getEast()) : (max_lng = bounds.getWest(), min_lng = bounds.getEast()) } $.get("/building_alliance/" + min_lat.toString() .replace(".", "o") + "/" + min_lng.toString() .replace(".", "o") + "/" + max_lat.toString() .replace(".", "o") + "/" + max_lng.toString() .replace(".", "o"), function (data) { eval(data), building_maps_redraw() }) } function building_load_alliance_app(min_lat, max_lat, min_lng, max_lng) { return alliance_member_buildings_show ? ($.get("/building_alliance/" + min_lat.toString() .replace(".", "o") + "/" + min_lng.toString() .replace(".", "o") + "/" + max_lat.toString() .replace(".", "o") + "/" + max_lng.toString() .replace(".", "o"), function (data) { eval(data), building_maps_redraw() }), void 0) : !0 } function building_maps_redraw() { visibles = new Array, building_markers_new = new Array, $.each(building_markers, function (e, t) { var i = []; if ("undefined" == typeof mapkit) i = t.getLatLng(); else { var n = t.coordinate; i = [n.latitude, n.longitude] } mapIsVisible(i) ? (visibles.push(t.building_id), building_markers_new.push(t)) : "undefined" == typeof mapkit ? map.removeLayer(t) : map.removeAnnotation(t) }), building_markers = building_markers_new, $.each(building_markers_cache, function (e, t) { -1 == $.inArray(t.id, visibles) && mapIsVisible([t.latitude, t.longitude]) && building_maps_draw(t) }) } function building_maps_draw(e) { var t = 5e3; if ("undefined" != typeof e.user_id && "undefined" != typeof user_id && user_id != e.user_id && (t = 1e3), "undefined" != typeof mapkit) { var i = new mapkit.ImageAnnotation(new mapkit.Coordinate(e.latitude, e.longitude), { url: { 1: flavouredAsset(e.building_marker_image) } }); i.title = e.name, i.addEventListener("select", function () { lightboxOpen("/buildings/" + e.id), setTimeout(mapkitDeselectAnnotation, 1e3) }), map.addAnnotation(i), i.element.className = "mapkit-marker" } else { map_layer = map_filters_service.getFilterLayerByBuildingParams(e); var i = L.marker([e.latitude, e.longitude], { zIndexOffset: t, title: e.name, icon: icon_empty }) .bindTooltip(e.name) .addTo(map_layer); "undefined" != typeof e.opacity && i.setOpacity(e.opacity), iconMapGenerate(e.building_marker_image, i), i.on("click", function () { lightboxOpen("/buildings/" + e.id) }) } i.building_id = e.id, building_markers.push(i) } function buildingCaption(e) { var t = !1; return $.each(building_markers_cache, function (i, n) { n.id == e && (t = n.name) }), t } function buildingVehicleGraphicCacheAdd(e) { "undefined" != typeof e.vgi && "" != e.vgi && null != e.vgi && (buildingVehicleGraphicCache[e.id] = e.vgi) } function buildingMarkerAdd(e) { var t = !1; return $.each(building_markers_cache, function (i, n) { n.id == e.id && (t = !0) }), buildingVehicleGraphicCacheAdd(e), t ? !0 : (building_marker_image = getBuildingMarkerIcon(e), e .building_marker_image = building_marker_image, 0 == mobile_bridge_use && constructBuildingListElement(e), 1 == mobile_bridge_use && 4 == mobile_version && (e.name = e.name .replace("%", ""), e.app_icon_path = -1 !== String(building_marker_image) .indexOf("//") ? building_marker_image : currentHostname() + building_marker_image, mobileBridgeAdd("building_add", e)), building_markers_cache.push(e), void 0) } function constructBuildingListElement(e) { if (e.user_id == user_id) { 1 == mobile_bridge_use && 4 == mobile_version && (e.name = e.name.replace("%", ""), building_marker_image = getBuildingMarkerIcon(e), e.app_icon_path = -1 !== String( building_marker_image) .indexOf("//") ? building_marker_image : currentHostname() + building_marker_image); var t = "
  • " + e .detail_button + "" + "" + e.name + ""; 0 == e.show_vehicles_at_startpage && (t += hideVehicleBuildingHelpText(e.id)), t += "
    "; var i = "
  • " + I18n.t("common.loading") + "
  • "; "undefined" != typeof buildingVehicleCache[e.id] && (i = buildingVehicleCache[e.id].join(""), buildingVehicleCache[e.id] = []), t = t + "", e .building_type == BUILDING_TYPE_LEITSTELLE && (leitstelle_latitude = e.latitude, leitstelle_longitude = e.longitude, leitstelles.push([e.latitude, e.longitude])), buildingMarkerBulkContentCache.push(t) } } function getBuildingMarkerIcon(e) { return e.user_id == user_id ? building_marker_image = e.icon : e.building_type == BUILDING_TYPE_FEUERWEHRSCHULE ? building_marker_image = "/images/building_fireschool_other.png" : e .building_type == BUILDING_TYPE_FEUERWACHE ? building_marker_image = "/images/building_fire_other.png" : e.building_type == BUILDING_TYPE_RETTUNGSWACHE ? building_marker_image = "/images/building_rettungswache_other.png" : e.building_type == BUILDING_TYPE_RETTUNGSSCHULE ? building_marker_image = "/images/building_rettungsschule_other.png" : e .building_type == BUILDING_TYPE_CLINIC ? building_marker_image = "/images/building_clinic_other.png" : e.building_type == BUILDING_TYPE_HOSPITAL ? building_marker_image = "/images/building_hospital_other.png" : e.building_type == BUILDING_TYPE_NOTARZTHUBSCHRAUBERLANDEPLATZ ? building_marker_image = "/images/building_helipad_other.png" : e.building_type == BUILDING_TYPE_POLIZEIHUBSCHRAUBERLANDEPLATZ ? building_marker_image = "/images/building_helipad_other.png" : e.building_type == BUILDING_TYPE_POLIZEIWACHE || e .building_type == BUILDING_TYPE_POLIZEIZELLE ? building_marker_image = "/images/building_polizeiwache_other.png" : e.building_type == BUILDING_TYPE_LEITSTELLE ? building_marker_image = "/images/building_leitstelle_other.png" : e.building_type == BUILDING_TYPE_POLIZEISCHULE ? building_marker_image = "/images/building_polizeischule_other.png" : e .building_type == BUILDING_TYPE_THW ? building_marker_image = "/images/building_thw_other.png" : e .building_type == BUILDING_TYPE_THW_BUNDESSCHULE ? building_marker_image = "/images/building_thw_school_other.png" : e.building_type == BUILDING_TYPE_BEREITSCHAFTSPOLIZEI ? building_marker_image = "/images/building_bereitschaftspolizei_other.png" : e.building_type == BUILDING_TYPE_POLIZEISONDEREINHEITEN ? building_marker_image = "/images/building_polizeisondereinheiten_other.png" : e.building_type == BUILDING_TYPE_SEG ? building_marker_image = "/images/building_seg_other.png" : e.building_type == BUILDING_TYPE_BEREITSTELLUNGSRAUM ? building_marker_image = "/images/building_bereitstellungsraum_other.png" : e.building_type == BUILDING_TYPE_WASSERRETTUNG ? building_marker_image = "/images/building_wasserwacht_other.png" : e.building_type == BUILDING_TYPE_FIRE_BOAT_DOCK ? building_marker_image = "/images/building_fire_boat_dock_other.png" : e .building_type == BUILDING_TYPE_RESCUE_BOAT_DOCK ? building_marker_image = "/images/building_rescue_boat_dock_other.png" : e.building_type == BUILDING_TYPE_RESCUE_DOG_UNIT ? building_marker_image = "/images/building_rescue_dog_unit_other.png" : e.building_type == BUILDING_TYPE_FIRE_AVIATION_STATION ? building_marker_image = "/images/building_fire_aviation_station_other.png" : e.building_type == BUILDING_TYPE_FEDERAL_POLICE_STATION ? building_marker_image = "/images/building_federal_police_other.png" : e.building_type == BUILDING_TYPE_HOME_RESPONSE_LOCATION ? building_marker_image = "/images/building_home_response_location_other.png" : e.building_type == BUILDING_TYPE_COMMERCE_POLICE ? building_marker_image = "/images/building_commerce_police_other.png" : e.building_type == BUILDING_TYPE_BOMB_DISPOSAL ? building_marker_image = "/images/building_bomb_disposal_other.png" : e.building_type == BUILDING_TYPE_COMPLEX ? building_marker_image = "/images/building_complex_other.png" : e.building_type == BUILDING_TYPE_COMPLEX_SMALL ? building_marker_image = "/images/building_complex_other.png" : e .building_type == BUILDING_TYPE_WATER_RESCUE_SCHOOL ? building_marker_image = "/images/building_water_rescue_school_other.png" : e.building_type == BUILDING_TYPE_HAZARD_RESPONSE_EMS ? building_marker_image = "/images/building_hazard_response_ems_other.png" : e.building_type == BUILDING_TYPE_WATER_RESCUE_2 ? building_marker_image = "/images/building_wasserwacht_other.png" : e.building_type == BUILDING_TYPE_FIRE_INVESTIGATION && (building_marker_image = "/images/building_fire_marshall_other.png"), flavouredAsset(building_marker_image) } function spliceLatLngs(e, t) { if ("undefined" != typeof mapkit) { var i = e.points; i.splice(0, t), e.points = i } else { var i = e.getLatLngs(); i.splice(0, t), e.setLatLngs(i) } } function buildingMarkerBulkContentCacheDraw() { $("#building_list") .append(buildingMarkerBulkContentCache.join("")), buildingMarkerBulkContentCache = [], buildingsVehicleLoadVisible() } function currentHostname() { return 1 == mobile_bridge_use && 4 == mobile_version ? -1 !== String(window.location.hostname) .indexOf("192.168") ? location.protocol + "//" + window.location.hostname + ":" + window.location .port : location.protocol + "//" + window.location.hostname : "" } function iconMapGenerate(e, t) { var i = flavouredAsset(e), n = new Image; n.src = i, $(n) .load(function () { t.setIcon(L.icon({ iconUrl: i, iconSize: [n.width, n.height], iconAnchor: iconAnchorCalculate([n.width, n.height]) })) }) } function iconMapVehicleGenerate(e, t, i) { var n = new Image; n.src = e; var o = new Image; o.src = t, $(n) .load(function () { var t = L.icon({ iconUrl: e, iconSize: [n.width, n.height], iconAnchor: iconAnchorCalculate([n.width, n.height]) }); i.setIcon(t), i.icon_normal = t }), $(o) .load(function () { var e = L.icon({ iconUrl: t, iconSize: [o.width, o.height], iconAnchor: iconAnchorCalculate([o.width, o.height]) }); i.icon_sonderrechte = e }) } function missionMarkerBlukDraw() { $.each(patientBulkCache, function (e, t) { var i = ""; $.each(t, function (e, t) { i += t }), $("#mission_patients_" + e) .append(i) }), $.each(prisonerBulkCache, function (e, t) { var i = ""; $.each(t, function (e, t) { i += t }), $("#mission_prisoners_" + e) .append(i) }), patientBulkCache = {}, prisonerBulkCache = {} } function missionMarkerReset() { $.each(mission_markers, function (e, t) { "undefined" == typeof mapkit ? map.removeLayer(t) : map.removeAnnotation(t) }), mission_markers = Array(), $.each(mission_timers, function (e, t) { window.clearInterval(t.timer) }), $.each(patient_timers, function () { patient_timers = [] }), mission_timers = Array() } function buildingsVehicleLoadVisible() { if ($("#building_panel_body") .length <= 0) return !0; var e = $("#building_panel_body") .offset() .top - 3 * $("#building_panel_body") .height(), t = $("#building_panel_body") .offset() .top + 3 * $("#building_panel_body") .height(); if ($("#building_panel_body") .is(":visible")) { var i = []; $(".building_list_vehicles:visible") .each(function () { var n = $(this) .offset() .top; n > e && t > n && "0" == $(this) .data("vehicles-loaded") && ($(this) .data("vehicles-loaded", "1"), i.push($(this) .data("building_id"))) }), i.length > 0 && batchBuildingsVehicleLoad(i) } } function buildingsVehicleLoad(building_id) { $.get("/buildings/" + building_id + "/vehiclesMap", function (data) { buildingVehicleCache[building_id] = [], eval(data), vehicleContent = "", "undefined" != typeof buildingVehicleCache[building_id] && (vehicleContent = buildingVehicleCache[ building_id].join(""), buildingVehicleCache[building_id] = []), $( "#vehicle_building_" + building_id) .html(vehicleContent) }) } function batchBuildingsVehicleLoad(building_id_array) { $.post("/buildings/vehiclesMap", { building_ids: building_id_array }, function (data) { for (var idx = 0; idx < building_id_array.length; idx++) buildingVehicleCache[ building_id_array[idx]] = []; eval(data); for (var idx = 0; idx < building_id_array.length; idx++) { var building_id = building_id_array[idx], vehicleContent = ""; "undefined" != typeof buildingVehicleCache[building_id] && (vehicleContent = buildingVehicleCache[building_id].join(""), buildingVehicleCache[building_id] = [] ), $("#vehicle_building_" + building_id) .html(vehicleContent) } }) } function progressBarScrollUpdate() { var e = []; $(".progress-striped-inner-active") .each(function () { $(this) .visible(!0) || e.push($(this) .attr("id")) }), $(e.map(function (e) { return "#" + e }) .join(", ")) .addClass("progress-striped-inner-active-resource-safe") .removeClass("progress-striped-inner-active"); var t = []; $(".progress-striped-inner-active-resource-safe") .each(function () { $(this) .visible(!0) && t.push($(this) .attr("id")) }), $(t.map(function (e) { return "#" + e }) .join(", ")) .removeClass("progress-striped-inner-active-resource-safe") .addClass("progress-striped-inner-active"), missionScrollUpdate() } function missionScrollUpdate() { var e = $("#missions-panel-body") .offset() .top - 5 * $("#missions-panel-body") .height(), t = $("#missions-panel-body") .offset() .top + 5 * $("#missions-panel-body") .height(); $("#missions_outer") .is(":visible") && $(".missionSideBarEntry") .each(function () { $(this) .hasClass("missionSideBarEntryScrollInvisible") ? $(this) .offset() .top < t && $(this) .offset() .top > e && $(this) .removeClass("missionSideBarEntryScrollInvisible") .css("height", "auto") : ($(this) .offset() .top > t || $(this) .offset() .top < e) && ($(this) .css("height", $(this) .height() + "px"), $(this) .addClass("missionSideBarEntryScrollInvisible")) }) } function patientMarkerAddCombined(e) { var t = "
    "; t += "", t += e .count, t = t + " " + I18n.t("javascript.patient") + "", e.untouched > 0 && (t = t + " - " + e.untouched, t = t + " " + I18n.t("javascript.patient_untouched") + ""), $.each(e.errors, function (e, i) { t = t + "
    " + i + "x " + e + "
    " }), t += "
    ", missionMarkerBulkAdd ? ("undefined" == typeof patientBulkCache[e.mission_id] && (patientBulkCache[e.mission_id] = {}), patientBulkCache[e.mission_id][0] = t) : $( "#mission_patients_" + e.mission_id) .html(t) } function patientMarkerAdd(e) { $("#mission_patient_summary_" + e.mission_id) .hide(); var t = "progress patient_progress", i = "progress-striped-inner "; if (e.miliseconds_by_percent > 0 && (t = "progress patient_progress", i = "progress-striped-inner progress-striped-inner-active-resource-safe "), $("#patient_" + e.id) .length > 0) patientTimerDelete(e.id), $("#patient_bar_outer_" + e.id) .attr("class", t), $("#patient_bar_striper_" + e.id) .attr("class", i), $("#patient_bar_" + e.id) .css("width", e.live_current_value + "%"), e.missing_text ? ($("#patients_missing_" + e.id) .html(e.missing_text), $("#patients_missing_" + e.id) .attr("class", "alert alert-danger")) : ($("#patients_missing_" + e.id) .html(""), $("#patients_missing_" + e.id) .attr("class", "")), e.target_percent <= 0 ? $("#patient_bar_" + e.id) .removeClass("progress-bar-warning") .addClass("progress-bar-danger") : $("#patient_bar_" + e.id) .removeClass("progress-bar-danger") .addClass("progress-bar-warning"); else { var n = "
    " + e.name + "
    0 && patient_timers.push({ patient_id: e.id, miliseconds_by_percent: e.miliseconds_by_percent, params: e }), e.live_current_value <= 0 && patientFinish(e), missionMarkerBulkAdd || progressBarScrollUpdate() } function prisonerMarkerAdd(e) { if ($("#prisoner_" + e.id) .length > 0); else { var t = "
    " + e.name + "
    "; missionMarkerBulkAdd ? ("undefined" == typeof prisonerBulkCache[e.mission_id] && (prisonerBulkCache[e .mission_id] = {}), prisonerBulkCache[e.mission_id][e.id] = t) : $("#mission_prisoners_" + e .mission_id) .append(t) } } function leiststelleMinDistance(e, t) { var i = -1; return $.each(leitstelles, function (n, o) { var a = Math.round(distance(o[0], o[1], e, t)); (-1 == i || i > a) && (i = a) }), i } function missionMarkerDistanceUpdate() { $.each(mission_markers, function (e, t) { if (user_id != t.user_id) { var i = 0, n = 0, o = 0; "undefined" == typeof mapkit ? (position = t.getLatLng(), n = position.lat, o = position .lng) : (position = t.coordinate, n = position.latitude, o = position.longitude), 0 != leitstelle_latitude && (i = leiststelleMinDistance(n, o)), alliance_mission_distance !== !1 && i > alliance_mission_distance ? $("#mission_" + t .mission_id) .addClass("mission_alliance_distance_hide") : $("#mission_" + t.mission_id) .removeClass("mission_alliance_distance_hide") } }) } function missionVehiclesShowNotInvolved(e) { temp_vehicles_not_involved = Array(), $.each(vehicles_not_involved, function (t, i) { if (i.mid == e) { var n = new Date; i.dd = i.dd + Math.floor((n - i.involved_created_at) / 1e3), vehicleDrive(i) } else temp_vehicles_not_involved.push(i) }), vehicles_not_involved = temp_vehicles_not_involved } function missionInvolved(e, t) { $.each(mission_markers, function (i, n) { n.mission_id == e && (t && !n.involved && (n.involved = t, missionVehiclesShowNotInvolved(e)), n.involved = t) }) } function missionMarkerAdd(e) { bar_class = "progress mission_progress"; var t = "progress-striped-inner", i = 0, n = !1, o = e.caption; e.date_end > 0 && (t = "progress-striped-inner progress-striped-inner-active-resource-safe"); var a = ""; a = "undefined" != typeof mission_graphics[e.mtid] && null != mission_graphics[e.mtid] && "undefined" != typeof mission_graphics[e.mtid][e.vehicle_state] && "" != mission_graphics[e.mtid][e.vehicle_state] ? mission_graphics[e.mtid][e.vehicle_state] : "/images/" + e.icon + ".png"; var s = "red"; 1 == e.vehicle_state && (s = "yellow"), 2 == e.vehicle_state && (s = "green"), e.user_id != user_id && ( 0 != leitstelle_latitude && (i = leiststelleMinDistance(e.latitude, e.longitude)), null == e .user_id ? (e.caption = "[" + I18n.t("map.alliance_event") + "] " + e.caption, o = o + " " + I18n .t("map.alliance_event")) : (e.caption = "[" + I18n.t("map.alliance") + "] " + e.caption, o = o + " " + I18n.t("map.alliance")), alliance_mission_distance !== !1 && i > alliance_mission_distance && (n = !0)), 1 == mobile_bridge_use && currentMarkerTypeFilterTurnedOn( e.filter_id) && (4 == mobile_version && (e.app_icon_path = -1 !== String(a) .indexOf("//") ? a : currentHostname() + a), mobileBridgeAdd("mission", e)); var r = e.caption; "" != e.captionOld && (r = "" + e.captionOld + " " + r), "" != e.address && (r = r + ", " + e.address + "", o = o + " " + e.address); var l = 0; if (e.sw_start_in > 0 && (l = 1e3 * e.sw_start_in, "undefined" == typeof mission_overview_timer && ( mission_overview_timer = setInterval(mission_overview_timer_call, 1e3))), $("#mission_" + e.id) .length > 0) missionTimerDelete(e.id), $("#mission_bar_outer_" + e.id) .attr("class", bar_class), $("#mission_bar_striper_" + e.id) .attr("class", t), $("#mission_vehicle_state_" + e.id) .attr("src", a), $("#mission_bar_" + e.id) .css("width", e.live_current_value + "%"), $("#mission_" + e.id) .attr("search_attribute", o), $("#mission_" + e.id) .attr("data-overlay-index", e.overlay_index), $("#mission_panel_" + e.id) .removeClass("mission_panel_red"), $("#mission_panel_" + e.id) .removeClass("mission_panel_yellow"), $("#mission_panel_" + e.id) .removeClass("mission_panel_green"), $("#mission_panel_" + e.id) .addClass("mission_panel_" + s), (e.live_current_value > 0 || e.patients_count > 0 || e .prisoners_count > 0) && setTimeout(function () { $("#mission_" + e.id) .removeClass("mission_deleted") }, 1e3), $("#mission_overview_countdown_" + e.id) .attr("timeleft", l), 0 >= l && $("#mission_overview_countdown_" + e.id) .html(""), $("#mission_caption_" + e.id) .html(r), e.missing_text ? ($("#mission_missing_" + e.id) .html(e.missing_text), $("#mission_missing_" + e.id) .attr("class", "alert alert-danger")) : ($("#mission_missing_" + e.id) .html(""), $("#mission_missing_" + e.id) .attr("class", "")), e.missing_text_short ? ($("#mission_missing_short_" + e.id) .html(e.missing_text_short), $("#mission_missing_short_" + e.id) .attr("class", "alert alert-danger")) : ($("#mission_missing_short_" + e.id) .html(""), $("#mission_missing_short_" + e.id) .attr("class", "")), e.alliance_id && $("#mission_panel_" + e.id) .addClass("panel-success"); else { var c = "#mission_list"; e.kt ? (c = "#mission_list_krankentransporte", $("#ktw_no_transports") .hide()) : e.sw ? c = "#mission_list_sicherheitswache" : e.user_id != user_id && null != e .user_id ? ($("#alliance_no_mission") .hide(), c = "#mission_list_alliance") : e.user_id != user_id && null == e.user_id ? ($( "#alliance_no_mission") .hide(), c = "#mission_list_alliance_event") : $("#emergency_no") .hide(); var u = "", d = ""; e.missing_text && (u = "alert alert-danger", d = e.missing_text); var h = "", p = ""; e.missing_text_short && (h = "alert alert-danger", p = e.missing_text_short); var m = ""; e.alliance_id && (m = "panel-success"); var _ = "", f = $("#missions-panel-body") .offset() .top; f + 5 * $("#missions-panel-body") .height(), _ = "missionSideBarEntryScrollInvisible", o = o.replace(/'/g, "'"), $(c) .append("
    "), tutorial.callNewMissionListener(!0) } var g = !1; if ($.each(mission_markers, function (t, i) { i.mission_id == e.id && ("undefined" != typeof mapkit ? (i.url = { 1: a }, i.opacity = 1, i.title = e.caption, i.subtitle = e.address) : (i.setIcon( icon_empty), i.setOpacity(1), iconMapGenerate(a, i), i.setTooltipContent(r)), i .vehicle_state = e.vehicle_state, g = !0) }), !g && "undefined" != typeof L) { if ("undefined" != typeof mapkit) { var v = new mapkit.ImageAnnotation(new mapkit.Coordinate(e.latitude, e.longitude), { url: { 1: a } }); v.title = e.caption, v.subtitle = e.address, map.addAnnotation(v), v.element.className = "mapkit-marker", v.addEventListener("select", function () { $("#alarm_button_" + e.id) .click(), setTimeout(mapkitDeselectAnnotation, 1e3) }) } else { var v = L.marker([e.latitude, e.longitude], { zIndexOffset: 1e4, title: e.name, icon: icon_empty }) .bindTooltip(r, { permanent: mission_label, opacity: 1 }); "undefined" != typeof map && v.addTo(map_filters_service.getFilterLayerByMissionParams(e)), iconMapGenerate(a, v), v.on("click", function () { $("#alarm_button_" + e.id) .click() }) } v.mission_id = e.id, v.user_id = e.user_id, v.vehicle_state = e.vehicle_state, v.krankentransport = e .kt, v.sicherheitswache = e.sw, v.involved = !0, mission_markers.push(v) } n && $("#mission_" + e.id) .addClass("mission_alliance_distance_hide"), e.date_end > 0 && missionTimerStart(e), missionSelectionUpdateButtons(), e.live_current_value <= 0 && e .live_current_water_damage_pump_value <= 0 && missionFinish(e), missionMarkerBulkAdd || ( progressBarScrollUpdate(), "" != $("#search_input_field_missions") .val() && searchMission()) } function missionTimerStart(e) { e.date_start = unix_timestamp(), e.date_diff = unix_timestamp() - e.date_now, e.date_end_calc = e .date_end + e.date_diff, e.live_current_value_start = e.live_current_value, mission_timers.push({ mission_id: e.id, timer: window.setInterval(function () { missionTimer(e) }, 1e3) }) } function missionTimerDelete(e) { $.each(mission_timers, function (t, i) { i.mission_id == e && window.clearInterval(i.timer) }) } function patientTimerDelete(e) { var t = null; return $.each(patient_timers, function (i, n) { n.patient_id == e && (t = i) }), null != t && patient_timers.splice(t, 1), !0 } function missionTimer(e) { e.live_current_value > e.tv ? (sum_time = e.date_end_calc - e.date_start, done_time = unix_timestamp() - e .date_start, percent_done = done_time / sum_time, percent_todo = 1 - percent_done, saved_current_value = e.live_current_value_start, e.live_current_value = Math.ceil(percent_todo * (saved_current_value - e.tv)) + e.tv, ($("#mission_bar_" + e.id) .visible(!0) || Math.random() < .3) && $("#mission_bar_" + e.id) .css("width", e.live_current_value + "%")) : e.live_current_value <= 0 && e .live_current_water_damage_pump_value <= 0 ? missionFinish(e) : $("#mission_bar_striper_" + e.id) .removeClass("progress-striped-inner-active") .removeClass("progress-striped-inner-active-resource-safe") } function patientBarColor(e) { e.target_percent <= 0 ? ($("#patient_bar_" + e.id) .removeClass("progress-bar-warning") .addClass("progress-bar-danger"), $("#mission_patients_" + e.id) .removeClass("progress-bar-warning") .addClass("progress-bar-danger")) : ($("#patient_bar_" + e.id) .removeClass("progress-bar-danger") .addClass("progress-bar-warning"), $("#mission_patients_" + e.id) .removeClass("progress-bar-danger") .addClass("progress-bar-warning")) } function patientTimer() { var e = Date.now(); "undefined" == typeof patient_timer_last_call && (patient_timer_last_call = e); var t = e - patient_timer_last_call; patient_timer_last_call = e, "number" == typeof t && 0 / 0 != t && $.each(patient_timers, function (e, i) { var n = i.params; if (n.live_current_value > n.target_percent) { var o = t / n.miliseconds_by_percent; $("#patient_bar_" + n.id) .visible(!0) && $("#patient_bar_" + n.id) .css("width", Math.round(n.live_current_value) + "%"), n.live_current_value = n .live_current_value - o } else n.live_current_value < 0 && patientFinish(n) }) } function patientTimerMission(e) { e.live_current_value > e.target_percent ? ($("#mission_patients_" + e.id) .css("width", e.live_current_value + "%"), e.live_current_value = e.live_current_value - 1, window .setTimeout(function () { patientTimerMission(e) }, e.miliseconds_by_percent)) : e.live_current_value < 0 && $("#mission_patients_" + e.id) .removeClass("progress-bar-danger") .addClass("progress-bar-success") .css("width", "100%") } function patientFinish(e) { $("#patient_bar_" + e.id) .removeClass("progress-bar-danger") .addClass("progress-bar-success") .css("width", "100%") } function patientDelete(e) { $("#patient_" + e) .remove(), patientTimerDelete(e) } function prisonerDelete(e) { $("#prisoner_" + e) .remove() } function missionFinish(e) { e.patients_count <= 0 && e.prisoners_count <= 0 && ($("#mission_bar_" + e.id) .removeClass("progress-bar-danger") .addClass("progress-bar-success") .css("width", "100%"), missionDelete(e.id)) } function missionDelete(e) { 1 == mobile_bridge_use && 4 == mobile_version && mobileBridgeAdd("mission_delete", { id: e }), $("#mission_" + e) .addClass("mission_deleted"), missionTimerDelete(e); var t = []; $.each(mission_markers, function (i, n) { n.mission_id == e ? "undefined" == typeof mapkit ? n.remove() : map.removeAnnotation(n) : t .push(n) }), mission_markers = t, missionSelectionUpdateButtons() } function vehicleMarkerAdd(e) { e.building_id = e.b, e.caption = e.c, e.vehicle_type_id = e.t; var t = ""; 1 == e.fms_real ? t = I18n.t("fms.ready_traveling") : 2 == e.fms_real ? t = I18n.t("fms.ready_home") : 3 == e.fms_real ? t = I18n.t("fms.going") : 4 == e.fms_real ? t = I18n.t("fms.on_place") : 5 == e .fms_real ? t = I18n.t("fms.on_destination") : 6 == e.fms_real ? t = I18n.t("fms.not_ready") : 7 == e .fms_real ? t = I18n.t("fms.patient_transported") : 8 == e.fms_real ? t = I18n.t( "fms.on_destination") : 9 == e.fms_real ? t = I18n.t("fms.waiting_for_vehicle") : 0 == e.fms_real && ( t = "Notruf"); var i = '' + e.fms + " " + '' + e.caption + ""; if ((3 == e.fms_real || 4 == e.fms_real) && (i += '' + I18n.t("javascript.backalarm") + "", e.back_alarm), $("#vehicle_overview_vehicle_" + e.id) .html(e.fms) .attr("class", "building_list_fms building_list_fms_" + e.fms_real) .attr("title", t), "undefined" == typeof L) return !0; if ($("#vehicle_list_" + e.id) .length > 0 && ("undefined" == typeof e.bulkInsert || !e.bulkInsert)) $("#vehicle_list_" + e.id) .html(i); else { var n = '
  • '; n += i, n += "
  • ", "undefined" != typeof e.bulkInsert && e.bulkInsert ? ("undefined" == typeof buildingVehicleCache[e.building_id] && (buildingVehicleCache[e.building_id] = []), buildingVehicleCache[e.building_id].push(n)) : $("#vehicle_building_" + e.building_id) .append(n) } } function vehicleDrive(e) { e.isr = flavouredAsset(e.isr), e["in"] = flavouredAsset(e["in"]); var t = new Date, i = !0; if ("" == e.mid || alliance_show_not_involved_vehicle || $.each(mission_markers, function (n, o) { return o.mission_id != e.mid || o.involved ? void 0 : (e.involved_created_at = t, vehicles_not_involved.push(e), i = !1, !1) }), !i) return !1; if ($.each(vehicle_delay_timers, function (t, i) { i.vehicle_id == e.id && window.clearTimeout(i.timer) }), e.dd >= 0) vehicleDriveAdd(e); else { var n = -1e3 * e.dd; vehicle_delay_timers.push({ vehicle_id: e.id, timer: setTimeout(function () { vehicleDriveAdd(e) }, n) }) } } function vehicleDriveAdd(params) { if (0 == params.vom) return !0; if (mapViewExpanded) return !0; if (!mobile_show_vehicle && 1 == mobile_bridge_use) return !0; if (!show_vehicle && 0 == mobile_bridge_use) return !0; var vehicle_marker = null; if ($.each(mission_vehicles, function (e, t) { t.vehicle_id == params.id && ("undefined" == typeof mapkit ? map.removeLayer(t) : map .removeAnnotation(t), mission_vehicles[e].vehicle_marker_deleted = !0, ("undefined" == typeof route_show || 1 == route_show) && "undefined" != typeof t.polyline && ( "undefined" == typeof mapkit ? map.removeLayer(t.polyline) : map.removeOverlay(t .polyline))) }), "undefined" == typeof routes[params.rh]) { if ("-1" == params.s) return $.get("/vehicles/" + params.id + "/routing", function (data) { eval(data) }), !0; routes[params.rh] = eval(params.s) } if (("undefined" == typeof route_show || 1 == route_show) && "undefined" != typeof routes[params.rh]) { var lineArray = []; if (jQuery.each(routes[params.rh], function (e, t) { lineArray.push([t[0], t[1]]) }), "undefined" != typeof mapkit) { var coords = lineArray.map(function (e) { return new mapkit.Coordinate(e[0], e[1]) }), style = new mapkit.Style({ lineWidth: 2, lineJoin: "round", strokeColor: "#FF0000" }); params.polyline = new mapkit.PolylineOverlay(coords, { style: style }), map.addOverlay(params.polyline) } else params.polyline = L.polyline(lineArray, { color: "red", opacity: 1, weight: 3 }) .addTo(map) } vehicleCreateOnMap(vehicle_marker, params), building_maps_redraw() } function vehicle_image_reload() { $(".vehicle_image_reload") .each(function () { if ("false" == $(this) .attr("image_replace_allowed")) return !0; if ("undefined" != typeof $(this) .attr("vehicle_graphic_id") && "" != $(this) .attr("vehicle_graphic_id")) { var e = $(this) .attr("vehicle_graphic_id"); "undefined" != typeof vehicle_graphics_sorted[e] && "undefined" != typeof vehicle_graphics_sorted[e][$(this) .attr("vehicle_type_id")] && null != vehicle_graphics_sorted[e][$(this) .attr("vehicle_type_id")] && $(this) .attr("src", vehicle_graphics_sorted[e][$(this) .attr("vehicle_type_id")][0]) } else "undefined" != typeof vehicle_graphics[$(this) .attr("vehicle_type_id")] && null != vehicle_graphics[$(this) .attr("vehicle_type_id")] && $(this) .attr("src", vehicle_graphics[$(this) .attr("vehicle_type_id")][0]) }) } function vehicleCreateOnMap(e, t) { if ("true" == t.ioverwrite || "undefined" == typeof user_id || t.user_id != user_id) if ("undefined" != typeof buildingVehicleGraphicCache[t.b]) { var i = buildingVehicleGraphicCache[t.b]; "undefined" != typeof vehicle_graphics_sorted[i] && "undefined" != typeof vehicle_graphics_sorted[ i][t.vtid] && null != vehicle_graphics_sorted[i][t.vtid] && (t["in"] = flavouredAsset( vehicle_graphics_sorted[i][t.vtid][0]), t.isr = flavouredAsset( vehicle_graphics_sorted[i][t.vtid][1]), t.apng_sonderrechte = flavouredAsset( vehicle_graphics_sorted[i][t.vtid][2])) } else "undefined" != typeof vehicle_graphics[t.vtid] && null != vehicle_graphics[t.vtid] && (t[ "in"] = flavouredAsset(vehicle_graphics[t.vtid][0]), t.isr = flavouredAsset(vehicle_graphics[t .vtid][1]), t.apng_sonderrechte = flavouredAsset(vehicle_graphics[t.vtid][2])); if (null == e) { if ("undefined" != typeof mapkit) { var e = new mapkit.ImageAnnotation(new mapkit.Coordinate(0, 0), { url: { 1: t["in"] } }); e.icon_normal = t["in"], e.icon_sonderrechte = t.isr, map.addAnnotation(e), e.element.className = "mapkit-marker", e.addEventListener("select", function () { "undefined" == typeof user_id ? $("#signup_from") .effect("highlight", {}, 500) : lightboxOpen("/vehicles/" + t.id), setTimeout( mapkitDeselectAnnotation, 1e3) }) } else { var e = L.marker([0, 0], { title: t.name, icon: icon_empty }) .addTo(map); iconMapVehicleGenerate(t["in"], t.isr, e), e.on("click", function () { "undefined" == typeof user_id ? $("#signup_from") .effect("highlight", {}, 500) : lightboxOpen("/vehicles/" + t.id) }) } e.visible = !1, e.apng_sonderrechte = "undefined" != typeof t.apng_sonderrechte && "true" == t .apng_sonderrechte ? !0 : !1, e.vehicle_marker_deleted = !1, mission_vehicles.push(e), setInterval(function () { vehicleSonderrechte(e) }, 1e3) } e.title = "undefined" == typeof user_id || t.user_id == user_id ? t.caption : "[" + I18n.t( "map.alliance") + "] " + t.caption, t.dd < 0 && (t.dd = 0); var n = new Date; e.url_arrive = "/vehicles/" + t.id + "/arrive", "undefined" == typeof mapkit && e.setIcon(icon_empty), e .user_id = t.user_id, e.sonderrechte = t.sr, e.rh = t.rh, e.polyline = t.polyline, e.current_step = 0, e.timer_steps = n.getTime() - 1e3 * t.dd, e.vehicle_id = t.id, "undefined" == typeof mapkit ? e .bindTooltip("" + t.fms + "" + e.title, { permanent: vehicle_label, opacity: 1 }) : e.title = e.title, 4 == mobile_version && (-1 !== String(t["in"]) .indexOf("//") ? (e.app_icon_path_normal = t["in"], e.app_icon_path_sonderrechte = t.isr) : (e .app_icon_path_normal = currentHostname() + t["in"], e.app_icon_path_sonderrechte = currentHostname() + t.isr)), e.visible || (e.visible = !0, "undefined" == typeof mapkit && e .setOpacity(1), vehicle_markers.push(e), vehicle_marker_id = vehicle_markers.length - 1, vehicleDriveReal(vehicle_marker_id)) } function vehicleSonderrechte(e) { var t = []; "undefined" != typeof mapkit ? (coordinate = e.coordinate, t[0] = coordinate.latitude, t[1] = coordinate .longitude) : t = e.getLatLng(), mapIsVisible(t) && "undefined" != typeof e.icon_normal && "undefined" != typeof e.icon_sonderrechte && (1 == e.sonderrechte ? "undefined" != typeof e .apng_sonderrechte && e.apng_sonderrechte && apng_supported ? 1 != e.sonderrechte_status && ( "undefined" != typeof mapkit ? e.url = { 1: e.icon_sonderrechte } : e.setIcon(e.icon_sonderrechte), e.sonderrechte_status = 1) : "undefined" != typeof e .sonderrechte_status && 1 == e.sonderrechte_status ? ("undefined" != typeof mapkit ? e.url = { 1: e.icon_normal } : e.setIcon(e.icon_normal), e.sonderrechte_status = 0) : ("undefined" != typeof mapkit ? e .url = { 1: e.icon_sonderrechte } : e.setIcon(e.icon_sonderrechte), e.sonderrechte_status = 1) : "undefined" != typeof e .sonderrechte_status && 1 == e.sonderrechte_status && ("undefined" != typeof mapkit ? e.url = { 1: e.icon_normal } : e.setIcon(e.icon_normal), e.sonderrechte_status = 0)) } function vehicleDriveReal(e) { var t = vehicle_markers[e]; if (t.vehicle_marker_deleted) return !0; var i = new Date; 0 == t.timer_steps && (t.timer_steps = i.getTime()); var n = 40; if ("undefined" != typeof routes[t.rh] && null != routes[t.rh] && "undefined" != typeof routes[t.rh][t .current_step]) { if (start_lat = routes[t.rh][t.current_step][0], start_lng = routes[t.rh][t.current_step][1], "undefined" != typeof routes[t.rh][t.current_step + 1]) { var o = 0; do if (end_lat = routes[t.rh][t.current_step + 1][0], end_lng = routes[t.rh][t.current_step + 1][ 1], offset_step = 100 * ((i.getTime() - t.timer_steps) / (1e3 * routes[t.rh][t .current_step][2])), offset_step >= 100) { var a = i.getTime() - t.timer_steps, s = 1e3 * routes[t.rh][t.current_step][2], r = a - s; t.current_step++, t.timer_steps = i.getTime() - r, o += 1 } while (offset_step >= 100 && "undefined" != typeof routes[t.rh][t.current_step + 1]); ("undefined" == typeof route_show || 1 == route_show) && "undefined" != typeof t.polyline && o > 0 && ("undefined" == typeof t.delete_step_counter_cache && (t .delete_step_counter_cache = 0), "undefined" == typeof t.latitude || mapIsVisible([t .latitude, t.longitude]) ? (spliceLatLngs(t.polyline, o + t .delete_step_counter_cache), t.delete_step_counter_cache = 0) : t .delete_step_counter_cache = t.delete_step_counter_cache + o), "undefined" != typeof routes[t.rh][t.current_step] && "undefined" != typeof routes[t.rh][t.current_step + 1] && (start_lat = routes[t.rh][t.current_step][0], start_lng = routes[t.rh][t.current_step][ 1], end_lat = routes[t.rh][t.current_step + 1][0], end_lng = routes[t.rh][t .current_step + 1][1], offset_step = 100 * ((i.getTime() - t.timer_steps) / (1e3 * routes[t.rh][t.current_step][2])), diff_jb = end_lat - start_lat, diff_kb = end_lng - start_lng, current_lat = start_lat + diff_jb * (offset_step / 100), current_lng = start_lng + diff_kb * (offset_step / 100), t.latitude = current_lat, t.longitude = current_lng, 1 == mobile_bridge_use && 4 == mobile_version ? mobileBridgeAdd( "vehicle_move", { id: t.vehicle_id, title: t.title, sonderrechte: t.sonderrechte, latitude: t.latitude, longitude: t.longitude, app_icon_path_normal: t.app_icon_path_normal, app_icon_path_sonderrechte: t.app_icon_path_sonderrechte }) : (isNaN(current_lat) || isNaN(current_lng), mapIsVisible([current_lat, current_lng]) && ("undefined" != typeof mapkit ? t.coordinate = new mapkit .Coordinate(current_lat, current_lng) : t.setLatLng([current_lat, current_lng])), mapIsVisible([current_lat, current_lng]) ? (1 == t.performance_invisible && (t .performance_invisible = !1, "undefined" == typeof mapkit ? t.addTo(map) : map .addAnnotation(t)), "undefined" == typeof mapkit && (vehicle_label ? t .openTooltip() : t.closeTooltip())) : (n = 1e3, "undefined" == typeof mapkit ? (t .closeTooltip(), map.removeLayer(t)) : 0 == t.performance_invisible && map .removeAnnotation(t), t.performance_invisible = !0), new_position = null)) } else t.current_step++; setTimeout(function () { vehicleDriveReal(e) }, n) } else vehicleArrive(t) } function allianceChatBanCountdown(e, t) { window.clearTimeout(alliance_chat_ban_countdown_timer), 0 >= e ? ($("#mission_chat_ban_message") .hide(), $("#alliance_chat_message") .show()) : ($("#mission_chat_ban_message") .show(), $("#mission_chat_ban_message_timer") .html(formatTime(e, !1)), $("#mission_chat_ban_message_admin") .html(t), $("#alliance_chat_message") .hide(), e -= 1, alliance_chat_ban_countdown_timer = setTimeout(function () { allianceChatBanCountdown(e, t) }, 1e3)) } function missionCountdown(e, t) { 0 > e || ($("#mission_countdown_" + t) .html(formatTime(e, !1)), e -= 1, setTimeout(function () { missionCountdown(e, t) }, 1e3)) } function taskCountdown(e, t) { 0 > e || ($("#task_countdown_" + t) .html(formatTime(e, !1)), e -= 1, setTimeout(function () { taskCountdown(e, t) }, 1e3)) } function vehicleArrivalCountdown(e, t, i) { 0 > e ? $("#vehicle_drive_" + t) .html(I18n.t("javascript.arrival") + "... " + I18n.t( "javascript.reload") + "") : (i > 0 ? $("#vehicle_drive_" + t) .html(I18n.t("javascript.start_in") + formatTime(i, !1)) : $("#vehicle_drive_" + t) .html(formatTime(e, !1)), e -= 1, i -= 1, setTimeout(function () { vehicleArrivalCountdown(e, t, i) }, 1e3)) } function extensionCountdown(e, t) { 0 > e || ($("#extension_countdown_" + t) .html(formatTime(e, !1)), e -= 1, setTimeout(function () { extensionCountdown(e, t) }, 1e3)) } function educationCountdown(e, t) { 0 > e ? $("#education_schooling_" + t) .html(I18n.t("javascript.few_seconds")) : ($("#education_schooling_" + t) .html(formatTime(e, !1)), e -= 1, setTimeout(function () { educationCountdown(e, t) }, 1e3)) } function highlightElement(e) { e.removeClass("highlight"), setTimeout(function () { e.addClass("highlight") }, 10) } function creditsUpdate(e) { 1 == mobile_bridge_use && mobileBridgeAdd("credits", { value: number_format(e) }); var t = number_format(e), i = $("#navigation_top .credits-value") .text(); $("#navigation_top .credits-value") .html(t), "" != i && i != t && highlightElement($("#navigation_top")) } function tasksUpdate(e, t) { e > 0 ? $("#completed_tasks_counter") .html(e) : 1 == t && $("#completed_tasks_counter") .html(I18n.t("javascript.new")), e > 0 ? ($("#completed_tasks_counter") .removeClass("hidden"), $("#menu_profile") .addClass("alliance_forum_new")) : 1 == t ? ($("#completed_tasks_counter") .removeClass("hidden"), $("#menu_profile") .addClass("alliance_forum_new")) : ($("#completed_tasks_counter") .addClass("hidden"), $("#menu_profile") .removeClass("alliance_forum_new")) } function updateSaleCountDown() { if (null != saleTimeout && (clearTimeout(saleTimeout), saleTimeout = null), sale_count_down > Date .now()) { var e = sale_count_down - Date.now(), t = "% " + count_down_title + " " + getFormattedDuration(e) + " %"; $("#sale_countdown") .html(t), $("#sale_countdown_mobile") .html(t), saleTimeout = setTimeout(updateSaleCountDown, 1e3) } else { $("#coins_top") .removeClass("saleHighlight"); var i = $("#sale_countdown"); i && i.remove(); var n = $("#sale_countdown_mobile"); n && n.remove() } } function setupSaleTimer(e, t, i) { var n = i - t, o = i - Date.now(); o > 0 ? (updateSaleCountdownTimer(e, o), updateSaleCountdownProgressBar(e, o, n), setTimeout(function () { setupSaleTimer(e, t, i) }, 1e3)) : saleEnded(e) } function saleEnded(e) { e.find(".sale_countdown_timer") .html(I18n.t("javascript.sale_ended", { defaultValue: "Sale ended" })), e.find("button") .attr("disabled", "disabled"), e.fadeOut() } function updateSaleCountdownTimer(e, t) { var i = I18n.t("javascript.time_left", { defaultValue: "Time left:" }) + " " + getFormattedDuration(t); e.find(".sale_countdown_timer") .html(i) } function updateSaleCountdownProgressBar(e, t, i) { var n = Math.floor(100 / i * t); e.find(".sale_countdown_progress_bar") .animate({ width: n + "%" }, 500) } function getFormattedDuration(e) { var t = Math.floor(e / 864e5), i = Math.floor(e % 864e5 / 36e5), n = Math.floor(e % 36e5 / 6e4), o = Math.floor(e % 6e4 / 1e3), a = ""; return t > 0 && (a = t + I18n.t("javascript.days") .charAt(0) + ":"), a + padding(i) + ":" + padding(n) + ":" + padding(o) } function coinsUpdate(e) { 1 == mobile_bridge_use && mobileBridgeAdd("coins", { value: number_format(e) }); var t = number_format(e); if (sale_count_down > Date.now()) mobile_bridge_use || (t += "
    ", $( "#coins_top") .addClass("saleHighlight")), 0 === $("#sale_countdown_mobile") .length && ($(".sale-countdown-block") .append("
    "), $("#sale_countdown_mobile") .on("click", function () { mobileBridgeAdd("coins_window", {}) })), updateSaleCountDown(), $("#coins_top .coins-value") .html(t); else { var i = $("#coins_top .coins-value") .text(); $("#coins_top .coins-value") .html(t), "" != i && i != t && highlightElement($("#coins_top")) } } function messageUnreadUpdate(e) { 1 == mobile_bridge_use && mobileBridgeAdd("pn", { value: number_format(e) }); var t = number_format(e), i = $("#message_top") .html(); $("#message_top") .html(t), e > 0 ? ($("#message_top") .addClass("message_new"), $("#main-navbar-toggle") .addClass("message_new")) : ($("#message_top") .removeClass("message_new"), $("#main-navbar-toggle") .removeClass("message_new")), "" != i && i != t && highlightElement($("#message_top")) } function number_format(e, t) { var i = I18n.t("number.format.separator"), n = I18n.t("number.format.delimiter"), o = new Array, a = 0 > e ? "-" : ""; e = Math.abs(e) .toFixed(t) .split("."), r = e[0].split("") .reverse(); for (var s = 1; s <= r.length; s++) o.unshift(r[s - 1]), 0 == s % 3 && s != r.length && o.unshift(n); return a + o.join("") + (e[1] ? i + e[1] : "") } function formatTimeDescription(e) { if (total_rest = e, e > 0) { if (countdown_message = "", e >= 86400) { var t = Math.floor(e / 86400); e -= 86400 * t, countdown_message += t + " " + I18n.t("javascript.days") + " " } if (e >= 3600) { var i = Math.floor(e / 3600); e -= 3600 * i, 10 > i && (i = "0" + i), countdown_message += i + " " + I18n.t( "javascript.hours") + " " } var n = Math.floor(e / 60); e -= 60 * n, 10 > n && (n = "0" + n), countdown_message += n + " " + I18n.t("javascript.minutes") + " ", countdown_message += 10 > e ? "0" + e : e, countdown_message += " " + I18n.t( "javascript.secounds") } else countdown_message = I18n.t("javascript.now"); return countdown_message } function formatTime(e, t) { if (total_rest = e, e > 0) { if (countdown_message = "", e >= 86400) { var i = Math.floor(e / 86400); if (e -= 86400 * i, countdown_message += i + " " + I18n.t("javascript.days") + " - ", "undefined" != typeof t && 1 == t) return countdown_message } if (e >= 3600) { var n = Math.floor(e / 3600); if (e -= 3600 * n, 10 > n && (n = "0" + n), countdown_message += n + ":", "undefined" != typeof t && 1 == t) return countdown_message } var o = Math.floor(e / 60); if (e -= 60 * o, 10 > o && (o = "0" + o), countdown_message += o + ":", "undefined" != typeof t && 1 == t) return countdown_message; if (countdown_message += 10 > e ? "0" + e : e, "undefined" != typeof t && 1 == t) return countdown_message } else countdown_message = "00"; return countdown_message } function vehicleArrive(e) { "undefined" != typeof e.polyline && ("undefined" != typeof mapkit ? map.removeOverlay(e.polyline) : map .removeLayer(e.polyline)), "undefined" != typeof mapkit ? map.removeAnnotation(e) : map .removeLayer(e), e.vehicle_marker_deleted = !0, 1 == mobile_bridge_use && 4 == mobile_version && mobileBridgeAdd("vehicle_remove", { id: e.vehicle_id }) } function rand(e, t) { var i = arguments.length; return 0 === i && (e = 0, t = 32768), Math.floor(Math.random() * (t - e + 1)) + e } function missionSpeed(e) { mission_speed = e, 6 == mission_speed ? $("#mission_speed_pause") .show() : $("#mission_speed_pause") .hide() } function missionRequest() { var e = 0; $.each(mission_markers, function (t, i) { 1 == i.opacity && i.user_id == user_id && e++ }); var t = mission_count_max; eventRunning && (t = 2 * t), 6 != mission_speed && "undefined" != typeof mission_count_max && t > e && $ .ajax({ url: "/mission-generate", cache: !1, error: function (e) { 401 == e.status && (window.location.href = "/") } }), timeout = 0 == mission_speed ? rand(12e4, 22e4) : 2 == mission_speed ? rand(31e3, 45e3) : 3 == mission_speed ? rand(21e3, 25e3) : 4 == mission_speed ? rand(25e4, 35e4) : 5 == mission_speed ? rand( 5e5, 7e5) : rand(31e3, 12e4), setTimeout("missionRequest()", timeout) } function lightboxShowClose(e) { e ? ($("#lightbox_close") .show(), $("#lightbox_iframe_" + iframe_lightbox_number) .css("height", parseInt($("#lightbox_box") .css("height")) - 34 + "px"), $("#lightbox_box") .css("border", "1px solid #e3e3e3")) : ($("#lightbox_close") .hide(), $("#lightbox_iframe_" + iframe_lightbox_number) .css("height", parseInt($("#lightbox_box") .css("height")) - 2 + "px"), $("#lightbox_box") .css("border", "1px solid #424242")) } function lighboxCalculateHeight() {} function lightboxOpen(e) { if (1 == mobile_bridge_use) mobileBridgeAdd("lightbox_open", { url: e }); else { var t = parseInt($("#lightbox_background") .css("width")), i = parseInt($("#lightbox_background") .css("height")), n = i - 100; 592 > n && (n = i - 30); var o = t - 70; 862 > o && (o = t - 0); var a = o - 2, s = n - 34, r = (t - o) / 2; $("#lightbox_box") .css("width", o + "px"), $("#lightbox_box") .css("height", n + "px"), $("#lightbox_box") .attr("iframeWidth", a), $("#lightbox_box") .attr("iframeHeight", s), $("#lightbox_box") .show(), $("#lightbox_box") .append(''), $("#lightbox_iframe_" + iframe_lightbox_number) .attr("src", e), $("#lightbox_iframe_" + iframe_lightbox_number) .show(), $("#lightbox_background") .show(), $("#lightbox_box") .css("left", r + "px"), $("#lightbox_box") .css("top", (i - n) / 2 + "px"), $("#lightbox_iframe_" + iframe_lightbox_number) .load(function () { $(this) .contents() .find("#iframe-inside-container") .css("height", s) .css("width", a) }), setTimeout('$("#lightbox_iframe_" + iframe_lightbox_number).focus();', 100) } } function lightboxAdjust() { var e = $("#lightbox_box") .attr("iframeWidth"), t = $("#lightbox_box") .attr("iframeHeight"); $("#lightbox_iframe_" + iframe_lightbox_number) .contents() .find("#iframe-inside-container") .css("height", t) .css("width", e) } function lightboxClose() { setTimeout('$("#lightbox_iframe_' + iframe_lightbox_number + '").remove();', 5e3), $( "#lightbox_background") .hide(), $("#lightbox_box") .hide(), $("#lightbox_iframe_" + iframe_lightbox_number) .hide(), iframe_lightbox_number += 1, tutorial.callLightBoxCloseListener() } function distance(e, t, i, n) { temp1 = i - e, temp2 = n - t; var o = 6371, a = temp1 * Math.PI / 180, s = temp2 * Math.PI / 180, r = Math.sin(a / 2) * Math.sin(a / 2) + Math.cos(e * Math.PI / 180) * Math.cos(i * Math.PI / 180) * Math.sin(s / 2) * Math.sin(s / 2), l = 2 * Math.atan2(Math.sqrt(r), Math.sqrt(1 - r)), c = o * l; return final = 1e3 * c } function allianceMenu(e) { 1 == mobile_bridge_use && mobileBridgeAdd("alliance_menu", { show: e }), e ? ($(".alliance_true") .show(), $(".alliance_false") .hide()) : ($(".alliance_true") .hide(), $(".alliance_false") .show()) } function allianceCandidatureCount(e) { 1 == mobile_bridge_use && mobileBridgeAdd("alliance_candidature_count", { value: e }); var t = "(" + number_format(e) + ")", i = $("#alliance_candidature_count") .html(); $("#alliance_candidature_count") .html(t), (alliance_coadmin || alliance_admin) && (e > 0 ? $("#menu_alliance") .addClass("alliance_apply_new") : $("#menu_alliance") .removeClass("alliance_apply_new")), "" != i && i != t && highlightElement($("#menu_alliance")) } function allianceMessageNew(e) { e ? ($("#alliance_message_new") .show(), $("#menu_alliance") .addClass("alliance_message_new"), $("#main-navbar-toggle") .addClass("alliance_message_new")) : ($("#alliance_message_new") .hide(), $("#menu_alliance") .removeClass("alliance_message_new"), $("#main-navbar-toggle") .removeClass("alliance_message_new")) } function allianceNewsNew(e) { e ? ($("#alliance_news_new") .show(), $("#menu_alliance") .addClass("alliance_forum_new"), $("#main-navbar-toggle") .addClass("alliance_forum_new")) : ($("#alliance_news_new") .hide(), $("#menu_alliance") .removeClass("alliance_forum_new"), $("#main-navbar-toggle") .removeClass("alliance_forum_new")) } function allianceForumNew(e) { e ? ($("#alliance_forum_new") .show(), $("#menu_alliance") .addClass("alliance_forum_new"), $("#main-navbar-toggle") .addClass("alliance_forum_new")) : ($("#alliance_forum_new") .hide(), $("#menu_alliance") .removeClass("alliance_forum_new"), $("#main-navbar-toggle") .removeClass("alliance_forum_new")) } function newsNew(e) { e ? ($("#news_li") .addClass("news_new"), $("#main-navbar-toggle") .addClass("news_new"), highlightElement($("#news"))) : ($("#news_li") .removeClass("news_new"), $("#main-navbar-toggle") .removeClass("news_new")) } function graphicPackNewMessages(e) { 0 == e && ($("#graphic_packs") .find(".badge") .hide(), 0 == $("ul[aria-labelledby='menu_profile']") .find(".badge:visible") .size() && $("#menu_profile") .removeClass("graphic_new_comments")) } function play(e) { if (1 == mobile_bridge_use && 4 == mobile_version) return mobileBridgeAdd("play", { sound: e }), !0; if (!mobile_bridge_use && window.HTMLAudioElement) try { var t = new Audio(""); t.canPlayType("audio/mp3") ? t = new Audio("/audio/" + e + ".mp3") : t.canPlayType("audio/ogg") && (t = new Audio("/audio/" + e + ".ogg")), t.play() } catch (i) {} } function isLoggedIn() { return "undefined" == typeof user_id || isNaN(user_id) ? !1 : !0 } function mobileShow(e) { if ("account" == e) mobileBridgeAdd("account_show", {}); else { $(".overview_outer") .hide(), $("#" + e + "_outer") .show(), $(".mobile-navbar-selector") .addClass("btn-default") .removeClass("btn-success"), $(".mobile-navbar-selector[target_element=" + e + "]") .removeClass("btn-default") .addClass("btn-success"), progressBarScrollUpdate(); var t = $(window) .height() - 71 - $("#navbar-mobile-footer") .outerHeight(); "map" == e && ($("#map") .height(t), "undefined" == typeof mapkit && map.invalidateSize()), "missions" == e && $( "#missions-panel-body") .height(t - $(".missions-panel-head") .outerHeight(!0)), "buildings" == e && ($("#building_panel_body") .css("max-height", "initial"), $("#building_panel_body") .css("padding-bottom", "15px"), $("#building_panel_body") .height(t - $("#building_panel_heading") .outerHeight(!0) - 50)), "chat" == e && ($("#chat_panel_body") .css("max-height", "initial"), $("#chat_panel_body") .css("padding-bottom", "15px"), $("#chat_panel_body") .height(t - $("#chat_panel_heading") .outerHeight(!0) - 50)), "radio" == e && ($("#radio_panel_body") .css("max-height", "initial"), $("#radio_panel_body") .css("padding-bottom", "15px"), $("#radio_panel_body") .height(t - $("#radio_panel_heading") .outerHeight(!0) - 50)) } } function mobileBridgeRequest() { var e = mobile_bridge_content.splice(0, 50), t = JSON.stringify(e); return t } function mobileBridgeAdd(e, t) { var i = !1; 1 == mobile_bridge_use && 4 == mobile_version && "vehicle_move" == e && $.each(mobile_bridge_content, function (n, o) { "vehicle_move" == o.f && o.p.id == t.id && (i = !0, mobile_bridge_content[n] = { f: e, p: t }) }), i || mobile_bridge_content.push({ f: e, p: t }) } function mobileDirectBridgeCall() {} function showNewBuildingDialog() { 1 == mobile_bridge_use && 4 == mobile_version && mobileDirectBridgeCall("showNewBuildingDialog") } function hideFAQButton(e) { 1 == mobile_bridge_use && 4 == mobile_version && mobileDirectBridgeCall("hideFAQButton", e) } function checkDesign(e) { 1 != e && 4 != e || $("body") .hasClass("dark") ? 1 != e && 4 != e && $("body") .hasClass("dark") && ($("body") .removeClass("dark", 500), "undefined" != typeof mapkit && (map.colorScheme = mapkit.Map .ColorSchemes.Light)) : ($("body") .addClass("dark", 500), "undefined" != typeof mapkit && (map.colorScheme = mapkit.Map.ColorSchemes .Dark)), 2 != e || $("body") .hasClass("bright") ? 2 != e && $("body") .hasClass("bright") && $("body") .removeClass("bright", 500) : ($("body") .addClass("bright", 500), "undefined" != typeof mapkit && (map.colorScheme = mapkit.Map .ColorSchemes.Light)) } function tellParent(e) { 1 == mobile_bridge_use ? mobileBridgeAdd("tell_main", { jscode: e }) : top.eval(e) } function missionSelectionOnly(e) { var t = ["mission_select_emergency", "mission_select_krankentransport", "mission_select_alliance", "mission_select_alliance_event", "mission_select_sicherheitswache"]; $.each(t, function (t, i) { e.attr("id") == i ? missionSelectionActive($("#" + i)) : missionSelectionDeactive($("#" + i)) }), missionSelectionSave() } function missionSelectionUpdateButtons() { if (missionMarkerBulkAdd) return !0; var e = 0, t = 0, i = 0, n = 0, o = 0, a = 0, s = 0, r = 0, l = 0, c = 0; $.each(mission_markers, function (u, d) { d.krankentransport ? (i++, 0 == d.vehicle_state && n++) : d.sicherheitswache ? (l++, 0 == d .vehicle_state && c++) : d.user_id != user_id && null != d.user_id ? (o++, 0 == d .vehicle_state && a++) : d.user_id != user_id && null == d.user_id ? (s++, 0 == d .vehicle_state && r++) : (e++, 0 == d.vehicle_state && t++) }), $("#mission_select_emergency") .html( ' (' + t + "/" + e + ")"), $("#mission_select_krankentransport") .html( ' (' + n + "/" + i + ")"), $("#mission_select_alliance") .html( ' (' + a + "/" + o + ")"), $("#mission_select_alliance_event") .html( ' (' + r + "/" + s + ")"), $("#mission_select_sicherheitswache") .html( ' (' + c + "/" + l + ")") } function missionSelection(e) { e.hasClass("btn-success") ? missionSelectionDeactive(e) : missionSelectionActive(e), missionSelectionSave() } function missionSelectionActive(e) { e.addClass("btn-success") .removeClass("btn-danger"), $("#" + e.attr("classShow") + " > .missionSideBarEntry") .removeClass("missionSideBarEntryScrollInvisible") .css("height", "auto"), $("#" + e.attr("classShow")) .show(), progressBarScrollUpdate() } function missionSelectionDeactive(e) { e.removeClass("btn-success") .addClass("btn-danger"), $("#" + e.attr("classShow")) .hide(), progressBarScrollUpdate() } function missionSelectionSave() { deactive_buttons = [], $(".mission_selection") .each(function () { $(this) .hasClass("btn-danger") && deactive_buttons.push($(this) .attr("id")) }), mc_storage.setToCookieStorage(STORAGE_KEY_DEACTIVE_MISSION_SELECTION, deactive_buttons) } function missionSelectionLoad() { deactive_selection = mc_storage.get(STORAGE_KEY_DEACTIVE_MISSION_SELECTION), deactive_selection && ( "string" == typeof deactive_selection && (deactive_selection = deactive_selection.split(",")), $ .each(deactive_selection, function (e, t) { missionSelectionDeactive($("#" + t)) })) } function leitstelleSelectionOnly(e) { $(".leitstelle_selection") .each(function () { e.attr("id") == $(this) .attr("id") ? leitstelleSelectionActive($(this)) : leitstelleSelectionDeactive($(this)) }) } function leitstelleSelection(e) { e.hasClass("btn-success") ? leitstelleSelectionDeactive(e) : leitstelleSelectionActive(e) } function leitstelleSelectionActive(e) { leitstelle_building_id = e.attr("leitstelle"), e.addClass("btn-success") .removeClass("btn-danger"), $(".building_list_li[leitstelle_building_id='" + leitstelle_building_id + "']") .removeClass("hideLeitstelle") } function leitstelleSelectionDeactive(e) { leitstelle_building_id = e.attr("leitstelle"), e.removeClass("btn-success") .addClass("btn-danger"), $(".building_list_li[leitstelle_building_id='" + leitstelle_building_id + "']") .addClass("hideLeitstelle") } function buildingSelectionOnly(e, t) { var i = ["building_selection_wasserrettung", "building_selection_feuerwehr", "building_selection_rettung", "building_selection_polizei", "building_selection_schule", "building_selection_leitstelle", "building_selection_thw"]; $.each(i, function (t, i) { e.attr("id") == i ? buildingSelectionActive($("#" + i)) : buildingSelectionDeactive($("#" + i)) }), buildingSelectionSave(), buildingsVehicleLoadVisible(), t && t() } function buildingSelection(e, t) { e.hasClass("btn-success") ? buildingSelectionDeactive(e) : buildingSelectionActive(e), buildingSelectionSave(), buildingsVehicleLoadVisible(), t && t() } function buildingSelectionActive(button) { building_type_ids = eval(button.attr("building_type_ids")), button.addClass("btn-success") .removeClass("btn-danger"), $.each(building_type_ids, function (e, t) { $(".building_list_li[building_type_id='" + t + "']") .addClass("category_selected") .show() }) } function buildingSelectionDeactive(button) { building_type_ids = eval(button.attr("building_type_ids")), "undefined" != typeof building_type_ids && ( button.removeClass("btn-success") .addClass("btn-danger"), $.each(building_type_ids, function (e, t) { $(".building_list_li[building_type_id='" + t + "']") .removeClass("category_selected") .hide() })) } function buildingSelectionSave() { deactive_buttons = [], $(".building_selection") .each(function () { $(this) .hasClass("btn-danger") && deactive_buttons.push($(this) .attr("id")) }), mc_storage.setToCookieStorage(STORAGE_KEY_DEACTIVE_BUILDING_SELECTION, deactive_buttons) } function buildingSelectionLoad() { deactive_selection = mc_storage.get(STORAGE_KEY_DEACTIVE_BUILDING_SELECTION), deactive_selection && ( "string" == typeof deactive_selection && (deactive_selection = deactive_selection.split(",")), $ .each(deactive_selection, function (e, t) { buildingSelectionDeactive($("#" + t)) })), buildingsVehicleLoadVisible() } function searchStations() { var e = $(".stations_search_field") .val() .toLowerCase(), t = $(".building_list_li.category_selected"); t.each(function () { var t = -1 !== $(this) .attr("search_attribute") .toLowerCase() .indexOf(e); $(this) .toggle(t) }) } function vehicle_group_available(vehicle_group_id, calculate_time) { var all_ok = !0, max_time = -1, vehicle_ids = eval($("#vehicle_group_" + vehicle_group_id) .attr("vehicles")); "undefined" == typeof calculate_time && (calculate_time = !1), "undefined" != typeof vehicle_ids && $ .each(vehicle_ids, function (e, t) { if ($("#vehicle_checkbox_" + t[0]) .length <= 0 || $("#vehicle_checkbox_" + t[0]) .is(":disabled")) all_ok = !1; else { var i = $("#vehicle_sort_" + t[0]) .attr("timevalue"); max_time = aao_maxtime(max_time, { max_time: i }) } }), max_time > 0 && all_ok ? $("#vehicle_group_timer_" + vehicle_group_id) .html(formatTime(max_time)) : $("#vehicle_group_timer_" + vehicle_group_id) .html("-"), all_ok ? ($("#available_" + vehicle_group_id) .attr("class", "label label-success"), $("#available_" + vehicle_group_id) .html("")) : ($("#available_" + vehicle_group_id) .html(""), $("#available_" + vehicle_group_id) .attr("class", "label label-danger")) } function aao_maxtime(e, t) { if (!t) return e; if (-2 == e) return -2; if ("undefined" == typeof t.max_time) return -2; var i = parseInt(t.max_time); return i > e || -1 == e && i >= 0 ? i : e } function aao_available(e, t) { var i = !0, n = -1; "undefined" == typeof t && (t = !1); var o = $("#aao_" + e); if (t || !$("#available_aao_" + e) .hasClass("label-success")) { $.each(aao_types, function (e, t) { var a = o.attr(t[0]); if (a > 0) if ("hlf_or_rw_and_lf" == t[0]) { var s = aao_check("hlf_only", o, a), r = aao_check("rw_only", o, a), l = aao_check("lf_only", o, a); if ((s || r) && l) { if (s && r && l) { var c = aao_maxtime(-1, s), u = aao_maxtime(-1, r), d = aao_maxtime(-1, l); u >= c || d >= c ? n = aao_maxtime(n, s) : (n = aao_maxtime(n, r), n = aao_maxtime(n, l)) } if (!s && r && l) { var u = aao_maxtime(-1, r), d = aao_maxtime(-1, l); n = aao_maxtime(n, r), n = aao_maxtime(n, l) } if (s && (!r || !l)) { var c = aao_maxtime(-1, s); n = aao_maxtime(n, s) } } else i = !1 } else if ("naw_or_rtw_and_nef" == t[0] || "naw_or_rtw_and_nef_or_rth" == t[0]) { var h = "nef"; "naw_or_rtw_and_nef" == t[0] && (h = "nef_only"); var s = aao_check("naw", o, a), r = aao_check(h, o, a), l = aao_check("rtw", o, a); if (s || r && l) { if (s && r && l) { var c = aao_maxtime(-1, s), u = aao_maxtime(-1, r), d = aao_maxtime(-1, l); u >= c || d >= c ? n = aao_maxtime(n, s) : (n = aao_maxtime(n, r), n = aao_maxtime(n, l)) } if (!s && r && l) { var u = aao_maxtime(-1, r), d = aao_maxtime(-1, l); n = aao_maxtime(n, r), n = aao_maxtime(n, l) } if (s && (!r || !l)) { var c = aao_maxtime(-1, s); n = aao_maxtime(n, s) } } else i = !1 } else { var p = aao_check(t[0], o, a); n = aao_maxtime(n, p), p || (i = !1) } }); var a = o.attr("custom"); if ("" != a) { var s = jQuery.parseJSON(a); $.each(s, function (e, t) { var a = aao_check("custom_" + md5(e), o, t); n = aao_maxtime(n, a), a || (i = !1) }) } var r = o.attr("vehicle_type_ids"); if (void 0 !== r) { var l = jQuery.parseJSON(r); $.each(l, function (e, t) { var a = aao_check("vehicle_type_id_" + e, o, t); n = aao_maxtime(n, a), a || (i = !1) }) } n > 0 && i ? $("#aao_timer_" + e) .html(formatTime(n)) : $("#aao_timer_" + e) .html("-"), i ? ($("#available_aao_" + e) .attr("class", "label label-success"), $("#available_aao_" + e) .html("")) : ($( "#available_aao_" + e) .html(""), $( "#available_aao_" + e) .attr("class", "label label-danger")) } } function unix_timestamp() { return Date.now() / 1e3 } function osrm_geometry_decode(e, t) { t = Math.pow(10, -t); for (var i = e.length, n = 0, o = 0, a = 0, s = []; i > n;) { var r, l = 0, c = 0; do r = e.charCodeAt(n++) - 63, c |= (31 & r) << l, l += 5; while (r >= 32); var u = 1 & c ? ~(c >> 1) : c >> 1; o += u, l = 0, c = 0; do r = e.charCodeAt(n++) - 63, c |= (31 & r) << l, l += 5; while (r >= 32); var d = 1 & c ? ~(c >> 1) : c >> 1; a += d, s.push([o * t, a * t]) } return s } function change_state(e) { "register" == current_state ? (params = e ? "slow" : { duration: 0 }, $(".login-form .signup") .hide(params), $(".login-form .login") .show(params), $(".navbar .login-button") .hide(), $(".navbar .signup-button") .show(), current_state = "login") : ($(".login-form .login") .hide(params), $(".login-form .signup") .show(params), $(".navbar .signup-button") .hide(), $(".navbar .login-button") .show(), current_state = "register") } function bigMapWindowSizeChanged() { if ($("body") .hasClass("bigMap")) { var e = parseInt($("#missions_outer") .height()); e = e - parseInt($(".missions-panel-head") .height()) - 15, $("#missions-panel-body") .css("height", e + "px"), e = parseInt($("#buildings_outer") .height()), e = e - parseInt($("#building_panel_heading") .height()) - 15, $("#building_panel_body") .css("height", e + "px"), e = parseInt($("#chat_outer") .height()), e = e - parseInt($("#chat_panel_heading") .height()) - 15, $("#chat_panel_body") .css("height", e + "px"), e = parseInt($("#radio_outer") .height()), e = e - parseInt($("#radio_panel_heading") .height()) - 15, $("#radio_panel_body") .css("height", e + "px"), bigMapWindowPositionSave() } } function bigMapWindowPositionSave() { var e = {}; e.m = bigMapWindowPositionGet($("#missions_outer")), e.b = bigMapWindowPositionGet($("#buildings_outer")), e.c = bigMapWindowPositionGet($("#chat_outer")), e.r = bigMapWindowPositionGet($("#radio_outer")), mc_storage.setToCookieStorage(STORAGE_KEY_BIG_MAP_WINDOW_POSITIONS, e) } function bigMapWindowPositionRestore() { var e = mc_storage.get(STORAGE_KEY_BIG_MAP_WINDOW_POSITIONS); "undefined" != typeof e && (bigMapWindowPositionRestoreWindow($("#missions_outer"), e.m), bigMapWindowPositionRestoreWindow($("#buildings_outer"), e.b), bigMapWindowPositionRestoreWindow( $("#chat_outer"), e.c), bigMapWindowPositionRestoreWindow($("#radio_outer"), e.r)), bigMapWindowSizeChanged(), buildingsVehicleLoadVisible() } function bigMapWindowPositionRestoreWindow(e, t) { "number" == typeof t[0] && t[0] > 100 && e.css("width", t[0] + "px"), "number" == typeof t[1] && t[1] > 20 && e.css("height", t[1] + "px"), "number" == typeof t[2] && t[2] < window.innerWidth && t[2] >= 0 && e.css("left", t[2] + "px"), "number" == typeof t[3] && (t[3] < window.innerHeight && t[3] > $( "#col_navbar_holder") .height() - 5 ? e.css("top", t[3] + "px") : e.css("top", $("#col_navbar_holder") .height() + "px")), "boolean" == typeof t[4] && t[4] && e.addClass("fadeIn animated") } function bigMapWindowPositionGet(e) { return [parseInt(e.css("width")), parseInt(e.css("height")), parseInt(e.css("left")), parseInt(e.css( "top")), e.hasClass("fadeIn")] } function bigMapMenuOpenClose(e) { e.hasClass("fadeIn") ? bigMapMenuClose(e) : bigMapMenuOpen(e) } function bigMapMenuOpen(e) { $("body") .hasClass("bigMap") && (e.addClass("animated fadeIn") .removeClass("fadeOut"), bigMapWindowInfront(e), bigMapWindowSizeChanged()), buildingsVehicleLoadVisible() } function bigMapMenuClose(e) { $("body") .hasClass("bigMap") && (e.addClass("animated fadeOut") .removeClass("fadeIn"), bigMapWindowSizeChanged()) } function bigMapWindowInfront(e) { var t = 2e3, i = t, n = 2050; $(".bigMapWindow") .each(function () { var e = parseInt($(this) .css("zIndex")); e > i && (i = e) }), i > n && ($(".bigMapWindow") .css("zIndex", t), i = t + 1), e.css("zIndex") != i && e.css("zIndex", i + 1) } function padding(e) { return ("0" + e.toString()) .substr(-2) } function toggleVehicleBuilding(e) { var t = 0; $("#vehicle_building_" + e) .is(":visible") ? ($("#building_list_caption_" + e) .append(hideVehicleBuildingHelpText(e)), $("#vehicle_building_" + e) .hide()) : ($("#hidden_vehicle_list_caption_" + e) .remove(), $("#vehicle_building_" + e) .show(), t = 1), buildingsVehicleLoadVisible(), $.ajax({ type: "POST", url: "/buildings/" + e + "/showVehiclesAtStartpage", data: { show: t } }) } function hideVehicleBuildingHelpText(e) { return '
    ' + I18n.t( "javascript.vehicles_not_visible") + "
    " } function setClientId(e) { mc_storage.setToCookieStorage(STORAGE_KEY_MOBILE_CLIENT_ID, e), $("#mobile-client-id") .html(e) } function allianceChannelUpdate(e) { var t = JSON.parse(e); void 0 !== t.old_channel && null !== t.old_channel && subscriptions.forEach(function (e) { e._channels.includes(t.old_channel) && e.unsubscribe() }), faye_subscribe(t) } function faye_subscribe(channel_update) { faye.addExtension({ outgoing: function (e, t) { return "/meta/subscribe" !== e.channel ? t(e) : (e.ext = e.ext || {}, e.ext[ channel_update.new_channel] = channel_update.auth_token, t(e), void 0) } }), subscriptions.push(faye.subscribe(channel_update.new_channel, function (data) { eval(data) })) } function openExternalTelegramURL(e) { mobileBridgeAdd("openExternalURL", { url: e }) } function setupTimer(e) { if (e.$timer.length) { var t = new Date(e.$timer.data("end-time")); if (isDateValid(t) && !(Date.now() >= t)) { updateTimer({ $timer: e.$timer, endTime: t, format: e.format }); var i = setInterval(function () { var n = Date.now() <= t; n ? updateTimer({ $timer: e.$timer, endTime: t, format: e.format }) : (clearInterval(i), e.onTimerEnd()) }, 1e3) } } } function updateTimer(e) { var t = e.endTime - Date.now(), i = "long" == e.format ? formatTime(Math.round(t / 1e3)) : getFormattedDuration(t); e.$timer.text(i) } function isDateValid(e) { return e instanceof Date && !isNaN(e) } function flavouredAsset(e, t) { function i(e, t) { var i = flavourAssetOverrides[gameFlavour] || []; return t ? i.find(function (i) { return i.from === e && i.scope === t }) : i.find(function (t) { return t.from === e && !t.scope }) } var n = i(e, t); return n ? n.to : e } function updateDailyBonusIcon() { $("#daily-bonus") .find(".bonus-active") .removeClass("bonus-active") } function switchWorld(e) { var t = e, i = {}; return ["utm_source", "utm_medium", "utm_campaign", "utm_term", "utm_content"].forEach(function (e) { const t = mc_storage.get(e); t && (i[e] = t) }), window.location.href = t + "?" + $.param(i), !1 } function updateButtonState(e, t) { function i(e, t) { e.toggleClass("disabled button-loading", !t) .attr("disabled", !t) } function n(e) { e.removeClass("button-loading") .addClass("disabled") .attr("disabled", !0) } t === BUTTON_STATES.loading ? i(e, !1) : t === BUTTON_STATES.enabled ? i(e, !0) : t == BUTTON_STATES .disabled && n(e) } function onAndroidBack() { return $("#close_tutorial_modal") .visible() ? ($("#close_tutorial_modal * .btn-danger") .click(), !0) : $("#btn-tutorial-close") .visible() ? ($("#btn-tutorial-close") .click(), !0) : !1 } function missionPositionMarkerAdd(e) { 1 == mobile_bridge_use && mobileBridgeAdd("poi", [e]) } function missionPositionMarkerDelete(e) { 1 == mobile_bridge_use && mobileBridgeAdd("poi_delete", { poi_id: e }) } function deleteMissionPosition(e) { $.ajax({ url: "/mission_positions/" + e, type: "POST", data: { _method: "delete" }, cache: !1, success: function () { missionPositionMarkerDelete(e) } }) } function initMapFiltersCollection(e) { mobile_map_filters_collection = e } function getMapFilterOptions() { return map_filter_options = {}, $.ajax({ type: "GET", url: "/map_filters", cache: !1, success: function (e) { $.each(e, function (e, t) { map_filters_section_lable = t.section_lable, map_filter_options[ map_filters_section_lable] = t.filters }), mobileBridgeAdd("map_filter_options", map_filter_options) } }), map_filter_options } function updateMapFilterOptions(e) { map_filters = Object.values(e) .reduce(function (e, t) { return e.concat(t) }, []), $.ajax({ type: "PUT", url: "/map_filters/update_collection", data: { map_filters: map_filters }, cache: !1, success: function (e) { 1 == mobile_bridge_use && (clearMap(e.cleared_map_filters), alliance_member_buildings_show = map_filters.find(function (e) { return "alliance_members" == e.filter_id }) .checked, e.buildings.length > 0 && $.each(e.buildings, function (e, t) { mobileBridgeAdd("building_add", t) }), e.missions.length > 0 && $.each(e.missions, function (e, t) { mobileBridgeAdd("mission", t) }), e.pois.length > 0 && $.each(e.pois, function (e, t) { missionPositionMarkerAdd(t) })) } }) } function clearMap(e) { 1 == mobile_bridge_use && mobileBridgeAdd("clear_map", { cleared_filters: e }) } function currentMarkerTypeFilterTurnedOn(e) { var t = mobile_map_filters_collection.find(function (t) { return t.filter_id === e }), i = void 0 != t ? t.checked : "undefined"; return "undefined" !== i ? i : !0 } Object.values || (Object.values = function (e) { return Object.keys(e) .map(function (t) { return e[t] }) }), Array.prototype.includes || (Array.prototype.includes = function (e) { return !!~this.indexOf(e) }), Array.prototype.find || Object.defineProperty(Array.prototype, "find", { value: function (e) { if (null == this) throw TypeError('"this" is null or not defined'); var t = Object(this), i = t.length >>> 0; if ("function" != typeof e) throw TypeError("predicate must be a function"); for (var n = arguments[1], o = 0; i > o;) { var a = t[o]; if (e.call(n, a, o, t)) return a; o++ } return void 0 }, configurable: !0, writable: !0 }), function (e) { "undefined" != typeof module && module.exports ? module.exports = e(this) : "function" == typeof define && define.amd ? define("i18n", function (t) { return function () { return e(t) } }(this)) : this.I18n = e(this) }(function (e) { "use strict"; var t = e && e.I18n || {}, i = Array.prototype.slice, n = function (e) { return ("0" + e.toString()) .substr(-2) }, o = { day_names: ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"], abbr_day_names: ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"], month_names: [null, "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"], abbr_month_names: [null, "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"], meridian: ["AM", "PM"] }, a = { precision: 3, separator: ".", delimiter: ",", strip_insignificant_zeros: !1 }, s = { unit: "$", precision: 2, format: "%u%n", sign_first: !0, delimiter: ",", separator: "." }, r = { unit: "%", precision: 3, format: "%n%u", separator: ".", delimiter: "" }, l = [null, "kb", "mb", "gb", "tb"], c = { defaultLocale: "en_US", locale: "en_US", defaultSeparator: ".", placeholder: /(?:\{\{|%\{)(.*?)(?:\}\}?)/gm, fallbacks: !1, translations: {}, missingBehaviour: "message", missingTranslationPrefix: "" }; return t.reset = function () { this.defaultLocale = c.defaultLocale, this.locale = c.locale, this.defaultSeparator = c .defaultSeparator, this.placeholder = c.placeholder, this.fallbacks = c.fallbacks, this.translations = c.translations, this.missingBehaviour = c.missingBehaviour, this .missingTranslationPrefix = c.missingTranslationPrefix }, t.initializeOptions = function () { "undefined" == typeof this.defaultLocale && null !== this.defaultLocale && (this .defaultLocale = c.defaultLocale), "undefined" == typeof this.locale && null !== this.locale && (this.locale = c.locale), "undefined" == typeof this .defaultSeparator && null !== this.defaultSeparator && (this.defaultSeparator = c .defaultSeparator), "undefined" == typeof this.placeholder && null !== this .placeholder && (this.placeholder = c.placeholder), "undefined" == typeof this .fallbacks && null !== this.fallbacks && (this.fallbacks = c.fallbacks), "undefined" == typeof this.translations && null !== this.translations && (this .translations = c.translations) }, t.initializeOptions(), t.locales = {}, t.locales.get = function (e) { var i = this[e] || this[t.locale] || this["default"]; return "function" == typeof i && (i = i(e)), i instanceof Array == !1 && (i = [i]), i }, t.locales["default"] = function (e) { var i, n = [], o = []; return e && n.push(e), !e && t.locale && n.push(t.locale), t.fallbacks && t .defaultLocale && n.push(t.defaultLocale), n.forEach(function (e) { i = e.split("-")[0], ~o.indexOf(e) || o.push(e), t.fallbacks && i && i !== e && !~o.indexOf(i) && o.push(i) }), n.length || n.push("en_US"), o }, t.pluralization = {}, t.pluralization.get = function (e) { return this[e] || this[t.locale] || this["default"] }, t.pluralization["default"] = function (e) { switch (e) { case 0: return ["zero", "other"]; case 1: return ["one"]; default: return ["other"] } }, t.currentLocale = function () { return this.locale || this.defaultLocale }, t.isSet = function (e) { return void 0 !== e && null !== e }, t.lookup = function (e, t) { t = this.prepareOptions(t); var i, n, o, a = this.locales.get(t.locale) .slice(); for (a[0], e = this.getFullScope(e, t); a.length;) if (i = a.shift(), n = e.split(this.defaultSeparator), o = this.translations[i]) { for (; n.length && (o = o[n.shift()], void 0 !== o && null !== o);); if (void 0 !== o && null !== o) return o } return this.isSet(t.defaultValue) ? t.defaultValue : void 0 }, t.meridian = function () { var e = this.lookup("time"), t = this.lookup("date"); return e && e.am && e.pm ? [e.am, e.pm] : t && t.meridian ? t.meridian : o.meridian }, t.prepareOptions = function () { for (var e, t = i.call(arguments), n = {}; t.length;) if (e = t.shift(), "object" == typeof e) for (var o in e) e.hasOwnProperty(o) && (this.isSet(n[o]) || (n[o] = e[o])); return n }, t.createTranslationOptions = function (e, t) { var i = [{ scope: e }]; return this.isSet(t.defaults) && (i = i.concat(t.defaults)), this.isSet(t.defaultValue) && (i.push({ message: t.defaultValue }), delete t.defaultValue), i }, t.translate = function (e, t) { t = this.prepareOptions(t); var i, n = this.createTranslationOptions(e, t), o = n.some(function (e) { return this.isSet(e.scope) ? i = this.lookup(e.scope, t) : this.isSet(e .message) && (i = e.message), void 0 !== i && null !== i ? !0 : void 0 }, this); return o ? ("string" == typeof i ? i = this.interpolate(i, t) : i instanceof Object && this.isSet(t.count) && (i = this.pluralize(t.count, i, t)), i) : this .missingTranslation(e, t) }, t.interpolate = function (e, t) { t = this.prepareOptions(t); var i, n, o, a, s = e.match(this.placeholder); if (!s) return e; for (var n; s.length;) i = s.shift(), o = i.replace(this.placeholder, "$1"), n = this .isSet(t[o]) ? t[o].toString() .replace(/\$/gm, "_#$#_") : o in t ? this.nullPlaceholder(i, e) : this .missingPlaceholder(i, e), a = new RegExp(i.replace(/\{/gm, "\\{") .replace(/\}/gm, "\\}")), e = e.replace(a, n); return e.replace(/_#\$#_/g, "$") }, t.pluralize = function (e, t, i) { i = this.prepareOptions(i); var n, o, a, s, r; if (n = t instanceof Object ? t : this.lookup(t, i), !n) return this.missingTranslation(t, i); for (o = this.pluralization.get(i.locale), a = o(e); a.length;) if (s = a.shift(), this.isSet(n[s])) { r = n[s]; break } return i.count = String(e), this.interpolate(r, i) }, t.missingTranslation = function (e, t) { if ("guess" == this.missingBehaviour) { var i = e.split(".") .slice(-1)[0]; return (this.missingTranslationPrefix.length > 0 ? this.missingTranslationPrefix : "") + i.replace("_", " ") .replace(/([a-z])([A-Z])/g, function (e, t, i) { return t + " " + i.toLowerCase() }) } var n = this.getFullScope(e, t), o = [this.currentLocale(), n].join(this.defaultSeparator); return '[missing "' + o + '" translation]' }, t.missingPlaceholder = function (e) { return "[missing " + e + " value]" }, t.nullPlaceholder = function () { return t.missingPlaceholder.apply(t, arguments) }, t.toNumber = function (e, t) { t = this.prepareOptions(t, this.lookup("number.format"), a); var i, n, o = 0 > e, s = Math.abs(e) .toFixed(t.precision) .toString(), r = s.split("."), l = [], c = t.format || "%n", u = o ? "-" : ""; for (e = r[0], i = r[1]; e.length > 0;) l.unshift(e.substr(Math.max(0, e.length - 3), 3)), e = e.substr(0, e.length - 3); return n = l.join(t.delimiter), t.strip_insignificant_zeros && i && (i = i.replace(/0+$/, "")), t.precision > 0 && i && (n += t.separator + i), c = t.sign_first ? "%s" + c : c.replace("%n", "%s%n"), n = c.replace("%u", t.unit) .replace("%n", n) .replace("%s", u) }, t.toCurrency = function (e, t) { return t = this.prepareOptions(t, this.lookup("number.currency.format"), this.lookup( "number.format"), s), this.toNumber(e, t) }, t.localize = function (e, t, i) { switch (i || (i = {}), e) { case "currency": return this.toCurrency(t); case "number": return e = this.lookup("number.format"), this.toNumber(t, e); case "percentage": return this.toPercentage(t); default: var n; return n = e.match(/^(date|time)/) ? this.toTime(e, t) : t.toString(), this .interpolate(n, i) } }, t.parseDate = function (e) { var t, i, n; if ("object" == typeof e) return e; if (t = e.toString() .match( /(\d{4})-(\d{2})-(\d{2})(?:[ T](\d{2}):(\d{2}):(\d{2})([\.,]\d{1,3})?)?(Z|\+00:?00)?/ )) { for (var o = 1; 6 >= o; o++) t[o] = parseInt(t[o], 10) || 0; t[2] -= 1, n = t[7] ? 1e3 * ("0" + t[7]) : null, i = t[8] ? new Date(Date.UTC(t[1], t[ 2], t[3], t[4], t[5], t[6], n)) : new Date(t[1], t[2], t[3], t[4], t[5], t[6], n) } else "number" == typeof e ? (i = new Date, i.setTime(e)) : e.match( /([A-Z][a-z]{2}) ([A-Z][a-z]{2}) (\d+) (\d+:\d+:\d+) ([+-]\d+) (\d+)/) ? (i = new Date, i.setTime(Date.parse([RegExp.$1, RegExp.$2, RegExp.$3, RegExp.$6, RegExp .$4, RegExp.$5].join(" ")))) : e.match(/\d+ \d+:\d+:\d+ [+-]\d+ \d+/) ? (i = new Date, i.setTime(Date.parse(e))) : (i = new Date, i.setTime(Date.parse(e))); return i }, t.strftime = function (e, i) { var a = this.lookup("date"), s = t.meridian(); a || (a = {}), a = this.prepareOptions(a, o); var r = e.getDay(), l = e.getDate(), c = e.getFullYear(), u = e.getMonth() + 1, d = e.getHours(), h = d, p = d > 11 ? 1 : 0, m = e.getSeconds(), _ = e.getMinutes(), f = e.getTimezoneOffset(), g = Math.floor(Math.abs(f / 60)), v = Math.abs(f) - 60 * g, b = (f > 0 ? "-" : "+") + (g.toString() .length < 2 ? "0" + g : g) + (v.toString() .length < 2 ? "0" + v : v); return h > 12 ? h -= 12 : 0 === h && (h = 12), i = i.replace("%a", a.abbr_day_names[r]), i = i.replace("%A", a.day_names[r]), i = i.replace("%b", a.abbr_month_names[u]), i = i .replace("%B", a.month_names[u]), i = i.replace("%d", n(l)), i = i.replace("%e", l), i = i.replace("%-d", l), i = i.replace("%H", n(d)), i = i.replace("%-H", d), i = i .replace("%I", n(h)), i = i.replace("%-I", h), i = i.replace("%m", n(u)), i = i .replace("%-m", u), i = i.replace("%M", n(_)), i = i.replace("%-M", _), i = i.replace( "%p", s[p]), i = i.replace("%S", n(m)), i = i.replace("%-S", m), i = i.replace( "%w", r), i = i.replace("%y", n(c)), i = i.replace("%-y", n(c) .replace(/^0+/, "")), i = i.replace("%Y", c), i = i.replace("%z", b) }, t.toTime = function (e, t) { var i = this.parseDate(t), n = this.lookup(e); return i.toString() .match(/invalid/i) ? i.toString() : n ? this.strftime(i, n) : i.toString() }, t.toPercentage = function (e, t) { return t = this.prepareOptions(t, this.lookup("number.percentage.format"), this.lookup( "number.format"), r), this.toNumber(e, t) }, t.toHumanSize = function (e, t) { for (var i, n, o = 1024, a = e, s = 0; a >= o && 4 > s;) a /= o, s += 1; return 0 === s ? (i = this.t("number.human.storage_units.units.byte", { count: a }), n = 0) : (i = this.t("number.human.storage_units.units." + l[s]), n = 0 === a - Math.floor(a) ? 0 : 1), t = this.prepareOptions(t, { unit: i, precision: n, format: "%n%u", delimiter: "" }), this.toNumber(a, t) }, t.getFullScope = function (e, t) { return t = this.prepareOptions(t), e.constructor === Array && (e = e.join(this .defaultSeparator)), t.scope && (e = [t.scope, e].join(this.defaultSeparator)), e }, t.t = t.translate, t.l = t.localize, t.p = t.pluralize, t }), I18n.translations || (I18n.translations = {}), I18n.translations.de_DE = { common: { add: "Hinzufügen", back: "Zurück", cancel: "Abbrechen", change_saved: "Änderung gespeichert", coins_spend: "Möchtest Du wirklich Coins dafür ausgeben?", congratulations: "Glückwunsch!", content: "Inhalt", copy: "Kopieren", credits: "Credits", "delete": "Löschen", details: "Details", edit: "Bearbeiten", error: "Fehler", is_offline: "%{user} ist offline.", is_offline_long: "%{user} ist bereits länger offline.", is_offline_with_duration: "%{user} ist offline: %{duration}", is_online: "%{user} ist online.", loading: "Lade...", name: "Name", none: "Keine", of: "von", off: "Aus", on: "An", save: "Speichern", search: "Suchen", show: "Anzeigen", user_not_found: "User nicht gefunden", wrong_key: "Key falsch" }, javascript: { alarm: "Alarm", arrival: "Ankunft", backalarm: "Rückalarmieren", coins: "Coins", credits: "Credits", days: "Tage", few_seconds: "In wenigen Sekunden", finish_in: "Ende in:", hours: "Std.", location_not_found: "Ort nicht gefunden.", messages: "Nachrichten", minutes: "Min.", missed_vehicle: "Es fehlen:", mission_start_in: "Beginn in:", "new": "Neu", not_found_map: "Das Fahrzeug wurde auf der Karte nicht gefunden", now: "Sofort", patient: "Patienten", patient_untouched: "unbehandelte Patienten", poi_delete: 'Wirklich den POI: "%{caption}" löschen?', pump_speed_approaching: "Anfahrt: %{amount} l/min", pump_speed_missing: "Fehlen: %{amount} l/min", pump_speed_on_site: "Einsatzstelle: %{amount} l/min", pump_speed_selected: "Ausgewählt: %{amount} l/min", reload: "Neuladen", sale: "Sale", sale_ended: "Sonderangebote beendet", secounds: "Sek.", sicherheitswache_error: 'Die Sicherheitswache "%{caption}" wurde nicht erfolgreich durchgeführt, weil nicht alle Voraussetzung erfüllt waren.', sicherheitswache_success: 'Die Sicherheitswache "%{caption}" wurde erfolgreich durchgeführt. Du erhältst %{credits} Credits.', start_in: "Ausrücken in: ", start_username: "Gestartet von:", time_left: "Verbleibende Zeit:", to_building: "Zum Gebäude", to_mission: "Zum Einsatz", understand: "Verstanden", user_not_found: "Der Spieler wurde nicht gefunden. ", vehicles_not_visible: "Fahrzeuge ausgeblendet.", water_approaching: "Anfahrt: %{amount} l.", water_missing: "Fehlen: %{amount} l.", water_on_site: "Einsatzstelle: %{amount} l.", water_pumping_process: "Wasser-Abpump-Prozess", water_selected: "Ausgewählt: %{amount} l." }, map: { alliance: "Verband", alliance_chat: "Chat", alliance_chat_banned: "Du bist im Verbandschat gebannt.", alliance_chat_banned_admin: "Gebannt von:", alliance_chat_banned_timeleft: "Restzeit:", alliance_chat_radio_off: "Verbandsfunk: Aus", alliance_chat_radio_on: "Verbandsfunk: An", alliance_event: "Event", alliance_missions: "Verbandseinsätze", alliance_missions_event: "Event", ambulance: "Krankentransporte", anti_abuse_active_link: "Klicke hier für weitere Informationen.", anti_abuse_active_text: "Neue Einsätze werden in einem erweiterten Radius von 100km generiert, da zu viele Gebäude desselben Typs zu nah beieinander stehen.", attended: "Beantwortet", cancel_alliance_event: "Verbands-Event abbrechen", cancel_alliance_event_confirm: "Möchtest du das Verbands-Event wirklich abbrechen?", challenges: "", chat_history: "Chatverlauf", congratulations: "Herzlichen Glückwunsch! Du kannst jetzt befördert werden.", create_alliance_event: "Verbands-Event starten", create_alliance_operation: "Verbands-Großeinsatz erstellen", emergency: "Notfälle", finishing: "Wird beendet", join_alliance_infos: "Wenn du in einem Verband bist, können andere Spieler dir Einsätze freigeben.", map: "Karte", map_filters: { all_buildings: "Gebäude", all_missions: "Einsätze", alliance_buildings: "Verbandsgebäude", alliance_members: "Gebäude von Verbandsmitgliedern", alliance_missions: "Vom Verband geteilt", ambulance_station_missions: "Rettungswache", ambulance_station_small_missions: "Rettungswache (Kleinwache)", building_complex: "Gebäudekomplex", buildings_section: "Wachen", clinic_missions: "Klinik", dispatch_center_missions: "Leitstelle", factory_fire_brigade_missions: "Werkfeuerwehr", fire_school_missions: "Feuerwehrschule", firehouse_missions: "Feuerwache", firehouse_small_missions: "Feuerwache (Kleinwache)", hospital_missions: "Notaufnahme", map_filters: "Points of Interest (POIs)", mission_positions: "Points of Interest (POIs)", mission_positions_section: "POIs", missions_section: "Einsätze", police_copter_station_missions: "Polizeihubschrauberstation", police_school_missions: "Polizeischule", police_small_missions: "Polizeiwache (Kleinwache)", police_special_forces: "Polizei-Sondereinheiten", police_station_missions: "Polizeiwache", prison_missions: "Polizeizellen (Nur für den Verband)", rapid_deployment_group: "Schnelleinsatzgruppe (SEG)", rapid_deployment_group_missions: "Schnelleinsatzgruppe (SEG)", rescue_copter_station_missions: "Rettungshubschrauber-Station", riot_police: "Bereitschaftspolizei", riot_police_missions: "Bereitschaftspolizei", staging_area_missions: "Bereitstellungsraum", technical_aid_organization: "THW", technical_aid_organization_missions: "THW", technical_aid_organization_school: "THW Bundesschule", user_buildings: "Meine Gebäude", user_missions: "Meine Einsätze", water_watch: "Wasserrettung", water_watch_missions: "Wasserrettung" }, message: "Nachricht", mission: "Einsätze", missions_filtered_out: "Einige Einsätze könnten herausgefiltert worden sein. Bitte überprüfe deinen Kartenfilter.", no_alliance_chat_impossible: "Du bist in keinem Verband. Der Chat ist nur innerhalb eines Verbandes möglich.", no_alliance_missions: "Es liegen keine Verbandseinsätze vor. ", no_ambulance_missions: "Es liegen keine Krankentransporte vor. Krankentransporte können auftreten, sobald Du einen KTW und ein Krankenhaus besitzt.", no_emergency_missions: "Es liegen keine Notfalleinsätze vor. Notfalleinsätze können ab der ersten Wache auftreten.", no_radio_messages: "Es sind keine Funksprüche eingegangen.", radio_messages: "Funk", restore_map: "Karte wiederherstellen", show_informations: "Grün = Die Einsätze werden in der Leiste angezeigt. Rot = Die Einsätze werden nicht angezeigt.", sicherheitswache: "Geplante Einsätze", transport: "Transporte", unattended: "Unbeantwortet" }, fms: { going: "Auf Anfahrt", not_ready: "Nicht einsatzbereit", on_destination: "Am Transportziel", on_place: "Beim Einsatzort", patient_transported: "Patient aufgenommen", prisoner_transported: "Gefangenen aufgenommen", ready_home: "Einsatzbereit auf Wache", ready_traveling: "Einsatzbereit über Funk", talking_wish: "Sprechwunsch", waiting_for_vehicle: "Warte auf Zugfahrzeug" }, intervention_order: { automatic_text_color: "Automatische Schriftfarbe", back: "Zurück", category: "Kategorie", colour: "Farbe", column: "Spalte", column_number: "Spaltennummer", column_number_hint: "Wenn eine Spaltennummer vergeben wird, dann wird der AAO-Eintrag in der entsprechenden Spalte bei der Alarmierung angezeigt.", create_intervention_order: "Neue Alarm und Ausrückeordnung anlegen", "delete": "Löschen", delete_all: "AAO komplett löschen", delete_all_confirm: "Wirklich die komplette AAO löschen? Auch bestehende exportierte Einträge, sind anschließend nicht mehr verfügbar!", description: "Bezeichnung", edit: "Bearbeiten", "export": { "export": "Exportieren", "import": "Importieren", import_done: "Die gewählten Einträge wurden importiert und in deine AAO geschrieben.", saved: "AAO-Exportiert", saved_text: "Deine AAO wurde für den Export vorbereitet. Über den Link kann ein anderer Spieler die AAO bei sich importieren. Solltest du deine AAO in der Zwischenzeit verändern, so wird diese Änderung auch im Export automatisch übernommen. " }, hotkey_hint: "Wähle einen Tastencode für diese Auswahl an Fahrzeugen. Im Alarmierungsfenster kannst du dann mit ALT + Taste deiner Wahl (bzw. im Firefox: ALT + SHIFT + Taste deiner Wahl - bzw. unter Mac OS: CTRL + ALT + Taste deiner Wahl) direkt diese Fahrzeugauswahl aufrufen. ", intervention_order: "Alarm und Ausrückeordnung bearbeiten", name: "Name", no_intervention_created: "Du hast noch keine Alarm und Ausrückeordnung angelegt.", options: "Optionen", reset: "Bisherige Auswahl im Alarmierungsfenster zurücksetzen", reset_hint: "Wenn man sich bei der Fahrzeugauswahl im Alarmierenfenster verklickt hat, kann man mithilfe dieses Buttons seine bisherige Auswahl wieder zurücksetzen. ", save: "Speichern", station: "Wache", station_hint: "Wenn ein Gebäude gewählt wurde, werden nur Fahrzeuge des entsprechenden Gebäudes ausgewählt.", successfully_created: "Alarm und Ausrückeordnung erfolgreich angelegt.", successfully_deleted: "Alarm und Ausrückeordnung gelöscht", successfully_updated: "Alarm und Ausrückeordnung erfolgreich gespeichert.", text_color: "Schriftfarbe", vehicles: { ab_atemschutz_only: "AB-Atemschutz", ab_einsatzleitung_only: "AB-Einsatzleitung", ab_gefahrgut_only: "AB-Gefahrgut", ab_oel_only: "AB-Öl", ab_ruest: "AB Rüst", ab_ruest_rw: "AB Rüst oder Rüstwagen oder HLF", abl2wasser_only: "AB-Schlauch", ambulance: "Rettungswagen", ambulance_or_rapid_responder: "", arff: "Flugfeldlöschfahrzeug", battalion_chief_unit: "Einsatzleitfahrzeuge 1", boot: "Boote (Allgemein)", dekon_p: "Dekon-P oder AB-Dekon-P", division_chief_unit: "Einsatzleitfahrzeuge 2", dlk_or_tm50: "DLK oder TM 50", elw1_or_elw2: "ELW 1, ELW 2 oder AB-Einsatzleitung", elw2_or_ab_elw: "ELW 2 oder AB-Einsatzleitung", elw3: "ELW 3", elw_airport: "", emergency_ambulance: "Notarzteinsatzfahrzeug oder Rettungshubschrauber", fire_truck: "Löschfahrzeuge oder Tanklöschfahrzeuge", fireboat: "", fly_car: "", fukw: "FüKw (Führungskraftwagen)", fustw_or_police_motorcycle: "Funkstreifenwagen oder Polizeimotorrad", fwk: "Feuerwehrkran", gefkw: "GefKw (Gefangenenkraftwagen)", gkw: "Gerätekraftwagen (GKW)", grtw: "GRTW", grtw0: "GRTW (7 Patienten - ohne Notarzt)", grtw1: "GRTW (3 Patienten - inkl. Notarzt)", grukw: "GruKw (Gruppenkraftwagen)", gw_atemschutz_only: "GW-A", gw_gefahrgut: "GW-Gefahrgut oder AB-Gefahrgut", gw_gefahrgut_only: "GW-Gefahrgut", gw_hoehenrettung: "GW-Höhenrettung", gw_messtechnik: "GW-Messtechnik", gw_oel_only: "GW-Öl", gw_san: "GW-San", gw_taucher: "GW-Taucher", gw_wasserrettung: "GW-Wasserrettung", gw_werkfeuerwehr: "GW-Werkfeuerwehr", gwl2wasser_all: "Alle Schlauchwagen", gwl2wasser_only: "Schlauchwagen", helicopter_bucket: "Außenlastbehälter (allgemein)", hems: "", hlf_only: "HLF", hlf_or_rw_and_lf: "HLF oder RW und LF", hondengeleider: "", k9: "Diensthundeführerkraftwagen", kdow_lna: "KdoW-LNA", kdow_orgl: "KdoW-OrgL", ktw_b: "KTW Typ B", ktw_or_rtw: "KTW oder RTW", lebefkw: "Leichter Befehlskraftwagen (leBefKw)", lf_only: "Löschfahrzeuge", long_distance_ambulance: "Krankentransportwagen", mask_service_unit: "GW-A oder AB-Atemschutz", mek_mtf: "MEK - MTF", mek_zf: "MEK - ZF", mtw: "MTW", mzb: "Mehrzweckboot", naw: "NAW", naw_or_critical_transport: "NAW oder ITW", naw_or_rtw_and_nef: "NAW oder ITW oder NEF+RTW", naw_or_rtw_and_nef_or_rth: "NAW oder ITW oder NEF/RTH+RTW", nef_only: "Notarzteinsatzfahrzeug", oil_unit: "GW-Öl oder AB-Öl", only_ab_dekon_p: "AB-Dekon-P ", only_dekon_p: "Dekon-P", ovd_p: "", police_car: "Funkstreifenwagen", police_motorcycle: "Polizeimotorrad", polizeihubschrauber: "Polizeihubschrauber", pump: "Schmutzwasserpumpen", pump_speed: "Pumpenleistung", pump_speed_pump_only: "Pumpenleistung - Nur Schmutzwasserpumpen", rescue_dogs: "Anhänger Hundetransport oder Rettungshundefahrzeug", rescue_dogs_seg: "Rettungshundefahrzeug", rescue_dogs_thw: "Anhänger Hundetransport", rescue_vehicle: "Rüstwagen oder HLF", rescue_vehicle_only: "Rüstwagen", rescueboat: "", rettungstreppe: "Rettungstreppe", rth_only: "Rettungshubschrauber", schlauchwagen: "Schlauchwagen oder AB-Schlauch", seg_elw: "ELW 1 (SEG)", sek_mtf: "SEK - MTF", sek_zf: "SEK - ZF", swat: "", swat_armored_vehicle: "", swat_suv: "", thw_anh_mzab: "Anh MzAB", thw_anh_mzb: "Anh MzB", thw_anh_schlb: "Anh SchlB", thw_brmg_r: "Radlader groß (BRmG R)", thw_dle: "Anhänger Drucklufterzeugung (Anh DLE)", thw_lkw: "Lastkraftwagen-Kipper 9 t (LKW K 9)", thw_lkw_7_lkr_19_tm: "LKW 7 Lkr 19 tm", thw_mlw5: "Mannschaftslastwagen Typ V (MLW 5)", thw_mtw: "Mannschaftstransportwagen Technischer Zug (MTW-TZ - THW)", thw_mzkw: "Mehrzweckkraftwagen (MzKW)", thw_tauchkraftwagen: "Tauchkraftwagen", thw_tauchkraftwagen_or_gw_taucher: "Tauchkraftwagen oder GW-Taucher", tlf_only: "Tanklöschfahrzeuge", tm50: "TM 50", turboloescher: "Turbolöscher", turntable_ladder: "Drehleitern", ulf: "ULF mit Löscharm", wasserwerfer: "Wasserwerfer", water_amount: "Liter Wasser", water_amount_tlf: "Liter Wasser - Nur TLF", water_damage_pump: "Feuerlöschpumpen" } }, tutorial: { beginner: { building: { browser: { build_building: { add_name: 'Nun gib deinem Gebäude einen Namen! Dieser sollte erkennbar und erweiterbar sein! Z.B. "Feuerwache #0001". Wenn du damit fertig bist, klicke auf "Weiter"!', build_with_credits: "Baue jetzt dein Gebäude mit Credits!", new_building: 'Klicke auf "Neues Gebäude bauen"!', select_building: "Wähle den Gebäudetyp aus, mit dem du starten möchtest. Wir empfehlen dir, mit Feuerwachen zu beginnen! In jedem Fall ist es ratsam, mit einer kleinen Wache zu starten!", select_position: "Schiebe die blaue Markierung dorthin, wo du dein erstes Gebäude bauen möchtest!" }, pick_location: "Suche dir einen Ort zum Anfangen aus! Tippe den Names des Ortes in die Suchleiste ein oder wähle ihn direkt auf der Karte aus! Wie wäre es mit deiner Heimat?", welcome: "Hallo, willkommen beim Leitstellenspiel! Zum Start haben wir eine kleine Anleitung vorbereitet." }, mobile: { build_building: { add_name: 'Nun gibst du deinem Gebäude einen Namen! Dieser sollte erkennbar und erweiterbar sein! Z.B. "Feuerwache #0001". Wenn du damit fertig bist, klicke auf "Weiter"!', build_with_credits: "Baue jetzt dein Gebäude mit Credits!", new_building: 'Zuerst suchen wir uns einen Ort für dein neues Gebäude!

    Dazu klickst du auf "Neues Gebäude bauen"!', select_building: "Jetzt suchst du den Gebäudetyp aus, mit dem du starten möchtest. Wir empfehlen dir, mit Feuerwachen zu beginnen! In jedem Fall ist es ratsam, mit einer kleinen Wache zu starten!" }, welcome: "Hallo, willkommen beim Leitstellenspiel! Zum Start haben wir eine kleine Anleitung vorbereitet." } }, mission: { detail: { browser: { dispatch_menu: "Dies ist das Alarmierungsfenster. Von hier aus kannst du Fahrzeuge zu Einsätzen schicken!", dispatch_menu_buttons: 'Dies sind deine beiden Alarmierungsoptionen! Der erste "Alarm"-Button schickt die ausgewählten Fahrzeuge zum Einsatz. Der Zweite wechselt zusätzlich auch zum nächsten Einsatz. Klicke jetzt den ersten Button.', dispatch_menu_mission_general: "Hier siehst du generelle Informationen zum Einsatz, wie Name, Adresse und Icon. Bist du am Einsatz beteiligt, springt die Farbe des Icons von rot auf gelb.", dispatch_menu_mission_progress: "Hier siehst du wie weit der Einsatz bereits fortgeschritten ist, wie viele Einsatzkräfte vor Ort sind und wie viel Zeit noch benötigt wird um den Einsatz abzuschließen!", dispatch_menu_mission_specific: "Hier erhältst du mehr Informationen zum Einsatz, z.B. welche Fahrzeuge unterwegs sind und welche sich bereits am Einsatzort befinden.", dispatch_menu_vehicle_list: "Hier siehst du die Liste deiner verfügbaren Fahrzeuge. Du kannst ein Fahrzeug auswählen, indem du es anklickst!" }, mobile: { dispatch_menu: "Dies ist das Alarmierungsfenster. Von hier aus kannst du Fahrzeuge zu Einsätzen schicken!", dispatch_menu_buttons: 'Dies sind deine beiden Alarmierungsoptionen! Der erste "Alarm"-Button schickt die ausgewählten Fahrzeuge zum Einsatz. Der Zweite wechselt zusätzlich auch zum nächsten Einsatz. Tippe jetzt den ersten Button.', dispatch_menu_mission_general: "Hier siehst du generelle Informationen zum Einsatz, wie Name, Adresse und Icon. Bist du am Einsatz beteiligt, springt die Farbe des Icons von rot auf gelb.", dispatch_menu_mission_progress: "Hier siehst du wie weit der Einsatz bereits fortgeschritten ist, wie viele Einsatzkräfte vor Ort sind und wie viel Zeit noch benötigt wird um den Einsatz abzuschließen!", dispatch_menu_mission_specific: "Hier erhältst du mehr Informationen zum Einsatz, z.B. welche Fahrzeuge unterwegs sind und welche sich bereits am Einsatzort befinden.", dispatch_menu_vehicle_list: "Hier siehst du die Liste deiner verfügbaren Fahrzeuge. Du kannst hier ein Fahrzeug auswählen, indem du es anklickst!" } }, overview: { browser: { dispatch_button: 'Öffne das Alarmierungsfenster, indem du auf einen "Alarm"-Button klickst!', first_mission: "Super, du hast dein ersten Gebäude gebaut! Schau, die ersten Einsätze wurden dir bereits gemeldet!" }, mobile: { dispatch_button: 'Öffne das Alarmierungsfenster, indem du auf einen "Alarm"-Button klickst!', first_mission: "Super, du hast dein ersten Gebäude gebaut! Schau, die ersten Einsätze wurden dir bereits gemeldet!" } } }, rewards: { browser: { general: "Großartig, du bist auf dem Weg ein hervorragender Einsatzleiter zu werden! Hier hast du %{coins} Coins als Starthilfe!
    Dein Leitstellenspiel-Team" }, mobile: { general: "Großartig, du bist auf dem Weg ein hervorragender Einsatzleiter zu werden! Hier hast du %{coins} Coins als Starthilfe!
    Dein Leitstellenspiel-Team" } }, tips: { browser: { contact: "Wenn du Fragen hast kannst du dir unsere FAQ ansehen und das Forum oder unsere Facebook-Seite besuchen!", general: "Als Nächstes empfehlen wir dir, eine Leitstelle zu bauen. Außerdem solltest du weitere Wachen bauen. Je mehr Wachen, desto mehr Einsätze tauchen auf. Tipp: Zu Beginn empfehlen wir kleine Wachen.", join_alliance: "Darüber hinaus empfehlen wir dir, einem Verband beizutreten. Gemeinsam macht es mehr Spaß und andere Mitglieder können dir mit deinen Einsätzen helfen.", summary: "Das waren die Grundlagen vom Leitstellenspiel! Beende Einsätze, sammle Credits, kaufe mehr Fahrzeuge, und baue dein Rettungsnetzwerk aus! Viel Spaß!
    Dein Leitstellenspiel-Team" }, mobile: { contact: "Wenn du Fragen hast kannst du dir unsere FAQ ansehen und das Forum oder unsere Facebook-Seite besuchen!", general: "Als Nächstes empfehlen wir dir, eine Leitstelle zu bauen. Außerdem solltest du weitere Wachen bauen. Je mehr Wachen, desto mehr Einsätze tauchen auf. Tipp: Zu Beginn empfehlen wir kleine Wachen.", join_alliance: "Darüber hinaus empfehlen wir dir, einem Verband beizutreten. Gemeinsam macht es mehr Spaß und andere Mitglieder können dir mit deinen Einsätzen helfen.", summary: "Das waren die Grundlagen vom Leitstellenspiel! Beende Einsätze, sammle Credits, kaufe mehr Fahrzeuge, und baue dein Rettungsnetzwerk aus! Viel Spaß!
    Dein Leitstellenspiel-Team" } } }, commons: { collect: "Einsammeln", "continue": "Nein", end: "Ende", next: "Weiter", prev: "Zurück", skip: "Ja", skip_hint: "Möchtest du das Tutorial wirklich abbrechen? Es kann später nicht noch einmal abgerufen werden. Du wirst KEINE Belohnung für den Abschluss des Tutorials erhalten." }, rewards: { log: "Belohnung für das Beenden des Tutorials." } }, policechief: { tutorial: { beginner: { building: { browser: { build_building: { add_name: 'Nun gib deinem Gebäude einen Namen! Dieser sollte erkennbar und erweiterbar sein! Z.B. "Polizeiwache #0001". Wenn du damit fertig bist, klicke auf "Weiter"!', select_building: "Wähle den Gebäudetyp aus, mit dem du starten möchtest. Wir empfehlen dir, mit Polizeiwachen zu beginnen! In jedem Fall ist es ratsam, mit einer kleinen Wache zu starten!" }, welcome: "Hallo, willkommen beim Polizei Leitstellenspiel! Ich werde dir einige Tipps für einen guten Start geben!" }, mobile: { build_building: { add_name: 'Nun gib deinem Gebäude einen Namen! Dieser sollte erkennbar und erweiterbar sein! Z.B. "Polizeiwache #0001". Wenn du damit fertig bist, klicke auf "Weiter"!', select_building: "Wähle den Gebäudetyp aus, mit dem du starten möchtest. Wir empfehlen dir, mit Polizeiwachen zu beginnen! In jedem Fall ist es ratsam, mit einer kleinen Wache zu starten!" }, welcome: "Hallo, willkommen beim Polizei Leitstellenspiel! Ich werde dir einige Tipps für einen guten Start geben!" } }, rewards: { browser: { general: "Großartig, du bist auf dem Weg ein hervorragender Einsatzleiter zu werden! Hier hast du %{coins} Coins als Starthilfe!
    Dein Polizei Leitstellenspiel-Team" }, mobile: { general: "Großartig, du bist auf dem Weg ein hervorragender Einsatzleiter zu werden! Hier hast du %{coins} Coins als Starthilfe!
    Dein Polizei Leitstellenspiel-Team" } }, tips: { browser: { summary: "Das waren die Grundlagen vom Polizei Leitstellenspiel! Beende Einsätze, sammle Credits, kaufe mehr Fahrzeuge, und baue dein Rettungsnetzwerk aus! Viel Spaß!
    Dein Polizei Leitstellenspiel-Team" }, mobile: { summary: "Das waren die Grundlagen vom Polizei Leitstellenspiel! Beende Einsätze, sammle Credits, kaufe mehr Fahrzeuge, und baue dein Rettungsnetzwerk aus! Viel Spaß!
    Dein Polizei Leitstellenspiel-Team" } } } } }, number: { format: { delimiter: ".", precision: 2, separator: ",", significant: !1, strip_insignificant_zeros: !1 } } }, I18n.translations.en_US = { common: { add: "Add", back: "Back", cancel: "Cancel", change_saved: "Changes saved", coins_spend: "Do you really want to spend these coins?", congratulations: "Congratulations!", content: "Content", copy: "Copy", credits: "Credits", "delete": "Delete", details: "Details", edit: "Edit", error: "Error", is_offline: "%{user} is offline.", is_offline_long: "Long time: %{user} is offline", is_offline_with_duration: "%{user} is offline: %{duration}", is_online: "%{user} is online.", loading: "Loading...", name: "Name", none: "None", of: "of", off: "Off", on: "On", save: "Save", search: "Search", show: "Show", user_not_found: "User not found", wrong_key: "Wrong key" }, javascript: { alarm: "Dispatch", arrival: "Arrival", backalarm: "Cancel", coins: "Coins", credits: "Credits", days: "days", few_seconds: "in few seconds", finish_in: "Finish in:", foam_approaching: "Approaching: %{amount} gal.", foam_missing: "Missing: %{amount} gal.", foam_on_site: "On scene: %{amount} gal.", foam_selected: "Selected: %{amount} gal.", hours: "H", location_not_found: "Not found", messages: "Messages", minutes: "min.", missed_vehicle: "It lacks:", mission_start_in: "Starts in:", "new": "New", not_found_map: "The vehicle hasn't been found on the map", now: "Now", patient: "Patient", patient_untouched: "Untreated patients", poi_delete: "Are you sure you want to delete the POI: %{caption}?", pump_speed_approaching: "Approaching: %{amount} l/min", pump_speed_missing: "Missing: %{amount} l/min", pump_speed_on_site: "On scene: %{amount} l/min", pump_speed_selected: "Selected: %{amount} l/min", reload: "Reload", sale: "Sale", sale_ended: "Sale ended", secounds: "sec.", sicherheitswache_error: 'The security guard "%{caption}" was not successful, because not all the criteria were met.', sicherheitswache_success: 'The security guard "%{caption}" has been successfully carried out. Receive %{credits} Credits.', start_in: "Start in: ", start_username: "Starter:", time_left: "Time left:", to_building: "View Building", to_mission: "View Mission", understand: "Acknowledge", user_not_found: "The player was not found.", vehicles_not_visible: "Vehicles not visible. ", water_approaching: "Approaching: %{amount} gal.", water_missing: "Missing: %{amount} gal.", water_on_site: "On scene: %{amount} gal.", water_pumping_process: "Water pumping process", water_selected: "Selected: %{amount} gal." }, map: { alliance: "Alliance", alliance_chat: "Chat", alliance_chat_banned: "You are currently banned from the alliance chat.", alliance_chat_banned_admin: "Banned by:", alliance_chat_banned_timeleft: "Time remaining:", alliance_chat_radio_off: "Alliance Radio: Off", alliance_chat_radio_on: "Alliance Radio: On", alliance_event: "Event", alliance_missions: "Alliance Missions", alliance_missions_event: "Event", ambulance: "Ambulance", anti_abuse_active_link: "Click here for more information.", anti_abuse_active_text: "Missions will be generated within an extended radius of 100km, since too many stations of the same type are built too close to each other.", attended: "Attended", cancel_alliance_event: "Cancel alliance event", cancel_alliance_event_confirm: "Do you really want to cancel the alliance event?", challenges: "", chat_history: "Chat History", congratulations: "Congratulations! You can now be promoted.", create_alliance_event: "Start alliance event", create_alliance_operation: "Create a large scale alliance mission", emergency: "Emergency", finishing: "Finishing", join_alliance_infos: "If you are in an alliance, other players can freely give you missions.", map: "Map", map_filters: { all_buildings: "Buildings", all_missions: "Missons", alliance_buildings: "Alliance Buildings", alliance_members: "Members", alliance_missions: "Shared by Alliance", ambulance_station_missions: "Ambulance Station", ambulance_station_small_missions: "Ambulance station (Small station)", building_complex: "Building Complex", buildings_section: "Stations", clinic_missions: "Clinic", dispatch_center_missions: "Dispatch Center", factory_fire_brigade_missions: "Factory Fire Brigade", federal_police_missions: "Federal Police Station", fire_school_missions: "Fire academy", firehouse_missions: "Fire Station", firehouse_small_missions: "Fire Station (Small)", hospital_missions: "Hospital", map_filters: "Map filters list", mission_positions: "Points of Interest (POIs)", mission_positions_section: "POIs", missions_section: "Missions", police_copter_station_missions: "Police Aviation", police_school_missions: "Police academy", police_small_missions: "Police station (Small station)", police_special_forces: "Police special forces", police_station_missions: "Police station", prison_missions: "Prison", rapid_deployment_group: "Rapid Setup Group (SEG)", rapid_deployment_group_missions: "Rapid Deployment Group", rescue_copter_station_missions: "Medical helicopter station", riot_police: "Riot police", riot_police_missions: "Riot Police", staging_area_missions: "Staging area", technical_aid_organization: "THW", technical_aid_organization_missions: "Technical Aid Organization", technical_aid_organization_school: "THW Bundesschule", user_buildings: "My buildings", user_missions: "My missions", water_watch: "Water rescue", water_watch_missions: "Water Rescue" }, message: "Message", mission: "Mission", missions_filtered_out: "Some missions might be filtered out. Please, check your map filters.", no_alliance_chat_impossible: "You are not in an alliance.", no_alliance_missions: "There are currently no alliance missions.", no_ambulance_missions: "There are no ambulance missions. Ambulance missions can only occur when you have an ambulance and a hospital.", no_emergency_missions: "There are no emergency missions available. An emergency mission can occur after you made your first station.", no_radio_messages: "You didn't receive any radio messages.", radio_messages: "Radio", restore_map: "Restore Map", server_warning: "Server maintenance at 18:00 EDT. 6h downtime expected.", show_informations: "Green = The missions are shown in the list. Red = The missions aren't shown.", sicherheitswache: "Planned Appearances", transport: "Transport", unattended: "Unattended" }, fms: { going: "Responding", not_ready: "Out of Service", on_destination: "At the transport destination", on_place: "On Scene", patient_transported: "Transporting Patient", prisoner_transported: "Transporting Prisoner", ready_home: "Available at Station", ready_traveling: "Clear and Available", talking_wish: "Transport Request", waiting_for_vehicle: "Awaiting vehicle to tow" }, intervention_order: { automatic_text_color: "Automatic Text Color", back: "Back", battalion_chief_unit: "", category: "Category", colour: "Color", column: "Column", column_number: "Column number", column_number_hint: "If a column number is given, the Alarm and Response entry will be displayed in the corresponding column on the alert page.", create_intervention_order: "Create new Alarm and Response Regulation", "delete": "Delete", delete_all: "Delete Alarm and Response Regulations completely", delete_all_confirm: "Are you sure you want to delete the whole alarm and response regulation? Existing exported entries are no longer available!", description: "Name", edit: "Edit", "export": { "export": "Export", "import": "Import", import_done: "The selected entries have been imported and written to your Alarm and Response plan .", saved: "Alarm and Response Regulations Exports", saved_text: "Your Alarm and Response Regulation has been prepared for export. Via the link another player can import the Alarm and Response Regulation. If you change your Alarm and Response Regualtion in the meantime, this change will automatically be applied in the export." }, hotkey_hint: "Choose a hotkey for this vehicle selection. Press at your window mission: ALT + your hotkey (or at Firefox: ALT + SHIFT + your hotkey or at mac os: ctrl + alt + your hotkey) to choose your vehicle selection.", intervention_order: "Edit Alarm and Response Regulations", name: "Name", no_intervention_created: "You haven't created any Alarm and Response Regulation yet.", options: "Options", reset: "Reset the previous selection in the alarm window.", reset_hint: "If you have selected the vehicle in the dispatch window, you can use this button to reset it.", save: "Save", station: "Station", station_hint: "When a building is selected, only vehicles of the corresponding building will be selected.", successfully_created: "Alarm and Response Regulation successfully created.", successfully_deleted: "Alarm and Response Regulation deleted", successfully_updated: "Alarm and Response Regulations successfully updated.", text_color: "Text Color", vehicles: { ab_atemschutz_only: "SCBA-Module", ab_einsatzleitung_only: "Command-Module", ab_gefahrgut_only: "HazMat-Module", ab_oel_only: "Oil spill-Module", ab_ruest: "Tech/Rescue-Module", ab_ruest_rw: "", abl2wasser_only: "Hose-Supply-Module", air_tanker: "Air tanker", ambulance: "ALS ambulance", ambulance_or_rapid_responder: "", any_traffic_car: "Traffic Car", arff: "ARFF (Airport Fire Truck)", at_c: "", at_m: "", at_o: "", battalion_chief_unit: "Battalion Chief unit", bike_police: "DB-Bike", boot: "Light boats (General)", brush_truck: "Wildland fire engine", brush_truck_1: "Type 3 engine", brush_truck_2: "Type 5 engine", brush_truck_3: "Type 7 engine", brush_truck_4: "Type 4 engine", brush_truck_5: "Type 6 engine", brush_vehicle: "Wildland fire vehicle", commerce_police: "Commerce Police Car", coresponder: "", crew_carrier: "Crew Carrier", dekon_p: "", division_chief_unit: "Mobile Command Vehicle", dlk_or_tm50: "", dozer_trailer: "Dozer Trailer", elw1_or_elw2: "Battalion Chief Unit, Mobile Command Vehicle or Mobile Command-Module", elw2_or_ab_elw: "", elw3: "", elw_airport: "", elw_police: "Police MCV", emergency_ambulance: "Emergency ambulance or Helicopter", fbi_bomb_tech: "FBI Bomb Technician Vehicle", fbi_drone: "FBI Surveillance Drone", fbi_investigation_unit: "FBI Investigation Wagon", fbi_mobile_command: "FBI Mobile Command Center", fbi_unit: "FBI Unit", fire_aviation: "Fire aviation", fire_truck: "Firetrucks", fireboat: "Large Fireboat", flood_equipment: "Flood Equipment", fly_car: "Fly-Car", fly_car_any: "", foam: "Foam Tenders", foam_amount: "Gallons of foam", fukw: "", fustw_or_police_motorcycle: "Patrol car or Police Motorcycle", fwk: "", gefkw: "DB-AV", gkw: "Utility Truck", grtw: "Mass Casualty Unit", grtw0: "", grtw1: "", grukw: "", gw_atemschutz_only: "", gw_gefahrgut: "HazMat", gw_gefahrgut_only: "", gw_hoehenrettung: "GW-Höhenrettung", gw_messtechnik: "GW-Messtechnik", gw_oel_only: "", gw_san: "", gw_taucher: "", gw_wasserrettung: "Water Retention", gw_werkfeuerwehr: "", gwl2wasser_all: "All Water Tankers", gwl2wasser_only: "Hose Vehicle", heavy_air_tanker: "Heavy air tanker", helicopter_bucket: "Helicopter bucket", hems: "HEMS", hint: { foam_amount: "Sum of foam in liters. Example: if you enter 10000 - then only those vehicles will be selected that have a total of 10000 liters of extinguishing foam.", water_amount: "" }, hlf_only: "", hlf_or_rw_and_lf: "", hondengeleider: "", hose_trucks: "Hose Truck", joint_response_unit: "", k9: "K-9 Unit", kdow_lna: "", kdow_orgl: "EMS Chief", kdow_orgl_any: "", ktw_b: "", ktw_or_rtw: "", lebefkw: "Leichter Befehlskraftwagen (leBefKw)", lf_only: "Fire Trucks", long_distance_ambulance: "BLS ambulance", mask_service_unit: "Mobile Air Unit", mek_mtf: "", mek_zf: "", mtw: "MTW", mzb: "Light Multi-Purpose Boat", naw: "", naw_or_critical_transport: "NAW or critical transport", naw_or_rtw_and_nef: "", naw_or_rtw_and_nef_or_rth: "", nef_only: "Ambulance", oil_unit: "GW-Öl", only_ab_dekon_p: "", only_dekon_p: "", ovd_p: "", police_car: "Patrol car", police_car_3: "NH-O", police_horse: "Mounted Police", police_motorcycle: "Police Motorcycle", polizeihubschrauber: "Police helicopter", pump: "Engine-Pumps", pump_speed: "Pump Capacity", pump_speed_pump_only: "Pump Capacity - Only Pumps", quint_or_dlk_and_lf: "Quint or Platform Truck and Fire Engine", rescue_dogs: "", rescue_dogs_seg: "", rescue_dogs_thw: "", rescue_vehicle: "Heavy rescue vehicle", rescue_vehicle_only: "Heavy Rescue", rescueboat: "Large Rescue Boat", rettungstreppe: "", rth_only: "Helicopter", schlauchwagen: "Water Tanker", seg_elw: "", sek_mtf: "", sek_zf: "", sheriff_unit: "Sheriff Unit", spokesman: "", swat: "SWAT", swat_armored_vehicle: "SWAT Armoured Vehicle", swat_suv: "SWAT SUV", thw_anh_mzab: "", thw_anh_mzb: "", thw_anh_schlb: "", thw_brmg_r: "", thw_dle: "", thw_lkw: "", thw_lkw_7_lkr_19_tm: "", thw_mlw5: "", thw_mtw: "Mannschaftstransportwagen Technischer Zug (MTW-TZ - THW)", thw_mzkw: "Mehrzweckkraftwagen (MzKW)", thw_tauchkraftwagen: "Dive Team", thw_tauchkraftwagen_or_gw_taucher: "", tlf_only: "Tanker Truck", tm50: "", turboloescher: "", turntable_ladder: "Platform trucks", ulf: "", wasserwerfer: "", water_amount: "Gallons of water", water_amount_tlf: "", water_damage_pump: "Water Pumps", water_drop_helicopter: "Water drop helicopter" } }, tutorial: { beginner: { building: { browser: { build_building: { add_name: 'Second give your new station a name! Make it recognisable and scalable! E.g. "Fire station #0001". When you are done, please click "Next"!', build_with_credits: "Now build your building with credits!", new_building: 'Click on "New building"!', select_building: "First choose the type of building you want to start with, we highly suggest you to start with fire services! In any case starting with a small station is advised!", select_position: "Move the blue marker where you want to build your first station!" }, pick_location: "First pick a location to start! Type the name of the location you want to start in into the search bar or find it on the map yourself! What about your hometown?", welcome: "Hello, welcome to MissionChief! I will teach you some lessons to help you start off your emergency services career well!" }, mobile: { build_building: { add_name: 'Second give your new station a name! Make it recognisable and scalable! E.g. "Fire station #0001". When you are done, please click "Next"!', build_with_credits: "Now build your building with credits!", new_building: 'First we will pick a location to start and build your first building!

    To do that click on "New building"!', select_building: "First choose the type of building you want to start with, we highly suggest you to start with fire services! In any case starting with a small station is advised!" }, welcome: "Hello, welcome to MissionChief! I will teach you some lessons to help you start off your emergency services career well!" } }, mission: { detail: { browser: { dispatch_menu: "This is the dispatch menu. From here you send your units to missions!", dispatch_menu_buttons: 'These are your two dispatch buttons! The first one: "Dispatch" sends the selected units to the mission. The second one does the same as the first one but goes to the next mission. Click the first button for now.', dispatch_menu_mission_general: "Here you can see the general mission information, that means the name, address, icon of the mission. The little man-icon appears and replaces a small star, on missions which you already participated in.", dispatch_menu_mission_progress: "Here you can see how much progress has been made to deal with this mission as well as the number of staff on site and the time left to deal with the mission!", dispatch_menu_mission_specific: "Here you can see more information about the mission, which units are responding to the call and which are already at the site", dispatch_menu_vehicle_list: "This is the list of your available vehicles. You select the vehicles here. Now select your vehicle by clicking on it!" }, mobile: { dispatch_menu: "This is the dispatch menu. From here you send your units to missions!", dispatch_menu_buttons: 'These are your two dispatch buttons! The first one: "Dispatch" sends the selected units to the mission. The second one does the same as the first one but goes to the next mission. Click the first button for now.', dispatch_menu_mission_general: "Here you can see the general mission information, that means the name, address, icon of the mission. The little man-icon appears and replaces a small star, on missions which you already participated in.", dispatch_menu_mission_progress: "Here you can see how much progress has been made to deal with this mission as well as the number of staff on site and the time left to deal with the mission!", dispatch_menu_mission_specific: "Here you can see more information about the mission, which units are responding to the call and which are already at the site", dispatch_menu_vehicle_list: "This is the list of your available vehicles. You select the vehicles here. Now select your vehicle by clicking on it!" } }, overview: { browser: { dispatch_button: 'Now we want to learn how to deal with incidents. Open the dispatch menu by clicking on a "dispatch"-button!', first_mission: "Great, you've built your first building! See, the first missions were reported to you!" }, mobile: { dispatch_button: 'Now we want to learn how to deal with incidents. Open the dispatch menu by clicking on a "dispatch"-button!', first_mission: "Great, you've built your first building! See, the first missions were reported to you!" } } }, rewards: { browser: { general: "Great, you are on your way to becoming an awesome Missionchief! Here are %{coins} Coins. to help you get started!
    Your MissionChief-team" }, mobile: { general: "Great, you are on your way to becoming an awesome Missionchief! Here are %{coins} Coins. to help you get started!
    Your MissionChief-team" } }, tips: { browser: { contact: "If you have questions you can consult the in game FAQ or visit the game forums or our facebook page!", general: "As a next step we would recommend you to build a dispatch center and then as soon as possible new stations, since the max number of missions equals the highest number of any of stations of a different type (police, fire, ambulance) plus 1; e.g. 5 fire and 3 ambulance stations = 6 missions.", join_alliance: "Also, joining an alliance would help you greatly, especially in the beginning, so that's recommended, too.", summary: "These are the basics of MissionChief! Accomplish missions, get credits, buy more units, repeat. Have fun playing!
    Your MissionChief-team" }, mobile: { contact: "If you have questions you can consult the in game FAQ or visit the game forums or our facebook page!", general: "As a next step we would recommend you to build a dispatch center and then as soon as possible new stations, since the max number of missions equals the highest number of any of stations of a different type (police, fire, ambulance) plus 1; e.g. 5 fire and 3 ambulance stations = 6 missions.", join_alliance: "Also, joining an alliance would help you greatly, especially in the beginning, so that's recommended, too.", summary: "These are the basics of MissionChief! Accomplish missions, get credits, buy more units, repeat. Have fun playing!
    Your MissionChief-team" } } }, commons: { collect: "Collect", "continue": "No", end: "End", next: "Next", prev: "Prev", skip: "Yes", skip_hint: "Do you really want to cancel the tutorial? It can't be accessed at any later time. You will not be eligible for the tutorial completion reward." }, rewards: { log: "Reward for finishing the tutorial." } }, policechief: { tutorial: { beginner: { building: { browser: { build_building: { add_name: 'Second give your new station a name! Make it recognisable and scalable! E.g. "Police station #0001". When you are done, please click "Next"!', select_building: "First choose the type of building you want to start with, we highly suggest you to start with a police station! In any case starting with a small station is advised!" }, welcome: "Hello, welcome to Police MissionChief! I will teach you some lessons to help you start off your emergency services career well!" }, mobile: { build_building: { add_name: 'Second give your new station a name! Make it recognisable and scalable! E.g. "Police station #0001". When you are done, please click "Next"!', select_building: "First choose the type of building you want to start with, we highly suggest you to start with a police station! In any case starting with a small station is advised!" }, welcome: "Hello, welcome to Police MissionChief! I will teach you some lessons to help you start off your emergency services career well!" } }, rewards: { browser: { general: "Great, you are on your way to becoming an awesome Police MissionChief! Here are %{coins} Coins to help you get started!
    Your Police MissionChief-team" }, mobile: { general: "Great, you are on your way to becoming an awesome Police MissionChief! Here are %{coins} Coins to help you get started!
    Your Police MissionChief-team" } }, tips: { browser: { summary: "These are the basics of Police MissionChief! Accomplish missions, get credits, buy more units, repeat. Have fun playing!
    Your Police MissionChief-team" }, mobile: { summary: "These are the basics of Police MissionChief! Accomplish missions, get credits, buy more units, repeat. Have fun playing!
    Your Police MissionChief-team" } } } } }, number: { format: { delimiter: ",", precision: 3, separator: ".", significant: !1, strip_insignificant_zeros: !1 } } }, I18n.translations.en_GB = { common: { add: "Add", back: "Back", cancel: "Cancel", change_saved: "Changes saved", coins_spend: "Do you really want to spend these coins?", congratulations: "Congratulations!", content: "Content", copy: "Copy", credits: "Credits", "delete": "Delete", details: "Details", edit: "Edit", error: "Error", is_offline: "%{user} is offline.", is_offline_long: "Long time: %{user} is offline", is_offline_with_duration: "%{user} is offline: %{duration}", is_online: "%{user} is online.", loading: "Loading...", name: "Name", none: "None", of: "of", off: "Off", on: "On", save: "Save", search: "Search", show: "Show", user_not_found: "User not found", wrong_key: "Wrong key" }, javascript: { alarm: "Dispatch", arrival: "Arrival", backalarm: "Cancel", coins: "Coins", credits: "Credits", days: "days", few_seconds: "in few seconds", finish_in: "Finish in:", hours: "H", location_not_found: "Not found", messages: "Messages", minutes: "min.", missed_vehicle: "It lacks:", mission_start_in: "Starts in:", "new": "New", not_found_map: "The vehicle hasn't been found on the map", now: "Now", patient: "Patient", patient_untouched: "Untreated patients", poi_delete: "Are you sure you want to delete the POI: %{caption}?", reload: "Reload", sale: "Sale", sale_ended: "Sale ended", secounds: "sec.", sicherheitswache_error: 'The security guard "%{caption}" was not successful, because not all the criteria were met.', sicherheitswache_success: 'The security guard "%{caption}" has been successfully carried out. Receive %{credits} Credits.', start_in: "Start in: ", start_username: "Starter:", time_left: "Time left:", to_building: "View Building", to_mission: "View Mission", understand: "Acknowledge", user_not_found: "The player was not found.", vehicles_not_visible: "Vehicles not visible. " }, map: { alliance: "Alliance", alliance_chat: "Chat", alliance_chat_banned: "You are currently banned from the alliance chat.", alliance_chat_banned_admin: "Banned by:", alliance_chat_banned_timeleft: "Time remaining:", alliance_chat_radio_off: "Alliance Radio: Off", alliance_chat_radio_on: "Alliance Radio: On", alliance_event: "Event", alliance_missions: "Alliance Missions", alliance_missions_event: "Event", ambulance: "Ambulance", anti_abuse_active_link: "Click here for more information.", anti_abuse_active_text: "Missions will be generated within an extended radius of 100km, since too many stations of the same type are built too close to each other.", attended: "Attended", cancel_alliance_event: "Cancel alliance event", cancel_alliance_event_confirm: "Do you really want to cancel the alliance event?", challenges: "", chat_history: "Chat History", congratulations: "Congratulations! You can now be promoted.", create_alliance_event: "Start alliance event", create_alliance_operation: "Create a large scale alliance mission", emergency: "Emergency", finishing: "Finishing", join_alliance_infos: "If you are in an alliance, other players can freely give you missions.", map: "Map", map_filters: { all_buildings: "Buildings", all_missions: "Missons", alliance_buildings: "Alliance Buildings", alliance_members: "Members", alliance_missions: "Shared by Alliance", ambulance_station_missions: "Ambulance Station", ambulance_station_small_missions: "Ambulance station (Small station)", building_complex: "Building Complex", buildings_section: "Stations", clinic_missions: "Clinic", dispatch_center_missions: "Dispatch Center", fire_school_missions: "Fire Academy", firehouse_missions: "Fire Station", firehouse_small_missions: "Fire Station (Small)", hospital_missions: "Hospital", map_filters: "Points of Interest (POIs)", mission_positions: "Points of Interest (POIs)", mission_positions_section: "POIs", missions_section: "Missions", police_copter_station_missions: "Police Aviation", police_school_missions: "Police training centre", police_small_missions: "Police Station (Small station)", police_special_forces: "Police special forces", police_station_missions: "Police Station", prison_missions: "Prison", rapid_deployment_group: "Rapid Setup Group (SEG)", rescue_copter_station_missions: "Medical Helicopter Station", riot_police: "Riot Police", riot_police_missions: "Riot Police", staging_area_missions: "Staging Area", technical_aid_organization: "THW", technical_aid_organization_school: "THW Bundesschule", user_buildings: "My buildings", user_missions: "My missions", water_watch: "Water Rescue", water_watch_missions: "Water Rescue" }, message: "Message", mission: "Mission", missions_filtered_out: "Some missions might be filtered out. Please, check your map filters.", no_alliance_chat_impossible: "You are not in an alliance.", no_alliance_missions: "There are currently no alliance missions.", no_ambulance_missions: "There are no ambulance missions. Ambulance missions can only occur when you have an ambulance and a hospital.", no_emergency_missions: "There are no emergency missions available. An emergency mission can occur after you made your first station.", no_radio_messages: "You didn't receive any radio messages.", radio_messages: "Radio", restore_map: "Restore Map", server_warning: "Server maintenance at 11 pm. 6h downtime expected.", show_informations: "Green = The missions are shown in the list. Red = The missions aren't shown.", sicherheitswache: "Planned Appearances", transport: "Transport", unattended: "Unattended" }, fms: { going: "Responding", not_ready: "Out of Service", on_destination: "At the transport destination", on_place: "On Scene", patient_transported: "Transporting Patient", prisoner_transported: "Transporting Prisoner", ready_home: "Available at Station", ready_traveling: "Clear and Available", talking_wish: "Transport Request", waiting_for_vehicle: "Awaiting vehicle to tow" }, intervention_order: { automatic_text_color: "Automatic Text Color", back: "Back", category: "Category", colour: "Color", column: "Column", column_number: "Column number", column_number_hint: "If a column number is given, the Alarm and Response entry will be displayed in the corresponding column on the alert page.", create_intervention_order: "Create new Alarm and Response Regulation", "delete": "Delete", delete_all: "Delete Alarm and Response Regulations completely", delete_all_confirm: "Are you sure you want to delete the whole alarm and response regulation? Existing exported entries are no longer available!", description: "Name", edit: "Edit", "export": { "export": "Export", "import": "Import", import_done: "The selected entries have been imported and written to your Alarm and Response plan .", saved: "Alarm and Response Regulations Exports", saved_text: "Your Alarm and Response Regulation has been prepared for export. Via the link another player can import the Alarm and Response Regulation. If you change your Alarm and Response Regualtion in the meantime, this change will automatically be applied in the export." }, hotkey_hint: "Choose a hotkey for this vehicle selection. Press at your window mission: ALT + your hotkey (or at Firefox: ALT + SHIFT + your hotkey or at mac os: ctrl + alt + your hotkey) to choose your vehicle selection.", intervention_order: "Edit Alarm and Response Regulations", name: "Name", no_intervention_created: "You haven't created any Alarm and Response Regulation yet.", options: "Options", reset: "Reset the previous selection in the alarm window.", reset_hint: "If you have selected the vehicle in the dispatch window, you can use this button to reset it.", save: "Save", station: "Station", station_hint: "When a building is selected, only vehicles of the corresponding building will be selected.", successfully_created: "Alarm and Response Regulation successfully created.", successfully_deleted: "Alarm and Response Regulation deleted", successfully_updated: "Alarm and Response Regulations successfully updated.", text_color: "Text Color", vehicles: { ab_atemschutz_only: "BASU-Module", ab_einsatzleitung_only: "Command-Module", ab_gefahrgut_only: "HazMat-Module", ab_oel_only: "Oil spill-Module", ab_ruest: "Tech/Rescue-Module", ab_ruest_rw: "", abl2wasser_only: "Hose-Supply-Module", ambulance: "Ambulance", any_traffic_car: "Traffic Car", arff: "ARFF (Airport Fire Truck)", battalion_chief_unit: "Fire Officer", boot: "Boats (General)", coresponder: "Co-Responder Vehicle", crew_carrier: "Crew Carrier", dekon_p: "", division_chief_unit: "ICCU", dlk_or_tm50: "", elw1_or_elw2: "Fire Officer or ICCU", elw2_or_ab_elw: "ICCU / ACU", elw3: "", elw_airport: "", emergency_ambulance: "Emergency ambulance or Helicopter", fire_truck: "Fire engines", fireboat: "Large Fireboat", fly_car: "Rapid Response Vehicle / General Practitioner", fukw: "", fwk: "", gefkw: "", gkw: "Utility Truck", grtw: "Mass Casualty Unit", grtw0: "", grtw1: "", grukw: "", gw_atemschutz_only: "", gw_gefahrgut: "HazMat Unit or CBRN Vehicle", gw_gefahrgut_only: "", gw_hoehenrettung: "GW-Höhenrettung", gw_messtechnik: "GW-Messtechnik", gw_oel_only: "", gw_san: "", gw_taucher: "", gw_wasserrettung: "Water Retention", gw_werkfeuerwehr: "", gwl2wasser_only: "Hose Vehicle", hems: "HEMS", hlf_only: "Rescue Pump", hlf_or_rw_and_lf: "Rescue Pump or Rescue Support Unit and Fire engine", hondengeleider: "", joint_response_unit: "Joint Response Unit", k9: "Dog Support Unit (DSU)", kdow_lna: "", kdow_orgl: "OTL", kdow_orgl_any: "OTL / Ambulance Officer", ktw_b: "", ktw_or_rtw: "", lebefkw: "Leichter Befehlskraftwagen (leBefKw)", lf_only: "Fire Trucks", long_distance_ambulance: "BLS ambulance", mask_service_unit: "Breathing Apparatus Support Unit", mek_mtf: "", mek_zf: "", mtw: "MTW", mzb: "Multi-Purpose Boat", naw: "", naw_or_rtw_and_nef: "", naw_or_rtw_and_nef_or_rth: "", nef_only: "Ambulance", oil_unit: "GW-Öl", only_ab_dekon_p: "", only_dekon_p: "", ovd_p: "", police_car: "Police car", polizeihubschrauber: "Police helicopter", rescue_vehicle: "Rescue Support Unit or Rescue Pump", rescue_vehicle_only: "Rescue Support Unit", rescueboat: "Large Rescue Boat", rettungstreppe: "", rth_only: "HEMS", schlauchwagen: "Water Carrier", seg_elw: "", sek_mtf: "", sek_zf: "", swat: "Armed Response Vehicle", swat_armored_vehicle: "Armed Response Vehicle (ARV)", swat_suv: "Armed Response Vehicle (ARV)", thw_anh_mzab: "", thw_anh_mzb: "", thw_anh_schlb: "", thw_brmg_r: "", thw_dle: "", thw_lkw: "", thw_lkw_7_lkr_19_tm: "", thw_mlw5: "", thw_mtw: "Mannschaftstransportwagen Technischer Zug (MTW-TZ - THW)", thw_mzkw: "Mehrzweckkraftwagen (MzKW)", thw_tauchkraftwagen: "Dive Team", thw_tauchkraftwagen_or_gw_taucher: "", tlf_only: "Tanker Truck", tm50: "", turboloescher: "", turntable_ladder: "Aerial Appliance Truck", ulf: "", wasserwerfer: "", water_amount: "", water_amount_tlf: "" } }, tutorial: { beginner: { building: { browser: { build_building: { add_name: 'Second give your new station a name! Make it recognisable and scalable! E.g. "Fire station #0001". When you are done, please click "Next"!', build_with_credits: "Now build your building with credits!", new_building: 'Click on "New building"!', select_building: "First choose the type of building you want to start with, we highly suggest you to start with fire services! In any case starting with a small station is advised!", select_position: "Move the blue marker where you want to build your first station!" }, pick_location: "First pick a location to start! Type the name of the location you want to start in into the search bar or find it on the map yourself! What about your hometown?", welcome: "Hello, welcome to MissionChief! I will teach you some lessons to help you start off your emergency services career well!" }, mobile: { build_building: { add_name: 'Second give your new station a name! Make it recognisable and scalable! E.g. "Fire station #0001". When you are done, please click "Next"!', build_with_credits: "Now build your building with credits!", new_building: 'First we will pick a location to start and build your first building!

    To do that click on "New building"!', select_building: "First choose the type of building you want to start with, we highly suggest you to start with fire services! In any case starting with a small station is advised!" }, welcome: "Hello, welcome to MissionChief! I will teach you some lessons to help you start off your emergency services career well!" } }, mission: { detail: { browser: { dispatch_menu: "This is the dispatch menu. From here you send your units to missions!", dispatch_menu_buttons: 'These are your two dispatch buttons! The first one: "Dispatch" sends the selected units to the mission. The second one does the same as the first one but goes to the next mission. Click the first button for now.', dispatch_menu_mission_general: "Here you can see the general mission information, that means the name, address, icon of the mission. The little man-icon appears and replaces a small star, on missions which you already participated in.", dispatch_menu_mission_progress: "Here you can see how much progress has been made to deal with this mission as well as the number of staff on site and the time left to deal with the mission!", dispatch_menu_mission_specific: "Here you can see more information about the mission, which units are responding to the call and which are already at the site", dispatch_menu_vehicle_list: "This is the list of your available vehicles. You select the vehicles here. Now select your vehicle by clicking on it!" }, mobile: { dispatch_menu: "This is the dispatch menu. From here you send your units to missions!", dispatch_menu_buttons: 'These are your two dispatch buttons! The first one: "Dispatch" sends the selected units to the mission. The second one does the same as the first one but goes to the next mission. Click the first button for now.', dispatch_menu_mission_general: "Here you can see the general mission information, that means the name, address, icon of the mission. The little man-icon appears and replaces a small star, on missions which you already participated in.", dispatch_menu_mission_progress: "Here you can see how much progress has been made to deal with this mission as well as the number of staff on site and the time left to deal with the mission!", dispatch_menu_mission_specific: "Here you can see more information about the mission, which units are responding to the call and which are already at the site", dispatch_menu_vehicle_list: "This is the list of your available vehicles. You select the vehicles here. Now select your vehicle by clicking on it!" } }, overview: { browser: { dispatch_button: 'Now we want to learn how to deal with incidents. Open the dispatch menu by clicking on a "dispatch"-button!', first_mission: "Great, you've built your first building! See, the first missions were reported to you!" }, mobile: { dispatch_button: 'Now we want to learn how to deal with incidents. Open the dispatch menu by clicking on a "dispatch"-button!', first_mission: "Great, you've built your first building! See, the first missions were reported to you!" } } }, rewards: { browser: { general: "Great, you are on your way to becoming an awesome Missionchief! Here are %{coins} Coins. to help you get started!
    Your MissionChief-team" }, mobile: { general: "Great, you are on your way to becoming an awesome Missionchief! Here are %{coins} Coins. to help you get started!
    Your MissionChief-team" } }, tips: { browser: { contact: "If you have questions you can consult the in game FAQ or visit the game forums or our facebook page!", general: "As a next step we would recommend you to build a dispatch center and then as soon as possible new stations, since the max number of missions equals the highest number of any of stations of a different type (police, fire, ambulance) plus 1; e.g. 5 fire and 3 ambulance stations = 6 missions.", join_alliance: "Also, joining an alliance would help you greatly, especially in the beginning, so that's recommended, too.", summary: "These are the basics of MissionChief! Accomplish missions, get credits, buy more units, repeat. Have fun playing!
    Your MissionChief-team" }, mobile: { contact: "If you have questions you can consult the in game FAQ or visit the game forums or our facebook page!", general: "As a next step we would recommend you to build a dispatch center and then as soon as possible new stations, since the max number of missions equals the highest number of any of stations of a different type (police, fire, ambulance) plus 1; e.g. 5 fire and 3 ambulance stations = 6 missions.", join_alliance: "Also, joining an alliance would help you greatly, especially in the beginning, so that's recommended, too.", summary: "These are the basics of MissionChief! Accomplish missions, get credits, buy more units, repeat. Have fun playing!
    Your MissionChief-team" } } }, commons: { collect: "Collect", "continue": "No", end: "End", next: "Next", prev: "Prev", skip: "Yes", skip_hint: "Do you really want to cancel the tutorial? It can't be accessed at any later time. You will not be eligible for the tutorial completion reward." }, rewards: { log: "Reward for finishing the tutorial." } }, policechief: { tutorial: { beginner: { building: { browser: { build_building: { add_name: 'Second give your new station a name! Make it recognisable and scalable! E.g. "Police station #0001". When you are done, please click "Next"!', select_building: "First choose the type of building you want to start with, we highly suggest you to start with a police station! In any case starting with a small station is advised!" }, welcome: "Hello, welcome to Police MissionChief! I will teach you some lessons to help you start off your emergency services career well!" }, mobile: { build_building: { add_name: 'Second give your new station a name! Make it recognisable and scalable! E.g. "Police station #0001". When you are done, please click "Next"!', select_building: "First choose the type of building you want to start with, we highly suggest you to start with a police station! In any case starting with a small station is advised!" }, welcome: "Hello, welcome to Police MissionChief! I will teach you some lessons to help you start off your emergency services career well!" } }, rewards: { browser: { general: "Great, you are on your way to becoming an awesome Police MissionChief! Here are %{coins} Coins. to help you get started!
    Your Police MissionChief-team" }, mobile: { general: "Great, you are on your way to becoming an awesome Police MissionChief! Here are %{coins} Coins. to help you get started!
    Your Police MissionChief-team" } }, tips: { browser: { summary: "These are the basics of Police MissionChief! Accomplish missions, get credits, buy more units, repeat. Have fun playing!
    Your Police MissionChief-team" }, mobile: { summary: "These are the basics of Police MissionChief! Accomplish missions, get credits, buy more units, repeat. Have fun playing!
    Your Police MissionChief-team" } } } } }, number: { format: { delimiter: ",", precision: 3, separator: ".", significant: !1, strip_insignificant_zeros: !1 } } }, I18n.translations.nl_NL = { common: { add: "Toevoegen", back: "Terug", cancel: "Cancel", change_saved: "Veranderingen opgeslagen", coins_spend: "Weet je zeker dat je Coins uitgeeft? ", congratulations: "Gefeliciteerd! ", content: "Inhoud", copy: "kopiëren", credits: "Credits", "delete": "Verwijderen", details: "Details", edit: "Bewerken", error: "Error", is_offline: "%{user} is offline.", is_offline_long: "%{user} is al een lange tijd offline.", is_offline_with_duration: "%{user} is offline: %{duration}", is_online: "%{user} is online.", loading: "Laden...", name: "Naam", none: "Geen", of: "van", off: "Uit", on: "Aan", save: "Opslaan", search: "Zoeken", show: "Bekijken", user_not_found: "Gebruiker niet gevonden", wrong_key: "Verkeerde key" }, javascript: { alarm: "Alarm", arrival: "Aankomst", backalarm: "Retour post", coins: "Coins", credits: "Credits", days: "dagen", few_seconds: "Nog enkele seconden", finish_in: "Duurt nog:", hours: "uur", location_not_found: "Uw locatie is niet gevonden.", messages: "Berichten", minutes: "minuten", missed_vehicle: "Niet beschikbaar:", mission_start_in: "Begint in:", "new": "Nieuw", not_found_map: "Het voertuig is niet gevonden op de kaart", now: "Nu", patient: "Patiënten", patient_untouched: "onbehandelde patiënten", poi_delete: 'Weet je zeker dat je dit Point of Interest: "%{caption}" wilt verwijderen?', reload: "Refresh", sale: "Sale", sale_ended: "Uitverkoop voorbij", secounds: "seconden", sicherheitswache_error: 'Het evenement "%{caption}" werd niet succesvol doorlopen. Er werd niet aan alle vereisten voldaan. ', sicherheitswache_success: 'Het evenement "%{caption}" werd succesvol doorlopen. Je hebt %{credits} Credits gekregen.', start_in: "Uitrukken in:", start_username: "Gestart door:", time_left: "Tijd over:", to_building: "Naar post", to_mission: "Naar incident", understand: "Begrepen", user_not_found: "De speler is niet gevonden.", vehicles_not_visible: "Voertuig verborgen.", water_approaching: "Aanrijdend: %{amount} L.", water_missing: "Nog nodig: %{amount} L.", water_on_site: "Ter plaatse: %{amount} L.", water_selected: "Geselecteerd: %{amount} L." }, map: { alliance: "Team", alliance_chat: "Teamchat", alliance_chat_banned: "Je bent uit de Teamchat verbannen.", alliance_chat_banned_admin: "Verbannen voor:", alliance_chat_banned_timeleft: "Resterende tijd:", alliance_chat_radio_off: "Teammeldingen: Uit", alliance_chat_radio_on: "Teammeldingen: Aan", alliance_event: "Event", alliance_missions: "Grote inzet", alliance_missions_event: "Event", ambulance: "Besteld vervoer", anti_abuse_active_link: "Klik hier voor meer informatie.", anti_abuse_active_text: "Missies zullen binnen een grotere straal van 100 km verschijnen, omdat te veel stations van hetzelfde type te dicht bij elkaar zijn gebouwd.", attended: "Uitgevoerd", cancel_alliance_event: "Alliantie-evenement annuleren", cancel_alliance_event_confirm: "Wil je het alliantie-evenement echt annuleren?", challenges: "", chat_history: "Chat geschiedenis", congratulations: "Gefeliciteerd! Je mag je nieuwe rang ophalen.", create_alliance_event: "Team-Event starten", create_alliance_operation: "Grote inzet aanmaken", emergency: "Spoed", finishing: "Wordt afgerond", join_alliance_infos: "Wanneer je in een team zit kunnen andere spelers een incident vrijgeven.", map: "Kaart", map_filters: { all_buildings: "Gebouwen", all_missions: "Incidenten", alliance_buildings: "Teamgebouwen", alliance_members: "Teamleden", alliance_missions: "Gedeeld door alliantie", ambulance_station_missions: "Ambulance, standplaats", ambulance_station_small_missions: "Ambulance, VWS-post", building_complex: "Gebouwencomplex", buildings_section: "Posten", clinic_missions: "Clinic", dispatch_center_missions: "Meldkamer", fire_school_missions: "Brandweer, Academie", firehouse_missions: "Brandweer, Kazerne", firehouse_small_missions: "Brandweerkazerne (klein)", hospital_missions: "Spoedeisende hulp", map_filters: "Belangrijke plaatsen (POI's)", mission_positions: "Belangrijke plaatsen (POI's)", mission_positions_section: "POI's", missions_section: "Incidenten", police_copter_station_missions: "Politiehelikopter standplaats", police_school_missions: "Politie, Academie", police_small_missions: "Politie, Steunpunt", police_special_forces: "Police special forces", police_station_missions: "Politie, Opkomstbureau", prison_missions: "Politie, Cellencomplex voor teams", rapid_deployment_group: "Nooddiensten", rescue_copter_station_missions: "Ambulance, Standplaats MMT", riot_police: "Politie, Hoofdbureau", riot_police_missions: "Politie, Hoofdbureau", staging_area_missions: "Uitgangsstelling (UGS)", technical_aid_organization: "THW", technical_aid_organization_school: "", user_buildings: "Mijn gebouwen", user_missions: "Mijn inzetten", water_watch: "Waterongevallen", water_watch_missions: "Waterongevallen" }, message: "Bericht", mission: "Incidenten", missions_filtered_out: "Sommige missies worden mogelijk uitgefilterd. Controleer alstublieft uw kaartfilters.", no_alliance_chat_impossible: "Je zit nog niet in een team. De chat is pas beschikbaar als je in een team zit. ", no_alliance_missions: "Er zijn geen team inzetten beschikbaar", no_ambulance_missions: "Er kan nog geen besteld vervoer plaatsvinden zonder een ziekenhuis en een zorgambulance.", no_emergency_missions: "Er hebben zich nog geen incidenten plaatsgevonden. Incidenten kunnen vanaf je eerste post plaatsvinden.", no_radio_messages: "Je hebt nog geen statusmeldingen ontvangen.", radio_messages: "Status", restore_map: "Kaart terugzetten", server_warning: "Serveronderhoud om 00.00 uur. We verwachten 6 uur offline te zijn.", show_informations: "Groen = Inzet wordt in de lijst weergegeven. Rood = Inzet wordt niet weergegeven.", sicherheitswache: "Geplande inzetten", transport: "Transport", unattended: "Niet uitgevoerd" }, fms: { going: "Uitgerukt", not_ready: "Niet beschikbaar", on_destination: "Aanvraag spraakcontact", on_place: "Ter plaatse", patient_transported: "Vertrokken met patiënt", prisoner_transported: "Transport met arrestant", ready_home: "Op post", ready_traveling: "Beschikbaar", talking_wish: "Aanvraag spraakcontact", waiting_for_vehicle: "Wachten op trekkend voertuig." }, intervention_order: { automatic_text_color: "Automatische tekstkleur", back: "Terug", category: "Categorie", colour: "Kleur", column: "Kolom", column_number: "Kolomnummer", column_number_hint: "Wanneer je een kolomnummer invult wordt het deze Alarm en Uitrukregel in de bijbehorende kolom in de alarmeringsscherm geplaatst.", create_intervention_order: "Nieuwe Alarm en Uitrukregel aanmaken", "delete": "Verwijderen", delete_all: "Inzetvoorstellen compleet verwijderen", delete_all_confirm: "Weet je zeker dat je de inzetvoorstellen wilt verwijderen? Ook de geëxporteerde variant wordt niet meer beschikbaar.", description: "Beschrijving", edit: "Bewerken", "export": { "export": "Exporteren", "import": "Importeren", import_done: "De gekozen input wordt geïmporteerd en jouw eigen A&U worden overschreven.", saved: "A&U-Geëxporteerd ", saved_text: "Jouw A&U worden voor export voorbereid. Met de link kunnen andere spelers de A&U importeren. Wanneer je tussentijds je eigen A&U regels veranderd, zullen deze veranderingen automatisch in de export worden meegenomen." }, hotkey_hint: "Kies een letter voor deze inzet. In het alarmeringsscherm kun je dan met ALT + Letter naar keuze snel een keuze maken. (In Firefox: ALT + SHIFT + Letter naar keuze, Op Mac OS: CTRL + ALT + Letter)", intervention_order: "Inzetvoorstellen aanpassen", name: "Naam", no_intervention_created: "Je hebt nog geen inzetvoorstellen aangemaakt.", options: "Opties", reset: "Voorgaande keuze in alarmeringsscherm terugzetten.", reset_hint: "Wanneer je bij je voertuigkeuze de verkeerde voertuigen geselecteerd hebt, kun je met deze knop de gehele selectie verwijderen en opnieuw beginnen.", save: "Opslaan", station: "Post", station_hint: "Wanneer je een post selecteert worden alleen voertuigen van deze post geselecteerd. ", successfully_created: "Alarm en Uitrukregel succesvol opgeslagen.", successfully_deleted: "Alarm en Uitrukregel verwijderd.", successfully_updated: "Inzetvoorstellen succesvol opgeslagen.", text_color: "Tekstkleur", vehicles: { ab_atemschutz_only: "Adembeschermingshaakarmbak", ab_einsatzleitung_only: "", ab_gefahrgut_only: "", ab_oel_only: "Haakarmbak Milieu", ab_ruest: "Haakarmbak Hulpverlening", ab_ruest_rw: "Hulpverleningsvoertuig of HVH", abl2wasser_only: "Watertransportsysteem-haakarmbak", ambulance: "Ambulance", ambulance_or_rapid_responder: "Ambulance of Rapid Responder", arff: "Crashtender", at_c: "AT-Commandant", at_m: "AT-Materiaalwagen", at_o: "AT-Operator", battalion_chief_unit: "Officier van Dienst Brandweer", bike_police: "DB-Bike", boot: "WOA of BA-RB", dekon_p: "", division_chief_unit: "Hoofdofficier van Dienst - Brandweer", dlk_or_tm50: "", elw1_or_elw2: "", elw2_or_ab_elw: "", elw3: "Commandovoertuig of haakarmbak", elw_airport: "Airport Fire Officer / On Scene Commander", emergency_ambulance: "MMT-Auto of Lifeliner", fire_truck: "Tankautospuit", fireboat: "", fly_car: "Rapid Responder", fly_car_any: "OVDG-RR of Rapid Responder", fukw: "Hondenbrigade", fustw_or_police_motorcycle: "Politie Noodhulp of Dienstmotor Noodhulp", fwk: "", gefkw: "DB-AV", gkw: "", grtw: "", grtw0: "", grtw1: "", grukw: "ME Flexbus", gw_atemschutz_only: "Adembeschermingsvoertuig", gw_gefahrgut: "Adviseur Gevaarlijke Stoffen", gw_gefahrgut_only: "", gw_hoehenrettung: "Hoogte reddingsteam (HRT)", gw_messtechnik: "Dienstbus Verkenningseenheid Brandweer", gw_oel_only: "Milieu wagen", gw_san: "", gw_taucher: "Waterongevallenvoertuig", gw_wasserrettung: "Strandvoertuig (DAT-RB of KHV)", gw_werkfeuerwehr: "", gwl2wasser_only: "Alleen Slangenwagen / Watertankwagen", hems: "", hint: { water_amount: "In te voeren in Liters. Voorbeeld: Als je hier 4500 invoert zullen er voertuigen geselecteerd worden tot de gekozen waarde van 4500L is bereikt." }, hlf_only: "", hlf_or_rw_and_lf: "", hondengeleider: "Hondengeleider", k9: "", kdow_lna: "", kdow_orgl: "Officier van Dienst Geneeskunde", kdow_orgl_any: "OVD-G of OVDG-RR", ktw_b: "", ktw_or_rtw: "", lebefkw: "ME Commandovoertuig", lf_only: "", long_distance_ambulance: "Zorgambulance", mask_service_unit: "Adembeschermingsvoertuig of haakarmbak", mek_mtf: "", mek_zf: "", mtw: "Dienstauto / Dienstbus brandweer", mzb: "", naw: "", naw_or_rtw_and_nef: "", naw_or_rtw_and_nef_or_rth: "", nef_only: "MMT-Auto", oil_unit: "Milieu wagen of haakarmbak milieu", only_ab_dekon_p: "", only_dekon_p: "", ovd_p: "Officier van Dienst - Politie", police_car: "Politie Noodhulp", police_car_3: "NH-O", police_motorcycle: "Dienstmotor Noodhulp", polizeihubschrauber: "Politiehelikopter", rescue_vehicle: "HV of TS-HV", rescue_vehicle_only: "Hulpverleningsvoertuig", rescueboat: "", rettungstreppe: "", rth_only: "Lifeliner", schlauchwagen: "Slangenwagen / Watertankwagen of Watertransportsysteem-haakarmbak", seg_elw: "", sek_mtf: "", sek_zf: "", spokesman: "Voorlichters", swat: "", swat_armored_vehicle: "", swat_suv: "", thw_anh_mzab: "", thw_anh_mzb: "", thw_anh_schlb: "", thw_brmg_r: "", thw_dle: "", thw_lkw: "", thw_lkw_7_lkr_19_tm: "", thw_mlw5: "", thw_mtw: "", thw_mzkw: "", thw_tauchkraftwagen: "", thw_tauchkraftwagen_or_gw_taucher: "", tlf_only: "", tm50: "", turboloescher: "", turntable_ladder: "Redvoertuig", ulf: "", wasserwerfer: "", water_amount: "Water (in Liters):", water_amount_tlf: "" } }, tutorial: { beginner: { building: { browser: { build_building: { add_name: "Geef je nieuwe gebouw een naam. Maak het herkenbaar en opschaalbaar. Bijvoorbeeld 'Brandweerkazerne nr. 0001'. Als je klaar bent, klik dan op 'Volgende'.", build_with_credits: "Bouw nu je gebouw met credits.", new_building: "Klik op 'Nieuw gebouw maken'.", select_building: "Kies nu eerst het type gebouw waar je mee wil beginnen. We raden je aan om te beginnen met de brandweer, zo maak je de beste start!", select_position: "Zet de blauwe markering neer waar je je eerste gebouw wil bouwen." }, pick_location: "Kies eerst een locatie om te beginnen. Typ de naam van de locatie waar je wil beginnen in de zoekbalk of zoek zelf op de kaart. Je kunt bijvoorbeeld je woonplaats kiezen.", welcome: "Hallo, welkom bij Meldkamerspel! Ik zal je het een en ander leren om je te helpen je carrière bij de hulpdiensten goed te beginnen." }, mobile: { build_building: { add_name: "Geef je nieuwe gebouw een naam. Maak het herkenbaar en opschaalbaar. Bijvoorbeeld 'Brandweerkazerne nr. 0001'. Als je klaar bent, klik dan op 'Volgende'.", build_with_credits: "Bouw nu je gebouw met credits.", new_building: "Eerst kiezen we een locatie om te beginnen en bouwen we je eerste gebouw.

    Om dat te doen, klik je op 'Nieuw gebouw maken'.", select_building: "Kies nu eerst het type gebouw waar je mee wil beginnen. We raden je aan om te beginnen met de brandweer, zo maak je de beste start!" }, welcome: "Hallo, welkom bij Meldkamerspel! Ik zal je het een en ander leren om je te helpen je carrière bij de hulpdiensten goed te beginnen." } }, mission: { detail: { browser: { dispatch_menu: "Dit is het Alarmeringsmenu. Hiervandaan stuur je je eenheden naar de melding.", dispatch_menu_buttons: "Dit zijn de twee Alarmeringsknoppen. De eerste: 'Alarmeren' stuurt de geselecteerde eenheden naar de melding. De tweede knop doet hetzelfde als de eerste, maar schakelt daarna door naar de volgende missie. Klik nu op de eerste knop.", dispatch_menu_mission_general: "Hier zie je algemene informatie over de melding: de naam, het adres, het icoontje van de missie. Het icoontje van een mannetje vervangt het sterretje voor missies waaraan je al deelneemt.", dispatch_menu_mission_progress: "Hier zie je hoeveel vooruitgang er is geboekt met deze melding; hoeveel medewerkers ter plaatse zijn en de resterende tijd die nog nodig is om de melding af te handelen.", dispatch_menu_mission_specific: "Hier zie je meer informatie over de melding; welke eenheden onderweg en welke al ter plaatse zijn.", dispatch_menu_vehicle_list: "Dit is een lijst met beschikbare voertuigen. Hier selecteer je de voertuigen. Selecteer nu je voertuig door erop te klikken." }, mobile: { dispatch_menu: "Dit is het Alarmeringsmenu. Hiervandaan stuur je je eenheden naar de melding.", dispatch_menu_buttons: "Dit zijn de twee Alarmeringsknoppen. De eerste: 'Alarmeren' stuurt de geselecteerde eenheden naar de melding. De tweede knop doet hetzelfde als de eerste, maar schakelt daarna door naar de volgende missie. Klik nu op de eerste knop.", dispatch_menu_mission_general: "Hier zie je algemene informatie over de melding: de naam, het adres, het icoontje van de missie. Het icoontje van een mannetje vervangt het sterretje voor missies waaraan je al deelneemt.", dispatch_menu_mission_progress: "Hier zie je hoeveel vooruitgang er is geboekt met deze melding; hoeveel medewerkers ter plaatse zijn en de resterende tijd die nog nodig is om de melding af te handelen.", dispatch_menu_mission_specific: "Hier zie je meer informatie over de melding; welke eenheden onderweg en welke al ter plaatse zijn.", dispatch_menu_vehicle_list: "Dit is een lijst met beschikbare voertuigen. Hier selecteer je de voertuigen. Selecteer nu je voertuig door erop te klikken." } }, overview: { browser: { dispatch_button: "Nu willen we leren hoe we met incidenten om moeten gaan. Open het Alarmeringsmenu door op de 'Alarm'-knop te drukken.", first_mission: "Geweldig, je hebt je eerste gebouw gebouwd! En kijk, de eerste meldingen komen al binnen!" }, mobile: { dispatch_button: "Nu willen we leren hoe we met incidenten om moeten gaan. Open het Alarmeringsmenu door op de 'Alarm'-knop te drukken.", first_mission: "Geweldig, je hebt je eerste gebouw gebouwd! En kijk, de eerste meldingen komen al binnen!" } } }, rewards: { browser: { general: "Goed zo, je bent op weg om een geweldige meldkamercentralist te worden! Hier heb je %{coins} Coins om je verder op weg te helpen.
    Het team van Meldkamerspel" }, mobile: { general: "Goed zo, je bent op weg om een geweldige meldkamercentralist te worden! Hier heb je %{coins} Coins om je verder op weg te helpen.
    Het team van Meldkamerspel" } }, tips: { browser: { contact: "Als je vragen hebt, kun je de veelgestelde vragen over het spel bekijken of een bezoekje brengen aan de forums of onze Facebook-pagina. Op het Blog vind je nog extra handleidingen en video's met uitleg over de verschillende functies in het spel.", general: "Als volgende stap raden we je aan om een meldkamer(gratis!) te bouwen en dan zo snel mogelijk nieuwe gebouwen te bouwen, aangezien het maximumaantal missies gelijk is aan het type station waarvan je er het meeste hebt (politie, brandweer, ambulance) plus 1. Bijvoorbeeld: 5 brandweerkazernes en 3 ambulanceposten = 6 missies.", join_alliance: "Ook kun je je aansluiten bij een team. Dat kan je vooral in het begin erg vooruit helpen.", summary: "Dit zijn de basisprincipes van Meldkamerspel. Meldigen afhandelen, Credits verdienen, meer gebouwen en eenheden kopen, enzovoorts. Veel speelplezier!
    Het team van Meldkamerspel" }, mobile: { contact: "Als je vragen hebt, kun je de veelgestelde vragen over het spel bekijken of een bezoekje brengen aan de forums of onze Facebook-pagina. Op het Blog vind je nog extra handleidingen en video's met uitleg over de verschillende functies in het spel.", general: "Als volgende stap raden we je aan om een meldkamer(gratis!) te bouwen en dan zo snel mogelijk nieuwe gebouwen te bouwen, aangezien het maximumaantal missies gelijk is aan het type station waarvan je er het meeste hebt (politie, brandweer, ambulance) plus 1. Bijvoorbeeld: 5 brandweerkazernes en 3 ambulanceposten = 6 missies.", join_alliance: "Ook kun je je aansluiten bij een team. Dat kan je vooral in het begin erg vooruit helpen.", summary: "Dit zijn de basisprincipes van Meldkamerspel. Meldigen afhandelen, Credits verdienen, meer gebouwen en eenheden kopen, enzovoorts. Veel speelplezier!
    Het team van Meldkamerspel" } } }, commons: { collect: "Ophalen", "continue": "Nee", end: "Beëindigen", next: "Volgende", prev: "Vorige", skip: "Ja", skip_hint: "Wil je de tutorial echt stoppen? Je kunt hem later niet opnieuw openen. Je komt dan niet meer in aanmerking voor beloningen voor het voltooien van de tutorial." }, rewards: { log: "Beloning voor het voltooien van de tutorial." } }, policechief: { tutorial: { beginner: { building: { browser: { build_building: { add_name: "Geef je nieuwe gebouw een naam. Maak het herkenbaar en opschaalbaar. Bijvoorbeeld 'Politie nr. 0001'. Als je klaar bent, klik dan op 'Volgende'.", select_building: "Kies nu eerst het type gebouw waar je mee wil beginnen. We raden je aan om te beginnen met de politie, zo maak je de beste start!" }, welcome: "Hallo, welkom bij Meldkamerspel Politie! Ik zal je het een en ander leren om je te helpen je carrière bij de hulpdiensten goed te beginnen." }, mobile: { build_building: { add_name: "Geef je nieuwe gebouw een naam. Maak het herkenbaar en opschaalbaar. Bijvoorbeeld 'Politie nr. 0001'. Als je klaar bent, klik dan op 'Volgende'.", select_building: "Kies nu eerst het type gebouw waar je mee wil beginnen. We raden je aan om te beginnen met de politie, zo maak je de beste start!" }, welcome: "Hallo, welkom bij Meldkamerspel Politie! Ik zal je het een en ander leren om je te helpen je carrière bij de hulpdiensten goed te beginnen." } }, rewards: { browser: { general: "Goed zo, je bent op weg om een geweldige meldkamercentralist te worden! Hier heb je %{coins} Coins om je verder op weg te helpen.
    Het team van Meldkamerspel Politie" }, mobile: { general: "Goed zo, je bent op weg om een geweldige meldkamercentralist te worden! Hier heb je %{coins} Coins om je verder op weg te helpen.
    Het team van Meldkamerspel Politie" } }, tips: { browser: { summary: "Dit zijn de basisprincipes van Meldkamerspel Politie. Meldigen afhandelen, Credits verdienen, meer gebouwen en eenheden kopen, enzovoorts. Veel speelplezier!
    Het team van Meldkamerspel Politie" }, mobile: { summary: "Dit zijn de basisprincipes van Meldkamerspel Politie. Meldigen afhandelen, Credits verdienen, meer gebouwen en eenheden kopen, enzovoorts. Veel speelplezier!
    Het team van Meldkamerspel Politie" } } } } }, number: { format: { delimiter: ".", precision: 2, separator: ",", significant: !1, strip_insignificant_zeros: !1 } } }, I18n.translations.es_ES = { common: { add: "Añadir", back: "Atrás", cancel: "Cancelar", change_saved: "Cambios guardados", coins_spend: "¿Seguro que quieres gastar estas monedas?", congratulations: "¡Enhorabuena!", content: "Contenido", copy: "Copiar", credits: "Créditos", "delete": "Eliminar", details: "Detalles", edit: "Editar", error: "Error", is_offline: "%{user} no está conectado.", is_offline_long: "%{user} no se ha conectado desde hace mucho tiempo", is_offline_with_duration: "%{user} no está conectado: %{duration}", is_online: "%{user} está conectado.", loading: "Cargando...", name: "Nombre", none: "Nada", of: "de", off: "No", on: "Sí", save: "Guardar", search: "Buscar", show: "Mostrar", user_not_found: "Usuario no encontrado", wrong_key: "Tecla equivocada" }, javascript: { alarm: "Enviar", arrival: "Llegada", backalarm: "Cancelar", coins: "Monedas", credits: "Créditos", days: "días", few_seconds: "en pocos segundos", finish_in: "Termina en:", foam_approaching: "Aproximándose: %{amount} l", foam_missing: "Falta: %{amount} l", foam_on_site: "Presente: %{amount} l", foam_selected: "Seleccionada: %{amount} l", hours: "H", location_not_found: "No encontrado", messages: "Mensajes", minutes: "min.", missed_vehicle: "Falta:", mission_start_in: "Comienza en:", "new": "Nuevo", not_found_map: "No se ha encontrado el vehículo en el mapa", now: "Ahora", patient: "Paciente", patient_untouched: "Pacientes no tratados", poi_delete: "¿Seguro que quieres eliminar el PI %{caption}?", reload: "Recargar", sale: "Rebajas", sale_ended: "Oferta finalizada", secounds: "seg.", sicherheitswache_error: "El guardia de seguridad %{caption} no ha completado su misión, ya que no se han cumplido todos los criterios.", sicherheitswache_success: "El guardia de seguridad %{caption} ha completado su misión. Recibes %{credits} créditos.", start_in: "Comienza en: ", start_username: "Usuario:", time_left: "Tiempo restante:", to_building: "Ver edificio", to_mission: "Ver misión", understand: "Recibido", user_not_found: "No se ha encontrado al jugador.", vehicles_not_visible: "Los vehículos no están visibles. ", water_approaching: "Aproximándose: %{amount} l", water_missing: "Falta: %{amount} l", water_on_site: "Presente: %{amount} l", water_selected: "Seleccionado: %{amount} l" }, map: { alliance: "Alianza", alliance_chat: "Chat", alliance_chat_banned: "Tienes prohibido entrar al chat de la alianza.", alliance_chat_banned_admin: "Prohibición emitida por:", alliance_chat_banned_timeleft: "Tiempo restante:", alliance_chat_radio_off: "Radio de la alianza: No", alliance_chat_radio_on: "Radio de la alianza: Sí", alliance_event: "Evento", alliance_missions: "Misiones de alianza", alliance_missions_event: "Evento", ambulance: "Ambulancia", anti_abuse_active_link: "Haz clic aquí para obtener más información.", anti_abuse_active_text: "Las misiones se generarán en un radio ampliado de 100 km, ya que hay construidas demasiadas estaciones del mismo tipo muy próximas entre sí.", attended: "Respondido", cancel_alliance_event: "Cancelar evento de alianza", cancel_alliance_event_confirm: "¿Seguro que quieres cancelar el evento de alianza?", challenges: "", chat_history: "Historial de chat", congratulations: "¡Enhorabuena! Puedes ascender.", create_alliance_event: "Comenzar evento de alianza", create_alliance_operation: "Crea una misión de alianza a gran escala", emergency: "Emergencia", finishing: "Completando", join_alliance_infos: "Si estás en una alianza, otros jugadores podrán ofrecerte misiones.", map: "Mapa", map_filters: { all_buildings: "Edificios", all_missions: "Misiones", alliance_buildings: "Edificios de la alianza", alliance_members: "Miembros", alliance_missions: "Compartido por la alianza", ambulance_station_missions: "Parque de ambulancias", ambulance_station_small_missions: "Parque de ambulancias (pequeño)", building_complex: "Complejo de edificios", buildings_section: "Instalaciones", clinic_missions: "Clínica", dispatch_center_missions: "Centralita", fire_school_missions: "Academia de bomberos", firehouse_missions: "Parque de bomberos", firehouse_small_missions: "Parque de bomberos (pequeño)", hospital_missions: "Hospital", map_filters: "Lista de filtros de mapa", mission_positions: "Puntos de interés (PI)", mission_positions_section: "PI", missions_section: "Misiones", police_copter_station_missions: "Helipuerto Policial", police_school_missions: "Academia de Policía", police_small_missions: "Comisaría de policía (pequeño)", police_special_forces: "Fuerzas especiales de la policía", police_station_missions: "Comisaría de policía", prison_missions: "Prisión", rapid_deployment_group: "Grupo de preparación rápida (GPR)", rescue_copter_station_missions: "Helipuerto médico", riot_police: "Policía antidisturbios", riot_police_missions: "Policía antidisturbios", staging_area_missions: "Zona de preparación", technical_aid_organization: "SAT", technical_aid_organization_school: "Academia SAT", user_buildings: "Mis edificios", user_missions: "Mis misiones", water_watch: "Rescate acuático", water_watch_missions: "Rescate acuático" }, message: "Mensaje", mission: "Misión", missions_filtered_out: "Algunas misiones pueden ser filtradas. Por favor, revise los filtros de su mapa.", no_alliance_chat_impossible: "No estás en una alianza.", no_alliance_missions: "No hay misiones de alianza.", no_ambulance_missions: "No hay transportes para pacientes. Estarán disponibles en cuanto poseas un vehículo SVB y un hospital.", no_emergency_missions: "No hay misiones de emergencia disponibles. Solo habrá misiones de emergencia después de que construyas tu primera instalación.", no_radio_messages: "No has recibido mensajes de radio.", radio_messages: "Radio", restore_map: "Restaurar mapa", server_warning: "Mantenimiento del servidor a las 00:00. Se espera un tiempo de inactividad de 6 horas.", show_informations: "Verde: las misiones se mostrarán en la lista. Rojo: las misiones no se mostrarán.", sicherheitswache: "Misones planificadas", transport: "Transporte", unattended: "Sin respuesta" }, fms: { going: "Respondiendo", not_ready: "Fuera de servicio", on_destination: "En el destino del transporte", on_place: "Presente", patient_transported: "Transportando paciente", prisoner_transported: "Transportando preso", ready_home: "Disponible en la instalación", ready_traveling: "Listo y disponible", talking_wish: "Petición de transporte", waiting_for_vehicle: "Esperando a remolque" }, intervention_order: { automatic_text_color: "Color de texto automático", back: "Atrás", category: "Categoría", colour: "Color", column: "Columna", column_number: "N.º de columna", column_number_hint: "Si hay un número de columna, la entrada en las normas de alerta y respuesta se mostrará en la columna correspondiente de la página de la alerta.", create_intervention_order: "Crear nueva norma de alerta y respuesta", "delete": "Eliminar", delete_all: "Eliminar todas las normas de alerta y respuesta", delete_all_confirm: "¿Seguro que quieres eliminar todas las normas de alerta y respuesta? ¡Las entradas exportadas existentes ya no están disponibles!", description: "Nombre", edit: "Editar", "export": { "export": "Exportar", "import": "Importar", import_done: "Las entradas seleccionadas se han importado y añadido a tu plan de alerta y respuesta.", saved: "Exportar las normas de alerta y respuesta", saved_text: "Las normas de alerta y respuesta están preparadas para ser exportadas. Mediante el enlace, otro jugador podrá importarlas. Mientras tanto, si cambias alguna norma, el cambio se aplicará automáticamente a lo exportado." }, hotkey_hint: "Elije una tecla para esta selección de vehículos. En la ventana de la misión, pulsa ALT + tu tecla (ALT + SHIFT + tu tecla en Firefox o CTRL + ALT + tu tecla en MacOS) para seleccionarla.", intervention_order: "Editar normas de alerta y respuesta", name: "Nombre", no_intervention_created: "Todavía no has creado ninguna norma de alerta y respuesta.", options: "Opciones", reset: "Restablece la selección anterior en la ventana de alertas.", reset_hint: "Si has seleccionado el vehículo en la ventana de respuesta, puedes usar este botón para restablecer.", save: "Guardar", station: "Instalación", station_hint: "Si hay un edificio seleccionado, solo se seleccionarán los vehículos de ese edificio.", successfully_created: "Norma de alerta y respuesta creada correctamente.", successfully_deleted: "Norma de alerta y respuesta eliminada", successfully_updated: "Norma de alerta y respuesta actualizada correctamente.", text_color: "Color de texto", vehicles: { ab_atemschutz_only: "Módulo ERA", ab_einsatzleitung_only: "Módulo de mando", ab_gefahrgut_only: "Módulo Hazmat", ab_oel_only: "Módulo de vertido de crudo", ab_ruest: "Módulo tecnológico de rescate", ab_ruest_rw: "", abl2wasser_only: "Módulo de mangueras", ambulance: "UVI móvil", ambulance_or_rapid_responder: "", arff: "CBA (Camión de bomberos de aeropuerto)", battalion_chief_unit: "Unidad de Mando y Comunicaciones", boot: "Botes (general)", dekon_p: "", division_chief_unit: "Unidad de mando", dlk_or_tm50: "", elw1_or_elw2: "Unidad de Mando y Comunicaciones, unidad de mando o módulo de mando móvil ", elw2_or_ab_elw: "Bomba de Rescate o Unidad de Apoyo de Rescate y Camión de Bomberos", elw3: "", elw_airport: "", emergency_ambulance: "Ambulancia o Helicóptero", fire_truck: "Camiones de bomberos", fireboat: "Barco de bomberos grande", fly_car: "VIR", fly_car_any: "VIR / Médico de cabecera", foam_amount: "Litros de espuma", fukw: "", fustw_or_police_motorcycle: "Coche patrulla o Moto de Policía", fwk: "", gefkw: "", gkw: "Camión de usos múltiples", grtw: "Unidad para múltiples víctimas", grtw0: "", grtw1: "", grukw: "", gw_atemschutz_only: "", gw_gefahrgut: "Hazmat", gw_gefahrgut_only: "", gw_hoehenrettung: "Camión de rescate en altura", gw_messtechnik: "Camión de medición", gw_oel_only: "", gw_san: "", gw_taucher: "", gw_wasserrettung: "Retención de agua", gw_werkfeuerwehr: "", gwl2wasser_only: "Vehículo con manguera", hems: "HEMS", hlf_only: "Vehículo de rescate", hlf_or_rw_and_lf: "Vehículo de rescate o vehículo de rescate pesado y camión de bomberos", hondengeleider: "", k9: "Unidad Canina", kdow_lna: "", kdow_orgl: "Unidad logística de AMV", kdow_orgl_any: "Unidad logística de AMV", ktw_b: "", ktw_or_rtw: "SVB o SVA", lebefkw: "Vehículo de mando ligero (leBefKw)", lf_only: "Camiones de bomberos", long_distance_ambulance: "Ambulancia SVB", mask_service_unit: "Unidad aérea", mek_mtf: "", mek_zf: "", mtw: "Camión de transporte", mzb: "Barco multiusos", naw: "", naw_or_rtw_and_nef: "", naw_or_rtw_and_nef_or_rth: "", nef_only: "Ambulancia", oil_unit: "Camión para fuegos de aceite", only_ab_dekon_p: "", only_dekon_p: "", ovd_p: "", police_car: "Coche patrulla", police_motorcycle: "Moto de Policía", polizeihubschrauber: "Helicóptero de Policía", rescue_vehicle: "Furgones de Útiles Varios", rescue_vehicle_only: "Furgón de Útiles Varios", rescueboat: "Barco de rescate grande", rettungstreppe: "", rth_only: "HEMS", schlauchwagen: "Camión cisterna", seg_elw: "", sek_mtf: "", sek_zf: "", swat: "Fuerzas especiales (GEO)", swat_armored_vehicle: "Unidad Antidisturbios", swat_suv: "Unidad GEO", thw_anh_mzab: "", thw_anh_mzb: "", thw_anh_schlb: "", thw_brmg_r: "", thw_dle: "", thw_lkw: "", thw_lkw_7_lkr_19_tm: "", thw_mlw5: "", thw_mtw: "Camión de transporte técnico", thw_mzkw: "Vehículo multiusos", thw_tauchkraftwagen: "Equipo de buceo", thw_tauchkraftwagen_or_gw_taucher: "", tlf_only: "Camión cisterna", tm50: "", turboloescher: "", turntable_ladder: "Camión AE", ulf: "", wasserwerfer: "", water_amount: "Litros de agua", water_amount_tlf: "" } }, tutorial: { beginner: { building: { browser: { build_building: { add_name: "¡El segundo paso es bautizarla! Dale un nombre reconocible y escalable, Como «Parque de bomberos #0001». Cuando acabes, haz clic en Sig.", build_with_credits: "Ahora, construye tu edificio con créditos.", new_building: "Haz clic en «Nuevo edificio».", select_building: "Lo primero es elegir el tipo de edificio con el que quieres comenzar. ¡Te recomendamos que escojas un parque de bomberos! En cualquier caso, lo mejor es comenzar con una instalación pequeña.", select_position: "Mueve el marcador azul al lugar donde quieres construir tu primera instalación." }, pick_location: "Para comenzar, elige una ubicación. Puedes escribir su nombre en la barra de búsqueda o mover el mapa hasta llegar a ella. ¿Qué te parece si vamos a tu hogar?", welcome: "¡Hola! Te damos la bienvenida a Centro de Mando. ¡Te voy a enseñar algunos conceptos básicos para que puedas comenzar tu carrera como operador con buen pie!" }, mobile: { build_building: { add_name: "¡El segundo paso es bautizarla! Dale un nombre reconocible y escalable, Como «Parque de bomberos #0001». Cuando acabes, haz clic en Sig.", build_with_credits: "Ahora, construye tu edificio con créditos.", new_building: "Comenzaremos eligiendo una ubicación para tu primer edificio.

    Haz clic en «Nuevo edificio».", select_building: "Lo primero es elegir el tipo de edificio con el que quieres comenzar. ¡Te recomendamos que escojas un parque de bomberos! En cualquier caso, lo mejor es comenzar con una instalación pequeña." }, welcome: "¡Hola! Te damos la bienvenida a Centro de Mando. ¡Te voy a enseñar algunos conceptos básicos para que puedas comenzar tu carrera como operador con buen pie!" } }, mission: { detail: { browser: { dispatch_menu: "Desde este menú Puedes enviar a tus unidades a misiones.", dispatch_menu_buttons: "Hay dos botones para enviar el vehículo: El primero, «Enviar», dirige a las unidades seleccionadas a la misión. El segundo también hace esto, pero después pasa a la siguiente misión. Por ahora, haz clic en el primer botón.", dispatch_menu_mission_general: "Aquí puedes ver información general de la misión, como su nombre, dirección e icono. En las misiones en las que ya estés participando aparecerá un pequeño símbolo de una persona en lugar de la estrella.", dispatch_menu_mission_progress: "Aquí puedes ver el progreso de la misión, así como el personal en el lugar del incidente y el tiempo restante.", dispatch_menu_mission_specific: "Aquí puedes ver más información sobre la misión, qué unidades están respondiendo a la emergencia y cuáles han llegado ya allí.", dispatch_menu_vehicle_list: "Esta es la lista de vehículos que tienes disponibles. Aquí puedes seleccionarlos. Elige el vehículo que quieras enviar y haz clic sobre él." }, mobile: { dispatch_menu: "Desde este menú Puedes enviar a tus unidades a misiones.", dispatch_menu_buttons: "Hay dos botones para enviar el vehículo: El primero, «Enviar», dirige a las unidades seleccionadas a la misión. El segundo también hace esto, pero después pasa a la siguiente misión. Por ahora, haz clic en el primer botón.", dispatch_menu_mission_general: "Aquí puedes ver información general de la misión, como su nombre, dirección e icono. En las misiones en las que ya estés participando aparecerá un pequeño símbolo de una persona en lugar de la estrella.", dispatch_menu_mission_progress: "Aquí puedes ver el progreso de la misión, así como el personal en el lugar del incidente y el tiempo restante.", dispatch_menu_mission_specific: "Aquí puedes ver más información sobre la misión, qué unidades están respondiendo a la emergencia y cuáles han llegado ya allí.", dispatch_menu_vehicle_list: "Esta es la lista de vehículos que tienes disponibles. Aquí puedes seleccionarlos. Elige el vehículo que quieras enviar y haz clic sobre él." } }, overview: { browser: { dispatch_button: "Ahora, aprendamos cómo lidiar con incidentes. Haz clic en un botón «enviar» para abrir el menú.", first_mission: "¡Genial! Tu primer edificio ya está construido. ¿Ves? Ya estás recibiendo avisos de emergencias." }, mobile: { dispatch_button: "Ahora, aprendamos cómo lidiar con incidentes. Haz clic en un botón «enviar» para abrir el menú.", first_mission: "¡Genial! Tu primer edificio ya está construido. ¿Ves? Ya estás recibiendo avisos de emergencias." } } }, rewards: { browser: { general: "¡Genial! Sigue así y te convertirás en un gran operador. ¡Aquí tienes %{coins} monedas para ayudarte a arrancar!
    El equipo de Centro de Mando" }, mobile: { general: "¡Genial! Sigue así y te convertirás en un gran operador. ¡Aquí tienes %{coins} monedas para ayudarte a arrancar!
    El equipo de Centro de Mando" } }, tips: { browser: { contact: "Si tienes alguna pregunta, puedes consultar el FAQ y visitar el foro del juego y nuestra página de Facebook.", general: "Te recomendamos que tu siguiente paso sea construir una centralita y después, en cuanto sea posible, nuevas instalaciones, ya que el número máximo de misiones es igual al número máximo de instalaciones del mismo tipo (comisarías, parques de bomberos o de ambulancias...) más 1. Por ejemplo: 5 parques de bomberos y 3 de ambulancias permiten tener 6 misiones disponibles.", join_alliance: "Además, unirse a una alianza es de gran ayuda, especialmente al principio.", summary: "¡Ya conoces lo fundamental de Centro de Mando! Completar misiones, ganar créditos, comprar más unidades y vuelta a empezar. ¡Diviértete!
    El equipo de Centro de Mando" }, mobile: { contact: "Si tienes alguna pregunta, puedes consultar el FAQ y visitar el foro del juego y nuestra página de Facebook.", general: "Te recomendamos que tu siguiente paso sea construir una centralita y después, en cuanto sea posible, nuevas instalaciones, ya que el número máximo de misiones es igual al número máximo de instalaciones del mismo tipo (comisarías, parques de bomberos o de ambulancias...) más 1. Por ejemplo: 5 parques de bomberos y 3 de ambulancias permiten tener 6 misiones disponibles.", join_alliance: "Además, unirse a una alianza es de gran ayuda, especialmente al principio.", summary: "¡Ya conoces lo fundamental de Centro de Mando! Completar misiones, ganar créditos, comprar más unidades y vuelta a empezar. ¡Diviértete!
    El equipo de Centro de Mando" } } }, commons: { collect: "Recoger", "continue": "No", end: "Fin", next: "Sig.", prev: "Ant.", skip: "Sí", skip_hint: "¿Seguro que quieres saltarte el tutorial? Después, no podrás acceder a él.No podrás recibir la recompensa por completar el tutorial." }, rewards: { log: "Recompensa por completar el tutorial." } }, number: { format: { delimiter: " ", precision: 3, separator: ",", significant: !1, strip_insignificant_zeros: !1 } } }, I18n.translations.en_AU = { common: { add: "Add", back: "Back", cancel: "Cancel", change_saved: "Changes saved", coins_spend: "Do you really want to spend these coins?", congratulations: "Congratulations!", content: "Content", copy: "copy", credits: "Credits", "delete": "Delete", details: "Details", edit: "Edit", error: "Error", is_offline: "%{user} is offline.", is_offline_long: "Long time: %{user} is offline", is_offline_with_duration: "%{user} is offline: %{duration}", is_online: "%{user} is online.", loading: "Loading...", name: "Name", none: "None", of: "of", off: "Off", on: "On", save: "Save", search: "Search", show: "Show", user_not_found: "User not found", wrong_key: "Wrong key" }, javascript: { alarm: "Dispatch", arrival: "Arrival", backalarm: "Cancel", coins: "Coins", credits: "Credits", days: "days", few_seconds: "in few seconds", finish_in: "Finish in:", hours: "H", location_not_found: "Not found", messages: "Messages", minutes: "min.", missed_vehicle: "It lacks:", mission_start_in: "Starts in:", "new": "New", not_found_map: "The vehicle hasn't been found on the map", now: "Now", patient: "Patient", patient_untouched: "Untreated patients", poi_delete: "Are you sure you want to delete the POI: %{caption}?", reload: "Reload", sale: "Sale", sale_ended: "Sale ended", secounds: "sec.", sicherheitswache_error: 'The security guard "%{caption}" was not successful, because not all the criteria were met.', sicherheitswache_success: 'The security guard "%{caption}" has been successfully carried out. Receive %{credits} Credits.', start_in: "Start in: ", start_username: "Starter:", time_left: "Time left:", to_building: "View Building", to_mission: "View Mission", understand: "Acknowledge", user_not_found: "The player was not found.", vehicles_not_visible: "Vehicles not visible. ", water_approaching: "On route: %{amount} l.", water_missing: "Missing: %{amount} l.", water_on_site: "On scene: %{amount} l.", water_selected: "Selected: %{amount} l." }, map: { alliance: "Alliance", alliance_chat: "Chat", alliance_chat_banned: "You are currently banned from the alliance chat.", alliance_chat_banned_admin: "Banned by:", alliance_chat_banned_timeleft: "Time remaining:", alliance_chat_radio_off: "Alliance Radio: Off", alliance_chat_radio_on: "Alliance Radio: On", alliance_event: "Event", alliance_missions: "Alliance Missions", alliance_missions_event: "Event", ambulance: "Ambulance", anti_abuse_active_link: "Click here for more information.", anti_abuse_active_text: "Missions will be generated within an extended radius of 100km, since too many stations of the same type are built too close to each other.", attended: "Attended", cancel_alliance_event: "Cancel alliance event", cancel_alliance_event_confirm: "Do you really want to cancel the alliance event?", challenges: "", chat_history: "Chat History", congratulations: "Congratulations! You can now be promoted.", create_alliance_event: "Start alliance event", create_alliance_operation: "Create a large scale alliance mission", emergency: "Emergency", finishing: "Finishing", join_alliance_infos: "If you are in an alliance, other players can freely give you missions.", map: "Map", map_filters: { all_buildings: "Buildings", all_missions: "Missons", alliance_buildings: "Alliance Buildings", alliance_members: "Members", alliance_missions: "Shared by Alliance", ambulance_station_missions: "Ambulance Station", ambulance_station_small_missions: "Ambulance station (Small station)", building_complex: "Building Complex", buildings_section: "Stations", clinic_missions: "Clinic", dispatch_center_missions: "Dispatch Center", fire_school_missions: "Fire Academy", firehouse_missions: "Fire Station", firehouse_small_missions: "Fire Station (Small)", hospital_missions: "Hospital", map_filters: "Map filters list", mission_positions: "Points of Interest (POIs)", mission_positions_section: "POIs", missions_section: "Missions", police_copter_station_missions: "Police Air Wing", police_school_missions: "Police Academy", police_small_missions: "Police Station (Small station)", police_special_forces: "Police special forces", police_station_missions: "Police Station", prison_missions: "Police Lockup", rapid_deployment_group: "Rapid Setup Group (SEG)", rescue_copter_station_missions: "Air Ambulance Station", riot_police: "Riot Police", riot_police_missions: "Riot Police", staging_area_missions: "Staging Area", technical_aid_organization: "THW", technical_aid_organization_school: "THW Bundesschule", user_buildings: "My buildings", user_missions: "My missions", water_watch: "Water Rescue", water_watch_missions: "Water Rescue" }, message: "Message", mission: "Mission", missions_filtered_out: "Some missions might be filtered out. Please, check your map filters.", no_alliance_chat_impossible: "You are not in an alliance.", no_alliance_missions: "There are currently no alliance missions.", no_ambulance_missions: "There are no ambulance missions. Ambulance missions can only occur when you have an ambulance and a hospital.", no_emergency_missions: "There are no emergency missions available. An emergency mission can occur after you made your first station.", no_radio_messages: "You didn't receive any radio messages.", radio_messages: "Radio", restore_map: "Restore Map", server_warning: "Server maintenance at 08:00 AEST. 6h downtime expected.", show_informations: "Green = The missions are shown in the list. Red = The missions aren't shown.", sicherheitswache: "Planned Appearances", transport: "Transport", unattended: "Unattended" }, fms: { going: "Responding", not_ready: "Out of Service", on_destination: "At the transport destination", on_place: "On Scene", patient_transported: "Transporting Patient", prisoner_transported: "Transporting Prisoner", ready_home: "Available at Station", ready_traveling: "Clear and Available", talking_wish: "Transport Request", waiting_for_vehicle: "Awaiting vehicle to tow" }, intervention_order: { automatic_text_color: "Automatic Text Color", back: "Back", category: "Category", colour: "Color", column: "Column", column_number: "Column number", column_number_hint: "If a column number is given, the Alarm and Response entry will be displayed in the corresponding column on the alert page.", create_intervention_order: "Create new Alarm and Response Regulation", "delete": "Delete", delete_all: "Delete Alarm and Response Regulations completely", delete_all_confirm: "Are you sure you want to delete the whole alarm and response regulation? Existing exported entries are no longer available!", description: "Name", edit: "Edit", "export": { "export": "Export", "import": "Import", import_done: "The selected entries have been imported and written to your Alarm and Response plan .", saved: "Alarm and Response Regulations Exports", saved_text: "Your Alarm and Response Regulation has been prepared for export. Via the link another player can import the Alarm and Response Regulation. If you change your Alarm and Response Regualtion in the meantime, this change will automatically be applied in the export." }, hotkey_hint: "Choose a hotkey for this vehicle selection. Press at your window mission: ALT + your hotkey (or at Firefox: ALT + SHIFT + your hotkey or at mac os: ctrl + alt + your hotkey) to choose your vehicle selection.", intervention_order: "Edit Alarm and Response Regulations", name: "Name", no_intervention_created: "You haven't created any Alarm and Response Regulation yet.", options: "Options", reset: "Reset the previous selection in the alarm window.", reset_hint: "If you have selected the vehicle in the dispatch window, you can use this button to reset it.", save: "Save", station: "Station", station_hint: "When a building is selected, only vehicles of the corresponding building will be selected.", successfully_created: "Alarm and Response Regulation successfully created.", successfully_deleted: "Alarm and Response Regulation deleted", successfully_updated: "Alarm and Response Regulations successfully updated.", text_color: "Text Color", vehicles: { ab_atemschutz_only: "SCBA-Module", ab_einsatzleitung_only: "Command-Module", ab_gefahrgut_only: "HazMat-Module", ab_oel_only: "Oil spill-Module", ab_ruest: "Tech/Rescue-Module", ab_ruest_rw: "", abl2wasser_only: "Hose-Supply-Module", ambulance: "Ambulance", ambulance_or_rapid_responder: "", any_traffic_car: "Traffic Car", arff: "ARFF Tender", battalion_chief_unit: "Support Vehicle", boot: "Boats (General)", crew_carrier: "Crew Carrier", dekon_p: "", division_chief_unit: "Mobile Command Vehicle", dlk_or_tm50: "", elw1_or_elw2: "Support Vehicle or Mobile Command Vehicle", elw2_or_ab_elw: "Rescue Pump or Rescue Support Unit and Fire engine", elw3: "", elw_airport: "", emergency_ambulance: "Ambulance or Air Ambulance", fire_truck: "Pumper or Light Tanker or Tanker", fireboat: "Fire Boat", fly_car: "MICA", fly_car_any: "ICP / ICS / EMS Rescue", fukw: "", fustw_or_police_motorcycle: "Police car or Police Motorcycle", fwk: "", gefkw: "", gkw: "Utility Truck", grtw: "Mass Casualty Unit", grtw0: "", grtw1: "", grukw: "", gw_atemschutz_only: "", gw_gefahrgut: "HAZMAT Unit", gw_gefahrgut_only: "", gw_hoehenrettung: "GW-Höhenrettung", gw_messtechnik: "GW-Messtechnik", gw_oel_only: "", gw_san: "", gw_taucher: "", gw_wasserrettung: "SES Vehicle", gw_werkfeuerwehr: "", gwl2wasser_only: "Hose Vehicle", hems: "Air Ambulance", hlf_only: "Rescue Pumper", hlf_or_rw_and_lf: "Rescue Pumper or Major Rescue Vehicle and Fire Engine", hondengeleider: "", k9: "K-9 Unit", kdow_lna: "", kdow_orgl: "Paramedic Supervisor", kdow_orgl_any: "Required Paramedic Supervisor", ktw_b: "", ktw_or_rtw: "", lebefkw: "Leichter Befehlskraftwagen (leBefKw)", lf_only: "Fire Trucks", long_distance_ambulance: "BLS ambulance", mask_service_unit: "BASU", mek_mtf: "", mek_zf: "", mtw: "MTW", mzb: "Rescue Boat", naw: "", naw_or_rtw_and_nef: "", naw_or_rtw_and_nef_or_rth: "", nef_only: "Ambulance", oil_unit: "GW-Öl", only_ab_dekon_p: "", only_dekon_p: "", ovd_p: "", police_car: "Patrol Car", police_horse: "Mounted Police", police_motorcycle: "Police Motorcycle", polizeihubschrauber: "Police helicopter", rescue_vehicle: "Rescue", rescue_vehicle_only: "Rescue", rescueboat: "Marine Rescue Boat", rettungstreppe: "", rth_only: "Air Ambulance", schlauchwagen: "Bulk Water Tanker", seg_elw: "", sek_mtf: "", sek_zf: "", swat: "TOG", swat_armored_vehicle: "TOG Armoured Vehicle", swat_suv: "TOG SUV", thw_anh_mzab: "", thw_anh_mzb: "", thw_anh_schlb: "", thw_brmg_r: "", thw_dle: "", thw_lkw: "", thw_lkw_7_lkr_19_tm: "", thw_mlw5: "", thw_mtw: "Mannschaftstransportwagen Technischer Zug (MTW-TZ - THW)", thw_mzkw: "Mehrzweckkraftwagen (MzKW)", thw_tauchkraftwagen: "Dive Team", thw_tauchkraftwagen_or_gw_taucher: "", tlf_only: "Tanker Truck", tm50: "", turboloescher: "", turntable_ladder: "Turntable Ladders", ulf: "", wasserwerfer: "", water_amount: "Litres of water", water_amount_tlf: "" } }, tutorial: { beginner: { building: { browser: { build_building: { add_name: 'Second give your new station a name! Make it recognisable and scalable! E.g. "Fire station #0001". When you are done, please click "Next"!', build_with_credits: "Now build your building with credits!", new_building: 'Click on "New building"!', select_building: "First choose the type of building you want to start with, we highly suggest you to start with fire services! In any case starting with a small station is advised!", select_position: "Move the blue marker where you want to build your first station!" }, pick_location: "First pick a location to start! Type the name of the location you want to start in into the search bar or find it on the map yourself! What about your hometown?", welcome: "Hello, welcome to MissionChief! I will teach you some lessons to help you start off your emergency services career well!" }, mobile: { build_building: { add_name: 'Second give your new station a name! Make it recognisable and scalable! E.g. "Fire station #0001". When you are done, please click "Next"!', build_with_credits: "Now build your building with credits!", new_building: 'First we will pick a location to start and build your first building!

    To do that click on "New building"!', select_building: "First choose the type of building you want to start with, we highly suggest you to start with fire services! In any case starting with a small station is advised!" }, welcome: "Hello, welcome to MissionChief! I will teach you some lessons to help you start off your emergency services career well!" } }, mission: { detail: { browser: { dispatch_menu: "This is the dispatch menu. From here you send your units to missions!", dispatch_menu_buttons: 'These are your two dispatch buttons! The first one: "Dispatch" sends the selected units to the mission. The second one does the same as the first one but goes to the next mission. Click the first button for now.', dispatch_menu_mission_general: "Here you can see the general mission information, that means the name, address, icon of the mission. The little man-icon appears and replaces a small star, on missions which you already participated in.", dispatch_menu_mission_progress: "Here you can see how much progress has been made to deal with this mission as well as the number of staff on site and the time left to deal with the mission!", dispatch_menu_mission_specific: "Here you can see more information about the mission, which units are responding to the call and which are already at the site", dispatch_menu_vehicle_list: "This is the list of your available vehicles. You select the vehicles here. Now select your vehicle by clicking on it!" }, mobile: { dispatch_menu: "This is the dispatch menu. From here you send your units to missions!", dispatch_menu_buttons: 'These are your two dispatch buttons! The first one: "Dispatch" sends the selected units to the mission. The second one does the same as the first one but goes to the next mission. Click the first button for now.', dispatch_menu_mission_general: "Here you can see the general mission information, that means the name, address, icon of the mission. The little man-icon appears and replaces a small star, on missions which you already participated in.", dispatch_menu_mission_progress: "Here you can see how much progress has been made to deal with this mission as well as the number of staff on site and the time left to deal with the mission!", dispatch_menu_mission_specific: "Here you can see more information about the mission, which units are responding to the call and which are already at the site", dispatch_menu_vehicle_list: "This is the list of your available vehicles. You select the vehicles here. Now select your vehicle by clicking on it!" } }, overview: { browser: { dispatch_button: 'Now we want to learn how to deal with incidents. Open the dispatch menu by clicking on a "dispatch"-button!', first_mission: "Great, you've built your first building! See, the first missions were reported to you!" }, mobile: { dispatch_button: 'Now we want to learn how to deal with incidents. Open the dispatch menu by clicking on a "dispatch"-button!', first_mission: "Great, you've built your first building! See, the first missions were reported to you!" } } }, rewards: { browser: { general: "Great, you are on your way to becoming an awesome Missionchief! Here are %{coins} Coins. to help you get started!
    Your MissionChief-team" }, mobile: { general: "Great, you are on your way to becoming an awesome Missionchief! Here are %{coins} Coins. to help you get started!
    Your MissionChief-team" } }, tips: { browser: { contact: "If you have questions you can consult the in game FAQ or visit the game forums or our facebook page!", general: "As a next step we would recommend you to build a dispatch center and then as soon as possible new stations, since the max number of missions equals the highest number of any of stations of a different type (police, fire, ambulance) plus 1; e.g. 5 fire and 3 ambulance stations = 6 missions.", join_alliance: "Also, joining an alliance would help you greatly, especially in the beginning, so that's recommended, too.", summary: "These are the basics of MissionChief! Accomplish missions, get credits, buy more units, repeat. Have fun playing!
    Your MissionChief-team" }, mobile: { contact: "If you have questions you can consult the in game FAQ or visit the game forums or our facebook page!", general: "As a next step we would recommend you to build a dispatch center and then as soon as possible new stations, since the max number of missions equals the highest number of any of stations of a different type (police, fire, ambulance) plus 1; e.g. 5 fire and 3 ambulance stations = 6 missions.", join_alliance: "Also, joining an alliance would help you greatly, especially in the beginning, so that's recommended, too.", summary: "These are the basics of MissionChief! Accomplish missions, get credits, buy more units, repeat. Have fun playing!
    Your MissionChief-team" } } }, commons: { collect: "Collect", "continue": "No", end: "End", next: "Next", prev: "Prev", skip: "Yes", skip_hint: "Do you really want to cancel the tutorial? It can't be accessed at any later time. You will not be eligible for the tutorial completion reward." }, rewards: { log: "Reward for finishing the tutorial." } }, policechief: { tutorial: { beginner: { building: { browser: { build_building: { add_name: 'Second give your new station a name! Make it recognisable and scalable! E.g. "Police station #0001". When you are done, please click "Next"!', select_building: "First choose the type of building you want to start with, we highly suggest you to start with a police station! In any case starting with a small station is advised!" }, welcome: "Hello, welcome to Police MissionChief! I will teach you some lessons to help you start off your emergency services career well!" }, mobile: { build_building: { add_name: 'Second give your new station a name! Make it recognisable and scalable! E.g. "Police station #0001". When you are done, please click "Next"!', select_building: "First choose the type of building you want to start with, we highly suggest you to start with a police station! In any case starting with a small station is advised!" }, welcome: "Hello, welcome to Police MissionChief! I will teach you some lessons to help you start off your emergency services career well!" } }, rewards: { browser: { general: "Great, you are on your way to becoming an awesome Police MissionChief! Here are %{coins} Coins. to help you get started!
    Your Police MissionChief-team" }, mobile: { general: "Great, you are on your way to becoming an awesome Police MissionChief! Here are %{coins} Coins. to help you get started!
    Your Police MissionChief-team" } }, tips: { browser: { summary: "These are the basics of Police MissionChief! Accomplish missions, get credits, buy more units, repeat. Have fun playing!
    Your Police MissionChief-team" }, mobile: { summary: "These are the basics of Police MissionChief! Accomplish missions, get credits, buy more units, repeat. Have fun playing!
    Your Police MissionChief-team" } } } } }, number: { format: { delimiter: ",", precision: 3, separator: ".", significant: !1, strip_insignificant_zeros: !1 } } }, I18n.translations.sv_SE = { common: { add: "Lägg till", back: "Tillbaka", cancel: "Avbryt", change_saved: "Ändringar sparade", coins_spend: "Vill du verkligen spendera dina mynt?", congratulations: "Grattis!", content: "Innehåll", credits: "Krediter", "delete": "Ta bort", details: "Detaljer", edit: "Redigera", error: "Fel", is_offline: "%{user} är offline.", is_offline_long: "Länge: %{user} är offline", is_offline_with_duration: "%{user} är offline: %{duration}", is_online: "%{user} är online.", loading: "Laddar …", name: "Namn", none: "Ingen", of: "av", off: "Av", on: "På", save: "Spara", search: "Sök", show: "Visa", user_not_found: "Användaren kunde inte hittas", wrong_key: "Fel kod" }, javascript: { alarm: "Larmcentral", arrival: "Ankomst", backalarm: "Avbryt", coins: "Mynt", credits: "Krediter", days: "dagar", few_seconds: "om några sekunder", finish_in: "Avsluta om:", hours: "tim", location_not_found: "Kunde inte hittas", messages: "Meddelanden", minutes: "min", missed_vehicle: "Det saknar:", mission_start_in: "Börjar om:", "new": "Ny", not_found_map: "Fordonet kunde inte hittas på kartan", now: "Nu", patient: "Patient", patient_untouched: "Obehandlade patienter", poi_delete: "Vill du verkligen ta bort intressepunkten %{caption}?", reload: "Ladda om", sale: "Sale", sale_ended: "Rean är slut", secounds: "sek", sicherheitswache_error: "Vakten %{caption} lyckades inte eftersom kriterierna inte uppfyllts.", sicherheitswache_success: "Vakten %{caption} har lyckats. Få %{credits} krediter.", start_in: "Åker om: ", start_username: "Startad av:", time_left: "Tid kvar:", to_building: "Visa byggnad", to_mission: "Visa uppdrag", understand: "Acceptera", user_not_found: "Spelaren kunde inte hittas.", vehicles_not_visible: "Fordon syns inte. ", water_approaching: "Påväg: %{amount} liter", water_missing: "Saknas: %{amount} liter", water_on_site: "På plats: %{amount} liter", water_selected: "Valt: %{amount} liter" }, map: { alliance: "Allians", alliance_chat: "Chatt", alliance_chat_banned: "Du är bannlyst från allianschatten.", alliance_chat_banned_admin: "Bannad av:", alliance_chat_banned_timeleft: "Tid kvar:", alliance_chat_radio_off: "Alliansradio: Av", alliance_chat_radio_on: "Alliansradio: På", alliance_event: "Evenemang", alliance_missions: "Alliansuppdrag", alliance_missions_event: "Evenemang", ambulance: "Ambulans", anti_abuse_active_link: "Klicka här för mer information.", anti_abuse_active_text: "Uppdrag kan dyka upp på upp till 100 km avstånd, eftersom det ligger för många stationer av samma typ nära varandra.", attended: "Besvarade", cancel_alliance_event: "Avbryt alliansevenemanget", cancel_alliance_event_confirm: "Vill du verkligen avbryta alliansevenemanget?", chat_history: "Chatthistorik", congratulations: "Grattis! Nu kan du befordras.", create_alliance_event: "Starta evenemang", create_alliance_operation: "Skapa ett storskaligt uppdrag", emergency: "Akut", finishing: "I slutfas", join_alliance_infos: "Om du är med i en allians kan andra spelare ge dig uppdrag.", map: "Karta", map_filters: { all_buildings: "Byggnader", all_missions: "Uppdrag", alliance_buildings: "Alliansbyggnader", alliance_members: "Medlemmar", alliance_missions: "Delade av alliansen", ambulance_station_missions: "Ambulansstation", ambulance_station_small_missions: "Ambulansstation (liten)", building_complex: "Byggnadskomplex", buildings_section: "Stationer", clinic_missions: "Klinik", dispatch_center_missions: "Larmcentral", fire_school_missions: "Räddningsskola", firehouse_missions: "Brandstation", firehouse_small_missions: "Brandstation (liten)", hospital_missions: "Sjukhus", map_filters: "Intressepunkter", mission_positions: "Intressepunkter", mission_positions_section: "Intressepunkter", missions_section: "Uppdrag", police_copter_station_missions: "Polisflyg", police_school_missions: "Polisskola", police_small_missions: "Polisstation (liten)", police_special_forces: "Insatsstyrka", police_station_missions: "Polisstation", prison_missions: "Fängelse", rapid_deployment_group: "Snabb installationsgrupp (SEG)", rescue_copter_station_missions: "Ambulanshelikopterstation", riot_police: "Kravallpolis", riot_police_missions: "Kravallpolis", staging_area_missions: "Uppsamlingsområde", technical_aid_organization: "MSB", technical_aid_organization_school: "Träningscentrum", user_buildings: "Mina byggnader", user_missions: "Mina uppdrag", water_watch: "Vattenräddning", water_watch_missions: "Vattenräddning" }, message: "Meddelande", mission: "Uppdrag", missions_filtered_out: "Vissa uppdrag kan filtreras bort. Kontrollera dina kartfilter.", no_alliance_chat_impossible: "Du är inte med i en allians.", no_alliance_missions: "Det finns inga alliansuppdrag just nu.", no_ambulance_missions: "Det finns ingen patienttransport. Patienttransporter kan ske först när du skaffat en lättvårdsambulans eller ett sjukhus.", no_emergency_missions: "Det finns inga akutuppdrag just nu. Ett akutuppdrag kan inträffa efter att du gjort din första station.", no_radio_messages: "Du har inga radiomeddelanden.", radio_messages: "Radio", restore_map: "Återställ karta", server_warning: "Vid midnatt sker serverunderhåll. Arbetet räknas pågå i cirka 6 timmar.", show_informations: "Grönt = Uppdragen visas i listan. Rött = Uppdragen visas inte.", sicherheitswache: "Planerade uppdrag", transport: "Transport", unattended: "Obesvarade" }, fms: { going: "På uppdrag", not_ready: "Inte i tjänst", on_destination: "På transportmålet", on_place: "På platsen", patient_transported: "Transporterar patient", prisoner_transported: "Transporterar fånge", ready_home: "Tillgänglig på stationen", ready_traveling: "Tillgänglig", talking_wish: "Transportbegäran", waiting_for_vehicle: "Inväntar fordon att bärga" }, intervention_order: { automatic_text_color: "Automatisk textfärg", back: "Tillbaka", category: "Kategori", colour: "Färg", column: "Kolumn", column_number: "Kolumnnummer", column_number_hint: "Om du anger ett kolumnnummer kommer utryckningsinformationen visas i den kolumnen på larmsidan.", create_intervention_order: "Skapa ett nytt utryckningsförfarande", "delete": "Ta bort", delete_all: "Ta bort utryckningsförfarande", delete_all_confirm: "Vill du verkligen ta bort hela utryckningsförfarandet? Befintliga exporterade inlägg försvinner också!", description: "Namn", edit: "Redigera", "export": { "export": "Exportera", "import": "Importera", import_done: "De valda inläggen har importerats och skrivits in i ditt utryckningsförfarande.", saved: "Exporterade utryckningsförfaranden", saved_text: "Ditt utryckningsförfarande har förberetts för exportering. Med länken kan en annan spelare importera utryckningsförfarandet. Om du ändrar utryckningsförfarandet kommer exporten också att ändras." }, hotkey_hint: "Välj en snabbtangent för det här fordonsvalet. Tryck i uppdragsfönstret: Alt + snabbtangenten (eller i Firefox: Alt + Skift + snabbtangenten, eller i Mac OS: Cmd + Alt + snabbtangenten) för att välja fordon.", intervention_order: "Ändra utryckningsförfarande", name: "Namn", no_intervention_created: "Du har inte skapat något utryckningsförfarande än.", options: "Alternativ", reset: "Återställ förra valet i larmfönstret.", reset_hint: "Om du har valt fordonet i utsändningsfönstret kan du använda den här knappen för att återställa det.", save: "Spara", station: "Station", station_hint: "När du valt en byggnad kommer bara fordon som motsvarar byggnaden att väljas.", successfully_created: "Utryckningsförfarandet har skapats.", successfully_deleted: "Utryckningsförfarandet har tagits bort", successfully_updated: "Utryckningsförfarandet har uppdaterats.", text_color: "Textfärg", vehicles: { ab_atemschutz_only: "Andningsskydd-modul", ab_einsatzleitung_only: "Kommando-modul", ab_gefahrgut_only: "Farligt gods-modul", ab_oel_only: "Oljeläcka-modul", ab_ruest: "Teknik/räddning-modul", abl2wasser_only: "Slang-modul", ambulance: "Ambulans", arff: "Flygplansbrandbil", battalion_chief_unit: "Brandbefäl", boot: "Båtar (allmänt)", brush_truck: "Skogsbrandsfordon", brush_truck_1: "Terrängbil", brush_truck_2: "Bandvagn", brush_truck_3: "ATV", coresponder: "FIP", division_chief_unit: "Räddningsledning", elw1_or_elw2: "Brandbefäl eller Ledningsfordon", elw2_or_ab_elw: "Räddningspump eller stödenhet och brandbil", emergency_ambulance: "Ambulans eller Helikopter", fire_aviation: "Brandflygsenhet", fire_truck: "Släckbilar", fireboat: "Stor brandbåt", fly_car: "Akutläkarbil", fly_car_any: "Jourläkare / Akutläkarbil / FIP / IVPA / MC-Ambulans", fustw_or_police_motorcycle: "Radiobil eller Polismotorcykel", gkw: "Jeep", grtw: "Ambulansbuss", gw_gefahrgut: "Kemskyddsenhet", gw_hoehenrettung: "Repräddning", gw_messtechnik: "Mätteknik", gw_taucher: "Dykbil", gw_wasserrettung: "Vattenräddning", gwl2wasser_only: "Slangfordon", hems: "Ambulanshelikopter", hlf_only: "Räddningsbil", hlf_or_rw_and_lf: "Räddningsbil eller tyngre räddningsbil och brandbil", k9: "Hundenhet", kdow_orgl: "Ledningsfordon", kdow_orgl_any: "Ledningsfordon, ambulans", ktw_or_rtw: "Lättvårdsambulans eller Ambulans", lebefkw: "Lätt kommandofordon", lf_only: "Släckbilar", long_distance_ambulance: "Lättvårdsambulans", mask_service_unit: "Mobil luftenhet", mtw: "MTW", mzb: "Flerfunktionsbåt", nef_only: "Ambulans", oil_unit: "Oljeenhet", police_car: "Radiobil", police_horse: "Polishästar", police_motorcycle: "Polismotorcykel", polizeihubschrauber: "Polishelikopter", rescue_vehicle: "Lastväxlare", rescue_vehicle_only: "Lastväxlare", rescueboat: "Stor räddningsbåt", rth_only: "Ambulanshelikopter", schlauchwagen: "Tankbil", swat: "Insatsfordon", swat_armored_vehicle: "Bepansrat insatsfordon", swat_suv: "Insatsfordon", thw_mtw: "Grupptransportsbil", thw_mzkw: "Minibuss", thw_tauchkraftwagen: "Dykgrupp", tlf_only: "Tankbil", turntable_ladder: "Stegbilar", water_amount: "Liter av vatten" } }, tutorial: { beginner: { building: { browser: { build_building: { add_name: 'Efter det får du ge stationen ett namn. Gör det lätt att känna igen, och försök att hitta på något du kan bygga vidare på. Exempelvis "Brandstation nr 0001". Klicka på Nästa när du är klar.', build_with_credits: "Nu får du bygga byggnaden för krediter!", new_building: "Klicka på Ny byggnad.", select_building: "Du får välja vad för sorts byggnad du vill börja med. Vi rekommenderar att börja med en brandstation! Oavsett vad du väljer är det bäst att börja med en liten station.", select_position: "Flytta den blå markören till platsen där du vill bygga din första central." }, pick_location: "Börja med att välja en plats! Skriv in namnet på platsen där du vill börja i sökfältet, eller leta upp den på kartan. Kanske din hemstad?", welcome: "Hej och välkommen till Larmcentralen-spelet! Jag ska lära dig några saker så du får en flygande start på nödutryckningskarriären." }, mobile: { build_building: { add_name: 'Efter det får du ge stationen ett namn. Gör det lätt att känna igen, och försök att hitta på något du kan bygga vidare på. Exempelvis "Brandstation nr 0001". Klicka på Nästa när du är klar.', build_with_credits: "Nu får du bygga byggnaden för krediter!", new_building: "Först väljer vi en plats där du kan bygga din första byggnad.

    För att göra det klickar du på Ny byggnad.", select_building: "Du får välja vad för sorts byggnad du vill börja med. Vi rekommenderar att börja med en brandstation! Oavsett vad du väljer är det bäst att börja med en liten station." }, welcome: "Hej och välkommen till Larmcentralen-spelet! Jag ska lära dig några saker så du får en flygande start på nödutryckningskarriären." } }, mission: { detail: { browser: { dispatch_menu: "Det här är larmcentralsmenyn. Härifrån kan du skicka ut fordon på uppdrag!", dispatch_menu_buttons: "De här två knapparna sätter igång uppdraget. Den första, Skicka ut, skickar ut de valda fordonen till uppdraget. Den andra gör samma sak, men går sedan vidare till nästa uppdrag. Du kan trycka på den första.", dispatch_menu_mission_general: "Här ser du allmän information om uppdraget: namn, adress och uppdragsikon. Ikonen med den lilla mannen dyker upp och ersätter stjärnan i uppdrag du redan deltagit i.", dispatch_menu_mission_progress: "Här kan du se dina framsteg i uppdraget, hur mycket personal du har på plats och hur lång tid som återstår!", dispatch_menu_mission_specific: "Här ser du mer information om uppdraget, vilka fordon som besvarar anropet och vilka som redan befinner sig på platsen.", dispatch_menu_vehicle_list: "I den här listan ser du dina tillgängliga fordon. Det är härifrån du väljer dina fordon. Klicka på ett för att välja det!" }, mobile: { dispatch_menu: "Det här är larmcentralsmenyn. Härifrån kan du skicka ut fordon på uppdrag!", dispatch_menu_buttons: "De här två knapparna sätter igång uppdraget. Den första, Skicka ut, skickar ut de valda fordonen till uppdraget. Den andra gör samma sak, men går sedan vidare till nästa uppdrag. Du kan trycka på den första.", dispatch_menu_mission_general: "Här ser du allmän information om uppdraget: namn, adress och uppdragsikon. Ikonen med den lilla mannen dyker upp och ersätter stjärnan i uppdrag du redan deltagit i.", dispatch_menu_mission_progress: "Här kan du se dina framsteg i uppdraget, hur mycket personal du har på plats och hur lång tid som återstår!", dispatch_menu_mission_specific: "Här ser du mer information om uppdraget, vilka fordon som besvarar anropet och vilka som redan befinner sig på platsen.", dispatch_menu_vehicle_list: "I den här listan ser du dina tillgängliga fordon. Det är härifrån du väljer dina fordon. Klicka på ett för att välja det!" } }, overview: { browser: { dispatch_button: "Nu ska vi lära oss hur man tar hand om rapporter. Öppna larmcentralsmenyn genom att trycka på Larmcentral.", first_mission: "Toppen, du har byggt din första byggnad! Titta, du har fått in dina första uppdrag!" }, mobile: { dispatch_button: "Nu ska vi lära oss hur man tar hand om rapporter. Öppna larmcentralsmenyn genom att trycka på Larmcentral.", first_mission: "Toppen, du har byggt din första byggnad! Titta, du har fått in dina första uppdrag!" } } }, rewards: { browser: { general: "Toppen, du börjar få full koll på hur man sköter en larmcentral! Här får du %{coins} mynt att komma igång med!
    Teamet på Larmcentralen-spelet" }, mobile: { general: "Toppen, du börjar få full koll på hur man sköter en larmcentral! Här får du %{coins} mynt att komma igång med!
    Teamet på Larmcentralen-spelet" } }, tips: { browser: { contact: "Om du har frågor kan du vända dig till avsnittet Frågor och svar i spelet, spelets forum eller vår Facebook-sida!", general: "Efter det här rekommenderar jag att du bygger en larmcentral följt av nya stationer, för det maximala antalet uppdrag är lika med det högsta antalet stationer av samma typ (polis-, brand- eller ambulansstation) plus 1. Om du har 5 brandstationer och 3 ambulansstationer innebär det alltså att du kan ha 6 uppdrag.", join_alliance: "Det kan även ge stora fördelar att gå med i en allians, särskilt tidigt i spelet, så det rekommenderas också.", summary: "Det här är grunderna i Larmcentralen-spelet! Klara uppdrag, tjäna krediter, köp fler fordon, upprepa. Ha så kul!
    Teamet på Larmcentralen-spelet" }, mobile: { contact: "Om du har frågor kan du vända dig till avsnittet Frågor och svar i spelet, spelets forum eller vår Facebook-sida!", general: "Efter det här rekommenderar jag att du bygger en larmcentral följt av nya stationer, för det maximala antalet uppdrag är lika med det högsta antalet stationer av samma typ (polis-, brand- eller ambulansstation) plus 1. Om du har 5 brandstationer och 3 ambulansstationer innebär det alltså att du kan ha 6 uppdrag.", join_alliance: "Det kan även ge stora fördelar att gå med i en allians, särskilt tidigt i spelet, så det rekommenderas också.", summary: "Det här är grunderna i Larmcentralen-spelet! Klara uppdrag, tjäna krediter, köp fler fordon, upprepa. Ha så kul!
    Teamet på Larmcentralen-spelet" } } }, commons: { collect: "Hämta", "continue": "Nej", end: "Avsluta", next: "Nästa", prev: "Föregående", skip: "Ja", skip_hint: "Vill du verkligen avbryta handledningen? Du kommer inte åt den senare. I så fall får du ingen belöning för att ha klarat av handledningen." }, rewards: { log: "Belöning för att ha klarat handledningen." } }, policechief: { tutorial: { beginner: { building: { browser: { build_building: { add_name: 'Efter det får du ge stationen ett namn. Gör det lätt att känna igen, och försök att hitta på något du kan bygga vidare på. Exempelvis "Polisstation nr 0001". Klicka på Nästa när du är klar.', select_building: "Du får välja vad för sorts byggnad du vill börja med. Vi rekommenderar att börja med en polisstation! Oavsett vad du väljer är det bäst att börja med en liten station." }, welcome: "Hej och välkommen till Larmcentralen-spelet Polis! Jag ska lära dig några saker så du får en flygande start på nödutryckningskarriären." }, mobile: { build_building: { add_name: 'Efter det får du ge stationen ett namn. Gör det lätt att känna igen, och försök att hitta på något du kan bygga vidare på. Exempelvis "Polisstation nr 0001". Klicka på Nästa när du är klar.', select_building: "Du får välja vad för sorts byggnad du vill börja med. Vi rekommenderar att börja med en polisstation! Oavsett vad du väljer är det bäst att börja med en liten station." }, welcome: "Hej och välkommen till Larmcentralen-spelet Polis! Jag ska lära dig några saker så du får en flygande start på nödutryckningskarriären." } }, rewards: { browser: { general: "Toppen, du börjar få full koll på hur man sköter en larmcentral! Här får du %{coins} mynt att komma igång med!
    Teamet på Larmcentralen-spelet Polis" }, mobile: { general: "Toppen, du börjar få full koll på hur man sköter en larmcentral! Här får du %{coins} mynt att komma igång med!
    Teamet på Larmcentralen-spelet Polis" } }, tips: { browser: { summary: "Det här är grunderna i Larmcentralen-spelet Polis! Klara uppdrag, tjäna krediter, köp fler fordon, upprepa. Ha så kul!
    Teamet på Larmcentralen-spelet Polis" }, mobile: { summary: "Det här är grunderna i Larmcentralen-spelet Polis! Klara uppdrag, tjäna krediter, köp fler fordon, upprepa. Ha så kul!
    Teamet på Larmcentralen-spelet Polis" } } } } }, number: { format: { delimiter: " ", precision: 3, separator: ",", significant: !1, strip_insignificant_zeros: !1 } } }, I18n.translations.pl_PL = { common: { add: "Dodaj", back: "Wstecz", cancel: "Anuluj", change_saved: "Zapisano zmiany", coins_spend: "Czy na pewno chcesz wydać monety?", congratulations: "Gratulacje!", content: "Zawartość", credits: "Kredyty", "delete": "Usuń", details: "Szczegóły", edit: "Edytuj", error: "Błąd", is_offline: "%{user} jest offline.", is_offline_long: "Od dawna: %{user} jest offline", is_offline_with_duration: "%{user} jest offline: %{duration}", is_online: "%{user} jest online.", loading: "Wczytywanie…", name: "Nazwa", none: "Brak", of: "z", off: "Wył.", on: "Wł.", save: "Zapisz", search: "Wyszukaj", show: "Pokaż", user_not_found: "Nie znaleziono użytkownika", wrong_key: "Nieprawidłowy klawisz" }, javascript: { alarm: "Wyślij", arrival: "Przybycie", backalarm: "Anuluj", coins: "Monety", credits: "Kredyty", days: "dni", few_seconds: "za kilka sekund", finish_in: "Koniec za:", foam_approaching: "W drodze: %{amount} l.", foam_missing: "Potrzeba: %{amount} l.", foam_on_site: "Na miejscu: %{amount} l.", foam_selected: "Wybrano: %{amount} l.", hours: "Godz.", location_not_found: "Nie znaleziono", messages: "Wiadomości", minutes: "min", missed_vehicle: "Brakuje:", mission_start_in: "Początek za:", "new": "Nowy", not_found_map: "Nie znaleziono pojazdu na mapie", now: "Teraz", patient: "Pacjent", patient_untouched: "Pacjenci bez opieki", poi_delete: "Czy na pewno chcesz usunąć UM: %{caption}?", reload: "Odśwież", sale: "Wyprzedaż", sale_ended: "Promocja zakończona", secounds: "s", sicherheitswache_error: "Zabezpieczenie „%{caption}” nie było skuteczne, ponieważ nie spełniono wszystkich kryteriów.", sicherheitswache_success: "Zabezpieczenie „%{caption}” zakończyło się. Otrzymałeś %{credits} kredytów(-y).", start_in: "Początek za: ", start_username: "Inicjator:", time_left: "Pozostało czasu:", to_building: "Pokaż budynek", to_mission: "Pokaż misję", understand: "Potwierdź", user_not_found: "Nie znaleziono gracza.", vehicles_not_visible: "Pojazdy nie są widoczne. ", water_approaching: "W drodze: %{amount} l.", water_missing: "Potrzebna: %{amount} l.", water_on_site: "Na miejscu: %{amount} l.", water_selected: "Wybrany: %{amount} l." }, map: { alliance: "Sojusz", alliance_chat: "Czat", alliance_chat_banned: "Obecnie jest na ciebie nałożona blokada czatu sojuszu.", alliance_chat_banned_admin: "Zablokowano przez:", alliance_chat_banned_timeleft: "Pozostały czas:", alliance_chat_radio_off: "Radio sojuszu: Wył.", alliance_chat_radio_on: "Radio sojuszu: Wł.", alliance_event: "Wydarzenie", alliance_missions: "Misje sojuszu", alliance_missions_event: "Wydarzenie", ambulance: "Ambulans", anti_abuse_active_link: "Kliknij tutaj, żeby dowiedzieć się więcej.", anti_abuse_active_text: "Misje będą się pojawiać na rozszerzonym obszarze do 100 km, ponieważ zbyt wiele posterunków tego samego rodzaju jest umieszczonych zbyt blisko siebie.", attended: "Podjęte", cancel_alliance_event: "Anuluj wydarzenie sojuszu", cancel_alliance_event_confirm: "Czy na pewno chcesz anulować wydarzenie sojuszu?", challenges: "", chat_history: "Historia czatu", congratulations: "Gratulacje! Możesz teraz otrzymać awans.", create_alliance_event: "Rozpocznij wydarzenie sojuszu", create_alliance_operation: "Utwórz misję sojuszu na dużą skalę", emergency: "Sytuacja wyjątkowa", finishing: "Realizowane", join_alliance_infos: "Jeśli należysz do sojuszu, inni gracze mogą ci wyznaczać misje bez ograniczeń.", map: "Mapa", map_filters: { all_buildings: "Budynki", all_missions: "Misje", alliance_buildings: "Budynki sojuszu", alliance_members: "Członkowie", alliance_missions: "Dzielone przez sojusz", ambulance_station_missions: "Stacja Pogotowia Ratunkowego", ambulance_station_small_missions: "Podstacja Pogotowia Ratunkowego", building_complex: "Kompleks budynków", buildings_section: "Posterunki", clinic_missions: "Klinika", dispatch_center_missions: "Centrum Powiadamiania Ratunkowego", fire_school_missions: "Szkoła Pożarnicza", firehouse_missions: "Jednostka Ratowniczo-Gaśnicza", firehouse_small_missions: "Remiza", hospital_missions: "Szpital", map_filters: "Użyteczne Miejsca (UM)", mission_positions: "Użyteczne Miejsca (UM)", mission_positions_section: "UM", missions_section: "Misje", police_copter_station_missions: "Lotnictwo policyjne", police_school_missions: "Szkoła Policyjna", police_small_missions: "Posterunek Policji", police_special_forces: "Jednostki specjalne policji", police_station_missions: "Komenda Policji", prison_missions: "Zakład Karny", rapid_deployment_group: "Grupa szybkiego montażu (SEG)", rescue_copter_station_missions: "Baza HEMS", riot_police: "Oddziały Prewencji", riot_police_missions: "Oddziały prewencji", staging_area_missions: "Miejsce koncentracji Sił i Środków", technical_aid_organization: "THW", technical_aid_organization_school: "THW Bundesschule", user_buildings: "Moje budynki", user_missions: "Moje misje", water_watch: "Ratownictwo wodne", water_watch_missions: "Ratownictwo wodne" }, message: "Wiadomość", mission: "Misja", missions_filtered_out: "Niektóre misje mogą zostać odfiltrowane. Proszę sprawdzić filtry map.", no_alliance_chat_impossible: "Nie należysz do sojuszu.", no_alliance_missions: "W tej chwili nie ma misji sojuszu.", no_ambulance_missions: "Brak misji dla ambulansów. Misje dla ambulansów pojawiają się tylko, gdy masz ambulans i szpital.", no_emergency_missions: "Brak misji z sytuacją wyjątkową. Misja z sytuacją wyjątkową może się pojawić, gdy wybudujesz pierwszy posterunek.", no_radio_messages: "Nie otrzymano wiadomości drogą radiową.", radio_messages: "Radio", restore_map: "Przywróć mapę", server_warning: "Przewidujemy przerwę techniczną o północy. Przewidywany czas w okolicach 6 godzin.", show_informations: "Zielony = misje są pokazywane. Czerwony = misje nie są pokazywane.", sicherheitswache: "Planowane misje", transport: "Transport", unattended: "Niepodjęte" }, fms: { going: "Reagowanie", not_ready: "Nieczynny", on_destination: "W miejscu docelowym transportu", on_place: "Na miejscu", patient_transported: "Transportuje pacjenta", prisoner_transported: "Transportuje więźnia", ready_home: "Dostępne na posterunku", ready_traveling: "Dostępne", talking_wish: "Żądanie transportu", waiting_for_vehicle: "Czeka na pojazd do holowania" }, intervention_order: { automatic_text_color: "Automatyczny kolor tekstu", back: "Wstecz", battalion_chief_unit: "Samochód Oficera Operacyjnego lub SLRr", category: "Kategoria", colour: "Kolor", column: "Kolumna", column_number: "Numer kolumny", column_number_hint: "Jeśli podano numer kolumny, zasada reagowania będzie wyświetlana w analogicznej kolumnie na stronie wezwania.", create_intervention_order: "Utwórz nową zasadę reagowania", "delete": "Usuń", delete_all: "Usuń wszystkie zasady reagowania", delete_all_confirm: "Czy na pewno chcesz usunąć całą zasadę reagowania? Istniejące wyeksportowane wersje przestały być dostępne!", description: "Nazwa", edit: "Edytuj", "export": { "export": "Eksportuj", "import": "Importuj", import_done: "Wybrane wpisy zostały zaimportowane i wprowadzone do twojej zasady reagowania.", saved: "Wyeksportowane zasady reagowania", saved_text: "Zasada reagowania została przygotowana do eksportu. Za pomocą tego linku możesz zaimportować zasadę reagowania. Jeśli w międzyczasie zmienisz zasadę reagowania, zostanie ona automatycznie uwzględniona w eksporcie." }, hotkey_hint: "Wybierz skrót dla tego zestawu pojazdów. Naciśnij w oknie misji: ALT + skrót (lub w przeglądarce Firefox: ALT + SHIFT + skrót lub w systemie macOS: Ctrl + Alt + skrót), aby wybrać zestaw pojazdów.", intervention_order: "Edytuj zasady reagowania", name: "Nazwa", no_intervention_created: "Nie utworzono żadnych zasad reagowania.", options: "Opcje", reset: "Wyczyść poprzedni wybór w oknie wezwania.", reset_hint: "Jeśli w oknie wezwania został wybrany pojazd, możesz użyć tego przycisku, aby zresetować wybór.", save: "Zapisz", station: "Posterunek", station_hint: "Po wybraniu budynku zajęte zostaną tylko pojazdy, które są do niego przypisane.", successfully_created: "Utworzono zasadę reagowania.", successfully_deleted: "Usunięto zasadę reagowania", successfully_updated: "Zaktualizowano zasadę reagowania.", text_color: "Kolor tekstu", vehicles: { ab_atemschutz_only: "Moduł aparatu oddechowego", ab_einsatzleitung_only: "Moduł dowodzenia", ab_gefahrgut_only: "Moduł Rchem", ab_oel_only: "Moduł do sprzątania oleju", ab_ruest: "Moduł ratownictwa technicznego", ab_ruest_rw: "", abl2wasser_only: "Moduł wężowy", ambulance: "Ambulans P lub S", ambulance_or_rapid_responder: "", any_traffic_car: "Radiowóz WRD", arff: "SP LSP (samochód pożarniczy lotniskowej straży pożarnej)", battalion_chief_unit: "SLOp lub SLRr", boot: "Łodzie (ogólne)", dekon_p: "", division_chief_unit: "Samochód dowodzenia i łączności", dlk_or_tm50: "", elw1_or_elw2: "SLOp lub Samochód dowodzenia i łączności", elw2_or_ab_elw: "", elw3: "", elw_airport: "", emergency_ambulance: "Ambulans lub śmigłowiec LPR", fire_truck: "Samochody pożarnicze", fireboat: "Duża łódź strażacka", flood_equipment: "Sprzęt przeciwpowodziowy", fly_car: "Samochód szefa brygady", fly_car_any: "Pomoc medyczna", foam: "Samochód z zbiornikiem na pianę", foam_amount: "Litry piany gaśniczej", fukw: "", fustw_or_police_motorcycle: "Radiowóz OPI lub Motocykl Policyjny", fwk: "Dźwig SP", gefkw: "", gkw: "Samochód kwatermistrzowski", grtw: "Jednostka do zdarzeń masowych", grtw0: "", grtw1: "", grukw: "", gw_atemschutz_only: "", gw_gefahrgut: "Ratownictwo chemiczne", gw_gefahrgut_only: "", gw_hoehenrettung: "SRWys", gw_messtechnik: "GW-Messtechnik", gw_oel_only: "", gw_san: "", gw_taucher: "Samochód SLRw", gw_wasserrettung: "Ratownictwo wodne", gw_werkfeuerwehr: "", gwl2wasser_only: "Samochód wężowy", hems: "Śmigłowiec LPR", hint: { foam_amount: "Suma piany w litrach. Przykład: jeśli wpiszesz 10000 - wtedy zostanie wybranych tyle pojazdów, których suma piany gaśniczej wyniesie 10000 l.", water_amount: "Suma wody w litrach. Przykład: jeśli wpiszesz 10000 - wtedy zostanie wybranych tyle pojazdów, których suma wody gaśniczej wyniesie 10000 l." }, hlf_only: "GBARt", hlf_or_rw_and_lf: "GBARt lub samochód ratownictwa technicznego oraz samochód gaśniczy", hondengeleider: "", hose_trucks: "Pojazd z wężami", k9: "Jednostka z psami", kdow_lna: "", kdow_orgl: "Szef służb ratownictwa medycznego", ktw_b: "", ktw_or_rtw: "Ambulans P, S lub T", lebefkw: "Leichter Befehlskraftwagen (leBefKw)", lf_only: "Samochody pożarnicze", long_distance_ambulance: "Ambulans T", mask_service_unit: "SPGaz", mek_mtf: "", mek_zf: "", mtw: "MTW", mzb: "Łódź wielozadaniowa", naw: "", naw_or_rtw_and_nef: "", naw_or_rtw_and_nef_or_rth: "", nef_only: "Ambulans", oil_unit: "Jednostka do sprzątania oleju", only_ab_dekon_p: "", only_dekon_p: "", ovd_p: "", police_car: "Radiowóz OPI", police_motorcycle: "Motocykl Policyjny", polizeihubschrauber: "Helikopter Policyjny", rescue_vehicle: "Samochód Ratownictwa Technicznego", rescue_vehicle_only: "Samochód Ratownictwa Technicznego", rescueboat: "Duża łódź ratownicza", rettungstreppe: "", rth_only: "Śmigłowiec", schlauchwagen: "Cysterna z wodą", seg_elw: "", sek_mtf: "", sek_zf: "", swat: "SPKP", swat_armored_vehicle: "Opanerzony Pojazd SPKP", swat_suv: "SUV SPKP", thw_anh_mzab: "", thw_anh_mzb: "", thw_anh_schlb: "", thw_brmg_r: "", thw_dle: "", thw_lkw: "", thw_lkw_7_lkr_19_tm: "", thw_mlw5: "", thw_mtw: "Mannschaftstransportwagen Technischer Zug (MTW-TZ - THW)", thw_mzkw: "Mehrzweckkraftwagen (MzKW)", thw_tauchkraftwagen: "Zespół nurków", thw_tauchkraftwagen_or_gw_taucher: "", tlf_only: "Samochód dla ratownictwa wodno-nurkowego", tm50: "", turboloescher: "", turntable_ladder: "SH lub SD", ulf: "", wasserwerfer: "", water_amount: "Litry wody", water_amount_tlf: "" } }, tutorial: { beginner: { building: { browser: { build_building: { add_name: "Teraz musisz nazwać swój posterunek! Nazwa musi być rozpoznawalna i skalowalna! Np.: „Posterunek straży pożarnej #0001”. Gdy skończysz, kliknij opcję Dalej!", build_with_credits: "Teraz wznieś budynek za kredyty!", new_building: "Kliknij opcję Nowy budynek!", select_building: "Wybierz rodzaj budynku, od którego chcesz zacząć, sugerujemy wybór straży pożarnej! W każdym wypadku najlepiej zacząć od małego posterunku!", select_position: "Przesuń błękitny znacznik w miejsce, w którym chcesz zbudować pierwszy posterunek!" }, pick_location: "Najpierw wybierz miejsce początkowe! W pasku wyszukiwania wpisz nazwę miejsca, w którym masz ochotę rozpocząć grę, bądź zlokalizuj je na mapie osobiście! Może chcesz wybrać swoje rodzinne miasto?", welcome: "Witaj w grze Operator ratunkowy! Pomożemy Ci dobrze rozpocząć karierę w służbach ratowniczych!" }, mobile: { build_building: { add_name: "Teraz musisz nazwać swój posterunek! Nazwa musi być rozpoznawalna i skalowalna! Np.: „Posterunek straży pożarnej #0001”. Gdy skończysz, kliknij opcję Dalej!", build_with_credits: "Teraz wznieś budynek za kredyty!", new_building: "Najpierw wybierz miejsce początkowe i wznieś swój pierwszy budynek!

    W tym celu wybierz opcję Nowy budynek!", select_building: "Wybierz rodzaj budynku, od którego chcesz zacząć, sugerujemy wybór straży pożarnej! W każdym wypadku najlepiej zacząć od małego posterunku!" }, welcome: "Witaj w grze Operator ratunkowy! Pomożemy Ci dobrze rozpocząć karierę w służbach ratowniczych!" } }, mission: { detail: { browser: { dispatch_menu: "To menu wezwania. Możesz tu wysyłać swoje jednostki na misje!", dispatch_menu_buttons: "To dwa przyciski wysyłania na wezwanie. Pierwszy: Opcja Wyślij posyła wybrane jednostki na misję. Drugi przycisk wydaje to samo polecenie i przenosi do następnej misji. Na razie kliknij pierwszy przycisk.", dispatch_menu_mission_general: "Tutaj znajdują się ogólne informacje o misji, czyli nazwa, adres i ikona misji. Jeśli na misję została wysłana jednostka, gwiazdkę zastępuje ikona przestawiająca postać.", dispatch_menu_mission_progress: "Tutaj można sprawdzić postępy w wykonywaniu misji oraz liczbę personelu na miejscu i czas pozostały do wykonania misji!", dispatch_menu_mission_specific: "Tutaj znajdują się szczegółowe informacje o misji, w tym jednostki, które ją wykonują i te, które są już na miejscu.", dispatch_menu_vehicle_list: "To lista dostępnych pojazdów. Tutaj wybierasz pojazdy. Wybierz pojazd, klikając go!" }, mobile: { dispatch_menu: "To menu wezwania. Możesz tu wysyłać swoje jednostki na misje!", dispatch_menu_buttons: "To dwa przyciski wysyłania na wezwanie. Pierwszy: Opcja Wyślij posyła wybrane jednostki na misję. Drugi przycisk wydaje to samo polecenie i przenosi do następnej misji. Na razie kliknij pierwszy przycisk.", dispatch_menu_mission_general: "Tutaj znajdują się ogólne informacje o misji, czyli nazwa, adres i ikona misji. Jeśli na misję została wysłana jednostka, gwiazdkę zastępuje ikona przestawiająca postać.", dispatch_menu_mission_progress: "Tutaj można sprawdzić postępy w wykonywaniu misji oraz liczbę personelu na miejscu i czas pozostały do wykonania misji!", dispatch_menu_mission_specific: "Tutaj znajdują się szczegółowe informacje o misji, w tym jednostki, które ją wykonują i te, które są już na miejscu.", dispatch_menu_vehicle_list: "To lista dostępnych pojazdów. Tutaj wybierasz pojazdy. Wybierz pojazd, klikając go!" } }, overview: { browser: { dispatch_button: "Teraz nauczymy się, jak reagować na wydarzenia. Otwórz menu wezwań, klikając przycisk Wyślij!", first_mission: "Świetnie, masz już pierwszy budynek! Przyszły zgłoszenia pierwszych misji!" }, mobile: { dispatch_button: "Teraz nauczymy się, jak reagować na wydarzenia. Otwórz menu wezwań, klikając przycisk Wyślij!", first_mission: "Świetnie, masz już pierwszy budynek! Przyszły zgłoszenia pierwszych misji!" } } }, rewards: { browser: { general: "Doskonale, wkrótce osiągniesz mistrzostwo w grze Operator ratunkowy! Oto %{coins} Monet, które pomogą Ci na początek!
    Zespół gry Operator ratunkowy" }, mobile: { general: "Doskonale, wkrótce osiągniesz mistrzostwo w grze Operator ratunkowy! Oto %{coins} Monet, które pomogą Ci na początek!
    Zespół gry Operator ratunkowy" } }, tips: { browser: { contact: "W przypadku niejasności warto odwiedzić dział często zadawanych pytań, forum gry lub naszą stronę na Facebooku!", general: "Następnymi zalecanymi krokami są budowa centrum powiadamiania ratunkowego oraz jak najszybsze wzniesienie nowych posterunków, ponieważ maksymalna liczba misji jest równa najwyższej liczbie posterunków jednego typu (policji, straży pożarnej, pogotowia ratunkowego) plus 1, np. przy 5 posterunkach straży pożarnej i 3 pogotowia ratunkowego dostępnych jest 6 misji.", join_alliance: "Bardzo pomocne jest również dołączenie do sojuszu, zwłaszcza na początku gry, dlatego zalecamy również ten krok.", summary: "Oto podstawy gry Operator ratunkowy! Wykonuj misje, zdobywaj kredyty, kupuj kolejne jednostki, powtarzaj proces. Miłej gry!
    Zespół gry Operator ratunkowy" }, mobile: { contact: "W przypadku niejasności warto odwiedzić dział często zadawanych pytań, forum gry lub naszą stronę na Facebooku!", general: "Następnymi zalecanymi krokami są budowa centrum powiadamiania ratunkowego oraz jak najszybsze wzniesienie nowych posterunków, ponieważ maksymalna liczba misji jest równa najwyższej liczbie posterunków jednego typu (policji, straży pożarnej, pogotowia ratunkowego) plus 1, np. przy 5 posterunkach straży pożarnej i 3 pogotowia ratunkowego dostępnych jest 6 misji.", join_alliance: "Bardzo pomocne jest również dołączenie do sojuszu, zwłaszcza na początku gry, dlatego zalecamy również ten krok.", summary: "Oto podstawy gry Operator ratunkowy! Wykonuj misje, zdobywaj kredyty, kupuj kolejne jednostki, powtarzaj proces. Miłej gry!
    Zespół gry Operator ratunkowy" } } }, commons: { collect: "Odbierz", "continue": "Nie", end: "Zakończ", next: "Dalej", prev: "Wstecz", skip: "Tak", skip_hint: "Czy na pewno chcesz pominąć samouczek? Pamiętaj, że nie będzie on później dostępny. W ten sposób tracisz szansę na uzyskanie nagrody za ukończenie samouczka." }, rewards: { log: "Nagroda za ukończenie samouczka." } }, policechief: { tutorial: { beginner: { building: { browser: { build_building: { add_name: "Teraz musisz nazwać swój posterunek! Nazwa musi być rozpoznawalna i skalowalna! Np.: „Posterunek Policja #0001”. Gdy skończysz, kliknij opcję Dalej!", select_building: "Wybierz rodzaj budynku, od którego chcesz zacząć, sugerujemy wybór posterunek policja! W każdym wypadku najlepiej zacząć od małego posterunku!" }, welcome: "Witaj w grze Operator ratunkowy Policja! Pomożemy Ci dobrze rozpocząć karierę w służbach ratowniczych!" }, mobile: { build_building: { add_name: "Teraz musisz nazwać swój posterunek! Nazwa musi być rozpoznawalna i skalowalna! Np.: „Posterunek Policja #0001”. Gdy skończysz, kliknij opcję Dalej!", select_building: "Wybierz rodzaj budynku, od którego chcesz zacząć, sugerujemy wybór posterunek policja! W każdym wypadku najlepiej zacząć od małego posterunku!" }, welcome: "Witaj w grze Operator ratunkowy Policja! Pomożemy Ci dobrze rozpocząć karierę w służbach ratowniczych!" } }, rewards: { browser: { general: "Doskonale, wkrótce osiągniesz mistrzostwo w grze Operator ratunkowy Policja! Oto %{coins} Monet, które pomogą Ci na początek!
    Zespół gry Operator ratunkowy Policja" }, mobile: { general: "Doskonale, wkrótce osiągniesz mistrzostwo w grze Operator ratunkowy Policja! Oto %{coins} Monet, które pomogą Ci na początek!
    Zespół gry Operator ratunkowy Policja" } }, tips: { browser: { summary: "Oto podstawy gry Operator ratunkowy Policja! Wykonuj misje, zdobywaj kredyty, kupuj kolejne jednostki, powtarzaj proces. Miłej gry!
    Zespół gry Operator ratunkowy Policja" }, mobile: { summary: "Oto podstawy gry Operator ratunkowy Policja! Wykonuj misje, zdobywaj kredyty, kupuj kolejne jednostki, powtarzaj proces. Miłej gry!
    Zespół gry Operator ratunkowy Policja" } } } } }, number: { format: { delimiter: " ", precision: 3, separator: ",", significant: !1, strip_insignificant_zeros: !1 } } }, I18n.translations.it_IT = { common: { add: "Aggiungi", back: "Indietro", cancel: "Annulla", change_saved: "Modifiche salvate", coins_spend: "Vuoi davvero spendere queste monete?", congratulations: "Congratulazioni!", content: "Contenuto", credits: "Crediti", "delete": "Elimina", details: "Dettagli", edit: "Modifica", error: "Errore", is_offline: "%{user} non è in linea.", is_offline_long: "Ora estesa: %{user} è offline", is_offline_with_duration: "%{user} non è in linea: %{duration}", is_online: "%{user} è online.", loading: "Caricamento...", name: "Nome", none: "Nessuno", of: "di", off: "Off", on: "On", save: "Salva", search: "Cerca", show: "Mostra", user_not_found: "Impossibile trovare l'utente", wrong_key: "Codice errato" }, javascript: { alarm: "Assegna", arrival: "Arrivo", backalarm: "Annulla", coins: "Monete", credits: "Crediti", days: "giorni", few_seconds: "in pochi secondi", finish_in: "Finisce tra:", hours: "H", location_not_found: "Non trovato", messages: "Messaggi", minutes: "min.", missed_vehicle: "Manca:", mission_start_in: "Inizia tra:", "new": "Nuovo", not_found_map: "Il veicolo non è stato trovato sulla mappa", now: "Adesso", patient: "Paziente", patient_untouched: "Pazienti non trattati", poi_delete: "Vuoi davvero eliminare il PDI: %{caption}?", reload: "Ricarica", sale: "Sale", sale_ended: "Vendita terminata", secounds: "sec.", sicherheitswache_error: 'La guardia di sicurezza "%{caption}" non è stata completata, perché non tutti i criteri sono stati soddisfatti.', sicherheitswache_success: 'La guardia di sicurezza "%{caption}" è stata completata. Ricevi %{credits} crediti.', start_in: "Inizia tra: ", start_username: "Avviatore:", time_left: "Tempo rimanente:", to_building: "Visualizza edificio", to_mission: "Visualizza missione", understand: "Conferma", user_not_found: "Il giocatore non è stato trovato.", vehicles_not_visible: "Veicoli non visibili. ", water_approaching: "In Arrivo: %{amount} lit.", water_missing: "Mancanti: %{amount} lit.", water_on_site: "Sul Posto: %{amount} lit.", water_selected: "Selezionati: %{amount} lit." }, map: { alliance: "Alleanza", alliance_chat: "Chat", alliance_chat_banned: "Al momento sei escluso dalla chat dell'alleanza.", alliance_chat_banned_admin: "Escluso da:", alliance_chat_banned_timeleft: "Tempo rimanente:", alliance_chat_radio_off: "Radio alleanza: Off", alliance_chat_radio_on: "Radio alleanza: On", alliance_event: "Evento", alliance_missions: "Missioni dell'alleanza", alliance_missions_event: "Evento", ambulance: "Ambulanza", anti_abuse_active_link: "Fai clic qui per maggiori informazioni.", anti_abuse_active_text: "Le missioni si generano all'interno di un raggio esteso di 100 Km, poiché troppe stazioni dello stesso tipo sono state costruite troppo vicine tra loro.", attended: "Completate", cancel_alliance_event: "Annulla evento dell'alleanza", cancel_alliance_event_confirm: "Vuoi davvero annullare l'evento dell'alleanza?", challenges: "", chat_history: "Cronologia chat", congratulations: "Congratulazioni! Adesso puoi ricevere una promozione.", create_alliance_event: "Inizia evento dell'alleanza", create_alliance_operation: "Crea una missione dell'alleanza su larga scala", emergency: "Emergenza", finishing: "In corso", join_alliance_infos: "Se fai parte di un'alleanza, altri giocatori possono assegnarti liberamente delle missioni.", map: "Mappa", map_filters: { all_buildings: "Edifici", all_missions: "Missioni", alliance_buildings: "Edifici dell'alleanza", alliance_members: "Membri", alliance_missions: "Condivisa dall'alleanza", ambulance_station_missions: "Stazione ambulanze", ambulance_station_small_missions: "Stazione ambulanze (stazione piccola)", building_complex: "Complesso di edifici", buildings_section: "Stazioni", clinic_missions: "Clinica", dispatch_center_missions: "Centrale operativa", fire_school_missions: "Scuola dei vigili del fuoco", firehouse_missions: "Caserma dei vigili del fuoco", firehouse_small_missions: "Caserma dei vigili del fuoco (piccola)", hospital_missions: "Ospedale", map_filters: "Punti di interesse (PDI)", mission_positions: "Punti di interesse (PDI)", mission_positions_section: "PDI", missions_section: "Missioni", police_copter_station_missions: "Reparto volo polizia", police_school_missions: "Scuola di polizia", police_small_missions: "Stazione di polizia (stazione piccola)", police_special_forces: "Forze di polizia speciali", police_station_missions: "Stazione di polizia", prison_missions: "Cella di commissariato", rapid_deployment_group: "Gruppo di installazione rapida (SEG)", rescue_copter_station_missions: "Stazione elisoccorso sanitario", riot_police: "Squadra antisommossa", riot_police_missions: "Squadra antisommossa", staging_area_missions: "Base temporanea", technical_aid_organization: "THW", technical_aid_organization_school: "THW Bundesschule", user_buildings: "I miei edifici", user_missions: "Le mie missioni", water_watch: "Soccorso acquatico", water_watch_missions: "Soccorso acquatico" }, message: "Messaggio", mission: "Missione", missions_filtered_out: "Alcune missioni potrebbero essere filtrate. Per favore, controlla i filtri della tua mappa.", no_alliance_chat_impossible: "Non fai parte di alcuna alleanza.", no_alliance_missions: "Al momento non ci sono missioni dell'alleanza.", no_ambulance_missions: "Nessuna missione delle ambulanze. Le missioni delle ambulanze possono verificarsi solo quando si dispone di un'ambulanza e di un ospedale.", no_emergency_missions: "Non ci sono missioni di emergenza disponibili. Una missione di emergenza può verificarsi dopo aver creato la prima stazione.", no_radio_messages: "Nessun messaggio radio ricevuto.", radio_messages: "Radio", restore_map: "Ripristina mappa", server_warning: "Manutenzione del server alle 00:00. Tempo di inattività previsto di 6 ore.", show_informations: "Verde = Le missioni vengono mostrate nell'elenco. Rosso = Le missioni non vengono mostrate.", sicherheitswache: "Missioni pianificate", transport: "Trasporto", unattended: "Da compiere" }, fms: { going: "In risposta", not_ready: "Fuori servizio", on_destination: "Alla destinazione del trasporto", on_place: "Sulla scena", patient_transported: "Trasporto paziente", prisoner_transported: "Trasporto detenuto", ready_home: "Disponibile alla stazione", ready_traveling: "Pronto e disponibile", talking_wish: "Richiesta trasporto", waiting_for_vehicle: "In attesa del veicolo da trainare" }, intervention_order: { automatic_text_color: "Colore testo automatico", back: "Indietro", category: "Categoria", colour: "Colore", column: "Colonna", column_number: "Numero di colonna", column_number_hint: "Se viene fornito un numero di colonna, la voce Allarme e risposta verrà visualizzata nella colonna corrispondente nella pagina di avviso.", create_intervention_order: "Crea nuova regola di allarme e risposta", "delete": "Elimina", delete_all: "Elimina completamente le regole di allarme e risposta", delete_all_confirm: "Vuoi davvero eliminare tutte le regole di allarme e risposta? Le voci esportate esistenti non sono più disponibili!", description: "Nome", edit: "Modifica", "export": { "export": "Esporta", "import": "Importa", import_done: "Le voci selezionate sono state importate e scritte nel piano di allarme e risposta.", saved: "Esportazioni regole di allarme e risposta", saved_text: "La regola di allarme e risposta è pronta per l'esportazione. Tramite il link un altro giocatore può importare la regola di allarme e risposta. Se nel frattempo modifichi una regola di allarme e risposta, tale modifica verrà automaticamente applicata nell'esportazione." }, hotkey_hint: "Scegli un tasto di scelta rapida per questa selezione di veicoli. Premi durante la missione su Windows: ALT + tasto di scelta rapida (o su Firefox: ALT + SHIFT + tasto di scelta rapida oppure su Mac OS: ctrl + alt + tasto di scelta rapida) per scegliere la tua selezione di veicoli.", intervention_order: "Modifica le regole di allarme e risposta", name: "Nome", no_intervention_created: "Non hai ancora creato alcuna regola di allarme e risposta.", options: "Opzioni", reset: "Ripristina la selezione precedente nella finestra degli allarmi.", reset_hint: "Se hai selezionato il veicolo nella finestra di assegnazione, puoi utilizzare questo pulsante per ripristinarlo.", save: "Salva", station: "Stazione", station_hint: "Quando selezioni un edificio, verranno selezionati solo i veicoli dell'edificio corrispondente.", successfully_created: "Creazione della regola di allarme e risposta riuscita.", successfully_deleted: "Regola di allarme e risposta eliminata", successfully_updated: "Aggiornamento delle regole di allarme e risposta completato.", text_color: "Colore testo", vehicles: { ab_atemschutz_only: "Modulo - SCBA", ab_einsatzleitung_only: "Modulo - Comando", ab_gefahrgut_only: "Modulo - N.B.C.R.", ab_oel_only: "Modulo - Perdita di olio", ab_ruest: "Modulo - Soccorso/Tecniche", ab_ruest_rw: "", abl2wasser_only: "Modulo - Alimentazione tubi", ambulance: "Ambulanza BLSD", ambulance_or_rapid_responder: "", arff: "ARFF (mezzo antincendio aeroportuale)", battalion_chief_unit: "Funzionario", boot: "Barca", brush_truck: "Mezzo AIB", commerce_police: "Volante Finanza", crew_carrier: "AF/BUS", dekon_p: "", division_chief_unit: "Veicoli comando mobile", dlk_or_tm50: "", elw1_or_elw2: "Modulo - Funzionario, Veicoli comando mobile o Comando mobile ", elw2_or_ab_elw: "", elw3: "", elw_airport: "", emergency_ambulance: "Automedica (VLV) o Elisoccorso", fbi_bomb_tech: "Furgone artificieri", fire_aviation: "Unità Aerea Antincendio", fire_truck: "APS/ABP", fireboat: "Barca antincendio grande", fly_car: "Fly-Car", fukw: "", fustw_or_police_motorcycle: "Volante oppure Moto della Polizia", fwk: "AG", gefkw: "", gkw: "Furgone generico", grtw: "Unità antistrage", grtw0: "", grtw1: "", grukw: "", gw_atemschutz_only: "", gw_gefahrgut: "N.B.C.R.", gw_gefahrgut_only: "", gw_hoehenrettung: "GW-Höhenrettung", gw_messtechnik: "GW-Messtechnik", gw_oel_only: "", gw_san: "", gw_taucher: "Camion Tecnico NSSA", gw_wasserrettung: "Ritenzione delle acque", gw_werkfeuerwehr: "", gwl2wasser_only: "Autocarro per tubazioni", hems: "Elisoccorso HEMS", hlf_only: "Autopompa", hlf_or_rw_and_lf: "Autopompa oppure Polisoccorso e Autobotte", hondengeleider: "", k9: "Unità cinofila antidroga", kdow_lna: "", kdow_orgl: "DTS", ktw_b: "", ktw_or_rtw: "Ambulanza ordinaria o BLSD", lebefkw: "Leichter Befehlskraftwagen (leBefKw)", lf_only: "Mezzi antincendio", long_distance_ambulance: "Ambulanza ordinaria", mask_service_unit: "Carro aria", mek_mtf: "", mek_zf: "", mtw: "Trasporto truppa MTW", mzb: "Barca", naw: "Ambulanza MSA", naw_or_rtw_and_nef: "MSA o VLV", naw_or_rtw_and_nef_or_rth: "MSA o VLV o Elisoccorso", nef_only: "Automedica (VLV)", oil_unit: "GW-Öl", only_ab_dekon_p: "", only_dekon_p: "", ovd_p: "", police_car: "Auto di pattuglia", police_motorcycle: "Moto della Polizia", polizeihubschrauber: "Elicottero della polizia", rescue_vehicle: "Polisoccorso", rescue_vehicle_only: "CA / POLI", rescueboat: "Barca di salvataggio grande", rettungstreppe: "", rth_only: "Elisoccorso", schlauchwagen: "Kilolitrica", seg_elw: "", sek_mtf: "", sek_zf: "", swat: "Unità speciali", swat_armored_vehicle: "Veicolo Antisommossa", swat_suv: "UOPI Suv", thw_anh_mzab: "", thw_anh_mzb: "", thw_anh_schlb: "", thw_brmg_r: "", thw_dle: "", thw_lkw: "", thw_lkw_7_lkr_19_tm: "", thw_mlw5: "", thw_mtw: "Mannschaftstransportwagen Technischer Zug", thw_mzkw: "Mehrzweckkraftwagen (MzKW)", thw_tauchkraftwagen: "Team sommozzatori", thw_tauchkraftwagen_or_gw_taucher: "", tlf_only: "Veicolo trasporto sommozzatori", tm50: "", turboloescher: "", turntable_ladder: "Autoscala", ulf: "", wasserwerfer: "", water_amount: "Litri d'acqua", water_amount_tlf: "" } }, tutorial: { beginner: { building: { browser: { build_building: { add_name: 'Ora assegna un nome alla tua nuova stazione. Scegli un nome di facile identificazione e numerabile. Per esempio: "Caserma dei vigili del fuoco 0001". Quando hai finito, fai clic su "Avanti".', build_with_credits: "Ora costruisci il tuo edificio utilizzando i crediti.", new_building: 'Fai clic su "Nuovo edificio".', select_building: "Per prima cosa scegli il tipo di edificio con cui vuoi cominciare; ti consiglio vivamente di iniziare con i vigili del fuoco. In ogni caso, sarebbe meglio iniziare con una stazione di piccole dimensioni.", select_position: "Sposta il segnalino blu dove desideri costruire la tua prima stazione." }, pick_location: "Per prima cosa, scegli una posizione. Digita nella barra di ricerca il nome del luogo da cui vuoi iniziare oppure trovalo sulla mappa. Che ne dici della tua città natale?", welcome: "Ciao, ti do il benvenuto in Operatore 112! Ti insegnerò un po' di cose per aiutarti a partire alla grande con la tua carriera nei servizi di emergenza." }, mobile: { build_building: { add_name: 'Ora assegna un nome alla tua nuova stazione. Scegli un nome di facile identificazione e numerabile. Per esempio: "Caserma dei vigili del fuoco 0001". Quando hai finito, fai clic su "Avanti".', build_with_credits: "Ora costruisci il tuo edificio utilizzando i crediti.", new_building: 'Per prima cosa, scegliamo una posizione dove costruiremo il primo edificio.

    Per fare questo, fai clic su "Nuovo edificio".', select_building: "Per prima cosa scegli il tipo di edificio con cui vuoi cominciare; ti consiglio vivamente di iniziare con i vigili del fuoco. In ogni caso, sarebbe meglio iniziare con una stazione di piccole dimensioni." }, welcome: "Ciao, ti do il benvenuto in Operatore 112! Ti insegnerò un po' di cose per aiutarti a partire alla grande con la tua carriera nei servizi di emergenza." } }, mission: { detail: { browser: { dispatch_menu: "Questo è il menu di assegnazione. Da qui potrai inviare le tue unità in missione.", dispatch_menu_buttons: 'Questi sono i due pulsanti per l\'assegnazione. Il primo pulsante: "Assegna" invia in missione le unità selezionate. Il secondo fa la stessa cosa del primo pulsante ma passa alla missione successiva. Per adesso, fai clic sul primo pulsante.', dispatch_menu_mission_general: "Qui puoi visualizzare le informazioni generali della missione, ovvero nome, indirizzo, icona della missione. Nelle missioni a cui hai già preso parte, l'icona a forma di piccola stella viene sostituita da un'icona a forma di omino.", dispatch_menu_mission_progress: "Qui puoi vedere i progressi già fatti in una missione, il numero di persone operative sul posto e il tempo rimasto per occuparti della missione.", dispatch_menu_mission_specific: "Qui trovi maggiori informazioni sulla missione, sulle unità che rispondono alla chiamata e su quelle che si trovano già sul posto.", dispatch_menu_vehicle_list: "Questa è la lista dei mezzi a tua disposizione. Qui puoi selezionare i veicoli. Seleziona un veicolo facendo clic su di esso." }, mobile: { dispatch_menu: "Questo è il menu di assegnazione. Da qui potrai inviare le tue unità in missione.", dispatch_menu_buttons: 'Questi sono i due pulsanti per l\'assegnazione. Il primo pulsante: "Assegna" invia in missione le unità selezionate. Il secondo fa la stessa cosa del primo pulsante ma passa alla missione successiva. Per adesso, fai clic sul primo pulsante.', dispatch_menu_mission_general: "Qui puoi visualizzare le informazioni generali della missione, ovvero nome, indirizzo, icona della missione. Nelle missioni a cui hai già preso parte, l'icona a forma di piccola stella viene sostituita da un'icona a forma di omino.", dispatch_menu_mission_progress: "Qui puoi vedere i progressi già fatti in una missione, il numero di persone operative sul posto e il tempo rimasto per occuparti della missione.", dispatch_menu_mission_specific: "Qui trovi maggiori informazioni sulla missione, sulle unità che rispondono alla chiamata e su quelle che si trovano già sul posto.", dispatch_menu_vehicle_list: "Questa è la lista dei mezzi a tua disposizione. Qui puoi selezionare i veicoli. Seleziona un veicolo facendo clic su di esso." } }, overview: { browser: { dispatch_button: 'Ora dovremo imparare a gestire gli incidenti. Apri il menu di assegnazione facendo clic sul pulsante "Assegna".', first_mission: "Fantastico, hai costruito il tuo primo edificio! Vedi, ti sono state segnalate le prime missioni." }, mobile: { dispatch_button: 'Ora dovremo imparare a gestire gli incidenti. Apri il menu di assegnazione facendo clic sul pulsante "Assegna".', first_mission: "Fantastico, hai costruito il tuo primo edificio! Vedi, ti sono state segnalate le prime missioni." } } }, rewards: { browser: { general: "Fantastico, stai per diventare un eccezionale Capomissione! Ecco %{coins} monete per aiutarti a partire!
    Il team di Operatore 112" }, mobile: { general: "Fantastico, stai per diventare un eccezionale Capomissione! Ecco %{coins} monete per aiutarti a partire!
    Il team di Operatore 112" } }, tips: { browser: { contact: "Se hai domande puoi consultare le FAQ del gioco oppure visitarne i forum o la nostra pagina di Facebook.", general: "Come passo successivo ti consiglio di costruire una centrale operativa e poi, appena possibile, delle nuove stazioni. Il numero massimo di missioni è uguale al numero più alto di una delle stazioni di tipo diverso (polizia, vigili del fuoco, ambulanza) più 1; per esempio: 5 stazioni dei vigili del fuoco e 3 di ambulanze = 6 missioni.", join_alliance: "Inoltre, ti consiglio di unirti a un'alleanza perché, soprattutto all'inizio, questo potrebbe esserti di grande aiuto.", summary: "Queste sono le nozioni di base di Operatore 112. Completa missioni, ottieni crediti, acquista altre unità e ricomincia. Divertiti a giocare!
    Il team di Operatore 112" }, mobile: { contact: "Se hai domande puoi consultare le FAQ del gioco oppure visitarne i forum o la nostra pagina di Facebook.", general: "Come passo successivo ti consiglio di costruire una centrale operativa e poi, appena possibile, delle nuove stazioni. Il numero massimo di missioni è uguale al numero più alto di una delle stazioni di tipo diverso (polizia, vigili del fuoco, ambulanza) più 1; per esempio: 5 stazioni dei vigili del fuoco e 3 di ambulanze = 6 missioni.", join_alliance: "Inoltre, ti consiglio di unirti a un'alleanza perché, soprattutto all'inizio, questo potrebbe esserti di grande aiuto.", summary: "Queste sono le nozioni di base di Operatore 112. Completa missioni, ottieni crediti, acquista altre unità e ricomincia. Divertiti a giocare!
    Il team di Operatore 112" } } }, commons: { collect: "Raccogli", "continue": "false", end: "Fine", next: "Succ", prev: "Prec", skip: "Sì", skip_hint: "Vuoi davvero saltare il tutorial? Non sarà più accessibile in seguito. Non potrai qualificarti per il premio di completamento tutorial." }, rewards: { log: "Ricompensa per aver completato il tutorial." } }, policechief: { tutorial: { beginner: { building: { browser: { build_building: { add_name: 'Ora assegna un nome alla tua nuova stazione. Scegli un nome di facile identificazione e numerabile. Per esempio: "Stazione di polizia 0001". Quando hai finito, fai clic su "Avanti".', select_building: "Per prima cosa scegli il tipo di edificio con cui vuoi cominciare; ti consiglio vivamente di iniziare con la polizia. In ogni caso, sarebbe meglio iniziare con una stazione di piccole dimensioni." }, welcome: "Ciao, ti do il benvenuto in Operatore 112 Polizia! Ti insegnerò un po' di cose per aiutarti a partire alla grande con la tua carriera nei servizi di emergenza." }, mobile: { build_building: { add_name: 'Ora assegna un nome alla tua nuova stazione. Scegli un nome di facile identificazione e numerabile. Per esempio: "Stazione di polizia 0001". Quando hai finito, fai clic su "Avanti".', select_building: "Per prima cosa scegli il tipo di edificio con cui vuoi cominciare; ti consiglio vivamente di iniziare con la polizia. In ogni caso, sarebbe meglio iniziare con una stazione di piccole dimensioni." }, welcome: "Ciao, ti do il benvenuto in Operatore 112 Polizia! Ti insegnerò un po' di cose per aiutarti a partire alla grande con la tua carriera nei servizi di emergenza." } }, rewards: { browser: { general: "Fantastico, stai per diventare un eccezionale Capomissione! Ecco %{coins} monete per aiutarti a partire!
    Il team di Operatore 112 Polizia" }, mobile: { general: "Fantastico, stai per diventare un eccezionale Capomissione! Ecco %{coins} monete per aiutarti a partire!
    Il team di Operatore 112 Polizia" } }, tips: { browser: { summary: "Queste sono le nozioni di base di Operatore 112 Polizia. Completa missioni, ottieni crediti, acquista altre unità e ricomincia. Divertiti a giocare!
    Il team di Operatore 112 Polizia" }, mobile: { summary: "Queste sono le nozioni di base di Operatore 112 Polizia. Completa missioni, ottieni crediti, acquista altre unità e ricomincia. Divertiti a giocare!
    Il team di Operatore 112 Polizia" } } } } }, number: { format: { delimiter: ".", precision: 3, separator: ",", significant: !1, strip_insignificant_zeros: !1 } } }, I18n.translations.fr_FR = { common: { add: "Ajouter", back: "Retour", cancel: "Annuler", change_saved: "Modifications enregistrées", coins_spend: "Voulez-vous vraiment dépenser ces pièces ?", congratulations: "Félicitations !", content: "Contenu", copy: "Copier", credits: "Crédits", "delete": "Supprimer", details: "Détails", edit: "Modifier", error: "Erreur", is_offline: "%{user} est hors ligne.", is_offline_long: "Période prolongée : %{user} est hors ligne", is_offline_with_duration: "%{user} est hors ligne: %{duration}", is_online: "%{user} est en ligne.", loading: "Chargement...", name: "Nom", none: "Aucun", of: "de", off: "OFF", on: "ON", save: "Enregistrer", search: "Rechercher", show: "Afficher", user_not_found: "Utilisateur introuvable", wrong_key: "Clé invalide" }, javascript: { alarm: "Déployer", arrival: "Arrivée", backalarm: "Annuler", coins: "Pièces", credits: "Crédits", days: "jours", few_seconds: "dans quelques secondes", finish_in: "Terminer dans :", hours: "h", location_not_found: "Introuvable", messages: "Messages", minutes: "min", missed_vehicle: "Il manque :", mission_start_in: "Commence dans :", "new": "Neuf", not_found_map: "Impossible de trouver le véhicule sur la carte", now: "Maintenant", patient: "Patient", patient_untouched: "Patients non traités", poi_delete: "Voulez-vous vraiment supprimer ce point d’intérêt : %{caption} ?", reload: "Recharger", sale: "Soldes", sale_ended: "Fin de l’offre spéciale", secounds: "sec.", sicherheitswache_error: "Le garde de sécurité « %{caption} » a échoué dans sa mission, car il ne répondait pas à tous les critères.", sicherheitswache_success: "Le garde de sécurité « %{caption} » a rempli son objectif. Recevoir %{credits} crédits.", start_in: "Commencer dans : ", start_username: "Initiateur :", time_left: "Temps restant:", to_building: "Afficher le bâtiment", to_mission: "Afficher la mission", understand: "Bien reçu", user_not_found: "Impossible de trouver le joueur.", vehicles_not_visible: "Les véhicules ne sont pas visibles. ", water_approaching: "En approche : %{amount} l", water_missing: "Manquante : %{amount} l", water_on_site: "Sur les lieux : %{amount} l", water_selected: "Sélectionnée : %{amount} l" }, map: { alliance: "Alliance", alliance_chat: "Salon", alliance_chat_banned: "Il vous est actuellement interdit de discuter dans le salon de l’alliance.", alliance_chat_banned_admin: "Interdiction émise par :", alliance_chat_banned_timeleft: "Temps restant :", alliance_chat_radio_off: "Radio de l’alliance : OFF", alliance_chat_radio_on: "Radio de l’alliance : ON", alliance_event: "Évènement", alliance_missions: "Missions d’alliance", alliance_missions_event: "Évènement", ambulance: "Ambulance", anti_abuse_active_link: "Cliquez ici pour plus d'informations.", anti_abuse_active_text: "Les missions vont apparaître dans un rayon étendu de 100 km, car trop de postes du même type ont été construits trop près les uns des autres.", attended: "Assignée", cancel_alliance_event: "Annuler l’évènement d’alliance", cancel_alliance_event_confirm: "Voulez-vous vraiment annuler l’évènement d’alliance ?", challenges: "", chat_history: "Historique du salon", congratulations: "Félicitations ! Vous avez désormais accès à une promotion.", create_alliance_event: "Lancer l’évènement d’alliance", create_alliance_operation: "Créer une mission d’alliance majeure", emergency: "Urgence", finishing: "Presque achevée", join_alliance_infos: "Si vous appartenez à une alliance, les autres joueurs peuvent vous confier des missions.", map: "Carte", map_filters: { all_buildings: "Bâtiments", all_missions: "Missions", alliance_buildings: "Bâtiments d’alliance", alliance_members: "Membres", alliance_missions: "Partagées par l’alliance", ambulance_station_missions: "Poste Ambulancier", ambulance_station_small_missions: "Poste Ambulancier (petit)", building_complex: "Complexe", buildings_section: "Postes", clinic_missions: "Clinic", dispatch_center_missions: "Centre de Traitement des Appels", fire_school_missions: "Centre de Formation Départemental", firehouse_missions: "Centre de secours", firehouse_small_missions: "Centre de Première Intervention", hospital_missions: "Centre Hospitalier", map_filters: "Points d'intérêt (PI)", mission_positions: "Points d'intérêt (PI)", mission_positions_section: "PI", missions_section: "Missions", police_copter_station_missions: "Forces aériennes de la Gendarmerie nationale", police_school_missions: "Ecole de police", police_small_missions: "Police Municipale", police_special_forces: "Police special forces", police_station_missions: "Gendarmerie", prison_missions: "Prison", rapid_deployment_group: "Groupe à configuration rapide (GCR)", rescue_copter_station_missions: "Groupement d'hélicoptères de la Sécurité Civile", riot_police: "Brigade anti-émeutes", riot_police_missions: "Brigade anti-émeutes", staging_area_missions: "Centre de Regroupement des Moyens", technical_aid_organization: "Protection civile", technical_aid_organization_school: "École de protection civile", user_buildings: "Mes bâtiments", user_missions: "Mes missions", water_watch: "Secours nautique", water_watch_missions: "Secours nautique" }, message: "Message", mission: "Mission", missions_filtered_out: "Certaines missions peuvent être filtrées. Veuillez vérifier les filtres de votre carte.", no_alliance_chat_impossible: "Vous n’appartenez à aucune alliance.", no_alliance_missions: "Aucune mission d’alliance à afficher.", no_ambulance_missions: "Il n'y a pas de transport de patient en attente. Les transports seront disponibles dès que vous aurez trois ambulances de transport ou de secours et un hôpital.", no_emergency_missions: "Aucune mission d’urgence à afficher. Vous pouvez recevoir des missions d’urgence dès lors que vous avez construit votre premier poste.", no_radio_messages: "Vous n’avez reçu aucun message radio.", radio_messages: "Radio", restore_map: "Restaurer la carte", server_warning: "Maintenance des serveurs à 00h00. Ceux-ci seront indisponibles durant une durée approximative de 6h00.", show_informations: "Vert = les missions s’affichent dans la liste. Rouge = les missions ne s’affichent pas.", sicherheitswache: "Missions prévues", transport: "Transport", unattended: "Non assignée" }, fms: { going: "En intervention", not_ready: "Hors service", on_destination: "À la destination de transport", on_place: "Sur les lieux", patient_transported: "Transporte le patient", prisoner_transported: "Transporte le prisonnier", ready_home: "Disponible au poste", ready_traveling: "Prêt et opérationnel", talking_wish: "Demande de transport", waiting_for_vehicle: "En attente du véhicule à remorquer" }, intervention_order: { automatic_text_color: "Couleur du texte automatique", back: "Retour", category: "Catégorie", colour: "Couleur", column: "Colonne", column_number: "Numéro de colonne", column_number_hint: "Si un numéro de colonne est indiqué, l’entrée de la Régulation d’alertes et d’interventions s’affichera dans la colonne correspondante sur la page d’alertes.", create_intervention_order: "Créer une nouvelle Régulation d’alertes et d’interventions", "delete": "Supprimer", delete_all: "Supprimer les Régulations d’alertes et d’interventions", delete_all_confirm: "Voulez-vous vraiment supprimer toute Régulation d’alertes et d’interventions ? Les entrées existantes exportées ne sont plus disponibles !", description: "Nom", edit: "Modifier", "export": { "export": "Exporter", "import": "Importer", import_done: "Les entrées sélectionnées ont été importées et incorporées à votre Régulation d’alertes et d’interventions.", saved: "Exportations des Régulations d’alertes et d’interventions", saved_text: "Votre Régulation d’alertes et d’interventions est prête à l’exportation. Grâce à ce lien, un autre joueur peut importer cette Régulation d’alertes et d’interventions. Si d’ici là vous modifiez votre Régulation d’alertes et d’interventions, ce changement sera automatiquement appliqué à l’exportation." }, hotkey_hint: "Choisissez un raccourci pour cette sélection de véhicules. Dans votre fenêtre de mission, appuyez sur : ALT + votre raccourci (ou sur Firefox : ALT + Shift + votre raccourci, ou sur Mac OS : CTRL + ALT + votre raccourci) pour choisir votre sélection de véhicules.", intervention_order: "Modifier les Régulations d’alertes et d’interventions", name: "Nom", no_intervention_created: "Vous n’avez créé aucune Régulation d’alertes et d’interventions à l’heure actuelle.", options: "Options", reset: "Réinitialisez la sélection précédente dans la fenêtre d’alertes.", reset_hint: "Si vous avez sélectionné le véhicule dans la fenêtre de déploiement, vous pouvez utiliser ce bouton pour la réinitialiser.", save: "Enregistrer", station: "Poste", station_hint: "Quand un bâtiment est sélectionné, seuls les véhicules dépendant de celui-ci le sont également.", successfully_created: "Régulation d’alertes et d’interventions créée.", successfully_deleted: "Régulation d’alertes et d’interventions supprimée", successfully_updated: "Régulations d’alertes et d’interventions mises à jour.", text_color: "Couleur du texte", vehicles: { ab_atemschutz_only: "Module ARI", ab_einsatzleitung_only: "Module de commandement", ab_gefahrgut_only: "Module risques chimiques", ab_oel_only: "Module marée noire", ab_ruest: "Module tech/sauvetage", ab_ruest_rw: "", abl2wasser_only: "Module approv. lance à eau", ambulance: "ASSU / VSAV / AR", ambulance_or_rapid_responder: "", arff: "VIA (fourgon d’incendie d’aéroport)", battalion_chief_unit: "Chef de groupe", boot: "Bateaux (généraux)", brush_truck: "CCF", brush_truck_1: "CCFS", brush_truck_2: "CCFM", brush_truck_3: "CCFL", dekon_p: "", division_chief_unit: "Véhicule poste de commandement", dlk_or_tm50: "", elw1_or_elw2: "Chef de Groupe ou PC", elw2_or_ab_elw: "Pompe de secours ou unité de secours en renfort et véhicule d'incendie", elw3: "VLHR", elw_airport: "", emergency_ambulance: "Ambulance d’urgence ou hélicoptère", fire_truck: "Fourgons d’incendie", fireboat: "Grand bateau d’incendie", fly_car: "VRM", fly_car_any: "VL SSSM / VLM", fukw: "", fustw_or_police_motorcycle: "Véhicule de patrouille ou Unité motocycliste", fwk: "", gefkw: "", gkw: "Véhicule Tout Usage", grtw: "Unité accidents majeurs", grtw0: "", grtw1: "", grukw: "", gw_atemschutz_only: "", gw_gefahrgut: "Véhicules risques chimiques", gw_gefahrgut_only: "", gw_hoehenrettung: "VGRIMP", gw_messtechnik: "GW-M", gw_oel_only: "", gw_san: "", gw_taucher: "", gw_wasserrettung: "VPL", gw_werkfeuerwehr: "", gwl2wasser_only: "Véhicule à lance", hems: "Services d’urgence", hlf_only: "Véhicule de secours", hlf_or_rw_and_lf: "Véhicule de secours ou véhicule de secours lourd et véhicule d'incendie", hondengeleider: "", hose_trucks: "Camion dévidoir", k9: "Brigade canine", kdow_lna: "", kdow_orgl: "PC DSM", ktw_b: "", ktw_or_rtw: "Ambulance de secours ou Ambulance de transport", lebefkw: "Camionnette de police", lf_only: "Fourgons d’incendie", long_distance_ambulance: "Ambulance Type A", mask_service_unit: "Véhicule d'Assistance Respiratoire", mek_mtf: "", mek_zf: "", mtw: "VSAV", mzb: "BLS", naw: "", naw_or_rtw_and_nef: "", naw_or_rtw_and_nef_or_rth: "", nef_only: "Ambulance", oil_unit: "Camion d’assainissement", only_ab_dekon_p: "", only_dekon_p: "", ovd_p: "", police_car: "Voiture de patrouille", police_motorcycle: "Unité motocycliste", polizeihubschrauber: "Hélicoptère de police", pump: "Motopompes", rescue_vehicle: "Véhicule de secours routier", rescue_vehicle_only: "Secours routier", rescueboat: "Grand bateau de sauvetage", rettungstreppe: "", rth_only: "Hélicoptère", schlauchwagen: "Camion-citerne ou CCFS", seg_elw: "", sek_mtf: "", sek_zf: "", swat: "SWAT", swat_armored_vehicle: "Véhicule renforcé du SWAT", swat_suv: "SUV du SWAT", thw_anh_mzab: "", thw_anh_mzb: "", thw_anh_schlb: "", thw_brmg_r: "", thw_dle: "", thw_lkw: "", thw_lkw_7_lkr_19_tm: "", thw_mlw5: "", thw_mtw: "Fourgon de la protection civile", thw_mzkw: "Camion de la protection civile", thw_tauchkraftwagen: "Équipe de plongée", thw_tauchkraftwagen_or_gw_taucher: "", tlf_only: "Camion-citerne", tm50: "", turboloescher: "", turntable_ladder: "Moyen Elévateur Aérien", ulf: "", wasserwerfer: "", water_amount: "Litres d’eau", water_amount_tlf: "" } }, tutorial: { beginner: { building: { browser: { build_building: { add_name: "Ensuite, donnez un nom à votre poste ! Il faut qu'il soit identifiable et évolutif. Par exemple : « Caserne de pompiers n°1 ». Cliquez sur « Suiv. » lorsque vous avez terminé !", build_with_credits: "Construisez maintenant votre bâtiment à l'aide de crédits !", new_building: "Cliquez sur « Nouveau bâtiment » !", select_building: "Choisissez d'abord le type de bâtiment avec lequel vous voulez débuter. Nous vous recommandons de démarrer avec une caserne de pompiers. Dans tous les cas, nous vous conseillons un petit poste !", select_position: "Déplacez le marqueur bleu où vous voulez construire votre premier poste !" }, pick_location: "Tout d'abord, choisissez un endroit où démarrer. Indiquez le nom du lieu depuis lequel vous voulez commencer dans la barre de recherche ou directement sur la carte. Que diriez-vous de la ville où vous résidez ?", welcome: "Bonjour, et bienvenue sur Opérateur 112 ! Je vais vous aider à bien démarrer votre carrière dans les services d'urgence !" }, mobile: { build_building: { add_name: "Ensuite, donnez un nom à votre poste ! Il faut qu'il soit identifiable et évolutif. Par exemple : « Caserne de pompiers n°1 ». Cliquez sur « Suiv. » lorsque vous avez terminé !", build_with_credits: "Construisez maintenant votre bâtiment à l'aide de crédits !", new_building: "Nous allons d'abord choisir un emplacement pour commencer et construire votre premier bâtiment !

    Pour cela, cliquez sur « Nouveau bâtiment ».", select_building: "Choisissez d'abord le type de bâtiment avec lequel vous voulez débuter. Nous vous recommandons de démarrer avec une caserne de pompiers. Dans tous les cas, nous vous conseillons un petit poste !" }, welcome: "Bonjour, et bienvenue sur Opérateur 112 ! Je vais vous aider à bien démarrer votre carrière dans les services d'urgence !" } }, mission: { detail: { browser: { dispatch_menu: "Voici le menu de déploiement. Vous pouvez d'ici envoyer vos unités en mission !", dispatch_menu_buttons: "Ce sont vos deux boutons de déploiement ! Le premier « Déployer » envoie les unités sélectionnées pour la mission. Le second fait la même chose que le premier, mais pour la mission suivante. Pour l'instant, cliquez sur le premier bouton.", dispatch_menu_mission_general: "Ici sont affichées les informations générales de mission, c'est-à-dire le nom, l'adresse et l'icône de la mission. La petite icône en forme de silhouette apparaît et remplace l'étoile pour les missions auxquelles vous participez déjà.", dispatch_menu_mission_progress: "Vous pouvez voir ici votre progression sur cette mission, le personnel sur site ainsi que le temps restant pour accomplir la mission !", dispatch_menu_mission_specific: "Vous pouvez consulter ici plus d'informations sur la mission, voir quelles unités répondent à l'appel, et quelles sont celles qui sont déjà sur site.", dispatch_menu_vehicle_list: "Voici la liste de vos véhicules disponibles. Vous pouvez sélectionner les véhicules d'ici. Sélectionnez votre véhicule en cliquant dessus !" }, mobile: { dispatch_menu: "Voici le menu de déploiement. Vous pouvez d'ici envoyer vos unités en mission !", dispatch_menu_buttons: "Ce sont vos deux boutons de déploiement ! Le premier « Déployer » envoie les unités sélectionnées pour la mission. Le second fait la même chose que le premier, mais pour la mission suivante. Pour l'instant, cliquez sur le premier bouton.", dispatch_menu_mission_general: "Ici sont affichées les informations générales de mission, c'est-à-dire le nom, l'adresse et l'icône de la mission. La petite icône en forme de silhouette apparaît et remplace l'étoile pour les missions auxquelles vous participez déjà.", dispatch_menu_mission_progress: "Vous pouvez voir ici votre progression sur cette mission, le personnel sur site ainsi que le temps restant pour accomplir la mission !", dispatch_menu_mission_specific: "Vous pouvez consulter ici plus d'informations sur la mission, voir quelles unités répondent à l'appel, et quelles sont celles qui sont déjà sur site.", dispatch_menu_vehicle_list: "Voici la liste de vos véhicules disponibles. Vous pouvez sélectionner les véhicules d'ici. Sélectionnez votre véhicule en cliquant dessus !" } }, overview: { browser: { dispatch_button: "Il vous faut maintenant apprendre à gérer les incidents. Ouvrez le menu de déploiement en cliquant sur le bouton « Déployer » !", first_mission: "Parfait, vous avez construit votre premier bâtiment ! Regardez, on commence déjà à vous signaler des missions !" }, mobile: { dispatch_button: "Il vous faut maintenant apprendre à gérer les incidents. Ouvrez le menu de déploiement en cliquant sur le bouton « Déployer » !", first_mission: "Parfait, vous avez construit votre premier bâtiment ! Regardez, on commence déjà à vous signaler des missions !" } } }, rewards: { browser: { general: "Parfait, vous êtes bien parti pour devenir un Opérateur 112 de talent ! Voici %{coins} pièces pour vous aider à démarrer !
    L'équipe d'Opérateur 112" }, mobile: { general: "Parfait, vous êtes bien parti pour devenir un Opérateur 112 de talent ! Voici %{coins} pièces pour vous aider à démarrer !
    L'équipe d'Opérateur 112" } }, tips: { browser: { contact: "Si vous avez des questions, vous pouvez consulter la FAQ du jeu, visiter les forums du jeu ou notre page Facebook !", general: "Nous vous recommandons pour l'étape suivante de construire un centre de secours et, dès que possible, de nouveaux postes puisque le nombre de missions maximum équivaut au plus grand nombre de postes d'un genre (police, pompiers, ambulance) plus 1. Par exemple, 5 casernes de pompiers et 3 postes ambulanciers = 6 missions.", join_alliance: "De plus, nous vous recommandons de rejoindre une alliance, ce qui peut grandement vous aider, surtout au début.", summary: "Voici les bases d'Opérateur 112 ! Accomplissez des missions, recevez des crédits, achetez plus d'unités, recommencez. Amusez-vous bien !
    L'équipe d'Opérateur 112" }, mobile: { contact: "Si vous avez des questions, vous pouvez consulter la FAQ du jeu, visiter les forums du jeu ou notre page Facebook !", general: "Nous vous recommandons pour l'étape suivante de construire un centre de secours et, dès que possible, de nouveaux postes puisque le nombre de missions maximum équivaut au plus grand nombre de postes d'un genre (police, pompiers, ambulance) plus 1. Par exemple, 5 casernes de pompiers et 3 postes ambulanciers = 6 missions.", join_alliance: "De plus, nous vous recommandons de rejoindre une alliance, ce qui peut grandement vous aider, surtout au début.", summary: "Voici les bases d'Opérateur 112 ! Accomplissez des missions, recevez des crédits, achetez plus d'unités, recommencez. Amusez-vous bien !
    L'équipe d'Opérateur 112" } } }, commons: { collect: "Récupérer", "continue": "Non", end: "Fin", next: "Suiv.", prev: "Préc.", skip: "Oui", skip_hint: "Veux-tu vraiment passer le didacticiel ? Tu ne pourras pas y accéder par la suite. Tu renonceras ainsi à la récompense offerte pour avoir terminé le didacticiel." }, rewards: { log: "Récompense pour avoir terminé le didacticiel." } }, policechief: { tutorial: { beginner: { building: { browser: { build_building: { add_name: "Ensuite, donnez un nom à votre poste ! Il faut qu'il soit identifiable et évolutif. Par exemple : « Police Muncipale n°1 ». Cliquez sur « Suiv. » lorsque vous avez terminé !", select_building: "Choisissez d'abord le type de bâtiment avec lequel vous voulez débuter. Nous vous recommandons de démarrer avec une police muncipale. Dans tous les cas, nous vous conseillons un petit poste !" }, welcome: "Bonjour, et bienvenue sur Opérateur 112 Police ! Je vais vous aider à bien démarrer votre carrière dans les services d'urgence !" }, mobile: { build_building: { add_name: "Ensuite, donnez un nom à votre poste ! Il faut qu'il soit identifiable et évolutif. Par exemple : « Police Muncipale n°1 ». Cliquez sur « Suiv. » lorsque vous avez terminé !", select_building: "Choisissez d'abord le type de bâtiment avec lequel vous voulez débuter. Nous vous recommandons de démarrer avec une police muncipale. Dans tous les cas, nous vous conseillons un petit poste !" }, welcome: "Bonjour, et bienvenue sur Opérateur 112 Police ! Je vais vous aider à bien démarrer votre carrière dans les services d'urgence !" } }, rewards: { mobile: { general: "Parfait, vous êtes bien parti pour devenir un Opérateur 112 Police de talent ! Voici %{coins} pièces pour vous aider à démarrer !
    L'équipe d'Opérateur 112 Police" } }, tips: { browser: { summary: "Voici les bases d'Opérateur 112 Police ! Accomplissez des missions, recevez des crédits, achetez plus d'unités, recommencez. Amusez-vous bien !
    L'équipe d'Opérateur 112 Police" }, mobile: { summary: "Voici les bases d'Opérateur 112 Police ! Accomplissez des missions, recevez des crédits, achetez plus d'unités, recommencez. Amusez-vous bien !
    L'équipe d'Opérateur 112 Police" } } } } }, number: { format: { delimiter: " ", precision: 3, separator: ",", significant: !1, strip_insignificant_zeros: !1 } } }, I18n.translations.ru_RU = { common: { add: "Добавить", back: "Назад", cancel: "Отменить", change_saved: "Изменения сохранены", coins_spend: "Вы действительно хотите потратить эти монеты?", congratulations: "Поздравляем!", content: "Содержимое", copy: "Скопировать", credits: "Кредиты", "delete": "Удалить", details: "Подробности", edit: "Редактировать", error: "Ошибка", is_offline: "%{user} не в сети.", is_offline_long: "Давно: %{user} не в сети", is_offline_with_duration: "%{user} не в сети: %{duration}", is_online: "%{user} в сети.", loading: "Загружается...", name: "Название", none: "Ни один", of: "из", off: "Выкл", on: "Вкл", save: "Сохранить", search: "Искать", show: "Показать", user_not_found: "Пользователь не найден", wrong_key: "Неверная клавиша" }, javascript: { alarm: "Отправить", arrival: "Прибытие", backalarm: "Отменить", coins: "Монеты", credits: "Кредиты", days: "дн.", few_seconds: "через несколько секунд", finish_in: "Закончить через:", foam_approaching: "На подходе: %{amount} л", foam_missing: "Не хватает: %{amount} л", foam_on_site: "На месте: %{amount} л", foam_selected: "Выбрано: %{amount} л", hours: "Ч", location_not_found: "Не найдено", messages: "Сообщения", minutes: "мин.", missed_vehicle: "Не хватает:", mission_start_in: "Начинается через:", "new": "Новый", not_found_map: "Машина не обнаружена на карте", now: "Сейчас", patient: "Пациент", patient_untouched: "Не получившие помощи пациенты", poi_delete: "Вы уверены, что хотите удалить эту важную точку: %{caption}?", reload: "Загрузить повторно", sale: "Распродажа", sale_ended: "Акция завершена", secounds: "сек.", sicherheitswache_error: "Cотрудник охраны «%{caption}» не добился успеха, потому что не все критерии удовлетворены.", sicherheitswache_success: "Cотрудник охраны «%{caption}» успешно выведен. Получите кредиты (%{credits}).", start_in: "Начать через: ", start_username: "Начинает:", time_left: "Осталось:", to_building: "Смотреть здание", to_mission: "Смотреть задание", understand: "Подтвердить", user_not_found: "Игрок не найден.", vehicles_not_visible: "Машины не видны. ", water_approaching: "На подходе: %{amount} л", water_missing: "Не хватает: %{amount} л", water_on_site: "На месте: %{amount} л", water_selected: "Выбрано: %{amount} л" }, map: { alliance: "Альянс", alliance_chat: "Чат", alliance_chat_banned: "В настоящее время вы лишены доступа к чату альянса.", alliance_chat_banned_admin: "Заблокировал:", alliance_chat_banned_timeleft: "Осталось времени:", alliance_chat_radio_off: "Радио альянса: Выкл", alliance_chat_radio_on: "Радио альянса: Вкл", alliance_event: "Событие", alliance_missions: "Задания альянса", alliance_missions_event: "Событие", ambulance: "Скорая помощь", anti_abuse_active_link: "Нажмите здесь, чтобы получить подробную информацию.", anti_abuse_active_text: "Задания будут появляться в радиусе 100 км, поскольку слишком мало станций одного типа расположено близко друг к другу.", attended: "Посещённые", cancel_alliance_event: "Отменить событие альянса", cancel_alliance_event_confirm: "Вы уверены что хотите отменить событие альянса?", challenges: "", chat_history: "История чата", congratulations: "Поздравляем! Теперь вы можете получить повышение.", create_alliance_event: "Начать событие альянса", create_alliance_operation: "Создайте крупномасштабное задание альянса", emergency: "Чрезвычайная ситуация", finishing: "Завершаются", join_alliance_infos: "Если вы состоите в альянсе, другие игроки могут свободно давать вам задания.", map: "Карта", map_filters: { all_buildings: "Здания", all_missions: "Задания", alliance_buildings: "Здания альянса", alliance_members: "Участники", alliance_missions: "Совместно с альянсом", ambulance_station_missions: "Станция скорой помощи", ambulance_station_small_missions: "Станция скорой помощи (малая)", building_complex: "Комплекс Зданий", buildings_section: "Станции", clinic_missions: "Клиника", dispatch_center_missions: "Диспетчерский пункт", fire_school_missions: "Академия пожарной службы", firehouse_missions: "Пожарная станция", firehouse_small_missions: "Пожарная станция (малая)", hospital_missions: "Больница", map_filters: "Важные точки", mission_positions: "Важные точки", mission_positions_section: "Важные точки", missions_section: "Задания", police_copter_station_missions: "Полицейская авиация", police_school_missions: "Академия полиции", police_small_missions: "Полицейский участок (малый)", police_special_forces: "Полицейские отряды спец. назначения", police_station_missions: "Полицейский участок", prison_missions: "Тюрьма", rapid_deployment_group: "Группа быстрого развёртывания", rescue_copter_station_missions: "Станция вертолётов скорой помощи", riot_police: "Спецназ полиции", riot_police_missions: "Спецназ полиции", staging_area_missions: "Пункт сбора", technical_aid_organization: "МЧС", technical_aid_organization_school: "Высшая школа МЧС", user_buildings: "Мои здания", user_missions: "Мои задания", water_watch: "ОСВОД", water_watch_missions: "ОСВОД" }, message: "Сообщение", mission: "Задание", missions_filtered_out: "Некоторые миссии могут быть отфильтрованы. Пожалуйста, проверьте фильтры вашей карты.", no_alliance_chat_impossible: "Вы не состоите в альянсе.", no_alliance_missions: "В настоящее время заданий альянса нет.", no_ambulance_missions: "Нет возможности перевозки пациентов. Перевозка станет возможной, когдапоявятся автомобиль скорой помощи и больница.", no_emergency_missions: "Нет доступных заданий ЧС. Задание ЧС может появиться только тогда, когда вы построите свою первую станцию.", no_radio_messages: "Вы не получали сообщений по радио.", radio_messages: "Радио", restore_map: "Восстановить карту", server_warning: "Server maintenance at 1 am. 6h downtime expected.", show_informations: "Зелёный = задания отображаются в списке. Красный = задания не отображаются.", sicherheitswache: "Запланированные задания", transport: "Транспорт", unattended: "Непосещенные" }, fms: { going: "Выезжает", not_ready: "Не работает", on_destination: "В пункте назначения перевозки", on_place: "На месте", patient_transported: "Перевозит пациента", prisoner_transported: "Перевозит заключённого", ready_home: "Доступно на станции", ready_traveling: "Не имеет заданий и доступно", talking_wish: "Заявка на перевозку", waiting_for_vehicle: "Ожидает машину для буксировки" }, intervention_order: { automatic_text_color: "Автоматический цвет текста", back: "Назад", category: "Категория", colour: "Цвет", column: "Столбец", column_number: "Номер столбца", column_number_hint: "Если задан номер столбца, в соответствующей колонке на странице тревоги будет отображаться запись ИИР.", create_intervention_order: "Создать новое правило ИИР", "delete": "Удалить", delete_all: "Полностью удалить правила ИИР", delete_all_confirm: "Вы уверены, что хотите удалить правило ИИР целиком? Существующие экспортированные записи более недоступны!", description: "Название", edit: "Редактировать", "export": { "export": "Экспортировать", "import": "Импортировать", import_done: "Выбранные записи импортированы и добавлены в ваш план ИИР.", saved: "Экспорт правил ИИР", saved_text: "Правило ИИР подготовлено к экспорту. Другой игрок сможет импортировать правило ИИР, воспользовавшись этой ссылкой. Если в этом время вы измените своё правило ИИР, изменения будут автоматически применены к экспортируемому правилу." }, hotkey_hint: "Выберите горячую клавишу для выделения этой машины. Нажмите в окне задания: ALT + горячая клавиша (или в Firefox: ALT + SHIFT + горячая клавиша, или в mac os: ctrl + alt + горячая клавиша), чтобы выделить выбранную машину.", intervention_order: "Редактировать правила ИИР", name: "Название", no_intervention_created: "Вы пока не создали правил ИИР.", options: "Параметры", reset: "Сбросьте предыдущее выделение в окне тревоги.", reset_hint: "Если в окне отправки вы выделили машину, эту кнопку можно использовать для сброса.", save: "Сохранить", station: "Станция", station_hint: "При выборе здания, будут выделены только машины соответствующего здания.", successfully_created: "Правило ИИР успешно создано.", successfully_deleted: "Правило ИИР удалено", successfully_updated: "Правила ИИР успешно обновлены.", text_color: "Цвет текста", vehicles: { ab_atemschutz_only: "Модуль дыхательных аппаратов", ab_einsatzleitung_only: "Модуль управления", ab_gefahrgut_only: "Модуль обезвреживания", ab_oel_only: "Модуль разлива нефти", ab_ruest: "Технологический модуль/модуль спасения", ab_ruest_rw: "", abl2wasser_only: "Модуль подачи шланга", ambulance: "Реанимобиль", ambulance_or_rapid_responder: "", arff: "АПСР (пожарная машина аэропорта)", battalion_chief_unit: "Подразделение командира батальона", boot: "Суда (общее)", dekon_p: "", division_chief_unit: "Мобильный командный пункт", dlk_or_tm50: "", elw1_or_elw2: "Подразделение командира батальона, мобильный командный пункт или мобильный модуль управления ", elw2_or_ab_elw: "Насос или вспомогательное спасательное подразделение", elw3: "", elw_airport: "", emergency_ambulance: "Машина скорой помощи ИЛИ вертолет", fire_truck: "Пожарные машины", fireboat: "Большой пожарный катер", fly_car: "Медицинский автомобиль", fly_car_any: "Медицинский автомобиль / Терапевт", foam_amount: "Литров пены", fukw: "", fustw_or_police_motorcycle: "Полицейская машина или Полицейский мотоцикл", fwk: "", gefkw: "", gkw: "Грузовой автомобиль", grtw: "Подразделение по работе с большим числом пострадавших", grtw0: "", grtw1: "", grukw: "", gw_atemschutz_only: "", gw_gefahrgut: "Обезвреживание", gw_gefahrgut_only: "", gw_hoehenrettung: "Автомобиль с лестницей", gw_messtechnik: "Метрологический автомобиль", gw_oel_only: "", gw_san: "", gw_taucher: "Автомобиль водолазов", gw_wasserrettung: "Автомобиль спасения на воде", gw_werkfeuerwehr: "", gwl2wasser_only: "Машина с брандспойнтом", hems: "Вертолёт неотложной медицинской помощи", hlf_only: "ПСА", hlf_or_rw_and_lf: "Спасатели или тяжёлые спасатели и пожарный автомобиль", hondengeleider: "", k9: "Подразделение кинологов", kdow_lna: "", kdow_orgl: "Глава скорой", ktw_b: "", ktw_or_rtw: "Скорые и реанимобили", lebefkw: "Облегченный командный пункт", lf_only: "Пожарные машины", long_distance_ambulance: "Реанимобиль", mask_service_unit: "Мобильное воздушное подразделение", mek_mtf: "", mek_zf: "", mtw: "Транспортёр", mzb: "Спасательная лодка", naw: "", naw_or_rtw_and_nef: "", naw_or_rtw_and_nef_or_rth: "", nef_only: "Скорая помощь", oil_unit: "Маслоудалитель", only_ab_dekon_p: "", only_dekon_p: "", ovd_p: "", police_car: "Патрульный автомобиль", police_motorcycle: "Полицейский мотоцикл", polizeihubschrauber: "Полицейский вертолёт", rescue_vehicle: "Машина для спасательных работ в тяжёлых условиях", rescue_vehicle_only: "Подразделение спасателей в тяжёлых условиях", rescueboat: "Большое спасательное судно", rettungstreppe: "", rth_only: "Медицинский вертолёт", schlauchwagen: "Цистерна с водой", seg_elw: "", sek_mtf: "", sek_zf: "", swat: "Спецназ", swat_armored_vehicle: "Бронемобиль спецназа", swat_suv: "Внедорожник спецназа", thw_anh_mzab: "", thw_anh_mzb: "", thw_anh_schlb: "", thw_brmg_r: "", thw_dle: "", thw_lkw: "", thw_lkw_7_lkr_19_tm: "", thw_mlw5: "", thw_mtw: "Автомобиль технической службы (АТС - МЧС)", thw_mzkw: "Грузовик с бортом подъемником (ГрБП)", thw_tauchkraftwagen: "Команда водолазов", thw_tauchkraftwagen_or_gw_taucher: "", tlf_only: "Машина водолазов", tm50: "", turboloescher: "", turntable_ladder: "Платформы", ulf: "", wasserwerfer: "", water_amount: "Литров воды", water_amount_tlf: "" } }, tutorial: { beginner: { building: { browser: { build_building: { add_name: "Теперь назовите свою новую станцию! Выберите узнаваемое и не очень длинное название! Например, «Пожарная станция №0001». Когда закончите, нажмите «Далее»!", build_with_credits: "Теперь постройте здание за кредиты!", new_building: "Щёлкните кнопку «Новое здание»!", select_building: "Сперва выберите тип здания. Предлагаем начать с пожарной части! Так или иначе, но рекомендуем начать с небольшой станции!", select_position: "Переместите синюю метку туда, где хотите построить свою первую станцию!" }, pick_location: "Первым делом давайте выберем место, откуда вы начнете свой путь! Введите название места в поисковую строку или самостоятельно найдите его на карте! Как насчет вашего родного города?", welcome: "Добро пожаловать в «Диспетчер 112»! Я преподам вам несколько уроков, которые помогут начать карьеру спасателя!" }, mobile: { build_building: { add_name: "Теперь назовите свою новую станцию! Выберите узнаваемое и не очень длинное название! Например, «Пожарная станция №0001». Когда закончите, нажмите «Далее»!", build_with_credits: "Теперь постройте здание за кредиты!", new_building: "Сперва давайте выберем место, откуда вы начнете свой путь, и построим там ваше первое здание!

    Для этого щёлкните кнопку «Новое здание»!", select_building: "Сперва выберите тип здания. Предлагаем начать с пожарной части! Так или иначе, но рекомендуем начать с небольшой станции!" }, welcome: "Добро пожаловать в «Диспетчер 112»! Я преподам вам несколько уроков, которые помогут начать карьеру спасателя!" } }, mission: { detail: { browser: { dispatch_menu: "Это меню отправки. С его помощью вы можете отправлять подразделения на задания!", dispatch_menu_buttons: "Это две кнопки отправки. Первая кнопка, «Отправить», отправляет выбранные подразделения на задание. Вторая делает то же самое, но с переходом к следующему заданию. Щёлкните первую кнопку.", dispatch_menu_mission_general: "Здесь приведена общая информация о задании: название, адрес и значок. Задания, которые вы уже выполняете, отмечены значком человечка, а не звездочкой.", dispatch_menu_mission_progress: "Здесь можно узнать прогресс выполнения задания, количество сотрудников на месте инцидента и время до завершения задания.", dispatch_menu_mission_specific: "Здесь представлена подробная информация о задании, а также об отправленных на вызов и уже находящихся на месте подразделениях.", dispatch_menu_vehicle_list: "Это список доступных машин. Здесь можно выбрать машины. Выберите машину, щёлкнув её!" }, mobile: { dispatch_menu: "Это меню отправки. С его помощью вы можете отправлять подразделения на задания!", dispatch_menu_buttons: "Это две кнопки отправки. Первая кнопка, «Отправить», отправляет выбранные подразделения на задание. Вторая делает то же самое, но с переходом к следующему заданию. Щёлкните первую кнопку.", dispatch_menu_mission_general: "Здесь приведена общая информация о задании: название, адрес и значок. Задания, которые вы уже выполняете, отмечены значком человечка, а не звездочкой.", dispatch_menu_mission_progress: "Здесь можно узнать прогресс выполнения задания, количество сотрудников на месте инцидента и время до завершения задания.", dispatch_menu_mission_specific: "Здесь представлена подробная информация о задании, а также об отправленных на вызов и уже находящихся на месте подразделениях.", dispatch_menu_vehicle_list: "Это список доступных машин. Здесь можно выбрать машины. Выберите машину, щёлкнув её!" } }, overview: { browser: { dispatch_button: "Теперь давайте научимся разбираться с происшествиями. Откройте меню отправки, щёлкнув по кнопке «Отправить»!", first_mission: "Отлично, вы построили своё первое здание! Смотрите, уже поступили первые задания для вас!" }, mobile: { dispatch_button: "Теперь давайте научимся разбираться с происшествиями. Откройте меню отправки, щёлкнув по кнопке «Отправить»!", first_mission: "Отлично, вы построили своё первое здание! Смотрите, уже поступили первые задания для вас!" } } }, rewards: { browser: { general: "Отлично, скоро вы станете настоящим мастером «Диспетчер 112»! Держите монеты для начала: %{coins}!
    Команда «Диспетчер 112»" }, mobile: { general: "Отлично, скоро вы станете настоящим мастером «Диспетчер 112»! Держите монеты для начала: %{coins}!
    Команда «Диспетчер 112»" } }, tips: { browser: { contact: "Если у вас остались вопросы, ознакомьтесь с ЧАВО или загляните на форумы игры или на нашу страничку Facebook!", general: "Следующим шагом рекомендуем возвести диспетчерский пункт, а затем начать строительство новых станций, поскольку максимальное количество заданий на одно больше количества станций самого распространенного типа (полиция, пожарные, скорая помощь). Например, при пяти пожарных станциях и трёх станциях скорой помощи вам будет доступно шесть заданий.", join_alliance: "Мы также рекомендуем вступить в альянс, так как это может здорово вам помочь, особенно по началу.", summary: "Теперь вы знаете основы игры в «Диспетчер 112»! Выполняйте задания, получайте кредиты и покупайте новые подразделения. Весёлой игры!
    Команда «Диспетчер 112»" }, mobile: { contact: "Если у вас остались вопросы, ознакомьтесь с ЧАВО или загляните на форумы игры или на нашу страничку Facebook!", general: "Следующим шагом рекомендуем возвести диспетчерский пункт, а затем начать строительство новых станций, поскольку максимальное количество заданий на одно больше количества станций самого распространенного типа (полиция, пожарные, скорая помощь). Например, при пяти пожарных станциях и трёх станциях скорой помощи вам будет доступно шесть заданий.", join_alliance: "Мы также рекомендуем вступить в альянс, так как это может здорово вам помочь, особенно по началу.", summary: "Теперь вы знаете основы игры в «Диспетчер 112»! Выполняйте задания, получайте кредиты и покупайте новые подразделения. Весёлой игры!
    Команда «Диспетчер 112»" } } }, commons: { collect: "Получить", "continue": "Нет", end: "Конец", next: "Далее", prev: "Назад", skip: "Да", skip_hint: "Вы уверены, что хотите пропустить обучение? Вы больше не сможете к нему вернуться. Вы не сможете получить награду за завершение обучения." }, rewards: { log: "Награда за завершение обучения." } }, number: { format: { delimiter: " ", precision: 3, separator: ",", significant: !1, strip_insignificant_zeros: !1 } } }, I18n.translations.da_DK = { common: { add: "Tilføj", back: "Tilbage", cancel: "Annullér", change_saved: "Ændringer gemt", coins_spend: "Er du sikker på, at du vil bruge disse mønter?", congratulations: "Tillykke!", content: "Indhold", credits: "Kreditter", "delete": "Slet", details: "Detaljer", edit: "Redigér", error: "Fejl", is_offline: "%{user} er offline.", is_offline_long: "Lang tid: %{user} er offline", is_offline_with_duration: "%{user} er offline: %{duration}", is_online: "%{user} er online.", loading: "Indlæser ...", name: "Navn", none: "Ingen", of: "af", off: "Fra", on: "Til", save: "Gem", search: "Søg", show: "Vis", user_not_found: "Bruger ikke fundet", wrong_key: "Forkert nøgle" }, javascript: { alarm: "Send ud", arrival: "Ankomst", backalarm: "Annullér", coins: "Mønter", credits: "Kreditter", days: "dage", few_seconds: "om få sekunder", finish_in: "Færdig om:", foam_approaching: "På Vej: %{amount} l.", foam_missing: "Mangler: %{amount} l.", foam_on_site: "På Stedet: %{amount} l.", foam_selected: "Valgte: %{amount} l.", hours: "T", location_not_found: "Ikke fundet", messages: "Meddelelser", minutes: "min.", missed_vehicle: "Mangler:", mission_start_in: "Begynder om:", "new": "Ny", not_found_map: "Køretøjet blev ikke fundet på kortet", now: "Nu", patient: "Patient", patient_untouched: "Ubehandlede patienter", poi_delete: "Er du sikker på, at du vil slette interessepunktet: %{caption}?", reload: "Genindlæs", sale: "Sale", sale_ended: "Udsalg forbi ", secounds: "sek.", sicherheitswache_error: 'Sikkerhedsvagten "%{caption}" lykkedes ikke, da ikke alle kriterier blev opfyldt.', sicherheitswache_success: 'Sikkerhedsvagten "%{caption}" er blevet gennemført. Modtag %{credits} kreditter.', start_in: "Begynder om: ", start_username: "Begynder:", time_left: "Tid tilbage:", to_building: "Se bygning", to_mission: "Se mission", understand: "Forstået", user_not_found: "Spilleren blev ikke fundet", vehicles_not_visible: "Køretøjer ikke synlige. ", water_approaching: "På Vej: %{amount} l.", water_missing: "Mangler: %{amount} l.", water_on_site: "På Stedet: %{amount} l.", water_selected: "Valgte: %{amount} l." }, map: { alliance: "Alliance", alliance_chat: "Chat", alliance_chat_banned: "Du er bortvist fra alliance-chatten.", alliance_chat_banned_admin: "Bortvist af:", alliance_chat_banned_timeleft: "Tid tilbage:", alliance_chat_radio_off: "Allianceradio Fra", alliance_chat_radio_on: "Allianceradio Til", alliance_event: "Begivenhed", alliance_missions: "Alliancemissioner", alliance_missions_event: "Begivenhed", ambulance: "Ambulance", anti_abuse_active_link: "Klik her for mere information.", anti_abuse_active_text: "Der vil opstå mange missioner indenfor en udvidet radius på 100 km, da der er bygget for mange stationer af den samme type for tæt på hinanden.", attended: "Iværksatte", cancel_alliance_event: "Annullér alliancebegivenhed", cancel_alliance_event_confirm: "Er du sikker på, at du vil annullere alliancebegivenheden?", challenges: "", chat_history: "Chat-historik", congratulations: "Tillykke! Du kan nu blive forfremmet.", create_alliance_event: "Påbegynd alliancebegivenhed", create_alliance_operation: "Opret en stor alliancemission", emergency: "Krisesituation", finishing: "Næsten afsluttede", join_alliance_infos: "Hvis du er i en alliance, kan andre spillere give dig missioner.", map: "Kort", map_filters: { all_buildings: "Bygninger", all_missions: "Missioner", alliance_buildings: "Alliancebygninger", alliance_members: "Medlemmer", alliance_missions: "Delt af alliance", ambulance_station_missions: "Ambulancestation", ambulance_station_small_missions: "Ambulancestation (lille station)", building_complex: "Bygningskompleks", buildings_section: "Stationer", clinic_missions: "Klinik", dispatch_center_missions: "Alarmcentral", fire_school_missions: "Brandakademi", firehouse_missions: "Brandstation", firehouse_small_missions: "Brandstation (lille station)", hospital_missions: "Hospital", map_filters: "Liste over kortfiltre", mission_positions: "Interessepunkter (POI)", mission_positions_section: "POI", missions_section: "Missioner", police_copter_station_missions: "Politihelikopterstation", police_school_missions: "Politiskole", police_small_missions: "Politistation (lille station)", police_special_forces: "Politiets specialstyrke", police_station_missions: "Politistation", prison_missions: "Statsfængsel", rapid_deployment_group: "Akut indsatsgruppe (AIG)", rescue_copter_station_missions: "Rednings Helikopter Station", riot_police: "Uropoliti", riot_police_missions: "Uropoliti", staging_area_missions: "Opstillingsområde", technical_aid_organization: "Beredskabskorps", technical_aid_organization_school: "THW Bundesschule", user_buildings: "Mine bygninger", user_missions: "Mine missioner", water_watch: "Vandredning", water_watch_missions: "Vandredning" }, message: "Meddelelse", mission: "Mission", missions_filtered_out: "Nogle missioner kan blive filtreret ud. Tjek venligst dine kortfilter.", no_alliance_chat_impossible: "Du er ikke i en alliance.", no_alliance_missions: "Der er ingen alliancemissioner lige nu", no_ambulance_missions: "Der er ingen ambulancemissioner. Der er kun ambulancemissioner, når du har en ambulance og et hospital.", no_emergency_missions: "Der er ingen tilgængelige krisemissioner. Der kan opstå krisemissioner, når du har oprettet din første station.", no_radio_messages: "Du har ikke modtaget radiomeddelelser.", radio_messages: "Radio", restore_map: "Gendan kort", server_warning: "Servervedligeholdelse kl. 00.00. 6 t. nedlukning forventet.", show_informations: "Grøn = Missionerne vises på listen. Rød = Missionerne vises ikke.", sicherheitswache: "Planlagte indsatser", transport: "Transport", unattended: "Ikke iværksatte" }, fms: { going: "Rykker ud", not_ready: "Ude af drift", on_destination: "Ved transportdestinationen", on_place: "På ulykkestedet", patient_transported: "Transporterer patient", prisoner_transported: "Transporterer fange", ready_home: "Tilgængelig ved station", ready_traveling: "Fri og ledig", talking_wish: "Transportanmodning", waiting_for_vehicle: "Venter på bugseringskøretøj" }, intervention_order: { automatic_text_color: "Automatisk tekstfarve", back: "Tilbage", category: "Kategori", colour: "Farve", column: "Søjle", column_number: "Søjletal", column_number_hint: "Hvis et søjletal er angivet, vises alarm og beredskab i den tilsvarende søjle på varslingssiden.", create_intervention_order: "Opret ny alarm- og beredskabsregulering", "delete": "Slet", delete_all: "Slet alarm- og beredskabsregulering helt", delete_all_confirm: "Er du sikker på, at du vil slette hele alarm- og beredskabsreguleringen? Tidligere eksporterede indlæg er ikke tilgængelige!", description: "Navn", edit: "Redigér", "export": { "export": "Eksportér", "import": "Importér", import_done: "De valgte indlæg er blevet importeret og skrevet på din alarm- og beredskabsplan.", saved: "Alarm- og beredskabsreguleringer – eksport", saved_text: "Dine alarm- og beredskabsreguleringer er klar til eksport. Med linket kan en anden spiller importere alarm- og beredskabsreguleringerne. Hvis du i mellemtiden ændrer dine alarm- og beredskabsreguleringer, bliver denne ændring automatisk brugt i eksporten." }, hotkey_hint: "Vælg en genvejstast for dette køretøjsvalg. Tryk følgende i dit missionsvindue: ALT + din genvejstast (eller med Firefox: ALT + SHIFT + din genvejstast eller på Mac OS: CTRL + ALT + din genvejstast) for at vælge køretøj(er).", intervention_order: "Redigér alarm- og beredskabsreguleringer", name: "Navn", no_intervention_created: "Du har ikke redigeret alarm- og beredskabsreguleringer endnu.", options: "Indstillinger", reset: "Nulstil forrige valg i alarmvinduet.", reset_hint: "Hvis du har valgt et køretøj i udsendelsesvinduet, kan du bruge denne knap til at nulstille.", save: "Gem", station: "Station", station_hint: "Når du har valgt en bygning, bliver kun køretøjer fra bygningen valgt.", successfully_created: "Alarm- og beredskabsregulering oprettet.", successfully_deleted: "Alarm- og beredskabsregulering slettet", successfully_updated: "Alarm- og beredskabsregulering opdateret.", text_color: "Tekstfarve", vehicles: { ab_atemschutz_only: "Røgdykkermodul", ab_einsatzleitung_only: "Kommandomodul", ab_gefahrgut_only: "Gift- og kemikaliemodul", ab_oel_only: "Olieudslipmodul", ab_ruest: "Teknologi-/redningsmodul", ab_ruest_rw: "", abl2wasser_only: "Brandslangemodul", ambulance: "ALS-ambulance", ambulance_or_rapid_responder: "", arff: "ARFF (lufthavnsbrandbil)", battalion_chief_unit: "Indsatsleder Brand", boot: "Både (generelt)", dekon_p: "", division_chief_unit: "Mobilkommando-køretøj", dlk_or_tm50: "", elw1_or_elw2: "Indsatsleder Brand eller Ledelses- og kommunikationsmodul", elw2_or_ab_elw: "", elw3: "", elw_airport: "", elw_police: "Indsatsleder Politi", emergency_ambulance: "Ambulance eller Rednings Helikopter", fire_truck: "Brandbiler", fireboat: "Stor brandbåd", fly_car: "Akutlæge", foam_amount: "Liter af skum", fukw: "", fustw_or_police_motorcycle: "Patruljevogn eller Politimotorcykel", fwk: "", gefkw: "", gkw: "Servicebil", grtw: "Mobil Behandlingsplads", grtw0: "", grtw1: "", grukw: "", gw_atemschutz_only: "", gw_gefahrgut: "Gift og kemikalie-enhed", gw_gefahrgut_only: "", gw_hoehenrettung: "GW-Höhenrettung", gw_messtechnik: "GW-Messtechnik", gw_oel_only: "", gw_san: "", gw_taucher: "Dykkerbil", gw_wasserrettung: "Kystlivredderbil", gw_werkfeuerwehr: "", gwl2wasser_only: "Brandslangekøretøj", hems: "Rednings Helikopter", hlf_only: "Specialsprøjte", hlf_or_rw_and_lf: "Specialsprøjte eller Tung Redningsvogn og Autosprøjte", hondengeleider: "", hose_trucks: "Slange Tendere", k9: "Hundepatrulje", kdow_lna: "", kdow_orgl: "Indsatsleder Akutlæge", ktw_b: "", ktw_or_rtw: "", lebefkw: "Leichter Befehlskraftwagen (leBefKw)", lf_only: "Brandbiler", long_distance_ambulance: "Regionsambulance", mask_service_unit: "Højtrykskompressor", mek_mtf: "", mek_zf: "", mtw: "Mandskabstransport", mzb: "Bådtrailer", naw: "", naw_or_rtw_and_nef: "", naw_or_rtw_and_nef_or_rth: "", nef_only: "Ambulance", oil_unit: "GW-Öl", only_ab_dekon_p: "", only_dekon_p: "", ovd_p: "", police_car: "Patruljebil", police_motorcycle: "Politimotorcykel", polizeihubschrauber: "Politihelikopter", rescue_vehicle: "Redningsvogn", rescue_vehicle_only: "Tung redning", rescueboat: "Stor redningsbåd", rettungstreppe: "", rth_only: "Rednings Helikopter", schlauchwagen: "Vandtankvogn", seg_elw: "", sek_mtf: "", sek_zf: "", swat: "AKS", swat_armored_vehicle: "AKS Pansret mandskabsvogn", swat_suv: "AKS Patruljevogn", thw_anh_mzab: "", thw_anh_mzb: "", thw_anh_schlb: "", thw_brmg_r: "", thw_dle: "", thw_lkw: "", thw_lkw_7_lkr_19_tm: "", thw_mlw5: "", thw_mtw: "Mannschaftstransportwagen Technischer Zug (MTW-TZ - THW)", thw_mzkw: "Mehrzweckkraftwagen (MzKW)", thw_tauchkraftwagen: "Dykkerhold", thw_tauchkraftwagen_or_gw_taucher: "", tlf_only: "Tankvogn", tm50: "", turboloescher: "", turntable_ladder: "Stigevogne", ulf: "", wasserwerfer: "", water_amount: "Liter vand", water_amount_tlf: "" } }, tutorial: { beginner: { building: { browser: { build_building: { add_name: 'Dernæst skal du navngive din station! Gør den genkendelig og skalerbar! F.eks. "Brandstation #0001". Når du er færdig, så tryk "Næste"!', build_with_credits: "Byg derefter din bygning med kreditter!", new_building: 'Klik på "Ny bygning"!', select_building: "Vælg først den type bygning, du vil starte med. Vi anbefaler, at du starter med brandtjeneste! I hvert fald anbefales det, at man starter med en lille station!", select_position: "Flyt den blå markør til der, hvor du gerne vil bygge din første station!" }, pick_location: "Vælg først et sted at starte! Indtast navnet på stedet, hvor du gerne vil starte, på søgebjælken, eller find det selv på kortet! Hvad med din hjemby?", welcome: "Hej, velkommen til Alarmcentral-spil! Jeg vil give dig lidt vejledning, så du kan få en ordentlig start på din redningstjeneste-karierre!" }, mobile: { build_building: { add_name: 'Dernæst skal du navngive din station! Gør den genkendelig og skalerbar! F.eks. "Brandstation #0001". Når du er færdig, så tryk "Næste"!', build_with_credits: "Byg derefter din bygning med kreditter!", new_building: 'Først vælger vi et sted at begynde at bygge din første bygning!

    For at gøre det, skal du klikke på "Ny bygning"!', select_building: "Vælg først den type bygning, du vil starte med. Vi anbefaler, at du starter med brandtjeneste! I hvert fald anbefales det, at man starter med en lille station!" }, welcome: "Hej, velkommen til Alarmcentral-spil! Jeg vil give dig lidt vejledning, så du kan få en ordentlig start på din redningstjeneste-karierre!" } }, mission: { detail: { browser: { dispatch_menu: "Dette er udsend-menuen. Herfra sender du dine enheder på missioner!", dispatch_menu_buttons: 'Disse er dine to "udsend"-knapper! Den første: "Udsend" sender de valgte enheder på missionen. Den anden gør det samme som den første, men gælder for den næste mission. Klik på den første nu.', dispatch_menu_mission_general: "Her kan du se generel information om missionen, så som missionens navn, adresse og ikon. Ikonet med den lille mand dukker op og erstatter en lille stjerne, når det er missioner, du allerede har deltaget i.", dispatch_menu_mission_progress: "Her kan du se, hvor mange fremskridt, der er sket med at håndtere missionen, antallet af personale på stedet, samt den tid, der resterer til at håndtere missionen!", dispatch_menu_mission_specific: "Her kan du se mere information om missionen. Hvilke enheder, der reagerer på opkaldet, og hvilke, der allerede er nået frem", dispatch_menu_vehicle_list: "Dette er en liste over tilgængelige køretøjer. Du vælger køretøjerne her. Vælg nu dine køretøjer ved at klikke på den!" }, mobile: { dispatch_menu: "Dette er udsend-menuen. Herfra sender du dine enheder på missioner!", dispatch_menu_buttons: 'Disse er dine to "udsend"-knapper! Den første: "Udsend" sender de valgte enheder på missionen. Den anden gør det samme som den første, men gælder for den næste mission. Klik på den første nu.', dispatch_menu_mission_general: "Her kan du se generel information om missionen, så som missionens navn, adresse og ikon. Ikonet med den lille mand dukker op og erstatter en lille stjerne, når det er missioner, du allerede har deltaget i.", dispatch_menu_mission_progress: "Her kan du se, hvor mange fremskridt, der er sket med at håndtere missionen, antallet af personale på stedet, samt den tid, der resterer til at håndtere missionen!", dispatch_menu_mission_specific: "Her kan du se mere information om missionen. Hvilke enheder, der reagerer på opkaldet, og hvilke, der allerede er nået frem", dispatch_menu_vehicle_list: "Dette er en liste over tilgængelige køretøjer. Du vælger køretøjerne her. Vælg nu dine køretøjer ved at klikke på den!" } }, overview: { browser: { dispatch_button: 'Nu skal vi lære, hvordan vi tager os af hændelser. Åbn udsendelsesmenuen ved at klikke på "udsend"-knappen!', first_mission: "Glimrende, du har bygget din første bygning. Se, de første missioner blev indberettet til dig!" }, mobile: { dispatch_button: 'Nu skal vi lære, hvordan vi tager os af hændelser. Åbn udsendelsesmenuen ved at klikke på "udsend"-knappen!', first_mission: "Glimrende, du har bygget din første bygning. Se, de første missioner blev indberettet til dig!" } } }, rewards: { browser: { general: "Glimrende - du er på vej til at blive alletiders til Alarmcentral-spil! Her er %{coins} mønter til at få dig i gang!
    Dit Alarmcentral-spil-hold" }, mobile: { general: "Glimrende - du er på vej til at blive alletiders til Alarmcentral-spil! Her er %{coins} mønter til at få dig i gang!
    Dit Alarmcentralspil-hold" } }, tips: { browser: { contact: "Hvis du har spørgsmål, kan du tjekke Spørgsmål og svar i spillet eller besøge spilforummer på vores Facebook-side!", general: "Som et næste skridt vil vi anbefale, at du bygger en alarmcentral, og dernæst - så snart som muligt - nye stationer, da det maksimale antal missioner er lig med det højeste antal af enhver slags station (politi-, brand-, og ambulance-) plus 1; f.eks. 5 brand- og 3 ambulancestationer = 6 missioner.", join_alliance: "Det ville også hjælpe dig enormt, især i starten, så det anbefales også.", summary: "Dette er den grundlæggende viden i Alarmcentral-spil! Fuldfør missioner, få kreditter, køb flere enheder, gentag. God fornøjelse!
    Dit Alarmcentral-spil-hold" }, mobile: { contact: "Hvis du har spørgsmål, kan du tjekke Spørgsmål og svar i spillet eller besøge spilforummer på vores Facebook-side!", general: "Som et næste skridt vil vi anbefale, at du bygger en alarmcentral, og dernæst - så snart som muligt - nye stationer, da det maksimale antal missioner er lig med det højeste antal af enhver slags station (politi-, brand-, og ambulance-) plus 1; f.eks. 5 brand- og 3 ambulancestationer = 6 missioner.", join_alliance: "Det ville også hjælpe dig enormt, især i starten, så det anbefales også.", summary: "Dette er den grundlæggende viden i Alarmcentral-spil! Fuldfør missioner, få kreditter, køb flere enheder, gentag. God fornøjelse!
    Dit Alarmcentral-spil-hold" } } }, commons: { collect: "Hent", "continue": "Nej", end: "Afslut", next: "Næste", prev: "Forrige", skip: "Ja", skip_hint: "Vil du virkelig afbryde introduktionen? Du kan ikke vende tilbage til den senere. Du kvalificerer dig ikke til belønningen for at gennemføre introduktionen." }, rewards: { log: "Belønning for at afslutte gennemgangen." } }, policechief: { tutorial: { beginner: { building: { browser: { build_building: { add_name: 'Dernæst skal du navngive din station! Gør den genkendelig og skalerbar! F.eks. "Politistation #0001". Når du er færdig, så tryk "Næste"!', select_building: "Vælg først den type bygning, du vil starte med. Vi anbefaler, at du starter med politistation! I hvert fald anbefales det, at man starter med en lille station!" }, welcome: "Hej, velkommen til Politi Alarmcentral-spil! Jeg vil give dig lidt vejledning, så du kan få en ordentlig start på din redningstjeneste-karierre!" }, mobile: { build_building: { add_name: 'Dernæst skal du navngive din station! Gør den genkendelig og skalerbar! F.eks. "Politistation #0001". Når du er færdig, så tryk "Næste"!', select_building: "Vælg først den type bygning, du vil starte med. Vi anbefaler, at du starter med politistation! I hvert fald anbefales det, at man starter med en lille station!" }, welcome: "Hej, velkommen til Politi Alarmcentral-spil! Jeg vil give dig lidt vejledning, så du kan få en ordentlig start på din redningstjeneste-karierre!" } }, rewards: { browser: { general: "Glimrende - du er på vej til at blive alletiders til Politi Alarmcentral-spil! Her er %{coins} mønter til at få dig i gang!
    Dit Politi Alarmcentral-spil-hold" }, mobile: { general: "Glimrende - du er på vej til at blive alletiders til Politi Alarmcentral-spil! Her er %{coins} mønter til at få dig i gang!
    Dit Politi Alarmcentral-spil-hold" } }, tips: { browser: { summary: "Dette er den grundlæggende viden i Politi Alarmcentral-spil! Fuldfør missioner, få kreditter, køb flere enheder, gentag. God fornøjelse!
    Dit Politi Alarmcentral-spil-hold" }, mobile: { summary: "Dette er den grundlæggende viden i Politi Alarmcentral-spil! Fuldfør missioner, få kreditter, køb flere enheder, gentag. God fornøjelse!
    Dit Politi Alarmcentral-spil-hold" } } } } }, number: { format: { delimiter: ".", precision: 3, separator: ",", significant: !1, strip_insignificant_zeros: !1 } } }, I18n.translations.nb_NO = { common: { add: "Legg til", back: "Tilbake", cancel: "Avbryt", change_saved: "Endringer lagret", coins_spend: "Er du sikker på at du vil bruke disse myntene?", congratulations: "Gratulerer!", content: "Innhold", credits: "Kreditter", "delete": "Slett", details: "Info", edit: "Rediger", error: "Feil", is_offline: "%{user} er offline.", is_offline_long: "Lenge: %{user} er offline", is_offline_with_duration: "%{user} er offline: %{duration}", is_online: "%{user} er online.", loading: "Laster inn …", name: "Navn", none: "Ingen", of: "av", off: "Av", on: "På", save: "Lagre", search: "Søk", show: "Vis", user_not_found: "Brukeren ble ikke funnet", wrong_key: "Feil nøkkel" }, javascript: { alarm: "Send ut", arrival: "Ankomst", backalarm: "Avbryt", coins: "Mynter", credits: "Kreditter", days: "dager", few_seconds: "om få sekunder", finish_in: "Fullfør om:", hours: "T", location_not_found: "Ikke funnet", messages: "Meldinger", minutes: "min.", missed_vehicle: "Mangler:", mission_start_in: "Starter om:", "new": "Ny", not_found_map: "Fremkomstmiddelet ble ikke funnet på kartet", now: "Nå", patient: "Pasient", patient_untouched: "Ubehandlede pasienter", poi_delete: "Er du sikker på at du vil slette interessepunktet %{caption}?", reload: "Last inn på nytt", sale: "Salg", sale_ended: "Salg avsluttet", secounds: "sek.", sicherheitswache_error: "Sikkerhetsvakten %{caption} lyktes ikke, for ikke alle kriteriene ble innfridd.", sicherheitswache_success: "Sikkerhetsvakten %{caption} lyktes. Få %{credits} kreditter.", start_in: "Starter om: ", start_username: "Starter:", time_left: "Gjenstående tid:", to_building: "Vis bygning", to_mission: "Vis oppdrag", understand: "Bekreft", user_not_found: "Spilleren ble ikke funnet.", vehicles_not_visible: "Fremkomstmidler er ikke synlige. ", water_approaching: "Rykker ut: %{amount} l.", water_missing: "Mangler: %{amount} l.", water_on_site: "På stedet: %{amount} l.", water_selected: "Valgt: %{amount} l." }, map: { alliance: "Allianse", alliance_chat: "Chat", alliance_chat_banned: "Du er utestengt fra alliansechatten.", alliance_chat_banned_admin: "Utestengt av:", alliance_chat_banned_timeleft: "Gjenværende tid:", alliance_chat_radio_off: "Allianseradio: Av", alliance_chat_radio_on: "Allianseradio: På", alliance_event: "Hendelse", alliance_missions: "Allianseoppdrag", alliance_missions_event: "Hendelse", ambulance: "Ambulanse", anti_abuse_active_link: "Klikk her for mer informasjon.", anti_abuse_active_text: "Oppdragene dukker opp innenfor en utvidet radius på 100 km fordi for mange stasjoner av samme variant er bygd i nærheten av hverandre.", attended: "Håndterer", cancel_alliance_event: "Kansellere alliansehendelse", cancel_alliance_event_confirm: "Er du sikker på at du vil kansellere alliansehendelsen?", challenges: "", chat_history: "Chatlogg", congratulations: "Gratulerer! Du kan nå forfremmes.", create_alliance_event: "Start alliansehendelse", create_alliance_operation: "Lag et allianseoppdrag i stor skala", emergency: "Nødssituasjon", finishing: "Fullfører", join_alliance_infos: "Hvis du er i en allianse, kan andre spillere gi deg oppdrag.", map: "Kart", map_filters: { all_buildings: "Bygninger", all_missions: "Oppdrag", alliance_buildings: "Alliansebygninger", alliance_members: "Medlemmer", alliance_missions: "Delt av allianse", ambulance_station_missions: "Ambulansestasjon", ambulance_station_small_missions: "Ambulansestasjon (liten)", building_complex: "Bygningskompleks", buildings_section: "Stasjoner", clinic_missions: "Legevakt", dispatch_center_missions: "Nødetatssenter", fire_school_missions: "Brannskole", firehouse_missions: "Brannstasjon", firehouse_small_missions: "Brannstasjon (liten)", hospital_missions: "Sykehus", map_filters: "Kartfilterliste", mission_positions: "Interessepunkt", mission_positions_section: "Interessepunkt", missions_section: "Oppdrag", police_copter_station_missions: "Politiheliport", police_school_missions: "Politiskole", police_small_missions: "Politistasjon (liten)", police_special_forces: "Politiets spesialstyrker", police_station_missions: "Politistasjon", prison_missions: "Fengsel", rapid_deployment_group: "Rask oppsettsgruppe (SEG)", rescue_copter_station_missions: "Luftambulansestasjon", riot_police: "Opprørspoliti", riot_police_missions: "Opprørspoliti", staging_area_missions: "Oppstillingsplass", technical_aid_organization: "THW", technical_aid_organization_school: "THW Bundesschule", user_buildings: "Mine bygninger", user_missions: "Mine oppdrag", water_watch: "Vannredning", water_watch_missions: "Vannredning" }, message: "Melding", mission: "Oppdrag", missions_filtered_out: "Noen oppdrag kan bli filtrert ut. Vennligst sjekk kartfiltrene dine.", no_alliance_chat_impossible: "Du er ikke i en allianse.", no_alliance_missions: "Du har for øyeblikket ingen allianseoppdrag.", no_ambulance_missions: "Det er ingen pasientoverflytninger bestilt. Overflytninger kan forekomme når du har en Syketransport og et sykehus.", no_emergency_missions: "Du har ingen nødoppdrag. Du kan få nødoppdrag etter at du bygger din første stasjon.", no_radio_messages: "Du har ikke fått noen radiomeldinger.", radio_messages: "Radio", restore_map: "Gjenopprett kart", server_warning: "Servervedlikehold i natt klokken 00:00. Det vil vare i 6 timer.", show_informations: "Grønn = oppdragene vises på listen. Rød = oppdragene vises ikke.", sicherheitswache: "Planlagte visninger", transport: "Transport", unattended: "Ikke håndtert" }, fms: { going: "Rykker ut", not_ready: "Ikke klar", on_destination: "Framme ved destinasjonen", on_place: "På åstedet", patient_transported: "Transporterer pasient", prisoner_transported: "Transporterer innsatt", ready_home: "Tilgjengelig på stasjon", ready_traveling: "Klar og tilgjengelig", talking_wish: "Transportforespørsel", waiting_for_vehicle: "Venter på at bil taues" }, intervention_order: { automatic_text_color: "Automatisk tekstfarge", back: "Tilbake", category: "Kategori", colour: "Farge", column: "Kolonne", column_number: "Kolonnenummer", column_number_hint: "Hvis et kolonnenummer oppgis, vil Alarm og respons-oppføringen vises i den tilsvarende kolonnen på varselsiden.", create_intervention_order: "Opprett ny Alarm og respons-regulering", "delete": "Slett", delete_all: "Slett Alarm og respons-regulering", delete_all_confirm: "Er du sikker på at du vil slette hele Alarm og respons-regulering? Eksisterende eksporterte oppføringer er ikke lenger tilgjengelige!", description: "Navn", edit: "Rediger", "export": { "export": "Eksporter", "import": "Importer", import_done: "De valgte oppføringene ble importer og skrevet over til Alarm og respons-planen.", saved: "Eksport av Alarm og respons-reguleringer", saved_text: "Alarm og respons-reguleringen er klargjort for eksport. Via koblingen kan andre spillere importere Alarm og respons-reguleringen. Hvis du i mellomtiden endrer Alarm og respons-reguleringen, reflekteres endringene i automatisk i eksporten." }, hotkey_hint: "Velg en snarvei for dette fremkomstmiddelvalget. Oppgi i oppdragsvinduet: ALT + snarveien (eller i Firefox: ALT + SHIFT + snarveien, eller på mac os: ctrl + alt + snarveien) for å velge fremkomstmiddelvalget.", intervention_order: "Rediger Alarm og respons-reguleringer", name: "Navn", no_intervention_created: "Du har ikke opprettet noen Alarm og respons-regulering ennå.", options: "Alternativer", reset: "Tilbakestill forrige valg i alarmvinduet.", reset_hint: "Hvis du har valgt fremkomstmiddelet i utrykningsvinduet, kan du bruke denne knappen til å tilbakestille det.", save: "Spar", station: "Stasjon", station_hint: "Når en bygning er valgt, kan bare fremkomstmidler av tilsvarende bygning velges.", successfully_created: "Alarm og respons-regulering ble opprettet.", successfully_deleted: "Alarm og respons-regulering ble slettet.", successfully_updated: "Alarm og respons-regulering ble oppdatert.", text_color: "Tekstfarge", vehicles: { ab_atemschutz_only: "SCBA-modul", ab_einsatzleitung_only: "Kommandomodul", ab_gefahrgut_only: "HazMat-modul", ab_oel_only: "Oljeutslipp-modul", ab_ruest: "Tek/rednings-modul", ab_ruest_rw: "", abl2wasser_only: "Slangeforsyning-modul", ambulance: "Ambulanse", ambulance_or_rapid_responder: "", any_traffic_car: "Utrykningspolitibil", arff: "Flyplassbrannbil", battalion_chief_unit: "Innsatsleder brann", boot: "Båter (generelt)", coresponder: "First responder bil", dekon_p: "", division_chief_unit: "Innsatsstøttebil", dlk_or_tm50: "", elw1_or_elw2: "Innsatsleder brann eller innsatsstøttebil", elw2_or_ab_elw: "", elw3: "", elw_airport: "", emergency_ambulance: "Ambulanse eller luftambulanse", fire_truck: "Brannbil", fireboat: "Brannbåt", fly_car: "Legebil", fly_car_any: "Legebil / Akuttbil / First responder bil / Akutthjelper / Ambulansemotorsykkel", fukw: "", fustw_or_police_motorcycle: "Patruljebil eller Politimotorsykkel", fwk: "", gefkw: "", gkw: "Lett lastebil", grtw: "Masseskade-enhet", grtw0: "", grtw1: "", grukw: "", gw_atemschutz_only: "Røykdykkerbil", gw_gefahrgut: "CBRNe-enhet", gw_gefahrgut_only: "", gw_hoehenrettung: "Stigebil", gw_messtechnik: "GW-Messtechnik", gw_oel_only: "", gw_san: "", gw_taucher: "Dykkerbil", gw_wasserrettung: "Dykkerbil", gw_werkfeuerwehr: "", gwl2wasser_only: "Tankbil", hems: "Luftambulanse", hlf_only: "Redningsbil", hlf_or_rw_and_lf: "Redningsbil eller Tungredningsbil og Brannbil", hondengeleider: "", k9: "Hundepatrulje", kdow_lna: "", kdow_orgl: "Innsatsleder Helse", kdow_orgl_any: "Innsatslederbil helse", ktw_b: "", ktw_or_rtw: "Syketransport eller Ambulanse", lebefkw: "Innsatsleder politi", lf_only: "Brannbil", long_distance_ambulance: "Syketransport", mask_service_unit: "Røykdykkerbil", mek_mtf: "", mek_zf: "", mtw: "MTW", mzb: "Lett redningsbåt", naw: "", naw_or_rtw_and_nef: "", naw_or_rtw_and_nef_or_rth: "", nef_only: "Anestesilege", oil_unit: "IUA enhet", only_ab_dekon_p: "", only_dekon_p: "", ovd_p: "", police_car: "Patruljebil", police_motorcycle: "Politimotorsykkel", polizeihubschrauber: "Politihelikopter", rescue_vehicle: "Tungredningsbil", rescue_vehicle_only: "Tungredningsbil", rescueboat: "Ambulansebåt", rettungstreppe: "", rth_only: "Luftambulanse", schlauchwagen: "Tankbil", seg_elw: "", sek_mtf: "", sek_zf: "", swat: "Politi med våpentrening", swat_armored_vehicle: "Pansret kjøretøy", swat_suv: "Delta kjøretøy", thw_anh_mzab: "", thw_anh_mzb: "", thw_anh_schlb: "", thw_brmg_r: "", thw_dle: "", thw_lkw: "", thw_lkw_7_lkr_19_tm: "", thw_mlw5: "", thw_mtw: "Mannschaftstransportwagen Technischer Zug (MTW-TZ - THW)", thw_mzkw: "Mehrzweckkraftwagen (MzKW)", thw_tauchkraftwagen: "Dykkerbil", thw_tauchkraftwagen_or_gw_taucher: "", tlf_only: "Tankbil", tm50: "", turboloescher: "", turntable_ladder: "Stigebil", ulf: "", wasserwerfer: "", water_amount: "Liter vann", water_amount_tlf: "" } }, tutorial: { beginner: { building: { browser: { build_building: { add_name: "Så gir du stasjonen et navn. Gjør det gjenkjennelig og skalerbart! F.eks. «Brannstasjon nr. 0001». Når du er ferdig, klikker du på «Neste»!", build_with_credits: "Bygg bygningen din med kreditter!", new_building: "Klikk på «Ny bygning»!", select_building: "Velg først bygningstypen du vil begynne med, vi anbefaler deg å begynne med brannvesenet! Det er også lurt å begynne med en liten stasjon.", select_position: "Flytt den blå markøren dit du vil bygge den første stasjonen din!" }, pick_location: "Velg først et sted å begynne! Skriv inn navnet der du vil begynne, eller finn det selv på kartet! Hva med hjembyen din?", welcome: "Hei og velkommen til Nødsentralspillet! Jeg skal lære deg hvordan du får en pangstart i nødetatenes verden!" }, mobile: { build_building: { add_name: "Så gir du stasjonen et navn. Gjør det gjenkjennelig og skalerbart! F.eks. «Brannstasjon nr. 0001». Når du er ferdig, klikker du på «Neste»!", build_with_credits: "Bygg bygningen din med kreditter!", new_building: "Først velger vi et sted å begynne og bygge vår første bygning.

    For å gjøre det klikker du på «Ny bygning»!", select_building: "Velg først bygningstypen du vil begynne med, vi anbefaler deg å begynne med brannvesenet! Det er også lurt å begynne med en liten stasjon." }, welcome: "Hei og velkommen til Nødsentralspillet! Jeg skal lære deg hvordan du får en pangstart i nødetatenes verden!" } }, mission: { detail: { browser: { dispatch_menu: "Dette er nødedatsmenyen. Her i fra kan du sende enhetene dine ut på oppdrag!", dispatch_menu_buttons: "Dette er dine to nødetatsknapper. Den første: «Nødetat» sender de valgte enhetene ut på oppdraget. Den andre gjør det samme som den første, men går ut på neste oppdrag. Klikk på den første knappen.", dispatch_menu_mission_general: "Her kan du se generell oppdragsinfo, altså navnet, adressen og oppdragsikonet. Ikonet av den lille mannen dukker opp og erstatter en liten stjerne på oppdrag du allerede deltar på.", dispatch_menu_mission_progress: "Her kan du se hvor mye framdrift som er gjort på oppdraget, samt antallet personell på stedet og hvor mye tid du har igjen.", dispatch_menu_mission_specific: "Her kan du se info om oppdraget, hvilke enheter som svarer på nødanropet og hvem som allerede er på stedet.", dispatch_menu_vehicle_list: "Dette er listen over dine tilgjengelige fremkomstmidler. Velg fremkomstmidler her. Velg fremkomstmiddelet ved å klikke på det." }, mobile: { dispatch_menu: "Dette er nødedatsmenyen. Her i fra kan du sende enhetene dine ut på oppdrag!", dispatch_menu_buttons: "Dette er dine to nødetatsknapper. Den første: «Nødetat» sender de valgte enhetene ut på oppdraget. Den andre gjør det samme som den første, men går ut på neste oppdrag. Klikk på den første knappen.", dispatch_menu_mission_general: "Her kan du se generell oppdragsinfo, altså navnet, adressen og oppdragsikonet. Ikonet av den lille mannen dukker opp og erstatter en liten stjerne på oppdrag du allerede deltar på.", dispatch_menu_mission_progress: "Her kan du se hvor mye framdrift som er gjort på oppdraget, samt antallet personell på stedet og hvor mye tid du har igjen.", dispatch_menu_mission_specific: "Her kan du se info om oppdraget, hvilke enheter som svarer på nødanropet og hvem som allerede er på stedet.", dispatch_menu_vehicle_list: "Dette er listen over dine tilgjengelige fremkomstmidler. Velg fremkomstmidler her. Velg fremkomstmiddelet ved å klikke på det." } }, overview: { browser: { dispatch_button: "Nå skal vi lære å håndtere ulykker. Åpne nødetatsmenyen ved å klikke på en nødetatsknapp.", first_mission: "Flott, du har bygget din første bygning! Se, de første oppdragene ble meldt inn til deg!" }, mobile: { dispatch_button: "Nå skal vi lære å håndtere ulykker. Åpne nødetatsmenyen ved å klikke på en nødetatsknapp.", first_mission: "Flott, du har bygget din første bygning! Se, de første oppdragene ble meldt inn til deg!" } } }, rewards: { browser: { general: "Flott, nå er du på vei til å bli en god nødsentralleder! Her får du %{coins} mynter for å komme i gang!
    Nødsentralspillet-teamet" }, mobile: { general: "Flott, nå er du på vei til å bli en god nødsentralleder! Her får du %{coins} mynter for å komme i gang!
    Nødsentralspillet-teamet" } }, tips: { browser: { contact: "Hvis du har spørsmål, kan du sjekke med spillets Vanlige spørsmål eller gå til spillforumet eller Facebook-siden vår.", general: "I neste trinn anbefaler vi deg å bygge et nødetatssenter og så snart som mulig nye stasjoner, siden maks antall oppdrag er lik det høyeste antallet stasjoner av en stasjonstype (politi, brann, ambulanse) pluss 1. F.eks. 5 brannstasjoner og 3 ambulansestasjoner = 6 oppdrag.", join_alliance: "Det er også nyttig å bli med i allianser, spesielt i begynnelsen, så det anbefales også.", summary: "Dette er det grunnleggende i Nødsentralspillet! Utfør oppdrag, få kreditter, kjøp flere enheter og gjenta. Kos deg med spillingen!
    Nødsentralspillet-teamet" }, mobile: { contact: "Hvis du har spørsmål, kan du sjekke med spillets Vanlige spørsmål eller gå til spillforumet eller Facebook-siden vår.", general: "I neste trinn anbefaler vi deg å bygge et nødetatssenter og så snart som mulig nye stasjoner, siden maks antall oppdrag er lik det høyeste antallet stasjoner av en stasjonstype (politi, brann, ambulanse) pluss 1. F.eks. 5 brannstasjoner og 3 ambulansestasjoner = 6 oppdrag.", join_alliance: "Det er også nyttig å bli med i allianser, spesielt i begynnelsen, så det anbefales også.", summary: "Dette er det grunnleggende i Nødsentralspillet! Utfør oppdrag, få kreditter, kjøp flere enheter og gjenta. Kos deg med spillingen!
    Nødsentralspillet-teamet" } } }, commons: { collect: "Hent", "continue": "Nei", end: "Slutt", next: "Neste", prev: "Forrige", skip: "Ja", skip_hint: "Vil du avslutte veiledningen? Den vil ikke være tilgjengelig senere. Du vil ikke få belønningen for fullført veiledning." }, rewards: { log: "Belønning for å fullføre veiledningen." } }, policechief: { tutorial: { beginner: { building: { browser: { build_building: { add_name: "Så gir du stasjonen et navn. Gjør det gjenkjennelig og skalerbart! F.eks. «Politistasjon nr. 0001». Når du er ferdig, klikker du på «Neste»!", select_building: "Velg først bygningstypen du vil begynne med, vi anbefaler deg å begynne med politistasjon! Det er også lurt å begynne med en liten stasjon." }, welcome: "Hei og velkommen til Nødsentralspillet Politiet! Jeg skal lære deg hvordan du får en pangstart i nødetatenes verden!" }, mobile: { build_building: { add_name: "Så gir du stasjonen et navn. Gjør det gjenkjennelig og skalerbart! F.eks. «Politistasjon nr. 0001». Når du er ferdig, klikker du på «Neste»!", select_building: "Velg først bygningstypen du vil begynne med, vi anbefaler deg å begynne med politistasjon! Det er også lurt å begynne med en liten stasjon." }, welcome: "Hei og velkommen til Nødsentralspillet Politiet! Jeg skal lære deg hvordan du får en pangstart i nødetatenes verden!" } }, rewards: { browser: { general: "Flott, nå er du på vei til å bli en god nødsentralleder! Her får du %{coins} mynter for å komme i gang!
    Nødsentralspillet-teamet" }, mobile: { general: "Flott, nå er du på vei til å bli en god nødsentralleder! Her får du %{coins} mynter for å komme i gang!
    Nødsentralspillet-teamet" } }, tips: { browser: { summary: "Dette er det grunnleggende i Nødsentralspillet Politiet! Utfør oppdrag, få kreditter, kjøp flere enheter og gjenta. Kos deg med spillingen!
    Nødsentralspillet-teamet" }, mobile: { summary: "Dette er det grunnleggende i Nødsentralspillet Politiet! Utfør oppdrag, få kreditter, kjøp flere enheter og gjenta. Kos deg med spillingen!
    Nødsentralspillet-teamet" } } } } }, number: { format: { delimiter: " ", precision: 3, separator: ",", significant: !1, strip_insignificant_zeros: !1 } } }, I18n.translations.cs_CZ = { common: { add: "Přidat", back: "Zpět", cancel: "Zrušit", change_saved: "Změny uloženy", coins_spend: "Opravdu chcete mince utratit?", congratulations: "Blahopřejeme!", content: "Obsah", credits: "Kredity", "delete": "Odstranit", details: "Podrobnosti", edit: "Upravit", error: "Chyba", is_offline: "%{user} je offline.", is_offline_long: "%{user} je už dlouho offline", is_offline_with_duration: "%{user} je offline: %{duration}", is_online: "%{user} je online.", loading: "Načítání…", name: "Název", none: "Nic", of: "z", off: "Vyp.", on: "Zap.", save: "Uložit", search: "Hledat", show: "Zobrazit", user_not_found: "Uživatel nenalezen", wrong_key: "Nesprávná klávesa" }, javascript: { alarm: "Výjezd", arrival: "Příjezd", backalarm: "Zrušit", coins: "Mince", credits: "Kredity", days: "d", few_seconds: "za pár sekund", finish_in: "Konec za:", hours: "h", location_not_found: "Nenalezeno", messages: "Zprávy", minutes: "min", missed_vehicle: "Chybí:", mission_start_in: "Začne za:", "new": "Nový", not_found_map: "Vozidlo nebylo nalezeno nikde na mapě", now: "Teď", patient: "Pacient", patient_untouched: "Neošetření pacienti", poi_delete: "Opravdu chcete odstranit bod zájmu: %{caption}?", reload: "Obnovit", sale: "Prodej", sale_ended: "Prodej ukončen", secounds: "s", sicherheitswache_error: "Hlídka %{caption} nebyla úspěšná, protože nebyla splněna všechna kritéria.", sicherheitswache_success: "Hlídka %{caption} byla úspěšná. Získáte %{credits} kreditů.", start_in: "Začátek za: ", start_username: "Zahájil uživatel:", time_left: "Zbývající čas:", to_building: "Zobrazit budovu", to_mission: "Zobrazit misi", understand: "OK", user_not_found: "Hráč nebyl nalezen.", vehicles_not_visible: "Vozidla nejsou vidět. " }, map: { alliance: "Aliance", alliance_chat: "Chat", alliance_chat_banned: "Z aliančního chatu jste aktuálně vypovězeni.", alliance_chat_banned_admin: "Ban od hráče:", alliance_chat_banned_timeleft: "Zbývající čas:", alliance_chat_radio_off: "Alianční vysílačka: Vyp.", alliance_chat_radio_on: "Alianční vysílačka: Zap.", alliance_event: "Akce", alliance_missions: "Alianční mise", alliance_missions_event: "Akce", ambulance: "Sanitka", anti_abuse_active_link: "Kliknutím zde zobrazte další informace.", anti_abuse_active_text: "Mise se objeví v rozšířeném okruhu 100 km, protože bylo postaveno příliš mnoho stanic stejného typu blízko u sebe.", attended: "Řešené", cancel_alliance_event: "Zrušit alianční akci", cancel_alliance_event_confirm: "Opravdu chcete alianční akci zrušit?", challenges: "Výzvy", chat_history: "Historie chatu", congratulations: "Blahopřejeme! Nyní můžete povýšit.", create_alliance_event: "Zahájit alianční akci", create_alliance_operation: "Vytvořit velkou alianční misi", emergency: "Stav nouze", finishing: "Dokončované", join_alliance_infos: "V alianci vám ostatní hráči můžou dávat mise.", map: "Mapa", map_filters: { all_buildings: "Budovy", all_missions: "Mise", alliance_buildings: "Alianční budovy", alliance_members: "Členové", alliance_missions: "Sdíleno aliancí", ambulance_station_missions: "Výjezdové stanoviště ZZS", ambulance_station_small_missions: "Výjezdové stanoviště ZZS (malá)", building_complex: "Komplex budov", buildings_section: "Stanice", clinic_missions: "Klinika", dispatch_center_missions: "Operační středisko", fire_school_missions: "Školní a výcvikové zařízení HZS", firehouse_missions: "Požární stanice", firehouse_small_missions: "Požární stanice (malá)", hospital_missions: "Nemocnice", map_filters: "Seznam filtrů mapy", mission_positions: "Body zájmu (BZ)", mission_positions_section: "BZ", missions_section: "Mise", police_copter_station_missions: "Základna Letecké služby PČR", police_school_missions: "Policejní Akademie", police_small_missions: "Obvodní oddělení Policie (malé)", police_special_forces: "Speciální policejní jednotky", police_station_missions: "Obvodní oddělení Policie", prison_missions: "Policejní cela", rapid_deployment_group: "Krizový tým", rescue_copter_station_missions: "Základna Letecké záchranné služby", riot_police: "Pořádková jednotka", riot_police_missions: "Pořádková jednotka", staging_area_missions: "Přípravná oblast", technical_aid_organization: "Technická pomoc", technical_aid_organization_school: "Škola technické pomoci", user_buildings: "Moje budovy", user_missions: "Moje mise", water_watch: "Vodní záchranná služba", water_watch_missions: "Vodní záchranná služba" }, message: "Zpráva", mission: "Mise", missions_filtered_out: "Některé mise mohou být odfiltrovány. Zkontrolujte prosím své mapové filtry.", no_alliance_chat_impossible: "Nejste v žádné alianci.", no_alliance_missions: "K dispozici nejsou žádné alianční mise.", no_ambulance_missions: "Mise záchranné služby nejsou k dispozici. Objeví se, až když budete mít záchrannou službu a nemocnici.", no_emergency_missions: "Nouzové mise nejsou k dispozici. Objeví se, až postavíte první stanici.", no_radio_messages: "Na vysílačku vám nepřišly žádné zprávy.", radio_messages: "Vysílačka", restore_map: "Obnovit mapu", server_warning: "Údržba serveru v 00:00. Předpokládáme 6hodinové odstavení.", show_informations: "Zelená = Mise budou zobrazeny v seznamu. Červená = Mise nebudou zobrazeny.", sicherheitswache: "Plánované mise", transport: "Převoz", unattended: "Neřešené" }, fms: { going: "Na cestě", not_ready: "Mimo provoz", on_destination: "Na místě", on_place: "Na místě", patient_transported: "Převoz pacienta", prisoner_transported: "Převoz vězně", ready_home: "K dispozici", ready_traveling: "K dispozici (na cestě)", talking_wish: "Žádost o převoz", waiting_for_vehicle: "Čekání na odtah" }, intervention_order: { automatic_text_color: "Automatická barva textu", back: "Zpět", category: "Kategorie", colour: "Barva", column: "Sloupec", column_number: "Číslo sloupce", column_number_hint: "Když zadáte číslo sloupce, pravidlo nouzového výjezdu se zobrazí v příslušném sloupci na stránce nouzové situace.", create_intervention_order: "Vytvořit nové pravidlo nouzového výjezdu", "delete": "Odstranit", delete_all: "Odstranit všechna pravidla nouzových výjezdů", delete_all_confirm: "Opravdu chcete odstranit všechna pravidla? Exportované položky už nejsou k dispozici!", description: "Název", edit: "Upravit", "export": { "export": "Exportovat", "import": "Importovat", import_done: "Vybrané položky byly importovány a zaneseny do plánu nouzových výjezdů.", saved: "Export pravidel nouzových výjezdů", saved_text: "Pravidlo nouzového výjezdu je připravené k exportu. Ostatní hráči mohou pravidlo importovat pomocí odkazu. Pokud mezitím pravidlo změníte, změna se automaticky promítne i do exportu." }, hotkey_hint: "Přiřaďte tomuto výběru klávesu. V okně s misí stiskněte: ALT + klávesa (nebo ve Firefoxu: ALT + SHIFT + klávesa, nebo na Mac OS: CTRL + ALT + klávesa), a tím proveďte přednastavený výběr vozidel.", intervention_order: "Upravit pravidla nouzových výjezdů", name: "Název", no_intervention_created: "Zatím jste nevytvořili žádné pravidlo nouzového výjezdu.", options: "Možnosti", reset: "Vymazat předchozí výběr v okně nouzové situace.", reset_hint: "Pokud jste už v dispečerském okně vybrali vozidlo, můžete pomocí tohoto tlačítka výběr zrušit.", save: "Uložit", station: "Stanice", station_hint: "Když je vybrána některá budova, označí se pouze její vozidla.", successfully_created: "Pravidlo nouzového výjezdu bylo úspěšně vytvořeno.", successfully_deleted: "Pravidlo nouzového výjezdu odstraněno", successfully_updated: "Pravidlo nouzového výjezdu bylo úspěšně aktualizováno.", text_color: "Barva textu", vehicles: { ab_atemschutz_only: "Modul s dýchacími přístroji", ab_einsatzleitung_only: "Velitelský modul", ab_gefahrgut_only: "Modul pro práci s nebezpečnými látkami", ab_oel_only: "Modul pro likvidaci uniklé ropy", ab_ruest: "Technicko-záchranářský modul", ab_ruest_rw: "", abl2wasser_only: "Modul s hadicemi", ambulance: "Sanitka RZP", ambulance_or_rapid_responder: "", any_traffic_car: "Vozidlo vyšetřovatelů DN", arff: "Letištní speciál", battalion_chief_unit: "Velitelský automobil", boot: "Přívěs se člunem", dekon_p: "", division_chief_unit: "MOS", dlk_or_tm50: "", elw1_or_elw2: "VEA nebo MOS", elw2_or_ab_elw: "MOS nebo řízení provozu", elw3: "", elw_airport: "", emergency_ambulance: "Sanitka nebo vrtulník", fbi_bomb_tech: "Vozidlo pyrotechnika PČR", fire_truck: "Hasičské vozy", fireboat: "Velká hasičská loď", fly_car: "Lékařské vozidlo RV", fly_car_any: "Samochód Lekarza / SRMed / Motoambulans", fukw: "", fustw_or_police_motorcycle: "Policejní automobil nebo Policejní motocykl", fwk: "", gefkw: "", gkw: "Užitkový vůz", grtw: "Jednotka pro hromadná neštěstí", grtw0: "", grtw1: "", grukw: "", gw_atemschutz_only: "", gw_gefahrgut: "Nebezpečné látky", gw_gefahrgut_only: "", gw_hoehenrettung: "Výšková jednotka", gw_messtechnik: "Detekční jednotka", gw_oel_only: "", gw_san: "", gw_taucher: "Potápěčský automobil", gw_wasserrettung: "SUV VZS ČČK nebo Dodávka VZS ČČK", gw_werkfeuerwehr: "", gwl2wasser_only: "Vozidlo s hadicí", hems: "LZS", hlf_only: "", hlf_or_rw_and_lf: "", hondengeleider: "", k9: "Vozidlo Kynologů PČR", kdow_lna: "", kdow_orgl: "IP", kdow_orgl_any: "IP", ktw_b: "", ktw_or_rtw: "", lebefkw: "Lehčí velitelské vozidlo", lf_only: "Hasičské vozy", long_distance_ambulance: "Sanitka DZS", mask_service_unit: "Protiplynový automobil", mek_mtf: "", mek_zf: "", mtw: "Transportní týmový vůz", mzb: "Přívěs se člunem", naw: "", naw_or_rtw_and_nef: "", naw_or_rtw_and_nef_or_rth: "", nef_only: "Sanitka", oil_unit: "Ropná jednotka", only_ab_dekon_p: "", only_dekon_p: "", ovd_p: "", police_car: "Hlídkový vůz", police_motorcycle: "Policejní motocykl", polizeihubschrauber: "Policejní vrtulník", rescue_vehicle: "Technický automobil", rescue_vehicle_only: "Těžká záchranářská jednotka", rescueboat: "Velká záchranářská loď", rettungstreppe: "", rth_only: "Vrtulník LZS", schlauchwagen: "Kombinovaný hasící automobil", seg_elw: "", sek_mtf: "", sek_zf: "", swat: "URNA", swat_armored_vehicle: "Obrněné vozidlo URNA", swat_suv: "URNA SUV", thw_anh_mzab: "", thw_anh_mzb: "", thw_anh_schlb: "", thw_brmg_r: "", thw_dle: "", thw_lkw: "", thw_lkw_7_lkr_19_tm: "", thw_mlw5: "", thw_mtw: "Transportní vůz techniků", thw_mzkw: "Víceúčelové vozidlo", thw_tauchkraftwagen: "Potápěčský tým", thw_tauchkraftwagen_or_gw_taucher: "", tlf_only: "Vůz s cisternou", tm50: "", turboloescher: "", turntable_ladder: "AZ nebo AP", ulf: "", wasserwerfer: "", water_amount: "", water_amount_tlf: "" } }, tutorial: { beginner: { building: { browser: { build_building: { add_name: "Dál svou novou stanici pojmenujte. Název by měl být rozpoznatelný a škálovatelný. Např. „Hasičská stanice 1“. Až bude hotovo, klikněte na možnost „Další“.", build_with_credits: "Teď si budovu postavte za kredity.", new_building: "Klikněte na možnost „Nová budova“.", select_building: "Nejdřív si vyberte typ budovy, se kterou chcete začít. Doporučujeme začít s hasičskou stanicí. V každém případě doporučujeme začínat s malou stanicí.", select_position: "Přesuňte modrý ukazatel na místo, kde chcete postavit svou první stanici." }, pick_location: "Nejdřív si vyberte místo, kde chcete začít. Do vyhledávacího panelu napište název místa, ve kterém chcete začít, případně místo najděte na mapě. Co takhle město, ve kterém bydlíte?", welcome: "Zdravíme! Vítejte ve hře Operační středisko! V několika lekcích vás naučím, jak správně odstartovat kariéru v záchranných službách." }, mobile: { build_building: { add_name: "Dál svou novou stanici pojmenujte. Název by měl být rozpoznatelný a škálovatelný. Např. „Hasičská stanice 1“. Až bude hotovo, klikněte na možnost „Další“.", build_with_credits: "Teď si budovu postavte za kredity.", new_building: "Nejdřív vybereme počáteční místo a postavíme první budovu.

    Proveďte to kliknutím na možnost „Nová budova“.", select_building: "Nejdřív si vyberte typ budovy, se kterou chcete začít. Doporučujeme začít s hasičskou stanicí. V každém případě doporučujeme začínat s malou stanicí." }, welcome: "Zdravíme! Vítejte ve hře Operační středisko! V několika lekcích vás naučím, jak správně odstartovat kariéru v záchranných službách." } }, mission: { detail: { browser: { dispatch_menu: "Toto je nabídka výjezdů. Odtud na mise posíláte jednotky.", dispatch_menu_buttons: "Toto jsou dvě výjezdní tlačítka. První: „Výjezd“ vyšle vybrané jednotky na misi. Druhé dělá to samé jako první, ale přesune vás také na další misi. Prozatím klikněte na první tlačítko.", dispatch_menu_mission_general: "Dozvíte se zde obecné informace o misi, čili název, adresu a ikonu mise. U misí, které jste už začali řešit, se objeví ikonka člověka, která nahradí hvězdičku.", dispatch_menu_mission_progress: "Dozvíte se zde, kolik pokroku se na misi udělalo, a také počet záchranářů na místě. Uveden je také čas zbývající do splnění mise.", dispatch_menu_mission_specific: "Tady se dozvíte další podrobnosti o misi, které jednotky vyjedou a které už jsou na místě.", dispatch_menu_vehicle_list: "Toto je seznam vašich dostupných vozidel. Vozidla vybíráte zde. Teď vyberte vozidlo tak, že na něj kliknete." }, mobile: { dispatch_menu: "Toto je nabídka výjezdů. Odtud na mise posíláte jednotky.", dispatch_menu_buttons: "Toto jsou dvě výjezdní tlačítka. První: „Výjezd“ vyšle vybrané jednotky na misi. Druhé dělá to samé jako první, ale přesune vás také na další misi. Prozatím klikněte na první tlačítko.", dispatch_menu_mission_general: "Dozvíte se zde obecné informace o misi, čili název, adresu a ikonu mise. U misí, které jste už začali řešit, se objeví ikonka člověka, která nahradí hvězdičku.", dispatch_menu_mission_progress: "Dozvíte se zde, kolik pokroku se na misi udělalo, a také počet záchranářů na místě. Uveden je také čas zbývající do splnění mise.", dispatch_menu_mission_specific: "Tady se dozvíte další podrobnosti o misi, které jednotky vyjedou a které už jsou na místě.", dispatch_menu_vehicle_list: "Toto je seznam vašich dostupných vozidel. Vozidla vybíráte zde. Teď vyberte vozidlo tak, že na něj kliknete." } }, overview: { browser: { dispatch_button: "Teď se naučíme, jak se vypořádat s nehodami. Kliknutím na tlačítko „Výjezd“ otevřete nabídku výjezdů.", first_mission: "Výborně! Postavili jste svou vůbec první budovu! Podívejte, už se vám hlásí první mise." }, mobile: { dispatch_button: "Teď se naučíme, jak se vypořádat s nehodami. Kliknutím na tlačítko „Výjezd“ otevřete nabídku výjezdů.", first_mission: "Výborně! Postavili jste svou vůbec první budovu! Podívejte, už se vám hlásí první mise." } } }, rewards: { browser: { general: "Výborně! Jste na té nejlepší cestě stát se úžasným vedoucím operačního střediska. Zde máte %{coins} mincí na začátek.
    Váš tým hry Operační středisko" }, mobile: { general: "Výborně! Jste na té nejlepší cestě stát se úžasným vedoucím operačního střediska. Zde máte %{coins} mincí na začátek.
    Váš tým hry Operační středisko" } }, tips: { browser: { contact: "Pokud máte nějaké dotazy, můžete se podívat do častých dotazů o hře, případně navštivte naše herní fórum nebo stránku na Facebooku.", general: "V dalším kroku bychom vám doporučili postavit dispečink a poté co nejrychleji další stanice, jelikož maximální počet misí se rovná maximálnímu počtu stanic různého typu (policie, hasiči, záchranka) plus 1. Tedy např. 5 hasičských stanic a 3 stanice záchranky = 6 misí.", join_alliance: "Přidat se k alianci by vám rovněž mohlo velice pomoct, hlavně na začátku. Takže to také doporučujeme.", summary: "Toto jsou základy hry Operační středisko! Plňte mise, získávejte kredity, nakupujte další jednotky. Postup opakujte. Příjemnou zábavu při hraní!
    Váš tým hry Operační středisko" }, mobile: { contact: "Pokud máte nějaké dotazy, můžete se podívat do častých dotazů o hře, případně navštivte naše herní fórum nebo stránku na Facebooku.", general: "V dalším kroku bychom vám doporučili postavit dispečink a poté co nejrychleji další stanice, jelikož maximální počet misí se rovná maximálnímu počtu stanic různého typu (policie, hasiči, záchranka) plus 1. Tedy např. 5 hasičských stanic a 3 stanice záchranky = 6 misí.", join_alliance: "Přidat se k alianci by vám rovněž mohlo velice pomoct, hlavně na začátku. Takže to také doporučujeme.", summary: "Toto jsou základy hry Operační středisko! Plňte mise, získávejte kredity, nakupujte další jednotky. Postup opakujte. Příjemnou zábavu při hraní!
    Váš tým hry Operační středisko" } } }, commons: { collect: "Sebrat", "continue": "Ne", end: "Konec", next: "Další", prev: "Předchozí", skip: "Ano", skip_hint: "Opravdu chcete výuku zrušit? Později už se k ní nedostanete. Nedostanete odměnu za dokončení výuky." }, rewards: { log: "Odměna za dokončení výuky." } }, policechief: { tutorial: { beginner: { building: { browser: { build_building: { add_name: "Dál svou novou stanici pojmenujte. Název by měl být rozpoznatelný a škálovatelný. Např. „Obvodní oddělení Policie 001“. Až bude hotovo, klikněte na možnost „Další“.", select_building: "Nejdřív si vyberte typ budovy, se kterou chcete začít. Doporučujeme začít s policejní stanicí. V každém případě doporučujeme začínat s malou stanicí." }, welcome: "Zdravíme! Vítejte ve hře Operační středisko Policie! V několika lekcích vás naučím, jak správně odstartovat kariéru v záchranných službách." }, mobile: { build_building: { add_name: "Dál svou novou stanici pojmenujte. Název by měl být rozpoznatelný a škálovatelný. Např. „Obvodní oddělení Policie 001“. Až bude hotovo, klikněte na možnost „Další“.", select_building: "Nejdřív si vyberte typ budovy, se kterou chcete začít. Doporučujeme začít s policejní stanicí. V každém případě doporučujeme začínat s malou stanicí." }, welcome: "Zdravíme! Vítejte ve hře Operační středisko Policie! V několika lekcích vás naučím, jak správně odstartovat kariéru v záchranných službách." } }, rewards: { browser: { general: "Výborně! Jste na té nejlepší cestě stát se úžasným vedoucím operačního střediska policie. Zde máte %{coins} mincí na začátek.
    Váš tým hry Operační středisko Policie" }, mobile: { general: "Výborně! Jste na té nejlepší cestě stát se úžasným vedoucím operačního střediska policie. Zde máte %{coins} mincí na začátek.
    Váš tým hry Operační středisko Policie" } }, tips: { browser: { summary: "Toto jsou základy hry Operační středisko Policie! Plňte mise, získávejte kredity, nakupujte další jednotky. Postup opakujte. Příjemnou zábavu při hraní!
    Váš tým hry Operační středisko Policie" }, mobile: { summary: "Toto jsou základy hry Operační středisko Policie! Plňte mise, získávejte kredity, nakupujte další jednotky. Postup opakujte. Příjemnou zábavu při hraní!
    Váš tým hry Operační středisko Policie" } } } } }, number: { format: { delimiter: " ", precision: 3, separator: ",", significant: !1, strip_insignificant_zeros: !1 } } }, I18n.translations.tr_TR = { common: { add: "Ekle", back: "Geri", cancel: "İptal et", change_saved: "Değişiklikler kaydedildi", coins_spend: "Gerçekten bu altınları harcamak istiyor musun?", congratulations: "Tebrikler!", content: "İçerik", credits: "Krediler", "delete": "Sil", details: "Ayrıntılar", edit: "Düzenle", error: "Hata", is_offline: "%{user} çevrim dışı.", is_offline_long: "Uzun süre: %{user} çevrim dışı", is_offline_with_duration: "%{user} çevrim dışı: %{duration}", is_online: "%{user} çevrim içi.", loading: "Yükleniyor...", name: "Ad", none: "Yok", of: "/", off: "Kapalı", on: "Açık", save: "Kaydet", search: "Ara", show: "Göster", user_not_found: "Kullanıcı bulunmadı", wrong_key: "Yanlış tuş" }, javascript: { alarm: "Sevk Et", arrival: "Varış", backalarm: "İptal et", coins: "Altın", credits: "Krediler", days: "gün", few_seconds: "birkaç saniyede", finish_in: "Bitir:", hours: "S", location_not_found: "Bulunmadı", messages: "Mesajlar", minutes: "dk.", missed_vehicle: "Eksik:", mission_start_in: "Başlıyor:", "new": "Yeni", not_found_map: "Araç haritada bulunamadı", now: "Şimdi", patient: "Hasta", patient_untouched: "Tedavi edilmeyen hastalar", poi_delete: "%{caption} İlgili Alanını silmek istediğinden emin misin?", reload: "Yeniden yükle", sale: "Satış", sale_ended: "İndirim sona erdi.", secounds: "sn.", sicherheitswache_error: 'Tüm kriterler sağlanmadığı için güvenlik koruması "%{caption}" başarılı olamadı.', sicherheitswache_success: 'Güvenlik koruması "%{caption}" başarıyla gerçekleştirildi. %{credits} Kredi al.', start_in: "Başlıyor: ", start_username: "Başlatan:", time_left: "Kalan süre:", to_building: "Yapıyı Görüntüle", to_mission: "Görevi Görüntüle", understand: "Onayla", user_not_found: "Oyuncu bulunamadı.", vehicles_not_visible: "Araçlar görünmüyor. " }, map: { alliance: "Birlik", alliance_chat: "Sohbet", alliance_chat_banned: "Şu anda birlik sohbetinde yasaklısın.", alliance_chat_banned_admin: "Yasaklayan:", alliance_chat_banned_timeleft: "Kalan süre:", alliance_chat_radio_off: "Birlik Radyosu: Kapalı", alliance_chat_radio_on: "Birlik Radyosu: Açık", alliance_event: "Etkinlik", alliance_missions: "Birlik Görevleri", alliance_missions_event: "Etkinlik", ambulance: "Ambulans", anti_abuse_active_link: "Click here for more information.", anti_abuse_active_text: "Missions will be generated within an extended radius of 100km, since too many stations of the same type are built too close to each other.", attended: "Attended", cancel_alliance_event: "Cancel alliance event", cancel_alliance_event_confirm: "Do you really want to cancel the alliance event?", challenges: "", chat_history: "Sohbet Geçmişi", congratulations: "Tebrikler! Artık terfi alabilirsin.", create_alliance_event: "Birlik etkinliği başlat", create_alliance_operation: "Büyük ölçekli bir birlik görevi oluştur", emergency: "Acil Durum", finishing: "Finishing", join_alliance_infos: "Bir birlikteysen diğer oyuncular sana istedikleri gibi görevler verebilirler.", map: "Harita", map_filters: { all_buildings: "Yapılar", all_missions: "Görevler", alliance_buildings: "Birlik Yapıları", alliance_members: "Üyeler", alliance_missions: "Birlik Paylaşımları", ambulance_station_missions: "Ambulans İstasyonu", ambulance_station_small_missions: "Ambulans istasyonu (Küçük istasyon)", building_complex: "Building Complex", buildings_section: "İstasyonlar", clinic_missions: "Klinik", dispatch_center_missions: "Sevk Merkezi", fire_school_missions: "İtfaiye Akademisi", firehouse_missions: "İtfaiye İstasyonu", firehouse_small_missions: "İtfaiye İstasyonu (Küçük)", hospital_missions: "Hastane", map_filters: "Harita filtreleri listesi", mission_positions: "İlgi Alanları (POI'ler)", mission_positions_section: "POI'ler", missions_section: "Görevler", police_copter_station_missions: "Polis helikopter heliportu", police_school_missions: "Polis akademisi", police_small_missions: "Polis Karakolu (Küçük karakol)", police_special_forces: "Polis özel harekat", police_station_missions: "Polis Karakolu", prison_missions: "Hapishane", rapid_deployment_group: "Hızlı Kurulum Grubu (SEG)", rescue_copter_station_missions: "Tıbbi Helikopter İstasyonu", riot_police: "Çevik Kuvvet", riot_police_missions: "Çevik Kuvvet", staging_area_missions: "Toplanma Alanı", technical_aid_organization: "THW", technical_aid_organization_school: "THW Bundesschule", user_buildings: "Yapılarım", user_missions: "Görevlerim", water_watch: "Su Kurtarma", water_watch_missions: "Su Kurtarma" }, message: "Mesaj", mission: "Görev", missions_filtered_out: "Bazı görevler filtrelenebilir. Lütfen harita filtrelerinizi kontrol edin.", no_alliance_chat_impossible: "Bir birlikte değilsin.", no_alliance_missions: "Şu anda hiçbir birlik görevi yok.", no_ambulance_missions: "Hiçbir ambulans görevi yok. Ambulans görevlerini sadece bir ambulansa ve bir hastaneye sahip olduğunda yapabilirsin.", no_emergency_missions: "Şu anda hiçbir acil durum görevi yok. İlk istasyonunu yaptıktan sonra bir acil durum görevi alabilirsin.", no_radio_messages: "Hiçbir radyo mesajı almadın.", radio_messages: "Radyo", restore_map: "Haritayı Geri Yükle", server_warning: "Server maintenance at 18:00 UTC. 6h downtime expected.", show_informations: "Yeşil = Görevler liste içinde gösterilir. Kırmızı = Görevler gösterilmez.", sicherheitswache: "Planlanan Gösterimler", transport: "Nakil", unattended: "Unattended" }, fms: { going: "Müdahale ediyor", not_ready: "Hizmet Dışı", on_destination: "Nakil varış noktasında", on_place: "Olay Yerinde", patient_transported: "Hasta Nakil Ediliyor", prisoner_transported: "Mahkum Nakil Ediliyor", ready_home: "İstasyonda Hazır", ready_traveling: "Boşta ve Kullanılabilir", talking_wish: "Nakil Talebi", waiting_for_vehicle: "Araç tarafından çekilmeyi bekliyor" }, intervention_order: { automatic_text_color: "Automatic Text Color", back: "Geri", category: "Kategori", colour: "Renk", column: "Sütun", column_number: "Sütun sayısı", column_number_hint: "Bir sütun sayısı verildiyse Alarm ve Müdahale girdisi, alarm sayfasındaki ilgili sütunda görüntülenecektir.", create_intervention_order: "Yeni Alarm ve Müdahale Düzenlemesi oluştur", "delete": "Sil", delete_all: "Alarm ve Müdahale Düzenlemelerini tamamen sil", delete_all_confirm: "Tüm alarm ve müdahale düzenlemesini silmek istediğinden emin misin? Daha önceden dışa aktarılmış girdiler artık kullanılamaz!", description: "Ad", edit: "Düzenle", "export": { "export": "Dışa aktar", "import": "İçe aktar", import_done: "Seçili girdiler içe aktarıldı ve Alarm ve Müdahale planına kaydedildi.", saved: "Alarm ve Müdahale Düzenlemelerinin Dışa Aktarımları", saved_text: "Alarm ve Müdahale Düzenlemesi dışa aktarım için hazırlandı. Bu bağlantı ile başka bir oyuncu Alarm ve Müdahale Düzenlemesini içe aktarabilir. Bu esnada Alarm ve Müdahale Düzenlemesini değiştirirsen bu değişiklik dışa aktarımda otomatik olarak uygulanacak." }, hotkey_hint: "Bu araç seçimi için bir kısayol tuşu seç. Pencerendeki göreve bas: ALT + kısayol tuşun (veya Firefox'ta: ALT + SHIFT + kısayol tuşun veya Mac işletim sisteminde: ctrl + alt + kısayol tuşun) ile araç seçimini yap.", intervention_order: "Alarm ve Müdahale Düzenlemelerini düzenle", name: "Ad", no_intervention_created: "Henüz hiçbir Alarm ve Müdahale Düzenlemesi oluşturmadın.", options: "Seçenekler", reset: "Önceki seçimi alarm penceresinde sıfırla.", reset_hint: "Aracı sevk penceresinde seçtiysen onu sıfırlamak için bu tuşu kullanabilirsin.", save: "Kaydet", station: "İstasyon", station_hint: "Bir yapı seçildiğinde sadece ilgili yapıya ait araçlar seçilecektir.", successfully_created: "Alarm ve Müdahale Düzenlemesi başarıyla oluşturuldu.", successfully_deleted: "Alarm ve Müdahale Düzenlemesi silindi", successfully_updated: "Alarm ve Müdahale Düzenlemesi başarıyla güncellendi.", text_color: "Text Color", vehicles: { ab_atemschutz_only: "SCBA Modülü", ab_einsatzleitung_only: "Komuta Modülü", ab_gefahrgut_only: "Tehlikeli Madde Modülü", ab_oel_only: "Yağ Sızıntısı Modülü", ab_ruest: "Teknik/Kurtarma Modülü", ab_ruest_rw: "", abl2wasser_only: "Hortumla Besleme Modülü", ambulance: "ALS ambulansı", ambulance_or_rapid_responder: "", arff: "ARFF (Havalimanı İtfaiye Aracı)", battalion_chief_unit: "Tabur Amiri birimi", boot: "Botlar (Genel)", dekon_p: "", division_chief_unit: "Mobil Komuta Aracı", dlk_or_tm50: "", elw1_or_elw2: "Tabur Amiri Birimi, Mobil Komuta Aracı veya Mobil Komuta Modülü ", elw2_or_ab_elw: "", elw3: "", elw_airport: "", emergency_ambulance: "Acil durum ambulansı veya Helikopteri", fire_truck: "İtfaiye Araçları", fireboat: "Büyük İtfaiye Botları", fly_car: "Uçan Araba", fukw: "", fwk: "", gefkw: "", gkw: "Hizmet Kamyonu", grtw: "Mobil Hastane Aracı", grtw0: "", grtw1: "", grukw: "", gw_atemschutz_only: "", gw_gefahrgut: "Tehlikeli Madde", gw_gefahrgut_only: "", gw_hoehenrettung: "GW-Höhenrettung", gw_messtechnik: "GW-Messtechnik", gw_oel_only: "", gw_san: "", gw_taucher: "", gw_wasserrettung: "Su Toplama", gw_werkfeuerwehr: "", gwl2wasser_only: "Hortumlu Araç", hems: "Hızır Acil Helikopteri", hlf_only: "", hlf_or_rw_and_lf: "", hondengeleider: "", k9: "Polis K-9 Aracı", kdow_lna: "", kdow_orgl: "Hızır Acil Amiri", ktw_b: "", ktw_or_rtw: "", lebefkw: "Leichter Befehlskraftwagen (leBefKw)", lf_only: "İtfaiye Araçları", long_distance_ambulance: "BLS ambulansı", mask_service_unit: "Mobil Hava Birimi", mek_mtf: "", mek_zf: "", mtw: "MTW", mzb: "Çok Amaçlı Bot", naw: "", naw_or_rtw_and_nef: "", naw_or_rtw_and_nef_or_rth: "", nef_only: "Ambulans", oil_unit: "GW-Öl", only_ab_dekon_p: "", only_dekon_p: "", ovd_p: "", police_car: "Devriye arabası", polizeihubschrauber: "Polis helikopteri", rescue_vehicle: "Büyük kurtarma aracı", rescue_vehicle_only: "Büyük Kurtarma", rescueboat: "Büyük Kurtarma Botu", rettungstreppe: "", rth_only: "Helikopter", schlauchwagen: "Su Tankeri", seg_elw: "", sek_mtf: "", sek_zf: "", swat: "PÖH", swat_armored_vehicle: "PÖH Zırhlı Aracı", swat_suv: "PÖH SUV", thw_anh_mzab: "", thw_anh_mzb: "", thw_anh_schlb: "", thw_brmg_r: "", thw_dle: "", thw_lkw: "", thw_lkw_7_lkr_19_tm: "", thw_mlw5: "", thw_mtw: "Mannschaftstransportwagen Technischer Zug (MTW-TZ - THW)", thw_mzkw: "Mehrzweckkraftwagen (MzKW)", thw_tauchkraftwagen: "Dalış Ekibi", thw_tauchkraftwagen_or_gw_taucher: "", tlf_only: "Tanker", tm50: "", turboloescher: "", turntable_ladder: "Platformlu kamyonlar", ulf: "", wasserwerfer: "", water_amount: "", water_amount_tlf: "" } }, tutorial: { beginner: { building: { browser: { build_building: { add_name: 'İkinci adımda yeni istasyonuna bir isim ver! Farkedilebilir ve ölçeklenebilir olsun! Ör. "İtfaiye istasyonu no. 0001". İşin bittiğinde lütfen "İleri" ögesine tıkla!', build_with_credits: "Şimdi binanı kredilerinle inşa et!", new_building: '"Yeni bina" ögesine tıkla!', select_building: "Öncelikle başlamak istediğin bina tipini seç, itfaiye ile başlamanı şiddetle tavsiye ederiz! Her durumda küçük bir istasyonla başlaman daha iyi olur!", select_position: "Mavi işaretçiyi ilk istasyonunu inşa etmek istediğin yere taşı!" }, pick_location: "Başlamak için önce bir konum seç! Başlamak istediğin konumun adını arama çubuğuna yaz veya haritada kendin bul! Memleketine ne dersin?", welcome: "Merhaba, 112 Merkez'e hoş geldin! Acil servis kariyerine güzel bir başlangıç yapmana yardımcı olacak bazı tüyolar vereceğim sana!" }, mobile: { build_building: { add_name: 'İkinci adımda yeni istasyonuna bir isim ver! Farkedilebilir ve ölçeklenebilir olsun! Ör. "İtfaiye istasyonu no. 0001". İşin bittiğinde lütfen "İleri" ögesine tıkla!', build_with_credits: "Şimdi binanı kredilerinle inşa et!", new_building: 'Başlamak için önce bir konum seçecek ve ilk binanı inşa edeceğiz!

    Bunun için "Yeni bina" ögesine tıkla!', select_building: "Öncelikle başlamak istediğin bina tipini seç, itfaiye ile başlamanı şiddetle tavsiye ederiz! Her durumda küçük bir istasyonla başlaman daha iyi olur!" }, welcome: "Merhaba, 112 Merkez'e hoş geldin! Acil servis kariyerine güzel bir başlangıç yapmana yardımcı olacak bazı tüyolar vereceğim sana!" } }, mission: { detail: { browser: { dispatch_menu: "Bu sevk etme menüsüdür. Buradan birliklerini görevlere gönderirsin!", dispatch_menu_buttons: 'Bunlar ise senin için iki sevk düğmesi! İlki: "Sevk et" seçilen birimleri göreve gönderir. İkincisi birinciyle aynı şeyi yapar, ancak bir sonraki göreve gider. Şimdilik ilk düğmeye tıkla.', dispatch_menu_mission_general: "Burada görevin adı, adresi ve simgesi gibi genel görev bilgilerini görebilirsin. Daha önce katıldığın görevlerde, küçük yıldızın yerini küçük adam simgesi alır.", dispatch_menu_mission_progress: "Burada bu görevle başa çıkmak için ne kadar ilerleme kaydedildiğini, ayrıca sahadaki personel sayısını ve görevin üstesinden gelmek için kalan süreyi görebilirsin!", dispatch_menu_mission_specific: "Burada, hangi birimlerin çağrıya yanıt verdiği ve hangilerinin çoktan sahada olduğu gibi görev hakkında daha fazla bilgi görebilirsin.", dispatch_menu_vehicle_list: "Bu, mevcut araçlarının listesidir. Burada araçları seçersin. Şimdi üzerine tıklayarak aracını seç!" }, mobile: { dispatch_menu: "Bu sevk etme menüsüdür. Buradan birliklerini görevlere gönderirsin!", dispatch_menu_buttons: 'Bunlar ise senin için iki sevk düğmesi! İlki: "Sevk et" seçilen birimleri göreve gönderir. İkincisi birinciyle aynı şeyi yapar, ancak bir sonraki göreve gider. Şimdilik ilk düğmeye tıkla.', dispatch_menu_mission_general: "Burada görevin adı, adresi ve simgesi gibi genel görev bilgilerini görebilirsin. Daha önce katıldığın görevlerde, küçük yıldızın yerini küçük adam simgesi alır.", dispatch_menu_mission_progress: "Burada bu görevle başa çıkmak için ne kadar ilerleme kaydedildiğini, ayrıca sahadaki personel sayısını ve görevin üstesinden gelmek için kalan süreyi görebilirsin!", dispatch_menu_mission_specific: "Burada, hangi birimlerin çağrıya yanıt verdiği ve hangilerinin çoktan sahada olduğu gibi görev hakkında daha fazla bilgi görebilirsin.", dispatch_menu_vehicle_list: "Bu, mevcut araçlarının listesidir. Burada araçları seçersin. Şimdi üzerine tıklayarak aracını seç!" } }, overview: { browser: { dispatch_button: 'Şimdi olaylarla nasıl başa çıkacağımızı öğrenelim. Bir "sevk et" düğmesine tıklayarak sevk etme menüsünü aç!', first_mission: "Harika, ilk binanı inşa ettin! Bak, ilk görevler geldi bile!" }, mobile: { dispatch_button: 'Şimdi olaylarla nasıl başa çıkacağımızı öğrenelim. Bir "sevk et" düğmesine tıklayarak sevk etme menüsünü aç!', first_mission: "Harika, ilk binanı inşa ettin! Bak, ilk görevler geldi bile!" } } }, rewards: { browser: { general: "Harika, mükemmel bir 112 Merkezi olma yolundasın! İşte sana başlamana yardımcı olmak için %{coins} Altın!
    112 Merkez ekibin" }, mobile: { general: "Harika, mükemmel bir 112 Merkezi olma yolundasın! İşte sana başlamana yardımcı olmak için %{coins} Altın!
    112 Merkez ekibin" } }, tips: { browser: { contact: "Soruların varsa oyun içi SSS bölümüne başvurabilir veya oyun forumlarını veya facebook sayfamızı ziyaret edebilirsin!", general: "Bir sonraki adım olarak, bir sevk merkezi ve sonra mümkün olan en kısa sürede yeni istasyonlar inşa etmeni öneririz, çünkü maksimum görev sayısı farklı tipteki istasyonlardan (polis, itfaiye, ambulans) en fazla olanın 1 fazlasına eşittir; ör. 5 itfaiye ve 3 ambulans istasyonu = 6 görev demektir.", join_alliance: "Ayrıca, bir ittifaka katılmak özellikle başlangıçta sana çok yardımcı olacaktır, bu yüzden bunu da tavsiye ederiz.", summary: "İşte bunlar 112 Merkez'in temel özellikleri! Görevleri yerine getir, kredi al, daha fazla birim satın al ve bunları tekrarla. Oyunda iyi eğlenceler!
    112 Merkez ekibin" }, mobile: { contact: "Soruların varsa oyun içi SSS bölümüne başvurabilir veya oyun forumlarını veya facebook sayfamızı ziyaret edebilirsin!", general: "Bir sonraki adım olarak, bir sevk merkezi ve sonra mümkün olan en kısa sürede yeni istasyonlar inşa etmeni öneririz, çünkü maksimum görev sayısı farklı tipteki istasyonlardan (polis, itfaiye, ambulans) en fazla olanın 1 fazlasına eşittir; ör. 5 itfaiye ve 3 ambulans istasyonu = 6 görev demektir.", join_alliance: "Ayrıca, bir ittifaka katılmak özellikle başlangıçta sana çok yardımcı olacaktır, bu yüzden bunu da tavsiye ederiz.", summary: "İşte bunlar 112 Merkez'in temel özellikleri! Görevleri yerine getir, kredi al, daha fazla birim satın al ve bunları tekrarla. Oyunda iyi eğlenceler!
    112 Merkez ekibin" } } }, commons: { collect: "Topla", "continue": "Hayır", end: "Bitir", next: "Sonraki", prev: "Önceki", skip: "Evet", skip_hint: "Eğitimi gerçekten iptal etmek istiyor musun? Daha sonra erişmek mümkün olmayacak. Eğitim tamamlama ödülü alamayacaksın." }, rewards: { log: "Eğitimi tamamlama ödülü." } }, number: { format: { delimiter: ".", precision: 3, separator: ",", significant: !1, strip_insignificant_zeros: !1 } } }, I18n.translations.pt_PT = { common: { add: "Adicionar", back: "Voltar", cancel: "Cancelar", change_saved: "Alterações salvas", coins_spend: "Deseja mesmo gastar estas moedas?", congratulations: "Parabéns!", content: "Conteúdo", credits: "Créditos", "delete": "Apagar", details: "Detalhes", edit: "Editar", error: "Erro", is_offline: "%{user} está offline.", is_offline_long: "Tempo: %{user} está offline", is_offline_with_duration: "%{user} está offline: %{duration}", is_online: "%{user} está online.", loading: "Carregando...", name: "Nome", none: "Nenhum", of: "de", off: "Desligado", on: "Ligado", save: "Salvar", search: "Procurar", show: "Exibir", user_not_found: "Usuário não encontrado", wrong_key: "Chave errada" }, javascript: { alarm: "Despachar", arrival: "Chegada", backalarm: "Cancelar", coins: "Moedas", credits: "Créditos", days: "dias", few_seconds: "em alguns segundos", finish_in: "Finaliza em:", foam_approaching: "A caminho do TO: %{amount} l.", foam_missing: "Em falta: %{amount} l.", foam_on_site: "No TO: %{amount} l.", foam_selected: "Selecionado: %{amount} l.", hours: "H", location_not_found: "Não encontrado", messages: "Mensagens", minutes: "min.", missed_vehicle: "Falta:", mission_start_in: "Começa em:", "new": "Novo", not_found_map: "O veículo não foi encontrado no mapa", now: "Agora", patient: "Paciente", patient_untouched: "Pacientes não tratados", poi_delete: "Tem certeza de que quer apagar o PDI: %{caption}?", reload: "Recarregar", secounds: "seg.", sicherheitswache_error: 'A guarda de segurança "%{caption}" não teve êxito porque nem todos os critérios foram atendidos.', sicherheitswache_success: 'A guarda de segurança "%{caption}" foi realizada com sucesso. Receber %{credits} créditos.', start_in: "Começar em: ", start_username: "Iniciante:", time_left: "Tempo restante:", to_building: "Ver edifício", to_mission: "Ver missão", understand: "Reconhecer", user_not_found: "O jogador não foi encontrado.", vehicles_not_visible: "Veículos não visíveis. ", water_approaching: "A caminho do TO: %{amount} l.", water_missing: "Em falta: %{amount} l.", water_on_site: "No TO: %{amount} l.", water_selected: "Selecionada: %{amount} l." }, map: { alliance: "Aliança", alliance_chat: "Chat", alliance_chat_banned: "Você está banido do chat da aliança no momento.", alliance_chat_banned_admin: "Banido por:", alliance_chat_banned_timeleft: "Tempo restante:", alliance_chat_radio_off: "Rádio da aliança: Desligado", alliance_chat_radio_on: "Rádio da aliança: Ligado", alliance_event: "Evento", alliance_missions: "Missões da aliança", alliance_missions_event: "Evento", ambulance: "Ambulância", anti_abuse_active_link: "Clica aqui para mais informações.", anti_abuse_active_text: "As missões serão geradas dentro de um raio aumentado de 100 km, uma vez que demasiadas estações do mesmo tipo estão construídas demasiado perto umas das outras.", attended: "Respondidas", cancel_alliance_event: "Cancelar evento de aliança", cancel_alliance_event_confirm: "Realmente desejas cancelar o evento de aliança?", challenges: "", chat_history: "Histórico do chat", congratulations: "Parabéns! Agora você pode ser promovido.", create_alliance_event: "Iniciar evento de aliança", create_alliance_operation: "Criar missão de aliança em grande escala", emergency: "Emergência", finishing: "Em decurso", join_alliance_infos: "Se estiver numa aliança, outros jogadores podem compartilhar missões consigo.", map: "Mapa", map_filters: { all_buildings: "Edifícios", all_missions: "Missões", alliance_buildings: "Edifícios da aliança", alliance_members: "Membros", alliance_missions: "Partilhado pela aliança", ambulance_station_missions: "Estação de Ambulâncias", ambulance_station_small_missions: "Estação de Ambulâncias (Pequena)", building_complex: "Conjunto de Edifícios", buildings_section: "Estações", clinic_missions: "Centro de Saúde", dispatch_center_missions: "Centro de Comando", fire_school_missions: "Escola de Formação de Bombeiros", firehouse_missions: "Corpo de Bombeiros", firehouse_small_missions: "Corpo de Bombeiros (Pequeno)", hospital_missions: "Hospital", map_filters: "Lista de filtros do mapa", mission_positions: "Pontos de interesse (PDI)", mission_positions_section: "PDI", missions_section: "Missões", police_copter_station_missions: "Aviação policial", police_school_missions: "Escola Prática de Polícia", police_small_missions: "Esquadra de Polícia (Pequena)", police_special_forces: "Unidade Especial de Polícia", police_station_missions: "Esquadra de Polícia", prison_missions: "Prisão", rapid_deployment_group: "Grupo de Instalação Rápida (SEG)", rescue_copter_station_missions: "Centro de Meios Aéreos", riot_police: "Tropa de choque", riot_police_missions: "Tropa de choque", staging_area_missions: "Zona de Concentração e Reserva", technical_aid_organization: "THW", technical_aid_organization_school: "THW Bundesschule", user_buildings: "Os meus edifícios", user_missions: "As minhas missões", water_watch: "Resgate aquático", water_watch_missions: "Resgate aquático" }, message: "Mensagem", mission: "Missão", missions_filtered_out: "Algumas missões podem ser filtradas. Por favor, verifique seus filtros de mapa.", no_alliance_chat_impossible: "Não está em nenhuma aliança.", no_alliance_missions: "De momento não existem missões de aliança.", no_ambulance_missions: "Não há missões de ambulância. Você só pode participar de missões de ambulância quando tiver uma ambulância e um hospital.", no_emergency_missions: "Não há missões de emergência disponíveis. Poderá participar em missões de emergência depois de construir o seu primeiro corpo de bombeiros.", no_radio_messages: "Não existem mensagens via rádio", radio_messages: "Rádio", restore_map: "Restaurar mapa", server_warning: "Manutenção do servidor às 23h. 6h tempo de inatividade esperadas.", show_informations: "Verde = As missões são exibidas na lista. Vermelho = As missões não são exibidas.", sicherheitswache: "Missões planejadas", transport: "Transporte", unattended: "Não respondidas" }, fms: { going: "Em trânsito", not_ready: "Fora de serviço", on_destination: "No destino do transporte", on_place: "No local", patient_transported: "A transportar paciente", prisoner_transported: "A transportar detido.", ready_home: "Disponível na estação", ready_traveling: "Livre e disponível", talking_wish: "Pedido de Transporte", waiting_for_vehicle: "Aguardando veículo para rebocar" }, intervention_order: { automatic_text_color: "Cor do Texto Automática", back: "Voltar", category: "Categoria", colour: "Cor", column: "Coluna", column_number: "Número de coluna", column_number_hint: "Se um número de coluna for selecionado, a entrada de Alarme e Resposta será exibida na coluna correspondente na página de alerta.", create_intervention_order: "Criar novo Regulamento de Alarme e Resposta", "delete": "Apagar", delete_all: "Apagar Regulamentos de Alarme e Resposta completamente", delete_all_confirm: "Tem certeza de que quer apagar totalmente o regulamento de alarme e resposta? As entradas exportadas existentes não estão mais disponíveis!", description: "Nome", edit: "Editar", "export": { "export": "Exportar", "import": "Importar", import_done: "As entradas selecionadas foram importadas e escritas no seu plano de Alarme e Resposta.", saved: "Exportações de Regulamentos de Alarme e Resposta", saved_text: "Seu Regulamento de Alarme e Resposta foi preparado para exportação. Por meio do link, outro jogador pode importar o Regulamento de Alarme e Resposta. Se você alterar seu Regulamento de Alarme e Resposta neste intervalo, essa alteração será automaticamente aplicada à exportação." }, hotkey_hint: "Escolha uma tecla de atalho para selecionar este veículo. Carregue na janela de missão: ALT + a sua tecla de atalho (ou no Firefox: ALT + SHIFT + a sua tecla de atalho, ou no mac os: ctrl + alt + a sua tecla de atalho) para escolher a seleção do seu veículo.", intervention_order: "Editar Regulamentos de Alarme e Resposta", name: "Nome", no_intervention_created: "Você ainda não criou um Regulamento de Alarme e Resposta.", options: "Opções", reset: "Redefina a seleção anterior na janela de alarme.", reset_hint: "Se selecionou o veículo na janela de despacho, pode usar este botão para redefinir.", save: "Salvar", station: "Estação", station_hint: "Quando um edifício é selecionado, apenas veículos do edifício selecionado serão selecionados.", successfully_created: "Regulamento de Alarme e Resposta criado com êxito.", successfully_deleted: "Regulamento de Alarme e Resposta apagado", successfully_updated: "Regulamento de Alarme e Resposta atualizado com êxito.", text_color: "Cor do Texto", vehicles: { ab_atemschutz_only: "Módulo SCBA", ab_gefahrgut_only: "Módulo de PP", ab_oel_only: "Módulo de derramamento de óleo", ab_ruest: "Módulo de resgate técnico", ab_ruest_rw: "", abl2wasser_only: "Módulo de fornecimento de mangueiras", ambulance: "ABSC", ambulance_or_rapid_responder: "", arff: "Veículo de Combate Especial", battalion_chief_unit: "VCOT", boot: "Barcos (geral)", brush_truck: "Veículos Florestais", dekon_p: "", division_chief_unit: "VCOC", dlk_or_tm50: "", dozer_trailer: "Máquina de Rasto", elw1_or_elw2: "VCOT / VCOC", elw2_or_ab_elw: "", elw3: "", elw_airport: "", emergency_ambulance: "ABSC / Heli INEM", fbi_bomb_tech: "UEP/UI - CIEXSS", fire_aviation: "Meios Aéreos", fire_truck: "VFCI / VLCI / VUCI / VP", fireboat: "Barco de combate a incêndio grande", fly_car: "Fly-Car", fly_car_any: "VMER / Mota INEM", foam_amount: "Espumifero (Qtd. de Litros)", fukw: "", fustw_or_police_motorcycle: "CP / EPRI", fwk: "VSAE", gefkw: "", gkw: "Veículo de Logística", grtw: "VIC", grtw0: "", grtw1: "", grukw: "", gw_atemschutz_only: "", gw_gefahrgut: "VPMA", gw_gefahrgut_only: "", gw_hoehenrettung: "GW-Höhenrettung", gw_messtechnik: "GW-Messtechnik", gw_oel_only: "", gw_san: "", gw_taucher: "", gw_wasserrettung: "Retenção de água", gw_werkfeuerwehr: "", gwl2wasser_only: "VTTU", hems: "Heli INEM", hlf_only: "VUCI", hlf_or_rw_and_lf: "VUCI ou VSAT e VFCI / VLCI", hondengeleider: "", k9: "Unidade canina", kdow_lna: "", kdow_orgl: "Chefe de SEM", ktw_b: "", ktw_or_rtw: "", lebefkw: "Leichter Befehlskraftwagen (leBefKw)", lf_only: "VFCI / VLCI", long_distance_ambulance: "Ambulância de SBV", mask_service_unit: "UAAR", mek_mtf: "", mek_zf: "", mtw: "MTW", mzb: "Barco multiuso", naw: "", naw_or_rtw_and_nef: "", naw_or_rtw_and_nef_or_rth: "", nef_only: "Ambulância", oil_unit: "GW-Öl", only_ab_dekon_p: "", only_dekon_p: "", ovd_p: "", police_car: "CP", police_motorcycle: "EPRI", polizeihubschrauber: "Helicóptero de polícia", pump: "Moto Bomba:", rescue_vehicle: "VSAT / VUCI", rescue_vehicle_only: "VSAT", rescueboat: "Barco de resgate grande", rettungstreppe: "", rth_only: "Heli INEM", schlauchwagen: "VTTU / VTTF", seg_elw: "", sek_mtf: "", sek_zf: "", swat: "SWAT", swat_armored_vehicle: "Veículo blindado da SWAT", swat_suv: "SUV da SWAT", thw_anh_mzab: "", thw_anh_mzb: "", thw_anh_schlb: "", thw_brmg_r: "", thw_dle: "", thw_lkw: "", thw_lkw_7_lkr_19_tm: "", thw_mlw5: "", thw_mtw: "Mannschaftstransportwagen Technischer Zug (MTW-TZ - THW)", thw_mzkw: "Mehrzweckkraftwagen (MzKW)", thw_tauchkraftwagen: "Equipe de mergulho", thw_tauchkraftwagen_or_gw_taucher: "", tlf_only: "Veículo Tanque de Grande Capacidade", tm50: "", turboloescher: "", turntable_ladder: "VE / VP", ulf: "", wasserwerfer: "", water_amount: "Água (Qtd. de Litros)", water_amount_tlf: "" } }, tutorial: { beginner: { building: { browser: { build_building: { add_name: 'A seguir, dá um nome à tua nova estação! Escolhe algo que seja reconhecível e expansível! Por ex. «Bombeiros #0001". Quando terminares, clica em «Seguinte»!', build_with_credits: "Agora, constrói o teu edifício com créditos!", new_building: "Clica em «Novo Edifício»!", select_building: "Primeiro, escolhe o tipo de edifício com que desejas começar. Recomendamos vivamente que comeces pelos bombeiros! De qualquer forma, recomendamos que comeces com uma pequena estação!", select_position: "Move o marcador azul para onde desejas construir a tua primeira estação!" }, pick_location: "Primeiro, escolhe um local para começar! Introduz o nome da localização onde desejas começar na barra de pesquisa ou encontra-a no mapa por ti mesmo! Que tal a tua cidade natal?", welcome: "Olá, bem vindo ao Jogo Operador 112! Vou dar-te algumas instruções para te ajudar a começares bem a tua carreira nos serviços de emergência!" }, mobile: { build_building: { add_name: 'A seguir, dá um nome à tua nova estação! Escolhe algo que seja reconhecível e expansível! Por ex. «Bombeiros #0001". Quando terminares, clica em «Seguinte»!', build_with_credits: "Agora, constrói o teu edifício com créditos!", new_building: "Primeiro, vamos escolher um local para começares e construires o teu primeiro edifício!

    Para fazê-lo, clica em «Novo edifício»!", select_building: "Primeiro, escolhe o tipo de edifício com que desejas começar. Recomendamos vivamente que comeces pelos bombeiros! De qualquer forma, recomendamos que comeces com uma pequena estação!" }, welcome: "Olá, bem vindo ao Jogo Operador 112! Vou dar-te algumas instruções para te ajudar a começares bem a tua carreira nos serviços de emergência!" } }, mission: { detail: { browser: { dispatch_menu: "Este é o menu de operação. A partir daqui envias as tuas unidades em missões!", dispatch_menu_buttons: "Estes são os teus dois botões de operação! O primeiro: «Enviar» envia as unidades selecionadas para a missão. O segundo botão faz a mesma coisa que o primeiro, mas passa para a missão seguinte. Por agora, clica no primeiro botão.", dispatch_menu_mission_general: "Aqui podes ver as informações gerais da missão, ou seja, o nome, a morada e o ícone da missão. O pequeno ícone do boneco aparece e substitui uma pequena estrela nas missões em que já participaste.", dispatch_menu_mission_progress: "Aqui podes ver quanto progresso já foi feito para lidar com esta missão, assim como o número de elementos no local e o tempo restante para cumprir a missão!", dispatch_menu_mission_specific: "Aqui podes ver mais informação sobre a missão, que unidades estão a responder à chamada e quais as já se encontram no local.", dispatch_menu_vehicle_list: "Esta é a lista dos teus veículos disponíveis. Selecionas dentre estes veículos. Agora, clica e seleciona o teu veículo!" }, mobile: { dispatch_menu: "Este é o menu de operação. A partir daqui envias as tuas unidades em missões!", dispatch_menu_buttons: "Estes são os teus dois botões de operação! O primeiro: «Enviar» envia as unidades selecionadas para a missão. O segundo botão faz a mesma coisa que o primeiro, mas passa para a missão seguinte. Por agora, clica no primeiro botão.", dispatch_menu_mission_general: "Aqui podes ver as informações gerais da missão, ou seja, o nome, a morada e o ícone da missão. O pequeno ícone do boneco aparece e substitui uma pequena estrela nas missões em que já participaste.", dispatch_menu_mission_progress: "Aqui podes ver quanto progresso já foi feito para lidar com esta missão, assim como o número de elementos no local e o tempo restante para cumprir a missão!", dispatch_menu_mission_specific: "Aqui podes ver mais informação sobre a missão, que unidades estão a responder à chamada e quais as já se encontram no local.", dispatch_menu_vehicle_list: "Esta é a lista dos teus veículos disponíveis. Selecionas dentre estes veículos. Agora, clica e seleciona o teu veículo!" } }, overview: { browser: { dispatch_button: "Agora iremos aprender como lidar com incidentes. Abre o menu do operador clicando num botão «operação»!", first_mission: "Fantástico, construíste o teu primeiro edifício! Vês, comunicaram-te as primeiras missões!" }, mobile: { dispatch_button: "Agora iremos aprender como lidar com incidentes. Abre o menu do operador clicando num botão «operação»!", first_mission: "Fantástico, construíste o teu primeiro edifício! Vês, comunicaram-te as primeiras missões!" } } }, rewards: { browser: { general: "Muito bem, estás a caminho de te tornares um fantástico Operador 112! Aqui tens %{coins} Moedas para um apoio inicial!
    A tua Equipa do Jogo Operador 112" }, mobile: { general: "Muito bem, estás a caminho de te tornares um fantástico Operador 112! Aqui tens %{coins} Moedas para um apoio inicial!
    A tua Equipa do Jogo Operador 112" } }, tips: { browser: { contact: "Se tiveres questões, podes consultar as Perguntas Frequentes do jogo ou visitar os fóruns do jogo ou a nossa página do Facebook!", general: "Para o próximo passo, recomendamos que construas um centro de operações e a seguir, assim que possível, novas estações, já que o número máximo de missões corresponde ao maior número de quaisquer estações de um tipo diferente (polícia, bombeiros, ambulâncias) mais 1; por exemplo, 5 bombeiros e 3 estações de ambulâncias = 6 missões.", join_alliance: "Adicionalmente, seria muito vantajoso para ti entrares numa aliança, especialmente no início, por isso também recomendamos que o faças.", summary: "Isto é o básico do Jogo Operador 112! Completa missões, ganha créditos, compra mais unidades, faz tudo outra vez. Diverte-te a jogar!
    A tua Equipa do Jogo Operador 112" }, mobile: { contact: "Se tiveres questões, podes consultar as Perguntas Frequentes do jogo ou visitar os fóruns do jogo ou a nossa página do Facebook!", general: "Para o próximo passo, recomendamos que construas um centro de operações e a seguir, assim que possível, novas estações, já que o número máximo de missões corresponde ao maior número de quaisquer estações de um tipo diferente (polícia, bombeiros, ambulâncias) mais 1; por exemplo, 5 bombeiros e 3 estações de ambulâncias = 6 missões.", join_alliance: "Adicionalmente, seria muito vantajoso para ti entrares numa aliança, especialmente no início, por isso também recomendamos que o faças.", summary: "Isto é o básico do Jogo Operador 112! Completa missões, ganha créditos, compra mais unidades, faz tudo outra vez. Diverte-te a jogar!
    A tua Equipa do Jogo Operador 112" } } }, commons: { collect: "Recolher", "continue": "Não", end: "Fim", next: "Seguinte", prev: "Anterior", skip: "Sim", skip_hint: "Realmente desejas cancelar o tutorial? Não será possível acedê-lo mais tarde. Não serás elegível para a recompensa de finalização do tutorial." }, rewards: { log: "Recompensa por completar o tutorial." } }, policechief: { tutorial: { beginner: { building: { browser: { build_building: { add_name: 'A seguir, dá um nome à tua nova estação! Escolhe algo que seja reconhecível e expansível! Por ex. «Esquadra de Polícia #0001". Quando terminares, clica em «Seguinte»!', select_building: "Primeiro, escolhe o tipo de edifício com que desejas começar. Recomendamos vivamente que comeces pela polícia! De qualquer forma, recomendamos que comeces com uma pequena estação!" }, welcome: "Olá, bem vindo ao Jogo Operador 112 Polícia! Vou dar-te algumas instruções para te ajudar a começares bem a tua carreira nos serviços de emergência!" }, mobile: { build_building: { add_name: 'A seguir, dá um nome à tua nova estação! Escolhe algo que seja reconhecível e expansível! Por ex. «Esquadra de Polícia #0001". Quando terminares, clica em «Seguinte»!' }, welcome: "Olá, bem vindo ao Jogo Operador 112 Polícia! Vou dar-te algumas instruções para te ajudar a começares bem a tua carreira nos serviços de emergência!" } }, rewards: { browser: { general: "Muito bem, estás a caminho de te tornares um fantástico Operador 112 Polícia! Aqui tens %{coins} Moedas para um apoio inicial!
    A tua Equipa do Jogo Operador 112 - Polícia" }, mobile: { general: "Muito bem, estás a caminho de te tornares um fantástico Operador 112 Polícia! Aqui tens %{coins} Moedas para um apoio inicial!
    A tua Equipa do Jogo Operador 112 - Polícia" } }, tips: { browser: { summary: "Isto é o básico do Jogo Operador 112 - Polícia! Completa missões, ganha créditos, compra mais unidades, faz tudo outra vez. Diverte-te a jogar!
    A tua Equipa do Jogo Operador 112 - Polícia" }, mobile: { summary: "Isto é o básico do Jogo Operador 112 - Polícia! Completa missões, ganha créditos, compra mais unidades, faz tudo outra vez. Diverte-te a jogar!
    A tua Equipa do Jogo Operador 112 - Polícia" } } } } }, number: { format: { delimiter: " ", precision: 2, separator: ",", significant: !1, strip_insignificant_zeros: !1 } } }, I18n.translations.pt_BR = { common: { add: "Adicionar", back: "Voltar", cancel: "Cancelar", change_saved: "Alterações salvas", coins_spend: "Deseja mesmo gastar estas moedas?", congratulations: "Parabéns!", content: "Conteúdo", credits: "Créditos", "delete": "Apagar", details: "Detalhes", edit: "Editar", error: "Erro", is_offline: "%{user} está offline.", is_offline_long: "Tempo: %{user} está offline", is_offline_with_duration: "%{user} está offline: %{duration}", is_online: "%{user} está online.", loading: "Carregando...", name: "Nome", none: "Nenhum", of: "de", off: "Desligado", on: "Ligado", save: "Salvar", search: "Buscar", show: "Exibir", user_not_found: "Usuário não encontrado", wrong_key: "Chave errada" }, javascript: { alarm: "Despachar", arrival: "Chegada", backalarm: "Cancelar", coins: "Moedas", credits: "Créditos", days: "dias", few_seconds: "em alguns segundos", finish_in: "Finaliza em:", foam_approaching: "Se aproximando: %{amount} l.", foam_missing: "Faltando: %{amount} l.", foam_on_site: "Em cena: %{amount} l.", foam_selected: "Selecionada: %{amount} l.", hours: "H", location_not_found: "Não encontrado", messages: "Mensagens", minutes: "min.", missed_vehicle: "Falta:", mission_start_in: "Começa em:", "new": "Novo", not_found_map: "O veículo não foi encontrado no mapa", now: "Agora", patient: "Paciente", patient_untouched: "Pacientes não tratados", poi_delete: "Tem certeza de que quer apagar o PDI: %{caption}?", reload: "Recarregar", sale: "Promoções", sale_ended: "Fin de l’offre spéciale", secounds: "seg.", sicherheitswache_error: 'A guarda de segurança "%{caption}" não teve êxito porque nem todos os critérios foram atendidos.', sicherheitswache_success: 'A guarda de segurança "%{caption}" foi realizada com sucesso. Receber %{credits} créditos.', start_in: "Começar em: ", start_username: "Iniciante:", time_left: "Tempo restante:", to_building: "Ver edifício", to_mission: "Ver missão", understand: "Reconhecer", user_not_found: "O jogador não foi encontrado.", vehicles_not_visible: "Veículos não visíveis. ", water_approaching: "Aproximando-se: %{amount} l.", water_missing: "Faltando: %{amount} l.", water_on_site: "Em Cena: %{amount} l.", water_selected: "Selecionada: %{amount} l." }, map: { alliance: "Aliança", alliance_chat: "Chat", alliance_chat_banned: "Você está banido do chat da aliança no momento.", alliance_chat_banned_admin: "Banido por:", alliance_chat_banned_timeleft: "Tempo restante:", alliance_chat_radio_off: "Rádio da aliança: Desligado", alliance_chat_radio_on: "Rádio da aliança: Ligado", alliance_event: "Evento", alliance_missions: "Missões da aliança", alliance_missions_event: "Evento", ambulance: "Ambulância", anti_abuse_active_link: "Clica aqui para mais informações.", anti_abuse_active_text: "As missões serão geradas dentro de um raio aumentado de 100 km, uma vez que demasiadas estações do mesmo tipo estão construídas demasiado perto umas das outras.", attended: "Respondidas", cancel_alliance_event: "Cancelar evento de aliança", cancel_alliance_event_confirm: "Realmente desejas cancelar o evento de aliança?", challenges: "", chat_history: "Histórico do chat", congratulations: "Parabéns! Agora você pode ser promovido.", create_alliance_event: "Iniciar evento de aliança", create_alliance_operation: "Crie uma missão de aliança de larga escala", emergency: "Emergência", finishing: "Em decurso", join_alliance_infos: "Se você estiver em uma aliança, outros jogadores podem lhe dar missões livremente.", map: "Mapa", map_filters: { all_buildings: "Edifícios", all_missions: "Missões", alliance_buildings: "Edifícios da aliança", alliance_members: "Membros", alliance_missions: "Partilhado pela aliança", ambulance_station_missions: "Bases do SAMU", ambulance_station_small_missions: "Bases do SAMU (pequena)", building_complex: "Conjunto de Edifícios", buildings_section: "Estações", clinic_missions: "Clínica", dispatch_center_missions: "Central de Despacho", fire_school_missions: "Academia de bombeiros militar", firehouse_missions: "Unidade de bombeiros militar", firehouse_small_missions: "Unidade de bombeiros militar (pequena)", hospital_missions: "Hospital", map_filters: "Lista de filtros do mapa", mission_positions: "Pontos de interesse (PDI)", mission_positions_section: "PDI", missions_section: "Missões", police_copter_station_missions: "Aviação policial", police_school_missions: "Academia de polícia militar", police_small_missions: "Delegacias de polícia militar (pequena)", police_special_forces: "Unidade Especial de Polícia", police_station_missions: "Delegacias de polícia militar", prison_missions: "Presídio", rapid_deployment_group: "Grupo de Instalação Rápida (SEG)", rescue_copter_station_missions: "Estação de Helicópteros de Resgate", riot_police: "Tropa de choque", riot_police_missions: "Tropa de choque", staging_area_missions: "Área de concentração", technical_aid_organization: "THW", technical_aid_organization_school: "THW Bundesschule", user_buildings: "Os meus edifícios", user_missions: "As minhas missões", water_watch: "Resgate aquático", water_watch_missions: "Resgate aquático" }, message: "Mensagem", mission: "Missão", missions_filtered_out: "Algumas missões podem ser filtradas. Por favor, verifique seus filtros de mapa.", no_alliance_chat_impossible: "Você não está em uma aliança.", no_alliance_missions: "Não há missões de aliança no momento.", no_ambulance_missions: "Não há missões de ambulância. Você só pode participar de missões de ambulância quando tiver uma ambulância e um hospital.", no_emergency_missions: "Não há missões de emergência disponíveis. Você pode participar de uma missão de emergência depois que construir o seu primeiro corpo de bombeiros.", no_radio_messages: "Você não recebeu mensagens de rádio.", radio_messages: "Rádio", restore_map: "Restaurar mapa", server_warning: "Manutenção do servidor às 7h da tarde. 6h de tempo de inatividade esperado.", show_informations: "Verde = As missões são exibidas na lista. Vermelho = As missões não são exibidas.", sicherheitswache: "Missões planejadas", transport: "Transporte", unattended: "Não respondidas" }, fms: { going: "Respondendo", not_ready: "Fora de serviço", on_destination: "No destino do transporte", on_place: "No local", patient_transported: "Transportando paciente", prisoner_transported: "Transportando detento", ready_home: "Disponível na estação", ready_traveling: "Livre e disponível", talking_wish: "Solicitação de transporte", waiting_for_vehicle: "Aguardando veículo para rebocar" }, intervention_order: { automatic_text_color: "Cor do Texto Automática", back: "Voltar", category: "Categoria", colour: "Cor", column: "Coluna", column_number: "Número de coluna", column_number_hint: "Se um número de coluna for informado, a entrada de Alarme e Resposta será exibida na coluna correspondente na página de alerta.", create_intervention_order: "Criar novo Regulamento de Alarme e Resposta", "delete": "Apagar", delete_all: "Apagar Regulamentos de Alarme e Resposta completamente", delete_all_confirm: "Tem certeza de que quer apagar totalmente o regulamento de alarme e resposta? As entradas exportadas existentes não estão mais disponíveis!", description: "Nome", edit: "Editar", "export": { "export": "Exportar", "import": "Importar", import_done: "As entradas selecionadas foram importadas e escritas no seu plano de Alarme e Resposta.", saved: "Exportações de Regulamentos de Alarme e Resposta", saved_text: "Seu Regulamento de Alarme e Resposta foi preparado para exportação. Por meio do link, outro jogador pode importar o Regulamento de Alarme e Resposta. Se você alterar seu Regulamento de Alarme e Resposta neste intervalo, essa alteração será automaticamente aplicada à exportação." }, hotkey_hint: "Escolha uma tecla de atalho para selecionar este veículo. Pressione na sua janela de missão: ALT + sua tecla de atalho (ou no Firefox: ALT + SHIFT + sua tecla de atalho, ou no mac os: ctrl + alt + sua tecla de atalho) para escolher a seleção do seu veículo.", intervention_order: "Editar Regulamentos de Alarme e Resposta", name: "Nome", no_intervention_created: "Você ainda não criou um Regulamento de Alarme e Resposta.", options: "Opções", reset: "Redefina a seleção anterior na janela de alarme.", reset_hint: "Se você selecionou o veículo na janela de despacho, pode usar este botão para redefinir.", save: "Salvar", station: "Estação", station_hint: "Quando um edifício é selecionado, somente veículos do edifício correspondente serão selecionados.", successfully_created: "Regulamento de Alarme e Resposta criado com êxito.", successfully_deleted: "Regulamento de Alarme e Resposta apagado", successfully_updated: "Regulamento de Alarme e Resposta atualizado com êxito.", text_color: "Cor do Texto", vehicles: { ab_atemschutz_only: "Módulo SCBA", ab_einsatzleitung_only: "Módulo de comando", ab_gefahrgut_only: "Módulo de PP", ab_oel_only: "Módulo de derramamento de óleo", ab_ruest: "Módulo de resgate técnico", ab_ruest_rw: "", abl2wasser_only: "Módulo de fornecimento de mangueiras", ambulance: "Ambulância de SAV", ambulance_or_rapid_responder: "", arff: "Defesa Civil (caminhão de bombeiro para aeroportos)", battalion_chief_unit: "Viatura de batalhão", boot: "Barcos (geral)", dekon_p: "", division_chief_unit: "Viatura de comando móvel", dlk_or_tm50: "", elw1_or_elw2: "Viatura de batalhão, viatura de comando móvel ou módulo de comando móvel ", elw2_or_ab_elw: "", elw3: "", elw_airport: "", emergency_ambulance: "Ambulância de emergência ou helicóptero de resgate", fire_truck: "Caminhões de bombeiro", fireboat: "Barco de combate a incêndio grande", fly_car: "VIR", fly_car_any: "VIR ou Médico de Clinica Geral", foam_amount: "Litros de Espuma", fukw: "", fwk: "", gefkw: "", gkw: "Caminhão utilitário", grtw: "Unidade para incidentes com múltiplas vítimas", grtw0: "", grtw1: "", grukw: "", gw_atemschutz_only: "", gw_gefahrgut: "Produtos Perigosos", gw_gefahrgut_only: "", gw_hoehenrettung: "GW-Höhenrettung", gw_messtechnik: "GW-Messtechnik", gw_oel_only: "", gw_san: "", gw_taucher: "", gw_wasserrettung: "Retenção de água", gw_werkfeuerwehr: "", gwl2wasser_only: "Veículo com mangueira", hems: "HEMS", hlf_only: "", hlf_or_rw_and_lf: "", hondengeleider: "", k9: "Unidade de Ações com Cães", kdow_lna: "", kdow_orgl: "Chefe de SEM", ktw_b: "", ktw_or_rtw: "USB ou SAMU", lebefkw: "Leichter Befehlskraftwagen (leBefKw)", lf_only: "Caminhões de bombeiro", long_distance_ambulance: "Ambulância de SBV", mask_service_unit: "Unidade aérea móvel", mek_mtf: "", mek_zf: "", mtw: "MTW", mzb: "Barco multiuso", naw: "", naw_or_rtw_and_nef: "", naw_or_rtw_and_nef_or_rth: "", nef_only: "Ambulância", oil_unit: "GW-Öl", only_ab_dekon_p: "", only_dekon_p: "", ovd_p: "", police_car: "Carro de patrulha", polizeihubschrauber: "Helicóptero de polícia", rescue_vehicle: "Veículo de resgate pesado", rescue_vehicle_only: "Resgate pesado", rescueboat: "Barco de resgate grande", rettungstreppe: "", rth_only: "Helicóptero de Resgate", schlauchwagen: "Caminhão pipa", seg_elw: "", sek_mtf: "", sek_zf: "", swat: "Treinamento do Comando de Operações Especiais", swat_armored_vehicle: "Veículo blindado da SWAT", swat_suv: "SUV da SWAT", thw_anh_mzab: "", thw_anh_mzb: "", thw_anh_schlb: "", thw_brmg_r: "", thw_dle: "", thw_lkw: "", thw_lkw_7_lkr_19_tm: "", thw_mlw5: "", thw_mtw: "Mannschaftstransportwagen Technischer Zug (MTW-TZ - THW)", thw_mzkw: "Mehrzweckkraftwagen (MzKW)", thw_tauchkraftwagen: "Equipe de mergulho", thw_tauchkraftwagen_or_gw_taucher: "", tlf_only: "Caminhão tanque", tm50: "", turboloescher: "", turntable_ladder: "Caminhão plataforma", ulf: "", wasserwerfer: "", water_amount: "Litros de água", water_amount_tlf: "" } }, tutorial: { beginner: { building: { browser: { build_building: { add_name: 'Depois, dê um nome para a sua estação! Escolha um nome simples e fácil de ser lembrado! Por exemplo: “Estação de incêndios 0001". Quando tiver terminado, clique em “Próximo”!', build_with_credits: "Agora, construa o seu edifício com créditos!", new_building: "Clique em “Novo edifício”!", select_building: "Primeiro, escolha o tipo de edifício com o qual você quer começar. Sugerimos que você comece com atendimentos a incêndios! De qualquer forma, é bom que você comece com uma estação pequena!", select_position: "Mova o marcador azul para onde você quer construir a sua primeira estação!" }, pick_location: "Primeiro, escolha um lugar para começar! Digite na barra de pesquisa o nome do local em que você quer começar ou encontre-o no mapa! Que tal a sua cidade?", welcome: "Olá! Boas-vindas a Operador 193! Eu vou lhe ensinar algumas coisas para que você comece bem a sua carreira nos serviços de emergência!" }, mobile: { build_building: { add_name: 'Depois, dê um nome para a sua estação! Escolha um nome simples e fácil de ser lembrado! Por exemplo: “Estação de incêndios 0001". Quando tiver terminado, clique em “Próximo”!', build_with_credits: "Agora, construa o seu edifício com créditos!", new_building: 'Primeiro, vamos escolher um lugar para começar e construir o seu primeiro edifício!

    Para fazer isso, clique em “Novo edifício"!', select_building: "Primeiro, escolha o tipo de edifício com o qual você quer começar. Sugerimos que você comece com atendimentos a incêndios! De qualquer forma, é bom que você comece com uma estação pequena!" }, welcome: "Olá! Boas-vindas a Operador 193! Eu vou lhe ensinar algumas coisas para que você comece bem a sua carreira nos serviços de emergência!" } }, mission: { detail: { browser: { dispatch_menu: "Este é o menu de atendimento. É a partir daqui que você envia as suas unidades para as missões!", dispatch_menu_buttons: "Estes são os seus dois botões de atendimento! O primeiro: “Atender” envia as unidades selecionadas para a missão. O segundo faz a mesma coisa que o primeiro, mas leva à missão seguinte. Por enquanto, clique no primeiro botão.", dispatch_menu_mission_general: "Aqui você acessa as informações gerais da missão: o nome, o endereço e o ícone da missão. Nas missões das quais você já participou, o ícone do homenzinho aparece e substitui a estrelinha.", dispatch_menu_mission_progress: "Aqui você pode ver o progresso da missão, o número de atendentes no local e o tempo que resta para o encerramento da missão!", dispatch_menu_mission_specific: "Aqui você pode ter mais informações sobre a missão, quais unidades estão atendendo ao chamado e quais já estão no local.", dispatch_menu_vehicle_list: "Esta é a sua lista de veículos disponíveis. Você seleciona os veículos aqui. Agora, selecione o seu veículo clicando nele!" }, mobile: { dispatch_menu: "Este é o menu de atendimento. É a partir daqui que você envia as suas unidades para as missões!", dispatch_menu_buttons: "Estes são os seus dois botões de atendimento! O primeiro: “Atender” envia as unidades selecionadas para a missão. O segundo faz a mesma coisa que o primeiro, mas leva à missão seguinte. Por enquanto, clique no primeiro botão.", dispatch_menu_mission_general: "Aqui você acessa as informações gerais da missão: o nome, o endereço e o ícone da missão. Nas missões das quais você já participou, o ícone do homenzinho aparece e substitui a estrelinha.", dispatch_menu_mission_progress: "Aqui você pode ver o progresso da missão, o número de atendentes no local e o tempo que resta para o encerramento da missão!", dispatch_menu_mission_specific: "Aqui você pode ter mais informações sobre a missão, quais unidades estão atendendo ao chamado e quais já estão no local.", dispatch_menu_vehicle_list: "Esta é a sua lista de veículos disponíveis. Você seleciona os veículos aqui. Agora, selecione o seu veículo clicando nele!" } }, overview: { browser: { dispatch_button: "Agora, queremos que você aprenda a lidar com incidentes. Abra o menu de atendimento clicando no botão “Atender”!", first_mission: "Ótimo! Você construiu o seu primeiro edifício! Veja só, as primeiras missões já foram passadas a você!" }, mobile: { dispatch_button: "Agora, queremos que você aprenda a lidar com incidentes. Abra o menu de atendimento clicando no botão “Atender”!", first_mission: "Ótimo! Você construiu o seu primeiro edifício! Veja só, as primeiras missões já foram passadas a você!" } } }, rewards: { browser: { general: "Ótimo! Em breve você vai se tornar um grande chefe de atendimento em Operador 193! Aí vão %{coins} moedas para ajudar você no começo!
    Equipe do Operador 193" }, mobile: { general: "Ótimo! Em breve você vai se tornar um grande chefe de atendimento em Operador 193! Aí vão %{coins} moedas para ajudar você no começo!
    Equipe do Operador 193" } }, tips: { browser: { contact: "Em caso de dúvidas, consulte a seção “Perguntas Frequentes” no jogo, visite os fóruns de discussão ou acesse a nossa página no Facebook!", general: "Como o próximo passo, recomendamos que você construa uma central de atendimentos e depois, o mais rápido possível, novas estações, já que o número máximo de missões será o mesmo do maior número de estações de qualquer tipo (polícia, bombeiros, ambulância) mais 1. Por exemplo: 5 estações de incêndio e 3 de ambulância = 6 missões.", join_alliance: "Além disso, juntar-se a uma aliança pode ser muito benéfico, principalmente no começo. Recomendamos que você também faça isso.", summary: "Este é o básico do Operador 193! Cumpra as missões, ganhe créditos, compre mais unidades, repita os procedimentos. Divirta-se!
    Equipe do Operador 193" }, mobile: { contact: "Em caso de dúvidas, consulte a seção “Perguntas Frequentes” no jogo, visite os fóruns de discussão ou acesse a nossa página no Facebook!", general: "Como o próximo passo, recomendamos que você construa uma central de atendimentos e depois, o mais rápido possível, novas estações, já que o número máximo de missões será o mesmo do maior número de estações de qualquer tipo (polícia, bombeiros, ambulância) mais 1. Por exemplo: 5 estações de incêndio e 3 de ambulância = 6 missões.", join_alliance: "Além disso, juntar-se a uma aliança pode ser muito benéfico, principalmente no começo. Recomendamos que você também faça isso.", summary: "Este é o básico do Operador 193! Cumpra as missões, ganhe créditos, compre mais unidades, repita os procedimentos. Divirta-se!
    Equipe do Operador 193" } } }, commons: { collect: "Coletar", "continue": "Não", end: "Fim", next: "Próximo", prev: "Anterior", skip: "Sim", skip_hint: "Realmente desejas cancelar o tutorial? Não será possível acedê-lo mais tarde. Não serás elegível para a recompensa de finalização do tutorial." }, rewards: { log: "Recompensa por completar o tutorial." } }, number: { format: { delimiter: ".", precision: 3, separator: ",", significant: !1, strip_insignificant_zeros: !1 } } }, I18n.translations.uk_UA = { common: { add: "Додати", back: "Назад", cancel: "Скасувати", change_saved: "Зміни збережено", coins_spend: "Дійсно бажаєте витратити ці монети?", congratulations: "Вітання!", content: "Вміст", copy: "Копіювати", credits: "Кредити", "delete": "Видалити", details: "Подробиці", edit: "Редагувати", error: "Помилка", is_offline: "%{user} не в мережі.", is_offline_long: "Давно: %{user} не в мережі", is_offline_with_duration: "%{user} не в мережі: %{duration}", is_online: "%{user} в мережі.", loading: "Завантаження...", name: "Ім'я", none: "Жодного", of: "з", off: "Відкл.", on: "Вкл.", save: "Зберегти", search: "Пошук", show: "Показати", user_not_found: "Користувача не знайдено.", wrong_key: "Невірна клавіша" }, javascript: { alarm: "Відправити", arrival: "Прибуття", backalarm: "Скасувати", coins: "Монети", credits: "Кредити", days: "дн.", few_seconds: "через декілька секунд", finish_in: "Завершення через:", hours: "Г", location_not_found: "Не знайдено", messages: "Повідомлення", minutes: "хв.", missed_vehicle: "Не вистачає:", mission_start_in: "Початок через:", "new": "Новий", not_found_map: "Машину не знайдено на карті", now: "Зараз", patient: "Пацієнт", patient_untouched: "Невилікувані пацієнти", poi_delete: "Дійсно видалити важливу точку: %{caption}?", reload: "Перезавантажити", sale: "Розпродаж", sale_ended: "Розпродаж завершено", secounds: "сек.", sicherheitswache_error: 'Співробітник охорони "%{caption}" не виконав завдання, оскільки було задоволено не всі критерії.', sicherheitswache_success: 'Співробітника охорони "%{caption}" успішно виведено. Отримайте кредити (%{credits}).', start_in: "Початок через: ", start_username: "Починає:", time_left: "Залишилося часу:", to_building: "Перегляд будівлі", to_mission: "Перегляд завдання", understand: "Визнати", user_not_found: "Гравця не знайдено.", vehicles_not_visible: "Машину не видно. " }, map: { alliance: "Альянс", alliance_chat: "Чат", alliance_chat_banned: "На даний момент вас заблоковано у чаті альянсу.", alliance_chat_banned_admin: "Заблокував:", alliance_chat_banned_timeleft: "Залишилося часу:", alliance_chat_radio_off: "Радіо альянсу: Відкл.", alliance_chat_radio_on: "Радіо альянсу: Вкл.", alliance_event: "Подія", alliance_missions: "Завдання альянсу", alliance_missions_event: "Подія", ambulance: "Швидка допомога", anti_abuse_active_link: "Click here for more information.", anti_abuse_active_text: "Missions will be generated within an extended radius of 100km, since too many stations of the same type are built too close to each other.", attended: "Відвідані", cancel_alliance_event: "Відмінити подію альянсу", cancel_alliance_event_confirm: "Ви впевнені що хочете відмінити подію альянсу?", challenges: "", chat_history: "Історія чату", congratulations: "Вітання! Тепер ви можете отримати підвищення.", create_alliance_event: "Розпочати подію альянсу", create_alliance_operation: "Створити великомасштабне завдання альянсу", emergency: "Надзвичайна ситуація", finishing: "Завершуються", join_alliance_infos: "Якщо ви перебуваєте в альянсі, інші гравці можуть вільно давати вам завдання.", map: "Карта", map_filters: { all_buildings: "Будівлі", all_missions: "Завдання", alliance_buildings: "Будівлі альянсу", alliance_members: "Учасники", alliance_missions: "Спільно використовується альянсом", ambulance_station_missions: "Станція швидкої допомоги", ambulance_station_small_missions: "Підстанція швидкої допомоги", building_complex: "Комплекс Будівель", buildings_section: "Станції", clinic_missions: "Клініка", dispatch_center_missions: "Диспетчерський центр", fire_school_missions: "Академія пожежної безпеки", firehouse_missions: "Пожежна частина", firehouse_small_missions: "Пожежна частина (мала)", hospital_missions: "Лікарня", map_filters: "Список фільтрів карти", mission_positions: "Важливі точки (ВТ)", mission_positions_section: "ВТ", missions_section: "Завдання", police_copter_station_missions: "Поліцейська авіація", police_school_missions: "Поліцейська академія", police_small_missions: "Відділ поліції", police_special_forces: "Спецназ поліції", police_station_missions: "Управління поліції", prison_missions: "В'язниця", rapid_deployment_group: "Група швидкого розгортання", rescue_copter_station_missions: "Вертолітна станція швидкої допомоги", riot_police: "Підрозділ особливого призначення", riot_police_missions: "Спецназ поліції", staging_area_missions: "Пункт розподілу", technical_aid_organization: "МНС", technical_aid_organization_school: "Вища школа МНС", user_buildings: "Мої будівлі", user_missions: "Мої завдання", water_watch: "Водолазно-рятувальна служба", water_watch_missions: "Водолазно-рятувальна служба" }, message: "Повідомлення", mission: "Завдання", missions_filtered_out: "Деякі місії можуть бути відфільтровані. Перевірте свої фільтри на карті.", no_alliance_chat_impossible: "Ви не перебуваєте в альянсі.", no_alliance_missions: "На даний момент завдання альянсу відсутні.", no_ambulance_missions: '"Відсутнє перевезення пацієнтів. Перевезення пацієнтів може здійснюватися за наявності у вас реанімобіля (BLS) чи лікарні."', no_emergency_missions: "Немає доступних завдань для екстрених служб. Завдання для екстрених служб може з'явитися тоді, коли ви збудуєте свою першу станцію.", no_radio_messages: "Ви не отримували повідомлення по радіо.", radio_messages: "Радіо", restore_map: "Відновити карту", server_warning: "Server maintenance at 18:00 UTC. 6h downtime expected.", show_informations: "Зелений = завдання будуть показані у списку. Червоний = завдання не будуть показані.", sicherheitswache: "Заплановані завдання", transport: "Перевезення", unattended: "Невідвідані" }, fms: { going: "Виїжджає", not_ready: "Не працює", on_destination: "В пункті призначення для перевезення", on_place: "На місці", patient_transported: "Перевезення пацієнта", prisoner_transported: "Перевезення в'язня", ready_home: "Доступно на станції", ready_traveling: "Не має завдань і доступно", talking_wish: "Запит на перевезення", waiting_for_vehicle: "Очікує машину для буксирування" }, intervention_order: { automatic_text_color: "Automatic Text Color", back: "Назад", category: "Категорія", colour: "Колір", column: "Стовпчик", column_number: "Номер стовпчика", column_number_hint: "Якщо заданий номер стовпчика, у відповідному стовпчику на сторінці тривоги буде відображено запис правила ПІР.", create_intervention_order: "Створити нове правило ПІР", "delete": "Видалити", delete_all: "Повністю видалити правила ПІР", delete_all_confirm: "Дійсно повністю видалити правило ПІР? Існуючі експортовані записи більше недоступні!", description: "Ім'я", edit: "Редагувати", "export": { "export": "Експорт", "import": "Імпорт", import_done: "Вибрані записи імпортовано і занесено у ваш план ПІР.", saved: "Експорт правил ПІР", saved_text: "Ваше правило ПІР підготовлене до експорту. За допомогою посилання, інший гравець зможе експортувати правило ПІР. Якщо протягом цього часу ви зміните своє правило ПІР, зміну буде автоматично застосовано до правила, що експортується." }, hotkey_hint: "Виберіть гарячу клавішу для вибраної машини. Натисніть у вікні завдання: ALT + ваша гаряча клавіша (або у Firefox: ALT + SHIFT + ваша гаряча клавіша або у mac os: ctrl + alt + ваша гаряча клавіша), щоб виділити вибрану машину.", intervention_order: "Редагувати правила ПІР", name: "Ім'я", no_intervention_created: "Ви ще не створили правило ПІР.", options: "Опції", reset: "Скиньте попереднє виділення у вікні тривоги.", reset_hint: "Якщо машину не виділено у вікні відправлення, можна скористатися цією кнопкою для скидання.", save: "Зберегти", station: "Станція", station_hint: "При виборі будівлі, будуть виділені лише машини відповідної будівлі.", successfully_created: "Правило ПІР успішно створено.", successfully_deleted: "Правило ПІР видалено", successfully_updated: "Правила ПІР успішно оновлено.", text_color: "Text Color", vehicles: { ab_atemschutz_only: "Модуль дихальних апаратів", ab_einsatzleitung_only: "Модуль управління", ab_gefahrgut_only: "Модуль знезараження", ab_oel_only: "Модуль ЛАРН", ab_ruest: "Технологічний/рятувальний модуль", ab_ruest_rw: "", abl2wasser_only: "Модуль подачі шлангу", ambulance: "Реанімобіль", ambulance_or_rapid_responder: "", arff: "АРІП (пожежна машина аеропорту)", battalion_chief_unit: "Підрозділ командира батальйону", boot: "Судна (загальні)", dekon_p: "", division_chief_unit: "Мобільний командний пункт", dlk_or_tm50: "", elw1_or_elw2: "Підрозділ командира батальйону, мобільний командний пункт або мобільний модуль управління ", elw2_or_ab_elw: "", elw3: "", elw_airport: "", emergency_ambulance: "Машина чи вертоліт швидкої допомоги", fire_truck: "Пожежні автомобілі", fireboat: "Великий пожежний катер", fly_car: "Летючий автомобіль", fly_car_any: "Летючий автомобіль / Лікар загальної практики", fukw: "", fwk: "", gefkw: "", gkw: "Вантажівка", grtw: "Підрозділ по роботі з великою кількістю постраждалих", grtw0: "", grtw1: "", grukw: "", gw_atemschutz_only: "", gw_gefahrgut: "Знезараження", gw_gefahrgut_only: "", gw_hoehenrettung: "Автомобіль з драбиною", gw_messtechnik: "Метрологічний автомобіль", gw_oel_only: "", gw_san: "", gw_taucher: "", gw_wasserrettung: "Вологоутримання", gw_werkfeuerwehr: "", gwl2wasser_only: "Машина із брандспойнтом", hems: "Вертоліт невідкладної медичної допомоги", hlf_only: "", hlf_or_rw_and_lf: "", hondengeleider: "", k9: "Підрозділ кінологів", kdow_lna: "", kdow_orgl: "Керівник швидкої", ktw_b: "", ktw_or_rtw: "Реанімобіль BLS чи ALS", lebefkw: "Легкий командний пункт", lf_only: "Пожежні машини", long_distance_ambulance: "Реанімобіль", mask_service_unit: "Мобільний повітряний підрозділ", mek_mtf: "", mek_zf: "", mtw: "Транспортер", mzb: "Багатоцільове судно", naw: "", naw_or_rtw_and_nef: "", naw_or_rtw_and_nef_or_rth: "", nef_only: "Швидка допомога", oil_unit: "Нафтозбирне судно", only_ab_dekon_p: "", only_dekon_p: "", ovd_p: "", police_car: "Патрульний автомобіль", polizeihubschrauber: "Поліцейський вертоліт", rescue_vehicle: "Важка рятувальна машина", rescue_vehicle_only: "Підрозділ порятунку у важких умовах", rescueboat: "Велике рятувальне судно", rettungstreppe: "", rth_only: "Вертоліт швидкої допомоги", schlauchwagen: "Автоцистерна", seg_elw: "", sek_mtf: "", sek_zf: "", swat: "Спецназ", swat_armored_vehicle: "Броньований автомобіль спецназу", swat_suv: "Позашляховик спецназу", thw_anh_mzab: "", thw_anh_mzb: "", thw_anh_schlb: "", thw_brmg_r: "", thw_dle: "", thw_lkw: "", thw_lkw_7_lkr_19_tm: "", thw_mlw5: "", thw_mtw: "Автомобіль технічної служби", thw_mzkw: "Багатоцільова машина", thw_tauchkraftwagen: "Команда водолазів", thw_tauchkraftwagen_or_gw_taucher: "", tlf_only: "Автоцистерна", tm50: "", turboloescher: "", turntable_ladder: "Пожежні автодрабини", ulf: "", wasserwerfer: "", water_amount: "", water_amount_tlf: "" } }, tutorial: { beginner: { building: { browser: { build_building: { add_name: 'Далі, дайте своїй новій станції назву! Зробіть її помітною і розширюваною! Наприклад, "Пожежна станція № 0001". Коли будете готові, клацніть "Далі"!', build_with_credits: "Тепер збудуйте свою будівлю за кредити!", new_building: 'Клацніть "Нова будівля"!', select_building: "Спочатку виберіть тип будівлі, з якого хочете розпочати; ми наполегливо рекомендуємо розпочати з пожежної станції! У будь-якому випадку, рекомендується розпочати з малої станції!", select_position: "Перемістіть маркер синього кольору у місце, в якому ви хочете збудувати свою першу станцію!" }, pick_location: "Спочатку оберіть місце! Введіть назву місця, з якого хочете розпочати, у рядок пошуку, щоб особисто знайти його на карті! Як щодо вашого рідного міста?", welcome: 'Сердечно вітаємо у грі "Диспетчер 101"! Я продемонструю вам, яким чином можна дати гарний старт власній кар\'єрі у сфері екстрених служб!' }, mobile: { build_building: { add_name: 'Далі, дайте своїй новій станції назву! Зробіть її помітною і розширюваною! Наприклад, "Пожежна станція № 0001". Коли будете готові, клацніть "Далі"!', build_with_credits: "Тепер збудуйте свою будівлю за кредити!", new_building: 'Спочатку ми виберемо місце і збудуємо вашу першу будівлю!

    Для цього, клацніть "Нова будівля"!', select_building: "Спочатку виберіть тип будівлі, з якого хочете розпочати; ми наполегливо рекомендуємо розпочати з пожежної станції! У будь-якому випадку, рекомендується розпочати з малої станції!" }, welcome: 'Сердечно вітаємо у грі "Диспетчер 101"! Я продемонструю вам, яким чином можна дати гарний старт власній кар\'єрі у сфері екстрених служб!' } }, mission: { detail: { browser: { dispatch_menu: "Це меню відправки. Звідси ви відправлятимете свої підрозділи на завдання!", dispatch_menu_buttons: 'Це дві ваші кнопки відправки! Перша: "Відправити" відправляє вибрані підрозділи на завдання. Друга робить те ж саме, що й перша, але переходить до наступного завдання. Поки що, клацніть по першій кнопці.', dispatch_menu_mission_general: "Тут можна отримати загальні відомості про завдання, а саме назву, адресу, значок завдання. У завданнях, в яких ви вже брали участь, з'являється значок з маленькою людиною і замінює маленьку зірочку.", dispatch_menu_mission_progress: "Тут можна побачити, якого прогресу було досягнуто у виконанні завдання, а також кількість персоналу на місці і час, необхідний на виконання завдання!", dispatch_menu_mission_specific: "Тут можна отримати більше відомосте про завдання, про те, які підрозділи відповідають на виклик, а які вже знаходяться на місці.", dispatch_menu_vehicle_list: "Це список ваших доступних машин. Тут можна вибирати машини. Тепер виберіть свою машину, клацнувши по ній!" }, mobile: { dispatch_menu: "Це меню відправки. Звідси ви відправлятимете свої підрозділи на завдання!", dispatch_menu_buttons: 'Це дві ваші кнопки відправки! Перша: "Відправити" відправляє вибрані підрозділи на завдання. Друга робить те ж саме, що й перша, але переходить до наступного завдання. Поки що, клацніть по першій кнопці.', dispatch_menu_mission_general: "Тут можна отримати загальні відомості про завдання, а саме назву, адресу, значок завдання. У завданнях, в яких ви вже брали участь, з'являється значок з маленькою людиною і замінює маленьку зірочку.", dispatch_menu_mission_progress: "Тут можна побачити, якого прогресу було досягнуто у виконанні завдання, а також кількість персоналу на місці і час, необхідний на виконання завдання!", dispatch_menu_mission_specific: "Тут можна отримати більше відомосте про завдання, про те, які підрозділи відповідають на виклик, а які вже знаходяться на місці.", dispatch_menu_vehicle_list: "Це список ваших доступних машин. Тут можна вибирати машини. Тепер виберіть свою машину, клацнувши по ній!" } }, overview: { browser: { dispatch_button: 'Тепер ми хочемо дізнатись, яким чином реагувати на пригоди. Відкрийте меню відправки, клацнувши по кнопці "Відправити"!', first_mission: "Чудово, ви збудували свою першу будівлю! От бачите, ви вже отримали звіти про перші завдання!" }, mobile: { dispatch_button: 'Тепер ми хочемо дізнатись, яким чином реагувати на пригоди. Відкрийте меню відправки, клацнувши по кнопці "Відправити"!', first_mission: "Чудово, ви збудували свою першу будівлю! От бачите, ви вже отримали звіти про перші завдання!" } } }, rewards: { browser: { general: 'Чудово, ви на шляху до того, щоб стати потрясним диспетчером! Ось монети (%{coins}), які допоможуть вам на початку!
    Ваша команда гри "Диспетчер 101"' }, mobile: { general: 'Чудово, ви на шляху до того, щоб стати потрясним диспетчером! Ось монети (%{coins}), які допоможуть вам на початку!
    Ваша команда гри "Диспетчер 101"' } }, tips: { browser: { contact: "У випадку виникнення запитань, ви можете звернутись до відповідей на часті питання по грі або відвідати ігрові форуми чи нашу сторінку у Facebook!", general: "У якості наступного кроку, ми порекомендуємо вам побудувати диспетчерський центр, а потім, якомога швидше, нові станції, оскільки максимальна кількість завдань дорівнює найвищій кількості будь-яких станцій різних типів (поліція, пожежники, швидка) плюс 1; наприклад, 5 пожежних станцій і 3 станції швидкої = 6 завдань.", join_alliance: "Також, вступ у альянс значним чином допоможе вам, особливо на початку, тому це рекомендується також.", summary: 'Це основи гри "Диспетчер 101"! Виконуйте завдання, отримуйте кредити, купляйте більше підрозділів, повторюйте. Веселої вам гри!
    Ваша команда гри "Диспетчер 101"' }, mobile: { contact: "У випадку виникнення запитань, ви можете звернутись до відповідей на часті питання по грі або відвідати ігрові форуми чи нашу сторінку у Facebook!", general: "У якості наступного кроку, ми порекомендуємо вам побудувати диспетчерський центр, а потім, якомога швидше, нові станції, оскільки максимальна кількість завдань дорівнює найвищій кількості будь-яких станцій різних типів (поліція, пожежники, швидка) плюс 1; наприклад, 5 пожежних станцій і 3 станції швидкої = 6 завдань.", join_alliance: "Також, вступ у альянс значним чином допоможе вам, особливо на початку, тому це рекомендується також.", summary: 'Це основи гри "Диспетчер 101"! Виконуйте завдання, отримуйте кредити, купляйте більше підрозділів, повторюйте. Веселої вам гри!
    Ваша команда гри "Диспетчер 101"' } } }, commons: { collect: "Взяти", "continue": "Ні", end: "Кінець", next: "Далі", prev: "Назад", skip: "Так", skip_hint: "Дійсно скасувати навчання? Перейти до нього пізніше не буде можливості. Ви не матимете права на нагороду за завершення навчання." }, rewards: { log: "Нагорода за завершення навчання." } }, number: { format: { delimiter: " ", precision: 3, separator: ",", significant: !1, strip_insignificant_zeros: !1 } } }, I18n.translations.es_MX = { common: { add: "Añadir", back: "Atrás", cancel: "Cancelar", change_saved: "Cambios guardados", coins_spend: "¿Seguro que quieres gastar estas monedas?", congratulations: "¡Enhorabuena!", content: "Contenido", copy: "Copiar", credits: "Créditos", "delete": "Eliminar", details: "Detalles", edit: "Editar", error: "Error", is_offline: "%{user} no está conectado.", is_offline_long: "%{user} no se ha conectado desde hace mucho tiempo", is_offline_with_duration: "%{user} no está conectado: %{duration}", is_online: "%{user} está conectado.", loading: "Cargando...", name: "Nombre", none: "Nada", of: "de", off: "No", on: "Sí", save: "Guardar", search: "Buscar", show: "Mostrar", user_not_found: "Usuario no encontrado", wrong_key: "Tecla equivocada" }, javascript: { alarm: "Enviar", arrival: "Llegada", backalarm: "Cancelar", coins: "Monedas", credits: "Créditos", days: "días", few_seconds: "en pocos segundos", finish_in: "Termina en:", hours: "H", location_not_found: "No encontrado", messages: "Mensajes", minutes: "min.", missed_vehicle: "Falta:", mission_start_in: "Comienza en:", "new": "Nuevo", not_found_map: "No se ha encontrado el vehículo en el mapa", now: "Ahora", patient: "Paciente", patient_untouched: "Pacientes no tratados", poi_delete: "¿Seguro que quieres eliminar el PI %{caption}?", reload: "Recargar", sale: "Rebajas", sale_ended: "Oferta finalizada", secounds: "seg.", sicherheitswache_error: "El guardia de seguridad %{caption} no ha completado su misión, ya que no se han cumplido todos los criterios.", sicherheitswache_success: "El guardia de seguridad %{caption} ha completado su misión. Recibes %{credits} créditos.", start_in: "Comienza en: ", start_username: "Usuario:", time_left: "Tiempo restante:", to_building: "Ver edificio", to_mission: "Ver misión", understand: "Recibido", user_not_found: "No se ha encontrado al jugador.", vehicles_not_visible: "Los vehículos no están visibles. " }, map: { alliance: "Alianza", alliance_chat: "Chat", alliance_chat_banned: "Tienes prohibido entrar al chat de la alianza.", alliance_chat_banned_admin: "Prohibición emitida por:", alliance_chat_banned_timeleft: "Tiempo restante:", alliance_chat_radio_off: "Radio de la alianza: No", alliance_chat_radio_on: "Radio de la alianza: Sí", alliance_event: "Evento", alliance_missions: "Misiones de alianza", alliance_missions_event: "Evento", ambulance: "Ambulancia", anti_abuse_active_link: "Haz clic aquí para obtener más información.", anti_abuse_active_text: "Las misiones se generarán en un radio ampliado de 100 km, ya que hay construidas demasiadas estaciones del mismo tipo muy próximas entre sí.", attended: "Respondido", cancel_alliance_event: "Cancelar evento de alianza", cancel_alliance_event_confirm: "¿Seguro que quieres cancelar el evento de alianza?", challenges: "", chat_history: "Historial de chat", congratulations: "¡Enhorabuena! Puedes ascender.", create_alliance_event: "Comenzar evento de alianza", create_alliance_operation: "Crea una misión de alianza a gran escala", emergency: "Emergencia", finishing: "Completando", join_alliance_infos: "Si estás en una alianza, otros jugadores podrán ofrecerte misiones.", map: "Mapa", map_filters: { all_buildings: "Edificios", all_missions: "Misiones", alliance_buildings: "Edificios de la alianza", alliance_members: "Miembros", alliance_missions: "Compartido por la alianza", ambulance_station_missions: "Parque de ambulancias", ambulance_station_small_missions: "Parque de ambulancias (pequeño)", building_complex: "Complejo de edificios", buildings_section: "Instalaciones", clinic_missions: "Clínica", dispatch_center_missions: "Centralita", fire_school_missions: "Academia de bomberos", firehouse_missions: "Parque de bomberos", firehouse_small_missions: "Parque de bomberos (pequeño)", hospital_missions: "Hospital", map_filters: "Lista de filtros de mapa", mission_positions: "Puntos de interés (PI)", mission_positions_section: "PI", missions_section: "Misiones", police_copter_station_missions: "Helipuerto policial", police_school_missions: "Academia de policía", police_small_missions: "Comisaría de policía (pequeño)", police_special_forces: "Fuerzas especiales de la policía", police_station_missions: "Comisaría de policía", prison_missions: "Prisión", rapid_deployment_group: "Grupo de preparación rápida (GPR)", rescue_copter_station_missions: "Helipuerto médico", riot_police: "Policía antidisturbios", riot_police_missions: "Policía antidisturbios", staging_area_missions: "Zona de preparación", technical_aid_organization: "SAT", technical_aid_organization_school: "Academia SAT", user_buildings: "Mis edificios", user_missions: "Mis misiones", water_watch: "Rescate acuático", water_watch_missions: "Rescate acuático" }, message: "Mensaje", mission: "Misión", missions_filtered_out: "Algunas misiones pueden ser filtradas. Por favor, revise los filtros de su mapa.", no_alliance_chat_impossible: "No estás en una alianza.", no_alliance_missions: "No hay misiones de alianza.", no_ambulance_missions: "No hay misiones de ambulancia. Solo habrá misiones de ambulancia cuando tengas una ambulancia y un hospital.", no_emergency_missions: "No hay misiones de emergencia disponibles. Solo habrá misiones de emergencia después de que construyas tu primera instalación.", no_radio_messages: "No has recibido mensajes de radio.", radio_messages: "Radio", restore_map: "Restaurar mapa", server_warning: "Mantenimiento del servidor a las 00:00. Se espera un tiempo de inactividad de 6 horas.", show_informations: "Verde: las misiones se mostrarán en la lista. Rojo: las misiones no se mostrarán.", sicherheitswache: "Misones planificadas", transport: "Transporte", unattended: "Sin respuesta" }, fms: { going: "Respondiendo", not_ready: "Fuera de servicio", on_destination: "En el destino del transporte", on_place: "Presente", patient_transported: "Transportando paciente", prisoner_transported: "Transportando preso", ready_home: "Disponible en la instalación", ready_traveling: "Listo y disponible", talking_wish: "Petición de transporte", waiting_for_vehicle: "Esperando a remolque" }, intervention_order: { automatic_text_color: "Color de texto automático", back: "Atrás", category: "Categoría", colour: "Color", column: "Columna", column_number: "N.º de columna", column_number_hint: "Si hay un número de columna, la entrada en las normas de alerta y respuesta se mostrará en la columna correspondiente de la página de la alerta.", create_intervention_order: "Crear nueva norma de alerta y respuesta", "delete": "Eliminar", delete_all: "Eliminar todas las normas de alerta y respuesta", delete_all_confirm: "¿Seguro que quieres eliminar todas las normas de alerta y respuesta? ¡Las entradas exportadas existentes ya no están disponibles!", description: "Nombre", edit: "Editar", "export": { "export": "Exportar", "import": "Importar", import_done: "Las entradas seleccionadas se han importado y añadido a tu plan de alerta y respuesta.", saved: "Exportar las normas de alerta y respuesta", saved_text: "Las normas de alerta y respuesta están preparadas para ser exportadas. Mediante el enlace, otro jugador podrá importarlas. Mientras tanto, si cambias alguna norma, el cambio se aplicará automáticamente a lo exportado." }, hotkey_hint: "Elije una tecla para esta selección de vehículos. En la ventana de la misión, pulsa ALT + tu tecla (ALT + SHIFT + tu tecla en Firefox o CTRL + ALT + tu tecla en MacOS) para seleccionarla.", intervention_order: "Editar normas de alerta y respuesta", name: "Nombre", no_intervention_created: "Todavía no has creado ninguna norma de alerta y respuesta.", options: "Opciones", reset: "Restablece la selección anterior en la ventana de alertas.", reset_hint: "Si has seleccionado el vehículo en la ventana de respuesta, puedes usar este botón para restablecer.", save: "Guardar", station: "Instalación", station_hint: "Si hay un edificio seleccionado, solo se seleccionarán los vehículos de ese edificio.", successfully_created: "Norma de alerta y respuesta creada correctamente.", successfully_deleted: "Norma de alerta y respuesta eliminada", successfully_updated: "Norma de alerta y respuesta actualizada correctamente.", text_color: "Color de texto", vehicles: { ab_atemschutz_only: "Módulo ERA", ab_einsatzleitung_only: "Módulo de mando", ab_gefahrgut_only: "Módulo Hazmat", ab_oel_only: "Módulo de vertido de crudo", ab_ruest: "Módulo tecnológico de rescate", ab_ruest_rw: "", abl2wasser_only: "Módulo de mangueras", ambulance: "UVI móvil", ambulance_or_rapid_responder: "", arff: "CBA (Camión de bomberos de aeropuerto)", battalion_chief_unit: "Unidad de Mando y Comunicaciones", boot: "Botes (general)", dekon_p: "", division_chief_unit: "Unidad de mando", dlk_or_tm50: "", elw1_or_elw2: "Unidad de Mando y Comunicaciones, unidad de mando o módulo de mando móvil ", elw2_or_ab_elw: "Bomba de Rescate o Unidad de Apoyo de Rescate y Camión de Bomberos", elw3: "", elw_airport: "", emergency_ambulance: "Ambulancia o helicóptero de emergencia", fire_truck: "Camiones de bomberos", fireboat: "Barco de bomberos grande", fly_car: "Coche volador", fukw: "", fwk: "", gefkw: "", gkw: "Camión de usos múltiples", grtw: "Unidad para múltiples víctimas", grtw0: "", grtw1: "", grukw: "", gw_atemschutz_only: "", gw_gefahrgut: "Hazmat", gw_gefahrgut_only: "", gw_hoehenrettung: "Camión de rescate en altura", gw_messtechnik: "Camión de medición", gw_oel_only: "", gw_san: "", gw_taucher: "", gw_wasserrettung: "Retención de agua", gw_werkfeuerwehr: "", gwl2wasser_only: "Vehículo con manguera", hems: "HSEM", hlf_only: "Vehículo de rescate", hlf_or_rw_and_lf: "Vehículo de rescate o vehículo de rescate pesado y camión de bomberos", hondengeleider: "", k9: "Unidad canina", kdow_lna: "", kdow_orgl: "Jefe de emergencias", ktw_b: "", ktw_or_rtw: "", lebefkw: "Vehículo de mando ligero (leBefKw)", lf_only: "Camiones de bomberos", long_distance_ambulance: "Ambulancia SVB", mask_service_unit: "Unidad aérea", mek_mtf: "", mek_zf: "", mtw: "Camión de transporte", mzb: "Barco multiusos", naw: "", naw_or_rtw_and_nef: "", naw_or_rtw_and_nef_or_rth: "", nef_only: "Ambulancia", oil_unit: "Camión para fuegos de aceite", only_ab_dekon_p: "", only_dekon_p: "", ovd_p: "", police_car: "Coche patrulla", polizeihubschrauber: "Helicóptero de policía", rescue_vehicle: "Furgones de Útiles Varios", rescue_vehicle_only: "Furgón de Útiles Varios", rescueboat: "Barco de rescate grande", rettungstreppe: "", rth_only: "Helicóptero", schlauchwagen: "Camión cisterna", seg_elw: "", sek_mtf: "", sek_zf: "", swat: "Fuerzas especiales (GEO)", swat_armored_vehicle: "Vehículo blindado de los GEO", swat_suv: "Todoterreno de los GEO", thw_anh_mzab: "", thw_anh_mzb: "", thw_anh_schlb: "", thw_brmg_r: "", thw_dle: "", thw_lkw: "", thw_lkw_7_lkr_19_tm: "", thw_mlw5: "", thw_mtw: "Camión de transporte técnico", thw_mzkw: "Vehículo multiusos", thw_tauchkraftwagen: "Equipo de buceo", thw_tauchkraftwagen_or_gw_taucher: "", tlf_only: "Camión cisterna", tm50: "", turboloescher: "", turntable_ladder: "Camión AE", ulf: "", wasserwerfer: "", water_amount: "", water_amount_tlf: "" } }, tutorial: { beginner: { building: { browser: { build_building: { add_name: "Segundo, ¡ponle un nombre a tu nueva estación! ¡Haz que sea reconocible y aumentable! P. ej., «Estación de bomberos #0001». Cuando termines, ¡haz clic en «Siguiente»!", build_with_credits: "¡Ahora construye tu edificio con créditos!", new_building: "¡Haz clic en «Nuevo edificio»!", select_building: "Primero, elige el tipo de edificio con el que deseas empezar. ¡Te recomendamos que empieces con el servicio de bomberos! En cualquier caso, ¡se recomienda empezar con una estación pequeña!", select_position: "¡Coloca el marcador azul en donde desees construir tu primera estación!" }, pick_location: "Primero, ¡elige una ubicación para comenzar! Escribe el nombre de la ubicación donde deseas empezar en la barra de búsqueda ¡o encuéntrala tú mismo en el mapa! ¿Qué hay de tu ciudad?", welcome: "¡Hola! ¡Bienvenido a Centro de Mando MX! ¡Te daré algunas lecciones para que empieces tu carrera en los servicios de emergencia con el pie derecho!" }, mobile: { build_building: { add_name: "Segundo, ¡ponle un nombre a tu nueva estación! ¡Haz que sea reconocible y aumentable! P. ej., «Estación de bomberos #0001». Cuando termines, ¡haz clic en «Siguiente»!", build_with_credits: "¡Ahora construye tu edificio con créditos!", new_building: "Primero, ¡escogeremos una ubicación para comenzar a construir tu primer edificio!

    Para eso, ¡haz clic en «Nuevo edificio»!", select_building: "Primero, elige el tipo de edificio con el que deseas empezar. ¡Te recomendamos que empieces con el servicio de bomberos! En cualquier caso, ¡se recomienda empezar con una estación pequeña!" }, welcome: "¡Hola! ¡Bienvenido a Centro de Mando MX! ¡Te daré algunas lecciones para que empieces tu carrera en los servicios de emergencia con el pie derecho!" } }, mission: { detail: { browser: { dispatch_menu: "Este es el menú de despachos. ¡Desde aquí puedes enviar a tus unidades a misiones!", dispatch_menu_buttons: "¡Estos son los dos botones de despacho! El primero, «Despachar», envía a las unidades seleccionadas a la misión. El segundo hace lo mismo que el primero, pero va a la siguiente misión. Por ahora, haz clic en el primer botón.", dispatch_menu_mission_general: "Aquí puedes ver la información general de la misión; es decir, el nombre, la dirección y el ícono de la misión. El ícono del hombrecito aparece y reemplaza la estrella pequeña en las misiones donde ya participaste.", dispatch_menu_mission_progress: "Aquí puedes ver el progreso de la misión, además de la cantidad de personal en el sitio ¡y el tiempo restante para cumplir la misión!", dispatch_menu_mission_specific: "Aquí puedes ver más datos sobre la misión, qué unidades están respondiendo al llamado y cuáles ya están en el lugar.", dispatch_menu_vehicle_list: "Esta es la lista de los vehículos disponibles. Selecciona los vehículos aquí. ¡Selecciona un vehículo haciendo clic sobre él!" }, mobile: { dispatch_menu: "Este es el menú de despachos. ¡Desde aquí puedes enviar a tus unidades a misiones!", dispatch_menu_buttons: "¡Estos son los dos botones de despacho! El primero, «Despachar», envía a las unidades seleccionadas a la misión. El segundo hace lo mismo que el primero, pero va a la siguiente misión. Por ahora, haz clic en el primer botón.", dispatch_menu_mission_general: "Aquí puedes ver la información general de la misión; es decir, el nombre, la dirección y el ícono de la misión. El ícono del hombrecito aparece y reemplaza la estrella pequeña en las misiones donde ya participaste.", dispatch_menu_mission_progress: "Aquí puedes ver el progreso de la misión, además de la cantidad de personal en el sitio ¡y el tiempo restante para cumplir la misión!", dispatch_menu_mission_specific: "Aquí puedes ver más datos sobre la misión, qué unidades están respondiendo al llamado y cuáles ya están en el lugar.", dispatch_menu_vehicle_list: "Esta es la lista de los vehículos disponibles. Selecciona los vehículos aquí. ¡Selecciona un vehículo haciendo clic sobre él!" } }, overview: { browser: { dispatch_button: "Ahora aprenderemos a lidiar con los incidentes. ¡Abre el menú de despachos haciendo clic en el botón «Despachar»!", first_mission: "¡Muy bien! ¡Construiste tu primer edificio! Mira, ¡te reportaron las primeras misiones!" }, mobile: { dispatch_button: "Ahora aprenderemos a lidiar con los incidentes. ¡Abre el menú de despachos haciendo clic en el botón «Despachar»!", first_mission: "¡Muy bien! ¡Construiste tu primer edificio! Mira, ¡te reportaron las primeras misiones!" } } }, rewards: { browser: { general: "¡Grandioso! ¡Vas en camino a convertirte en un asombroso Centro de mando MX! ¡Aquí tienes %{coins} monedas para ayudarte a empezar!
    El equipo de Centro de Mando MX" }, mobile: { general: "¡Grandioso! ¡Vas en camino a convertirte en un asombroso Centro de mando MX! ¡Aquí tienes %{coins} monedas para ayudarte a empezar!
    El equipo de Centro de Mando MX" } }, tips: { browser: { contact: "En caso de dudas, consulta las preguntas frecuentes dentro del juego o visita los foros del juego ¡o nuestra página de Facebook!", general: "Como siguiente paso, te recomendamos construir un centro de despachos y, tan pronto sea posible, nuevas estaciones, ya que la cantidad máxima de misiones será igual a la cantidad máxima de estaciones de un determinado tipo (policía, bomberos, ambulancias) más 1; p. ej., 5 de bomberos y 3 de ambulancias = 6 misiones.", join_alliance: "Asimismo, unirte a una alianza te será de gran ayuda, sobre todo, al inicio, por lo que también te lo recomendamos.", summary: "¡Estas son las bases de Centro de Mando MX! Completa misiones, obtén créditos, compra más unidades, repite. ¡Diviértete jugando!
    El equipo de Centro de Mando MX" }, mobile: { contact: "En caso de dudas, consulta las preguntas frecuentes dentro del juego o visita los foros del juego ¡o nuestra página de Facebook!", general: "Como siguiente paso, te recomendamos construir un centro de despachos y, tan pronto sea posible, nuevas estaciones, ya que la cantidad máxima de misiones será igual a la cantidad máxima de estaciones de un determinado tipo (policía, bomberos, ambulancias) más 1; p. ej., 5 de bomberos y 3 de ambulancias = 6 misiones.", join_alliance: "Asimismo, unirte a una alianza te será de gran ayuda, sobre todo, al inicio, por lo que también te lo recomendamos.", summary: "¡Estas son las bases de Centro de Mando MX! Completa misiones, obtén créditos, compra más unidades, repite. ¡Diviértete jugando!
    El equipo de Centro de Mando MX" } } }, commons: { collect: "Recoger", "continue": "No", end: "Finalizar", next: "Siguiente", prev: "Anterior", skip: "Sí", skip_hint: "¿Seguro que quieres saltarte el tutorial? Después, no podrás acceder a él.No podrás recibir la recompensa por completar el tutorial." }, rewards: { log: "Recompensa por completar el tutorial." } }, number: { format: { delimiter: ",", precision: 3, separator: ".", significant: !1, strip_insignificant_zeros: !1 } } }, I18n.translations.ja_JP = { common: { add: "追加", back: "戻る", cancel: "キャンセル", change_saved: "変更内容を保存しました", coins_spend: "これらのコインを支払いを実行してもよろしいですか?", congratulations: "おめでとうございます!", content: "コンテンツ", copy: "コピー", credits: "クレジット", "delete": "削除", details: "詳細", edit: "編集", error: "エラー", is_offline: "%{user}はオフラインです。", is_offline_long: "長時間:%{user}はオフラインです。", is_offline_with_duration: "%{user}はオフラインです: %{duration}", is_online: "%{user}はオンラインです。", loading: "ロード中…", name: "名前", none: "なし", of: "/", off: "オフ", on: "オン", save: "保存", search: "検索", show: "表示", user_not_found: "ユーザーが見つかりません", wrong_key: "誤ったキー" }, javascript: { alarm: "指令", arrival: "到着", backalarm: "キャンセル", coins: "コイン", credits: "クレジット", days: "日", few_seconds: "数秒後", finish_in: "終了まで:", foam_approaching: "接近中:%{amount}リットル", foam_missing: "不足分:%{amount}リットル", foam_on_site: "現場:%{amount}リットル", foam_selected: "選択済み:%{amount}リットル", hours: "時間", location_not_found: "見つかりません", messages: "メッセージ", minutes: "分", missed_vehicle: "不足:", mission_start_in: "開始まで:", "new": "新着", not_found_map: "車両がマップ上に見つかりませんでした", now: "今", patient: "患者", patient_untouched: "治療を受けていない患者", poi_delete: "この到着地点「:%{caption}」を削除しますか?", reload: "リロード", sale: "セール", sale_ended: "セール終了", secounds: "秒", sicherheitswache_error: "すべての条件を満たさなかったため、セキュリティーガード「%{caption}」が上手くいきませんでした。", sicherheitswache_success: "セキュリティーガード「%{caption}」は無事行われました。%{credits}クレジットを受け取ります。", start_in: "開始まで: ", start_username: "スターター:", time_left: "残り時間:", to_building: "建物を見る", to_mission: "ミッションを見る", understand: "承認", user_not_found: "プレイヤーが見つかりませんでした。", vehicles_not_visible: "車両が見えません。 ", water_approaching: "接近中: %{amount}リットル", water_missing: "不足分: %{amount}リットル", water_on_site: "現場: %{amount}リットル", water_selected: "選択済み: %{amount}リットル" }, map: { alliance: "アライアンス", alliance_chat: "チャット", alliance_chat_banned: "アライアンスチャットから現在バンをされています。", alliance_chat_banned_admin: "バンを行った人:", alliance_chat_banned_timeleft: "残り時間:", alliance_chat_radio_off: "アライアンス無線:オフ", alliance_chat_radio_on: "アライアンス無線:オン", alliance_event: "イベント", alliance_missions: "アライアンスミッション", alliance_missions_event: "イベント", ambulance: "救急車", anti_abuse_active_link: "詳細はこちらをご覧ください。", anti_abuse_active_text: "同じ種類のステーションがあまりにも近くに建設されているため、ミッションは半径100kmの拡張範囲内で発生します。", attended: "対応済", cancel_alliance_event: "アライアンスイベントのキャンセル", cancel_alliance_event_confirm: "本当にアライアンスイベントをキャンセルしますか? ", challenges: "", chat_history: "チャット履歴", congratulations: "おめでとうございます!昇進することができます。", create_alliance_event: "アライアンスイベントを開始", create_alliance_operation: "大型アライアンスミッションを作成", emergency: "緊急事態", finishing: "対応中", join_alliance_infos: "アライアンスに所属していれば、他のプレイヤーがあなたへ自由にミッションを割り当てられます。", map: "マップ", map_filters: { all_buildings: "建物", all_missions: "ミッション", alliance_buildings: "アライアンスの建物", alliance_members: "メンバー", alliance_missions: "同盟から共有", ambulance_station_missions: "救急車ステーション", ambulance_station_small_missions: "救急車ステーション(小型ステーション)", building_complex: "連結建造物", buildings_section: "ステーション", clinic_missions: "クリニック", dispatch_center_missions: "指令センター", fire_school_missions: "消防アカデミー", firehouse_missions: "消防局", firehouse_small_missions: "消防局(小)", hospital_missions: "病院", map_filters: "マップフィルターの一覧", mission_positions: "到着地点(POI)", mission_positions_section: "POI", missions_section: "ミッション", police_copter_station_missions: "警察航空隊", police_school_missions: "警察アカデミー", police_small_missions: "警察署(小型ステーション)", police_special_forces: "警察特殊部隊", police_station_missions: "警察署", prison_missions: "刑務所", rapid_deployment_group: "高速セットアップグループ(SEG)", rescue_copter_station_missions: "医療ヘリコプターステーション", riot_police: "対暴徒警察", riot_police_missions: "対暴徒警察", staging_area_missions: "ステージングエリア", technical_aid_organization: "技術支援隊", technical_aid_organization_school: "THW連邦学校", user_buildings: "自分の建物", user_missions: "自分のミッション", water_watch: "水難救助", water_watch_missions: "水難救助" }, message: "メッセージ", mission: "ミッション", missions_filtered_out: "一部のミッションは除外される可能性があります。マップフィルターを確認してください。", no_alliance_chat_impossible: "アライアンスに所属していません。", no_alliance_missions: "現在、アライアンスミッションはありません。", no_ambulance_missions: '"患者の搬送はありません。患者の搬送は、一次救命処置と病院を所有すると対応できるようになります。"', no_emergency_missions: "参加できる緊急事態ミッションはありません。最初のステーションを作成した後、緊急事態ミッションが発生します。", no_radio_messages: "無線メッセージを傍受していません。", radio_messages: "無線", restore_map: "マップをリストア", server_warning: "Server maintenance at 7 am. 6h downtime expected.", show_informations: "緑 = ミッションがリスト内に表示されます。赤 = ミッションが表示されません。", sicherheitswache: "予定されているミッション", transport: "輸送", unattended: "未対応" }, fms: { going: "応答中", not_ready: "故障中", on_destination: "輸送目的地", on_place: "現場", patient_transported: "患者を輸送中", prisoner_transported: "囚人を輸送中", ready_home: "ステーションで利用可", ready_traveling: "ミッションなし、利用可", talking_wish: "輸送要請", waiting_for_vehicle: "牽引用の車両を待機中" }, intervention_order: { automatic_text_color: "自動テキストカラー", back: "戻る", category: "カテゴリー", colour: "カラー", column: "コラム", column_number: "コラム番号", column_number_hint: "コラム番号が与えられると、警報と応答内容が警報ページ内の対応するコラムに表示されます。", create_intervention_order: "新規の警報と応答管理を作成", "delete": "削除", delete_all: "警報と応答管理を完全に削除", delete_all_confirm: "すべての警報と応答管理を削除してもよろしいですか?既存のエクスポートした内容は利用できません!", description: "名前", edit: "編集", "export": { "export": "エクスポート", "import": "インポート", import_done: "選択した内容はインポートされ、警報と応答プランに書かれました。", saved: "警報と応答管理をエクスポート", saved_text: "警報と応答管理のエクスポート準備ができました。他のプレイヤーはリンクを辿って警報と応答管理がインポートできます。その間警報と応答管理を変更した場合、この変更はエクスポート内に自動的に適用されます。" }, hotkey_hint: "車両セクションのホットキーを選択してください。ミッション画面のボタンを押してください:ALT + 割り当てたホットキー (Firefoxの場合:ALT + SHIFT + 割り当てたホットキー、mac osの場合:ctrl + alt + 割り当てたホットキー)で車両セクションを選択します。", intervention_order: "警報と応答管理を編集", name: "名前", no_intervention_created: "まだ警報と応答管理を作成していません。", options: "オプション", reset: "警報ウィンドウ内の前回のセクションをリセットします。", reset_hint: "指令ウィンドウで車両を選んだ場合、このボタンでリセットできます。", save: "保存", station: "ステーション", station_hint: "建物を選択すると、建物に対応する車両のみが選択されます。", successfully_created: "警報と応答管理を無事に作成しました。", successfully_deleted: "警報と応答管理を削除", successfully_updated: "警報と応答管理が無事にアップデートされました。", text_color: "テキストカラー", vehicles: { ab_atemschutz_only: "自給式呼吸器モジュール", ab_einsatzleitung_only: "指示モジュール", ab_gefahrgut_only: "危険物取扱モジュール", ab_oel_only: "飛散オイルモジュール", ab_ruest: "テック/救助モジュール", ab_ruest_rw: "", abl2wasser_only: "ホースサプライモジュール", ambulance: "ALS救急車", ambulance_or_rapid_responder: "", arff: "空港用消防車", battalion_chief_unit: "消防指令長ユニット", boot: "ボート(一般)", dekon_p: "", division_chief_unit: "移動通信車両", dlk_or_tm50: "", elw1_or_elw2: "消防司令長車両または指令車", elw2_or_ab_elw: "", elw3: "", elw_airport: "", emergency_ambulance: "緊急救急車またはヘリコプター", fire_truck: "消防車", fireboat: "火災用大型ボート", fly_car: "ドクターカー", fly_car_any: "ドクターカー / 家庭医", foam_amount: "泡沫(リットル)", fukw: "", fwk: "", gefkw: "", gkw: "小型トラック", grtw: "大型トラックユニット", grtw0: "", grtw1: "", grukw: "", gw_atemschutz_only: "空気充填照明車", gw_gefahrgut: "危険物取扱車両", gw_gefahrgut_only: "", gw_oel_only: "", gw_san: "", gw_taucher: "", gw_wasserrettung: "貯水車両", gw_werkfeuerwehr: "", gwl2wasser_only: "ホース車両", hems: "HEMS", hlf_only: "救助工作車", hlf_or_rw_and_lf: "救助工作車または特別高度救助部隊車両と消防車", hondengeleider: "", k9: "警察犬ユニット", kdow_lna: "", kdow_orgl: "救急車指揮官", ktw_b: "", ktw_or_rtw: "一次/二次救命処置", lf_only: "消防車", long_distance_ambulance: "一時救命処置救急車", mask_service_unit: "空気充填照明車", mek_mtf: "", mek_zf: "", mtw: "消防隊員用車両", mzb: "多目的ボート", naw: "", naw_or_rtw_and_nef: "", naw_or_rtw_and_nef_or_rth: "", nef_only: "救急車", only_ab_dekon_p: "", only_dekon_p: "", ovd_p: "", police_car: "パトカー", polizeihubschrauber: "警察ヘリコプター", rescue_vehicle: "大型救助車両", rescue_vehicle_only: "特別高度救助部隊車両のみ", rescueboat: "大型救助ボート", rettungstreppe: "", rth_only: "ヘリコプター", schlauchwagen: "ウォータータンカー", seg_elw: "", sek_mtf: "", sek_zf: "", swat: "SWAT", swat_armored_vehicle: "SWAT装甲車両", swat_suv: "SWAT SUV", thw_anh_mzab: "", thw_anh_mzb: "", thw_anh_schlb: "", thw_brmg_r: "", thw_dle: "", thw_lkw: "", thw_lkw_7_lkr_19_tm: "", thw_mlw5: "", thw_tauchkraftwagen: "潜水チーム", thw_tauchkraftwagen_or_gw_taucher: "", tlf_only: "タンカートラック", tm50: "", turboloescher: "", turntable_ladder: "プラットフォームトラック", ulf: "", wasserwerfer: "", water_amount: "リットルの水", water_amount_tlf: "" } }, tutorial: { beginner: { building: { browser: { build_building: { add_name: "次は新しいステーションに名前を付けてくれ!分かりやすく、二か所目以降もつけやすい名前にしよう!例えば、「消防局#0001」が一つとして挙げられる。できたら「次へ」をクリックだ!", build_with_credits: "今度はクレジットを使って建物を建てよう!", new_building: "「新たな建物」をクリック!", select_building: "スタートしたい建物の種類を選ぼう。消防から始めるのがお勧めだ!とりあえず、小さいステーションから始めるといいぞ!", select_position: "最初のステーションを建てたい所に青色のマーカーを動かそう!" }, pick_location: "まずはスタート地点を選ぶ!スタートしたい場所の名前を検索バーに入力するか、地図から見つけよう!君の出身地はどうかな?", welcome: "ミッションチーフへようこそ!緊急サービスキャリアをスタートするためのレッスンをしよう。" }, mobile: { build_building: { add_name: "次は新しいステーションに名前を付けてくれ!分かりやすく、二か所目以降もつけやすい名前にしよう!例えば、「消防局#0001」が一つとして挙げられる。できたら「次へ」をクリックだ!", build_with_credits: "今度はクレジットを使って建物を建てよう!", new_building: "まずはスタート地点を選んで、最初の建設を始めよう!

    「新たな建物」をクリック!", select_building: "スタートしたい建物の種類を選ぼう。消防から始めるのがお勧めだ!とりあえず、小さいステーションから始めるといいぞ!" }, welcome: "ミッションチーフへようこそ!緊急サービスキャリアをスタートするためのレッスンをしよう。" } }, mission: { detail: { browser: { dispatch_menu: "これが指令メニューだ。ここからユニットをミッションに派遣するのだ!", dispatch_menu_buttons: "指令ボタンは2つある!一つ目は「指令」だ。選択したユニットをミッションに派遣する。2つ目は最初と同じだが、次のミッションへ向かう。ひとまず、最初のボタンをクリックしよう。", dispatch_menu_mission_general: "ここでは、ミッションに関する全般的な情報、つまりミッションの名前、住所、アイコンを確認できる。既に参加しているミッションは、小さな星のアイコンが人の形になる。", dispatch_menu_mission_progress: "ここでは、このミッションにおける進捗状況、現場にいる人員数、ミッションの残り時間を見ることができる!", dispatch_menu_mission_specific: "ここでは、ミッションに関する詳細な情報、通報に応答しているユニット、既に現場派遣されているユニットを見ることができる。", dispatch_menu_vehicle_list: "これは使える車両の一覧である。ここから車両を選べる。車両をクリックして決定!" }, mobile: { dispatch_menu: "これが指令メニューだ。ここからユニットをミッションに派遣するのだ!", dispatch_menu_buttons: "指令ボタンは2つある!一つ目は「指令」だ。選択したユニットをミッションに派遣する。2つ目は最初と同じだが、次のミッションへ向かう。ひとまず、最初のボタンをクリックしよう。", dispatch_menu_mission_general: "ここでは、ミッションに関する全般的な情報、つまりミッションの名前、住所、アイコンを確認できる。既に参加しているミッションは、小さな星のアイコンが人の形になる。", dispatch_menu_mission_progress: "ここでは、このミッションにおける進捗状況、現場にいる人員数、ミッションの残り時間を見ることができる!", dispatch_menu_mission_specific: "ここでは、ミッションに関する詳細な情報、通報に応答しているユニット、既に現場派遣されているユニットを見ることができる。", dispatch_menu_vehicle_list: "これは使える車両の一覧である。ここから車両を選べる。車両をクリックして決定!" } }, overview: { browser: { dispatch_button: "ここで現場対応の方法を学ぼう。「指令」ボタンをクリックして指令メニューを開いてくれ!", first_mission: "よし、最初の建物が出来たな!最初のミッションが来たぞ!" }, mobile: { dispatch_button: "ここで現場対応の方法を学ぼう。「指令」ボタンをクリックして指令メニューを開いてくれ!", first_mission: "よし、最初の建物が出来たな!最初のミッションが来たぞ!" } } }, rewards: { browser: { general: "いいぞ。一流のミッションチーフになれる日は近いな!コイン%{coins}枚だ。キャリアのスタートに役立ててくれ!
    ミッションチーフ・チームより" }, mobile: { general: "いいぞ。一流のミッションチーフになれる日は近いな!コイン%{coins}枚だ。キャリアのスタートに役立ててくれ!
    ミッションチーフ・チームより" } }, tips: { browser: { contact: "分からないことがあったら、ゲームFAQを参照するか、ゲームフォーラムかFacebookページを訪ねてくれ!", general: "次のステップでは、指令センターを建設し、その後すぐに新しいステーションを増やすことをお勧めする。ミッションの最大数=各種類(警察、消防、救急)のステーションの最大数+1であるためだ。例えば、消防局が5軒、救急車ステーションが3軒とすると、ミッション数は6になる。", join_alliance: "また、アライアンスを形成すると、特に駆け出し、ゲーム序盤で大いに役に立つので、それもお勧めしよう。", summary: "ミッションチーフの基本が紹介されているぞ!ミッションを達成し、クレジットを獲得し、ユニットを購入し、拡充しよう。ゲームはこの一連の流れを繰り返して進むぞ。では、楽しんでくれ!
    ミッションチーフ・チームより" }, mobile: { contact: "分からないことがあったら、ゲームFAQを参照するか、ゲームフォーラムかFacebookページを訪ねてくれ!", general: "次のステップでは、指令センターを建設し、その後すぐに新しいステーションを増やすことをお勧めする。ミッションの最大数=各種類(警察、消防、救急)のステーションの最大数+1であるためだ。例えば、消防局が5軒、救急車ステーションが3軒とすると、ミッション数は6になる。", join_alliance: "また、アライアンスを形成すると、特に駆け出し、ゲーム序盤で大いに役に立つので、それもお勧めしよう。", summary: "ミッションチーフの基本が紹介されているぞ!ミッションを達成し、クレジットを獲得し、ユニットを購入し、拡充しよう。ゲームはこの一連の流れを繰り返して進むぞ。では、楽しんでくれ!
    ミッションチーフ・チームより" } } }, commons: { collect: "獲得", "continue": "いいえ", end: "終了", next: "次へ", prev: "前へ", skip: "はい", skip_hint: "チュートリアルは飛ばすと後で見ることはできません、スキップしてもいいですか?チュートリアル完了報酬が受け取れなくなります。" }, rewards: { log: "チュートリアル完了の報酬です。" } }, number: { format: { delimiter: ",", precision: 3, separator: ".", significant: "誤", strip_insignificant_zeros: "誤" } } }, I18n.translations.ko_KR = { common: { add: "추가", back: "뒤로", cancel: "취소", change_saved: "변경 저장됨", coins_spend: "코인을 사용하시겠습니까?", congratulations: "축하합니다!", content: "내용", copy: "복사", credits: "크레딧", "delete": "삭제", details: "세부 사항", edit: "편집", error: "오류", is_offline: "%{user} 님은 오프라인입니다.", is_offline_long: "장기간 오프라인: %{user}", is_offline_with_duration: "%{user} 님은 오프라인입니다: %{duration}", is_online: "%{user} 님이 온라인입니다.", loading: "로딩 중...", name: "이름", none: "없음", of: "/", off: "끔", on: "켬", save: "저장", search: "탐색", show: "보기", user_not_found: "유저를 찾을 수 없음", wrong_key: "잘못된 키" }, javascript: { alarm: "파견", arrival: "도착", backalarm: "취소", coins: "코인", credits: "크레딧", days: "일", few_seconds: "몇 초 안에", finish_in: "완료까지:", foam_approaching: "접근 중: %{amount}리터", foam_missing: "소실된 양: %{amount}리터", foam_on_site: "현장: %{amount}리터", foam_selected: "선택한 거품: %{amount}리터", hours: "시간", location_not_found: "찾을 수 없음", messages: "메시지", minutes: "분", missed_vehicle: "부족량:", mission_start_in: "시작까지:", "new": "새로운", not_found_map: "지도상에서 차량을 찾을 수 없습니다", now: "지금", patient: "환자", patient_untouched: "치료받지 않은 환자", poi_delete: "이 관심 지역(%{caption})을(를) 삭제하시겠습니까?", reload: "다시 불러오기", sale: "할인", sale_ended: "할인 종료", secounds: "초", sicherheitswache_error: '충족하지 못한 기준이 있어 "%{caption}" 보안 경비에 실패했습니다.', sicherheitswache_success: '"%{caption}"의 보안 경비를 성공적으로 완료했습니다. %{credits} 크레딧을 받았습니다.', start_in: "시작까지: ", start_username: "시작한 사용자:", time_left: "남은 시간:", to_building: "건물 보기", to_mission: "임무 보기", understand: "확인", user_not_found: "플레이어를 찾을 수 없습니다.", vehicles_not_visible: "차량이 보이지 않습니다. ", water_approaching: "접근 중: %{amount}L", water_missing: "분실: %{amount}L", water_on_site: "현장 보유: %{amount}L", water_selected: "선택함: %{amount}L" }, map: { alliance: "동맹", alliance_chat: "채팅", alliance_chat_banned: "현재 동맹 채팅 금지 상태입니다.", alliance_chat_banned_admin: "차단자:", alliance_chat_banned_timeleft: "남은 시간:", alliance_chat_radio_off: "동맹 무전: 끔", alliance_chat_radio_on: "동맹 무전: 켬", alliance_event: "이벤트", alliance_missions: "동맹 임무", alliance_missions_event: "이벤트", ambulance: "구급차", anti_abuse_active_link: "더 많은 정보를 확인하려면 클릭하세요.", anti_abuse_active_text: "동일 유형의 관할서가 가까운 거리에 너무 많이 세워졌기 때문에 100km의 확장된 반경 내에서 임무가 발생합니다.", attended: "배정됨", cancel_alliance_event: "동맹 이벤트 취소", cancel_alliance_event_confirm: "동맹 이벤트를 취소하시겠습니까?", challenges: "", chat_history: "채팅 이력", congratulations: "축하합니다! 이제 진급하셨습니다.", create_alliance_event: "동맹 이벤트 시작", create_alliance_operation: "대규모 동맹 임무 생성", emergency: "응급 상황", finishing: "완료 중", join_alliance_infos: "동맹에 소속된 상태라면 다른 플레이어로부터 임무를 자유롭게 받을 수 있습니다.", map: "지도", map_filters: { all_buildings: "건물", all_missions: "임무", alliance_buildings: "동맹 건물", alliance_members: "동맹원", alliance_missions: "동맹이 공유", ambulance_station_missions: "응급실", ambulance_station_small_missions: "응급실(소형 관할서)", building_complex: "복합 건물", buildings_section: "관할서", clinic_missions: "클리닉", dispatch_center_missions: "지휘센터", fire_school_missions: "소방학교", firehouse_missions: "소방서", firehouse_small_missions: "소방서(소형)", hospital_missions: "병원", map_filters: "지도 필터 목록", mission_positions: "관심 지역(POI)", mission_positions_section: "POI", missions_section: "임무", police_copter_station_missions: "경찰 항공", police_school_missions: "경찰 학교", police_small_missions: "경찰서(소형 관할서)", police_special_forces: "경찰 특공부대", police_station_missions: "경찰서", prison_missions: "감옥", rapid_deployment_group: "빠른 그룹 설정(SEG)", rescue_copter_station_missions: "구급 헬리콥터 스테이션", riot_police: "진압 경찰", riot_police_missions: "진압 경찰", staging_area_missions: "집결지", technical_aid_organization: "기술 지원 기관(THW)", technical_aid_organization_school: "THW 연방 학교", user_buildings: "내 건물", user_missions: "내 임무", water_watch: "수상 구조", water_watch_missions: "수상 구조" }, message: "메시지", mission: "임무", missions_filtered_out: "일부 미션이 필터링 될 수 있습니다. 지도 필터를 확인하십시오.", no_alliance_chat_impossible: "동맹에 속해 있지 않습니다.", no_alliance_missions: "현재 진행 중인 동맹 임무가 없습니다.", no_ambulance_missions: '구급차 임무가 없습니다. 구급차 임무는 구급차와 병원을 보유했을 때에만 발생합니다."이송 환자가 없습니다. 환자는 BLS 및 병원을 보유하는 즉시이송이 이루어집니다."', no_emergency_missions: "이용할 수 있는 긴급 임무가 없습니다. 긴급 임무는 첫 번째 관할서를 생성한 후 발생합니다.", no_radio_messages: "받은 무전 메시지가 없습니다.", radio_messages: "무전기", restore_map: "지도 복원", server_warning: "Server maintenance at 7 am. 6h downtime expected.", show_informations: "녹색 = 임무가 목록에 표시됩니다. 적색 = 임무가 표시되지 않습니다.", sicherheitswache: "계획된 출현", transport: "수송", unattended: "배정되지 않음" }, fms: { going: "응답 중", not_ready: "서비스 중단", on_destination: "수송 목적지로", on_place: "현장에 있음", patient_transported: "환자 이송 중", prisoner_transported: "죄수 호송 중", ready_home: "관할서에서 이용 가능", ready_traveling: "완료 및 이용 가능", talking_wish: "수송 요청", waiting_for_vehicle: "견인 차량 기다리는 중" }, intervention_order: { automatic_text_color: "자동 글 색상", back: "뒤로", category: "카테고리", colour: "색상", column: "열", column_number: "열 번호", column_number_hint: "열 번호를 받으면 등록한 경보 및 대응 항목이 경보 페이지 내 해당 열에 표시됩니다.", create_intervention_order: "새 경보 및 대응 규정 생성", "delete": "삭제", delete_all: "경보 및 대응 규정 완전 삭제", delete_all_confirm: "경보 및 대응 규정을 모두 삭제하시겠습니까? 내보낸 기존 항목을 더 이상 사용할 수 없습니다!", description: "이름", edit: "편집", "export": { "export": "내보내기", "import": "가져오기", import_done: "선택한 항목을 가져와 경보 및 대응 계획에 기록했습니다.", saved: "경보 및 대응 규정 내보내기", saved_text: "경보 및 대응 규정을 내보낼 준비를 마쳤습니다. 링크를 통해 다른 플레이어가 제작한 경보 및 대응 규정을 가져올 수 있습니다. 이 기간 동안 경보 및 대응 규정을 변경할 경우 변경된 내용이 내보내는 항목에 자동으로 적용됩니다." }, hotkey_hint: "이 차량을 선택할 단축키를 지정하세요. 임무 창에서: ALT + 단축키(Firefox의 경우: ALT + SHIFT + 단축키, Mac os의 경우: ctrl + alt + 단축키)를 눌러 선택한 차량을 지정하세요.", intervention_order: "경보 및 대응 규정 편집", name: "이름", no_intervention_created: "경보 및 대응 규정을 생성하지 않았습니다.", options: "옵션", reset: "경보 창에서 이전 선택을 초기화하세요.", reset_hint: "파견 창에서 차량을 선택했을 경우 이 버튼을 사용해 초기화할 수 있습니다.", save: "저장", station: "관할서", station_hint: "건물 선택 시, 선택한 건물 내에 배치한 차량만 선택됩니다.", successfully_created: "경보 및 대응 규정을 생성했습니다.", successfully_deleted: "경보 및 대응 규정을 삭제했습니다", successfully_updated: "경보 및 대응 규정을 업데이트하였습니다.", text_color: "글 색상", vehicles: { ab_atemschutz_only: "공기호흡기(SCBA) 모듈", ab_einsatzleitung_only: "지휘 모듈", ab_gefahrgut_only: "생화학 모듈", ab_oel_only: "기름 유출 모듈", ab_ruest: "기술/구조 모듈", ab_ruest_rw: "", abl2wasser_only: "호스 지원 모듈", ambulance: "고급 인명 지원(ALS) 구급차", ambulance_or_rapid_responder: "", arff: "ARFF(공항 소방차)", battalion_chief_unit: "소방대장 유닛", boot: "보트(일반)", dekon_p: "", division_chief_unit: "기동형 지휘차량", dlk_or_tm50: "", elw1_or_elw2: "소방대장 유닛, 기동형 지휘차량 또는 기동형 지휘 모듈 ", elw2_or_ab_elw: "", elw3: "", elw_airport: "", emergency_ambulance: "응급용 구급차 또는 헬기", fire_truck: "소방차", fireboat: "대형 소방 보트", fly_car: "긴급 이송차", fly_car_any: "긴급 이송차 / 일반의", foam_amount: "거품(리터)", fukw: "", fwk: "", gefkw: "", gkw: "다용도 트럭", grtw: "대량 사상자용 유닛", grtw0: "", grtw1: "", grukw: "", gw_atemschutz_only: "", gw_gefahrgut: "생화학 차량", gw_gefahrgut_only: "", gw_hoehenrettung: "작업 차량-로프 구조차", gw_messtechnik: "작업 차량-측량차", gw_oel_only: "", gw_san: "", gw_taucher: "", gw_wasserrettung: "유수 관리", gw_werkfeuerwehr: "", gwl2wasser_only: "호스 차량", hems: "긴급 의료 서비스(헬기)", hlf_only: "구조 공작차", hlf_or_rw_and_lf: "구조 공작차 또는 중장비 구조 차량 및 소방차", hondengeleider: "", k9: "K-9 유닛", kdow_lna: "", kdow_orgl: "구급 지휘차", kdow_orgl_any: "구급 지휘차", ktw_b: "", ktw_or_rtw: "BLS 또는 ALS", lebefkw: "경량형 지휘차량(leBefKw)", lf_only: "소방차", long_distance_ambulance: "기본 인명 지원(BLS) 구급차", mask_service_unit: "이동식 호흡 장비", mek_mtf: "", mek_zf: "", mtw: "소방 부서 차량(MTW)", mzb: "다목적 보트", naw: "", naw_or_rtw_and_nef: "", naw_or_rtw_and_nef_or_rth: "", nef_only: "구급차", oil_unit: "작업 차량-기름 유출 방지", only_ab_dekon_p: "", only_dekon_p: "", ovd_p: "", police_car: "순찰차", polizeihubschrauber: "경찰 헬기", rescue_vehicle: "중장비 구조 차량", rescue_vehicle_only: "중장비 구조", rescueboat: "대형 구조 보트", rettungstreppe: "", rth_only: "구급 헬리콥터", schlauchwagen: "수상 탱커", seg_elw: "", sek_mtf: "", sek_zf: "", swat: "SWAT", swat_armored_vehicle: "SWAT 무장 차량", swat_suv: "SWAT SUV", thw_anh_mzab: "", thw_anh_mzb: "", thw_anh_schlb: "", thw_brmg_r: "", thw_dle: "", thw_lkw: "", thw_lkw_7_lkr_19_tm: "", thw_mlw5: "", thw_mtw: "인원 운송용 기술 차량(MTW-TZ - THW)", thw_mzkw: "다목적 차량(MzKW)", thw_tauchkraftwagen: "다이빙 팀", thw_tauchkraftwagen_or_gw_taucher: "", tlf_only: "탱커 트럭", tm50: "", turboloescher: "", turntable_ladder: "플랫폼 트럭", ulf: "", wasserwerfer: "", water_amount: "물 리터 수", water_amount_tlf: "" } }, tutorial: { beginner: { building: { browser: { build_building: { add_name: '두 번째는 새 관할서에 이름을 붙이는 것입니다! 알기 쉽고 확장 시 구별하기 쉬운 이름으로 만들어 보세요! 예를 들면 "소방서 #0001"처럼 말입니다. 전부 끝났으면 "다음"을 클릭하세요!', build_with_credits: "이제 크레딧을 사용해 건물을 지으세요!", new_building: '"새 건물"을 클릭하세요!', select_building: "먼저 시작할 건물 유형을 선택하세요. 소방서를 강력하게 추천합니다! 어떤 경우라 하더라도 소형 관할서로 시작하는 것을 권장합니다!", select_position: "첫 번째 관할서를 지을 곳으로 파란색 표식을 옮기세요!" }, pick_location: "먼저 시작 위치를 선택합니다! 검색 바에서 시작할 위치 이름을 입력하거나 직접 지도에서 찾아보세요! 지금 사는 도시는 어떠신가요?", welcome: "안녕하세요, 미션 치프에 오신 것을 환영합니다! 응급 구조대 이력을 확실하게 쌓을 수 있는 몇 가지 방법을 알려드릴게요!" }, mobile: { build_building: { add_name: '두 번째는 새 관할서에 이름을 붙이는 것입니다! 알기 쉽고 확장 시 구별하기 쉬운 이름으로 만들어 보세요! 예를 들면 "소방서 #0001"처럼 말입니다. 전부 끝났으면 "다음"을 클릭하세요!', build_with_credits: "이제 크레딧을 사용해 건물을 지으세요!", new_building: '먼저 시작 위치를 선택해 첫 번째 건물을 지으세요!

    건물을 지으려면 "새 건물"을 클릭하세요!', select_building: "먼저 시작할 건물 유형을 선택하세요. 소방서를 강력하게 추천합니다! 어떤 경우라 하더라도 소형 관할서로 시작하는 것을 권장합니다!" }, welcome: "안녕하세요, 미션 치프에 오신 것을 환영합니다! 응급 구조대 이력을 확실하게 쌓을 수 있는 몇 가지 방법을 알려드릴게요!" } }, mission: { detail: { browser: { dispatch_menu: "여기가 파견 메뉴입니다. 이 메뉴에서 유닛을 임무에 보낼 수 있습니다!", dispatch_menu_buttons: '파견 버튼은 두 가지가 있습니다! 첫 번째: "파견"을 사용해 선택한 유닛을 임무에 파견합니다. 두 번째는 첫 번째 방법과 동일하지만, 즉시 다음 임무로 이동합니다. 지금은 첫 번째 버튼을 클릭하세요.', dispatch_menu_mission_general: "여기에서는 이름, 주소, 임무 아이콘 등 임무에 관한 일반 정보를 확인할 수 있습니다. 이미 참여한 임무는 작은 별 대신 작은 사람 아이콘이 표시됩니다.", dispatch_menu_mission_progress: "여기에서는 미션 완료까지의 진행도와 현장 인원, 미션 완료까지 남은 시간을 확인할 수 있습니다!", dispatch_menu_mission_specific: "여기에서는 어떤 유닛이 호출에 반응하는지, 어떤 유닛이 이미 현장에 있는지 등 임무에 대한 자세한 정보를 확인할 수 있습니다.", dispatch_menu_vehicle_list: "이용할 수 있는 차량 목록이 여기에 표시됩니다. 여기서 차량을 선택합니다. 이제 차량을 클릭해 선택하세요!" }, mobile: { dispatch_menu: "여기가 파견 메뉴입니다. 이 메뉴에서 유닛을 임무에 보낼 수 있습니다!", dispatch_menu_buttons: '파견 버튼은 두 가지가 있습니다! 첫 번째: "파견"을 사용해 선택한 유닛을 임무에 파견합니다. 두 번째는 첫 번째 방법과 동일하지만, 즉시 다음 임무로 이동합니다. 지금은 첫 번째 버튼을 클릭하세요.', dispatch_menu_mission_general: "여기에서는 이름, 주소, 임무 아이콘 등 임무에 관한 일반 정보를 확인할 수 있습니다. 이미 참여한 임무는 작은 별 대신 작은 사람 아이콘이 표시됩니다.", dispatch_menu_mission_progress: "여기에서는 미션 완료까지의 진행도와 현장 인원, 미션 완료까지 남은 시간을 확인할 수 있습니다!", dispatch_menu_mission_specific: "여기에서는 어떤 유닛이 호출에 반응하는지, 어떤 유닛이 이미 현장에 있는지 등 임무에 대한 자세한 정보를 확인할 수 있습니다.", dispatch_menu_vehicle_list: "이용할 수 있는 차량 목록이 여기에 표시됩니다. 여기서 차량을 선택합니다. 이제 차량을 클릭해 선택하세요!" } }, overview: { browser: { dispatch_button: '이제 사고를 처리하는 방법을 알아보겠습니다. "파견" 버튼을 클릭해 파견 메뉴를 여세요!', first_mission: "훌륭합니다. 첫 번째 건물이 완성되었네요! 보세요, 첫 번째 임무 신고가 접수되었습니다!" }, mobile: { dispatch_button: '이제 사고를 처리하는 방법을 알아보겠습니다. "파견" 버튼을 클릭해 파견 메뉴를 여세요!', first_mission: "훌륭합니다. 첫 번째 건물이 완성되었네요! 보세요, 첫 번째 임무 신고가 접수되었습니다!" } } }, rewards: { browser: { general: "훌륭합니다. 멋진 미션 치프가 되기 위해 임무를 열심히 진행 중이시군요! 순조롭게 시작할 수 있도록 코인 %{coins}개를 드립니다.
    미션 치프 팀 올림" }, mobile: { general: "훌륭합니다. 멋진 미션 치프가 되기 위해 임무를 열심히 진행 중이시군요! 순조롭게 시작할 수 있도록 코인 %{coins}개를 드립니다.
    미션 치프 팀 올림" } }, tips: { browser: { contact: "문의 사항은 게임 내 FAQ를 참고하시거나 게임 포럼 또는 Facebook 페이지를 방문해 주세요!", general: "다음 단계는 지휘센터 건설 후 최대한 빨리 새 관할서를 짓는 것을 권장합니다. 최대 임무 수는 여러 유형(경찰서, 소방서, 응급실)의 관할서 중 가장 많이 배치한 관할서 수+1로 정해지기 때문입니다. 예를 들어 소방서 5곳과 응급실 3곳을 보유할 경우 최대 6개의 임무를 받을 수 있습니다.", join_alliance: "또한 게임 초기에 동맹에 가입하면 큰 도움을 받을 수 있으므로 동맹 가입도 권장합니다.", summary: "지금까지 미션 치프의 기본 플레이 방법을 알려드렸습니다! 임무를 완수하고 크레딧을 받아 더 많은 유닛을 구매하며 임무를 반복하세요. 즐겁게 플레이하세요!
    미션 치프 팀 올림" }, mobile: { contact: "문의 사항은 게임 내 FAQ를 참고하시거나 게임 포럼 또는 Facebook 페이지를 방문해 주세요!", general: "다음 단계는 지휘센터 건설 후 최대한 빨리 새 관할서를 짓는 것을 권장합니다. 최대 임무 수는 여러 유형(경찰서, 소방서, 응급실)의 관할서 중 가장 많이 배치한 관할서 수+1로 정해지기 때문입니다. 예를 들어 소방서 5곳과 응급실 3곳을 보유할 경우 최대 6개의 임무를 받을 수 있습니다.", join_alliance: "또한 게임 초기에 동맹에 가입하면 큰 도움을 받을 수 있으므로 동맹 가입도 권장합니다.", summary: "지금까지 미션 치프의 기본 플레이 방법을 알려드렸습니다! 임무를 완수하고 크레딧을 받아 더 많은 유닛을 구매하며 임무를 반복하세요. 즐겁게 플레이하세요!
    미션 치프 팀 올림" } } }, commons: { collect: "수집", "continue": "아니요", end: "마지막", next: "다음", prev: "이전", skip: "예", skip_hint: "정말 튜토리얼을 취소할까요? 이후 다시 확인할 수 없습니다.튜토리얼 완료 보상 자격을 받지 못하게 됩니다." }, rewards: { log: "튜토리얼 완료에 대한 보상." } }, number: { format: { delimiter: ",", precision: 3, separator: ".", significant: "거짓", strip_insignificant_zeros: "거짓" } } }, I18n.translations.ro_RO = { common: { add: "Adaugă", back: "Înapoi", cancel: "Anulează", change_saved: "Schimbări salvate", coins_spend: "Chiar vrei să cheltuiești aceste monede?", congratulations: "Felicitări!", content: "Conţinut", copy: "Copiază", credits: "Credite", "delete": "Șterge", details: "Detalii", edit: "Editează", error: "Eroare", is_offline: "%{user} este offline.", is_offline_long: "Perioadă îndelungată: %{user} este offline", is_offline_with_duration: "%{user} este offline: %{duration}", is_online: "%{user} este online.", loading: "Se încarcă...", name: "Nume", none: "Niciunul/niciuna", of: "din", off: "Dezactivat", on: "Activat", save: "Salvează", search: "Caută", show: "Arată", user_not_found: "Utilizatorul nu a fost găsit", wrong_key: "Tastă greșită" }, javascript: { alarm: "Trimitere", arrival: "Sosire", backalarm: "Anulează", coins: "Monede", credits: "Credite", days: "zile", few_seconds: "în câteva secunde", finish_in: "Termină în:", foam_approaching: "Se apropie: %{amount} l.", foam_missing: "Lipsesc: %{amount} l.", foam_on_site: "La fața locului: %{amount} l.", foam_selected: "Selectați: %{amount} l.", hours: "H", location_not_found: "Nu a fost găsit", messages: "Mesaje", minutes: "min.", missed_vehicle: "Îi lipsește:", mission_start_in: "Începe în:", "new": "Nou", not_found_map: "Vehiculul nu a fost găsit pe hartă", now: "Acum", patient: "Pacient", patient_untouched: "Pacienți netratați", poi_delete: "Ești sigur că vrei să ștergi Punctul de interes: %{caption}?", reload: "Reîncarcă", sale: "Promoție", sale_ended: "Promoția s-a încheiat", secounds: "sec.", sicherheitswache_error: 'Misiunea de securizare "%{caption}" nu a avut succes, deoarece nu au fost îndeplinite toate criteriile.', sicherheitswache_success: 'Misiunea de securizare "%{caption}" a fost îndeplinită cu succes. Primești %{credits} credite.', start_in: "Începe în: ", start_username: "Starter:", time_left: "Timp rămas:", to_building: "Vezi clădirea", to_mission: "Vezi misiunea", understand: "Confirmă", user_not_found: "Jucătorul nu a fost găsit.", vehicles_not_visible: "Vehiculele nu sunt vizibile. ", water_approaching: "Se apropie: %{amount} l.", water_missing: "Lipsesc: %{amount} l.", water_on_site: "La fața locului: %{amount} l.", water_selected: "Selectați: %{amount} l." }, map: { alliance: "Alianță", alliance_chat: "Chat", alliance_chat_banned: "În prezent, îți este interzis accesul la chatul alianței.", alliance_chat_banned_admin: "Interzis de:", alliance_chat_banned_timeleft: "Timp rămas:", alliance_chat_radio_off: "Radio alianță: Dezactivat", alliance_chat_radio_on: "Radio alianță: Activat", alliance_event: "Eveniment", alliance_missions: "Misiuni alianță", alliance_missions_event: "Eveniment", ambulance: "Ambulanță", anti_abuse_active_link: "Fă clic aici pentru mai multe informații.", anti_abuse_active_text: "Întrucât prea multe stații de acelaști tip sunt construite prea aproape una de alta, misiunile vor apărea pe o rază extinsă de 100 km.", attended: "Finalizate", cancel_alliance_event: "Anulează eveniment de alianță", cancel_alliance_event_confirm: "Ești sigur că vrei să anulezi evenimentul de alianță?", challenges: "", chat_history: "Istoric chat", congratulations: "Felicitări! Acum poți fi promovat.", create_alliance_event: "Începe eveniment de alianță", create_alliance_operation: "Creează o misiune de alianță pe scară largă", emergency: "Urgență", finishing: "În finalizare", join_alliance_infos: "Dacă faci parte dintr-o alianță, alți jucători îți pot încredința misiuni dacă doresc.", map: "Hartă", map_filters: { all_buildings: "Clădiri", all_missions: "Misiuni", alliance_buildings: "Clădiri de alianță", alliance_members: "Membri", alliance_missions: "Partajat de alianță", ambulance_station_missions: "Stație de ambulanță", ambulance_station_small_missions: "Stație de ambulanță (stație mică)", building_complex: "Complex de clădiri", buildings_section: "Stații", clinic_missions: "Clinică", dispatch_center_missions: "Dispecerat", fire_school_missions: "Academia de Pompieri", firehouse_missions: "Stație de pompieri", firehouse_small_missions: "Stație de pompieri (mică)", hospital_missions: "Spital", map_filters: "Lista filtrelor de hartă", mission_positions: "Puncte de interes", mission_positions_section: "Puncte de interes", missions_section: "Misiuni", police_copter_station_missions: "Transport aerian pentru forțele de poliție", police_school_missions: "Academia de Poliție", police_small_missions: "Secție de poliţie (secție mică)", police_special_forces: "Forțele speciale ale poliției", police_station_missions: "Secție de poliție", prison_missions: "Pușcărie", rapid_deployment_group: "Grup special de intervenție", rescue_copter_station_missions: "Stație de elicopter medical", riot_police: "Forțe de poliție speciale împotriva revoltelor stradale", riot_police_missions: "Forțe de poliție speciale împotriva revoltelor stradale", staging_area_missions: "Zona de așteptare", technical_aid_organization: "Agenția Națională de Asistență Tehnică (ANAT)", technical_aid_organization_school: "THW Bundesschule", user_buildings: "Clădirile mele", user_missions: "Misiunile mele", water_watch: "Salvare acvatică", water_watch_missions: "Salvare acvatică" }, message: "Mesaj", mission: "Misiune", missions_filtered_out: "Unele misiuni ar putea fi eliminate. Vă rugăm să verificați filtrele de hartă.", no_alliance_chat_impossible: "Nu faci parte dintr-o alianță.", no_alliance_missions: "În prezent nu există misiuni de alianță.", no_ambulance_missions: '"Nu există transporturi de pacienți. Transporturile vor putea fi efectuate atunci când vei aveao Ambulanță de tip B (BLS) și un spital."', no_emergency_missions: "Nu e disponibilă nicio misiune de urgență. O misiune de urgență poate apărea după ce ți-ai construit prima stație.", no_radio_messages: "Nu ai primit niciun mesaj radio.", radio_messages: "Radio", restore_map: "Restabilește harta", server_warning: "Server maintenance at 1 am. 6h downtime expected.", show_informations: "Verde = Misiunile sunt afișate pe listă. Roșu = Misiunile nu sunt afișate.", sicherheitswache: "Intervenții planificate", transport: "Transport", unattended: "Nefinalizate" }, fms: { going: "Pe drum", not_ready: "Nefuncțional", on_destination: "La destinația de transport", on_place: "La fața locului", patient_transported: "Se transportă un pacient", prisoner_transported: "Se transportă un deținut", ready_home: "Disponibil la stație", ready_traveling: "Liber și disponibil", talking_wish: "Solicitare transport", waiting_for_vehicle: "Se așteaptă vehicul pentru tractare" }, intervention_order: { automatic_text_color: "Culoare text automată", back: "Înapoi", category: "Categorie", colour: "Culoare", column: "Coloană", column_number: "Număr coloană", column_number_hint: "Dacă este dat un număr de coloană, intrarea de Alarmă și Răspuns va fi afișată în coloana corespunzătoare de pe pagina de alertă.", create_intervention_order: "Creează un nou Regulament de Alarmă și Răspuns", "delete": "Șterge", delete_all: "Șterge complet Regulamentul de Alarmă și Răspuns", delete_all_confirm: "Ești sigur că vrei să ștergi complet Regulamentul de Alarmă și Răspuns? Intrările existente care au fost exportate nu mai sunt disponibile!", description: "Nume", edit: "Editează", "export": { "export": "Exportă", "import": "Importă", import_done: "Intrările selectate au fost importate și integrate în planul tău de Alarmă și Răspuns.", saved: "Exportări ale Regulamentului de Alarmă și Răspuns", saved_text: "Regulamentul tău de Alarmă și Răspuns a fost pregătit pentru exportare. Un alt jucător poate importa Regulamentul de Alarmă și Răspuns prin intermediul linkului. Dacă, între timp, modifici Regulamentul de Alarmă și Răspuns, această modificare se va aplica automat la exportare." }, hotkey_hint: "Alege o tastă rapidă pentru selectarea acestui vehicul. Apasă în fereastra misiunii: ALT + tasta ta rapidă (sau în Firefox: ALT + SHIFT + tasta ta rapidă; sau pe mac os: ctrl + alt + tasta ta rapidă) pentru selectarea vehiculului.", intervention_order: "Editează Regulamentul de Alarmă și Răspuns", name: "Nume", no_intervention_created: "Încă nu ai creat niciun Regulament de Alarmă și Răspuns.", options: "Opțiuni", reset: "Resetează selecția anterioară în fereastra de alarmă.", reset_hint: "Dacă ai selectat vehiculul în fereastra de trimitere, poți utiliza acest buton pentru a-l reseta.", save: "Salvează", station: "Stație", station_hint: "Atunci când ai ales o anumită clădire, vei putea selecta doar vehiculele corespunzătoare acesteia.", successfully_created: "Regulament de Alarmă și Răspuns creat cu succes.", successfully_deleted: "Regulament de Alarmă și Răspuns șters", successfully_updated: "Regulament de Alarmă și Răspuns actualizat cu succes.", text_color: "Culoare text", vehicles: { ab_atemschutz_only: "Modul Aparat de respirat izolant", ab_einsatzleitung_only: "Modul de comandă", ab_gefahrgut_only: "Modul materiale periculoase", ab_oel_only: "Modul scurgere petrol", ab_ruest: "Modul Tehnologie/Salvare", ab_ruest_rw: "", abl2wasser_only: "Modul alimentare furtun", ambulance: "Ambulanță ALS (asistență avansată în vederea menținerii funcțiilor vitale)", ambulance_or_rapid_responder: "", arff: "Salvare Aeriană și Luptă împotriva Incendiilor (Mașina de pompieri a aeroportului)", battalion_chief_unit: "Unitate Șef batalion", boot: "Bărci (general)", dekon_p: "", division_chief_unit: "Vehicul comandă forțe mobile", dlk_or_tm50: "", elw1_or_elw2: "Unitate șef batalion sau mașină de comanda și control", elw2_or_ab_elw: "nul", elw3: "", elw_airport: "", emergency_ambulance: "Ambulanță de urgență sau elicopter", fire_truck: "Mașini de pompieri", fireboat: "Barcă de stins incendii mare", fly_car: "Vehicul EMS netransportant", fly_car_any: "Vehicul EMS netransportant / Medic generalist", foam_amount: "Litri de spumă", fukw: "", fwk: "", gefkw: "", gkw: "Camionetă utilitară", grtw: "Unitate Victime multiple", grtw0: "", grtw1: "", grukw: "", gw_atemschutz_only: "Mașină de suport logistic", gw_gefahrgut: "Materiale periculoase", gw_gefahrgut_only: "", gw_hoehenrettung: "Vehicul pentru salvare și evacuare de la înălțime (cu frânghia)", gw_messtechnik: "Vehicul-metrologie", gw_oel_only: "", gw_san: "", gw_taucher: "", gw_wasserrettung: "Mașină de salvare acvatică", gw_werkfeuerwehr: "", gwl2wasser_only: "Vehicul cu furtun", hems: "Elicopter SMURD", hlf_only: "Mașină de intervenții accidente colective", hlf_or_rw_and_lf: "Mașină de intervenții accidente colective sau vehicul greu de salvare și pompă de incendiu", hondengeleider: "", k9: "Unitate canină", kdow_lna: "", kdow_orgl: "Unitate transport Supervizor", kdow_orgl_any: "Unitate transport Supervizor", ktw_b: "", ktw_or_rtw: "Ambulanță tip B (BLS) sau C (ALS)", lebefkw: "Vehicul comandă ușor", lf_only: "Mașini de pompieri", long_distance_ambulance: "Ambulanță BLS (asistență de bază pentru menținerea funcțiilor vitale)", mask_service_unit: "Unitate Aer mobil", mek_mtf: "", mek_zf: "", mtw: "Transportor blindat pentru personal", mzb: "Vas multifuncțional", naw: "", naw_or_rtw_and_nef: "", naw_or_rtw_and_nef_or_rth: "", nef_only: "Ambulanță", oil_unit: "Vehicul-colectare ulei", only_ab_dekon_p: "", only_dekon_p: "", ovd_p: "", police_car: "Mașină de patrulare", polizeihubschrauber: "Elicopter de poliție", rescue_vehicle: "Vehicul greu de salvare", rescue_vehicle_only: "Doar vehicol de salvare", rescueboat: "Barcă de salvare mare", rettungstreppe: "", rth_only: "Elicopter SMURD", schlauchwagen: "Cisternă de apă", seg_elw: "", sek_mtf: "", sek_zf: "", swat: "SIAS", swat_armored_vehicle: "Vehicul blindat SIAS", swat_suv: "SUV SIAS", thw_anh_mzab: "", thw_anh_mzb: "", thw_anh_schlb: "", thw_brmg_r: "", thw_dle: "", thw_lkw: "", thw_lkw_7_lkr_19_tm: "", thw_mlw5: "", thw_mtw: "Transportor blindat pentru personalul tehnic (TBPT - ANAT)", thw_mzkw: "Vehicul multifuncțional", thw_tauchkraftwagen: "Echipa de scafandri", thw_tauchkraftwagen_or_gw_taucher: "", tlf_only: "Camion cisternă", tm50: "", turboloescher: "", turntable_ladder: "Camioane cu platformă", ulf: "", wasserwerfer: "", water_amount: "Litri de apă", water_amount_tlf: "" } }, tutorial: { beginner: { building: { browser: { build_building: { add_name: "În al doilea rând, noua ta stație va avea nevoie de un nume! Ar fi bine ca acesta să fie ușor de recunoscut și numerotat! Exemplu: „Stația de pompieri #0001”. După ce termini, apasă pe „Următorul”!", build_with_credits: "Acum construiește-ți clădirea folosind credite!", new_building: "Dă clic pe „Clădire nouă”!", select_building: "Alege în primul rând tipul de clădire cu care dorești să începi - îți sugerăm să începi cu pompierii! În orice caz, se recomandă să începi cu o stație mică!", select_position: "Mută marcatorul albastru acolo unde dorești să construiești prima ta stație!" }, pick_location: "Mai întâi, alege o locație în care să începi! Introdu numele locației de pornire în bara de căutare sau caut-o chiar tu pe hartă! Ce zici de orașul tău natal?", welcome: "Salut. Bine ai venit în Dispecerat 112! Îți voi arăta câteva lucruri care te vor ajuta să-ți începi cu dreptul cariera în domeniul serviciilor de urgență!" }, mobile: { build_building: { add_name: "În al doilea rând, noua ta stație va avea nevoie de un nume! Ar fi bine ca acesta să fie ușor de recunoscut și numerotat! Exemplu: „Stația de pompieri #0001”. După ce termini, apasă pe „Următorul”!", build_with_credits: "Acum construiește-ți clădirea folosind credite!", new_building: "Mai întâi, vom alege o locație pentru a începe și construi prima ta clădire!

    Pentru asta, dă clic pe „Clădire nouă”!", select_building: "Alege în primul rând tipul de clădire cu care dorești să începi - îți sugerăm să începi cu pompierii! În orice caz, se recomandă să începi cu o stație mică!" }, welcome: "Salut. Bine ai venit în Dispecerat 112! Îți voi arăta câteva lucruri care te vor ajuta să-ți începi cu dreptul cariera în domeniul serviciilor de urgență!" } }, mission: { detail: { browser: { dispatch_menu: "Acesta este meniul de trimitere. De aici, îți trimiți unitățile în misiuni!", dispatch_menu_buttons: "Acestea sunt cele două butoane de trimitere! Primul: „Trimite” - trimite unitățile selectate în misiune. Cel de-al doilea face același lucru, însă trecând la următoarea misiune. Deocamdată, dă clic pe primul buton.", dispatch_menu_mission_general: "Aici poți vedea informațiile generale despre misiune, adică numele, adresa și pictograma acesteia. În misiunile la care ai participat deja, mini-pictograma cu omulețul apare și înlocuiește o stea mică.", dispatch_menu_mission_progress: "Aici poți vedea progresul făcut în cadrul acestei misiuni, efectivele prezente la fața locului și timpul rămas pentru a îndeplini misiunea!", dispatch_menu_mission_specific: "Aici poți vedea mai multe informații despre misiune, ce unități răspund la apel și care sunt deja la fața locului.", dispatch_menu_vehicle_list: "Aceasta este lista vehiculelor disponibile. Aici, selectezi vehiculele. Acum dă clic pe un vehicul pentru a-l selecta!" }, mobile: { dispatch_menu: "Acesta este meniul de trimitere. De aici, îți trimiți unitățile în misiuni!", dispatch_menu_buttons: "Acestea sunt cele două butoane de trimitere! Primul: „Trimite” - trimite unitățile selectate în misiune. Cel de-al doilea face același lucru, însă trecând la următoarea misiune. Deocamdată, dă clic pe primul buton.", dispatch_menu_mission_general: "Aici poți vedea informațiile generale despre misiune, adică numele, adresa și pictograma acesteia. În misiunile la care ai participat deja, mini-pictograma cu omulețul apare și înlocuiește o stea mică.", dispatch_menu_mission_progress: "Aici poți vedea progresul făcut în cadrul acestei misiuni, efectivele prezente la fața locului și timpul rămas pentru a îndeplini misiunea!", dispatch_menu_mission_specific: "Aici poți vedea mai multe informații despre misiune, ce unități răspund la apel și care sunt deja la fața locului.", dispatch_menu_vehicle_list: "Aceasta este lista vehiculelor disponibile. Aici, selectezi vehiculele. Acum dă clic pe un vehicul pentru a-l selecta!" } }, overview: { browser: { dispatch_button: "Acum dorim să aflăm cum să abordăm incidentele. Deschide meniul de trimitere dând clic pe butonul „trimite”!", first_mission: "Grozav, ai construit prima ta clădire! Vezi, primele misiuni ți-au fost semnalate!" }, mobile: { dispatch_button: "Acum dorim să aflăm cum să abordăm incidentele. Deschide meniul de trimitere dând clic pe butonul „trimite”!", first_mission: "Grozav, ai construit prima ta clădire! Vezi, primele misiuni ți-au fost semnalate!" } } }, rewards: { browser: { general: "Grozav, ești pe cale să devii un Șef de Dispecerat extraordinar! Poftim %{coins} monede. Acestea te vor ajuta să începi cu dreptul!
    Echipa ta Dispecerat 112" }, mobile: { general: "Grozav, ești pe cale să devii un Șef de Dispecerat extraordinar! Poftim %{coins} monede. Acestea te vor ajuta să începi cu dreptul!
    Echipa ta Dispecerat 112" } }, tips: { browser: { contact: "Dacă ai întrebări, poți consulta secțiunea Întrebări Frecvente în cadrul jocului. De asemenea, poți vizita forumurile jocului sau pagina noastră de Facebook!", general: "În continuare, te sfătuim să construiești un dispecerat, iar apoi câteva stații noi. Ar fi bine să faci acest lucru cât mai curând posibil, deoarece numărul maxim de misiuni este echivalent cu cel mai înalt număr de stații de un alt tip (poliție, pompieri, ambulanță) + 1. Spre exemplu: 5 stații de pompieri și 3 de ambulanță = 6 misiuni.", join_alliance: "În plus, aderarea la o alianță te-ar ajuta foarte mult, mai ales la început - așa că îți sugerăm să faci și acest pas.", summary: "Acestea sunt regulile de bază ale jocului Dispecerat 112! Îndeplinește misiuni, obține credite, cumpără mai multe unități, repetă. Distracție plăcută!
    Echipa ta Dispecerat 112" }, mobile: { contact: "Dacă ai întrebări, poți consulta secțiunea Întrebări Frecvente în cadrul jocului. De asemenea, poți vizita forumurile jocului sau pagina noastră de Facebook!", general: "În continuare, te sfătuim să construiești un dispecerat, iar apoi câteva stații noi. Ar fi bine să faci acest lucru cât mai curând posibil, deoarece numărul maxim de misiuni este echivalent cu cel mai înalt număr de stații de un alt tip (poliție, pompieri, ambulanță) + 1. Spre exemplu: 5 stații de pompieri și 3 de ambulanță = 6 misiuni.", join_alliance: "În plus, aderarea la o alianță te-ar ajuta foarte mult, mai ales la început - așa că îți sugerăm să faci și acest pas.", summary: "Acestea sunt regulile de bază ale jocului Dispecerat 112! Îndeplinește misiuni, obține credite, cumpără mai multe unități, repetă. Distracție plăcută!
    Echipa ta Dispecerat 112" } } }, commons: { collect: "Colectează", "continue": "Nu", end: "Sfârșit", next: "Urm.", prev: "Ant.", skip: "Da", skip_hint: "Ești sigur că vrei să anulezi tutorialul? Acesta nu poate fi accesat mai târziu. Nu vei fi eligibil pentru recompensa de finalizare a tutorialului." }, rewards: { log: "Recompensă pentru terminarea tutorialului." } }, number: { format: { delimiter: ".", precision: 3, separator: ",", significant: !1, strip_insignificant_zeros: !1 } } }, I18n.translations.fi_FI = { common: { add: "Lisää", back: "Palaa", cancel: "Peruuta", change_saved: "Muutokset tallennettu", coins_spend: "Haluatko varmasti käyttää nämä kolikot?", congratulations: "Onnittelut!", content: "Sisältö", copy: "Kopioi", credits: "Krediittiä", "delete": "Poista", details: "Lisätiedot", edit: "Muokkaa", error: "Virhe", is_offline: "%{user} ei ole verkossa", is_offline_long: "Kauan: %{user} ei ole verkossa", is_offline_with_duration: "%{user} ei ole verkossa: %{duration}", is_online: "%{user} on verkossa.", loading: "Ladataan...", name: "Nimi", none: "Ei mitään", of: "/", off: "Ei käytössä", on: "Käytössä", save: "Tallenna", search: "Haku", show: "Näytä", user_not_found: "Käyttäjää ei löytynyt", wrong_key: "Väärä avain" }, javascript: { alarm: "Lähetä", arrival: "Saapumisaika", backalarm: "Peruuta", coins: "Kolikot", credits: "Krediitit", days: "päivää", few_seconds: "muutaman sekunnin kuluttua", finish_in: "Päättymiseen:", foam_approaching: "Matkalla: %{amount} l vaahtoa", foam_missing: "Puuttuu: %{amount} l vaahtoa", foam_on_site: "Kohteessa: %{amount} l vaahtoa", foam_selected: "Valittu: %{amount} l vaahtoa", hours: "h", location_not_found: "Ei löytynyt", messages: "Viestit", minutes: "min", missed_vehicle: "Puuttuu:", mission_start_in: "Alkamiseen:", "new": "Uusi", not_found_map: "Ajoneuvoa ei löytynyt kartalta.", now: "Nyt", patient: "Potilas", patient_untouched: "Hoitamattomat potilaat", poi_delete: 'Haluatko varmasti poistaa kohdepisteen "%{caption}"?', reload: "Lataa uudelleen", sale: "Ale", sale_ended: "Ale päättynyt", secounds: "s", sicherheitswache_error: 'Turvaamistehtävä "%{caption}" ei onnistunut, koska kaikki ehdot eivät täyttyneet.', sicherheitswache_success: 'Turvaamistehtävän "%{caption}" suoritus onnistui. Saat %{credits} krediittiä.', start_in: "Alkamiseen: ", start_username: "Aloittaja:", time_left: "Aikaa jäljellä:", to_building: "Näytä rakennus", to_mission: "Näytä tehtävä", understand: "Kuittaa", user_not_found: "Pelaajaa ei löytynyt.", vehicles_not_visible: "Ajoneuvoja ei näytetä. ", water_approaching: "Matkalla: %{amount} l vettä", water_missing: "Puuttuu: %{amount} l vettä", water_on_site: "Kohteessa: %{amount} l vettä", water_selected: "Valittu: %{amount} l vettä" }, map: { alliance: "Liittoutuma", alliance_chat: "Chatti", alliance_chat_banned: "Sinut on tällä hetkellä estetty liittoutuman chatista.", alliance_chat_banned_admin: "Estäjä:", alliance_chat_banned_timeleft: "Jäljellä oleva aika:", alliance_chat_radio_off: "Liittoutuman radio: Ei käytössä", alliance_chat_radio_on: "Liittoutuman radio: Käytössä", alliance_event: "Tapahtuma", alliance_missions: "Liittoutuman tehtävät", alliance_missions_event: "Tapahtuma", ambulance: "Ambulanssi", anti_abuse_active_link: "Lisätietoja saat napsauttamalla tätä.", anti_abuse_active_text: "Tehtäviä syntyy laajennetulla 100 km:n säteellä, sillä liian monta samantyyppistä asemaa on rakennettu lähekkäin.", attended: "Hoidettu", cancel_alliance_event: "Peruuta liittoumatapahtuma", cancel_alliance_event_confirm: "Haluatko varmasti peruuttaa liittoumatapahtuman?", challenges: "", chat_history: "Chattihistoria", congratulations: "Onnittelut! Voit nyt saada ylennyksen.", create_alliance_event: "Aloita liittoutumatapahtuma", create_alliance_operation: "Luo laaja liittoutumatehtävä", emergency: "Hätätilanne", finishing: "Päättymässä", join_alliance_infos: "Jos kuulut johonkin liittoutumaan, muut pelaajat voivat antaa sinulle tehtäviä.", map: "Kartta", map_filters: { all_buildings: "Rakennukset", all_missions: "Tehtävät", alliance_buildings: "Liittoutumarakennukset", alliance_members: "Jäsenet", alliance_missions: "Liittoutuman jakama", ambulance_station_missions: "Ambulanssiasema", ambulance_station_small_missions: "Ambulanssiasema (pieni asema)", building_complex: "Rakennuskompleksi", buildings_section: "Asemat", clinic_missions: "Klinikka", dispatch_center_missions: "Hätäkeskus", fire_school_missions: "Pelastajaoppilaitos", firehouse_missions: "Paloasema", firehouse_small_missions: "Paloasema (pieni)", hospital_missions: "Sairaala", map_filters: "Karttasuodatinlista", mission_positions: "Kohdepisteet", mission_positions_section: "Kohdepisteet", missions_section: "Tehtävät", police_copter_station_missions: "Poliisihelikopteritukikohta", police_school_missions: "Poliisiammattikorkeakoulu", police_small_missions: "Poliisiasema (pieni asema)", police_special_forces: "Poliisin erikoisjoukot", police_station_missions: "Poliisiasema", prison_missions: "Vankila", rapid_deployment_group: "Ensivasteyksikkö", rescue_copter_station_missions: "Lääkintähelikopteriasema", riot_police: "Mellakkapoliisi", riot_police_missions: "Mellakkapoliisi", staging_area_missions: "Kokoontumispaikka", technical_aid_organization: "VPK", technical_aid_organization_school: "THW Bundesschule", user_buildings: "Omat rakennukset", user_missions: "Omat tehtävät", water_watch: "Vesipelastus", water_watch_missions: "Vesipelastus" }, message: "Viesti", mission: "Tehtävä", missions_filtered_out: "Jotkut tehtävät voidaan suodattaa pois. Tarkista karttasuodattimet.", no_alliance_chat_impossible: "Et kuulu mihinkään liittoutumaan.", no_alliance_missions: "Ei liittoutumatehtäviä", no_ambulance_missions: "Ei ambulanssitehtäviä Ambulanssitehtäviä syntyy vain kun sinulla on ambulanssi ja sairaala.", no_emergency_missions: "Ei hätätehtäviä Hätätehtäviä syntyy, kun olet rakentanut ensimmäisen asemasi.", no_radio_messages: "Et ole saanut radioviestejä.", radio_messages: "Radio", restore_map: "Palauta kartta", server_warning: "Palvelinhuolto alkaa 01:00, palvelukatkon arvioitu kesto noin 6 tuntia", show_informations: "Vihreä = tehtävät näkyvät luettelossa. Punainen = tehtävät eivät näy.", sicherheitswache: "Suunnitellut tehtävät", transport: "Kuljetus", unattended: "Ei hoidettu" }, fms: { going: "Matkalla", not_ready: "Ei toiminnassa", on_destination: "Kuljetuksen määränpäässä", on_place: "Tapahtumapaikalla", patient_transported: "Kuljettaa potilasta", prisoner_transported: "Kuljettaa vankia", ready_home: "Käytettävissä asemalla", ready_traveling: "Vapaana", talking_wish: "Kuljetuspyyntö", waiting_for_vehicle: "Odottaa vetoautoa" }, intervention_order: { automatic_text_color: "Automaattinen tekstin väri", back: "Palaa", category: "Luokka", colour: "Väri", column: "Sarake", column_number: "Sarakkeen numero", column_number_hint: "Jos sarakkeen numero on annettu, hälytysjärjestelymerkintä näkyy hälytyssivun vastaavassa sarakkeessa.", create_intervention_order: "Luo uusi hälytysjärjestely", "delete": "Poista", delete_all: "Poista hälytysjärjestely kokonaan", delete_all_confirm: "Haluatko varmasti poistaa koko hälytysjärjestelyn? Vietyjä merkintöjä ei voi enää käyttää.", description: "Nimi", edit: "Muokkaa", "export": { "export": "Vie", "import": "Tuo", import_done: "Valitut merkinnät on tuotu ja kirjoitettu hälytysjärjestelyyn.", saved: "Hälytysjärjestely viety", saved_text: "Hälytysjärjestely on valmis vientiä varten. Toinen pelaaja voi tuoda hälytysjärjestelyn linkin kautta. Jos muutat hälytysjärjestelyä tällä välin, muutos vaikuttaa myös vientiin." }, hotkey_hint: "Valitse pikanäppäin tämän ajoneuvon valintaa varten. Valitse ajoneuvo painamalla tehtäväikkunassa: ALT + pikanäppäin (Firefox: ALT + VAIHTO + pikanäppäin; mac os: ctrl + alt + pikanäppäin).", intervention_order: "Muokkaa hälytysjärjestelyä", name: "Nimi", no_intervention_created: "Et ole vielä luonut yhtään hälytysjärjestelyä.", options: "Asetukset", reset: "Nollaa aiempi valinta hälytysikkunassa.", reset_hint: "Jos olet valinnut ajoneuvon lähetysikkunassa, voit nollata valinnan tällä painikkeella.", save: "Tallenna", station: "Asema", station_hint: "Kun rakennus valitaan, vain kyseisen rakennuksen ajoneuvot valitaan.", successfully_created: "Hälytysjärjestelyn luonti onnistui.", successfully_deleted: "Hälytysjärjestely poistettu", successfully_updated: "Hälytysjärjestelyn päivitys onnistui.", text_color: "Tekstin väri", vehicles: { ab_atemschutz_only: "Paineilmahuoltokontti", ab_einsatzleitung_only: "Johtomoduuli", ab_gefahrgut_only: "Kemikaalitorjuntamoduuli", ab_oel_only: "Öljyvahinkomoduuli", ab_ruest: "Tekniikka-/pelastusmoduuli", ab_ruest_rw: "", abl2wasser_only: "Letkumoduuli", ambulance: "Hoitotason ambulanssi", ambulance_or_rapid_responder: "", arff: "Lentokenttäpaloauto", battalion_chief_unit: "Johtoauto", boot: "Alukset (yleinen)", dekon_p: "", division_chief_unit: "Johtokeskusauto", dlk_or_tm50: "", elw1_or_elw2: "johtoauto, johtokeskusauto tai johtokeskuskontti", elw2_or_ab_elw: "", elw3: "", elw_airport: "", emergency_ambulance: "Ambulanssi tai Helikopteri", fire_truck: "Paloautot", fireboat: "Iso sammutusalus", fly_car: "Ensivasteauto", fly_car_any: "EVA-yksikkö, EVY-yksikkö tai Ensihoidon lääkäri", foam_amount: "Litraa vaahtoa", fukw: "", fustw_or_police_motorcycle: "Partioauto tai Poliisimoottoripyörä", fwk: "", gefkw: "", gkw: "Kalustoauto", grtw: "Suuronnettomuusyksikkö", grtw0: "", grtw1: "", grukw: "", gw_atemschutz_only: "", gw_gefahrgut: "Kemikaalitorjunta", gw_gefahrgut_only: "", gw_hoehenrettung: "GW-Höhenrettung", gw_messtechnik: "GW-Messtechnik", gw_oel_only: "", gw_san: "", gw_taucher: "", gw_wasserrettung: "Vesipelastus", gw_werkfeuerwehr: "", gwl2wasser_only: "Letkuauto", hems: "Lääkärihelikopteri (HEMS)", hlf_only: "Pelastusauto", hlf_or_rw_and_lf: "Pelastusauto tai Raskas pelastusauto ja Sammutusauto", hondengeleider: "", hose_trucks: "Letkuyksikkö", k9: "Koirayksikkö", kdow_lna: "", kdow_orgl: "Ensihoidon kenttäjohtaja", kdow_orgl_any: "Ensihoidon kenttäjohtaja", ktw_b: "", ktw_or_rtw: "", lebefkw: "Leichter Befehlskraftwagen (leBefKw)", lf_only: "Paloautot", long_distance_ambulance: "Perustason ambulanssi", mask_service_unit: "Paineilmalaiteyksikkö", mek_mtf: "", mek_zf: "", mtw: "Miehistönkuljetusauto", mzb: "Monitoimialus", naw: "", naw_or_rtw_and_nef: "", naw_or_rtw_and_nef_or_rth: "", nef_only: "Ambulanssi", oil_unit: "GW-Öl", only_ab_dekon_p: "", only_dekon_p: "", ovd_p: "", police_car: "Partioauto", police_motorcycle: "Poliisimoottoripyörä", polizeihubschrauber: "Poliisihelikopteri", pump: "Suurtehopumppu", rescue_vehicle: "Raskas pelastusauto", rescue_vehicle_only: "Raskas pelastus", rescueboat: "Iso pelastusalus", rettungstreppe: "", rth_only: "Lääkärihelikopteri (HEMS)", schlauchwagen: "Säiliöauto", seg_elw: "", sek_mtf: "", sek_zf: "", swat: "VATI", swat_armored_vehicle: "VATI miehistönkuljetusajoneuvo", swat_suv: "VATI-partio", thw_anh_mzab: "", thw_anh_mzb: "", thw_anh_schlb: "", thw_brmg_r: "", thw_dle: "", thw_lkw: "", thw_lkw_7_lkr_19_tm: "", thw_mlw5: "", thw_mtw: "Mannschaftstransportwagen Technischer Zug (MTW-TZ - THW)", thw_mzkw: "Mehrzweckkraftwagen (MzKW)", thw_tauchkraftwagen: "Sukellusryhmä", thw_tauchkraftwagen_or_gw_taucher: "", tlf_only: "Säiliöauto", tm50: "", turboloescher: "", turntable_ladder: "Nostolava-autot", ulf: "", wasserwerfer: "", water_amount: "Litraa vettä", water_amount_tlf: "" } }, tutorial: { beginner: { building: { browser: { build_building: { add_name: "Anna seuraavaksi asemalle nimi! Tee siitä helposti tunnistettava ja skaalautuva. Esim. ”Paloasema 0001”. Kun olet valmis, valitse Seuraava.", build_with_credits: "Rakenna rakennus krediiteillä!", new_building: "Napsauta Uusi rakennus -kohtaa!", select_building: "Valitse ensin rakennuksen tyyppi. Suosittelen aloittamaan paloasemalla! Joka tapauksessa on parasta aloittaa pienellä asemalla.", select_position: "Siirrä sininen merkki siihen kohtaan, johon haluat rakentaa ensimmäisen aseman." }, pick_location: "Aloita valitsemalla sijainti. Kirjoita haluamasi paikan nimi hakukenttään tai etsi se itse kartalta. Miten olisi kotipaikkakuntasi?", welcome: "Moi! Tervetuloa Hätäkeskuspeliin! Annan sinulle joitakin ohjeita, jotta pääset hyvin alkuun hätäkeskustyössäsi." }, mobile: { build_building: { add_name: "Anna seuraavaksi asemalle nimi! Tee siitä helposti tunnistettava ja skaalautuva. Esim. ”Paloasema 0001”. Kun olet valmis, valitse Seuraava.", build_with_credits: "Rakenna rakennus krediiteillä!", new_building: "Ensin valitaan aloitussijainti ja rakennetaan ensimmäinen rakennus.

    Tee niin napsauttamalla Uusi rakennus -kohtaa!", select_building: "Valitse ensin rakennuksen tyyppi. Suosittelen aloittamaan paloasemalla! Joka tapauksessa on parasta aloittaa pienellä asemalla." }, welcome: "Moi! Tervetuloa Hätäkeskuspeliin! Annan sinulle joitakin ohjeita, jotta pääset hyvin alkuun hätäkeskustyössäsi." } }, mission: { detail: { browser: { dispatch_menu: "Tämä on lähetysvalikko. Täältä voit lähettää yksiköitä tehtäviin.", dispatch_menu_buttons: "Nämä kaksi ovat molemmat lähetyspainikkeita! Ensimmäinen: ”Lähetä” lähettää valitut yksiköt tehtävään. Toinen toimii samalla tavalla, mutta siirtyy seuraavaan tehtävään. Napsauta nyt ensimmäistä painiketta.", dispatch_menu_mission_general: "Tässä näkyvät tehtävän yleistiedot, eli sen nimen, osoitteen ja kuvakkeen. Pieni ihmiskuvake korvaa tähtikuvakkeen niissä tehtävissä, joihin olet jo osallistunut.", dispatch_menu_mission_progress: "Tässä näkyy, miten tehtävien käsittely on edistynyt, sekä paikalla olevan henkilöstön määrän ja tehtävän jäljellä olevan käsittelyajan.", dispatch_menu_mission_specific: "Tässä näkyvät tehtävän lisätiedot, kutsuun vastaavat yksiköt ja paikalla jo olevat yksiköt.", dispatch_menu_vehicle_list: "Tässä näkyy käytettävissä olevien ajoneuvojen lista. Tässä valitset ajoneuvot. Valitse ajoneuvo napsauttamalla sitä." }, mobile: { dispatch_menu: "Tämä on lähetysvalikko. Täältä voit lähettää yksiköitä tehtäviin.", dispatch_menu_buttons: "Nämä kaksi ovat molemmat lähetyspainikkeita! Ensimmäinen: ”Lähetä” lähettää valitut yksiköt tehtävään. Toinen toimii samalla tavalla, mutta siirtyy seuraavaan tehtävään. Napsauta nyt ensimmäistä painiketta.", dispatch_menu_mission_general: "Tässä näkyvät tehtävän yleistiedot, eli sen nimen, osoitteen ja kuvakkeen. Pieni ihmiskuvake korvaa tähtikuvakkeen niissä tehtävissä, joihin olet jo osallistunut.", dispatch_menu_mission_progress: "Tässä näkyy, miten tehtävien käsittely on edistynyt, sekä paikalla olevan henkilöstön määrän ja tehtävän jäljellä olevan käsittelyajan.", dispatch_menu_mission_specific: "Tässä näkyvät tehtävän lisätiedot, kutsuun vastaavat yksiköt ja paikalla jo olevat yksiköt.", dispatch_menu_vehicle_list: "Tässä näkyy käytettävissä olevien ajoneuvojen lista. Tässä valitset ajoneuvot. Valitse ajoneuvo napsauttamalla sitä." } }, overview: { browser: { dispatch_button: "Nyt on aika oppia, miten tapauksia käsitellään. Avaa lähetysvalikko napsauttamalla Lähetä-painiketta.", first_mission: "Hienoa, ensimmäinen rakennus on valmis! Katso, olet saanut ilmoituksen ensimmäisistä tehtävistä!" }, mobile: { dispatch_button: "Nyt on aika oppia, miten tapauksia käsitellään. Avaa lähetysvalikko napsauttamalla Lähetä-painiketta.", first_mission: "Hienoa, ensimmäinen rakennus on valmis! Katso, olet saanut ilmoituksen ensimmäisistä tehtävistä!" } } }, rewards: { browser: { general: "Hienoa, sinusta on jo tulossa erinomainen hätäkeskusjohtaja! Tässä %{coins} kolikkoa, jotta pääset alkuun!
    Hätäkeskuspelin tiimi" }, mobile: { general: "Hienoa, sinusta on jo tulossa erinomainen hätäkeskusjohtaja! Tässä %{coins} kolikkoa, jotta pääset alkuun!
    Hätäkeskuspelin tiimi" } }, tips: { browser: { contact: "Jos sinulla on kysyttävää, voit tutustua pelin UKK-sivuun tai käydä pelin keskustelupalstalla tai Facebook-sivullamme.", general: "Seuraavaksi suosittelen rakentamaan hätäkeskuksen ja sitten mahdollisimman pian uusia asemia, sillä tehtävien enimmäismäärä on sama kuin erityyppisten asemien (poliisiasema, paloasema, ambulanssiasema) enimmäismäärä plus 1, eli 5 palo- ja 3 ambulanssiasemaa = 6 tehtävää.", join_alliance: "Myös liittoutumaan liittyminen on hyödyksi erityisesti alussa, joten sekin on suositeltavaa.", summary: "Tässä olivat Hätäkeskuspelin perusteet! Suorita tehtäviä, kerää krediittejä, osta uusia yksiköitä, toista. Hauskaa pelaamista!
    Hätäkeskuspelin tiimi" }, mobile: { contact: "Jos sinulla on kysyttävää, voit tutustua pelin UKK-sivuun tai käydä pelin keskustelupalstalla tai Facebook-sivullamme.", general: "Seuraavaksi suosittelen rakentamaan hätäkeskuksen ja sitten mahdollisimman pian uusia asemia, sillä tehtävien enimmäismäärä on sama kuin erityyppisten asemien (poliisiasema, paloasema, ambulanssiasema) enimmäismäärä plus 1, eli 5 palo- ja 3 ambulanssiasemaa = 6 tehtävää.", join_alliance: "Myös liittoutumaan liittyminen on hyödyksi erityisesti alussa, joten sekin on suositeltavaa.", summary: "Tässä olivat Hätäkeskuspelin perusteet! Suorita tehtäviä, kerää krediittejä, osta uusia yksiköitä, toista. Hauskaa pelaamista!
    Hätäkeskuspelin tiimi" } } }, commons: { collect: "Kerää", "continue": "Ei", end: "Loppu", next: "Seur.", prev: "Edell.", skip: "Kyllä", skip_hint: "Haluatko varmasti peruuttaa opetuspelin? Siihen ei voi palata myöhemmin. Et saa opetuspelin suorituspalkintoa." }, rewards: { log: "Palkinto opetuspelin pelaamisesta loppuun." } }, policechief: { tutorial: { beginner: { building: { browser: { build_building: { add_name: "Anna seuraavaksi asemalle nimi! Tee siitä helposti tunnistettava ja skaalautuva. Esim. ”Poliisiasema 0001”. Kun olet valmis, valitse Seuraava.", select_building: "Valitse ensin rakennuksen tyyppi. Suosittelen aloittamaan poliisiasemalla! Joka tapauksessa on parasta aloittaa pienellä asemalla." }, welcome: "Moi! Tervetuloa Hätäkeskuspeliin Poliisi! Annan sinulle joitakin ohjeita, jotta pääset hyvin alkuun hätäkeskustyössäsi." }, mobile: { build_building: { add_name: "Anna seuraavaksi asemalle nimi! Tee siitä helposti tunnistettava ja skaalautuva. Esim. ”Poliisiasema 0001”. Kun olet valmis, valitse Seuraava.", select_building: "Valitse ensin rakennuksen tyyppi. Suosittelen aloittamaan poliisiasemalla! Joka tapauksessa on parasta aloittaa pienellä asemalla." }, welcome: "Moi! Tervetuloa Hätäkeskuspeliin Poliisi! Annan sinulle joitakin ohjeita, jotta pääset hyvin alkuun hätäkeskustyössäsi." } }, rewards: { browser: { general: "Hienoa, sinusta on jo tulossa erinomainen hätäkeskusjohtaja! Tässä %{coins} kolikkoa, jotta pääset alkuun!
    Hätäkeskuspelin Polisii tiimi" }, mobile: { general: "Hienoa, sinusta on jo tulossa erinomainen hätäkeskusjohtaja! Tässä %{coins} kolikkoa, jotta pääset alkuun!
    Hätäkeskuspelin Polisii tiimi" } }, tips: { browser: { summary: "Tässä olivat Hätäkeskuspelin Poliisi perusteet! Suorita tehtäviä, kerää krediittejä, osta uusia yksiköitä, toista. Hauskaa pelaamista!
    Hätäkeskuspelin Poliisi tiimi" }, mobile: { summary: "Tässä olivat Hätäkeskuspelin Poliisi perusteet! Suorita tehtäviä, kerää krediittejä, osta uusia yksiköitä, toista. Hauskaa pelaamista!
    Hätäkeskuspelin Poliisi tiimi" } } } } }, number: { format: { delimiter: " ", precision: 3, separator: ",", significant: !1, strip_insignificant_zeros: !1 } } }, I18n.translations.sk_SK = { common: { add: "Pridať", back: "Späť", cancel: "Zrušiť", change_saved: "Zmeny uložené", coins_spend: "Naozaj chcete minúť tieto mince?", congratulations: "Gratulujeme!", content: "Obsah", copy: "Kopírovať", credits: "Kredity", "delete": "Vymazať", details: "Podrobnosti", edit: "Upraviť", error: "Chyba", is_offline: "%{user} je offline.", is_offline_long: "Dlho: %{user} je offline", is_offline_with_duration: "%{user} je offline: %{duration}", is_online: "%{user} je online.", loading: "Načítava sa...", name: "Názov", none: "Žiadne", of: "z", off: "Vyp.", on: "Zap.", save: "Uložiť", search: "Vyhľadať", show: "Zobraziť", user_not_found: "Používateľ sa nenašiel", wrong_key: "Nesprávny kľúč" }, javascript: { alarm: "Vyslať", arrival: "Príchod", backalarm: "Zrušiť", coins: "Mince", credits: "Kredity", days: "dní", few_seconds: "o niekoľko sekúnd", finish_in: "Koniec:", foam_approaching: "Na ceste %{amount} l.", foam_missing: "Chýbajúce: %{amount} l.", foam_on_site: "Na mieste %{amount} l.", foam_selected: "Vybrané: %{amount} l.", hours: "H", location_not_found: "Nenašlo sa", messages: "Správy", minutes: "min.", missed_vehicle: "Chýba:", mission_start_in: "Začiatok:", "new": "Nový", not_found_map: "Vozidlo sa nenašlo na mape", now: "Teraz", patient: "Pacient", patient_untouched: "Neliečení pacienti", poi_delete: "Naozaj chcete vymazať POI: %{caption}?", reload: "Znovu načítať", sale: "Predať", sale_ended: "Predaj ukončený", secounds: "sek.", sicherheitswache_error: 'Ochrana "%{caption}" nebola úspešná, pretože neboli splnené všetky kritériá.', sicherheitswache_success: 'Ochrana "%{caption}" prebehla úspešne. Získaj %{credits} kreditov.', start_in: "Začiatok: ", start_username: "Štartér:", time_left: "Zostávajúci čas:", to_building: "Zobraziť budovu", to_mission: "Zobraziť misiu", understand: "Potvrdiť príjem", user_not_found: "Hráč sa nenašiel.", vehicles_not_visible: "Vozidlo nie je viditeľné. ", water_approaching: "Na ceste %{amount} l", water_missing: "Chýba %{amount} l", water_on_site: "Na mieste %{amount} l", water_selected: "Vybrané %{amount} l" }, map: { alliance: "Aliancia", alliance_chat: "Chat", alliance_chat_banned: "Momentálne máte zakázaný aliančný chat.", alliance_chat_banned_admin: "Zákaz od:", alliance_chat_banned_timeleft: "Zostávajúci čas:", alliance_chat_radio_off: "Aliančná vysielačka: Vyp.", alliance_chat_radio_on: "Aliančná vysielačka: Zap.", alliance_event: "Udalosť", alliance_missions: "Misie aliancie", alliance_missions_event: "Udalosť", ambulance: "Sanitné vozidlo", anti_abuse_active_link: "Ak chcete získať viac informácií, kliknite sem.", anti_abuse_active_text: "Misie budú vznikať v rozšírenom okruhu 100 km, pretože je blízko seba postavených príliš veľa staníc rovnakého typu.", attended: "Riešené", cancel_alliance_event: "Zrušiť udalosť aliancie", cancel_alliance_event_confirm: "Naozaj chcete zrušiť udalosť aliancie?", challenges: "", chat_history: "História chatu", congratulations: "Gratulujeme! Teraz môžete byť povýšený.", create_alliance_event: "Spustiť udalosť aliancie", create_alliance_operation: "Vytvorte rozsiahlu aliančnú misiu", emergency: "Mimoriadna udalosť", finishing: "Prebieha dokončovanie", join_alliance_infos: "Ak ste v aliancii, ostatní hráči vám môžu zadarmo dávať misie.", map: "Mapa", map_filters: { all_buildings: "Budovy", all_missions: "Misie", alliance_buildings: "Aliančné budovy", alliance_members: "Členovia", alliance_missions: "Zdieľané alianciou", ambulance_station_missions: "Stanica ZZS", ambulance_station_small_missions: "Stanica ZZS (malá stanica)", building_complex: "Výjazdové centrum", buildings_section: "Stanice", clinic_missions: "Klinika", dispatch_center_missions: "Dispečerské centrum", fire_school_missions: "Hasičská akadémia", firehouse_missions: "Hasiči", firehouse_small_missions: "Hasiči (malá)", hospital_missions: "Nemocnica", map_filters: "Zoznam filtrov mapy", mission_positions: "Body záujmu (POI)", mission_positions_section: "POI", missions_section: "Misie", police_copter_station_missions: "Policajné letectvo", police_school_missions: "Policajná akadémia", police_small_missions: "Policajná stanica (malá stanica)", police_special_forces: "Policajné špeciálne jednotky", police_station_missions: "Policajná stanica", prison_missions: "Väzenie", rapid_deployment_group: "Skupina rýchleho nasadenia (SEG)", rescue_copter_station_missions: "Stanica VZZS", riot_police: "Poriadková polícia", riot_police_missions: "Poriadková polícia", staging_area_missions: "Skúšobná oblasť", technical_aid_organization: "Organizácia technickej pomoci", technical_aid_organization_school: "THW Bundesschule", user_buildings: "Moje budovy", user_missions: "Moje misie", water_watch: "Vodná záchranná služba", water_watch_missions: "Vodná záchranná služba" }, message: "Správa", mission: "Misia", missions_filtered_out: "Niektoré misie môžu byť odfiltrované. Skontrolujte filtre máp.", no_alliance_chat_impossible: "Nie ste v aliancii.", no_alliance_missions: "Momentálne nie sú žiadne misie aliancie.", no_ambulance_missions: "Zatiaľ nemáte žiadne požiadavky na transport pacienta, objavia sa akonáhle budete vlastniť stanicu ZZS a nemocnicu.", no_emergency_missions: "Momentálne nie sú žiadne núdzové misie. Núdzová misia sa môže vyskytnúť iba v prípade, že vybudujete prvú stanicu.", no_radio_messages: "Nedostali ste žiadne rádiové správy.", radio_messages: "Vysielačka", restore_map: "Obnoviť mapu", server_warning: "Údržba servera o polnoci. Očakáva sa výpadok 6 hodiny.", show_informations: "Zelená = Misie sú zobrazené v zozname. Červená = Misie nie sú zobrazené.", sicherheitswache: "Plánované výskyty", transport: "Transport", unattended: "Neriešené" }, fms: { going: "Reagovať", not_ready: "Mimo prevádzky", on_destination: "V cieli transportu", on_place: "Na scéne", patient_transported: "Transportovanie pacienta", prisoner_transported: "Transportovanie väzňa", ready_home: "Dostupné na stanici", ready_traveling: "Jasné a dostupné", talking_wish: "Požiadavka na transport", waiting_for_vehicle: "Čaká vlečné vozidlo" }, intervention_order: { automatic_text_color: "Automatická farba textu", back: "Späť", category: "Kategória", colour: "Farba", column: "Stĺpec", column_number: "Číslo stĺpca", column_number_hint: "Ak je zadané číslo stĺpca, zobrazí sa v príslušnom stĺpci na stránke s upozorneniami položka Alarm a reakcia.", create_intervention_order: "Vytvoriť nové riadenie alarmov a reakcií", "delete": "Vymazať", delete_all: "Úplne vymazať riadenie alarmov a reakcií", delete_all_confirm: "Naozaj chcete vymazať celé riadenie alarmov a reakcií? Existujúce exportované položky už nie sú k dispozícii!", description: "Názov", edit: "Upraviť", "export": { "export": "Exportovať", "import": "Importovať", import_done: "Vybrané položky boli importované a zapísané do plánu alarmov a reakcií.", saved: "Riadenie alarmov a reakcií sa exportuje", saved_text: "Vaše riadenie alarmov a reakcií bolo pripravené na export. Cez odkaz môže iný hráč importovať riadenie alarmov a reakcií. Ak medzitým zmeníte svoje riadenia alarmov a reakcií, aplikuje sa táto zmena automaticky v exporte." }, hotkey_hint: "Vyberte klávesovú skratku na tento výber vozidla. Stlačte pri okne svojej misie: ALT + váš kláves (alebo vo Firefox: ALT + SHIFT + váš kláves alebo v OS Mac: ctrl + alt + váš kláves) a zvoľte svoj výber vozidla.", intervention_order: "Upraviť riadenie alarmov a reakcií", name: "Názov", no_intervention_created: "Ešte ste nevytvorili žiadne riadenie alarmov a reakcií.", options: "Možnosti", reset: "Resetujte predchádzajúci výber v okne alarmu.", reset_hint: "Ak ste vozidlo vybrali v okne dispečingu, môžete toto tlačidlo použiť na resetovanie.", save: "Uložiť", station: "Stanica", station_hint: "Keď je vybraná budova, budú sa dať vybrať iba vozidlá príslušnej budovy.", successfully_created: "Riadenie alarmov a reakcií úspešne vytvorené.", successfully_deleted: "Riadenie alarmov a reakcií vymazané", successfully_updated: "Riadenie alarmov a reakcií úspešne aktualizované.", text_color: "Farba textu", vehicles: { ab_atemschutz_only: "Modul SCBA", ab_einsatzleitung_only: "Veliteľský modul", ab_gefahrgut_only: "Modul nebezpečného materiálu", ab_oel_only: "Modul rozliateho oleja", ab_ruest: "Modul tech./záchrany", ab_ruest_rw: "", abl2wasser_only: "Modul hadicového prívodu", ambulance: "Sanitné vozidlo", ambulance_or_rapid_responder: "", arff: "ŠHA (špeciálny hasičský automobil)", battalion_chief_unit: "VEA", boot: "Člny (všeobecné)", dekon_p: "", division_chief_unit: "Mobilný veliteľský automobil", dlk_or_tm50: "", elw1_or_elw2: "Veliteľský automobil, mobilný veliteľský automobil alebo mobilný veliteľský modul ", elw3: "", elw_airport: "", emergency_ambulance: "Sanitné vozidlo alebo vrtuľník VZZS", fire_truck: "Hasičské automobily", fireboat: "Veľký hasičský čln", fly_car: "Rýchle výjazdové vozidlo", fly_car_any: "Rýchle výjazdové vozidlo / Lekárske vozidlo", foam_amount: "Litre penidla", fukw: "", fwk: "", gefkw: "", gkw: "Úžitkové vozidlo", grtw: "Úrazové oddelenie", grtw0: "", grtw1: "", grukw: "", gw_atemschutz_only: "", gw_gefahrgut: "EKOA", gw_gefahrgut_only: "", gw_hoehenrettung: "GW-Höhenrettung", gw_messtechnik: "GW-Messtechnik", gw_oel_only: "", gw_san: "", gw_taucher: "", gw_wasserrettung: "Vozidlo vodnej záchrany", gw_werkfeuerwehr: "", gwl2wasser_only: "Automobilová striekačka", hems: "Vrtuľník VZZS", hlf_only: "nula", hlf_or_rw_and_lf: "nula", hondengeleider: "", k9: "Jednotka K-9", kdow_lna: "", kdow_orgl: "Veliteľské vozidlo", ktw_b: "", ktw_or_rtw: "ambulancia DZS alebo RZP", lebefkw: "Leichter Befehlskraftwagen (leBefKw)", lf_only: "Kombinované hasičské automobily", long_distance_ambulance: "Sanitné vozidlo", mask_service_unit: "Autonómny dýchací prístroj", mek_mtf: "", mek_zf: "", mtw: "Automobil na prepravu hasičov", mzb: "Viacúčelový čln", naw: "", naw_or_rtw_and_nef: "", naw_or_rtw_and_nef_or_rth: "", nef_only: "Sanitné vozidlo", oil_unit: "GW-Öl", only_ab_dekon_p: "", only_dekon_p: "", ovd_p: "", police_car: "Hliadkové vozidlo", polizeihubschrauber: "Policajný vrtuľník", rescue_vehicle: "AHZS 4", rescue_vehicle_only: "AHZS 4", rescueboat: "Veľký záchranný čln", rettungstreppe: "", rth_only: "Vrtuľník VZZS", schlauchwagen: "KHA", seg_elw: "", sek_mtf: "", sek_zf: "", swat: "SWAT", swat_armored_vehicle: "Obrnené vozidlo SWAT", swat_suv: "SUV SWAT", thw_anh_mzab: "", thw_anh_mzb: "", thw_anh_schlb: "", thw_brmg_r: "", thw_dle: "", thw_lkw: "", thw_lkw_7_lkr_19_tm: "", thw_mlw5: "", thw_mtw: "Mannschaftstransportwagen Technischer Zug (MTW-TZ - THW)", thw_mzkw: "Mehrzweckkraftwagen (MzKW)", thw_tauchkraftwagen: "Potápačský tím", thw_tauchkraftwagen_or_gw_taucher: "", tlf_only: "Kombinovaný hasičský automobil", tm50: "", turboloescher: "", turntable_ladder: "AR", ulf: "", wasserwerfer: "", water_amount: "Litre vody", water_amount_tlf: "" } }, tutorial: { beginner: { building: { browser: { build_building: { add_name: "Potom svoju novú stanicu pomenujte! Vyberte názov, ktorý je rozpoznateľný a rozšíriteľný! Napr. „Hasičská stanica č. 0001“. Po dokončení kliknite na „Ďalej“!", build_with_credits: "Teraz postavte svoju budovu pomocou kreditov!", new_building: "Kliknite na možnosť „Nová budova“!", select_building: "Najskôr vyberte typ budovy, s ktorou chcete začať. Veľmi vám odporúčame, aby ste začali s hasičskými službami! V každom prípade vám odporúčame, aby ste začali s malou stanicou!", select_position: "Modrú značku presuňte na miesto, kde chcete postaviť svoju prvú stanicu!" }, pick_location: "Najskôr si vyberte miesto, kde začnete! Do vyhľadávacej lišty zadajte názov miesta, kde chcete začať, alebo ho nájdite na mape! A čo tak vaše rodné mesto?", welcome: "Dobrý deň, vitajte v Dispečerskom centre! Naučím vás niekoľko lekcií, ktoré vám pomôžu na začiatku vašej kariéry v pohotovostných službách!" }, mobile: { build_building: { add_name: "Potom svoju novú stanicu pomenujte! Vyberte názov, ktorý je rozpoznateľný a rozšíriteľný! Napr. „Hasičská stanica č. 0001“. Po dokončení kliknite na „Ďalej“!", build_with_credits: "Teraz postavte svoju budovu pomocou kreditov!", new_building: "Najskôr vyberte miesto, kde začnete a postavte svoju prvú budovu!

    Spravíte to tak, že kliknete na možnosť „Nová budova“!", select_building: "Najskôr vyberte typ budovy, s ktorou chcete začať. Veľmi vám odporúčame, aby ste začali s hasičskými službami! V každom prípade vám odporúčame, aby ste začali s malou stanicou!" }, welcome: "Dobrý deň, vitajte v Dispečerskom centre! Naučím vás niekoľko lekcií, ktoré vám pomôžu na začiatku vašej kariéry v pohotovostných službách!" } }, mission: { detail: { browser: { dispatch_menu: "Toto je ponuka vysielania. Odtiaľto posielate svoje jednotky na misie!", dispatch_menu_buttons: "Toto sú vaše dve tlačidlá vysielania! Prvé: „Vyslať“ posiela vybrané jednotky na misiu. Druhé má rovnakú funkciu ako to prvé, ale jednotky posiela na ďalšiu misiu. Tentoraz kliknite na prvé tlačidlo.", dispatch_menu_mission_general: "Na tomto mieste nájdete všeobecné informácie o misii, t. j. názov, adresu, ikonu misie. Na misiách, na ktorých ste sa už zúčastnili, sa objaví malá ikona muža a nahrádza hviezdičku.", dispatch_menu_mission_progress: "Na tomto mieste vidíte, aký veľký pokrok ste dosiahli pri riešení tejto misie, ako aj počet zamestnancov na mieste a zostávajúci čas na dokončenie tejto misie!", dispatch_menu_mission_specific: "Na tomto mieste nájdete viac informácií o misii, ktoré jednotky reagujú na hovor a ktoré sú už na mieste.", dispatch_menu_vehicle_list: "Toto je zoznam vašich dostupných vozidiel. Na tomto mieste vyberáte vozidlá. Kliknutím vyberte vozidlo!" }, mobile: { dispatch_menu: "Toto je ponuka vysielania. Odtiaľto posielate svoje jednotky na misie!", dispatch_menu_buttons: "Toto sú vaše dve tlačidlá vysielania! Prvé: „Vyslať“ posiela vybrané jednotky na misiu. Druhé má rovnakú funkciu ako to prvé, ale jednotky posiela na ďalšiu misiu. Tentoraz kliknite na prvé tlačidlo.", dispatch_menu_mission_general: "Na tomto mieste nájdete všeobecné informácie o misii, t. j. názov, adresu, ikonu misie. Na misiách, na ktorých ste sa už zúčastnili, sa objaví malá ikona muža a nahrádza hviezdičku.", dispatch_menu_mission_progress: "Na tomto mieste vidíte, aký veľký pokrok ste dosiahli pri riešení tejto misie, ako aj počet zamestnancov na mieste a zostávajúci čas na dokončenie tejto misie!", dispatch_menu_mission_specific: "Na tomto mieste nájdete viac informácií o misii, ktoré jednotky reagujú na hovor a ktoré sú už na mieste.", dispatch_menu_vehicle_list: "Toto je zoznam vašich dostupných vozidiel. Na tomto mieste vyberáte vozidlá. Kliknutím vyberte vozidlo!" } }, overview: { browser: { dispatch_button: "Teraz by sme sa mohli naučiť, ako riešiť nehody. Kliknutím na tlačidlo „Vyslať“ otvorte ponuku vysielania!", first_mission: "Výborne, postavili ste svoju prvú budovu! Aha, boli vám nahlásené prvé misie!" }, mobile: { dispatch_button: "Teraz by sme sa mohli naučiť, ako riešiť nehody. Kliknutím na tlačidlo „Vyslať“ otvorte ponuku vysielania!", first_mission: "Výborne, postavili ste svoju prvú budovu! Aha, boli vám nahlásené prvé misie!" } } }, rewards: { browser: { general: "Výborne, vydali ste sa na cestu ku skvelému dispečerskému centru! Nech sa páči, %{coins} mincí, ktoré vám pomôžu začať!
    Váš tím Dispečerského centra" }, mobile: { general: "Výborne, vydali ste sa na cestu ku skvelému dispečerskému centru! Nech sa páči, %{coins} mincí, ktoré vám pomôžu začať!
    Váš tím Dispečerského centra" } }, tips: { browser: { contact: "Ak máte otázky, môžete sa obrátiť na časté otázky v hre, navštíviť herné fóra alebo našu stránku na Facebooku!", general: "Ako ďalší krok vám odporúčame, aby ste vybudovali dispečerské centrum a potom čo najskôr nové stanice, pretože maximálny počet misií je rovnaký, ako najvyšší počet staníc jedného typu (polícia, hasiči, záchranka) plus 1; napr. 5 hasičských staníc a 3 záchranné stanice = 6 misií.", join_alliance: "Hlavne na začiatku vám veľmi pomôže, keď sa pripojíte k aliancii, preto vám to tiež odporúčame.", summary: "Toto sú základy Dispečerského centra! Plňte misie, získavajte kredity, kupujte viac jednotiek, opakujte. Prajeme vám dobrú zábavu!
    Váš tím Dispečerského centra" }, mobile: { contact: "Ak máte otázky, môžete sa obrátiť na časté otázky v hre, navštíviť herné fóra alebo našu stránku na Facebooku!", general: "Ako ďalší krok vám odporúčame, aby ste vybudovali dispečerské centrum a potom čo najskôr nové stanice, pretože maximálny počet misií je rovnaký, ako najvyšší počet staníc jedného typu (polícia, hasiči, záchranka) plus 1; napr. 5 hasičských staníc a 3 záchranné stanice = 6 misií.", join_alliance: "Hlavne na začiatku vám veľmi pomôže, keď sa pripojíte k aliancii, preto vám to tiež odporúčame.", summary: "Toto sú základy Dispečerského centra! Plňte misie, získavajte kredity, kupujte viac jednotiek, opakujte. Prajeme vám dobrú zábavu!
    Váš tím Dispečerského centra" } } }, commons: { collect: "Vyzdvihnúť", "continue": "Nie", end: "Koniec", next: "Ďalej", prev: "Dozadu", skip: "Áno", skip_hint: "Naozaj chcete zrušiť nácvik? Neskôr ho už nebudete môcť spustiť. Nebudete mať nárok na odmenu za absolvovanie nácviku." }, rewards: { log: "Odmena za dokončenie nácviku." } }, number: { format: { delimiter: " ", precision: 3, separator: ",", significant: !1, strip_insignificant_zeros: !1 } } }, I18n.translations.en = { number: { format: { separator: ".", delimiter: ",", precision: 3, significant: !1, strip_insignificant_zeros: !1 } } }, /*! * jQuery JavaScript Library v1.10.0 * http://jquery.com/ * * Includes Sizzle.js * http://sizzlejs.com/ * * Copyright 2005, 2013 jQuery Foundation, Inc. and other contributors * Released under the MIT license * http://jquery.org/license * * Date: 2013-05-24T18:39Z */ function (e, t) { function i(e) { var t = e.length, i = ut.type(e); return ut.isWindow(e) ? !1 : 1 === e.nodeType && t ? !0 : "array" === i || "function" !== i && ( 0 === t || "number" == typeof t && t > 0 && t - 1 in e) } function n(e) { var t = zt[e] = {}; return ut.each(e.match(ht) || [], function (e, i) { t[i] = !0 }), t } function o(e, i, n, o) { if (ut.acceptData(e)) { var a, s, r = ut.expando, l = e.nodeType, c = l ? ut.cache : e, u = l ? e[r] : e[r] && r; if (u && c[u] && (o || c[u].data) || n !== t || "string" != typeof i) return u || (u = l ? e[ r] = tt.pop() || ut.guid++ : r), c[u] || (c[u] = l ? {} : { toJSON: ut.noop }), ("object" == typeof i || "function" == typeof i) && (o ? c[u] = ut.extend(c[u], i) : c[u].data = ut.extend(c[u].data, i)), s = c[u], o || (s.data || (s .data = {}), s = s.data), n !== t && (s[ut.camelCase(i)] = n), "string" == typeof i ? (a = s[i], null == a && (a = s[ut.camelCase(i)])) : a = s, a } } function a(e, t, i) { if (ut.acceptData(e)) { var n, o, a = e.nodeType, s = a ? ut.cache : e, l = a ? e[ut.expando] : ut.expando; if (s[l]) { if (t && (n = i ? s[l] : s[l].data)) { ut.isArray(t) ? t = t.concat(ut.map(t, ut.camelCase)) : t in n ? t = [t] : (t = ut .camelCase(t), t = t in n ? [t] : t.split(" ")), o = t.length; for (; o--;) delete n[t[o]]; if (i ? !r(n) : !ut.isEmptyObject(n)) return }(i || (delete s[l].data, r(s[l]))) && (a ? ut.cleanData([e], !0) : ut.support .deleteExpando || s != s.window ? delete s[l] : s[l] = null) } } } function s(e, i, n) { if (n === t && 1 === e.nodeType) { var o = "data-" + i.replace(St, "-$1") .toLowerCase(); if (n = e.getAttribute(o), "string" == typeof n) { try { n = "true" === n ? !0 : "false" === n ? !1 : "null" === n ? null : +n + "" === n ? + n : Tt.test(n) ? ut.parseJSON(n) : n } catch (a) {} ut.data(e, i, n) } else n = t } return n } function r(e) { var t; for (t in e) if (("data" !== t || !ut.isEmptyObject(e[t])) && "toJSON" !== t) return !1; return !0 } function l() { return !0 } function c() { return !1 } function u() { try { return Y.activeElement } catch (e) {} } function d(e, t) { do e = e[t]; while (e && 1 !== e.nodeType); return e } function h(e, t, i) { if (ut.isFunction(t)) return ut.grep(e, function (e, n) { return !!t.call(e, n, e) !== i }); if (t.nodeType) return ut.grep(e, function (e) { return e === t !== i }); if ("string" == typeof t) { if (Ht.test(t)) return ut.filter(t, e, i); t = ut.filter(t, e) } return ut.grep(e, function (e) { return ut.inArray(e, t) >= 0 !== i }) } function p(e) { var t = Ut.split("|"), i = e.createDocumentFragment(); if (i.createElement) for (; t.length;) i.createElement(t.pop()); return i } function m(e, t) { return ut.nodeName(e, "table") && ut.nodeName(1 === t.nodeType ? t : t.firstChild, "tr") ? e .getElementsByTagName("tbody")[0] || e.appendChild(e.ownerDocument.createElement("tbody")) : e } function _(e) { return e.type = (null !== ut.find.attr(e, "type")) + "/" + e.type, e } function f(e) { var t = oi.exec(e.type); return t ? e.type = t[1] : e.removeAttribute("type"), e } function g(e, t) { for (var i, n = 0; null != (i = e[n]); n++) ut._data(i, "globalEval", !t || ut._data(t[n], "globalEval")) } function v(e, t) { if (1 === t.nodeType && ut.hasData(e)) { var i, n, o, a = ut._data(e), s = ut._data(t, a), r = a.events; if (r) { delete s.handle, s.events = {}; for (i in r) for (n = 0, o = r[i].length; o > n; n++) ut.event.add(t, i, r[i][n]) } s.data && (s.data = ut.extend({}, s.data)) } } function b(e, t) { var i, n, o; if (1 === t.nodeType) { if (i = t.nodeName.toLowerCase(), !ut.support.noCloneEvent && t[ut.expando]) { o = ut._data(t); for (n in o.events) ut.removeEvent(t, n, o.handle); t.removeAttribute(ut.expando) } "script" === i && t.text !== e.text ? (_(t) .text = e.text, f(t)) : "object" === i ? (t.parentNode && (t.outerHTML = e.outerHTML), ut.support.html5Clone && e.innerHTML && !ut.trim(t.innerHTML) && (t.innerHTML = e .innerHTML)) : "input" === i && ti.test(e.type) ? (t.defaultChecked = t.checked = e.checked, t.value !== e.value && (t.value = e.value)) : "option" === i ? t .defaultSelected = t.selected = e.defaultSelected : ("input" === i || "textarea" === i) && (t.defaultValue = e.defaultValue) } } function y(e, i) { var n, o, a = 0, s = typeof e.getElementsByTagName !== G ? e.getElementsByTagName(i || "*") : typeof e .querySelectorAll !== G ? e.querySelectorAll(i || "*") : t; if (!s) for (s = [], n = e.childNodes || e; null != (o = n[a]); a++) !i || ut.nodeName(o, i) ? s.push( o) : ut.merge(s, y(o, i)); return i === t || i && ut.nodeName(e, i) ? ut.merge([e], s) : s } function w(e) { ti.test(e.type) && (e.defaultChecked = e.checked) } function k(e, t) { if (t in e) return t; for (var i = t.charAt(0) .toUpperCase() + t.slice(1), n = t, o = Ci.length; o--;) if (t = Ci[o] + i, t in e) return t; return n } function x(e, t) { return e = t || e, "none" === ut.css(e, "display") || !ut.contains(e.ownerDocument, e) } function C(e, t) { for (var i, n, o, a = [], s = 0, r = e.length; r > s; s++) n = e[s], n.style && (a[s] = ut._data( n, "olddisplay"), i = n.style.display, t ? (a[s] || "none" !== i || (n.style.display = ""), "" === n.style.display && x(n) && (a[s] = ut._data(n, "olddisplay", A(n .nodeName)))) : a[s] || (o = x(n), (i && "none" !== i || !o) && ut._data(n, "olddisplay", o ? i : ut.css(n, "display")))); for (s = 0; r > s; s++) n = e[s], n.style && (t && "none" !== n.style.display && "" !== n.style .display || (n.style.display = t ? a[s] || "" : "none")); return e } function z(e, t, i) { var n = gi.exec(t); return n ? Math.max(0, n[1] - (i || 0)) + (n[2] || "px") : t } function T(e, t, i, n, o) { for (var a = i === (n ? "border" : "content") ? 4 : "width" === t ? 1 : 0, s = 0; 4 > a; a += 2) "margin" === i && (s += ut.css(e, i + xi[a], !0, o)), n ? ("content" === i && (s -= ut.css(e, "padding" + xi[a], !0, o)), "margin" !== i && (s -= ut.css(e, "border" + xi[a] + "Width", !0, o))) : (s += ut.css(e, "padding" + xi[a], !0, o), "padding" !== i && (s += ut .css(e, "border" + xi[a] + "Width", !0, o))); return s } function S(e, t, i) { var n = !0, o = "width" === t ? e.offsetWidth : e.offsetHeight, a = ui(e), s = ut.support.boxSizing && "border-box" === ut.css(e, "boxSizing", !1, a); if (0 >= o || null == o) { if (o = di(e, t, a), (0 > o || null == o) && (o = e.style[t]), vi.test(o)) return o; n = s && (ut.support.boxSizingReliable || o === e.style[t]), o = parseFloat(o) || 0 } return o + T(e, t, i || (s ? "border" : "content"), n, a) + "px" } function A(e) { var t = Y, i = yi[e]; return i || (i = E(e, t), "none" !== i && i || (ci = (ci || ut( "' }, Tt = yt && 11 > yt, St = { bold: { exec: "bold", tooltip: "Bold", shortcut: "Ctrl+B" }, italic: { exec: "italic", tooltip: "Italic", shortcut: "Ctrl+I" }, underline: { exec: "underline", tooltip: "Underline", shortcut: "Ctrl+U" }, strike: { exec: "strikethrough", tooltip: "Strikethrough" }, subscript: { exec: "subscript", tooltip: "Subscript" }, superscript: { exec: "superscript", tooltip: "Superscript" }, left: { state: function (e) { if (e && 3 === e.nodeType && (e = e.parentNode), e) { var t = "ltr" === y(e, "direction"), i = y(e, "textAlign"); return "left" === i || i === (t ? "start" : "end") } }, exec: "justifyleft", tooltip: "Align left" }, center: { exec: "justifycenter", tooltip: "Center" }, right: { state: function (e) { if (e && 3 === e.nodeType && (e = e.parentNode), e) { var t = "ltr" === y(e, "direction"), i = y(e, "textAlign"); return "right" === i || i === (t ? "end" : "start") } }, exec: "justifyright", tooltip: "Align right" }, justify: { exec: "justifyfull", tooltip: "Justify" }, font: { _dropDown: function (e, t, i) { var n = r("div"); p(n, "click", "a", function (t) { i(w(this, "font")), e.closeDropDown(!0), t.preventDefault() }), e.opts.fonts.split(",") .forEach(function (e) { d(n, tt("fontOpt", { font: e }, !0)) }), e.createDropDown(t, "font-picker", n) }, exec: function (e) { var t = this; St.font._dropDown(t, e, function (e) { t.execCommand("fontname", e) }) }, tooltip: "Font Name" }, size: { _dropDown: function (e, t, i) { var n = r("div"); p(n, "click", "a", function (t) { i(w(this, "size")), e.closeDropDown(!0), t.preventDefault() }); for (var o = 1; 7 >= o; o++) d(n, tt("sizeOpt", { size: o }, !0)); e.createDropDown(t, "fontsize-picker", n) }, exec: function (e) { var t = this; St.size._dropDown(t, e, function (e) { t.execCommand("fontsize", e) }) }, tooltip: "Font Size" }, color: { _dropDown: function (e, t, i) { var n = r("div"), o = "", a = St.color; a._htmlCache || (e.opts.colors.split("|") .forEach(function (e) { o += '
    ', e.split(",") .forEach(function (e) { o += '' }), o += "
    " }), a._htmlCache = o), d(n, R(a._htmlCache)), p(n, "click", "a", function ( t) { i(w(this, "color")), e.closeDropDown(!0), t.preventDefault() }), e.createDropDown(t, "color-picker", n) }, exec: function (e) { var t = this; St.color._dropDown(t, e, function (e) { t.execCommand("forecolor", e) }) }, tooltip: "Font Color" }, removeformat: { exec: "removeformat", tooltip: "Remove Formatting" }, cut: { exec: "cut", tooltip: "Cut", errorMessage: "Your browser does not allow the cut command. Please use the keyboard shortcut Ctrl/Cmd-X" }, copy: { exec: "copy", tooltip: "Copy", errorMessage: "Your browser does not allow the copy command. Please use the keyboard shortcut Ctrl/Cmd-C" }, paste: { exec: "paste", tooltip: "Paste", errorMessage: "Your browser does not allow the paste command. Please use the keyboard shortcut Ctrl/Cmd-V" }, pastetext: { exec: function (e) { var t, i = r("div"), n = this; d(i, tt("pastetext", { label: n._("Paste your text inside the following box:"), insert: n._("Insert") }, !0)), p(i, "click", ".button", function (e) { t = h(i, "#txt")[0].value, t && n.wysiwygEditorInsertText(t), n .closeDropDown(!0), e.preventDefault() }), n.createDropDown(e, "pastetext", i) }, tooltip: "Paste Text" }, bulletlist: { exec: function () { it(this), this.execCommand("insertunorderedlist") }, tooltip: "Bullet list" }, orderedlist: { exec: function () { it(this), this.execCommand("insertorderedlist") }, tooltip: "Numbered list" }, indent: { state: function (e, t) { var i, n, o; return k(t, "li") ? 0 : k(t, "ul,ol,menu") && (i = this.getRangeHelper() .selectedRange(), n = i.startContainer.parentNode, o = i.endContainer .parentNode, n !== n.parentNode.firstElementChild || k(o, "li") && o !== o .parentNode.lastElementChild) ? 0 : -1 }, exec: function () { var e = this, t = e.getRangeHelper() .getFirstBlockParent(); e.focus(), c(t, "ul,ol,menu") && e.execCommand("indent") }, tooltip: "Add indent" }, outdent: { state: function (e, t) { return c(t, "ul,ol,menu") ? 0 : -1 }, exec: function () { var e = this.getRangeHelper() .getFirstBlockParent(); c(e, "ul,ol,menu") && this.execCommand("outdent") }, tooltip: "Remove one indent" }, table: { exec: function (e) { var t = this, i = r("div"); d(i, tt("table", { rows: t._("Rows:"), cols: t._("Cols:"), insert: t._("Insert") }, !0)), p(i, "click", ".button", function (e) { var n = Number(h(i, "#rows")[0].value), o = Number(h(i, "#cols")[0].value), a = ""; n > 0 && o > 0 && (a += Array(n + 1) .join("" + Array(o + 1) .join("") + ""), a += "
    " + (Tt ? "" : "
    ") + "
    ", t.wysiwygEditorInsertHtml(a), t.closeDropDown(! 0), e.preventDefault()) }), t.createDropDown(e, "inserttable", i) }, tooltip: "Insert a table" }, horizontalrule: { exec: "inserthorizontalrule", tooltip: "Insert a horizontal rule" }, code: { exec: function () { this.wysiwygEditorInsertHtml("", (Tt ? "" : "
    ") + "
    ") }, tooltip: "Code" }, image: { _dropDown: function (e, t, i, n) { var o = r("div"); d(o, tt("image", { url: e._("URL:"), width: e._("Width (optional):"), height: e._("Height (optional):"), insert: e._("Insert") }, !0)); var a = h(o, "#image")[0]; a.value = i, p(o, "click", ".button", function (t) { a.value && n(a.value, h(o, "#width")[0].value, h(o, "#height")[0].value), e.closeDropDown(!0), t.preventDefault() }), e.createDropDown(t, "insertimage", o) }, exec: function (e) { var t = this; St.image._dropDown(t, e, "", function (e, i, n) { var o = ""; i && (o += ' width="' + i + '"'), n && (o += ' height="' + n + '"'), t .wysiwygEditorInsertHtml("') }) }, tooltip: "Insert an image" }, email: { _dropDown: function (e, t, i) { var n = r("div"); d(n, tt("email", { label: e._("E-mail:"), desc: e._("Description (optional):"), insert: e._("Insert") }, !0)), p(n, "click", ".button", function (t) { var o = h(n, "#email")[0].value; o && i(o, h(n, "#des")[0].value), e.closeDropDown(!0), t.preventDefault() }), e.createDropDown(t, "insertemail", n) }, exec: function (e) { var t = this; St.email._dropDown(t, e, function (e, i) { t.focus(), !t.getRangeHelper() .selectedHtml() || i ? t.wysiwygEditorInsertHtml('' + (i || e) + "") : t.execCommand("createlink", "mailto:" + e) }) }, tooltip: "Insert an email" }, link: { _dropDown: function (e, t, i) { function n(t) { a.value && i(a.value, h(o, "#des")[0].value), e.closeDropDown(!0), t .preventDefault() } var o = r("div"); d(o, tt("link", { url: e._("URL:"), desc: e._("Description (optional):"), ins: e._("Insert") }, !0)); var a = h(o, "#link")[0]; p(o, "click", ".button", n), p(o, "keypress", function (e) { 13 === e.which && a.value && n(e) }, ft), e.createDropDown(t, "insertlink", o) }, exec: function (e) { var t = this; St.link._dropDown(t, e, function (e, i) { t.focus(), i || !t.getRangeHelper() .selectedHtml() ? (i = i || e, t.wysiwygEditorInsertHtml('' + i + "")) : t.execCommand("createlink", e) }) }, tooltip: "Insert a link" }, unlink: { state: function () { return c(this.currentNode(), "a") ? 0 : -1 }, exec: function () { var e = c(this.currentNode(), "a"); if (e) { for (; e.firstChild;) z(e.firstChild, e); u(e) } }, tooltip: "Unlink" }, quote: { exec: function (e, t, i) { var n = "
    ", o = "
    "; t ? (i = i ? "" + i + "" : "", n = n + i + t + o, o = null) : "" === this .getRangeHelper() .selectedHtml() && (o = (Tt ? "" : "
    ") + o), this.wysiwygEditorInsertHtml(n, o) }, tooltip: "Insert a Quote" }, emoticon: { exec: function (e) { var t = this, i = function (o) { var s, l = t.opts, c = l.emoticonsRoot || "", u = l.emoticonsCompat, h = t.getRangeHelper(), m = u && " " !== h.getOuterText(!0, 1) ? " " : "", f = u && " " !== h.getOuterText(!1, 1) ? " " : "", g = r("div"), v = r("div"), b = 0, y = n({}, l.emoticons.dropdown, o ? l.emoticons.more : {}); return d(g, v), b = Math.sqrt(Object.keys(y) .length), p(g, "click", "img", function (e) { t.insert(m + _(this, "alt") + f, null, !1) .closeDropDown(!0), e.preventDefault() }), a(y, function (e, t) { d(v, r("img", { src: c + (t.url || t), alt: e, title: t.tooltip || e })), v.children.length >= b && (v = r("div"), d(g, v)) }), !o && l.emoticons.more && (s = r("a", { className: "sceditor-more" }), d(s, document.createTextNode(t._("More"))), p(s, "click", function (n) { t.createDropDown(e, "more-emoticons", i(!0)), n .preventDefault() }), d(g, s)), g }; t.createDropDown(e, "emoticons", i(!1)) }, txtExec: function (e) { St.emoticon.exec.call(this, e) }, tooltip: "Insert an emoticon" }, youtube: { _dropDown: function (e, t, i) { var n = r("div"); d(n, tt("youtubeMenu", { label: e._("Video URL:"), insert: e._("Insert") }, !0)), p(n, "click", ".button", function (t) { var o = h(n, "#link")[0].value, s = o.match(/(?:v=|v\/|embed\/|youtu.be\/)(.{11})/), r = o.match(/[&|?](?:star)?t=((\d+[hms]?){1,3})/), l = 0; r && a(r[1].split(/[hms]/), function (e, t) { "" !== t && (l = 60 * l + Number(t)) }), s && /^[a-zA-Z0-9_\-]{11}$/.test(s[1]) && i(s[1], l), e .closeDropDown(!0), t.preventDefault() }), e.createDropDown(t, "insertlink", n) }, exec: function (e) { var t = this; St.youtube._dropDown(t, e, function (e, i) { t.wysiwygEditorInsertHtml(tt("youtube", { id: e, time: i })) }) }, tooltip: "Insert a YouTube video" }, date: { _date: function (e) { var t = new Date, i = t.getYear(), n = t.getMonth() + 1, o = t.getDate(); return 2e3 > i && (i = 1900 + i), 10 > n && (n = "0" + n), 10 > o && (o = "0" + o), e .opts.dateFormat.replace(/year/i, i) .replace(/month/i, n) .replace(/day/i, o) }, exec: function () { this.insertText(St.date._date(this)) }, txtExec: function () { this.insertText(St.date._date(this)) }, tooltip: "Insert current date" }, time: { _time: function () { var e = new Date, t = e.getHours(), i = e.getMinutes(), n = e.getSeconds(); return 10 > t && (t = "0" + t), 10 > i && (i = "0" + i), 10 > n && (n = "0" + n), t + ":" + i + ":" + n }, exec: function () { this.insertText(St.time._time()) }, txtExec: function () { this.insertText(St.time._time()) }, tooltip: "Insert current time" }, ltr: { state: function (e, t) { return t && "ltr" === t.style.direction }, exec: function () { var e = this, t = e.getRangeHelper(), i = t.getFirstBlockParent(); if (e.focus(), i && !k(i, "body") || (e.execCommand("formatBlock", "p"), i = t .getFirstBlockParent(), i && !k(i, "body"))) { var n = "ltr" === y(i, "direction") ? "" : "ltr"; y(i, "direction", n) } }, tooltip: "Left-to-Right" }, rtl: { state: function (e, t) { return t && "rtl" === t.style.direction }, exec: function () { var e = this, t = e.getRangeHelper(), i = t.getFirstBlockParent(); if (e.focus(), i && !k(i, "body") || (e.execCommand("formatBlock", "p"), i = t .getFirstBlockParent(), i && !k(i, "body"))) { var n = "rtl" === y(i, "direction") ? "" : "rtl"; y(i, "direction", n) } }, tooltip: "Right-to-Left" }, print: { exec: "print", tooltip: "Print" }, maximize: { state: function () { return this.maximize() }, exec: function () { this.maximize(!this.maximize()) }, txtExec: function () { this.maximize(!this.maximize()) }, tooltip: "Maximize", shortcut: "Ctrl+Shift+M" }, source: { state: function () { return this.sourceMode() }, exec: function () { this.toggleSourceMode() }, txtExec: function () { this.toggleSourceMode() }, tooltip: "View source", shortcut: "Ctrl+Shift+S" }, ignore: {} }, At = {}; nt.plugins = At; var Et = yt && 11 > yt, Pt = function (e, t, i) { var n, o, a, s, r, l = "", c = e.startContainer, u = e.startOffset; for (c && 3 !== c.nodeType && (c = c.childNodes[u], u = 0), a = s = u; i > l.length && c && 3 === c.nodeType;) n = c.nodeValue, o = i - l.length, r && (s = n.length, a = 0), r = c, t ? (a = Math.max(s - o, 0), u = a, l = n.substr(a, s - a) + l, c = r.previousSibling) : (s = Math .min(o, n.length), u = a + s, l += n.substr(a, s), c = r.nextSibling); return { node: r || c, offset: u, text: l } }, It = window, Mt = document, jt = yt, Dt = jt && 11 > jt, Nt = /^image\/(p?jpe?g|gif|png|bmp)$/i; lt.locale = {}, lt.formats = {}, lt.icons = {}, lt.command = { get: function (e) { return St[e] || null }, set: function (e, t) { return e && t ? (t = n(St[e] || {}, t), t.remove = function () { lt.command.remove(e) }, St[e] = t, this) : !1 }, remove: function (e) { return St[e] && delete St[e], this } }, /** * SCEditor * http://www.sceditor.com/ * * Copyright (C) 2017, Sam Clarke (samclarke.com) * * SCEditor is licensed under the MIT license: * http://www.opensource.org/licenses/mit-license.php * * @fileoverview SCEditor - A lightweight WYSIWYG BBCode and HTML editor * @author Sam Clarke */ window.sceditor = { command: lt.command, commands: St, defaultOptions: vt, ie: yt, ios: kt, isWysiwygSupported: xt, regexEscape: J, escapeEntities: X, escapeUriScheme: et, dom: { css: y, attr: _, removeAttr: f, is: k, closest: c, width: I, height: M, traverse: L, rTraverse: O, parseHTML: R, hasStyling: F, convertElement: $, blockLevelList: gt, canHaveChildren: B, isInline: H, copyCSS: W, fixNesting: V, findCommonAncestor: q, getSibling: U, removeWhiteSpace: Z, extractContents: G, getOffset: K, getStyle: Y, hasStyle: Q }, locale: lt.locale, icons: lt.icons, utils: { each: a, isEmptyObject: i, extend: n }, plugins: nt.plugins, formats: lt.formats, create: function (e, t) { t = t || {}, l(e, ".sceditor-container") || (t.runWithoutWysiwygSupport || xt) && new lt( e, t) }, instance: function (e) { return e._sceditor } }, /** * SCEditor * http://www.sceditor.com/ * * Copyright (C) 2017, Sam Clarke (samclarke.com) * * SCEditor is licensed under the MIT license: * http://www.opensource.org/licenses/mit-license.php * * @fileoverview SCEditor - A lightweight WYSIWYG BBCode and HTML editor * @author Sam Clarke * @requires jQuery */ e.sceditor = window.sceditor, e.fn.sceditor = function (t) { var i, n = []; return this.each(function () { i = this._sceditor, "state" === t ? n.push(!!i) : "instance" === t ? n.push(i) : i || e.sceditor.create(this, t) }), n.length ? 1 === n.length ? n[0] : n : this } }(jQuery), function (e) { "use strict"; function t(e, t) { return typeof t === e } function i(e) { return !Object.keys(e) .length } function n(e, t) { for (var i = e === !!e, o = i ? 2 : 1, a = i ? t : e, s = i ? e : !1; o < arguments.length; o++) { var r = arguments[o]; for (var l in r) { var c = r[l]; if (!ut(c)) { var u = null !== c && "object" == typeof c && Object.getPrototypeOf(c) === Object .prototype, d = Array.isArray(c); a[l] = s && (u || d) ? n(!0, a[l] || (d ? [] : {}), c) : c } } } return a } function o(e, t) { var i = e.indexOf(t); i > -1 && e.splice(i, 1) } function a(e, t) { if (Array.isArray(e) || "length" in e && ht(e.length)) for (var i = 0; i < e.length; i++) t(i, e[i]); else Object.keys(e) .forEach(function (i) { t(i, e[i]) }) } function s(e) { return e = parseFloat(e), isFinite(e) ? e : 0 } function r(e, t, i) { var n = (i || document) .createElement(e); return a(t || {}, function (e, t) { "style" === e ? n.style.cssText = t : e in n ? n[e] = t : n.setAttribute(e, t) }), n } function l(e, t) { for (var i = e || {}; (i = i.parentNode) && !/(9|11)/.test(i.nodeType);) if (!t || k(i, t)) return i } function c(e, t) { return k(e, t) ? e : l(e, t) } function u(e) { e.parentNode && e.parentNode.removeChild(e) } function d(e, t) { e.appendChild(t) } function h(e, t) { return e.querySelectorAll(t) } function p(e, t, i, n, o) { t.split(" ") .forEach(function (t) { var a; ct(i) ? (a = n["_sce-event-" + t + i] || function (t) { for (var o = t.target; o && o !== e;) { if (k(o, i)) return n.call(o, t), void 0; o = o.parentNode } }, n["_sce-event-" + t + i] = a) : (a = i, o = n), e.addEventListener(t, a, o || !1) }) } function m(e, t, i, n, o) { t.split(" ") .forEach(function (t) { var a; ct(i) ? a = n["_sce-event-" + t + i] : (a = i, o = n), e.removeEventListener(t, a, o || ! 1) }) } function _(e, t, i) { return arguments.length < 3 ? e.getAttribute(t) : (null == i ? f(e, t) : e.setAttribute(t, i), void 0) } function f(e, t) { e.removeAttribute(t) } function g(e) { y(e, "display", "none") } function v(e) { y(e, "display", "") } function b(e) { D(e) ? g(e) : v(e) } function y(e, t, i) { if (arguments.length < 3) { if (ct(t)) return 1 === e.nodeType ? getComputedStyle(e)[t] : null; a(t, function (t, i) { y(e, t, i) }) } else { var n = (i || 0 === i) && !isNaN(i); e.style[t] = n ? i + "px" : i } } function w(e, t, i) { var n = arguments.length, o = {}; if (e.nodeType === mt) { if (1 === n) return a(e.attributes, function (e, t) { /^data\-/i.test(t.name) && (o[t.name.substr(5)] = t.value) }), o; if (2 === n) return _(e, "data-" + t); _(e, "data-" + t, String(i)) } } function k(e, t) { var i = !1; return e && e.nodeType === mt && (i = (e.matches || e.msMatchesSelector || e.webkitMatchesSelector) .call(e, t)), i } function x(e, t) { return e !== t && e.contains && e.contains(t) } function C(e, t) { var i = e.previousElementSibling; return t && i ? k(i, t) ? i : null : i } function z(e, t) { return t.parentNode.insertBefore(e, t) } function T(e) { return e.className.trim() .split(/\s+/) } function S(e, t) { return k(e, "." + t) } function A(e, t) { var i = T(e); i.indexOf(t) < 0 && i.push(t), e.className = i.join(" ") } function E(e, t) { var i = T(e); o(i, t), e.className = i.join(" ") } function P(e, t, i) { i = ut(i) ? !S(e, t) : i, i ? A(e, t) : E(e, t) } function I(e, t) { if (ut(t)) { var i = getComputedStyle(e), n = s(i.paddingLeft) + s(i.paddingRight), o = s(i.borderLeftWidth) + s(i.borderRightWidth); return e.offsetWidth - n - o } y(e, "width", t) } function M(e, t) { if (ut(t)) { var i = getComputedStyle(e), n = s(i.paddingTop) + s(i.paddingBottom), o = s(i.borderTopWidth) + s(i.borderBottomWidth); return e.offsetHeight - n - o } y(e, "height", t) } function j(e, t, i) { var n; dt(window.CustomEvent) ? n = new CustomEvent(t, { bubbles: !0, cancelable: !0, detail: i }) : (n = e.ownerDocument.createEvent("CustomEvent"), n.initCustomEvent(t, !0, !0, i)), e .dispatchEvent(n) } function D(e) { return !!e.getClientRects() .length } function N(e) { return e.replace(/^-ms-/, "ms-") .replace(/-(\w)/g, function (e, t) { return t.toUpperCase() }) } function L(e, t, i, n, o) { for (e = o ? e.lastChild : e.firstChild; e;) { var a = o ? e.previousSibling : e.nextSibling; if (!i && t(e) === !1 || !n && L(e, t, i, n, o) === !1 || i && t(e) === !1) return !1; e = a } } function O(e, t, i, n) { L(e, t, i, n, !0) } function R(e, t) { t = t || document; var i = t.createDocumentFragment(), n = r("div", {}, t); for (n.innerHTML = e; n.firstChild;) d(i, n.firstChild); return i } function F(e) { return e && (!k(e, "p,div") || e.className || _(e, "style") || !i(w(e))) } function $(e, t) { var i = r(t, {}, e.ownerDocument); for (a(e.attributes, function (e, t) { try { _(i, t.name, t.value) } catch (n) {} }); e.firstChild;) d(i, e.firstChild); return e.parentNode.replaceChild(i, e), i } function B(e) { return /11?|9/.test(e.nodeType) ? "|iframe|area|base|basefont|br|col|frame|hr|img|input|wbr|isindex|link|meta|param|command|embed|keygen|source|track|object|" .indexOf("|" + e.nodeName.toLowerCase() + "|") < 0 : !1 } function H(e, t) { var i, n = (e || {}) .nodeType || _t; return n !== mt ? n === _t : (i = e.tagName.toLowerCase(), "code" === i ? !t : gt.indexOf("|" + i + "|") < 0) } function W(e, t) { t.style.cssText = e.style.cssText + t.style.cssText } function V(e) { var t = function (e) { for (; H(e.parentNode, !0);) e = e.parentNode; return e }; L(e, function (e) { var i = "ul,ol", n = !H(e, !0); if (n && H(e.parentNode, !0)) { var o = t(e), a = G(o, e), s = e; W(o, s), z(a, o), z(s, o) } if (n && k(e, i) && k(e.parentNode, i)) { var l = C(e, "li"); l || (l = r("li"), z(l, e)), d(l, e) } }) } function q(e, t) { for (; e = e.parentNode;) if (x(e, t)) return e } function U(e, t) { return e ? (t ? e.previousSibling : e.nextSibling) || U(e.parentNode, t) : null } function Z(e) { var t, i, n, o, a, s, r, l = y(e, "whiteSpace"), c = /line$/i.test(l), d = e.firstChild; if (!/pre(\-wrap)?$/i.test(l)) for (; d;) { if (s = d.nextSibling, t = d.nodeValue, i = d.nodeType, i === mt && d.firstChild && Z(d), i === _t) { for (n = U(d), o = U(d, !0), r = !1; S(o, "sceditor-ignore");) o = U(o, !0); if (H(d) && o) { for (a = o; a.lastChild;) for (a = a.lastChild; S(a, "sceditor-ignore");) a = U(a, !0); r = a.nodeType === _t ? /[\t\n\r ]$/.test(a.nodeValue) : !H(a) } t = t.replace(/\u200B/g, ""), o && H(o) && !r || (t = t.replace(c ? /^[\t ]+/ : /^[\t\n\r ]+/, "")), n && H(n) || (t = t.replace(c ? /[\t ]+$/ : /[\t\n\r ]+$/, "")), t.length ? d.nodeValue = t.replace(c ? /[\t ]+/g : /[\t\n\r ]+/g, " ") : u( d) } d = s } } function G(e, t) { var i = e.ownerDocument.createRange(); return i.setStartBefore(e), i.setEndAfter(t), i.extractContents() } function K(e) { for (var t = 0, i = 0; e;) t += e.offsetLeft, i += e.offsetTop, e = e.offsetParent; return { left: t, top: i } } function Y(e, t) { var i, n, o = e.style; if (pt[t] || (pt[t] = N(t)), t = pt[t], n = o[t], "textAlign" === t) { if (i = o.direction, n = n || y(e, t), y(e.parentNode, t) === n || "block" !== y(e, "display") || k(e, "hr,th")) return ""; if (/right/i.test(n) && "rtl" === i || /left/i.test(n) && "ltr" === i) return "" } return n } function Q(e, t, i) { var n = Y(e, t); return n ? !i || n === i || Array.isArray(i) && i.indexOf(n) > -1 : !1 } function J(e) { return e.replace(/([\-.*+?^=!:${}()|\[\]\/\\])/g, "\\$1") } function X(e, t) { if (!e) return e; var i = { "&": "&", "<": "<", ">": ">", " ": "  ", "\r\n": "
    ", "\r": "
    ", "\n": "
    " }; return t !== !1 && (i['"'] = """, i["'"] = "'", i["`"] = "`"), e = e.replace( / {2}|\r\n|[&<>\r\n'"`]/g, function (e) { return i[e] || e }) } function et(e) { var t, i = /^[^\/]*:/i, n = window.location; return e && i.test(e) && !Ct.test(e) ? (t = n.pathname.split("/"), t.pop(), n.protocol + "//" + n .host + t.join("/") + "/" + e) : e } function tt(e, t, i) { var n = zt[e]; return Object.keys(t) .forEach(function (e) { n = n.replace(new RegExp(J("{" + e + "}"), "g"), t[e]) }), i && (n = R(n)), n } function it(e) { if ("mozHidden" in document) for (var t, i = e.getBody(); i;) { if (t = i, t.firstChild) t = t.firstChild; else { for (; t && !t.nextSibling;) t = t.parentNode; t && (t = t.nextSibling) } 3 === i.nodeType && /[\n\r\t]+/.test(i.nodeValue) && (/^pre/.test(y(i.parentNode, "whiteSpace")) || u(i)), i = t } } function nt(e) { var t = this, i = [], n = function (e) { return "signal" + e.charAt(0) .toUpperCase() + e.slice(1) }, o = function (t, o) { t = [].slice.call(t); var a, s, r = n(t.shift()); for (a = 0; a < i.length; a++) if (r in i[a] && (s = i[a][r].apply(e, t), o)) return s }; t.call = function () { o(arguments, !1) }, t.callOnlyFirst = function () { return o(arguments, !0) }, t.hasHandler = function (e) { var t = i.length; for (e = n(e); t--;) if (e in i[t]) return !0; return !1 }, t.exists = function (e) { return e in At ? (e = At[e], "function" == typeof e && "object" == typeof e.prototype) : !1 }, t.isRegistered = function (e) { if (t.exists(e)) for (var n = i.length; n--;) if (i[n] instanceof At[e]) return !0; return !1 }, t.register = function (n) { return !t.exists(n) || t.isRegistered(n) ? !1 : (n = new At[n], i.push(n), "init" in n && n .init.call(e), !0) }, t.deregister = function (n) { var o, a = i.length, s = !1; if (!t.isRegistered(n)) return s; for (; a--;) i[a] instanceof At[n] && (o = i.splice(a, 1)[0], s = !0, "destroy" in o && o .destroy.call(e)); return s }, t.destroy = function () { for (var t = i.length; t--;) "destroy" in i[t] && i[t].destroy.call(e); i = [], e = null } } function ot(e, t) { var i, n, o = t || e.contentDocument || e.document, a = "sceditor-start-marker", s = "sceditor-end-marker", l = this; l.insertHTML = function (e, t) { var i, n, a = l.selectedRange(); if (!a) return !1; for (t && (e += l.selectedHtml() + t), n = r("p", {}, o), i = o.createDocumentFragment(), n .innerHTML = e; n.firstChild;) d(i, n.firstChild); l.insertNode(i) }, n = function (e, t, n) { var c, u = o.createDocumentFragment(); if ("string" == typeof e ? (t && (e += l.selectedHtml() + t), u = R(e)) : (d(u, e), t && (d(u, l.selectedRange() .extractContents()), d(u, t))), c = u.lastChild) { for (; !H(c.lastChild, !0);) c = c.lastChild; if (B(c) ? c.lastChild || d(c, document.createTextNode("​")) : c = u, l.removeMarkers(), d(c, i(a)), d(c, i(s)), n) { var h = r("div"); return d(h, u), h.innerHTML } return u } }, l.insertNode = function (e, t) { var i = n(e, t), o = l.selectedRange(), a = o.commonAncestorContainer; return i ? (o.deleteContents(), a && 3 !== a.nodeType && !B(a) ? z(i, a) : o.insertNode(i), l .restoreRange(), void 0) : !1 }, l.cloneSelected = function () { var e = l.selectedRange(); return e ? e.cloneRange() : void 0 }, l.selectedRange = function () { var t, i, n = e.getSelection(); if (n) { if (n.rangeCount <= 0) { for (i = o.body; i.firstChild;) i = i.firstChild; t = o.createRange(), t.setStartBefore(i), n.addRange(t) } return n.rangeCount > 0 && (t = n.getRangeAt(0)), t } }, l.hasSelection = function () { var t = e.getSelection(); return t && t.rangeCount > 0 }, l.selectedHtml = function () { var e, t = l.selectedRange(); return t ? (e = r("p", {}, o), d(e, t.cloneContents()), e.innerHTML) : "" }, l.parentNode = function () { var e = l.selectedRange(); return e ? e.commonAncestorContainer : void 0 }, l.getFirstBlockParent = function (e) { var t = function (e) { return H(e, !0) ? (e = e ? e.parentNode : null, e ? t(e) : e) : e }; return t(e || l.parentNode()) }, l.insertNodeAt = function (e, t) { var i = l.selectedRange(), n = l.cloneSelected(); return n ? (n.collapse(e), n.insertNode(t), l.selectRange(i), void 0) : !1 }, i = function (e) { l.removeMarker(e); var t = r("span", { id: e, className: "sceditor-selection sceditor-ignore", style: "display:none;line-height:0" }, o); return t.innerHTML = " ", t }, l.insertMarkers = function () { var e = l.selectedRange(), t = i(a); l.removeMarkers(), l.insertNodeAt(!0, t), e && e.collapsed ? t.parentNode.insertBefore(i(s), t .nextSibling) : l.insertNodeAt(!1, i(s)) }, l.getMarker = function (e) { return o.getElementById(e) }, l.removeMarker = function (e) { var t = l.getMarker(e); t && u(t) }, l.removeMarkers = function () { l.removeMarker(a), l.removeMarker(s) }, l.saveRange = function () { l.insertMarkers() }, l.selectRange = function (t) { var i, n = e.getSelection(), a = t.endContainer; if (!Et && t.collapsed && a && !H(a, !0)) { for (i = a.lastChild; i && k(i, ".sceditor-ignore");) i = i.previousSibling; if (k(i, "br")) { var s = o.createRange(); s.setEndAfter(i), s.collapse(!1), l.compare(t, s) && (t.setStartBefore(i), t.collapse( !0)) } } n && (l.clear(), n.addRange(t)) }, l.restoreRange = function () { var e, t = l.selectedRange(), i = l.getMarker(a), n = l.getMarker(s); return i && n && t ? (e = i.nextSibling === n, t = o.createRange(), t.setStartBefore(i), t .setEndAfter(n), e && t.collapse(!0), l.selectRange(t), l.removeMarkers(), void 0) : ! 1 }, l.selectOuterText = function (e, t) { var i, n, o = l.cloneSelected(); return o ? (o.collapse(!1), i = Pt(o, !0, e), n = Pt(o, !1, t), o.setStart(i.node, i.offset), o.setEnd(n.node, n.offset), l.selectRange(o), void 0) : !1 }, l.getOuterText = function (e, t) { var i = l.cloneSelected(); return i ? (i.collapse(!e), Pt(i, e, t) .text) : "" }, l.replaceKeyword = function (e, t, i, n, o, a) { i || e.sort(function (e, t) { return e[0].length - t[0].length }); var s, r, c, u, d, h, p, m, _ = "(^|[\\s    ])", f = e.length, g = o ? 1 : 0, v = n || e[f - 1][0].length; for (o && v++, a = a || "", s = l.getOuterText(!0, v), d = s.length, s += a, t && (s += l .getOuterText(!1, v)); f--;) if (p = e[f][0], m = p.length, u = Math.max(0, d - m - g), c = -1, o ? (r = s.substr(u) .match(new RegExp(_ + J(p) + _)), r && (c = r.index + u + r[1].length)) : c = s .indexOf(p, u), c > -1 && d >= c && c + m + g >= d) return h = d - c, l .selectOuterText(h, m - h - (/^\S/.test(a) ? 1 : 0)), l.insertHTML(e[f][1]), !0; return !1 }, l.compare = function (e, t) { return t || (t = l.selectedRange()), e && t ? 0 === e.compareBoundaryPoints(Range.END_TO_END, t) && 0 === e.compareBoundaryPoints(Range.START_TO_START, t) : !e && !t }, l.clear = function () { var t = e.getSelection(); t && (t.removeAllRanges ? t.removeAllRanges() : t.empty && t.empty()) } } function at(e, t) { var i = /[^\s\xA0\u2002\u2003\u2009\u00a0]+/, n = e && h(e, "img[data-sceditor-emoticon]"); if (e && n.length) for (var o = 0; o < n.length; o++) { var a = n[o], s = a.parentNode, r = a.previousSibling, l = a.nextSibling; if (r && i.test(r.nodeValue.slice(-1)) || l && i.test((l.nodeValue || "")[0])) { var c = t.cloneSelected(), d = -1, p = c.startContainer, m = r.nodeValue; null === m && (m = r.innerText || ""), m += w(a, "sceditor-emoticon"), p === l && (d = m .length + c.startOffset), p === e && e.childNodes[c.startOffset] === l && (d = m .length), p === r && (d = c.startOffset), l && l.nodeType === _t || (l = s .insertBefore(s.ownerDocument.createTextNode(""), l)), l.insertData(0, m), u(r), u(a), d > -1 && (c.setStart(l, d), c.collapse(!0), t.selectRange(c)) } } } function st(e, t, i) { var n = e.ownerDocument, o = "(^|\\s| | | | |$)", s = [], r = {}; l(e, "code") || (a(t, function (e) { r[e] = new RegExp(o + J(e) + o), s.push(e) }), s.sort(function (e, t) { return t.length - e.length }), function c(e) { for (e = e.firstChild; e;) { if (e.nodeType !== mt || k(e, "code") || c(e), e.nodeType === _t) for (var o = 0; o < s.length; o++) { var a = e.nodeValue, l = s[o], u = i ? a.search(r[l]) : a.indexOf(l); if (u > -1) { var d = a.indexOf(l, u), h = R(t[l], n), p = a.substr(d + l.length); h.appendChild(n.createTextNode(p)), e.nodeValue = a.substr(0, d), e .parentNode.insertBefore(h, e.nextSibling) } } e = e.nextSibling } }(e)) } function rt(e, t) { var i; L(e, function (e) { H(e, !0) ? (i || (i = r("p", {}, t), z(i, e)), (e.nodeType !== _t || "" !== e .nodeValue) && d(i, e)) : i = null }, !1, !0) } function lt(e, t) { var i, s, l, f, x, C, T, N, L, R, W, q, U, G, Y, Q, J, et, it, ht, pt, gt, bt, yt, Ct, zt, Tt, At, Et, Pt, Lt, Ot, Rt, Ft, $t, Bt, Ht, Wt, Vt, qt, Ut, Zt, Gt, Kt, Yt, Qt, Jt, Xt, ei, ti, ii, ni, oi, ai, si, ri, li, ci, ui, di, hi, pi, mi, _i = this, fi = {}, gi = [], vi = [], bi = {}, yi = {}, wi = {}; _i.commands = n(!0, {}, t.commands || St); var ki = _i.opts = n(!0, {}, vt, t); _i.opts.emoticons = t.emoticons || vt.emoticons, Tt = function () { e._sceditor = _i, ki.locale && "en" !== ki.locale && Rt(), s = r("div", { className: "sceditor-container" }), z(s, e), y(s, "z-index", ki.zIndex), jt && A(s, "ie ie" + jt), ht = e.required, e .required = !1; var t = lt.formats[ki.format]; i = t ? new t : {}, "init" in i && i.init.call(_i), Ot(), Wt(), Ft(), Lt(), $t(), Bt(), xt || _i.toggleSourceMode(), ti(); var n = function () { m(It, "load", n), ki.autofocus && si(), mi(), ni(), Y.call("ready"), "onReady" in i && i.onReady.call(_i) }; p(It, "load", n), "complete" === Mt.readyState && n() }, Ot = function () { var e = ki.plugins; e = e ? e.toString() .split(",") : [], Y = new nt(_i), e.forEach(function (e) { Y.register(e.trim()) }) }, Rt = function () { var e; U = lt.locale[ki.locale], U || (e = ki.locale.split("-"), U = lt.locale[e[0]]), U && U .dateFormat && (ki.dateFormat = U.dateFormat) }, Lt = function () { N = r("textarea"), f = r("iframe", { frameborder: 0, allowfullscreen: !0 }), ki.startInSourceMode ? (A(s, "sourceMode"), g(f)) : (A(s, "wysiwygMode"), g(N)), ki .spellcheck || _(s, "spellcheck", "false"), "https:" === It.location.protocol && _(f, "src", "javascript:false"), d(s, f), d(s, N), _i.dimensions(ki.width || I(e), ki .height || M(e)); var t = jt ? "ie ie" + jt : ""; t += kt ? " ios" : "", T = f.contentDocument, T.open(), T.write(tt("html", { attrs: ' class="' + t + '"', spellcheck: ki.spellcheck ? "" : 'spellcheck="false"', charset: ki.charset, style: ki.style })), T.close(), C = T.body, x = f.contentWindow, _i.readOnly(!!ki.readOnly), (kt || wt || jt) && (M(C, "100%"), jt || p(C, "touchend", _i.focus)); var i = _(e, "tabindex"); _(N, "tabindex", i), _(f, "tabindex", i), G = new ot(x), g(e), _i.val(e.value); var n = ki.placeholder || _(e, "placeholder"); n && (N.placeholder = n, _(C, "placeholder", n)) }, $t = function () { ki.autoUpdate && (p(C, "blur", pi), p(N, "blur", pi)), null === ki.rtl && (ki.rtl = "rtl" === y(N, "direction")), _i.rtl(!!ki.rtl), ki.autoExpand && (p(C, "load", mi, ft), p(C, "input keyup", mi)), ki.resizeEnabled && Ht(), _(s, "id", ki.id), _i.emoticons(ki .emoticonsEnabled) }, Bt = function () { var t = e.form, i = "compositionstart compositionend", n = "keydown keyup keypress focus blur contextmenu", o = "onselectionchange" in T ? "selectionchange" : "keyup focus blur contextmenu mouseup touchend click"; p(Mt, "click", Xt), t && (p(t, "reset", Kt), p(t, "submit", _i.updateOriginal, ft)), p(C, "keypress", Gt), p(C, "keydown", Ut), p(C, "keydown", Zt), p(C, "keyup", ni), p(C, "blur", di), p(C, "keyup", hi), p(C, "paste", Vt), p(C, i, Qt), p(C, o, oi), p(C, n, Jt), ki.emoticonsCompat && It.getSelection && p(C, "keyup", li), p(C, "blur", function () { _i.val() || A(C, "placeholder") }), p(C, "focus", function () { E(C, "placeholder") }), p(N, "blur", di), p(N, "keyup", hi), p(N, "keydown", Ut), p(N, i, Qt), p(N, n, Jt), p( T, "mousedown", Yt), p(T, o, oi), p(T, "beforedeactivate keyup mouseup", Pt), p(T, "keyup", ni), p(T, "focus", function () { R = null }), p(s, "selectionchanged", ai), p(s, "selectionchanged", ti), p(s, "selectionchanged valuechanged nodechanged pasteraw paste", Jt) }, Ft = function () { var e, t = _i.commands, i = (ki.toolbarExclude || "") .split(","), n = ki.toolbar.split("|"); l = r("div", { className: "sceditor-toolbar", unselectable: "on" }), ki.icons in lt.icons && (zt = new lt.icons[ki.icons]), a(n, function (n, o) { e = r("div", { className: "sceditor-group" }), a(o.split(","), function (n, o) { var a, s, r = t[o]; if (r && !(i.indexOf(o) > -1)) { if (s = r.shortcut, a = tt("toolbarButton", { name: o, dispName: _i._(r.name || r.tooltip || o) }, !0) .firstChild, zt && zt.create) { var l = zt.create(o); l && (z(zt.create(o), a.firstChild), A(a, "has-icon")) } a._sceTxtMode = !!r.txtExec, a._sceWysiwygMode = !!r.exec, P(a, "disabled", !r.exec), p(a, "click", function (e) { S(a, "disabled") || Et(a, r), ti(), e.preventDefault() }), p(a, "mousedown", function (e) { _i.closeDropDown(), e.preventDefault() }), r.tooltip && _(a, "title", _i._(r.tooltip) + (s ? " (" + s + ")" : "")), s && _i.addShortcut(s, o), r.state ? vi .push({ name: o, state: r.state }) : ct(r.exec) && vi.push({ name: o, state: r.exec }), d(e, a), yi[o] = a } }), e.firstChild && d(l, e) }), d(ki.toolbarContainer || s, l) }, Ht = function () { var e, t, i, n, o, a, l = r("div", { className: "sceditor-grip" }), c = r("div", { className: "sceditor-resize-cover" }), u = "touchmove mousemove", h = "touchcancel touchend mouseup", _ = 0, f = 0, b = 0, y = 0, w = 0, k = 0, x = I(s), C = M(s), z = !1, T = _i.rtl(); if (e = ki.resizeMinHeight || C / 1.5, t = ki.resizeMaxHeight || 2.5 * C, i = ki .resizeMinWidth || x / 1.25, n = ki.resizeMaxWidth || 1.25 * x, o = function (o) { "touchmove" === o.type ? (o = It.event, b = o.changedTouches[0].pageX, y = o .changedTouches[0].pageY) : (b = o.pageX, y = o.pageY); var a = k + (y - f), s = T ? w - (b - _) : w + (b - _); n > 0 && s > n && (s = n), i > 0 && i > s && (s = i), ki.resizeWidth || (s = !1), t > 0 && a > t && (a = t), e > 0 && e > a && (a = e), ki.resizeHeight || (a = !1), ( s || a) && _i.dimensions(s, a), o.preventDefault() }, a = function (e) { z && (z = !1, g(c), E(s, "resizing"), m(Mt, u, o), m(Mt, h, a), e.preventDefault()) }, zt && zt.create) { var S = zt.create("grip"); S && (d(l, S), A(l, "has-icon")) } d(s, l), d(s, c), g(c), p(l, "touchstart mousedown", function (e) { "touchstart" === e.type ? (e = It.event, _ = e.touches[0].pageX, f = e.touches[0] .pageY) : (_ = e.pageX, f = e.pageY), w = I(s), k = M(s), z = !0, A(s, "resizing"), v(c), p(Mt, u, o), p(Mt, h, a), e.preventDefault() }) }, Wt = function () { var e = ki.emoticons, t = ki.emoticonsRoot || ""; e && (wi = n({}, e.more, e.dropdown, e.hidden)), a(wi, function (e, i) { wi[e] = tt("emoticon", { key: e, url: t + (i.url || i), tooltip: i.tooltip || e }), ki.emoticonsEnabled && gi.push(r("img", { src: t + (i.url || i) })) }) }, si = function () { var e, t, i = C.firstChild, n = !!ki.autofocusEnd; if (D(s)) { if (_i.sourceMode()) return t = n ? N.value.length : 0, N.setSelectionRange(t, t), void 0; if (Z(C), n) for ((i = C.lastChild) || (i = r("p", {}, T), d(C, i)); i.lastChild;) i = i.lastChild, !Dt && k(i, "br") && i.previousSibling && (i = i.previousSibling); e = T.createRange(), B(i) ? e.selectNodeContents(i) : (e.setStartBefore(i), n && e .setStartAfter(i)), e.collapse(!n), G.selectRange(e), et = e, n && (C.scrollTop = C.scrollHeight), _i.focus() } }, _i.readOnly = function (e) { return "boolean" != typeof e ? !N.readonly : (C.contentEditable = !e, N.readonly = !e, ei(e), _i) }, _i.rtl = function (e) { var t = e ? "rtl" : "ltr"; return "boolean" != typeof e ? "rtl" === _(N, "dir") : (_(C, "dir", t), _(N, "dir", t), E(s, "rtl"), E(s, "ltr"), A(s, t), zt && zt.rtl && zt.rtl(e), _i) }, ei = function (e) { var t = _i.inSourceMode() ? "_sceTxtMode" : "_sceWysiwygMode"; a(yi, function (i, n) { P(n, "disabled", e || !n[t]) }) }, _i.width = function (e, t) { return e || 0 === e ? (_i.dimensions(e, null, t), _i) : I(s) }, _i.dimensions = function (e, t, i) { return e = e || 0 === e ? e : !1, t = t || 0 === t ? t : !1, e === !1 && t === !1 ? { width: _i.width(), height: _i.height() } : (e !== !1 && (i !== !1 && (ki.width = e), I(s, e)), t !== !1 && (i !== !1 && (ki .height = t), M(s, t)), _i) }, _i.height = function (e, t) { return e || 0 === e ? (_i.dimensions(null, e, t), _i) : M(s) }, _i.maximize = function (e) { var t = "sceditor-maximize"; return ut(e) ? S(s, t) : (e = !!e, e && (yt = It.pageYOffset), P(Mt.documentElement, t, e), P( Mt.body, t, e), P(s, t, e), _i.width(e ? "100%" : ki.width, !1), _i.height(e ? "100%" : ki.height, !1), e || It.scrollTo(0, yt), mi(), _i) }, mi = function () { ki.autoExpand && !bt && (bt = setTimeout(_i.expandToContent, 200)) }, _i.expandToContent = function (t) { if (!_i.maximize()) { if (clearTimeout(bt), bt = !1, !gt) { var i = ki.resizeMinHeight || ki.height || M(e); gt = { min: i, max: ki.resizeMaxHeight || 2 * i } } var n = Mt.createRange(); n.selectNodeContents(C); var o = n.getBoundingClientRect(), a = T.documentElement.clientHeight - 1, s = o.bottom - o.top, r = _i.height() + 1 + (s - a); t || -1 === gt.max || (r = Math.min(r, gt.max)), _i.height(Math.ceil(Math.max(r, gt.min))) } }, _i.destroy = function () { if (Y) { Y.destroy(), G = null, R = null, Y = null, L && u(L), m(Mt, "click", Xt); var t = e.form; t && (m(t, "reset", Kt), m(t, "submit", _i.updateOriginal)), u(N), u(l), u(s), delete e ._sceditor, v(e), e.required = ht } }, _i.createDropDown = function (e, t, i, o) { var l, c = "sceditor-" + t; _i.closeDropDown(!0), L && S(L, c) || (o !== !1 && a(h(i, ":not(input):not(textarea)"), function (e, t) { t.nodeType === mt && _(t, "unselectable", "on") }), l = n({ top: e.offsetTop, left: e.offsetLeft, marginTop: e.clientHeight }, ki.dropDownCss), L = r("div", { className: "sceditor-dropdown " + c }), y(L, l), d(L, i), d(s, L), p(L, "click focusin", function (e) { e.stopPropagation() }), setTimeout(function () { if (L) { var e = h(L, "input,textarea")[0]; e && e.focus() } })) }, Xt = function (e) { 3 !== e.which && L && !e.defaultPrevented && (pi(), _i.closeDropDown()) }, Vt = function (e) { var t = jt || wt, i = C, n = e.clipboardData, o = function (e) { var t = new FileReader; t.onload = function (e) { qt({ html: '' }) }, t.readAsDataURL(e) }; if (n && !t) { var a = {}, s = n.types, r = n.items; e.preventDefault(); for (var l = 0; l < s.length; l++) { if (It.FileReader && r && Nt.test(r[l].type)) return o(n.items[l].getAsFile()); a[s[l]] = n.getData(s[l]) } a.text = a["text/plain"], a.html = a["text/html"], qt(a) } else if (!Ct) { var c = i.scrollTop; for (G.saveRange(), Ct = Mt.createDocumentFragment(); i.firstChild;) d(Ct, i.firstChild); setTimeout(function () { var e = i.innerHTML; i.innerHTML = "", d(i, Ct), i.scrollTop = c, Ct = !1, G.restoreRange(), qt({ html: e }) }, 0) } }, qt = function (e) { var t = r("div", {}, T); Y.call("pasteRaw", e), j(s, "pasteraw", e), e.html ? (t.innerHTML = e.html, V(t)) : t .innerHTML = X(e.text || ""); var n = { val: t.innerHTML }; "fragmentToSource" in i && (n.val = i.fragmentToSource(n.val, T, Q)), Y.call("paste", n), j(s, "paste", n), "fragmentToHtml" in i && (n.val = i.fragmentToHtml(n.val, Q)), Y.call( "pasteHtml", n), _i.wysiwygEditorInsertHtml(n.val, null, !0) }, _i.closeDropDown = function (e) { L && (u(L), L = null), e === !0 && _i.focus() }, _i.wysiwygEditorInsertHtml = function (e, t, i) { var n, o, a, s = M(f); _i.focus(), (i || !c(J, "code")) && (G.insertHTML(e, t), G.saveRange(), At(), n = h(C, "#sceditor-end-marker")[0], v(n), o = C.scrollTop, a = K(n) .top + 1.5 * n.offsetHeight - s, g(n), (a > o || o > a + s) && (C.scrollTop = a), ui(! 1), G.restoreRange(), ni()) }, _i.wysiwygEditorInsertText = function (e, t) { _i.wysiwygEditorInsertHtml(X(e), X(t)) }, _i.insertText = function (e, t) { return _i.inSourceMode() ? _i.sourceEditorInsertText(e, t) : _i.wysiwygEditorInsertText(e, t), _i }, _i.sourceEditorInsertText = function (e, t) { var i, n, o = N.selectionStart, a = N.selectionEnd; i = N.scrollTop, N.focus(), n = N.value, t && (e += n.substring(o, a) + t), N.value = n .substring(0, o) + e + n.substring(a, n.length), N.selectionStart = o + e.length - (t ? t .length : 0), N.selectionEnd = N.selectionStart, N.scrollTop = i, N.focus(), ui() }, _i.getRangeHelper = function () { return G }, _i.sourceEditorCaret = function (e) { return N.focus(), e ? (N.selectionStart = e.start, N.selectionEnd = e.end, this) : { start: N.selectionStart, end: N.selectionEnd } }, _i.val = function (e, t) { return ct(e) ? (_i.inSourceMode() ? _i.setSourceEditorValue(e) : (t !== !1 && "toHtml" in i && (e = i.toHtml(e)), _i.setWysiwygEditorValue(e)), _i) : _i.inSourceMode() ? _i .getSourceEditorValue(!1) : _i.getWysiwygEditorValue(t) }, _i.insert = function (e, t, n, o, a) { if (_i.inSourceMode()) return _i.sourceEditorInsertText(e, t), _i; if (t) { var s = G.selectedHtml(); n !== !1 && "fragmentToSource" in i && (s = i.fragmentToSource(s, T, Q)), e += s + t } return n !== !1 && "fragmentToHtml" in i && (e = i.fragmentToHtml(e, Q)), n !== !1 && a === ! 0 && (e = e.replace(/</g, "<") .replace(/>/g, ">") .replace(/&/g, "&")), _i.wysiwygEditorInsertHtml(e), _i }, _i.getWysiwygEditorValue = function (e) { for (var t, n = r("div", {}, T), o = C.childNodes, a = 0; a < o.length; a++) d(n, o[a] .cloneNode(!0)); return d(C, n), V(n), u(n), t = n.innerHTML, e !== !1 && i.hasOwnProperty("toSource") && (t = i.toSource(t, T)), t }, _i.getBody = function () { return C }, _i.getContentAreaContainer = function () { return f }, _i.getSourceEditorValue = function (e) { var t = N.value; return e !== !1 && "toHtml" in i && (t = i.toHtml(t)), t }, _i.setWysiwygEditorValue = function (e) { e || (e = "

    " + (jt ? "" : "
    ") + "

    "), C.innerHTML = e, At(), ni(), ui(), mi() }, _i.setSourceEditorValue = function (e) { N.value = e, ui() }, _i.updateOriginal = function () { e.value = _i.val() }, At = function () { ki.emoticonsEnabled && st(C, wi, ki.emoticonsCompat) }, _i.inSourceMode = function () { return S(s, "sourceMode") }, _i.sourceMode = function (e) { var t = _i.inSourceMode(); return "boolean" != typeof e ? t : ((t && !e || !t && e) && _i.toggleSourceMode(), _i) }, _i.toggleSourceMode = function () { var e = _i.inSourceMode(); (xt || !e) && (e || (G.saveRange(), G.clear()), _i.blur(), e ? _i.setWysiwygEditorValue(_i .getSourceEditorValue()) : _i.setSourceEditorValue(_i.getWysiwygEditorValue()), R = null, b(N), b(f), P(s, "wysiwygMode", e), P(s, "sourceMode", !e), ei(), ti()) }, ii = function () { return N.focus(), N.value.substring(N.selectionStart, N.selectionEnd) }, Et = function (e, t) { _i.inSourceMode() ? t.txtExec && (Array.isArray(t.txtExec) ? _i.sourceEditorInsertText.apply( _i, t.txtExec) : t.txtExec.call(_i, e, ii())) : t.exec && (dt(t.exec) ? t.exec.call( _i, e) : _i.execCommand(t.exec, t.hasOwnProperty("execParam") ? t.execParam : null)) }, Pt = function () { jt && (R = G.selectedRange()) }, _i.execCommand = function (e, t) { var i = !1, n = _i.commands[e]; if (_i.focus(), !c(G.parentNode(), "code")) { try { i = T.execCommand(e, !1, t) } catch (o) {}!i && n && n.errorMessage && alert(_i._(n.errorMessage)), ti() } }, oi = function () { function e() { if (x.getSelection() && x.getSelection() .rangeCount <= 0) et = null; else if (G && !G.compare(et)) { if (et = G.cloneSelected(), et && et.collapsed) { var e = et.startContainer, t = et.startOffset; for (t && e.nodeType !== _t && (e = e.childNodes[t]); e && e.parentNode !== C;) e = e.parentNode; e && H(e, !0) && (G.saveRange(), rt(C, T), G.restoreRange()) } j(s, "selectionchanged") } it = !1 } it || (it = !0, "onselectionchange" in T ? e() : setTimeout(e, 100)) }, ai = function () { var e, t = G.parentNode(); Q !== t && (e = Q, Q = t, J = G.getFirstBlockParent(t), j(s, "nodechanged", { oldNode: e, newNode: Q })) }, _i.currentNode = function () { return Q }, _i.currentBlockNode = function () { return J }, ti = function () { var e, t, i = "active", n = T, o = _i.sourceMode(); if (_i.readOnly()) return a(h(l, i), function (e, t) { E(t, i) }), void 0; o || (t = G.parentNode(), e = G.getFirstBlockParent(t)); for (var s = 0; s < vi.length; s++) { var r = 0, c = yi[vi[s].name], u = vi[s].state, d = o && !c._sceTxtMode || !o && !c._sceWysiwygMode; if (ct(u)) { if (!o) try { r = n.queryCommandEnabled(u) ? 0 : -1, r > -1 && (r = n.queryCommandState(u) ? 1 : 0) } catch (p) {} } else d || (r = u.call(_i, t, e)); P(c, "disabled", d || 0 > r), P(c, i, r > 0) } zt && zt.update && zt.update(o, t, e) }, Gt = function (e) { if (!e.defaultPrevented && (_i.closeDropDown(), 13 === e.which)) { var t = "li,ul,ol"; if (!k(J, t) && F(J)) { R = null; var i = r("br", {}, T); if (G.insertNode(i), !Dt) { var n = i.parentNode, o = n.lastChild; o && o.nodeType === _t && "" === o.nodeValue && (u(o), o = n.lastChild), !H(n, ! 0) && o === i && H(i.previousSibling) && G.insertHTML("
    ") } e.preventDefault() } } }, ni = function () { O(C, function (e) { if (e.nodeType === mt && !/inline/.test(y(e, "display")) && !k(e, ".sceditor-nlf") && F(e)) { var t = r("p", {}, T); return t.className = "sceditor-nlf", t.innerHTML = Dt ? "" : "
    ", d(C, t), !1 } return 3 === e.nodeType && !/^\s*$/.test(e.nodeValue) || k(e, "br") ? !1 : void 0 }) }, Kt = function () { _i.val(e.value) }, Yt = function () { _i.closeDropDown(), R = null }, _i._ = function () { var e, t = arguments; return U && U[t[0]] && (t[0] = U[t[0]]), t[0].replace(/\{(\d+)\}/g, function (i, n) { return t[n - 0 + 1] !== e ? t[n - 0 + 1] : "{" + n + "}" }) }, Jt = function (e) { Y && Y.call(e.type + "Event", e, _i); var t = (e.target === N ? "scesrc" : "scewys") + e.type; fi[t] && fi[t].forEach(function (t) { t.call(_i, e) }) }, _i.bind = function (e, t, i, n) { e = e.split(" "); for (var o = e.length; o--;) if (dt(t)) { var a = "scewys" + e[o], s = "scesrc" + e[o]; i || (fi[a] = fi[a] || [], fi[a].push(t)), n || (fi[s] = fi[s] || [], fi[s].push(t)), "valuechanged" === e[o] && (ui.hasHandler = !0) } return _i }, _i.unbind = function (e, t, i, n) { e = e.split(" "); for (var a = e.length; a--;) dt(t) && (i || o(fi["scewys" + e[a]] || [], t), n || o(fi[ "scesrc" + e[a]] || [], t)); return _i }, _i.blur = function (e, t, i) { return dt(e) ? _i.bind("blur", e, t, i) : _i.sourceMode() ? N.blur() : C.blur(), _i }, _i.focus = function (e, t, i) { if (dt(e)) _i.bind("focus", e, t, i); else if (_i.inSourceMode()) N.focus(); else { if (h(T, ":focus") .length) return; var n, o = G.selectedRange(); et || si(), !Dt && o && 1 === o.endOffset && o.collapsed && (n = o.endContainer, n && 1 === n.childNodes.length && k(n.firstChild, "br") && (o.setStartBefore(n .firstChild), o.collapse(!0), G.selectRange(o))), x.focus(), C.focus(), R && ( G.selectRange(R), R = null) } return ti(), _i }, _i.keyDown = function (e, t, i) { return _i.bind("keydown", e, t, i) }, _i.keyPress = function (e, t, i) { return _i.bind("keypress", e, t, i) }, _i.keyUp = function (e, t, i) { return _i.bind("keyup", e, t, i) }, _i.nodeChanged = function (e) { return _i.bind("nodechanged", e, !1, !0) }, _i.selectionChanged = function (e) { return _i.bind("selectionchanged", e, !1, !0) }, _i.valueChanged = function (e, t, i) { return _i.bind("valuechanged", e, t, i) }, ri = function (e) { var t, i = 0, n = _i.emoticonsCache, o = String.fromCharCode(e.which); c(J, "code") || (n || (n = [], a(wi, function (e, t) { n[i++] = [e, t] }), n.sort(function (e, t) { return e[0].length - t[0].length }), _i.emoticonsCache = n, _i.longestEmoticonCode = n[n.length - 1][0].length), t = G .replaceKeyword(_i.emoticonsCache, !0, !0, _i.longestEmoticonCode, ki.emoticonsCompat, o), t && (ki.emoticonsCompat && /^\s$/.test(o) || e.preventDefault())) }, li = function () { at(J, G) }, _i.emoticons = function (e) { if (!e && e !== !1) return ki.emoticonsEnabled; if (ki.emoticonsEnabled = e, e) p(C, "keypress", ri), _i.sourceMode() || (G.saveRange(), At(), ui(!1), G.restoreRange()); else { var t = h(C, "img[data-sceditor-emoticon]"); a(t, function (e, t) { var i = w(t, "sceditor-emoticon"), n = T.createTextNode(i); t.parentNode.replaceChild(n, t) }), m(C, "keypress", ri), ui() } return _i }, _i.css = function (e) { return pt || (pt = r("style", { id: "inline" }, T), d(T.head, pt)), ct(e) ? (pt.styleSheet ? pt.styleSheet.cssText = e : pt.innerHTML = e, _i) : pt.styleSheet ? pt.styleSheet.cssText : pt.innerHTML }, Ut = function (e) { var t = [], i = { "`": "~", 1: "!", 2: "@", 3: "#", 4: "$", 5: "%", 6: "^", 7: "&", 8: "*", 9: "(", 0: ")", "-": "_", "=": "+", ";": ": ", "'": '"', ",": "<", ".": ">", "/": "?", "\\": "|", "[": "{", "]": "}" }, n = { 8: "backspace", 9: "tab", 13: "enter", 19: "pause", 20: "capslock", 27: "esc", 32: "space", 33: "pageup", 34: "pagedown", 35: "end", 36: "home", 37: "left", 38: "up", 39: "right", 40: "down", 45: "insert", 46: "del", 91: "win", 92: "win", 93: "select", 96: "0", 97: "1", 98: "2", 99: "3", 100: "4", 101: "5", 102: "6", 103: "7", 104: "8", 105: "9", 106: "*", 107: "+", 109: "-", 110: ".", 111: "/", 112: "f1", 113: "f2", 114: "f3", 115: "f4", 116: "f5", 117: "f6", 118: "f7", 119: "f8", 120: "f9", 121: "f10", 122: "f11", 123: "f12", 144: "numlock", 145: "scrolllock", 186: ";", 187: "=", 188: ",", 189: "-", 190: ".", 191: "/", 192: "`", 219: "[", 220: "\\", 221: "]", 222: "'" }, o = { 109: "-", 110: "del", 111: "/", 96: "0", 97: "1", 98: "2", 99: "3", 100: "4", 101: "5", 102: "6", 103: "7", 104: "8", 105: "9" }, a = e.which, s = n[a] || String.fromCharCode(a) .toLowerCase(); (e.ctrlKey || e.metaKey) && t.push("ctrl"), e.altKey && t.push("alt"), e.shiftKey && (t.push( "shift"), o[a] ? s = o[a] : i[s] && (s = i[s])), s && (16 > a || a > 18) && t.push(s), t = t.join("+"), bi[t] && bi[t].call(_i) === !1 && (e.stopPropagation(), e .preventDefault()) }, _i.addShortcut = function (e, t) { return e = e.toLowerCase(), bi[e] = ct(t) ? function () { return Et(yi[t], _i.commands[t]), !1 } : t, _i }, _i.removeShortcut = function (e) { return delete bi[e.toLowerCase()], _i }, Zt = function (e) { var t, i, n, o; if (!ki.disableBlockRemove && 8 === e.which && (n = G.selectedRange()) && (t = n .startContainer, i = n.startOffset, 0 === i && (o = ci()) && !k(o, "body"))) { for (; t !== o;) { for (; t.previousSibling;) if (t = t.previousSibling, t.nodeType !== _t || t.nodeValue) return; if (!(t = t.parentNode)) return } _i.clearBlockFormatting(o), e.preventDefault() } }, ci = function () { for (var e = J; !F(e) || H(e, !0);) if (!(e = e.parentNode) || k(e, "body")) return; return e }, _i.clearBlockFormatting = function (e) { return e = e || ci(), !e || k(e, "body") ? _i : (G.saveRange(), e.className = "", R = null, _( e, "style", ""), k(e, "p,div,td") || $(e, "p"), G.restoreRange(), _i) }, ui = function (e) { if (Y && (Y.hasHandler("valuechangedEvent") || ui.hasHandler)) { var t, i = _i.sourceMode(), n = !i && G.hasSelection(); W = !1, e = e !== !1 && !T.getElementById("sceditor-start-marker"), q && (clearTimeout(q), q = !1), n && e && G.saveRange(), t = i ? N.value : C.innerHTML, t !== ui .lastVal && (ui.lastVal = t, j(s, "valuechanged", { rawValue: i ? _i.val() : t })), n && e && G.removeMarkers() } }, di = function () { q && ui() }, hi = function (e) { var t = e.which, i = hi.lastChar, n = 13 === i || 32 === i, o = 8 === i || 46 === i; hi.lastChar = t, W || (13 === t || 32 === t ? n ? hi.triggerNext = !0 : ui() : 8 === t || 46 === t ? o ? hi.triggerNext = !0 : ui() : hi.triggerNext && (ui(), hi .triggerNext = !1), clearTimeout(q), q = setTimeout(function () { W || ui() }, 1500)) }, Qt = function (e) { W = /start/i.test(e.type), W || ui() }, pi = function () { _i.updateOriginal() }, Tt() } e = e && e.hasOwnProperty("default") ? e["default"] : e; var ct = t.bind(null, "string"), ut = t.bind(null, "undefined"), dt = t.bind(null, "function"), ht = t.bind(null, "number"), pt = {}, mt = 1, _t = 3, ft = !0, gt = "|body|hr|p|div|h1|h2|h3|h4|h5|h6|address|pre|form|table|tbody|thead|tfoot|th|tr|td|li|ol|ul|blockquote|center|", vt = { toolbar: "bold,italic,underline,strike,subscript,superscript|left,center,right,justify|font,size,color,removeformat|cut,copy,pastetext|bulletlist,orderedlist,indent,outdent|table|code,quote|horizontalrule,image,email,link,unlink|emoticon,youtube,date,time|ltr,rtl|print,maximize,source", toolbarExclude: null, style: "jquery.sceditor.default.css", fonts: "Arial,Arial Black,Comic Sans MS,Courier New,Georgia,Impact,Sans-serif,Serif,Times New Roman,Trebuchet MS,Verdana", colors: "#000000,#44B8FF,#1E92F7,#0074D9,#005DC2,#00369B,#b3d5f4|#444444,#C3FFFF,#9DF9FF,#7FDBFF,#68C4E8,#419DC1,#d9f4ff|#666666,#72FF84,#4CEA5E,#2ECC40,#17B529,#008E02,#c0f0c6|#888888,#FFFF44,#FFFA1E,#FFDC00,#E8C500,#C19E00,#fff5b3|#aaaaaa,#FFC95F,#FFA339,#FF851B,#E86E04,#C14700,#ffdbbb|#cccccc,#FF857A,#FF5F54,#FF4136,#E82A1F,#C10300,#ffc6c3|#eeeeee,#FF56FF,#FF30DC,#F012BE,#D900A7,#B20080,#fbb8ec|#ffffff,#F551FF,#CF2BE7,#B10DC9,#9A00B2,#9A00B2,#e8b6ef", locale: _(document.documentElement, "lang") || "en", charset: "utf-8", emoticonsCompat: !1, emoticonsEnabled: !0, emoticonsRoot: "", emoticons: { dropdown: { ":)": "emoticons/smile.png", ":angel:": "emoticons/angel.png", ":angry:": "emoticons/angry.png", "8-)": "emoticons/cool.png", ":'(": "emoticons/cwy.png", ":ermm:": "emoticons/ermm.png", ":D": "emoticons/grin.png", "<3": "emoticons/heart.png", ":(": "emoticons/sad.png", ":O": "emoticons/shocked.png", ":P": "emoticons/tongue.png", ";)": "emoticons/wink.png" }, more: { ":alien:": "emoticons/alien.png", ":blink:": "emoticons/blink.png", ":blush:": "emoticons/blush.png", ":cheerful:": "emoticons/cheerful.png", ":devil:": "emoticons/devil.png", ":dizzy:": "emoticons/dizzy.png", ":getlost:": "emoticons/getlost.png", ":happy:": "emoticons/happy.png", ":kissing:": "emoticons/kissing.png", ":ninja:": "emoticons/ninja.png", ":pinch:": "emoticons/pinch.png", ":pouty:": "emoticons/pouty.png", ":sick:": "emoticons/sick.png", ":sideways:": "emoticons/sideways.png", ":silly:": "emoticons/silly.png", ":sleeping:": "emoticons/sleeping.png", ":unsure:": "emoticons/unsure.png", ":woot:": "emoticons/w00t.png", ":wassat:": "emoticons/wassat.png" }, hidden: { ":whistling:": "emoticons/whistling.png", ":love:": "emoticons/wub.png" } }, width: null, height: null, resizeEnabled: !0, resizeMinWidth: null, resizeMinHeight: null, resizeMaxHeight: null, resizeMaxWidth: null, resizeHeight: !0, resizeWidth: !0, dateFormat: "year-month-day", toolbarContainer: null, enablePasteFiltering: !1, disablePasting: !1, readOnly: !1, rtl: !1, autofocus: !1, autofocusEnd: !0, autoExpand: !1, autoUpdate: !1, spellcheck: !0, runWithoutWysiwygSupport: !1, startInSourceMode: !1, id: null, plugins: "", zIndex: null, bbcodeTrim: !1, disableBlockRemove: !1, parserOptions: {}, dropDownCss: {} }, bt = navigator.userAgent, yt = function () { var e, t = 3, i = document, n = i.createElement("div"), o = n.getElementsByTagName("i"); do n.innerHTML = ""; while (o[0]); return i.documentMode && i.all && window.atob && (t = 10), 4 === t && i.documentMode && (t = 11), t > 4 ? t : e }(), wt = "-ms-ime-align" in document.documentElement.style, kt = /iPhone|iPod|iPad| wosbrowser\//i.test(bt), xt = function () { var e, t, i = document.createElement("div"); return i.contentEditable = !0, "contentEditable" in document.documentElement && "true" === i .contentEditable ? (t = /Opera Mobi|Opera Mini/i.test(bt), /Android/i.test(bt) && (t = !1), / Silk\//i.test(bt) && (e = /AppleWebKit\/(\d+)/.exec(bt), t = e && e[1] ? e[1] < 534 : ! 0), kt && (t = /OS [0-4](_\d)+ like Mac/i.test(bt)), /Firefox/i.test(bt) && (t = !1), /OneBrowser/i.test(bt) && (t = !1), "UCWEB" === navigator.vendor && (t = !1), 9 >= yt && ( t = !0), !t) : !1 }(), Ct = /^(https?|s?ftp|mailto|spotify|skype|ssh|teamspeak|tel):|(\/\/)|data:image\/(png|bmp|gif|p?jpe?g);/i, zt = { html: '

    ', toolbarButton: '
    {dispName}
    ', emoticon: '{key}', fontOpt: '{font}', sizeOpt: '{size}', pastetext: '
    ', table: '
    ', image: '
    ', email: '
    ', link: '
    ', youtubeMenu: '
    ', youtube: '' }, Tt = yt && 11 > yt, St = { bold: { exec: "bold", tooltip: "Bold", shortcut: "Ctrl+B" }, italic: { exec: "italic", tooltip: "Italic", shortcut: "Ctrl+I" }, underline: { exec: "underline", tooltip: "Underline", shortcut: "Ctrl+U" }, strike: { exec: "strikethrough", tooltip: "Strikethrough" }, subscript: { exec: "subscript", tooltip: "Subscript" }, superscript: { exec: "superscript", tooltip: "Superscript" }, left: { state: function (e) { if (e && 3 === e.nodeType && (e = e.parentNode), e) { var t = "ltr" === y(e, "direction"), i = y(e, "textAlign"); return "left" === i || i === (t ? "start" : "end") } }, exec: "justifyleft", tooltip: "Align left" }, center: { exec: "justifycenter", tooltip: "Center" }, right: { state: function (e) { if (e && 3 === e.nodeType && (e = e.parentNode), e) { var t = "ltr" === y(e, "direction"), i = y(e, "textAlign"); return "right" === i || i === (t ? "end" : "start") } }, exec: "justifyright", tooltip: "Align right" }, justify: { exec: "justifyfull", tooltip: "Justify" }, font: { _dropDown: function (e, t, i) { var n = r("div"); p(n, "click", "a", function (t) { i(w(this, "font")), e.closeDropDown(!0), t.preventDefault() }), e.opts.fonts.split(",") .forEach(function (e) { d(n, tt("fontOpt", { font: e }, !0)) }), e.createDropDown(t, "font-picker", n) }, exec: function (e) { var t = this; St.font._dropDown(t, e, function (e) { t.execCommand("fontname", e) }) }, tooltip: "Font Name" }, size: { _dropDown: function (e, t, i) { var n = r("div"); p(n, "click", "a", function (t) { i(w(this, "size")), e.closeDropDown(!0), t.preventDefault() }); for (var o = 1; 7 >= o; o++) d(n, tt("sizeOpt", { size: o }, !0)); e.createDropDown(t, "fontsize-picker", n) }, exec: function (e) { var t = this; St.size._dropDown(t, e, function (e) { t.execCommand("fontsize", e) }) }, tooltip: "Font Size" }, color: { _dropDown: function (e, t, i) { var n = r("div"), o = "", a = St.color; a._htmlCache || (e.opts.colors.split("|") .forEach(function (e) { o += '
    ', e.split(",") .forEach(function (e) { o += '' }), o += "
    " }), a._htmlCache = o), d(n, R(a._htmlCache)), p(n, "click", "a", function ( t) { i(w(this, "color")), e.closeDropDown(!0), t.preventDefault() }), e.createDropDown(t, "color-picker", n) }, exec: function (e) { var t = this; St.color._dropDown(t, e, function (e) { t.execCommand("forecolor", e) }) }, tooltip: "Font Color" }, removeformat: { exec: "removeformat", tooltip: "Remove Formatting" }, cut: { exec: "cut", tooltip: "Cut", errorMessage: "Your browser does not allow the cut command. Please use the keyboard shortcut Ctrl/Cmd-X" }, copy: { exec: "copy", tooltip: "Copy", errorMessage: "Your browser does not allow the copy command. Please use the keyboard shortcut Ctrl/Cmd-C" }, paste: { exec: "paste", tooltip: "Paste", errorMessage: "Your browser does not allow the paste command. Please use the keyboard shortcut Ctrl/Cmd-V" }, pastetext: { exec: function (e) { var t, i = r("div"), n = this; d(i, tt("pastetext", { label: n._("Paste your text inside the following box:"), insert: n._("Insert") }, !0)), p(i, "click", ".button", function (e) { t = h(i, "#txt")[0].value, t && n.wysiwygEditorInsertText(t), n .closeDropDown(!0), e.preventDefault() }), n.createDropDown(e, "pastetext", i) }, tooltip: "Paste Text" }, bulletlist: { exec: function () { it(this), this.execCommand("insertunorderedlist") }, tooltip: "Bullet list" }, orderedlist: { exec: function () { it(this), this.execCommand("insertorderedlist") }, tooltip: "Numbered list" }, indent: { state: function (e, t) { var i, n, o; return k(t, "li") ? 0 : k(t, "ul,ol,menu") && (i = this.getRangeHelper() .selectedRange(), n = i.startContainer.parentNode, o = i.endContainer .parentNode, n !== n.parentNode.firstElementChild || k(o, "li") && o !== o .parentNode.lastElementChild) ? 0 : -1 }, exec: function () { var e = this, t = e.getRangeHelper() .getFirstBlockParent(); e.focus(), c(t, "ul,ol,menu") && e.execCommand("indent") }, tooltip: "Add indent" }, outdent: { state: function (e, t) { return c(t, "ul,ol,menu") ? 0 : -1 }, exec: function () { var e = this.getRangeHelper() .getFirstBlockParent(); c(e, "ul,ol,menu") && this.execCommand("outdent") }, tooltip: "Remove one indent" }, table: { exec: function (e) { var t = this, i = r("div"); d(i, tt("table", { rows: t._("Rows:"), cols: t._("Cols:"), insert: t._("Insert") }, !0)), p(i, "click", ".button", function (e) { var n = Number(h(i, "#rows")[0].value), o = Number(h(i, "#cols")[0].value), a = ""; n > 0 && o > 0 && (a += Array(n + 1) .join("" + Array(o + 1) .join("") + ""), a += "
    " + (Tt ? "" : "
    ") + "
    ", t.wysiwygEditorInsertHtml(a), t.closeDropDown(! 0), e.preventDefault()) }), t.createDropDown(e, "inserttable", i) }, tooltip: "Insert a table" }, horizontalrule: { exec: "inserthorizontalrule", tooltip: "Insert a horizontal rule" }, code: { exec: function () { this.wysiwygEditorInsertHtml("", (Tt ? "" : "
    ") + "
    ") }, tooltip: "Code" }, image: { _dropDown: function (e, t, i, n) { var o = r("div"); d(o, tt("image", { url: e._("URL:"), width: e._("Width (optional):"), height: e._("Height (optional):"), insert: e._("Insert") }, !0)); var a = h(o, "#image")[0]; a.value = i, p(o, "click", ".button", function (t) { a.value && n(a.value, h(o, "#width")[0].value, h(o, "#height")[0].value), e.closeDropDown(!0), t.preventDefault() }), e.createDropDown(t, "insertimage", o) }, exec: function (e) { var t = this; St.image._dropDown(t, e, "", function (e, i, n) { var o = ""; i && (o += ' width="' + i + '"'), n && (o += ' height="' + n + '"'), t .wysiwygEditorInsertHtml("') }) }, tooltip: "Insert an image" }, email: { _dropDown: function (e, t, i) { var n = r("div"); d(n, tt("email", { label: e._("E-mail:"), desc: e._("Description (optional):"), insert: e._("Insert") }, !0)), p(n, "click", ".button", function (t) { var o = h(n, "#email")[0].value; o && i(o, h(n, "#des")[0].value), e.closeDropDown(!0), t.preventDefault() }), e.createDropDown(t, "insertemail", n) }, exec: function (e) { var t = this; St.email._dropDown(t, e, function (e, i) { t.focus(), !t.getRangeHelper() .selectedHtml() || i ? t.wysiwygEditorInsertHtml('' + (i || e) + "") : t.execCommand("createlink", "mailto:" + e) }) }, tooltip: "Insert an email" }, link: { _dropDown: function (e, t, i) { function n(t) { a.value && i(a.value, h(o, "#des")[0].value), e.closeDropDown(!0), t .preventDefault() } var o = r("div"); d(o, tt("link", { url: e._("URL:"), desc: e._("Description (optional):"), ins: e._("Insert") }, !0)); var a = h(o, "#link")[0]; p(o, "click", ".button", n), p(o, "keypress", function (e) { 13 === e.which && a.value && n(e) }, ft), e.createDropDown(t, "insertlink", o) }, exec: function (e) { var t = this; St.link._dropDown(t, e, function (e, i) { t.focus(), i || !t.getRangeHelper() .selectedHtml() ? (i = i || e, t.wysiwygEditorInsertHtml('' + i + "")) : t.execCommand("createlink", e) }) }, tooltip: "Insert a link" }, unlink: { state: function () { return c(this.currentNode(), "a") ? 0 : -1 }, exec: function () { var e = c(this.currentNode(), "a"); if (e) { for (; e.firstChild;) z(e.firstChild, e); u(e) } }, tooltip: "Unlink" }, quote: { exec: function (e, t, i) { var n = "
    ", o = "
    "; t ? (i = i ? "" + i + "" : "", n = n + i + t + o, o = null) : "" === this .getRangeHelper() .selectedHtml() && (o = (Tt ? "" : "
    ") + o), this.wysiwygEditorInsertHtml(n, o) }, tooltip: "Insert a Quote" }, emoticon: { exec: function (e) { var t = this, i = function (o) { var s, l = t.opts, c = l.emoticonsRoot || "", u = l.emoticonsCompat, h = t.getRangeHelper(), m = u && " " !== h.getOuterText(!0, 1) ? " " : "", f = u && " " !== h.getOuterText(!1, 1) ? " " : "", g = r("div"), v = r("div"), b = 0, y = n({}, l.emoticons.dropdown, o ? l.emoticons.more : {}); return d(g, v), b = Math.sqrt(Object.keys(y) .length), p(g, "click", "img", function (e) { t.insert(m + _(this, "alt") + f, null, !1) .closeDropDown(!0), e.preventDefault() }), a(y, function (e, t) { d(v, r("img", { src: c + (t.url || t), alt: e, title: t.tooltip || e })), v.children.length >= b && (v = r("div"), d(g, v)) }), !o && l.emoticons.more && (s = r("a", { className: "sceditor-more" }), d(s, document.createTextNode(t._("More"))), p(s, "click", function (n) { t.createDropDown(e, "more-emoticons", i(!0)), n .preventDefault() }), d(g, s)), g }; t.createDropDown(e, "emoticons", i(!1)) }, txtExec: function (e) { St.emoticon.exec.call(this, e) }, tooltip: "Insert an emoticon" }, youtube: { _dropDown: function (e, t, i) { var n = r("div"); d(n, tt("youtubeMenu", { label: e._("Video URL:"), insert: e._("Insert") }, !0)), p(n, "click", ".button", function (t) { var o = h(n, "#link")[0].value, s = o.match(/(?:v=|v\/|embed\/|youtu.be\/)(.{11})/), r = o.match(/[&|?](?:star)?t=((\d+[hms]?){1,3})/), l = 0; r && a(r[1].split(/[hms]/), function (e, t) { "" !== t && (l = 60 * l + Number(t)) }), s && /^[a-zA-Z0-9_\-]{11}$/.test(s[1]) && i(s[1], l), e .closeDropDown(!0), t.preventDefault() }), e.createDropDown(t, "insertlink", n) }, exec: function (e) { var t = this; St.youtube._dropDown(t, e, function (e, i) { t.wysiwygEditorInsertHtml(tt("youtube", { id: e, time: i })) }) }, tooltip: "Insert a YouTube video" }, date: { _date: function (e) { var t = new Date, i = t.getYear(), n = t.getMonth() + 1, o = t.getDate(); return 2e3 > i && (i = 1900 + i), 10 > n && (n = "0" + n), 10 > o && (o = "0" + o), e .opts.dateFormat.replace(/year/i, i) .replace(/month/i, n) .replace(/day/i, o) }, exec: function () { this.insertText(St.date._date(this)) }, txtExec: function () { this.insertText(St.date._date(this)) }, tooltip: "Insert current date" }, time: { _time: function () { var e = new Date, t = e.getHours(), i = e.getMinutes(), n = e.getSeconds(); return 10 > t && (t = "0" + t), 10 > i && (i = "0" + i), 10 > n && (n = "0" + n), t + ":" + i + ":" + n }, exec: function () { this.insertText(St.time._time()) }, txtExec: function () { this.insertText(St.time._time()) }, tooltip: "Insert current time" }, ltr: { state: function (e, t) { return t && "ltr" === t.style.direction }, exec: function () { var e = this, t = e.getRangeHelper(), i = t.getFirstBlockParent(); if (e.focus(), i && !k(i, "body") || (e.execCommand("formatBlock", "p"), i = t .getFirstBlockParent(), i && !k(i, "body"))) { var n = "ltr" === y(i, "direction") ? "" : "ltr"; y(i, "direction", n) } }, tooltip: "Left-to-Right" }, rtl: { state: function (e, t) { return t && "rtl" === t.style.direction }, exec: function () { var e = this, t = e.getRangeHelper(), i = t.getFirstBlockParent(); if (e.focus(), i && !k(i, "body") || (e.execCommand("formatBlock", "p"), i = t .getFirstBlockParent(), i && !k(i, "body"))) { var n = "rtl" === y(i, "direction") ? "" : "rtl"; y(i, "direction", n) } }, tooltip: "Right-to-Left" }, print: { exec: "print", tooltip: "Print" }, maximize: { state: function () { return this.maximize() }, exec: function () { this.maximize(!this.maximize()) }, txtExec: function () { this.maximize(!this.maximize()) }, tooltip: "Maximize", shortcut: "Ctrl+Shift+M" }, source: { state: function () { return this.sourceMode() }, exec: function () { this.toggleSourceMode() }, txtExec: function () { this.toggleSourceMode() }, tooltip: "View source", shortcut: "Ctrl+Shift+S" }, ignore: {} }, At = {}; nt.plugins = At; var Et = yt && 11 > yt, Pt = function (e, t, i) { var n, o, a, s, r, l = "", c = e.startContainer, u = e.startOffset; for (c && 3 !== c.nodeType && (c = c.childNodes[u], u = 0), a = s = u; i > l.length && c && 3 === c.nodeType;) n = c.nodeValue, o = i - l.length, r && (s = n.length, a = 0), r = c, t ? (a = Math.max(s - o, 0), u = a, l = n.substr(a, s - a) + l, c = r.previousSibling) : (s = Math .min(o, n.length), u = a + s, l += n.substr(a, s), c = r.nextSibling); return { node: r || c, offset: u, text: l } }, It = window, Mt = document, jt = yt, Dt = jt && 11 > jt, Nt = /^image\/(p?jpe?g|gif|png|bmp)$/i; lt.locale = {}, lt.formats = {}, lt.icons = {}, lt.command = { get: function (e) { return St[e] || null }, set: function (e, t) { return e && t ? (t = n(St[e] || {}, t), t.remove = function () { lt.command.remove(e) }, St[e] = t, this) : !1 }, remove: function (e) { return St[e] && delete St[e], this } }, /** * SCEditor * http://www.sceditor.com/ * * Copyright (C) 2017, Sam Clarke (samclarke.com) * * SCEditor is licensed under the MIT license: * http://www.opensource.org/licenses/mit-license.php * * @fileoverview SCEditor - A lightweight WYSIWYG BBCode and HTML editor * @author Sam Clarke */ window.sceditor = { command: lt.command, commands: St, defaultOptions: vt, ie: yt, ios: kt, isWysiwygSupported: xt, regexEscape: J, escapeEntities: X, escapeUriScheme: et, dom: { css: y, attr: _, removeAttr: f, is: k, closest: c, width: I, height: M, traverse: L, rTraverse: O, parseHTML: R, hasStyling: F, convertElement: $, blockLevelList: gt, canHaveChildren: B, isInline: H, copyCSS: W, fixNesting: V, findCommonAncestor: q, getSibling: U, removeWhiteSpace: Z, extractContents: G, getOffset: K, getStyle: Y, hasStyle: Q }, locale: lt.locale, icons: lt.icons, utils: { each: a, isEmptyObject: i, extend: n }, plugins: nt.plugins, formats: lt.formats, create: function (e, t) { t = t || {}, l(e, ".sceditor-container") || (t.runWithoutWysiwygSupport || xt) && new lt( e, t) }, instance: function (e) { return e._sceditor } }, /** * SCEditor * http://www.sceditor.com/ * * Copyright (C) 2017, Sam Clarke (samclarke.com) * * SCEditor is licensed under the MIT license: * http://www.opensource.org/licenses/mit-license.php * * @fileoverview SCEditor - A lightweight WYSIWYG BBCode and HTML editor * @author Sam Clarke * @requires jQuery */ e.sceditor = window.sceditor, e.fn.sceditor = function (t) { var i, n = []; return this.each(function () { i = this._sceditor, "state" === t ? n.push(!!i) : "instance" === t ? n.push(i) : i || e.sceditor.create(this, t) }), n.length ? 1 === n.length ? n[0] : n : this } }(jQuery), /** * SCEditor BBCode Plugin * http://www.sceditor.com/ * * Copyright (C) 2011-2017, Sam Clarke (samclarke.com) * * SCEditor is licensed under the MIT license: * http://www.opensource.org/licenses/mit-license.php * * @fileoverview SCEditor BBCode Format * @author Sam Clarke */ function (e) { "use strict"; function t(e, t) { return e.replace(/\{([^}]+)\}/g, function (e, i) { var n, o = !0; return "!" === i.charAt(0) && (o = !1, i = i.substring(1)), "0" === i && (o = !1), t[ i] === n ? e : o ? d(t[i], !0) : t[i] }) } function i(e) { var t, i, n, o = document.createElement("div"); return n = function (e, t) { if (!p.hasStyling(e)) { if (w || 1 !== e.childNodes.length || !g(e.firstChild, "br")) for (; i = e.firstChild;) o.insertBefore(i, e); if (t) { var n = o.lastChild; e !== n && g(n, "div") && e.nextSibling === n && o.insertBefore(document .createElement("br"), e) } o.removeChild(e) } }, _(o, "display", "none"), o.innerHTML = e.replace(/<\/div>\n/g, "
    "), (t = o.firstChild) && g(t, "div") && n(t, !0), (t = o.lastChild) && g(t, "div") && n(t), o.innerHTML } function n(e) { return "function" == typeof e } function o(e) { return e ? e.replace(/\\(.)/g, "$1") .replace(/^(["'])(.*?)\1$/, "$2") : e } function a(e) { var t, i = arguments; return e.replace(/\{(\d+)\}/g, function (e, n) { return i[n - 0 + 1] !== t ? i[n - 0 + 1] : "{" + n + "}" }) } function s(e, t, i, n, o, a) { var s = this; s.type = e, s.name = t, s.val = i, s.attrs = n || {}, s.children = o || [], s.closing = a || null } function r(e) { function i(e, t) { var i, n, o, r = /\[([^\]\s=]+)(?:([^\]]+))?\]/, l = /\[\/([^\[\]]+)\]/; return e === S && (i = t.match(r)) && (o = y(i[1]), i[2] && (i[2] = i[2].trim()) && (n = a(i[ 2]))), e === P && (i = t.match(l)) && (o = y(i[1])), e === E && (o = "#newline"), o && (e !== S && e !== P || T[o]) || (e = A, o = "#"), new s(e, o, t, n) } function a(e) { var t, i = /([^\s=]+)=(?:(?:(["'])((?:\\\2|[^\2])*?)\2)|((?:.(?!\s\S+=))*.))/g, n = {}; if ("=" === e.charAt(0) && e.indexOf("=", 1) < 0) n.defaultattr = o(e.substr(1)); else for ("=" === e.charAt(0) && (e = "defaultattr" + e); t = i.exec(e);) n[y(t[1])] = o(t[3]) || t[4]; return n } function l(e, t, i) { for (var n = i.length; n--;) if (i[n].type === t && i[n].name === e) return !0; return !1 } function c(e, t) { var i = e ? T[e.name] : {}, n = i.allowedChildren; return k.opts.fixInvalidChildren && n ? n.indexOf(t.name || "#") > -1 : !0 } function u(e) { for (var t, i, n, o, a, s, r = [], u = [], d = [], h = function () { return b(d) }, p = function (e) { h() ? h() .children.push(e) : u.push(e) }, m = function (e) { return h() && (i = T[h() .name]) && i.closedBy && i.closedBy.indexOf(e) > -1 }; t = e.shift();) switch (s = e[0], c(h(), t) || t.type === P && h() && t.name === h() .name || (t.name = "#", t.type = A), t.type) { case S: m(t.name) && d.pop(), p(t), i = T[t.name], i && !i.isSelfClosing && (i.closedBy || l(t .name, P, e)) ? d.push(t) : i && i.isSelfClosing || (t.type = A); break; case P: if (h() && t.name !== h() .name && m("/" + t.name) && d.pop(), h() && t.name === h() .name) h() .closing = t, d.pop(); else if (l(t.name, S, d)) { for (; n = d.pop();) { if (n.name === t.name) { n.closing = t; break } o = n.clone(), r.length && o.children.push(b(r)), r.push(o) } for (s && s.type === E && (i = T[t.name], i && i.isInline === !1 && (p(s), e .shift())), p(b(r)), a = r.length; a--;) d.push(r[a]); r.length = 0 } else t.type = A, p(t); break; case E: h() && s && m((s.type === P ? "/" : "") + s.name) && (s.type !== P || s.name !== h() .name) && (i = T[h() .name], i && i.breakAfter ? d.pop() : i && i.isInline === !1 && k.opts .breakAfterBlock && i.breakAfter !== !1 && d.pop()), p(t); break; default: p(t) } return u } function h(e, t, i) { var n, o, a, s, r, l, c, u, d = e.length; t && (s = T[t.name]); for (var p = d; p--;) if (n = e[p]) if (n.type === E) { if (o = p > 0 ? e[p - 1] : null, a = d - 1 > p ? e[p + 1] : null, u = !1, !i && s && s .isSelfClosing !== !0 && (o ? l || a || (s.isInline === !1 && k.opts .breakEndBlock && s.breakEnd !== !1 && (u = !0), s.breakEnd && (u = !0), l = u) : (s.isInline === !1 && k.opts.breakStartBlock && s.breakStart !== !1 && (u = !0), s.breakStart && (u = !0))), o && o.type === S && (r = T[o .name]) && (i ? r.isInline === !1 && (u = !0) : (r.isInline === !1 && k.opts .breakAfterBlock && r.breakAfter !== !1 && (u = !0), r.breakAfter && ( u = !0))), !i && !c && a && a.type === S && (r = T[a.name]) && (r .isInline === !1 && k.opts.breakBeforeBlock && r.breakBefore !== !1 && (u = ! 0), r.breakBefore && (u = !0), c = u, u)) { e.splice(p, 1); continue } u && e.splice(p, 1), c = !1 } else n.type === S && h(n.children, n, i) } function p(e, t, i, n) { var o, a, s, r, l, u, d = function (e) { var t = T[e.name]; return !t || t.isInline !== !1 }; for (t = t || [], n = n || e, a = 0; a < e.length; a++) if ((o = e[a]) && o.type === S) { if (i && !d(o)) { if (s = b(t), u = s.splitAt(o), l = t.length > 1 ? t[t.length - 2].children : n, c(o, s)) { var h = s.clone(); h.children = o.children, o.children = [h] } if (r = l.indexOf(s), r > -1) { u.children.splice(0, 1), l.splice(r + 1, 0, o, u); var m = u.children[0]; return m && m.type === E && (d(o) || (u.children.splice(0, 1), l.splice(r + 2, 0, m))), void 0 } } t.push(o), p(o.children, t, i || d(o), n), t.pop() } } function m(e) { for (var t, i, n = function (e) { for (var t = e.length; t--;) { var i = e[t].type; if (i === S || i === P) return !1; if (i === A && /\S|\u00A0/.test(e[t].val)) return !1 } return !0 }, o = e.length; o--;)(t = e[o]) && t.type === S && (i = T[t.name], m(t.children), n(t .children) && i && !i.isSelfClosing && !i.allowsEmpty && e.splice.apply(e, [o, 1] .concat(t.children))) } function _(e, i) { var o, a, s, r, l, c, u, h, p, m = []; for (h = function (e) { return (!e || (e.isHtmlInline !== o ? e.isHtmlInline : e.isInline)) !== !1 }; e.length > 0;) if (a = e.shift()) { if (a.type === S) p = a.children[a.children.length - 1] || {}, s = T[a.name], c = i && h( s), r = _(a.children, !1), s && s.html ? (h(s) || !h(T[p.name]) || s .isPreFormatted || s.skipLastLineBreak || w || (r += "
    "), n(s.html) ? l = s .html.call(k, a, a.attrs, r) : (a.attrs["0"] = r, l = t(s.html, a.attrs))) : l = a .val + r + (a.closing ? a.closing.val : ""); else { if (a.type === E) { if (!i) { m.push("
    "); continue } u || m.push("
    "), w || m.push("
    "), e.length || m.push("
    "), m.push( "
    \n"), u = !1; continue } c = i, l = d(a.val, !0) } c && !u ? (m.push("
    "), u = !0) : !c && u && (m.push("
    \n"), u = !1), m.push(l) } return u && m.push("
    \n"), m.join("") } function f(e) { for (var t, i, n, o, a, s, r, l, c, u, d = []; e.length > 0;) if (t = e.shift()) if (n = T[t.name], o = !(!n || n.isInline !== !1), a = n && n.isSelfClosing, r = o && k .opts.breakBeforeBlock && n.breakBefore !== !1 || n && n.breakBefore, l = o && !a && k .opts.breakStartBlock && n.breakStart !== !1 || n && n.breakStart, c = o && k.opts .breakEndBlock && n.breakEnd !== !1 || n && n.breakEnd, u = o && k.opts .breakAfterBlock && n.breakAfter !== !1 || n && n.breakAfter, s = (n ? n.quoteType : null) || k.opts.quoteType || C.auto, n || t.type !== S) if (t.type === S) { if (r && d.push("\n"), d.push("[" + t.name), t.attrs) { t.attrs.defaultattr && (d.push("=", g(t.attrs.defaultattr, s, "defaultattr")), delete t.attrs.defaultattr); for (i in t.attrs) t.attrs.hasOwnProperty(i) && d.push(" ", i, "=", g(t.attrs[ i], s, i)) } d.push("]"), l && d.push("\n"), t.children && d.push(f(t.children)), a || n .excludeClosing || (c && d.push("\n"), d.push("[/" + t.name + "]")), u && d .push("\n"), t.closing && a && d.push(t.closing.val) } else d.push(t.val); else d.push(t.val), t.children && d.push(f(t.children)), t.closing && d.push(t.closing.val); return d.join("") } function g(e, t, i) { var o = /\s|=/.test(e); return n(t) ? t(e, i) : t === C.never || t === C.auto && !o ? e : '"' + e.replace("\\", "\\\\") .replace('"', '\\"') + '"' } function b(e) { return e.length ? e[e.length - 1] : null } function y(e) { return e.toLowerCase() } var k = this; k.opts = v({}, r.defaults, e), k.tokenize = function (e) { var t, n, o, a = [], s = [{ type: A, regex: /^([^\[\r\n]+|\[)/ }, { type: E, regex: /^(\r\n|\r|\n)/ }, { type: S, regex: /^\[[^\[\]]+\]/ }, { type: P, regex: /^\[\/[^\[\]]+\]/ }]; e: for (; e.length;) { for (o = s.length; o--;) if (n = s[o].type, (t = e.match(s[o].regex)) && t[0]) { a.push(i(n, t[0])), e = e.substr(t[0].length); continue e } e.length && a.push(i(A, e)), e = "" } return a }, k.parse = function (e, t) { var i = u(k.tokenize(e)), n = k.opts; return n.fixInvalidNesting && p(i), h(i, null, t), n.removeEmptyTags && m(i), i }, k.toHTML = function (e, t) { return _(k.parse(e, t), !0) }, k.toBBCode = function (e, t) { return f(k.parse(e, t)) } } function l(e) { return e = parseInt(e, 10), isNaN(e) ? "00" : (e = Math.max(0, Math.min(e, 255)) .toString(16), e.length < 2 ? "0" + e : e) } function c(e) { var t; return e = e || "#000", (t = e.match(/rgb\((\d{1,3}),\s*?(\d{1,3}),\s*?(\d{1,3})\)/i)) ? "#" + l(t[ 1]) + l(t[2]) + l(t[3]) : (t = e.match(/#([0-f])([0-f])([0-f])\s*?$/i)) ? "#" + t[1] + t[1] + t[ 2] + t[2] + t[3] + t[3] : e } function u() { function e() { b(T, function (e) { var t, i = T[e].tags, n = T[e].styles; i && b(i, function (i, n) { t = T[e].isInline === !1, m[i] = m[i] || {}, m[i][t] = m[i][t] || {}, m[i] [t][e] = n }), n && b(n, function (i, n) { t = T[e].isInline === !1, y[t] = y[t] || {}, y[t][i] = y[t][i] || {}, y[t] [i][e] = n }) }) } function t(e, t, i) { var o, s, r = p.getStyle; return i = !!i, y[i] ? (b(y[i], function (i, l) { o = r(e, i), o && r(e.parentNode, i) !== o && b(l, function (i, r) { (!r || r.indexOf(o.toString()) > -1) && (s = T[i].format, t = n(s) ? s .call(h, e, t) : a(s, t)) }) }), t) : t } function s(e, t) { var i = e.nodeName.toLowerCase(), n = p.isInline; if (!n(e, !0) || "br" === i) { for (var o, a, s, r = e.previousSibling; r && 1 === r.nodeType && !g(r, "br") && n(r, !0) && ! r.firstChild;) r = r.previousSibling; do a = e.parentNode, s = a && a.lastChild, o = s === e, e = a; while (a && o && n(a, !0)); (!o || "li" === i || "br" === i && w) && (t += "\n"), "br" !== i && r && !g(r, "br") && n(r, ! 0) && (t = "\n" + t) } return t } function l(e, t, i) { var o, s, r = e.nodeName.toLowerCase(); return i = !!i, m[r] && m[r][i] && b(m[r][i], function (i, r) { (!r || (o = !1, b(r, function (t, i) { return !f(e, t) || i && i.indexOf(f(e, t)) < 0 ? void 0 : (o = !0, !1) }), o)) && (s = T[i].format, t = n(s) ? s.call(h, e, t) : a(s, t)) }), t } function c(e) { var i = function (e, n) { var o = ""; return p.traverse(e, function (e) { var a = "", r = e.nodeType, c = e.nodeName.toLowerCase(), u = x[c], d = e.firstChild, h = !0; if ("object" == typeof n && (h = n.indexOf(c) > -1, g(e, "img") && f(e, k) && (h = !0), h || (u = n)), 3 === r || 1 === r) if (1 === r) { if (g(e, ".sceditor-nlf") && (!d || !w && 1 === e.childNodes.length && /br/i.test(d.nodeName))) return; "iframe" !== c && (a = i(e, u)), h ? ("code" !== c && (a = t(e, a), a = l(e, a), a = t(e, a, !0)), a = l(e, a, !0), o += s(e, a)) : o += a } else o += e.nodeValue }, !1, !0), o }; return i(e) } function u(e, t, n) { var o = new r(h.opts.parserOptions), a = o.toHTML(h.opts.bbcodeTrim ? t.trim() : t); return e || n ? i(a) : a } function d(e, t, i, n) { i = i || document; var o, a, s = i.createElement("div"), l = i.createElement("div"), u = new r(h.opts.parserOptions); for (l.innerHTML = t, _(s, "visibility", "hidden"), s.appendChild(l), i.body.appendChild(s), e && (s.insertBefore(i.createTextNode("#"), s.firstChild), s.appendChild(i.createTextNode("#"))), n && _(l, "whiteSpace", _(n, "whiteSpace")), a = l.getElementsByClassName( "sceditor-ignore"); a.length;) a[0].parentNode.removeChild(a[0]); return p.removeWhiteSpace(s), o = c(l), i.body.removeChild(s), o = u.toBBCode(o, !0), h.opts .bbcodeTrim && (o = o.trim()), o } var h = this; h.stripQuotes = o; var m = {}, y = {}, x = { ul: ["li", "ol", "ul"], ol: ["li", "ol", "ul"], table: ["tr"], tr: ["td", "th"], code: ["br", "p", "div"] }; h.init = function () { h.opts = this.opts, h.elementToBbcode = c, e(), this.commands = v(!0, {}, z, this.commands), this.toBBCode = h.toSource, this.fromBBCode = h.toHtml }, h.toHtml = u.bind(null, !1), h.fragmentToHtml = u.bind(null, !0), h.toSource = d.bind(null, ! 1), h.fragmentToSource = d.bind(null, !0) } var d = e.escapeEntities, h = e.escapeUriScheme, p = e.dom, m = e.utils, _ = p.css, f = p.attr, g = p.is, v = m.extend, b = m.each, y = e.ie, w = y && 11 > y, k = "data-sceditor-emoticon", x = e.command.get, C = { always: 1, never: 2, auto: 3 }, z = { bold: { txtExec: ["[b]", "[/b]"] }, italic: { txtExec: ["[i]", "[/i]"] }, underline: { txtExec: ["[u]", "[/u]"] }, strike: { txtExec: ["[s]", "[/s]"] }, subscript: { txtExec: ["[sub]", "[/sub]"] }, superscript: { txtExec: ["[sup]", "[/sup]"] }, left: { txtExec: ["[left]", "[/left]"] }, center: { txtExec: ["[center]", "[/center]"] }, right: { txtExec: ["[right]", "[/right]"] }, justify: { txtExec: ["[justify]", "[/justify]"] }, font: { txtExec: function (e) { var t = this; x("font") ._dropDown(t, e, function (e) { t.insertText("[font=" + e + "]", "[/font]") }) } }, size: { txtExec: function (e) { var t = this; x("size") ._dropDown(t, e, function (e) { t.insertText("[size=" + e + "]", "[/size]") }) } }, color: { txtExec: function (e) { var t = this; x("color") ._dropDown(t, e, function (e) { t.insertText("[color=" + e + "]", "[/color]") }) } }, bulletlist: { txtExec: function (e, t) { var i = ""; b(t.split(/\r?\n/), function () { i += (i ? "\n" : "") + "[li]" + this + "[/li]" }), this.insertText("[ul]\n" + i + "\n[/ul]") } }, orderedlist: { txtExec: function (e, t) { var i = ""; b(t.split(/\r?\n/), function () { i += (i ? "\n" : "") + "[li]" + this + "[/li]" }), this.insertText("[ol]\n" + i + "\n[/ol]") } }, table: { txtExec: ["[table][tr][td]", "[/td][/tr][/table]"] }, horizontalrule: { txtExec: ["[hr]"] }, code: { txtExec: ["[code]", "[/code]"] }, image: { txtExec: function (e, t) { var i = this; x("image") ._dropDown(i, e, t, function (e, t, n) { var o = ""; t && (o += " width=" + t), n && (o += " height=" + n), i.insertText( "[img" + o + "]" + e + "[/img]") }) } }, email: { txtExec: function (e, t) { var i = this; x("email") ._dropDown(i, e, function (e, n) { i.insertText("[email=" + e + "]" + (n || t || e) + "[/email]") }) } }, link: { txtExec: function (e, t) { var i = this; x("link") ._dropDown(i, e, function (e, n) { i.insertText("[url=" + e + "]" + (n || t || e) + "[/url]") }) } }, quote: { txtExec: ["[quote]", "[/quote]"] }, youtube: { txtExec: function (e) { var t = this; x("youtube") ._dropDown(t, e, function (e) { t.insertText("[youtube]" + e + "[/youtube]") }) } }, rtl: { txtExec: ["[rtl]", "[/rtl]"] }, ltr: { txtExec: ["[ltr]", "[/ltr]"] } }, T = { b: { tags: { b: null, strong: null }, styles: { "font-weight": ["bold", "bolder", "401", "700", "800", "900"] }, format: "[b]{0}[/b]", html: "{0}" }, i: { tags: { i: null, em: null }, styles: { "font-style": ["italic", "oblique"] }, format: "[i]{0}[/i]", html: "{0}" }, u: { tags: { u: null }, styles: { "text-decoration": ["underline"] }, format: "[u]{0}[/u]", html: "{0}" }, s: { tags: { s: null, strike: null }, styles: { "text-decoration": ["line-through"] }, format: "[s]{0}[/s]", html: "{0}" }, sub: { tags: { sub: null }, format: "[sub]{0}[/sub]", html: "{0}" }, sup: { tags: { sup: null }, format: "[sup]{0}[/sup]", html: "{0}" }, font: { tags: { font: { face: null } }, styles: { "font-family": null }, quoteType: C.never, format: function (e, t) { var i; return g(e, "font") && (i = f(e, "face")) || (i = _(e, "font-family")), "[font=" + o( i) + "]" + t + "[/font]" }, html: '{0}' }, size: { tags: { font: { size: null } }, styles: { "font-size": null }, format: function (e, t) { var i = f(e, "size"), n = 2; return i || (i = _(e, "fontSize")), i.indexOf("px") > -1 ? (i = i.replace("px", "") - 0, 12 > i && (n = 1), i > 15 && (n = 3), i > 17 && (n = 4), i > 23 && (n = 5), i > 31 && (n = 6), i > 47 && (n = 7)) : n = i, "[size=" + n + "]" + t + "[/size]" }, html: '{!0}' }, color: { tags: { font: { color: null } }, styles: { color: null }, quoteType: C.never, format: function (e, t) { var i; return g(e, "font") && (i = f(e, "color")) || (i = e.style.color || _(e, "color")), "[color=" + c(i) + "]" + t + "[/color]" }, html: function (e, t, i) { return '' + i + "" } }, ul: { tags: { ul: null }, breakStart: !0, isInline: !1, skipLastLineBreak: !0, format: "[ul]{0}[/ul]", html: "
      {0}
    " }, list: { breakStart: !0, isInline: !1, skipLastLineBreak: !0, html: "
      {0}
    " }, ol: { tags: { ol: null }, breakStart: !0, isInline: !1, skipLastLineBreak: !0, format: "[ol]{0}[/ol]", html: "
      {0}
    " }, li: { tags: { li: null }, isInline: !1, closedBy: ["/ul", "/ol", "/list", "*", "li"], format: "[li]{0}[/li]", html: "
  • {0}
  • " }, "*": { isInline: !1, closedBy: ["/ul", "/ol", "/list", "*", "li"], html: "
  • {0}
  • " }, table: { tags: { table: null }, isInline: !1, isHtmlInline: !0, skipLastLineBreak: !0, format: "[table]{0}[/table]", html: "{0}
    " }, tr: { tags: { tr: null }, isInline: !1, skipLastLineBreak: !0, format: "[tr]{0}[/tr]", html: "{0}" }, th: { tags: { th: null }, allowsEmpty: !0, isInline: !1, format: "[th]{0}[/th]", html: "{0}" }, td: { tags: { td: null }, allowsEmpty: !0, isInline: !1, format: "[td]{0}[/td]", html: "{0}" }, emoticon: { allowsEmpty: !0, tags: { img: { src: null, "data-sceditor-emoticon": null } }, format: function (e, t) { return f(e, k) + t }, html: "{0}" }, hr: { tags: { hr: null }, allowsEmpty: !0, isSelfClosing: !0, isInline: !1, format: "[hr]{0}", html: "
    " }, img: { allowsEmpty: !0, tags: { img: { src: null } }, allowedChildren: ["#"], quoteType: C.never, format: function (e, t) { var i, n, o = "", a = function (t) { return e.style ? e.style[t] : null }; return f(e, k) ? t : (i = f(e, "width") || a("width"), n = f(e, "height") || a( "height"), (e.complete && (i || n) || i && n) && (o = "=" + p.width(e) + "x" + p.height(e)), "[img" + o + "]" + f(e, "src") + "[/img]") }, html: function (e, t, i) { var n, o, a, s, r = ""; return o = t.width, a = t.height, t.defaultattr && (s = t.defaultattr.split(/x/i), o = s[0], a = 2 === s.length ? s[1] : s[0]), o !== n && (r += ' width="' + d(o, ! 0) + '"'), a !== n && (r += ' height="' + d(a, !0) + '"'), "' } }, url: { allowsEmpty: !0, tags: { a: { href: null } }, quoteType: C.never, format: function (e, t) { var i = f(e, "href"); return "mailto:" === i.substr(0, 7) ? '[email="' + i.substr(7) + '"]' + t + "[/email]" : "[url=" + i + "]" + t + "[/url]" }, html: function (e, t, i) { return t.defaultattr = d(t.defaultattr, !0) || i, '' + i + "" } }, email: { quoteType: C.never, html: function (e, t, i) { return '' + i + "" } }, quote: { tags: { blockquote: null }, isInline: !1, quoteType: C.never, format: function (e, t) { for (var i, n = "data-author", o = "", a = e.children, s = 0; !i && s < a.length; s++) g(a[s], "cite") && (i = a[s]); return (i || f(e, n)) && (o = i && i.textContent || f(e, n), f(e, n, o), i && e .removeChild(i), t = this.elementToBbcode(e), o = "=" + o.replace( /(^\s+|\s+$)/g, ""), i && e.insertBefore(i, e.firstChild)), "[quote" + o + "]" + t + "[/quote]" }, html: function (e, t, i) { return t.defaultattr && (i = "" + d(t.defaultattr) + "" + i), "
    " + i + "
    " } }, code: { tags: { code: null }, isInline: !1, allowedChildren: ["#", "#newline"], format: "[code]{0}[/code]", html: "{0}" }, left: { styles: { "text-align": ["left", "-webkit-left", "-moz-left", "-khtml-left"] }, isInline: !1, format: "[left]{0}[/left]", html: '
    {0}
    ' }, center: { styles: { "text-align": ["center", "-webkit-center", "-moz-center", "-khtml-center"] }, isInline: !1, format: "[center]{0}[/center]", html: '
    {0}
    ' }, right: { styles: { "text-align": ["right", "-webkit-right", "-moz-right", "-khtml-right"] }, isInline: !1, format: "[right]{0}[/right]", html: '
    {0}
    ' }, justify: { styles: { "text-align": ["justify", "-webkit-justify", "-moz-justify", "-khtml-justify"] }, isInline: !1, format: "[justify]{0}[/justify]", html: '
    {0}
    ' }, youtube: { allowsEmpty: !0, tags: { iframe: { "data-youtube-id": null } }, format: function (e, t) { return e = f(e, "data-youtube-id"), e ? "[youtube]" + e + "[/youtube]" : t }, html: '' }, rtl: { styles: { direction: ["rtl"] }, isInline: !1, format: "[rtl]{0}[/rtl]", html: '
    {0}
    ' }, ltr: { styles: { direction: ["ltr"] }, isInline: !1, format: "[ltr]{0}[/ltr]", html: '
    {0}
    ' }, ignore: {} }, S = "open", A = "content", E = "newline", P = "close"; s.prototype = { clone: function () { var e = this; return new s(e.type, e.name, e.val, v({}, e.attrs), [], e.closing ? e.closing.clone() : null) }, splitAt: function (e) { var t, i = this, n = i.clone(), o = i.children.indexOf(e); return o > -1 && (t = i.children.length - o, n.children = i.children.splice(o, t)), n } }, r.QuoteType = C, r.defaults = { breakBeforeBlock: !1, breakStartBlock: !1, breakEndBlock: !1, breakAfterBlock: !0, removeEmptyTags: !0, fixInvalidNesting: !0, fixInvalidChildren: !0, quoteType: C.auto }, u.get = function (e) { return T[e] || null }, u.set = function (e, t) { return e && t && (t = v(T[e] || {}, t), t.remove = function () { delete T[e] }, T[e] = t), this }, u.rename = function (e, t) { return e in T && (T[t] = T[e], delete T[e]), this }, u.remove = function (e) { return e in T && delete T[e], this }, u.formatBBCodeString = t, e.formats.bbcode = u, e.BBCodeParser = r }(sceditor), function (e) { var t = !1; if ("function" == typeof define && define.amd && (define(e), t = !0), "object" == typeof exports && ( module.exports = e(), t = !0), !t) { var i = window.Cookies, n = window.Cookies = e(); n.noConflict = function () { return window.Cookies = i, n } } }(function () { function e() { for (var e = 0, t = {}; e < arguments.length; e++) { var i = arguments[e]; for (var n in i) t[n] = i[n] } return t } function t(i) { function n(t, o, a) { var s; if ("undefined" != typeof document) { if (arguments.length > 1) { if (a = e({ path: "/" }, n.defaults, a), "number" == typeof a.expires) { var r = new Date; r.setMilliseconds(r.getMilliseconds() + 864e5 * a.expires), a.expires = r } a.expires = a.expires ? a.expires.toUTCString() : ""; try { s = JSON.stringify(o), /^[\{\[]/.test(s) && (o = s) } catch (l) {} o = i.write ? i.write(o, t) : encodeURIComponent(String(o)) .replace(/%(23|24|26|2B|3A|3C|3E|3D|2F|3F|40|5B|5D|5E|60|7B|7D|7C)/g, decodeURIComponent), t = encodeURIComponent(String(t)), t = t.replace( /%(23|24|26|2B|5E|60|7C)/g, decodeURIComponent), t = t.replace(/[\(\)]/g, escape); var c = ""; for (var u in a) a[u] && (c += "; " + u, a[u] !== !0 && (c += "=" + a[u])); return document.cookie = t + "=" + o + c } t || (s = {}); for (var d = document.cookie ? document.cookie.split("; ") : [], h = /(%[0-9A-Z]{2})+/g, p = 0; p < d.length; p++) { var m = d[p].split("="), _ = m.slice(1) .join("="); this.json || '"' !== _.charAt(0) || (_ = _.slice(1, -1)); try { var f = m[0].replace(h, decodeURIComponent); if (_ = i.read ? i.read(_, f) : i(_, f) || _.replace(h, decodeURIComponent), this .json) try { _ = JSON.parse(_) } catch (l) {} if (t === f) { s = _; break } t || (s[f] = _) } catch (l) {} } return s } } return n.set = n, n.get = function (e) { return n.call(n, e) }, n.getJSON = function () { return n.apply({ json: !0 }, [].slice.call(arguments)) }, n.defaults = {}, n.remove = function (t, i) { n(t, "", e(i, { expires: -1 })) }, n.withConverter = t, n } return t(function () {}) }); var windowIsTurbolinked = "Turbolinks" in window, cookiesEu = { init: function () { var e = document.querySelector(".js-cookies-eu-ok"); e && (this.addListener(e), windowIsTurbolinked && window.Turbolinks.clearCache()) }, addListener: function (e) { e.attachEvent ? e.attachEvent("onclick", this.setCookie) : e.addEventListener("click", this .setCookie, !1) }, setCookie: function () { var e = "https:" === location.protocol; Cookies.set("cookie_eu_consented", !0, { path: "/", expires: 365, secure: e }); var t = document.querySelector(".js-cookies-eu"); t.parentNode.removeChild(t) } }; ! function () { function e(e) { return windowIsTurbolinked ? "turbolinks:load" : e } function t() { (!i || windowIsTurbolinked) && (i = !0, cookiesEu.init()) } var i = !1; return document.addEventListener ? document.addEventListener(e("DOMContentLoaded"), t, !1) : (window .addEventListener ? window.addEventListener(e("load"), t, !1) : window.attachEvent && window .attachEvent(e("onload"), t), void 0) }(), /* ======================================================================== * bootstrap-tour - v0.12.0 * http://bootstraptour.com * ======================================================================== * Copyright 2012-2015 Ulrich Sossou * * ======================================================================== * Licensed under the MIT License (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * https://opensource.org/licenses/MIT * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. * ======================================================================== */ /* ======================================================================== * Bootstrap: transition.js v3.3.7 * http://getbootstrap.com/javascript/#transitions * ======================================================================== * Copyright 2011-2016 Twitter, Inc. * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) * ======================================================================== */ + function (e) { "use strict"; function t() { var e = document.createElement("bootstrap"), t = { WebkitTransition: "webkitTransitionEnd", MozTransition: "transitionend", OTransition: "oTransitionEnd otransitionend", transition: "transitionend" }; for (var i in t) if (void 0 !== e.style[i]) return { end: t[i] }; return !1 } e.fn.emulateTransitionEnd = function (t) { var i = !1, n = this; e(this) .one("bsTransitionEnd", function () { i = !0 }); var o = function () { i || e(n) .trigger(e.support.transition.end) }; return setTimeout(o, t), this }, e(function () { e.support.transition = t(), e.support.transition && (e.event.special.bsTransitionEnd = { bindType: e.support.transition.end, delegateType: e.support.transition.end, handle: function (t) { return e(t.target) .is(this) ? t.handleObj.handler.apply(this, arguments) : void 0 } }) }) }(jQuery), /* ======================================================================== * Bootstrap: tooltip.js v3.3.7 * http://getbootstrap.com/javascript/#tooltip * Inspired by the original jQuery.tipsy by Jason Frame * ======================================================================== * Copyright 2011-2016 Twitter, Inc. * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) * ======================================================================== */ + function (e) { "use strict"; function t(t) { return this.each(function () { var n = e(this), o = n.data("bs.tooltip"), a = "object" == typeof t && t; (o || !/destroy|hide/.test(t)) && (o || n.data("bs.tooltip", o = new i(this, a)), "string" == typeof t && o[t]()) }) } var i = function (e, t) { this.type = null, this.options = null, this.enabled = null, this.timeout = null, this.hoverState = null, this.$element = null, this.inState = null, this.init("tooltip", e, t) }; i.VERSION = "3.3.7", i.TRANSITION_DURATION = 150, i.DEFAULTS = { animation: !0, placement: "top", selector: !1, template: '', trigger: "hover focus", title: "", delay: 0, html: !1, container: !1, viewport: { selector: "body", padding: 0 } }, i.prototype.init = function (t, i, n) { if (this.enabled = !0, this.type = t, this.$element = e(i), this.options = this.getOptions(n), this.$viewport = this.options.viewport && e(e.isFunction(this.options.viewport) ? this.options .viewport.call(this, this.$element) : this.options.viewport.selector || this.options .viewport), this.inState = { click: !1, hover: !1, focus: !1 }, this.$element[0] instanceof document.constructor && !this.options.selector) throw new Error("`selector` option must be specified when initializing " + this.type + " on the window.document object!"); for (var o = this.options.trigger.split(" "), a = o.length; a--;) { var s = o[a]; if ("click" == s) this.$element.on("click." + this.type, this.options.selector, e.proxy(this .toggle, this)); else if ("manual" != s) { var r = "hover" == s ? "mouseenter" : "focusin", l = "hover" == s ? "mouseleave" : "focusout"; this.$element.on(r + "." + this.type, this.options.selector, e.proxy(this.enter, this)), this.$element.on(l + "." + this.type, this.options.selector, e.proxy(this.leave, this)) } } this.options.selector ? this._options = e.extend({}, this.options, { trigger: "manual", selector: "" }) : this.fixTitle() }, i.prototype.getDefaults = function () { return i.DEFAULTS }, i.prototype.getOptions = function (t) { return t = e.extend({}, this.getDefaults(), this.$element.data(), t), t.delay && "number" == typeof t.delay && (t.delay = { show: t.delay, hide: t.delay }), t }, i.prototype.getDelegateOptions = function () { var t = {}, i = this.getDefaults(); return this._options && e.each(this._options, function (e, n) { i[e] != n && (t[e] = n) }), t }, i.prototype.enter = function (t) { var i = t instanceof this.constructor ? t : e(t.currentTarget) .data("bs." + this.type); return i || (i = new this.constructor(t.currentTarget, this.getDelegateOptions()), e(t .currentTarget) .data("bs." + this.type, i)), t instanceof e.Event && (i.inState["focusin" == t.type ? "focus" : "hover"] = !0), i.tip() .hasClass("in") || "in" == i.hoverState ? (i.hoverState = "in", void 0) : (clearTimeout(i .timeout), i.hoverState = "in", i.options.delay && i.options.delay.show ? (i.timeout = setTimeout(function () { "in" == i.hoverState && i.show() }, i.options.delay.show), void 0) : i.show()) }, i.prototype.isInStateTrue = function () { for (var e in this.inState) if (this.inState[e]) return !0; return !1 }, i.prototype.leave = function (t) { var i = t instanceof this.constructor ? t : e(t.currentTarget) .data("bs." + this.type); return i || (i = new this.constructor(t.currentTarget, this.getDelegateOptions()), e(t .currentTarget) .data("bs." + this.type, i)), t instanceof e.Event && (i.inState["focusout" == t.type ? "focus" : "hover"] = !1), i.isInStateTrue() ? void 0 : (clearTimeout(i.timeout), i .hoverState = "out", i.options.delay && i.options.delay.hide ? (i.timeout = setTimeout( function () { "out" == i.hoverState && i.hide() }, i.options.delay.hide), void 0) : i.hide()) }, i.prototype.show = function () { var t = e.Event("show.bs." + this.type); if (this.hasContent() && this.enabled) { this.$element.trigger(t); var n = e.contains(this.$element[0].ownerDocument.documentElement, this.$element[0]); if (t.isDefaultPrevented() || !n) return; var o = this, a = this.tip(), s = this.getUID(this.type); this.setContent(), a.attr("id", s), this.$element.attr("aria-describedby", s), this.options .animation && a.addClass("fade"); var r = "function" == typeof this.options.placement ? this.options.placement.call(this, a[0], this.$element[0]) : this.options.placement, l = /\s?auto?\s?/i, c = l.test(r); c && (r = r.replace(l, "") || "top"), a.detach() .css({ top: 0, left: 0, display: "block" }) .addClass(r) .data("bs." + this.type, this), this.options.container ? a.appendTo(this.options .container) : a.insertAfter(this.$element), this.$element.trigger("inserted.bs." + this.type); var u = this.getPosition(), d = a[0].offsetWidth, h = a[0].offsetHeight; if (c) { var p = r, m = this.getPosition(this.$viewport); r = "bottom" == r && u.bottom + h > m.bottom ? "top" : "top" == r && u.top - h < m.top ? "bottom" : "right" == r && u.right + d > m.width ? "left" : "left" == r && u.left - d < m.left ? "right" : r, a.removeClass(p) .addClass(r) } var _ = this.getCalculatedOffset(r, u, d, h); this.applyPlacement(_, r); var f = function () { var e = o.hoverState; o.$element.trigger("shown.bs." + o.type), o.hoverState = null, "out" == e && o.leave( o) }; e.support.transition && this.$tip.hasClass("fade") ? a.one("bsTransitionEnd", f) .emulateTransitionEnd(i.TRANSITION_DURATION) : f() } }, i.prototype.applyPlacement = function (t, i) { var n = this.tip(), o = n[0].offsetWidth, a = n[0].offsetHeight, s = parseInt(n.css("margin-top"), 10), r = parseInt(n.css("margin-left"), 10); isNaN(s) && (s = 0), isNaN(r) && (r = 0), t.top += s, t.left += r, e.offset.setOffset(n[0], e .extend({ using: function (e) { n.css({ top: Math.round(e.top), left: Math.round(e.left) }) } }, t), 0), n.addClass("in"); var l = n[0].offsetWidth, c = n[0].offsetHeight; "top" == i && c != a && (t.top = t.top + a - c); var u = this.getViewportAdjustedDelta(i, t, l, c); u.left ? t.left += u.left : t.top += u.top; var d = /top|bottom/.test(i), h = d ? 2 * u.left - o + l : 2 * u.top - a + c, p = d ? "offsetWidth" : "offsetHeight"; n.offset(t), this.replaceArrow(h, n[0][p], d) }, i.prototype.replaceArrow = function (e, t, i) { this.arrow() .css(i ? "left" : "top", 50 * (1 - e / t) + "%") .css(i ? "top" : "left", "") }, i.prototype.setContent = function () { var e = this.tip(), t = this.getTitle(); e.find(".tooltip-inner")[this.options.html ? "html" : "text"](t), e.removeClass( "fade in top bottom left right") }, i.prototype.hide = function (t) { function n() { "in" != o.hoverState && a.detach(), o.$element && o.$element.removeAttr("aria-describedby") .trigger("hidden.bs." + o.type), t && t() } var o = this, a = e(this.$tip), s = e.Event("hide.bs." + this.type); return this.$element.trigger(s), s.isDefaultPrevented() ? void 0 : (a.removeClass("in"), e.support .transition && a.hasClass("fade") ? a.one("bsTransitionEnd", n) .emulateTransitionEnd(i.TRANSITION_DURATION) : n(), this.hoverState = null, this) }, i.prototype.fixTitle = function () { var e = this.$element; (e.attr("title") || "string" != typeof e.attr("data-original-title")) && e.attr( "data-original-title", e.attr("title") || "") .attr("title", "") }, i.prototype.hasContent = function () { return this.getTitle() }, i.prototype.getPosition = function (t) { t = t || this.$element; var i = t[0], n = "BODY" == i.tagName, o = i.getBoundingClientRect(); null == o.width && (o = e.extend({}, o, { width: o.right - o.left, height: o.bottom - o.top })); var a = window.SVGElement && i instanceof window.SVGElement, s = n ? { top: 0, left: 0 } : a ? null : t.offset(), r = { scroll: n ? document.documentElement.scrollTop || document.body.scrollTop : t.scrollTop() }, l = n ? { width: e(window) .width(), height: e(window) .height() } : null; return e.extend({}, o, r, l, s) }, i.prototype.getCalculatedOffset = function (e, t, i, n) { return "bottom" == e ? { top: t.top + t.height, left: t.left + t.width / 2 - i / 2 } : "top" == e ? { top: t.top - n, left: t.left + t.width / 2 - i / 2 } : "left" == e ? { top: t.top + t.height / 2 - n / 2, left: t.left - i } : { top: t.top + t.height / 2 - n / 2, left: t.left + t.width } }, i.prototype.getViewportAdjustedDelta = function (e, t, i, n) { var o = { top: 0, left: 0 }; if (!this.$viewport) return o; var a = this.options.viewport && this.options.viewport.padding || 0, s = this.getPosition(this.$viewport); if (/right|left/.test(e)) { var r = t.top - a - s.scroll, l = t.top + a - s.scroll + n; r < s.top ? o.top = s.top - r : l > s.top + s.height && (o.top = s.top + s.height - l) } else { var c = t.left - a, u = t.left + a + i; c < s.left ? o.left = s.left - c : u > s.right && (o.left = s.left + s.width - u) } return o }, i.prototype.getTitle = function () { var e, t = this.$element, i = this.options; return e = t.attr("data-original-title") || ("function" == typeof i.title ? i.title.call(t[0]) : i .title) }, i.prototype.getUID = function (e) { do e += ~~(1e6 * Math.random()); while (document.getElementById(e)); return e }, i.prototype.tip = function () { if (!this.$tip && (this.$tip = e(this.options.template), 1 != this.$tip.length)) throw new Error( this.type + " `template` option must consist of exactly 1 top-level element!"); return this.$tip }, i.prototype.arrow = function () { return this.$arrow = this.$arrow || this.tip() .find(".tooltip-arrow") }, i.prototype.enable = function () { this.enabled = !0 }, i.prototype.disable = function () { this.enabled = !1 }, i.prototype.toggleEnabled = function () { this.enabled = !this.enabled }, i.prototype.toggle = function (t) { var i = this; t && (i = e(t.currentTarget) .data("bs." + this.type), i || (i = new this.constructor(t.currentTarget, this .getDelegateOptions()), e(t.currentTarget) .data("bs." + this.type, i))), t ? (i.inState.click = !i.inState.click, i .isInStateTrue() ? i.enter(i) : i.leave(i)) : i.tip() .hasClass("in") ? i.leave(i) : i.enter(i) }, i.prototype.destroy = function () { var e = this; clearTimeout(this.timeout), this.hide(function () { e.$element.off("." + e.type) .removeData("bs." + e.type), e.$tip && e.$tip.detach(), e.$tip = null, e.$arrow = null, e.$viewport = null, e.$element = null }) }; var n = e.fn.tooltip; e.fn.tooltip = t, e.fn.tooltip.Constructor = i, e.fn.tooltip.noConflict = function () { return e.fn.tooltip = n, this } }(jQuery), /* ======================================================================== * Bootstrap: popover.js v3.3.7 * http://getbootstrap.com/javascript/#popovers * ======================================================================== * Copyright 2011-2016 Twitter, Inc. * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) * ======================================================================== */ + function (e) { "use strict"; function t(t) { return this.each(function () { var n = e(this), o = n.data("bs.popover"), a = "object" == typeof t && t; (o || !/destroy|hide/.test(t)) && (o || n.data("bs.popover", o = new i(this, a)), "string" == typeof t && o[t]()) }) } var i = function (e, t) { this.init("popover", e, t) }; if (!e.fn.tooltip) throw new Error("Popover requires tooltip.js"); i.VERSION = "3.3.7", i.DEFAULTS = e.extend({}, e.fn.tooltip.Constructor.DEFAULTS, { placement: "right", trigger: "click", content: "", template: '' }), i.prototype = e.extend({}, e.fn.tooltip.Constructor.prototype), i.prototype.constructor = i, i .prototype.getDefaults = function () { return i.DEFAULTS }, i.prototype.setContent = function () { var e = this.tip(), t = this.getTitle(), i = this.getContent(); e.find(".popover-title")[this.options.html ? "html" : "text"](t), e.find(".popover-content") .children() .detach() .end()[this.options.html ? "string" == typeof i ? "html" : "append" : "text"](i), e .removeClass("fade top bottom left right in"), e.find(".popover-title") .html() || e.find(".popover-title") .hide() }, i.prototype.hasContent = function () { return this.getTitle() || this.getContent() }, i.prototype.getContent = function () { var e = this.$element, t = this.options; return e.attr("data-content") || ("function" == typeof t.content ? t.content.call(e[0]) : t .content) }, i.prototype.arrow = function () { return this.$arrow = this.$arrow || this.tip() .find(".arrow") }; var n = e.fn.popover; e.fn.popover = t, e.fn.popover.Constructor = i, e.fn.popover.noConflict = function () { return e.fn.popover = n, this } }(jQuery); var bind = function (e, t) { return function () { return e.apply(t, arguments) } }; ! function (e, t) { return "function" == typeof define && define.amd ? define(["jquery"], function (i) { return e.Tour = t(i) }) : "object" == typeof exports ? module.exports = t(require("jquery")) : e.Tour = t(e.jQuery) }(window, function (e) { var t, i; return i = window.document, t = function () { function t(t) { this._showPopoverAndOverlay = bind(this._showPopoverAndOverlay, this); var i; try { i = window.localStorage } catch (n) { i = !1 } this._options = e.extend({ name: "tour", steps: [], container: "body", autoscroll: !0, keyboard: !0, storage: i, debug: !1, backdrop: !1, backdropContainer: "body", backdropPadding: 0, redirect: !0, orphan: !1, duration: !1, delay: !1, basePath: "", template: '', afterSetState: function () {}, afterGetState: function () {}, afterRemoveState: function () {}, onStart: function () {}, onEnd: function () {}, onShow: function () {}, onShown: function () {}, onHide: function () {}, onHidden: function () {}, onNext: function () {}, onPrev: function () {}, onPause: function () {}, onResume: function () {}, onRedirectError: function () {} }, t), this._force = !1, this._inited = !1, this._current = null, this.backdrops = [] } return t.prototype.addSteps = function (e) { var t, i, n; for (t = 0, i = e.length; i > t; t++) n = e[t], this.addStep(n); return this }, t.prototype.addStep = function (e) { return this._options.steps.push(e), this }, t.prototype.getStep = function (t) { return null != this._options.steps[t] ? e.extend({ id: "step-" + t, path: "", host: "", placement: "right", title: "", content: "

    ", next: t === this._options.steps.length - 1 ? -1 : t + 1, prev: t - 1, animation: !0, container: this._options.container, autoscroll: this._options.autoscroll, backdrop: this._options.backdrop, backdropContainer: this._options.backdropContainer, backdropPadding: this._options.backdropPadding, redirect: this._options.redirect, reflexElement: this._options.steps[t].element, backdropElement: this._options.steps[t].element, orphan: this._options.orphan, duration: this._options.duration, delay: this._options.delay, template: this._options.template, onShow: this._options.onShow, onShown: this._options.onShown, onHide: this._options.onHide, onHidden: this._options.onHidden, onNext: this._options.onNext, onPrev: this._options.onPrev, onPause: this._options.onPause, onResume: this._options.onResume, onRedirectError: this._options.onRedirectError }, this._options.steps[t]) : void 0 }, t.prototype.init = function (e) { return this._force = e, this.ended() ? (this._debug("Tour ended, init prevented."), this) : (this.setCurrentStep(), this._initMouseNavigation(), this ._initKeyboardNavigation(), this._onResize(function (e) { return function () { return e.showStep(e._current) } }(this)), this._onScroll(function (e) { return function () { return e._showPopoverAndOverlay(e._current) } }(this)), null !== this._current && this.showStep(this._current), this ._inited = !0, this) }, t.prototype.start = function (e) { var t; return null == e && (e = !1), this._inited || this.init(e), null === this._current && (t = this._makePromise(null != this._options.onStart ? this._options.onStart( this) : void 0), this._callOnPromiseDone(t, this.showStep, 0)), this }, t.prototype.next = function () { var e; return e = this.hideStep(this._current, this._current + 1), this._callOnPromiseDone(e, this._showNextStep) }, t.prototype.prev = function () { var e; return e = this.hideStep(this._current, this._current - 1), this._callOnPromiseDone(e, this._showPrevStep) }, t.prototype.goTo = function (e) { var t; return t = this.hideStep(this._current, e), this._callOnPromiseDone(t, this.showStep, e) }, t.prototype.end = function () { var t, n; return t = function (t) { return function () { return e(i) .off("click.tour-" + t._options.name), e(i) .off("keyup.tour-" + t._options.name), e(window) .off("resize.tour-" + t._options.name), e(window) .off("scroll.tour-" + t._options.name), t._setState("end", "yes"), t._inited = !1, t._force = !1, t._clearTimer(), null != t._options .onEnd ? t._options.onEnd(t) : void 0 } }(this), n = this.hideStep(this._current), this._callOnPromiseDone(n, t) }, t.prototype.ended = function () { return !this._force && !!this._getState("end") }, t.prototype.restart = function () { return this._removeState("current_step"), this._removeState("end"), this._removeState( "redirect_to"), this.start() }, t.prototype.pause = function () { var e; return e = this.getStep(this._current), e && e.duration ? (this._paused = !0, this ._duration -= (new Date) .getTime() - this._start, window.clearTimeout(this._timer), this._debug( "Paused/Stopped step " + (this._current + 1) + " timer (" + this ._duration + " remaining)."), null != e.onPause ? e.onPause(this, this ._duration) : void 0) : this }, t.prototype.resume = function () { var e; return e = this.getStep(this._current), e && e.duration ? (this._paused = !1, this ._start = (new Date) .getTime(), this._duration = this._duration || e.duration, this._timer = window.setTimeout(function (e) { return function () { return e._isLast() ? e.next() : e.end() } }(this), this._duration), this._debug("Started step " + (this._current + 1) + " timer with duration " + this._duration), null != e.onResume && this ._duration !== e.duration ? e.onResume(this, this._duration) : void 0) : this }, t.prototype.hideStep = function (t, i) { var n, o, a, s; return (s = this.getStep(t)) ? (this._clearTimer(), a = this._makePromise(null != s .onHide ? s.onHide(this, t) : void 0), o = function (n) { return function () { var o, a; return o = e(s.element), o.data("bs.popover") || o.data( "popover") || (o = e("body")), o.popover("destroy") .removeClass("tour-" + n._options.name + "-element tour-" + n ._options.name + "-" + t + "-element") .removeData("bs.popover"), s.reflex && e(s.reflexElement) .removeClass("tour-step-element-reflex") .off(n._reflexEvent(s.reflex) + ".tour-" + n._options.name), s .backdrop && (a = null != i && n.getStep(i), a && a .backdrop && a.backdropElement === s.backdropElement || n ._hideOverlayElement(s)), null != s.onHidden ? s.onHidden( n) : void 0 } }(this), n = s.delay.hide || s.delay, "[object Number]" === {}.toString.call( n) && n > 0 ? (this._debug("Wait " + n + " milliseconds to hide the step " + (this._current + 1)), window .setTimeout(function (e) { return function () { return e._callOnPromiseDone(a, o) } }(this), n)) : this._callOnPromiseDone(a, o), a) : void 0 }, t.prototype.showStep = function (e) { var t, n, o, a, s, r; return this.ended() ? (this._debug("Tour ended, showStep prevented."), this) : (r = this.getStep(e), r && (s = e < this._current, n = this._makePromise(null != r .onShow ? r.onShow(this, e) : void 0), this.setCurrentStep(e), t = function () { switch ({}.toString.call(r.path)) { case "[object Function]": return r.path(); case "[object String]": return this._options.basePath + r.path; default: return r.path } }.call(this), !r.redirect || !this._isRedirect(r.host, t, i.location) || ( this._redirect(r, e, t), this._isJustPathHashDifferent(r.host, t, i .location))) ? (a = function (t) { return function () { if (t._isOrphan(r)) { if (r.orphan === !1) return t._debug( "Skip the orphan step " + (t._current + 1) + ".\nOrphan option is false and the element does not exist or is hidden." ), s ? t._showPrevStep() : t._showNextStep(), void 0; t._debug("Show the orphan step " + (t._current + 1) + ". Orphans option is true.") } return r.autoscroll ? t._scrollIntoView(e) : t ._showPopoverAndOverlay(e), r.duration ? t.resume() : void 0 } }(this), o = r.delay.show || r.delay, "[object Number]" === {}.toString .call(o) && o > 0 ? (this._debug("Wait " + o + " milliseconds to show the step " + (this._current + 1)), window .setTimeout(function (e) { return function () { return e._callOnPromiseDone(n, a) } }(this), o)) : this._callOnPromiseDone(n, a), n) : void 0) }, t.prototype.getCurrentStep = function () { return this._current }, t.prototype.setCurrentStep = function (e) { return null != e ? (this._current = e, this._setState("current_step", e)) : (this ._current = this._getState("current_step"), this._current = null === this ._current ? null : parseInt(this._current, 10)), this }, t.prototype.redraw = function () { return this._showOverlayElement(this.getStep(this.getCurrentStep())) }, t.prototype._setState = function (e, t) { var i, n; if (this._options.storage) { n = this._options.name + "_" + e; try { this._options.storage.setItem(n, t) } catch (o) { i = o, i.code === DOMException.QUOTA_EXCEEDED_ERR && this._debug( "LocalStorage quota exceeded. State storage failed.") } return this._options.afterSetState(n, t) } return null == this._state && (this._state = {}), this._state[e] = t }, t.prototype._removeState = function (e) { var t; return this._options.storage ? (t = this._options.name + "_" + e, this._options .storage.removeItem(t), this._options.afterRemoveState(t)) : null != this ._state ? delete this._state[e] : void 0 }, t.prototype._getState = function (e) { var t, i; return this._options.storage ? (t = this._options.name + "_" + e, i = this._options .storage.getItem(t)) : null != this._state && (i = this._state[e]), ( void 0 === i || "null" === i) && (i = null), this._options.afterGetState(e, i), i }, t.prototype._showNextStep = function () { var e, t, i; return i = this.getStep(this._current), t = function (e) { return function () { return e.showStep(i.next) } }(this), e = this._makePromise(null != i.onNext ? i.onNext(this) : void 0), this ._callOnPromiseDone(e, t) }, t.prototype._showPrevStep = function () { var e, t, i; return i = this.getStep(this._current), t = function (e) { return function () { return e.showStep(i.prev) } }(this), e = this._makePromise(null != i.onPrev ? i.onPrev(this) : void 0), this ._callOnPromiseDone(e, t) }, t.prototype._debug = function (e) { return this._options.debug ? window.console.log("Bootstrap Tour '" + this._options .name + "' | " + e) : void 0 }, t.prototype._isRedirect = function (e, t, i) { var n; return null != e && "" !== e && ("[object RegExp]" === {}.toString.call(e) && !e.test( i.origin) || "[object String]" === {}.toString.call(e) && this ._isHostDifferent(e, i)) ? !0 : (n = [i.pathname, i.search, i.hash].join(""), null != t && "" !== t && ("[object RegExp]" === {}.toString.call(t) && !t .test(n) || "[object String]" === {}.toString.call(t) && this ._isPathDifferent(t, n))) }, t.prototype._isHostDifferent = function (e, t) { switch ({}.toString.call(e)) { case "[object RegExp]": return !e.test(t.origin); case "[object String]": return this._getProtocol(e) !== this._getProtocol(t.href) || this._getHost(e) !== this._getHost(t.href); default: return !0 } }, t.prototype._isPathDifferent = function (e, t) { return this._getPath(e) !== this._getPath(t) || !this._equal(this._getQuery(e), this ._getQuery(t)) || !this._equal(this._getHash(e), this._getHash(t)) }, t.prototype._isJustPathHashDifferent = function (e, t, i) { var n; return null != e && "" !== e && this._isHostDifferent(e, i) ? !1 : (n = [i.pathname, i .search, i.hash].join(""), "[object String]" === {}.toString.call(t) ? this._getPath(t) === this._getPath(n) && this._equal(this._getQuery(t), this ._getQuery(n)) && !this._equal(this._getHash(t), this._getHash(n)) : !1) }, t.prototype._redirect = function (t, n, o) { var a; return e.isFunction(t.redirect) ? t.redirect.call(this, o) : (a = "[object String]" === {}.toString.call(t.host) ? "" + t.host + o : o, this ._debug("Redirect to " + a), this._getState("redirect_to") !== "" + n ? (this ._setState("redirect_to", "" + n), i.location.href = a) : (this._debug( "Error redirection loop to " + o), this._removeState("redirect_to"), null != t.onRedirectError ? t.onRedirectError(this) : void 0)) }, t.prototype._isOrphan = function (t) { return null == t.element || !e(t.element) .length || e(t.element) .is(":hidden") && "http://www.w3.org/2000/svg" !== e(t.element)[0].namespaceURI }, t.prototype._isLast = function () { return this._current < this._options.steps.length - 1 }, t.prototype._showPopoverAndOverlay = function (e) { var t; if (this.getCurrentStep() === e && !this.ended()) return t = this.getStep(e), t .backdrop && this._showOverlayElement(t), this._showPopover(t, e), null != t .onShown && t.onShown(this), this._debug("Step " + (this._current + 1) + " of " + this._options.steps.length) }, t.prototype._showPopover = function (t, i) { var n, o, a, s, r; return e(".tour-" + this._options.name) .remove(), s = e.extend({}, this._options), a = this._isOrphan(t), t.template = this._template(t, i), a && (t.element = "body", t.placement = "top"), n = e(t .element), n.addClass("tour-" + this._options.name + "-element tour-" + this ._options.name + "-" + i + "-element"), t.options && e.extend(s, t.options), t .reflex && !a && e(t.reflexElement) .addClass("tour-step-element-reflex") .off(this._reflexEvent(t.reflex) + ".tour-" + this._options.name) .on(this._reflexEvent(t.reflex) + ".tour-" + this._options.name, function (e) { return function () { return e._isLast() ? e.next() : e.end() } }(this)), r = t.smartPlacement === !0 && -1 === t.placement.search(/auto/i), n .popover({ placement: r ? "auto " + t.placement : t.placement, trigger: "manual", title: t.title, content: t.content, html: !0, animation: t.animation, container: t.container, template: t.template, selector: t.element }) .popover("show"), o = n.data("bs.popover") ? n.data("bs.popover") .tip() : n.data("popover") .tip(), o.attr("id", t.id), "fixed" === n.css("position") && o.css("position", "fixed"), this._reposition(o, t), a ? this._center(o) : void 0 }, t.prototype._template = function (t, i) { var n, o, a, s, r, l; return l = t.template, this._isOrphan(t) && "[object Boolean]" !== {}.toString.call(t .orphan) && (l = t.orphan), r = e.isFunction(l) ? e(l(i, t)) : e(l), n = r .find(".popover-navigation"), a = n.find('[data-role="prev"]'), o = n.find( '[data-role="next"]'), s = n.find('[data-role="pause-resume"]'), this ._isOrphan(t) && r.addClass("orphan"), r.addClass("tour-" + this._options.name + " tour-" + this._options.name + "-" + i), t.reflex && r.addClass("tour-" + this._options.name + "-reflex"), t.prev < 0 && a.addClass("disabled") .prop("disabled", !0) .prop("tabindex", -1), t.next < 0 && o.addClass("disabled") .prop("disabled", !0) .prop("tabindex", -1), t.duration || s.remove(), r.clone() .wrap("
    ") .parent() .html() }, t.prototype._reflexEvent = function (e) { return "[object Boolean]" === {}.toString.call(e) ? "click" : e }, t.prototype._reposition = function (t, n) { var o, a, s, r, l, c, u; if (r = t[0].offsetWidth, a = t[0].offsetHeight, u = t.offset(), l = u.left, c = u .top, o = e(i) .outerHeight() - u.top - t.outerHeight(), 0 > o && (u.top = u.top + o), s = e( "html") .outerWidth() - u.left - t.outerWidth(), 0 > s && (u.left = u.left + s), u.top < 0 && (u.top = 0), u.left < 0 && (u.left = 0), t.offset(u), "bottom" === n .placement || "top" === n.placement) { if (l !== u.left) return this._replaceArrow(t, 2 * (u.left - l), r, "left") } else if (c !== u.top) return this._replaceArrow(t, 2 * (u.top - c), a, "top") }, t.prototype._center = function (t) { return t.css("top", e(window) .outerHeight() / 2 - t.outerHeight() / 2) }, t.prototype._replaceArrow = function (e, t, i, n) { return e.find(".arrow") .css(n, t ? 50 * (1 - t / i) + "%" : "") }, t.prototype._scrollIntoView = function (t) { var i, n, o, a, s, r, l, c; if (l = this.getStep(t), i = e(l.element), !i.length) return this ._showPopoverAndOverlay(t); switch (n = e(window), s = i.offset() .top, a = i.outerHeight(), c = n.height(), r = 0, l.placement) { case "top": r = Math.max(0, s - c / 2); break; case "left": case "right": r = Math.max(0, s + a / 2 - c / 2); break; case "bottom": r = Math.max(0, s + a - c / 2) } return this._debug("Scroll into view. ScrollTop: " + r + ". Element offset: " + s + ". Window height: " + c + "."), o = 0, e("body, html") .stop(!0, !0) .animate({ scrollTop: Math.ceil(r) }, function (e) { return function () { return 2 === ++o ? (e._showPopoverAndOverlay(t), e._debug( "Scroll into view.\nAnimation end element offset: " + i.offset() .top + ".\nWindow height: " + n.height() + ".")) : void 0 } }(this)) }, t.prototype._onResize = function (t, i) { return e(window) .on("resize.tour-" + this._options.name, function () { return clearTimeout(i), i = setTimeout(t, 100) }) }, t.prototype._onScroll = function (t, i) { return e(window) .on("scroll.tour-" + this._options.name, function () { return clearTimeout(i), i = setTimeout(t, 100) }) }, t.prototype._initMouseNavigation = function () { var t; return t = this, e(i) .off("click.tour-" + this._options.name, ".popover.tour-" + this._options.name + " *[data-role='prev']") .off("click.tour-" + this._options.name, ".popover.tour-" + this._options.name + " *[data-role='next']") .off("click.tour-" + this._options.name, ".popover.tour-" + this._options.name + " *[data-role='end']") .off("click.tour-" + this._options.name, ".popover.tour-" + this._options.name + " *[data-role='pause-resume']") .on("click.tour-" + this._options.name, ".popover.tour-" + this._options.name + " *[data-role='next']", function (e) { return function (t) { return t.preventDefault(), e.next() } }(this)) .on("click.tour-" + this._options.name, ".popover.tour-" + this._options.name + " *[data-role='prev']", function (e) { return function (t) { return t.preventDefault(), e._current > 0 ? e.prev() : void 0 } }(this)) .on("click.tour-" + this._options.name, ".popover.tour-" + this._options.name + " *[data-role='end']", function (e) { return function (t) { return t.preventDefault(), e.end() } }(this)) .on("click.tour-" + this._options.name, ".popover.tour-" + this._options.name + " *[data-role='pause-resume']", function (i) { var n; return i.preventDefault(), n = e(this), n.text(t._paused ? n.data( "pause-text") : n.data("resume-text")), t._paused ? t.resume() : t .pause() }) }, t.prototype._initKeyboardNavigation = function () { return this._options.keyboard ? e(i) .on("keyup.tour-" + this._options.name, function (e) { return function (t) { if (t.which) switch (t.which) { case 39: return t.preventDefault(), e._isLast() ? e.next() : e .end(); case 37: if (t.preventDefault(), e._current > 0) return e.prev() } } }(this)) : void 0 }, t.prototype._makePromise = function (t) { return t && e.isFunction(t.then) ? t : null }, t.prototype._callOnPromiseDone = function (e, t, i) { return e ? e.then(function (e) { return function () { return t.call(e, i) } }(this)) : t.call(this, i) }, t.prototype._showBackground = function (t, n) { var o, a, s, r, l, c, u, d, h; for (s = e(i) .height(), h = e(i) .width(), u = ["top", "bottom", "left", "right"], d = [], r = 0, l = u.length; l > r; r++) switch (c = u[r], o = null != (a = this.backdrops)[c] ? a[c] : a[c] = e( "
    ", { "class": "tour-backdrop " + c }), e(t.backdropContainer) .append(o), c) { case "top": d.push(o.height(n.offset.top > 0 ? n.offset.top : 0) .width(h) .offset({ top: 0, left: 0 })); break; case "bottom": d.push(o.offset({ top: n.offset.top + n.height, left: 0 }) .height(s - (n.offset.top + n.height)) .width(h)); break; case "left": d.push(o.offset({ top: n.offset.top, left: 0 }) .height(n.height) .width(n.offset.left > 0 ? n.offset.left : 0)); break; case "right": d.push(o.offset({ top: n.offset.top, left: n.offset.left + n.width }) .height(n.height) .width(h - (n.offset.left + n.width))); break; default: d.push(void 0) } return d }, t.prototype._showOverlayElement = function (t) { var i, n; return i = e(t.backdropElement), 0 === i.length ? n = { width: 0, height: 0, offset: { top: 0, left: 0 } } : (n = { width: i.innerWidth(), height: i.innerHeight(), offset: i.offset() }, i.addClass("tour-step-backdrop"), t.backdropPadding && (n = this ._applyBackdropPadding(t.backdropPadding, n))), this._showBackground(t, n) }, t.prototype._hideOverlayElement = function (t) { var i, n, o; e(t.backdropElement) .removeClass("tour-step-backdrop"), o = this.backdrops; for (n in o) i = o[n], i && void 0 !== i.remove && i.remove(); return this.backdrops = [] }, t.prototype._applyBackdropPadding = function (e, t) { return "object" == typeof e ? (null == e.top && (e.top = 0), null == e.right && (e .right = 0), null == e.bottom && (e.bottom = 0), null == e.left && (e .left = 0), t.offset.top = t.offset.top - e.top, t.offset.left = t.offset .left - e.left, t.width = t.width + e.left + e.right, t.height = t.height + e .top + e.bottom) : (t.offset.top = t.offset.top - e, t.offset.left = t.offset .left - e, t.width = t.width + 2 * e, t.height = t.height + 2 * e), t }, t.prototype._clearTimer = function () { return window.clearTimeout(this._timer), this._timer = null, this._duration = null }, t.prototype._getProtocol = function (e) { return e = e.split("://"), e.length > 1 ? e[0] : "http" }, t.prototype._getHost = function (e) { return e = e.split("//"), e = e.length > 1 ? e[1] : e[0], e.split("/")[0] }, t.prototype._getPath = function (e) { return e.replace(/\/?$/, "") .split("?")[0].split("#")[0] }, t.prototype._getQuery = function (e) { return this._getParams(e, "?") }, t.prototype._getHash = function (e) { return this._getParams(e, "#") }, t.prototype._getParams = function (e, t) { var i, n, o, a, s; if (a = e.split(t), 1 === a.length) return {}; for (a = a[1].split("&"), s = {}, i = 0, n = a.length; n > i; i++) o = a[i], o = o .split("="), s[o[0]] = o[1] || ""; return s }, t.prototype._equal = function (e, t) { var i, n, o, a, s, r; if ("[object Object]" === {}.toString.call(e) && "[object Object]" === {}.toString .call(t)) { if (a = Object.keys(e), s = Object.keys(t), a.length !== s.length) return !1; for (n in e) if (r = e[n], !this._equal(t[n], r)) return !1; return !0 } if ("[object Array]" === {}.toString.call(e) && "[object Array]" === {}.toString.call( t)) { if (e.length !== t.length) return !1; for (n = i = 0, o = e.length; o > i; n = ++i) if (r = e[n], !this._equal(r, t[n])) return !1; return !0 } return e === t }, t }() }); var tutorial = function () { return { init: function (e, t) { this.current_tour_config = null, this.current_tour = null, this.current_step = 0, this .continue_tutorial = !1, this.tutorialView = t, this.coin_rewards = 0, this .continue_tutorial = e, this.loadTutorial(tutorial.tutorialLoadedHandler) }, start: function () { null != this.current_tour && this.current_tour.end(), null != this.current_tour_config && (this.current_tour = new Tour(tour_config), this.current_tour.init(), this.goToStep( tutorial.current_step), this.current_tour.start()) }, restart: function () { null == this.current_tour || this.current_tour.ended() || this.goToStep(0) }, goToStep: function (e) { this.current_tour.goTo(e) }, loadTutorial: function (e) { null != tutorial.current_tour && tutorial.current_tour.ended() || $.ajax({ type: "GET", dataType: "json", url: "/tutorials/current", cache: !1, success: function (t) { t ? e(t) : (tutorial.lightBoxCloseListener = null, tutorial .newMissionListener = null) } }) }, tutorialLoadedHandler: function (e) { tutorial.continue_tutorial && (tutorial.current_step = e.current_step), tutorial .coin_rewards = e.coin_rewards, tutorial.load_config(e.tutorial_identifier, tutorial .tutorialConfigLoadedHandler) }, tutorialConfigLoadedHandler: function (e) { tutorial.setCurrentTourConfig(e), registerTutorial(this.tutorialView), tutorial .append_close_tutorial_modal() }, load_config: function (e, t) { $.ajax({ type: "GET", dataType: "script", cache: !1, url: "/tutorials/" + e + ".js", success: function (e) { null != e && e.trim() .length && t(e) } }) }, setCurrentStep: function (e) { this.current_step = e, this.trackStep(e) }, trackStep: function (e) { tutorial.current_tour.ended() || $.ajax({ type: "POST", url: "/tutorials/track", data: "step=" + e, cache: !1 }) }, finish: function () { $.ajax({ type: "POST", url: "/tutorials/finish", data: { identifier: tutorial.current_tour._options.name, completed: this.current_step + 1 === tutorial.current_tour._options.steps .length }, cache: !1, success: function () { tutorial.mobileComplete(), tutorial.init() } }) }, complete: function () { this.isRunning() && this.current_tour.end() }, setCurrentTourConfig: function (e) { this.current_tour_config = e }, isRunning: function () { return void 0 != this.current_tour && !this.current_tour.ended() }, mobileStep: function (e) { this.isRunning() && mobileBridgeAdd("tutorial_step", { step: this.current_step, mobile_view: e.mobile_view, mobile_rendering: e.mobile_rendering, mobile_next_step: e.mobile_next_step, content: e.content, enable_back_button: e.mobile_enable_back_button }) }, mobileComplete: function () { mobileBridgeAdd("tutorial_completed", {}) }, mobileCloseLightbox: function () { mobileBridgeAdd("close", {}) }, callBuildingLoadContentListener: function (e) { null != this.buildingLoadContentListener && (this.buildingLoadContentListener(), e && ( this.buildingLoadContentListener = null)) }, setBuildingLoadContentListener: function (e) { this.buildingLoadContentListener = e }, callNewMissionListener: function (e) { null != this.newMissionListener && (this.newMissionListener(), e && (this .newMissionListener = null)) }, setNewMissionListener: function (e) { this.newMissionListener = e }, callLightBoxCloseListener: function () { null != this.lightBoxCloseListener && this.lightBoxCloseListener() }, setLightBoxCloseListener: function (e) { this.lightBoxCloseListener = e }, append_close_tutorial_modal: function () { $("body") .append( '") }, close_tutorial: function () { $("#close_tutorial_modal") .modal("hide"), this.current_tour.end() } } }(); /* * JS Storage Plugin * * Copyright (c) 2019 Julien Maurel * * Licensed under the MIT license: * http://www.opensource.org/licenses/mit-license.php * * Project home: * https://github.com/julien-maurel/js-storage * * Version: 1.1.0 */ ! function (e) { var t = !1; if ("function" == typeof define && define.amd && (define(e), t = !0), "object" == typeof exports && ( module.exports = e(), t = !0), !t) { var i = window.Storages, n = window.Storages = e(); n.noConflict = function () { return window.Storages = i, n } } }(function () { function e() { var e, t, i, n, o, a = this._type, s = arguments.length, r = window[a], l = arguments, c = l[0]; if (1 > s) throw new Error("Minimum 1 argument must be given"); if (Array.isArray(c)) { t = {}; for (n in c) if (c.hasOwnProperty(n)) { e = c[n]; try { t[e] = JSON.parse(r.getItem(e)) } catch (u) { t[e] = r.getItem(e) } } return t } if (1 != s) { try { if (t = JSON.parse(r.getItem(c)), !t) throw new ReferenceError(c + " is not defined in this storage") } catch (u) { throw new ReferenceError(c + " is not defined in this storage") } for (n = 1; s - 1 > n; n++) if (t = t[l[n]], void 0 === t) throw new ReferenceError([].slice.call(l, 0, n + 1) .join(".") + " is not defined in this storage"); if (Array.isArray(l[n])) { i = t, t = {}; for (o in l[n]) l[n].hasOwnProperty(o) && (t[l[n][o]] = i[l[n][o]]); return t } return t[l[n]] } try { return JSON.parse(r.getItem(c)) } catch (u) { return r.getItem(c) } } function t() { var e, t, i, n, o = this._type, a = arguments.length, s = window[o], r = arguments, l = r[0], u = r[1], d = isNaN(u) ? {} : []; if (1 > a || !c(l) && 2 > a) throw new Error( "Minimum 2 arguments must be given or first parameter must be an object"); if (c(l)) { for (n in l) l.hasOwnProperty(n) && (e = l[n], c(e) || this.alwaysUseJson ? s.setItem(n, JSON .stringify(e)) : s.setItem(n, e)); return l } if (2 == a) return "object" == typeof u || this.alwaysUseJson ? s.setItem(l, JSON.stringify(u)) : s.setItem(l, u), u; try { i = s.getItem(l), null != i && (d = JSON.parse(i)) } catch (h) {} for (i = d, n = 1; a - 2 > n; n++) e = r[n], t = isNaN(r[n + 1]) ? "object" : "array", (!i[e] || "object" == t && !c(i[e]) || "array" == t && !Array.isArray(i[e])) && (i[e] = "array" == t ? [] : {}), i = i[e]; return i[r[n]] = r[n + 1], s.setItem(l, JSON.stringify(d)), d } function i() { var e, t, i, n, o = this._type, a = arguments.length, s = window[o], r = arguments, l = r[0]; if (1 > a) throw new Error("Minimum 1 argument must be given"); if (Array.isArray(l)) { for (i in l) l.hasOwnProperty(i) && s.removeItem(l[i]); return !0 } if (1 == a) return s.removeItem(l), !0; try { e = t = JSON.parse(s.getItem(l)) } catch (c) { throw new ReferenceError(l + " is not defined in this storage") } for (i = 1; a - 1 > i; i++) if (t = t[r[i]], void 0 === t) throw new ReferenceError([].slice.call(r, 1, i) .join(".") + " is not defined in this storage"); if (Array.isArray(r[i])) for (n in r[i]) r[i].hasOwnProperty(n) && delete t[r[i][n]]; else delete t[r[i]]; return s.setItem(l, JSON.stringify(e)), !0 } function n(e) { var t, n = s.call(this); for (t in n) n.hasOwnProperty(t) && i.call(this, n[t]); if (e) for (t in v.namespaceStorages) v.namespaceStorages.hasOwnProperty(t) && r(t) } function o() { var t, i = arguments.length, n = arguments, a = n[0]; if (0 == i) return 0 == s.call(this) .length; if (Array.isArray(a)) { for (t = 0; t < a.length; t++) if (!o.call(this, a[t])) return !1; return !0 } try { var r = e.apply(this, arguments); Array.isArray(n[i - 1]) || (r = { totest: r }); for (t in r) if (r.hasOwnProperty(t) && !(c(r[t]) && u(r[t]) || Array.isArray(r[t]) && !r[t].length || "boolean" != typeof r[t] && !r[t])) return !1; return !0 } catch (l) { return !0 } } function a() { var t, i = arguments.length, n = arguments, o = n[0]; if (1 > i) throw new Error("Minimum 1 argument must be given"); if (Array.isArray(o)) { for (t = 0; t < o.length; t++) if (!a.call(this, o[t])) return !1; return !0 } try { var s = e.apply(this, arguments); Array.isArray(n[i - 1]) || (s = { totest: s }); for (t in s) if (s.hasOwnProperty(t) && (void 0 === s[t] || null === s[t])) return !1; return !0 } catch (r) { return !1 } } function s() { var t = this._type, i = arguments.length, n = window[t], o = [], a = {}; if (a = i > 0 ? e.apply(this, arguments) : n, a && a._cookie) { var s = Cookies.get(); for (var r in s) s.hasOwnProperty(r) && "" != r && o.push(r.replace(a._prefix, "")) } else for (var l in a) a.hasOwnProperty(l) && o.push(l); return o } function r(e) { if (!e || "string" != typeof e) throw new Error("First parameter must be a string"); w ? (window.localStorage.getItem(e) || window.localStorage.setItem(e, "{}"), window.sessionStorage .getItem(e) || window.sessionStorage.setItem(e, "{}")) : (window.localCookieStorage .getItem(e) || window.localCookieStorage.setItem(e, "{}"), window.sessionCookieStorage .getItem(e) || window.sessionCookieStorage.setItem(e, "{}")); var t = { localStorage: d({}, v.localStorage, { _ns: e }), sessionStorage: d({}, v.sessionStorage, { _ns: e }) }; return k && (window.cookieStorage.getItem(e) || window.cookieStorage.setItem(e, "{}"), t .cookieStorage = d({}, v.cookieStorage, { _ns: e })), v.namespaceStorages[e] = t, t } function l(e) { var t = "jsapi"; try { return window[e] ? (window[e].setItem(t, t), window[e].removeItem(t), !0) : !1 } catch (i) { return !1 } } function c(e) { var t, i; return e && "[object Object]" === p.call(e) ? (t = g(e)) ? (i = m.call(t, "constructor") && t .constructor, "function" == typeof i && _.call(i) === f) : !0 : !1 } function u(e) { var t; for (t in e) return !1; return !0 } function d() { for (var e = 1, t = arguments[0]; e < arguments.length; e++) { var i = arguments[e]; for (var n in i) i.hasOwnProperty(n) && (t[n] = i[n]) } return t } var h = {}, p = h.toString, m = h.hasOwnProperty, _ = m.toString, f = _.call(Object), g = Object.getPrototypeOf, v = {}, b = "ls_", y = "ss_", w = l("localStorage"), k = "undefined" != typeof Cookies, x = { _type: "", _ns: "", _callMethod: function (e, t) { t = Array.prototype.slice.call(t); var i = [], n = t[0]; return this._ns && i.push(this._ns), "string" == typeof n && -1 !== n.indexOf(".") && (t.shift(), [].unshift.apply(t, n.split("."))), [].push.apply(i, t), e.apply(this, i) }, alwaysUseJson: !1, get: function () { return w || k ? this._callMethod(e, arguments) : null }, set: function () { var e = arguments.length, i = arguments, n = i[0]; if (1 > e || !c(n) && 2 > e) throw new Error( "Minimum 2 arguments must be given or first parameter must be an object"); if (!w && !k) return null; if (c(n) && this._ns) { for (var o in n) n.hasOwnProperty(o) && this._callMethod(t, [o, n[o]]); return n } var a = this._callMethod(t, i); return this._ns ? a[n.split(".")[0]] : a }, remove: function () { if (arguments.length < 1) throw new Error("Minimum 1 argument must be given"); return w || k ? this._callMethod(i, arguments) : null }, removeAll: function (e) { return w || k ? this._ns ? (this._callMethod(t, [{}]), !0) : this._callMethod(n, [ e]) : null }, isEmpty: function () { return w || k ? this._callMethod(o, arguments) : null }, isSet: function () { if (arguments.length < 1) throw new Error("Minimum 1 argument must be given"); return w || k ? this._callMethod(a, arguments) : null }, keys: function () { return w || k ? this._callMethod(s, arguments) : null } }; if (k) { window.name || (window.name = Math.floor(1e8 * Math.random())); var C = { _cookie: !0, _prefix: "", _expires: null, _path: null, _domain: null, _secure: !1, setItem: function (e, t) { Cookies.set(this._prefix + e, t, { expires: this._expires, path: this._path, domain: this._domain, secure: this._secure }) }, getItem: function (e) { return Cookies.get(this._prefix + e) }, removeItem: function (e) { return Cookies.remove(this._prefix + e, { path: this._path }) }, clear: function () { var e = Cookies.get(); for (var t in e) e.hasOwnProperty(t) && "" != t && (!this._prefix && -1 === t .indexOf(b) && -1 === t.indexOf(y) || this._prefix && 0 === t.indexOf(this ._prefix)) && Cookies.remove(t) }, setExpires: function (e) { return this._expires = e, this }, setPath: function (e) { return this._path = e, this }, setDomain: function (e) { return this._domain = e, this }, setSecure: function (e) { return this._secure = e, this }, setConf: function (e) { return e.path && (this._path = e.path), e.domain && (this._domain = e.domain), e .secure && (this._secure = e.secure), e.expires && (this._expires = e .expires), this }, setDefaultConf: function () { this._path = this._domain = this._expires = null, this._secure = !1 } }; w || (window.localCookieStorage = d({}, C, { _prefix: b, _expires: 3650, _secure: !0 }), window.sessionCookieStorage = d({}, C, { _prefix: y + window.name + "_", _secure: !0 })), window.cookieStorage = d({}, C), v.cookieStorage = d({}, x, { _type: "cookieStorage", setExpires: function (e) { return window.cookieStorage.setExpires(e), this }, setPath: function (e) { return window.cookieStorage.setPath(e), this }, setDomain: function (e) { return window.cookieStorage.setDomain(e), this }, setSecure: function (e) { return window.cookieStorage.setSecure(e), this }, setConf: function (e) { return window.cookieStorage.setConf(e), this }, setDefaultConf: function () { return window.cookieStorage.setDefaultConf(), this } }) } return v.initNamespaceStorage = function (e) { return r(e) }, w ? (v.localStorage = d({}, x, { _type: "localStorage" }), v.sessionStorage = d({}, x, { _type: "sessionStorage" })) : (v.localStorage = d({}, x, { _type: "localCookieStorage" }), v.sessionStorage = d({}, x, { _type: "sessionCookieStorage" })), v.namespaceStorages = {}, v.removeAllStorages = function (e) { v.localStorage.removeAll(e), v.sessionStorage.removeAll(e), v.cookieStorage && v.cookieStorage .removeAll(e), e || (v.namespaceStorages = {}) }, v.alwaysUseJsonInStorage = function (e) { x.alwaysUseJson = e, v.localStorage.alwaysUseJson = e, v.sessionStorage.alwaysUseJson = e, v .cookieStorage && (v.cookieStorage.alwaysUseJson = e) }, v }), ! function (e) { var t; if ("function" == typeof define && define.amd && (define(e), t = !0), "object" == typeof exports && ( module.exports = e(), t = !0), !t) { var i = window.Cookies, n = window.Cookies = e(); n.noConflict = function () { return window.Cookies = i, n } } }(function () { function e() { for (var e = 0, t = {}; e < arguments.length; e++) { var i = arguments[e]; for (var n in i) t[n] = i[n] } return t } function t(e) { return e.replace(/(%[0-9A-Z]{2})+/g, decodeURIComponent) } function i(n) { function o() {} function a(t, i, a) { if ("undefined" != typeof document) { a = e({ path: "/" }, o.defaults, a), "number" == typeof a.expires && (a.expires = new Date(1 * new Date + 864e5 * a.expires)), a.expires = a.expires ? a.expires.toUTCString() : ""; try { var s = JSON.stringify(i); /^[\{\[]/.test(s) && (i = s) } catch (r) {} i = n.write ? n.write(i, t) : encodeURIComponent(i + "") .replace(/%(23|24|26|2B|3A|3C|3E|3D|2F|3F|40|5B|5D|5E|60|7B|7D|7C)/g, decodeURIComponent), t = encodeURIComponent(t + "") .replace(/%(23|24|26|2B|5E|60|7C)/g, decodeURIComponent) .replace(/[\(\)]/g, escape); var l = ""; for (var c in a) a[c] && (l += "; " + c, !0 !== a[c] && (l += "=" + a[c].split(";")[0])); return document.cookie = t + "=" + i + l } } function s(e, i) { if ("undefined" != typeof document) { for (var o = {}, a = document.cookie ? document.cookie.split("; ") : [], s = 0; s < a .length; s++) { var r = a[s].split("="), l = r.slice(1) .join("="); i || '"' !== l.charAt(0) || (l = l.slice(1, -1)); try { var c = t(r[0]); if (l = (n.read || n)(l, c) || t(l), i) try { l = JSON.parse(l) } catch (u) {} if (o[c] = l, e === c) break } catch (u) {} } return e ? o[e] : o } } return o.set = a, o.get = function (e) { return s(e, !1) }, o.getJSON = function (e) { return s(e, !0) }, o.remove = function (t, i) { a(t, "", e(i, { expires: -1 })) }, o.defaults = {}, o.withConverter = i, o } return i(function () {}) }); var STORAGE_KEY_MOBILE_CLIENT_ID = "mc_mobile_client_id", STORAGE_KEY_UNIQUE_CLIENT_ID = "mc_unique_client_id", STORAGE_KEY_DEACTIVE_MISSION_SELECTION = "deactive_m_selection", STORAGE_KEY_DEACTIVE_BUILDING_SELECTION = "deactive_selection", STORAGE_KEY_BIG_MAP_WINDOW_POSITIONS = "bigMapWindowPosition", mc_storage = function () { return { get: function (e) { return this.getFromStorages(Storages, e) }, setToLocalStorage: function (e, t) { Storages.localStorage.set(e, t) }, setToSessionStorage: function (e, t) { Storages.sessionStorage.set(e, t) }, setToCookieStorage: function (e, t) { Storages.cookieStorage.setExpires(356) .set(e, t) }, getFromNameSpacedStorage: function (e, t) { return this.getFromStorages(this.getNameSpacedStorage(e), t) }, setToNameSpacedLocalStorage: function (e, t, i) { this.getNameSpacedStorage(e) .localStorage.set(t, i) }, setToNameSpacedSessionStorage: function (e, t, i) { this.getNameSpacedStorage(e) .sessionStorage.set(t, i) }, setToNameSpacedCookieStorage: function (e, t, i) { this.getNameSpacedStorage(e) .cookieStorage.set(t, i) }, getNameSpacedStorage: function (e) { return Storages.initNamespaceStorage(e) }, getFromStorages: function (e, t) { var i; return e.cookieStorage.isSet(t) ? i = e.cookieStorage.get(t) : e.localStorage.isSet(t) ? i = e.localStorage.get(t) : e.sessionStorage.isSet(t) && (i = e.sessionStorage.get( t)), i } } }(), map_pois_service = function () { var e = Array(); return { getMissionPoiMarkersArray: function () { return e }, leafletMissionPositionMarkerAdd: function (t) { var i = L.icon({ iconUrl: "/images/letter_p.png", iconSize: [32, 37], iconAnchor: iconAnchorCalculate([32, 37]) }); marker = L.marker([t.latitude, t.longitude], { icon: i }) .bindTooltip(t.caption); var n = function (e) { confirm(I18n.t("javascript.poi_delete", { caption: t.caption })) && (map_pois_service.leafletMissionPositionMarkerDelete(e.target ._leaflet_id), $.ajax({ url: "/mission_positions/" + t.id, type: "POST", data: { _method: "delete" }, cache: !1 })) }; marker.on("click", n), marker.id = t.id, marker.addTo(map_filters_service .getMapFiltersLayers() .pois), e.push(marker) }, leafletMissionPositionMarkerDelete: function (t) { marker = map_filters_service.getMapFiltersLayers() .pois.getLayer(t), map_filters_service.getMapFiltersLayers() .pois.removeLayer(t), index = e.indexOf(marker), -1 !== index && e.splice(index, 1) }, mapkitMissionPositionMarkerAdd: function (t) { var i = function () { confirm(I18n.t("javascript.poi_delete", { caption: t.caption })) && (this.mapkitMissionPositionMarkerDelete(t.id), $.ajax({ url: "/mission_positions/" + t.id, type: "POST", data: { _method: "delete" }, cache: !1 })) }; if ("undefined" != typeof mapkit) { var n = new mapkit.ImageAnnotation(new mapkit.Coordinate(t.latitude, t.longitude), { url: { 1: "/images/letter_p.png" } }); n.title = t.caption, n.addEventListener("select", i), map.addAnnotation(n), n.element .className = "mapkit-marker" } n.id = t.id, e.push(n) }, mapkitMissionPositionMarkerDelete: function (t) { $.each(e, function (e, i) { i.id == t && map.removeAnnotation(i) }) }, mapkitMissionPositionMarkerDeleteAll: function () { $.each(e, function (e, t) { map.removeAnnotation(t) }), e = Array() } } }(), map_filters_service = function () { var e, t, i = {}, n = {}, o = {}, a = {}, s = !1; return { initialize: function (s) { o = s.building_types_collection, e = s.mission_types_collection, a = s .mission_types_with_filter_ids, t = s.user_id, $.each(s.sorted_map_filters, function () { filter_layer = L.layerGroup(), n[map_filters_service.decorateFilterText(this .text, this.filter_id)] = filter_layer, i[this.filter_id] = filter_layer }) }, getMapFiltersLayersForMap: function () { return n }, getMapFiltersLayers: function () { return i }, getFilterLayerByBuildingParams: function (e) { switch (!0) { case e.user_id == t && "undefined" != typeof o[e.building_type]: return i[o[e.building_type]] || map; case e.user_id != t && null != e.user_id: return i.alliance_members || map; case null == e.user_id: return i.alliance_buildings || map; default: return map } }, getFilterLayerByMissionParams: function (e) { switch (!0) { case e.user_id == t && "undefined" != typeof a[e.mtid]: return i[a[e.mtid]]; case e.user_id != t: return i.alliance_missions; default: return map } }, onOverlayChanged: function (e) { filter_key = Object.keys(i) .find(function (t) { return i[t] === e.layer }), filter_checked = "overlayadd" == e.type, s || ($.ajax({ type: "PUT", url: "/map_filters", data: { filter_id: filter_key, checked: filter_checked }, cache: !1 }), ("all_buildings" == filter_key || "user_buildings" == filter_key || "all_missions" == filter_key || "user_missions" == filter_key) && (s = !0, setTimeout(function () { map_filters_service.massFiltersChange(filter_key, filter_checked) }, 0))) }, massFiltersChange: function (t, n) { switch (filters_keys = [], !0) { case "all_buildings" == t: filters_keys = Object.values(o) .concat(["user_buildings", "alliance_buildings", "alliance_members"]); break; case "user_buildings" == t: filters_keys = Object.values(o); break; case "all_missions" == t: filters_keys = e.concat(["user_missions", "alliance_missions"]); break; case "user_missions" == t: filters_keys = e } $.each(filters_keys, function (e, t) { void 0 !== i[t] ? n ? map.addLayer(i[t]) : map.removeLayer(i[t]) : console .log("missing filter layer: " + t) }), s = !1 }, decorateFilterText: function (t, i) { var n = function (e, t, i) { return "" + e + "" }; switch (!0) { case Object.values(o) .includes(i): return n(t, "third", "building-filter"); case e.includes(i): return n(t, "third", "mission-filter"); case "all_buildings" == i: return n(t, "first", "all-buildings-filter"); case "all_missions" == i: return n(t, "first", "all-missions-filter"); case "pois" == i: return n(t, "first", "app-pois-filter"); case "user_buildings" == i: return n(t, "second", "user-buildings-filter"); case "user_missions" == i: return n(t, "second", "user-missions-filter"); case ["alliance_buildings", "alliance_members"].includes(i): return n(t, "second", "alliance-buildings-filter"); case "alliance_missions" == i: return n(t, "second", "alliance-missions-filter"); default: return t } } } }(); mobile_map_filters_collection = {}, ! function (e, t) { "function" == typeof define && define.amd ? define("jquery-bridget/jquery-bridget", ["jquery"], function (i) { return t(e, i) }) : "object" == typeof module && module.exports ? module.exports = t(e, require("jquery")) : e.jQueryBridget = t(e, e.jQuery) }(window, function (e, t) { "use strict"; function i(i, a, r) { function l(e, t, n) { var o, a = "$()." + i + '("' + t + '")'; return e.each(function (e, l) { var c = r.data(l, i); if (!c) return void s(i + " not initialized. Cannot call methods, i.e. " + a); var u = c[t]; if (!u || "_" == t.charAt(0)) return void s(a + " is not a valid method"); var d = u.apply(c, n); o = void 0 === o ? d : o }), void 0 !== o ? o : e } function c(e, t) { e.each(function (e, n) { var o = r.data(n, i); o ? (o.option(t), o._init()) : (o = new a(n, t), r.data(n, i, o)) }) } r = r || t || e.jQuery, r && (a.prototype.option || (a.prototype.option = function (e) { r.isPlainObject(e) && (this.options = r.extend(!0, this.options, e)) }), r.fn[i] = function (e) { if ("string" == typeof e) { var t = o.call(arguments, 1); return l(this, e, t) } return c(this, e), this }, n(r)) } function n(e) { !e || e && e.bridget || (e.bridget = i) } var o = Array.prototype.slice, a = e.console, s = "undefined" == typeof a ? function () {} : function (e) { a.error(e) }; return n(t || e.jQuery), i }), function (e, t) { "function" == typeof define && define.amd ? define("ev-emitter/ev-emitter", t) : "object" == typeof module && module.exports ? module.exports = t() : e.EvEmitter = t() }("undefined" != typeof window ? window : this, function () { function e() {} var t = e.prototype; return t.on = function (e, t) { if (e && t) { var i = this._events = this._events || {}, n = i[e] = i[e] || []; return -1 == n.indexOf(t) && n.push(t), this } }, t.once = function (e, t) { if (e && t) { this.on(e, t); var i = this._onceEvents = this._onceEvents || {}, n = i[e] = i[e] || {}; return n[t] = !0, this } }, t.off = function (e, t) { var i = this._events && this._events[e]; if (i && i.length) { var n = i.indexOf(t); return -1 != n && i.splice(n, 1), this } }, t.emitEvent = function (e, t) { var i = this._events && this._events[e]; if (i && i.length) { i = i.slice(0), t = t || []; for (var n = this._onceEvents && this._onceEvents[e], o = 0; o < i.length; o++) { var a = i[o], s = n && n[a]; s && (this.off(e, a), delete n[a]), a.apply(this, t) } return this } }, t.allOff = function () { delete this._events, delete this._onceEvents }, e }), function (e, t) { "function" == typeof define && define.amd ? define("get-size/get-size", t) : "object" == typeof module && module.exports ? module.exports = t() : e.getSize = t() }(window, function () { "use strict"; function e(e) { var t = parseFloat(e), i = -1 == e.indexOf("%") && !isNaN(t); return i && t } function t() {} function i() { for (var e = { width: 0, height: 0, innerWidth: 0, innerHeight: 0, outerWidth: 0, outerHeight: 0 }, t = 0; c > t; t++) { var i = l[t]; e[i] = 0 } return e } function n(e) { var t = getComputedStyle(e); return t || r("Style returned " + t + ". Are you running this code in a hidden iframe on Firefox? See https://bit.ly/getsizebug1" ), t } function o() { if (!u) { u = !0; var t = document.createElement("div"); t.style.width = "200px", t.style.padding = "1px 2px 3px 4px", t.style.borderStyle = "solid", t.style.borderWidth = "1px 2px 3px 4px", t.style.boxSizing = "border-box"; var i = document.body || document.documentElement; i.appendChild(t); var o = n(t); s = 200 == Math.round(e(o.width)), a.isBoxSizeOuter = s, i.removeChild(t) } } function a(t) { if (o(), "string" == typeof t && (t = document.querySelector(t)), t && "object" == typeof t && t.nodeType) { var a = n(t); if ("none" == a.display) return i(); var r = {}; r.width = t.offsetWidth, r.height = t.offsetHeight; for (var u = r.isBorderBox = "border-box" == a.boxSizing, d = 0; c > d; d++) { var h = l[d], p = a[h], m = parseFloat(p); r[h] = isNaN(m) ? 0 : m } var _ = r.paddingLeft + r.paddingRight, f = r.paddingTop + r.paddingBottom, g = r.marginLeft + r.marginRight, v = r.marginTop + r.marginBottom, b = r.borderLeftWidth + r.borderRightWidth, y = r.borderTopWidth + r.borderBottomWidth, w = u && s, k = e(a.width); k !== !1 && (r.width = k + (w ? 0 : _ + b)); var x = e(a.height); return x !== !1 && (r.height = x + (w ? 0 : f + y)), r.innerWidth = r.width - (_ + b), r .innerHeight = r.height - (f + y), r.outerWidth = r.width + g, r.outerHeight = r .height + v, r } } var s, r = "undefined" == typeof console ? t : function (e) { console.error(e) }, l = ["paddingLeft", "paddingRight", "paddingTop", "paddingBottom", "marginLeft", "marginRight", "marginTop", "marginBottom", "borderLeftWidth", "borderRightWidth", "borderTopWidth", "borderBottomWidth"], c = l.length, u = !1; return a }), function (e, t) { "use strict"; "function" == typeof define && define.amd ? define("desandro-matches-selector/matches-selector", t) : "object" == typeof module && module.exports ? module.exports = t() : e.matchesSelector = t() }(window, function () { "use strict"; var e = function () { var e = window.Element.prototype; if (e.matches) return "matches"; if (e.matchesSelector) return "matchesSelector"; for (var t = ["webkit", "moz", "ms", "o"], i = 0; i < t.length; i++) { var n = t[i], o = n + "MatchesSelector"; if (e[o]) return o } }(); return function (t, i) { return t[e](i) } }), function (e, t) { "function" == typeof define && define.amd ? define("fizzy-ui-utils/utils", [ "desandro-matches-selector/matches-selector"], function (i) { return t(e, i) }) : "object" == typeof module && module.exports ? module.exports = t(e, require( "desandro-matches-selector")) : e.fizzyUIUtils = t(e, e.matchesSelector) }(window, function (e, t) { var i = {}; i.extend = function (e, t) { for (var i in t) e[i] = t[i]; return e }, i.modulo = function (e, t) { return (e % t + t) % t }; var n = Array.prototype.slice; i.makeArray = function (e) { if (Array.isArray(e)) return e; if (null === e || void 0 === e) return []; var t = "object" == typeof e && "number" == typeof e.length; return t ? n.call(e) : [e] }, i.removeFrom = function (e, t) { var i = e.indexOf(t); - 1 != i && e.splice(i, 1) }, i.getParent = function (e, i) { for (; e.parentNode && e != document.body;) if (e = e.parentNode, t(e, i)) return e }, i.getQueryElement = function (e) { return "string" == typeof e ? document.querySelector(e) : e }, i.handleEvent = function (e) { var t = "on" + e.type; this[t] && this[t](e) }, i.filterFindElements = function (e, n) { e = i.makeArray(e); var o = []; return e.forEach(function (e) { if (e instanceof HTMLElement) { if (!n) return void o.push(e); t(e, n) && o.push(e); for (var i = e.querySelectorAll(n), a = 0; a < i.length; a++) o.push(i[a]) } }), o }, i.debounceMethod = function (e, t, i) { i = i || 100; var n = e.prototype[t], o = t + "Timeout"; e.prototype[t] = function () { var e = this[o]; clearTimeout(e); var t = arguments, a = this; this[o] = setTimeout(function () { n.apply(a, t), delete a[o] }, i) } }, i.docReady = function (e) { var t = document.readyState; "complete" == t || "interactive" == t ? setTimeout(e) : document.addEventListener( "DOMContentLoaded", e) }, i.toDashed = function (e) { return e.replace(/(.)([A-Z])/g, function (e, t, i) { return t + "-" + i }) .toLowerCase() }; var o = e.console; return i.htmlInit = function (t, n) { i.docReady(function () { var a = i.toDashed(n), s = "data-" + a, r = document.querySelectorAll("[" + s + "]"), l = document.querySelectorAll(".js-" + a), c = i.makeArray(r) .concat(i.makeArray(l)), u = s + "-options", d = e.jQuery; c.forEach(function (e) { var i, a = e.getAttribute(s) || e.getAttribute(u); try { i = a && JSON.parse(a) } catch (r) { return void(o && o.error("Error parsing " + s + " on " + e .className + ": " + r)) } var l = new t(e, i); d && d.data(e, n, l) }) }) }, i }), function (e, t) { "function" == typeof define && define.amd ? define("outlayer/item", ["ev-emitter/ev-emitter", "get-size/get-size"], t) : "object" == typeof module && module.exports ? module.exports = t( require("ev-emitter"), require("get-size")) : (e.Outlayer = {}, e.Outlayer.Item = t(e .EvEmitter, e.getSize)) }(window, function (e, t) { "use strict"; function i(e) { for (var t in e) return !1; return t = null, !0 } function n(e, t) { e && (this.element = e, this.layout = t, this.position = { x: 0, y: 0 }, this._create()) } function o(e) { return e.replace(/([A-Z])/g, function (e) { return "-" + e.toLowerCase() }) } var a = document.documentElement.style, s = "string" == typeof a.transition ? "transition" : "WebkitTransition", r = "string" == typeof a.transform ? "transform" : "WebkitTransform", l = { WebkitTransition: "webkitTransitionEnd", transition: "transitionend" } [s], c = { transform: r, transition: s, transitionDuration: s + "Duration", transitionProperty: s + "Property", transitionDelay: s + "Delay" }, u = n.prototype = Object.create(e.prototype); u.constructor = n, u._create = function () { this._transn = { ingProperties: {}, clean: {}, onEnd: {} }, this.css({ position: "absolute" }) }, u.handleEvent = function (e) { var t = "on" + e.type; this[t] && this[t](e) }, u.getSize = function () { this.size = t(this.element) }, u.css = function (e) { var t = this.element.style; for (var i in e) { var n = c[i] || i; t[n] = e[i] } }, u.getPosition = function () { var e = getComputedStyle(this.element), t = this.layout._getOption("originLeft"), i = this.layout._getOption("originTop"), n = e[t ? "left" : "right"], o = e[i ? "top" : "bottom"], a = parseFloat(n), s = parseFloat(o), r = this.layout.size; - 1 != n.indexOf("%") && (a = a / 100 * r.width), -1 != o .indexOf("%") && (s = s / 100 * r.height), a = isNaN(a) ? 0 : a, s = isNaN(s) ? 0 : s, a -= t ? r.paddingLeft : r.paddingRight, s -= i ? r.paddingTop : r.paddingBottom, this .position.x = a, this.position.y = s }, u.layoutPosition = function () { var e = this.layout.size, t = {}, i = this.layout._getOption("originLeft"), n = this.layout._getOption("originTop"), o = i ? "paddingLeft" : "paddingRight", a = i ? "left" : "right", s = i ? "right" : "left", r = this.position.x + e[o]; t[a] = this.getXValue(r), t[s] = ""; var l = n ? "paddingTop" : "paddingBottom", c = n ? "top" : "bottom", u = n ? "bottom" : "top", d = this.position.y + e[l]; t[c] = this.getYValue(d), t[u] = "", this.css(t), this.emitEvent("layout", [this]) }, u.getXValue = function (e) { var t = this.layout._getOption("horizontal"); return this.layout.options.percentPosition && !t ? 100 * (e / this.layout.size.width) + "%" : e + "px" }, u.getYValue = function (e) { var t = this.layout._getOption("horizontal"); return this.layout.options.percentPosition && t ? 100 * (e / this.layout.size.height) + "%" : e + "px" }, u._transitionTo = function (e, t) { this.getPosition(); var i = this.position.x, n = this.position.y, o = e == this.position.x && t == this.position.y; if (this.setPosition(e, t), o && !this.isTransitioning) return void this.layoutPosition(); var a = e - i, s = t - n, r = {}; r.transform = this.getTranslate(a, s), this.transition({ to: r, onTransitionEnd: { transform: this.layoutPosition }, isCleaning: !0 }) }, u.getTranslate = function (e, t) { var i = this.layout._getOption("originLeft"), n = this.layout._getOption("originTop"); return e = i ? e : -e, t = n ? t : -t, "translate3d(" + e + "px, " + t + "px, 0)" }, u.goTo = function (e, t) { this.setPosition(e, t), this.layoutPosition() }, u.moveTo = u._transitionTo, u.setPosition = function (e, t) { this.position.x = parseFloat(e), this.position.y = parseFloat(t) }, u._nonTransition = function (e) { this.css(e.to), e.isCleaning && this._removeStyles(e.to); for (var t in e.onTransitionEnd) e.onTransitionEnd[t].call(this) }, u.transition = function (e) { if (!parseFloat(this.layout.options.transitionDuration)) return void this._nonTransition( e); var t = this._transn; for (var i in e.onTransitionEnd) t.onEnd[i] = e.onTransitionEnd[i]; for (i in e.to) t.ingProperties[i] = !0, e.isCleaning && (t.clean[i] = !0); if (e.from) { this.css(e.from); var n = this.element.offsetHeight; n = null } this.enableTransition(e.to), this.css(e.to), this.isTransitioning = !0 }; var d = "opacity," + o(r); u.enableTransition = function () { if (!this.isTransitioning) { var e = this.layout.options.transitionDuration; e = "number" == typeof e ? e + "ms" : e, this.css({ transitionProperty: d, transitionDuration: e, transitionDelay: this.staggerDelay || 0 }), this.element.addEventListener(l, this, !1) } }, u.onwebkitTransitionEnd = function (e) { this.ontransitionend(e) }, u.onotransitionend = function (e) { this.ontransitionend(e) }; var h = { "-webkit-transform": "transform" }; u.ontransitionend = function (e) { if (e.target === this.element) { var t = this._transn, n = h[e.propertyName] || e.propertyName; if (delete t.ingProperties[n], i(t.ingProperties) && this.disableTransition(), n in t .clean && (this.element.style[e.propertyName] = "", delete t.clean[n]), n in t .onEnd) { var o = t.onEnd[n]; o.call(this), delete t.onEnd[n] } this.emitEvent("transitionEnd", [this]) } }, u.disableTransition = function () { this.removeTransitionStyles(), this.element.removeEventListener(l, this, !1), this .isTransitioning = !1 }, u._removeStyles = function (e) { var t = {}; for (var i in e) t[i] = ""; this.css(t) }; var p = { transitionProperty: "", transitionDuration: "", transitionDelay: "" }; return u.removeTransitionStyles = function () { this.css(p) }, u.stagger = function (e) { e = isNaN(e) ? 0 : e, this.staggerDelay = e + "ms" }, u.removeElem = function () { this.element.parentNode.removeChild(this.element), this.css({ display: "" }), this.emitEvent("remove", [this]) }, u.remove = function () { return s && parseFloat(this.layout.options.transitionDuration) ? (this.once( "transitionEnd", function () { this.removeElem() }), void this.hide()) : void this.removeElem() }, u.reveal = function () { delete this.isHidden, this.css({ display: "" }); var e = this.layout.options, t = {}, i = this.getHideRevealTransitionEndProperty("visibleStyle"); t[i] = this.onRevealTransitionEnd, this.transition({ from: e.hiddenStyle, to: e.visibleStyle, isCleaning: !0, onTransitionEnd: t }) }, u.onRevealTransitionEnd = function () { this.isHidden || this.emitEvent("reveal") }, u.getHideRevealTransitionEndProperty = function (e) { var t = this.layout.options[e]; if (t.opacity) return "opacity"; for (var i in t) return i }, u.hide = function () { this.isHidden = !0, this.css({ display: "" }); var e = this.layout.options, t = {}, i = this.getHideRevealTransitionEndProperty("hiddenStyle"); t[i] = this.onHideTransitionEnd, this.transition({ from: e.visibleStyle, to: e.hiddenStyle, isCleaning: !0, onTransitionEnd: t }) }, u.onHideTransitionEnd = function () { this.isHidden && (this.css({ display: "none" }), this.emitEvent("hide")) }, u.destroy = function () { this.css({ position: "", left: "", right: "", top: "", bottom: "", transition: "", transform: "" }) }, n }), function (e, t) { "use strict"; "function" == typeof define && define.amd ? define("outlayer/outlayer", ["ev-emitter/ev-emitter", "get-size/get-size", "fizzy-ui-utils/utils", "./item"], function (i, n, o, a) { return t(e, i, n, o, a) }) : "object" == typeof module && module.exports ? module.exports = t(e, require("ev-emitter"), require("get-size"), require("fizzy-ui-utils"), require("./item")) : e.Outlayer = t(e, e .EvEmitter, e.getSize, e.fizzyUIUtils, e.Outlayer.Item) }(window, function (e, t, i, n, o) { "use strict"; function a(e, t) { var i = n.getQueryElement(e); if (!i) return void(l && l.error("Bad element for " + this.constructor.namespace + ": " + ( i || e))); this.element = i, c && (this.$element = c(this.element)), this.options = n.extend({}, this .constructor.defaults), this.option(t); var o = ++d; this.element.outlayerGUID = o, h[o] = this, this._create(); var a = this._getOption("initLayout"); a && this.layout() } function s(e) { function t() { e.apply(this, arguments) } return t.prototype = Object.create(e.prototype), t.prototype.constructor = t, t } function r(e) { if ("number" == typeof e) return e; var t = e.match(/(^\d*\.?\d*)(\w*)/), i = t && t[1], n = t && t[2]; if (!i.length) return 0; i = parseFloat(i); var o = m[n] || 1; return i * o } var l = e.console, c = e.jQuery, u = function () {}, d = 0, h = {}; a.namespace = "outlayer", a.Item = o, a.defaults = { containerStyle: { position: "relative" }, initLayout: !0, originLeft: !0, originTop: !0, resize: !0, resizeContainer: !0, transitionDuration: "0.4s", hiddenStyle: { opacity: 0, transform: "scale(0.001)" }, visibleStyle: { opacity: 1, transform: "scale(1)" } }; var p = a.prototype; n.extend(p, t.prototype), p.option = function (e) { n.extend(this.options, e) }, p._getOption = function (e) { var t = this.constructor.compatOptions[e]; return t && void 0 !== this.options[t] ? this.options[t] : this.options[e] }, a.compatOptions = { initLayout: "isInitLayout", horizontal: "isHorizontal", layoutInstant: "isLayoutInstant", originLeft: "isOriginLeft", originTop: "isOriginTop", resize: "isResizeBound", resizeContainer: "isResizingContainer" }, p._create = function () { this.reloadItems(), this.stamps = [], this.stamp(this.options.stamp), n.extend(this .element.style, this.options.containerStyle); var e = this._getOption("resize"); e && this.bindResize() }, p.reloadItems = function () { this.items = this._itemize(this.element.children) }, p._itemize = function (e) { for (var t = this._filterFindItemElements(e), i = this.constructor.Item, n = [], o = 0; o < t.length; o++) { var a = t[o], s = new i(a, this); n.push(s) } return n }, p._filterFindItemElements = function (e) { return n.filterFindElements(e, this.options.itemSelector) }, p.getItemElements = function () { return this.items.map(function (e) { return e.element }) }, p.layout = function () { this._resetLayout(), this._manageStamps(); var e = this._getOption("layoutInstant"), t = void 0 !== e ? e : !this._isLayoutInited; this.layoutItems(this.items, t), this._isLayoutInited = !0 }, p._init = p.layout, p._resetLayout = function () { this.getSize() }, p.getSize = function () { this.size = i(this.element) }, p._getMeasurement = function (e, t) { var n, o = this.options[e]; o ? ("string" == typeof o ? n = this.element.querySelector(o) : o instanceof HTMLElement && (n = o), this[e] = n ? i(n)[t] : o) : this[e] = 0 }, p.layoutItems = function (e, t) { e = this._getItemsForLayout(e), this._layoutItems(e, t), this._postLayout() }, p._getItemsForLayout = function (e) { return e.filter(function (e) { return !e.isIgnored }) }, p._layoutItems = function (e, t) { if (this._emitCompleteOnItems("layout", e), e && e.length) { var i = []; e.forEach(function (e) { var n = this._getItemLayoutPosition(e); n.item = e, n.isInstant = t || e.isLayoutInstant, i.push(n) }, this), this._processLayoutQueue(i) } }, p._getItemLayoutPosition = function () { return { x: 0, y: 0 } }, p._processLayoutQueue = function (e) { this.updateStagger(), e.forEach(function (e, t) { this._positionItem(e.item, e.x, e.y, e.isInstant, t) }, this) }, p.updateStagger = function () { var e = this.options.stagger; return null === e || void 0 === e ? void(this.stagger = 0) : (this.stagger = r(e), this .stagger) }, p._positionItem = function (e, t, i, n, o) { n ? e.goTo(t, i) : (e.stagger(o * this.stagger), e.moveTo(t, i)) }, p._postLayout = function () { this.resizeContainer() }, p.resizeContainer = function () { var e = this._getOption("resizeContainer"); if (e) { var t = this._getContainerSize(); t && (this._setContainerMeasure(t.width, !0), this._setContainerMeasure(t.height, !1)) } }, p._getContainerSize = u, p._setContainerMeasure = function (e, t) { if (void 0 !== e) { var i = this.size; i.isBorderBox && (e += t ? i.paddingLeft + i.paddingRight + i.borderLeftWidth + i .borderRightWidth : i.paddingBottom + i.paddingTop + i.borderTopWidth + i .borderBottomWidth), e = Math.max(e, 0), this.element.style[t ? "width" : "height"] = e + "px" } }, p._emitCompleteOnItems = function (e, t) { function i() { o.dispatchEvent(e + "Complete", null, [t]) } function n() { s++, s == a && i() } var o = this, a = t.length; if (!t || !a) return void i(); var s = 0; t.forEach(function (t) { t.once(e, n) }) }, p.dispatchEvent = function (e, t, i) { var n = t ? [t].concat(i) : i; if (this.emitEvent(e, n), c) if (this.$element = this.$element || c(this.element), t) { var o = c.Event(t); o.type = e, this.$element.trigger(o, i) } else this.$element.trigger(e, i) }, p.ignore = function (e) { var t = this.getItem(e); t && (t.isIgnored = !0) }, p.unignore = function (e) { var t = this.getItem(e); t && delete t.isIgnored }, p.stamp = function (e) { e = this._find(e), e && (this.stamps = this.stamps.concat(e), e.forEach(this.ignore, this)) }, p.unstamp = function (e) { e = this._find(e), e && e.forEach(function (e) { n.removeFrom(this.stamps, e), this.unignore(e) }, this) }, p._find = function (e) { return e ? ("string" == typeof e && (e = this.element.querySelectorAll(e)), e = n .makeArray(e)) : void 0 }, p._manageStamps = function () { this.stamps && this.stamps.length && (this._getBoundingRect(), this.stamps.forEach(this ._manageStamp, this)) }, p._getBoundingRect = function () { var e = this.element.getBoundingClientRect(), t = this.size; this._boundingRect = { left: e.left + t.paddingLeft + t.borderLeftWidth, top: e.top + t.paddingTop + t.borderTopWidth, right: e.right - (t.paddingRight + t.borderRightWidth), bottom: e.bottom - (t.paddingBottom + t.borderBottomWidth) } }, p._manageStamp = u, p._getElementOffset = function (e) { var t = e.getBoundingClientRect(), n = this._boundingRect, o = i(e), a = { left: t.left - n.left - o.marginLeft, top: t.top - n.top - o.marginTop, right: n.right - t.right - o.marginRight, bottom: n.bottom - t.bottom - o.marginBottom }; return a }, p.handleEvent = n.handleEvent, p.bindResize = function () { e.addEventListener("resize", this), this.isResizeBound = !0 }, p.unbindResize = function () { e.removeEventListener("resize", this), this.isResizeBound = !1 }, p.onresize = function () { this.resize() }, n.debounceMethod(a, "onresize", 100), p.resize = function () { this.isResizeBound && this.needsResizeLayout() && this.layout() }, p.needsResizeLayout = function () { var e = i(this.element), t = this.size && e; return t && e.innerWidth !== this.size.innerWidth }, p.addItems = function (e) { var t = this._itemize(e); return t.length && (this.items = this.items.concat(t)), t }, p.appended = function (e) { var t = this.addItems(e); t.length && (this.layoutItems(t, !0), this.reveal(t)) }, p.prepended = function (e) { var t = this._itemize(e); if (t.length) { var i = this.items.slice(0); this.items = t.concat(i), this._resetLayout(), this._manageStamps(), this.layoutItems( t, !0), this.reveal(t), this.layoutItems(i) } }, p.reveal = function (e) { if (this._emitCompleteOnItems("reveal", e), e && e.length) { var t = this.updateStagger(); e.forEach(function (e, i) { e.stagger(i * t), e.reveal() }) } }, p.hide = function (e) { if (this._emitCompleteOnItems("hide", e), e && e.length) { var t = this.updateStagger(); e.forEach(function (e, i) { e.stagger(i * t), e.hide() }) } }, p.revealItemElements = function (e) { var t = this.getItems(e); this.reveal(t) }, p.hideItemElements = function (e) { var t = this.getItems(e); this.hide(t) }, p.getItem = function (e) { for (var t = 0; t < this.items.length; t++) { var i = this.items[t]; if (i.element == e) return i } }, p.getItems = function (e) { e = n.makeArray(e); var t = []; return e.forEach(function (e) { var i = this.getItem(e); i && t.push(i) }, this), t }, p.remove = function (e) { var t = this.getItems(e); this._emitCompleteOnItems("remove", t), t && t.length && t.forEach(function (e) { e.remove(), n.removeFrom(this.items, e) }, this) }, p.destroy = function () { var e = this.element.style; e.height = "", e.position = "", e.width = "", this.items.forEach(function (e) { e.destroy() }), this.unbindResize(); var t = this.element.outlayerGUID; delete h[t], delete this.element.outlayerGUID, c && c.removeData(this.element, this .constructor.namespace) }, a.data = function (e) { e = n.getQueryElement(e); var t = e && e.outlayerGUID; return t && h[t] }, a.create = function (e, t) { var i = s(a); return i.defaults = n.extend({}, a.defaults), n.extend(i.defaults, t), i.compatOptions = n .extend({}, a.compatOptions), i.namespace = e, i.data = a.data, i.Item = s(o), n .htmlInit(i, e), c && c.bridget && c.bridget(e, i), i }; var m = { ms: 1, s: 1e3 }; return a.Item = o, a }), function (e, t) { "function" == typeof define && define.amd ? define(["outlayer/outlayer", "get-size/get-size"], t) : "object" == typeof module && module.exports ? module.exports = t(require("outlayer"), require( "get-size")) : e.Masonry = t(e.Outlayer, e.getSize) }(window, function (e, t) { var i = e.create("masonry"); i.compatOptions.fitWidth = "isFitWidth"; var n = i.prototype; return n._resetLayout = function () { this.getSize(), this._getMeasurement("columnWidth", "outerWidth"), this._getMeasurement( "gutter", "outerWidth"), this.measureColumns(), this.colYs = []; for (var e = 0; e < this.cols; e++) this.colYs.push(0); this.maxY = 0, this.horizontalColIndex = 0 }, n.measureColumns = function () { if (this.getContainerWidth(), !this.columnWidth) { var e = this.items[0], i = e && e.element; this.columnWidth = i && t(i) .outerWidth || this.containerWidth } var n = this.columnWidth += this.gutter, o = this.containerWidth + this.gutter, a = o / n, s = n - o % n, r = s && 1 > s ? "round" : "floor"; a = Math[r](a), this.cols = Math.max(a, 1) }, n.getContainerWidth = function () { var e = this._getOption("fitWidth"), i = e ? this.element.parentNode : this.element, n = t(i); this.containerWidth = n && n.innerWidth }, n._getItemLayoutPosition = function (e) { e.getSize(); var t = e.size.outerWidth % this.columnWidth, i = t && 1 > t ? "round" : "ceil", n = Math[i](e.size.outerWidth / this.columnWidth); n = Math.min(n, this.cols); for (var o = this.options.horizontalOrder ? "_getHorizontalColPosition" : "_getTopColPosition", a = this[o](n, e), s = { x: this.columnWidth * a.col, y: a.y }, r = a.y + e.size.outerHeight, l = n + a.col, c = a.col; l > c; c++) this.colYs[ c] = r; return s }, n._getTopColPosition = function (e) { var t = this._getTopColGroup(e), i = Math.min.apply(Math, t); return { col: t.indexOf(i), y: i } }, n._getTopColGroup = function (e) { if (2 > e) return this.colYs; for (var t = [], i = this.cols + 1 - e, n = 0; i > n; n++) t[n] = this._getColGroupY(n, e); return t }, n._getColGroupY = function (e, t) { if (2 > t) return this.colYs[e]; var i = this.colYs.slice(e, e + t); return Math.max.apply(Math, i) }, n._getHorizontalColPosition = function (e, t) { var i = this.horizontalColIndex % this.cols, n = e > 1 && i + e > this.cols; i = n ? 0 : i; var o = t.size.outerWidth && t.size.outerHeight; return this.horizontalColIndex = o ? i + e : this.horizontalColIndex, { col: i, y: this._getColGroupY(i, e) } }, n._manageStamp = function (e) { var i = t(e), n = this._getElementOffset(e), o = this._getOption("originLeft"), a = o ? n.left : n.right, s = a + i.outerWidth, r = Math.floor(a / this.columnWidth); r = Math.max(0, r); var l = Math.floor(s / this.columnWidth); l -= s % this.columnWidth ? 0 : 1, l = Math.min(this.cols - 1, l); for (var c = this._getOption("originTop"), u = (c ? n.top : n.bottom) + i.outerHeight, d = r; l >= d; d++) this.colYs[d] = Math.max(u, this.colYs[d]) }, n._getContainerSize = function () { this.maxY = Math.max.apply(Math, this.colYs); var e = { height: this.maxY }; return this._getOption("fitWidth") && (e.width = this._getContainerFitWidth()), e }, n._getContainerFitWidth = function () { for (var e = 0, t = this.cols; --t && 0 === this.colYs[t];) e++; return (this.cols - e) * this.columnWidth - this.gutter }, n.needsResizeLayout = function () { var e = this.containerWidth; return this.getContainerWidth(), e != this.containerWidth }, i }); var originalTranslate = I18n.t.bind(I18n); I18n.t = function (e, t) { if (t = t || {}, !i18nPrefix) return originalTranslate(e, t); t.defaults = [{ scope: e }]; var i = i18nPrefix + "." + e; return originalTranslate(i, t) }, window.flavourAssetOverrides = { policechief: [{ from: "/images/MC_Logo_en_US.png", to: "/images/PC_Logo_en_US.png" }, { from: "/images/logo.en_US.png", to: "/images/PC_Logo_en_US.png" }, { from: "/images/MC_Logo_fr_FR.png", to: "/images/PC_Logo_fr_FR.png" }, { from: "/images/logo.fr_FR.png", to: "/images/PC_Logo_fr_FR.png" }, { from: "/images/MC_Logo_en_GB.png", to: "/images/PC_Logo_en_GB.png" }, { from: "/images/logo.en_GB.png", to: "/images/PC_Logo_en_GB.png" }, { from: "/images/MC_Logo_fi_FI.png", to: "/images/PC_Logo_fi_FI.png" }, { from: "/images/logo.fi_FI.png", to: "/images/PC_Logo_fi_FI.png" }, { from: "/images/MC_Logo_de_DE.png", to: "/images/PC_Logo_de_DE.png" }, { from: "/images/logo.de_DE.png", to: "/images/PC_Logo_de_DE.png" }, { from: "/images/MC_Logo_en_AU.png", to: "/images/PC_Logo_en_AU.png" }, { from: "/images/logo.en_AU.png", to: "/images/PC_Logo_en_AU.png" }, { from: "/images/MC_Logo_it_IT.png", to: "/images/PC_Logo_it_IT.png" }, { from: "/images/logo.it_IT.png", to: "/images/PC_Logo_it_IT.png" }, { from: "/images/MC_Logo_da_DK.png", to: "/images/PC_Logo_da_DK.png" }, { from: "/images/logo.da_DK.png", to: "/images/PC_Logo_da_DK.png" }, { from: "/images/MC_Logo_cs_CZ.png", to: "/images/PC_Logo_cs_CZ.png" }, { from: "/images/logo.cs_CZ.png", to: "/images/PC_Logo_cs_CZ.png" }, { from: "/images/MC_Logo_pl_PL.png", to: "/images/PC_Logo_pl_PL.png" }, { from: "/images/logo.pl_PL.png", to: "/images/PC_Logo_pl_PL.png" }, { from: "/images/MC_Logo_sv_SE.png", to: "/images/PC_Logo_sv_SE.png" }, { from: "/images/logo.sv_SE.png", to: "/images/PC_Logo_sv_SE.png" }, { from: "/images/MC_Logo_nb_NO.png", to: "/images/PC_Logo_nb_NO.png" }, { from: "/images/logo.nb_NO.png", to: "/images/PC_Logo_nb_NO.png" }, { from: "/images/MC_Logo_nl_NL.png", to: "/images/PC_Logo_nl_NL.png" }, { from: "/images/logo.nl_NL.png", to: "/images/PC_Logo_nl_NL.png" }, { from: "/images/MC_Logo_pt_PT.png", to: "/images/PC_Logo_pt_PT.png" }, { from: "/images/logo.pt_PT.png", to: "/images/PC_Logo_pt_PT.png" }, { from: "/images/logo-header.png", to: "/images/pc_logo-header.png" }, { from: "/images/building_polizeiwache.png", to: "/images/policechief_building_polizeiwache.png" }, { from: "/images/building_polizeischule.png", to: "/images/policechief_building_polizeischule.png" }, { from: "/images/building_helipad_polizei.png", to: "/images/policechief_building_helipad_polizei.png" }, { from: "/images/building_polizeisondereinheiten.png", to: "/images/policechief_building_polizeisondereinheiten.png" }, { from: "/images/building_bereitschaftspolizei.png", to: "/images/policechief_building_bereitschaftspolizei.png" }, { from: "/images/building_commerce_police.png", to: "/images/policechief_building_commerce_police.png" }, { from: "/images/building_bomb_disposal.png", to: "/images/policechief_building_bomb_disposal.png" }, { from: "/images/police.png", to: "/images/policechief_police.png" }, { from: "/images/police2.png", to: "/images/policechief_police2.png" }, { from: "/images/pheli2_1.png", to: "/images/policechief_pheli2_1.png" }, { from: "/images/pheli2_2.png", to: "/images/policechief_pheli2_2.png" }, { from: "/images/police_motorrad.png", to: "/images/pc_police_motorrad.png" }, { from: "/images/police_motorrad2.png", to: "/images/pc_police_motorrad2.png" }, { from: "/images/police_trailer.png", to: "/images/pc_police_trailer.png" }, { from: "/images/police_truck.png", to: "/images/pc_police_truck.png" }, { from: "/images/police_bike.png", to: "/images/pc_police_bike.png" }, { from: "/images/police_bucket.png", to: "/images/pc_police_bucket.png" }, { from: "/images/police_boat.png", to: "/images/pc_police_boat.png" }, { from: "/images/police_civil_car.png", to: "/images/pc_police_civil_car.png" }, { from: "/images/sign_up.en_US.png", to: "/images/policechief_sign_up.en.png" }, { from: "/images/sign_up.en_GB.png", to: "/images/policechief_sign_up.en.png" }, { from: "/images/sign_up.en_AU.png", to: "/images/policechief_sign_up.en.png" }, { from: "/images/sign_up.fr_FR.png", to: "/images/policechief_sign_up.fr_FR.png" }, { from: "/images/sign_up.fi_FI.png", to: "/images/policechief_sign_up.fi_FI.png" }, { from: "/images/sign_up.de_DE.png", to: "/images/policechief_sign_up.de_DE.png" }, { from: "/images/sign_up.it_IT.png", to: "/images/policechief_sign_up.it_IT.png" }, { from: "/images/sign_up.da_DK.png", to: "/images/policechief_sign_up.da_DK.png" }, { from: "/images/sign_up.cs_CZ.png", to: "/images/policechief_sign_up.cs_CZ.png" }, { from: "/images/sign_up.pl_PL.png", to: "/images/policechief_sign_up.pl_PL.png" }, { from: "/images/sign_up.sv_SE.png", to: "/images/policechief_sign_up.sv_SE.png" }, { from: "/images/sign_up.nb_NO.png", to: "/images/policechief_sign_up.nb_NO.png" }, { from: "/images/sign_up.nl_NL.png", to: "/images/policechief_sign_up.nl_NL.png" }, { from: "/images/sign_up.pt_PT.png", to: "/images/policechief_sign_up.pt_PT.png" }, { from: "/images/fire_rot.png", to: "/images/theft_rot.png", scope: "landing" }, { from: "/images/MC_LandingPage_US.png", to: "/images/PC_LandingPage_US.png" }], missionchief: [] };