{"about":{"title":"About Lumberjack","description":"Which version this is, and where to read about it.","revision":"Built from :revision","release_notes":"Release notes","docs":"Documentation","system":{"title":"System","description":"What this Lumberjack runs on; handy in a bug report. Only system administrators see it.","php":"PHP","laravel":"Laravel","database":"Database","queue":"Queue","cache":"Cache","session":"Sessions","environment":"Environment"}},"admin":{"nav":{"section":"Administration","teams":"All teams","users":"All users","audit":"Audit log","retention":"Retention","horizon":"Horizon"},"teams":{"title":"All teams","description":"Every team on this Lumberjack. As an administrator you can open any of them.","name":"Team","owner":"Owner","members":"Members","projects":"Projects","errors_24h":"Errors 24h","created":"Created","empty":"No teams yet","open":"Open","delete":"Delete","delete_question":"Delete :name with all its projects and data?","new":"New team","owner_email":"Owner","owner_hint":"Someone without an account is invited to own the team.","create":"Create team"},"users":{"title":"All users","description":"Everyone with an account. New people join by invitation only.","search":"Search by name or email","name":"Name","email":"Email","teams":"Teams","status":"Status","joined":"Joined","empty":"No users match","you":"(you)","badges":{"admin":"Administrator","suspended":"Suspended","password_change":"Must change password","active":"Active"},"more":"More","make_admin":"Make administrator","make_admin_question":"Make :name an administrator? They can see every team and manage every user.","revoke_admin":"Revoke administrator","revoke_admin_question":"Take administration away from :name?","suspend":"Suspend","suspend_question":"Suspend :name? They are signed out at once.","reinstate":"Reinstate","require_password_change":"Require new password","require_password_change_question":"Make :name choose a new password before anything else?","send_reset":"Send reset link","invite":{"title":"Invite someone","description":"The invitation makes them a member of the chosen team.","email":"Email","team":"Team","role":"Role","send":"Send invitation"}},"audit":{"title":"Audit log","description":"What administrators have done on this Lumberjack.","when":"When","admin":"Administrator","action":"Action","subject":"Subject","details":"Details","empty":"Nothing yet","empty_body":"Every administrator action is recorded here: teams created, opened or deleted, users invited, suspended or reinstated, administration granted or revoked, password resets, and changes to public stats, shared status screens and paired TVs.","actions":{"team_created":"Created team","team_deleted":"Deleted team","team_opened":"Opened team","user_suspended":"Suspended user","user_reinstated":"Reinstated user","admin_granted":"Granted administration","admin_revoked":"Revoked administration","password_reset_sent":"Sent password reset","password_change_required":"Required password change","user_invited":"Invited user","public_stats_enabled":"Turned on public stats","public_stats_rotated":"Rotated public stats key","public_stats_changed":"Changed public stats","public_stats_disabled":"Turned off public stats","screen_shared":"Shared a status screen","screen_share_changed":"Changed a share link","screen_share_rotated":"Rotated a share link","screen_unshared":"Stopped sharing a status screen","display_paired":"Paired a TV","display_removed":"Removed a TV"}},"retention":{"title":"Retention","description":"How long this Lumberjack keeps each kind of data. A value here is the default for every team and the most any team or project may keep. Empty uses the built-in default and sets no maximum."}},"alerts":{"per_project":{"title":"Rules and project channels","description":"Each project uses the team's rules unless it customizes one, and can add channels of its own such as a webhook, in its settings."},"title":"Alerts","types":{"mail":"Mail","discord":"Discord","webhook":"Webhook","slack":"Slack","teams":"Microsoft Teams","telegram":"Telegram","ntfy":"ntfy","pushover":"Pushover"},"channels":{"edit":"Edit","keep_hint":"Leave empty to keep the current value.","title":"Channels","description":"Set up once for the team and reused in every project's rules.","empty":"No channels yet","never_delivered":"Not used yet","delivered":"Delivered","failed":"Failed","test":"Send test","delete_question":"Delete :name? Rules stop sending to it.","type":"Type","name":"Name","name_placeholder":"e.g. On-call","config":{"webhook_url":"Webhook URL","url":"Endpoint URL","sender_name":"Sender name","sender_name_hint":"The name the message comes from. Empty means Lumberjack.","address":"Email address","bot_token":"Bot token","chat_id":"Chat id","chat_id_hint":"A group or channel id (groups start with -), or @name of a public channel. The bot has to be a member.","access_token":"Access token","access_token_hint":"Only for a protected topic. Empty means none.","user_key":"User or group key","app_token":"Application token","app_token_hint":"From an application you create at pushover.net\/apps."},"add":"Add channel","add_new":"Add new channel"},"rules":{"title":"Rules","project":"Project","enable":"Enable :rule","on":"On","off":"Off","channels":"Channels","no_channels":"Add a channel first.","environments":"Environments","environments_hint":"Comma separated. Empty means all.","environments_placeholder":"e.g. production","on_without_channel":"On, but no channel is ticked: this rule sends nowhere.","without_team_channel":"{1} :count rule is on without a team channel; projects can still add their own.|[2,*] :count rules are on without a team channel; projects can still add their own.","thresholds":{"title":"Alert when","size":"More than this many jobs wait","age_minutes":"Or the oldest has waited this many minutes","sustain_minutes":"For this many minutes","off":"Off","hint":"Leave one of the first two empty to turn it off. Sent once when it starts and once when the queue is back under, at most once every 30 minutes."},"empty":"This project has no rules.","team_description":"Every project uses these unless it customizes a rule in its settings. Team rules send to the shared channels above.","project_description":"A rule marked team default follows the team's Alerts page. Customize one to change it for this project only, with its own channels too.","team_default":"Team default","customized":"Customized","sends_to":"Sends to :channels","nowhere":"Sends nowhere yet","only_in":"Only in :environments","add_ons":"Also send for this project to","add_ons_off":"Off for the team, so these get nothing until it is on or customized","add_on":"+ :channel (this project)","customize":"Customize","use_team":"Use the team's","use_team_question":"Drop this project's :rule rule and use the team's again? Its changes are lost.","no_projects":"Create a project to set up rules.","hint":"At most one message per issue per rule every 30 minutes; every regression and note is sent. Ignored issues and browser errors never send."},"wizard":{"add_title":"Add an alert channel","edit_title":"Edit :name","pick_type":"Where should alerts go?","back":"Back","about":{"mail":"An email to an address or a list.","discord":"A message in a Discord channel.","slack":"A message in a Slack channel.","teams":"A card in a Microsoft Teams channel.","telegram":"A message from your Telegram bot.","ntfy":"A push notification through ntfy.","pushover":"A push notification through Pushover.","webhook":"JSON to your own app, signed."},"setup":{"mail":"Sent with this Lumberjack's mail settings (MAIL_* in its environment).","discord":"In Discord: Server settings, Integrations, Webhooks, New webhook. Pick the channel and copy the webhook URL.","slack":"Create an app at api.slack.com\/apps, turn on Incoming Webhooks, add a webhook to a channel and copy its URL.","teams":"In the Teams channel: the ... menu, Workflows, \"Post to a channel when a webhook request is received\". Copy the URL it gives you.","telegram":"Create a bot with @BotFather for the token, add the bot to the group or channel, and enter the chat id.","ntfy":"The topic URL on ntfy.sh or your own server. Subscribe to the same topic in the ntfy app.","pushover":"Your user key is on the Pushover dashboard. Create an application at pushover.net\/apps for the token.","webhook":"Your app's endpoint. Requests are signed; the secret is shown once after saving."}},"preview":{"title":"Preview in :app","reference":"SHOP-42","facts":{"location":"Location","release":"Release","occurrences":"Occurrences"},"mail_other_sender":"A colleague","mail_other_subject":"Lunch on Friday?","time":"Today 10:12","heading":"New error in shop (production)","exception":"Illuminate\\Database\\QueryException","message":"SQLSTATE[40001]: Deadlock found when trying to get lock","link":"Open in Lumberjack","hint_general":"If the issue has a triage note, its first line is included.","hint":"Red edge for a new error, orange for a regression. If the issue has a triage note, its first line is included."}},"browser":{"title":"Browser","description":"{0} No page views in this period.|{1} 1 page view in this period, measured by the browser script.|[2,*] :count page views in this period, measured by the browser script.","device":{"label":"Device","all":"All","mobile":"Mobile","tablet":"Tablet","desktop":"Desktop"},"cards":{"views":"Page views","lcp":"LCP p75","inp":"INP p75","cls":"CLS p75","good":":percent good"},"devices":{"title":"LCP by device","description":"p75 per device class. Page views from an older browser script have none and count only under All.","views":"{0} no page views|{1} 1 page view|[2,*] :count page views"},"charts":{"lcp":"Largest Contentful Paint, p75","inp":"Interaction to Next Paint, p75","cls":"Cumulative Layout Shift, p75","summary":":vital p75 per bucket over the period; the highest is :max."},"pages":{"title":"Pages","description":"p75 per browser page. Green is good, amber needs improvement, red is poor.","empty":"No page views match these filters.","page":"Page","views":"Page views","lcp":"LCP","lcp_help":"Largest Contentful Paint: good within 2.5 s, poor above 4 s.","inp":"INP","inp_help":"Interaction to Next Paint: good within 200 ms, poor above 500 ms.","cls":"CLS","cls_help":"Cumulative Layout Shift: good within 0.1, poor above 0.25.","ttfb":"TTFB","ttfb_help":"Time to First Byte: how long the server took to start answering.","fcp":"FCP","fcp_help":"First Contentful Paint: when the first text or image was painted.","sort":{"label":"Sort pages","views":"Most viewed","lcp":"Slowest LCP"}},"errors":{"title":"Browser errors","description":"{0} No browser errors in this period.|{1} 1 browser error in this period, on every device.|[2,*] :count browser errors in this period, on every device.","all":"All issues","occurrences":"{1} 1 occurrence|[2,*] :count occurrences"},"empty":{"title":"No Web Vitals yet","body":"Add the browser script to your pages and it measures LCP, INP and CLS on every page view.","link":"Set up the browser script"}},"commands":{"title":"Commands","description":"{0} No artisan commands in the period.|{1} 1 artisan command in the period.|[2,*] :count artisan commands in the period.","statuses":{"running":"Running","finished":"Finished","failed":"Failed"},"columns":{"command":"Command","runs":"Runs","failed":"Failed","avg":"Avg. duration","max":"Longest","last_run":"Last run","status":"Status","input":"Arguments and options","started":"Started","duration":"Duration","exit_code":"Exit code","host":"Host"},"empty_title":"No commands yet","empty_body":"The Lumberjack package reports every artisan command with the arguments and options it got. Worker commands such as queue:work and horizon are left out.","runs":{"title":"Latest runs","title_command":"Runs of :command","clear":"Show all commands","empty":"No runs in the period","view_issue":"View issue","no_input":"None"}},"common":{"loading":"Loading\u2026","sampling":{"estimated":"Estimated from a :rate sample","help":"Runs were sampled down to :rate. Totals count every request the SDK reports; percentiles come from the sampled runs only."},"sound_on":"Sound for new errors: on","sound_off":"Sound for new errors: off","toasts":{"mentioned":":author tagged you on :title","view":"View"},"nav":{"label":"Main menu","open":"Open the menu","project":"Project","team_section":"Team","overview":"Overview","issues":"Issues","routes":"Requests","queries":"Database","browser":"Browser","releases":"Releases","jobs":"Jobs","schedule":"Schedule","commands":"Commands","logs":"Logs","health":"Health","data_sources":"Data sources","settings":"Settings","all_projects":"All projects","projects":"Projects","console":"Console","team_page":"Team","project_settings":"Project settings","sections":"Pages of this section","team":"Members and tokens","alerts":"Alerts","retention":"Retention","notifications":"Notifications","screens":"Screens","displays":"Displays"},"breadcrumb":"Breadcrumb","teams":"Teams","no_team":"No team","switch_team":"Switch team","switch_project":"Switch project","choose_project":"Choose project","profile":"Profile and settings","log_out":"Log out","statuses":{"open":"Open","in_progress":"In progress","resolved":"Resolved","ignored":"Ignored"},"roles":{"owner":"Owner","admin":"Admin","member":"Member","system_admin":"Administrator, not a member"},"filters":{"environment":"Environment","all_environments":"All environments","period":"Period"},"periods":{"1h":"1 h","24h":"24 h","7d":"7 d","30d":"30 d"},"sources":{"server":"Server","browser":"Browser","log":"Log"},"job_statuses":{"queued":"Queued","processing":"Processing","processed":"Processed","released":"Released","failed":"Failed","stuck":"Stuck"},"levels":{"debug":"debug","info":"info","notice":"notice","warning":"warning","error":"error","critical":"critical","alert":"alert","emergency":"emergency"},"flags":{"new":"New","regression":"Regression","escalating":"Escalating","returned":"Came back"},"secret_once":"Copy it now. It is shown only this once and cannot be retrieved later.","copy":"Copy","copied":"Copied","copy_text":"Copy :text","copied_text":"Copied :text","done":"Done","save":"Save","cancel":"Cancel","delete":"Delete","search":"Search","sort":"Sort","trace":"Trace","unassigned":"Unassigned","live":"Live","live_hint":"Updates as data arrives","live_changed":{"message":"This page changed elsewhere.","reload":"Reload"},"previous":"Previous","next":"Next","showing":"Showing :from-:to of :total"},"data_sources":{"title":"Data sources","description":"{0} No data sources yet.|{1} 1 data source.|[2,*] :count data sources.","add":"Add data source","list_title":"External endpoints","list_hint":"JSON, Prometheus or iCalendar endpoints Lumberjack fetches on their interval. Screen widgets read a number or rows from the latest response, with JSONPath or a Prometheus selector, charts from the history, and a calendar list its events.","empty_title":"No data sources yet","empty_body":"Add a JSON or Prometheus endpoint to show its figures on a screen: a stat, a gauge, a chart or a list.","formats":{"json":"JSON","prometheus":"Prometheus","ical":"iCalendar (.ics)"},"never":"Never","last_ok":"Last OK","every":"{1} Every minute|[2,*] Every :count min","preview":"Latest response","fetch_now":"Fetch now","edit":"Edit","delete":"Delete","delete_question":"Delete :source? Widgets that show it go empty.","statuses":{"ok":"OK","failed":"Failed","pending":"Pending"},"columns":{"name":"Source","status":"Status","last_fetch":"Last fetch","every":"Interval","actions":"Actions"},"form":{"add_title":"Add data source","edit_title":"Edit :source","setup":"Lumberjack sends a GET request to the URL on every interval and keeps what it answers.","format":"Format","format_hint":"Prometheus: the text exposition format, as served on \/metrics. Counters are shown per minute. iCalendar: a calendar's secret address in iCal format (Google, Outlook, iCloud), for a calendar list; its path is never shown again.","name":"Name","url":"URL","url_hint":"Must reach a public address.","interval":"Interval","minutes":"Minutes, at least 1.","timeout":"Timeout","seconds":"Seconds, at most 15.","headers":"Request headers","header_name":"Header name","header_value":"Header value","keep_value":"Leave empty to keep","headers_hint":"Values are stored encrypted and never shown again; leave one empty to keep it.","add_header":"Add header","remove_header":"Remove","save":"Save","add":"Add"}},"health":{"title":"Health","description":"{0} No health checks yet.|{1} 1 health check.|[2,*] :count health checks.","attention":":down down, :degraded degraded.","attention_stale":"{1} 1 stale: it stopped reporting.|[2,*] :count stale: they stopped reporting.","stale_values":"Last result :time","stale_hint":"No report within its expected interval: 2.5 times the interval the app sends, or three times its usual interval without one.","add":"Add check","states":{"ok":"OK","recovering":"Recovering","degraded":"Degraded","down":"Down","stale":"Stale","pending":"Pending"},"result_statuses":{"ok":"OK","warning":"Warning","failed":"Failed"},"types":{"http":"HTTP","ssl":"SSL certificate","tcp":"TCP port","dns":"DNS record","heartbeat":"Heartbeat"},"type_about":{"http":"Requests a URL and checks the status, a text in the body and how long it took.","ssl":"Warns before a certificate expires, and fails close to it.","tcp":"Opens a connection to a port, e.g. a database or mail server.","dns":"Looks up a record and compares it with what it should be.","heartbeat":"A secret URL your cron job or backup calls; fails when no call came in time."},"muted":"Muted","reported_every":"{1} every minute|[2,*] every :count min","never":"Never","sources":{"reported":{"title":"Reported by the app","hint":"Checks the app runs itself and sends to Lumberjack. Stale when a check stops reporting for 2.5 times the interval the app sends, or three times its usual interval without one.","empty_title":"No reported checks yet","empty_body":"Checks show up here once the app's SDK sends its first health result."},"monitored":{"title":"Run by Lumberjack","hint":"HTTP, SSL, TCP, DNS and heartbeat checks this server runs on their interval.","empty_title":"No checks of your own yet","empty_body":"Add a check to watch a URL, a certificate, a port or a DNS record from here, or a heartbeat your cron jobs call."},"archived":{"title":"Archived","hint":"Put away; they send nothing. A reported check that reports again comes back by itself."}},"columns":{"check":"Check","status":"Status","last_result":"Last result","latency":"Latency","uptime":"Uptime","history":"History","host":"Host","message":"Message","checked_at":"Checked","started":"Started","ended":"Ended","duration":"Duration","worst":"Worst","metrics":"Metrics"},"connections_of":":used of :max conns","connections":":count conns","strip_label":"Status over the period, oldest first","no_data":"No data","ongoing":"Ongoing","hosts_label":"Hosts","detail":{"close":"Close","edit":"Edit","archive":"Archive","unarchive":"Restore","archive_question":"Archive :check? It stops counting and sends nothing until restored, or until it reports again.","delete":"Delete","delete_question":"Delete :check with its results and outages?","latency":"Duration over time","latency_unit":"average duration","hosts":"Hosts","outages":"Outages","no_outages":"No outages","results":"Recent results","no_results":"No results yet","thresholds":"{1} Degraded after 1 bad result, down after :down failures in a row, ok after :recover good ones.|[2,*] Degraded after :count bad results in a row, down after :down failures in a row, ok after :recover good ones.","thresholds_app":"As the app sends them.","thresholds_own":"Set here.","every":"{1} Every minute.|[2,*] Every :count minutes.","ping":{"title":"Ping URL","hint":"Call it with GET or POST when the job is done. Keep it secret: anyone with it can say the job ran.","example":"For example, at the end of a cron job:"}},"form":{"add_title":"Add a health check","edit_title":"Edit :check","pick_type":"What should Lumberjack check?","setup":"Lumberjack runs it on its interval, from this server. Hosts on private networks are refused unless the server allows them.","reported_setup":"The app reports this check; here you choose how it is shown and alerted on.","back":"Back","name":"Name","name_placeholder":"Website","description":"Description","environment":"Environment","environment_hint":"Optional; shows the check under that environment only.","interval":"Interval","interval_option":"{1} Every minute|[2,*] Every :count minutes","degrade_after":"Degraded after","down_after":"Down after","recover_after":"OK again after","results_unit":"results in a row","down_unit":"failures in a row before down","thresholds_hint_reported":"Leave all three empty to use the thresholds the app sends.","muted":"Mute: show it, but send no alerts","save":"Save","add":"Add check","config":{"url":"URL","method":"Method","expected_status":"Expected status","body_contains":"Body contains","body_contains_hint":"Optional text the response must contain.","max_latency_ms":"Warn when slower than (ms)","timeout_s":"Timeout (seconds)","host":"Host","port":"Port","warn_days":"Warn days before expiry","fail_days":"Fail days before expiry","name":"Name","record_type":"Record type","expected":"Expected value","expected_hint":"Optional; one of the records must match, e.g. an IP or mail host.","grace_minutes":"Grace (minutes)","grace_minutes_hint":"How late a ping may be before the check fails."}}},"invitation":{"title":"Join :team","description":"You are invited as :role with :email.","expired_title":"Invitation expired","expired_body":"This invitation has expired or no longer exists. Ask whoever invited you to send a new one.","has_account":"You already have an account with this email.","log_in":"Log in to accept","wrong_account":"This invitation is for :email, and you are signed in as :me. Sign out to accept it with :email.","log_out":"Sign out","name":"Name","password":"Password","password_confirmation":"Confirm password","accept":"Accept invitation","create_and_join":"Create account and join"},"issue":{"ignored_until":{"at":"Comes back :time","count":"Comes back after :count more occurrences","escalation":"Comes back if it escalates"},"close":{"resolve_title":"Resolve issue","ignore_title":"Ignore issue","description":"Add a comment if you like, for example what fixed it or why it does not matter. It is saved as a note.","placeholder":"Optional comment. Type @ to tag, Ctrl+Enter to confirm.","until":"Comes back","choices":{"forever":"Never, ignore it for good","1h":"In 1 hour","24h":"In 24 hours","7d":"In 7 days","count_10":"After 10 more occurrences","count_100":"After 100 more occurrences","count_1000":"After 1,000 more occurrences","escalation":"When it escalates (10+ in 5 minutes, far above usual)"}},"labels":{"title":"Labels","none":"No labels yet.","add":"Add a label","remove":"Remove :label"},"watching":{"watch":"Watch","unwatch":"Stop watching","watchers":"Watching: :names"},"actions":{"assignee":"Assignee","start":"Start working","stop":"Stop working","resolve":"Resolve","ignore":"Ignore","reopen":"Re-open","create_repo_issue":"Create GitHub issue","open_repo_issue":"Open GitHub issue"},"stats":{"occurrences":"Occurrences","users":"Users affected","first_seen":"First seen","last_seen":"Last seen","releases":"Releases","more_releases":"+:count more","hosts":"Hosts"},"series":{"title":{"1h":"Occurrences per 2 minutes, last hour","24h":"Occurrences per hour, 24 h","7d":"Occurrences per 6 hours, 7 days","30d":"Occurrences per day, 30 days"},"in":{"1h":"the last hour","24h":"the last 24 hours","7d":"the last 7 days","30d":"the last 30 days"},"summary":"{1} 1 occurrence in :period, peak :peak at :time|[0,*] :count occurrences in :period, peak :peak at :time","empty":"No occurrences in :period","regressed_at":"Regressed :time"},"tabs":{"label":"Issue details","stacktrace":"Stacktrace","occurrences":"Occurrences","notes":"Notes","history":"History"},"history":{"empty":"Nothing has happened to this issue yet.","by":"by :actor","created":"First seen","regressed":"Regressed: happened again after it was resolved","escalated":"Escalated: :burst occurrences in :minutes minutes","status_changed":"Status changed from :from to :to","status_set":"Marked :to","assigned":"Assigned to :to","unassigned":"Unassigned","labels_added":"Labelled :labels","labels_removed":"removed :labels","repo_issue_created":"GitHub issue created","note":"Note","note_with_status":"Note on marking it :status","returned_time":"Came back: the time it was ignored for is over","returned_count":"Came back: it happened as many times again as it was ignored for","returned_escalation":"Came back: :burst occurrences in :minutes minutes"},"stack":{"app":"app","vendor":"vendor","error_line":"Error line:","empty":"No stacktrace recorded","empty_schedule":"The scheduler reported this one, a missed run or an exit code, not a thrown exception, so it has no stacktrace.","show_vendor":"{1} Show 1 vendor frame|[0,*] Show :count vendor frames","hide_vendor":"{1} Hide 1 vendor frame|[0,*] Hide :count vendor frames"},"occurrences":{"request":"Request","user":"User id","time":"Time","empty":"No occurrences"},"fields":{"environment":"Environment","release":"Release","host":"Host","trace_id":"Trace ID"},"notes":{"empty":"No notes yet.","via_mcp":"Via MCP, token :token","unknown_author":"Unknown","new":"New note","placeholder":"Write a note. Type @ to tag a team member or agent, Ctrl+Enter to save.","mention":"Tag a team member or agent","save":"Save note"},"side":{"label":"Context","context":"Request and context","no_context":"No context recorded.","general":"General","filtered":"hidden","environment":"Environment","github":"GitHub"}},"issues":{"label":"Label","all_labels":"All labels","notes_count":"{1} 1 note|[2,*] :count notes","title":"Issues","status":"Status","source":"Source","all_sources":"All","release":"Release","all_releases":"All releases","assigned":"Assigned","assigned_all":"Everyone","assigned_me":"Assigned to me","assigned_none":"Unassigned","search":"Search message, class or number","filters":"Filters","filters_active":":count active","sort":{"label":"Sort","last_seen":"Last seen","occurrences":"Most occurrences","users":"Most users","first_seen":"First seen"},"columns":{"select":"Select","issue":"Issue","last_24h":"Last 24 h","occurrences":"Occurrences","users":"Users","last_seen":"Last seen","first_seen":"First seen","assignee":"Assignee"},"select_all":"Select all","select_issue":"Select :title","trend":":count occurrences in the last 24 hours","selected":"{1} 1 selected|[2,*] :count selected","clear_selection":"Clear","more_actions":"More","resolve_selected":"Resolve","start_selected":"Start working","watch_selected":"Watch","watching":"Watching","assign_selected":"Assign\u2026","assign_me":"Me","unassign":"Unassign","label_selected":"Label\u2026","label_add":"Add","label_remove":"Remove","ignore_selected":"Ignore","reopen_selected":"Re-open","bulk_question":{"resolved":"{1} Resolve 1 issue?|[2,*] Resolve :count issues?","ignored":"{1} Ignore 1 issue? It stays ignored until it escalates.|[2,*] Ignore :count issues? They stay ignored until they escalate.","open":"{1} Re-open 1 issue?|[2,*] Re-open :count issues?"},"empty_title":"No issues here","empty_body":"Nothing matches these filters."},"jobs":{"title":"Jobs","description":"{1} :runs runs across 1 job class.|[2,*] :runs runs across :count job classes.","queue":"Queue","all_queues":"All queues","sort":{"label":"Sort","errors":"Highest failure rate","count":"Most runs","duration":"Highest p95 duration","wait":"Highest p95 wait"},"stuck":{"title":"{1} 1 job is stuck.|[2,*] :count jobs are stuck.","body":"They have been processing longer than their timeout plus a margin. The worker has probably died.","link":"See stuck runs"},"columns":{"job":"Job class","queue":"Queue","runs":"Runs","failure_rate":"Failure rate","p95_duration":"p95 duration","p95_wait":"p95 wait","retries":"Retries","outcome":"Outcome"},"queues":{"title":"Queues","description":"Jobs waiting on each queue, as the agents report it every minute.","sampled":"Reported :time","trend_label":"Size of :queue over the period","columns":{"queue":"Queue","size":"Waiting","workers":"Workers","oldest":"Oldest pending","p95_wait":"p95 wait","trend":"Size","alert":"Alert"},"alert":{"button":"Alert","edit":"Alert thresholds for :queue","title":"Backlog alert for :queue","description":"Thresholds for this queue only. Leave a field empty to use the queue backlog rule's.","size":"More than this many jobs waiting","oldest":"Or the oldest waiting longer than, in minutes","sustained":"For this many minutes","rule_value":"Rule: :value","off":"Rule: off","muted":"Mute: never alert for this queue","custom":"custom","muted_badge":"muted","save":"Save","cancel":"Cancel"}},"outcome_label":":processed processed, :failed failed, :stuck stuck","empty_title":"No jobs yet","empty_body":"Nothing matches the filters in this period.","runs":{"title":"Latest failed, stuck and released runs","title_job":"Runs of :job","parameters":"Parameters","clear":"Show all jobs","empty":"No runs to show","view_issue":"Issue","columns":{"status":"Status","job":"Job","attempt":"Attempt","queued":"Queued","wait":"Wait","duration":"Duration","host":"Host","issue":"Issue"}}},"logs":{"release":"Release","all_releases":"All releases","title":"Logs","channels":"Channels","all_channels":"All channels","manage_channels":"Manage channels","lines":"Log lines","unknown_banner":"{1} 1 line was sent to an unknown channel (:channels) and stored in default.|[2,*] :count lines were sent to unknown channels (:channels) and stored in default.","create_channel":"Create the channel","min_level":"Minimum level","search":"Search messages","show_new":"Show new lines","columns":{"time":"Time","level":"Level","channel":"Channel","message":"Message"},"sent_to_unknown":"Sent to unknown channel :channel","limit_reached":"Showing the newest :limit lines. Narrow the filters to see older ones.","empty_title":"No log lines","empty_body":"Nothing matches the filters in this period.","widen_period":"Show the last :period"},"notifications":{"title":"Notifications","description":"Everything sent to you in app, from every team, newest first. Choose what comes here under Notifications in your account settings.","bell":"Notifications, :count unread","unread":"Unread","loading":"Loading...","empty":"Nothing yet.","empty_filtered":"Nothing matches.","mark_all_read":"Mark all as read","mark_read":"Mark as read","mark_unread":"Mark as unread","see_all":"See all","settings":"Settings","show":"Show","all":"All","all_kinds":"Every kind","newer":"Newer","older":"Older"},"onboarding":{"title":"Welcome to Lumberjack","step":"Step :step of :steps","back":"Back","next":"Next","skip":"Skip","done":"Done","not_now":"Not now","welcome":{"title":"Welcome, :name","intro":"A quick look around, then two settings. You can change everything later under your name in the sidebar.","teams":"Your teams","projects":"{0} No projects yet|{1} 1 project|[2,*] :count projects","more":"and :count more","no_team":"You are not in a team yet. Create one on the Team page, or ask a team owner to invite you.","team_page":"Open the Team page","where":"Where things are","sidebar":"The sidebar: your projects and their pages, the team, and your account at the bottom.","palette":"The command palette: press :keys to jump to a page, project or team, or to search the project you are in.","bell":"The bell at the top of the sidebar: your notifications."},"notifications":{"title":"How do you want to hear about things?","intro":"Pick a starting point, then change any cell. Balanced is what everyone starts with."},"push":{"title":"Notifications in this browser","intro":"Browser notifications also reach you while Lumberjack is closed. Turn them on here if you want them on this device; each browser is turned on by itself."}},"overview":{"title":"Overview","kpis":{"requests":"Requests","requests_note":":count requests in the period","error_rate":"Error rate","error_rate_note":"{0} No exceptions recorded, 5xx share of requests|{1} 1 exception recorded, 5xx share of requests|[2,*] :count exceptions recorded, 5xx share of requests","p95":"p95 response time","p95_none":"No requests in the period.","p95_note":"p50 :p50, p99 :p99","failed_jobs":"Failed jobs","failed_jobs_note":"{1} :rate of 1 job run, :stuck stuck|[0,*] :rate of :count job runs, :stuck stuck","open_issues":"Open issues","open_issues_note":"All environments, regardless of period","health":"Health checks","health_value":":ok of :total ok","health_problems":"{1} 1 problem|[2,*] :count problems","health_note":":down down, :degraded degraded, :stale stale","health_all_ok":"Every check passes"},"health":{"title":"Health checks","open":"Open Health","check_label":":name: :state"},"charts":{"requests":"Requests over time","requests_unit":"requests","errors":"Exceptions over time","errors_unit":"exceptions","latency":"Response times","latency_summary":"Highest p95 :p95, highest p50 :p50 in the period.","peak":"Peak :value, :time","no_data":"No data in this period","no_requests":"No requests","summary":":total :unit in the period. :peak"},"latest_issues":{"title":"Latest issues","all":"All issues","empty":"No open issues","occurrences":"{1} 1 occurrence|[0,*] :count occurrences"},"slowest_routes":{"title":"Slowest routes (p95)","all":"All routes","empty":"No requests in this period"},"failed_jobs":{"title":"Failed jobs","all":"All jobs","empty":"No failed jobs in this period","attempt_of":"Attempt :attempt of :max","attempt":"Attempt :attempt"},"trend":{"up":":percent more than the period before","down":":percent less than the period before","same":"Same as the period before","new":"None in the period before"}},"palette":{"open":"Search","title":"Command palette","description":"Jump to a page, project or team, or search this project.","placeholder":"Go to a page, project or team","placeholder_project":"Search :project for issues, routes, jobs, traces, or go to a page","placeholder_project_short":"Search :project or go to a page","searching":"Searching...","empty":"Nothing found.","switch_team":"Switch to :team","groups":{"issues":"Issues","routes":"Routes","jobs":"Jobs","commands":"Commands","schedule":"Scheduled tasks","traces":"Traces","projects":"Projects","teams":"Teams"}},"projects":{"title":"Projects","description":"{0} No projects in :team yet.|{1} 1 project in :team, last 24 hours.|[2,*] :count projects in :team, last 24 hours.","search":"Search projects","new":"New project","name":"Name","issue_prefix":"Issue prefix","issue_prefix_hint":"Issue numbers look like :example. 2 to 8 capital letters and digits, unique in the team.","create":"Create project","create_hint":"You get the server token right after; it is shown once.","open_issues":"Issues","errors":"Errors","p95":"p95","job_failures":"Failed jobs","errors_per_hour":"Errors per hour, 24 h","spark_label":":count errors in the last 24 hours","status_open":":count open","status_calm":"Calm","agent_offline":"{1} Agent offline|[2,*] :count agents offline","agents_seen":"{0} No agent has reported yet|[1,*] Agents seen :time","agent_missing":"Not seen: :hosts","agent_on_host":":agent on :host","unnamed_agent_on_host":"unnamed agent on :host","empty_title":"No projects yet","empty_body":"Create a project to get a server token for the agent and a public key for browser errors."},"queries":{"title":"Database","stats":{"calls":"Queries","distinct":":count distinct, grouped by SQL","total_time":"Total DB time","slowest":"Slowest single query"},"search":"Search SQL","connection":"Connection","all_connections":"All connections","sort":{"label":"Sort","total":"Most total time","p95":"Highest p95","count":"Most calls"},"n_plus_one":"N+1 \u00b7 :count\u00d7 per request","n_plus_one_hint":"The same query :count times in one request or job. Load the data at once (eager loading).","columns":{"most_from":"Most from","most_from_day":"Most from (last 24 h)","sql":"SQL","connection":"Connection","calls":"Calls","share":"Share of DB time","max":"Max"},"empty_title":"No queries yet","empty_body":"Nothing matches the filters in this period."},"releases":{"title":"Releases","description":"{1} 1 release seen in this period, newest first. Select a release for the issues it brought.|[2,*] :count releases seen in this period, newest first. Select a release for the issues it brought.","columns":{"release":"Release","first_seen":"First seen","last_seen":"Last seen","requests":"Requests","error_rate":"5xx rate","p95":"p95","occurrences":"Errors","new_issues":"New issues","regressions":"Regressions"},"change":{"worse":":change worse than :release","better":":change better than :release","from_zero":"None in :release"},"empty_title":"No releases yet","empty_body":"Nothing in this period carries a release. Send one with your events to compare deploys.","detail":{"title":"New issues in :release","empty":"This release brought no new issues.","all":"Issues last seen in this release","occurrences":"{1} 1 error|[2,*] :count errors"}},"routes":{"title":"Requests","description":"{1} 1 route, :requests requests. Select a route for details.|[2,*] :count routes, :requests requests. Select a route for details.","search":"Search routes or names","domain":{"label":"Domain","all":"All domains","unknown":"unknown"},"sort":{"label":"Sort","p95":"Highest p95","count":"Most requests","errors":"Highest error rate","total":"Most total time","apdex":"Lowest Apdex"},"columns":{"trend":"Requests over time","route":"Route","domain":"Domain","requests":"Requests","error_rate":"Error rate","total":"Total time","apdex":"Apdex","apdex_help":"Share of satisfied requests: within :target is satisfied, within :tolerated counts half, slower or a 5xx counts nothing."},"empty_title":"No requests yet","empty_body":"Nothing matches the filters in this period.","detail":{"summary":":requests requests \u00b7 p95 :p95 \u00b7 error rate :errors","hourly":"Response time over the period (p50 and p95)","chart_label":"Response time over the period. Highest p95 was :p95 at :time.","slowest":"Slowest requests","queries":"{1} 1 query|[2,*] :count queries","no_requests":"No requests in this period.","statuses":"Status codes","statuses_label":":ok 2xx, :redirect 3xx, :client 4xx, :server 5xx"},"trend_label":":count requests in the period"},"schedule":{"title":"Schedule","description":"{0} No scheduled tasks yet.|{1} 1 scheduled task.|[2,*] :count scheduled tasks.","attention":"{1} 1 task failed or was missed.|[2,*] :count tasks failed or were missed.","statuses":{"running":"Running","finished":"Finished","failed":"Failed","skipped":"Skipped","missed":"Missed"},"late":"Late","never":"Never","columns":{"task":"Task","expression":"Cron","last_run":"Last run","duration":"Duration","next_run":"Next run","status":"Status","recent":"Recent runs"},"recent_label":"The last :count runs, oldest first","empty_title":"No scheduled tasks yet","empty_body":"The Lumberjack package reports tasks when the app's scheduler runs them (php artisan schedule:work, or schedule:run every minute).","runs":{"title":"Runs of :task","close":"Close","empty":"No runs yet","started":"Started","exit_code":"Exit code","host":"Host","view_issue":"View issue"},"forget":"Forget task","forget_question":"Forget :task and its runs? If the app still runs it, it comes back.","hint":"A task that has not run :grace minutes after its time is marked missed and becomes an issue."},"screens":{"title":"Screens","description":"Status screens for a TV or a monitor on the wall: live, readable across the room, no interaction needed.","new":"New screen","create":"Create screen","create_hint":"Start from a ready layout or an empty grid; the designer opens next and everything can be changed there.","template":"Start from","templates":{"blank":{"label":"Empty","description":"An 8 x 4 grid to fill yourself."},"overview":{"label":"Overview","description":"Traffic, errors, latency, issues, health, queues and hosts at a glance."},"on_call":{"label":"On call","description":"What needs attention: errors, newest issues, failing checks and alerts."},"infrastructure":{"label":"Infrastructure","description":"CPU, memory and disk per host, agents and every health check."},"background":{"label":"Jobs and schedules","description":"Failed jobs, queue sizes and how the scheduled tasks ran."}},"copy_of":":name (copy)","empty":{"title":"No screens yet","body":"A screen shows a grid of widgets (numbers, gauges, charts, lists and health checks) on a TV. Make one with New screen."},"table":{"name":"Name","grid":"Grid","widgets":"Widgets","theme":"Theme","updated":"Changed","shown_on":"Shown on","now":"{0} none now|{1} 1 now|[2,*] :count now","now_hint":"Kiosks, paired TVs and share links with the screen open right now.","tvs":"{1} 1 paired TV|[2,*] :count paired TVs","shared":"Shared","shared_hint":"Readable by anyone with its link.","actions":"Actions"},"actions":{"open":"Open kiosk","edit":"Design","rename":"Rename","duplicate":"Duplicate","delete":"Delete","delete_title":"Delete screen","delete_question":"Delete the screen :name? This cannot be undone.","delete_tvs":"{0} No paired TV shows it.|{1} 1 paired TV goes blank.|[2,*] :count paired TVs go blank.","save":"Save","export":"Export","export_hint":"Download this screen as a JSON file to import in another team or Lumberjack.","more":"More"},"copy":{"button":"Copy to team...","title":"Copy :name to another team","hint":"A new screen in that team, like this one. Projects and health checks are found there by their slugs; any it does not have are left out and named.","team":"Team","submit":"Copy screen"},"saved_templates":{"save":"Save as template","save_title":"Save :name as a template","save_hint":"New screen offers it to the whole team, next to the built-in layouts. Later changes to the screen do not change the template.","name":"Name","description":"Description","submit":"Save template","title":"Team templates","list_hint":"Saved from the team's screens. Team admins can rename and delete them.","picker":"Saved by the team","by":"by :name","edit":"Edit","edit_title":"Edit the template :name","delete":"Delete","delete_question":"Delete the template :name? Screens made from it stay as they are."},"import":{"button":"Import","title":"Import a screen","hint":"Pick a file exported from Lumberjack, or paste its JSON. Projects and health checks are found by their slugs in this team.","file":"File","paste":"Or paste the JSON","reading":"Reading the file...","preview":"What gets imported","grid":":cols x :rows grid","widgets":"{0} no widgets|{1} 1 widget|[2,*] :count widgets","all_found":"Every project and health check it names exists in this team.","submit":"Import screen","dropped":"Not found in this team, so left out: :items.","dropped_project":"project :slug","dropped_check":"check :check","errors":{"format":"This is not a Lumberjack screen file.","version":"This screen file is from another version of Lumberjack; this one reads version :version.","json":"This is not valid JSON.","size":"The file is too large; a screen file is at most :max KB.","missing":"Pick a file or paste its JSON."}},"theme":{"dark":"Dark","light":"Light","schedule":"Light by day, dark at night"},"period_short":{"now":"now","1h":"1h","24h":"24h","7d":"7d","30d":"30d"},"periods":{"1h":"Last hour","24h":"Last 24 hours","7d":"Last 7 days","30d":"Last 30 days"},"kinds":{"stat":"Stat","gauge":"Gauge","chart":"Chart","list":"List","health":"Health","overview":"Project overview","slo":"SLO","clock":"Clock and text","countdown":"Countdown","message":"Message","qr":"QR code","media":"Image, video or page","empty":"Empty cell"},"hints":{"stat":"One number: requests, errors, jobs, queues, agents","gauge":"One value against its limits","chart":"Any metric over the period","list":"Issues, alerts, jobs, tasks, routes, queues, hosts","health":"All checks, or pick one for its timeline","overview":"Every project as a traffic light","slo":"An objective and its error budget","clock":"Time, a title or a note, and other cities' time","countdown":"Time left to a release, an event or a deadline","message":"A note or a running ticker, colored by how serious","qr":"A link, the guest wifi or any text to scan","media":"A picture or camera, a video, YouTube or a web page","empty":"Blank space; not shown on the TV"},"palette":{"title":"Add a widget","search":"Find a widget","data":"Data","layout":"Layout","none":"No widget matches.","hint":"Drag onto any free cell of the grid, or click to add in the first free spot.","tap_hint":"Tap a widget to add it in the first free spot, then drag it on the grid to move it."},"designer":{"empty":{"title":"An empty screen","body":"Drag a widget from the left onto the grid, click one to add it, or fill the screen from a ready layout and change it from there.","use":"Use :template"},"title":"Design :name","grid":"Screen","count":"{0} No widgets|{1} 1 widget|[2,*] :count widgets","cols":"Columns","rows":"Rows","aspect":"Aspect","orientation":"Orientation","reload":"Reload TVs","reload_hint":"Every TV, kiosk and share link showing this screen loads its page afresh, within a few seconds.","reload_failed":"The reload could not be sent.","preview_at":"Preview at","preview_fit":"Fit","preview_tvs":"On a TV now","preview_common":"Common sizes","preview_custom":"Custom","preview_w":"Width in pixels","preview_h":"Height in pixels","theme":"Theme","show_header":"Show header","light_from":"Light from","light_to":"until","now_theme":"now :theme","preview":"Preview data","live_data":"Live data","incident":"Show an incident","saving":"Saving...","saved":"Saved","live":"{0} Not shown anywhere right now|{1} Shown in 1 place|[2,*] Shown in :count places","error":"Not saved","not_saved":"Not saved: :reason","too_many":"A screen holds at most 48 widgets.","open_kiosk":"Open kiosk","overflow":"{1} 1 widget does not fit on the :cols x :rows screen and does not show on the TV. Drag it back onto free cells, add columns or rows, or remove it.|[2,*] :count widgets do not fit on the :cols x :rows screen and do not show on the TV. Drag them back onto free cells, add columns or rows, or remove them.","no_room":"No free cell left. Make room, or add columns or rows.","help":"Drag a widget onto free cells to move it, any edge or corner to resize it; green shows where it fits, red where it does not. With a widget focused: arrows move it, Shift and arrows resize it, Delete removes it, Escape shows the screen settings.","tile":":kind: :title, :w by :h","tile_untitled":":kind, :w by :h"},"topics":{"traffic":"Traffic","issues":"Issues","jobs":"Jobs and queues","infrastructure":"Hosts and agents","databases":"Databases","health":"Health","external":"External"},"inspector":{"label":"Settings","period":"Over","period_screen":"Screen default","remove":"Remove","add_url":"Add an address","remove_url":"Remove this address","add_zone":"Add a time zone","remove_zone":"Remove this time zone","title":"Title","shows":"Shows","values":"Values shown in turn","add_value":"Add a value to show in turn","remove_value":"Remove this value","rotate_on":"Shows :count values in turn, each on its own tab. Drag a tab or use the arrows to change the order.","rotate_off":"Add a value with + to show several in turn on this tile.","rotate_seconds":"Shows for (seconds)","all_checks":"All checks","some_checks":"{1} 1 check|[2,*] :count checks","same_as_widget":"Same as widget (:value)","on":"On","off":"Off","move_earlier":"Show earlier","move_later":"Show later","whole_widget":"Whole widget","whole_widget_hint":"Applies to every value.","display_gear":"Display settings","display_hint":"Display settings: the gear on the widget.","display_copy":"Copy","display_copied":"Copied","display_paste":"Paste","limits_above":"Turns amber and red at or above the limits; empty uses the defaults shown.","limits_below":"Turns amber and red at or below the limits; empty uses the defaults shown.","ratio_hint":"Shares go from 0 to 1: 0.05 is 5%.","ms_hint":"In milliseconds.","bytes_hint":"In bytes: 1073741824 is 1 GB.","auto":"Automatic","screen_default":"Screen default","screen_timezone":"The screen's time zone","all_projects":"All in the team","all_environments":"All environments","no_checks":"The team has no health checks yet.","checks_hint":"None picked: every check of the projects, new ones included. One picked: that check alone, with its uptime and timeline.","empty_hint":"Keeps this space empty on the TV. Resize it to make a gap of any size."},"aspect":{"16:9":"16:9","16:10":"16:10","4:3":"4:3","21:9":"21:9","43:18":"43:18","32:9":"32:9"},"orientation":{"landscape":"Landscape","portrait":"Portrait"},"fit":{"keep":"Keep its shape","fill":"Fill the display"},"settings":{"title":"Screen settings","hint":"What every widget shows unless it picks its own. Click a widget to change it.","name":"Name","projects":"Projects","projects_hint":"None ticked: every project of the team, new ones included.","timezone":"Time zone","timezone_hint":"For the clock and for switching between light and dark. Empty: each TV uses its own (the browser's) time zone.","browser_timezone":"The browser's time zone","show_clock":"Show the clock in the header","fit":"On a different screen","fit_hint":"A display of another shape than the screen's shows it as designed, centered with bars around it, or stretched to fill it."},"sections":{"value":"Value","scale":"Scale","chart":"Chart","rows":"Rows","checks":"Checks","overview":"Projects","objective":"Objective","clock":"Clock","countdown":"Countdown","message":"Message","qr":"QR code","media":"Media","rotation":"Rotation","scope":"Scope","display":"Display"},"fields":{"amber":{"label":"Amber at"},"red":{"label":"Red at"},"low_is_bad":{"label":"Low values are bad"},"min":{"label":"Minimum"},"max":{"label":"Maximum"},"show_limits":{"label":"Mark the amber limit on the arc"},"show_red_limit":{"label":"Mark the red limit on the arc"},"compare":{"label":"Compare with","options":{"none":"Nothing","previous":"Previous period","yesterday":"Same time yesterday","last_week":"Same time last week"}},"decimals":{"label":"Decimals","options":{"auto":"Automatic","0":"0","1":"1","2":"2"}},"sparkline":{"label":"Sparkline under the number"},"prefix":{"label":"Prefix","placeholder":"e.g. ~"},"suffix":{"label":"Suffix","placeholder":"e.g. \/min"},"style":{"label":"Style","options":{"bars":"Bars","area":"Area","line":"Line"}},"split_by":{"label":"Split by","options":{"none":"Nothing","route":"Route","queue":"Queue","host":"Host","check":"Database check","environment":"Environment","release":"Release","project":"Project"}},"top":{"label":"Series","options":{"5":"Top 5","10":"Top 10","20":"Top 20"}},"overlay_previous":{"label":"Overlay the previous period"},"smooth":{"label":"Smooth lines"},"limit_line":{"label":"Draw the red limit"},"y_zero":{"label":"Y axis starts at zero"},"legend":{"label":"Legend"},"axis":{"label":"Time axis"},"y_axis":{"label":"Value axis"},"grid":{"label":"Grid lines"},"limit":{"label":"Rows","options":{"auto":"Fit to tile","3":"3","5":"5","10":"10","20":"20"}},"sort":{"label":"Sort","options":{"newest":"Newest first","worst":"Most important first","last_seen":"Last reported first","most_frequent":"Most frequent"}},"only_problems":{"label":"Only what needs attention"},"days_before":{"label":"Days back","options":{"0":"From today","1":"From yesterday","7":"A week back"}},"days_after":{"label":"Days ahead","options":{"0":"Rest of today","1":"Until tomorrow","7":"A week","30":"30 days"}},"upcoming_only":{"label":"Only what has not ended"},"show_age":{"label":"Show age"},"show_count":{"label":"Show count"},"show_project":{"label":"Show project"},"wrap":{"label":"Wrap long text"},"auto_scroll":{"label":"Scroll slowly through rows that do not fit"},"view":{"label":"Show as","options":{"auto":"Automatic","summary":"Summary","list":"List","cards":"Cards"}},"checks":{"label":"Checks"},"data_source":{"label":"Data source","none":"Pick a data source","empty":"No data sources yet; add one on a project's Data sources page."},"json_path":{"label":"JSONPath","placeholder":"$.data.total","selector":"Selector","selector_placeholder":"sum by (status) (http_requests_total{method=\"GET\"})","help":{"matches":"Matches: :value","per_min":"counter, per min","invalid":"Not a selector: name{label=\"value\"}, optionally in sum or sum by (label)","no_rate":"A counter: its rate shows after the next fetch","series":"{1} :type \u00b7 1 series|[2,*] :type \u00b7 :count series","selector_series":"{1} 1 series|[2,*] :count series","items":"{0} No items|{1} 1 item|[2,*] :count items","no_match":"No match","not_number":"Not a number","several":{"stat":"Several matches (:count); a stat needs one","gauge":"Several matches (:count); a gauge needs one","chart":"Several matches (:count); a chart needs one"},"suggestions":"Paths in the latest response","latest":"Latest response","fetched":"Fetched :time","truncated":"only the start is shown","not_fetched":"This data source has not answered yet; its paths show here after its first good fetch.","configure":"Configure","configure_selector":"Configure selector","choose":"Choose a value\u2026","apply":"Apply","pick_number":"Click a number in the response to read it, or type a JSONPath.","pick_array":"Click an array in the response to list its items, or type a JSONPath."}},"label_path":{"label":"Label path in each item","placeholder":"$.name"},"value_path":{"label":"Value path in each item","placeholder":"$.count"},"show_uptime":{"label":"Show uptime"},"show_timeline":{"label":"Show the timeline"},"show_message":{"label":"Show the last message"},"problems_first":{"label":"Problems first"},"show_reason":{"label":"Show why"},"new_issues":{"label":"Amber from new issues","options":{"1":"1","3":"3","5":"5","10":"10","20":"20"}},"slo_target":{"label":"Target","options":{"99":"99%","99_5":"99.5%","99_9":"99.9%","99_95":"99.95%","99_99":"99.99%","custom":"Other"}},"slo_custom_target":{"label":"Target in %","placeholder":"99.8"},"threshold_ms":{"label":"Fast enough under (ms)"},"stale_as":{"label":"Stale counts as","options":{"stale":"Its own state","degraded":"Degraded","ok":"Ok"}},"mode":{"label":"Shows","options":{"clock":"Clock","text":"Text only","both":"Clock and text"}},"format":{"label":"Format","options":{"24":"24 hour","12":"12 hour"}},"timezone":{"label":"Time zone"},"seconds":{"label":"Seconds"},"date":{"label":"Date"},"text":{"label":"Text","placeholder":"A note for the room"},"zones":{"label":"Other time zones","hint":"Each shows its city and time under the clock."},"counts_to":{"label":"Counts down to","options":{"moment":"A moment","calendar":"A calendar's events"}},"calendar_count":{"label":"Count","options":{"both":"To the end of the event on, else to the next start","end":"Only to the end of the event on","start":"Only to the next start"}},"calendar_text":{"label":"Says","options":{"title":"The event's title","status":"Busy until or available until"}},"target":{"label":"When","placeholder":""},"countdown_label":{"label":"What it counts down to","placeholder":"Release 2.0"},"after":{"label":"Once it is past","options":{"since":"Count the time since","zero":"Stay at zero","hide":"Show only the text"}},"message":{"label":"Message","placeholder":"Deploy freeze from Friday noon"},"tone":{"label":"Tone","options":{"plain":"Plain","info":"Info (blue)","warning":"Warning (amber)","critical":"Critical (red)"}},"scroll":{"label":"Run across like a ticker"},"content":{"label":"Holds","options":{"link":"A link","wifi":"A wifi network","text":"Text"}},"url":{"label":"Link","placeholder":"https:\/\/"},"ssid":{"label":"Network name","placeholder":"Guests"},"password":{"label":"Password","placeholder":"The network's password"},"security":{"label":"Security","options":{"WPA":"WPA","WEP":"WEP","nopass":"None"}},"hidden_network":{"label":"Hidden network"},"qr_text":{"label":"Text","placeholder":"Anything a phone should read"},"caption":{"label":"Line under the code","placeholders":{"link":"Our status page","wifi":"Guest wifi","text":"Scan me","image":"The loading dock","video":"This week's release","page":"Grafana"}},"media":{"label":"Shows","options":{"image":"An image or camera","video":"A video","page":"A web page or YouTube"}},"media_url":{"label":"Addresses","placeholder":"https:\/\/","hint":"Several show in turn, the same one on every TV at once."},"slide_seconds":{"label":"Next after","options":{"5":"5 seconds","10":"10 seconds","20":"20 seconds","30":"30 seconds","60":"1 minute","300":"5 minutes"}},"padding":{"label":"Space around it"},"subtitles":{"label":"Subtitles (YouTube and Vimeo)"},"fit":{"label":"Fit","options":{"contain":"Whole (contain)","cover":"Fill, cropped (cover)","fill":"Stretch (fill)","none":"Actual size (none)","scale-down":"Shrink only (scale-down)"}},"reload_every":{"label":"Load again","options":{"never":"Never","1":"Every minute","5":"Every 5 minutes","15":"Every 15 minutes","60":"Every hour"}},"rotate_every":{"label":"Switch every","options":{"5":"5 seconds","10":"10 seconds","20":"20 seconds","30":"30 seconds","60":"1 minute"}},"transition":{"label":"Transition","options":{"fade":"Fade","slide":"Slide","flip":"Flip","none":"None"}},"hold_problem":{"label":"Stay on a value that needs attention"},"progress":{"label":"Show a progress bar until the next value"},"source_seconds":{"label":"Seconds the first value shows"},"projects":{"label":"Projects"},"environment":{"label":"Environment"},"period":{"label":"Period"},"show_period":{"label":"Show the period in the corner"},"release":{"label":"Release","options":{"all":"All","current":"Current only","previous":"Previous"}},"filter":{"label":"Filter","placeholder":"route, queue, job, host or check; * matches anything","on":{"queue":"Queue","host":"Host","job":"Job","route":"Route","check":"Database check"},"all":{"queue":"All queues; pick one, or use * as a wildcard","host":"All hosts; pick one, or use * as a wildcard","job":"All jobs; * matches anything","route":"All routes, by URI or name, such as \/checkout* or orders.*","check":"All database checks; pick one, or use * as a wildcard"}},"domain":{"label":"Domain","placeholder":"All domains; pick one, or use * as a wildcard"},"show_title":{"label":"Show title"},"card":{"label":"Show card"},"status_colors":{"label":"Color the tile by status"},"ok_border":{"label":"Green border while all is ok"},"text_size":{"label":"Text size","options":{"auto":"Fit to tile","s":"Small","m":"Medium","l":"Large","xl":"Huge"}},"title_size":{"label":"Title size","options":{"s":"Small","m":"Medium","l":"Large","xl":"Huge"}},"align":{"label":"Align","options":{"left":"Left","center":"Center"}},"valign":{"label":"Vertically","options":{"top":"Top","middle":"Middle"}},"refresh":{"label":"Update","options":{"live":"Live","1m":"Every minute","5m":"Every 5 minutes"}},"hide_when":{"label":"Hide when","options":{"never":"Never","ok":"All is ok","empty":"Empty"}}},"widget":{"loading":"Loading...","failed":"Could not load this widget."},"countdown":{"empty":"Pick when it counts down to.","days":"{1} 1 day|[2,*] :count days","since":"Since :label","since_then":"Since then","no_event":"No event coming up.","nothing_on":"Nothing on now","available":"Available","available_until":"Available until :time","busy_until":"Busy until :time"},"media":{"empty":"No address yet.","invalid":"Only http and https addresses.","failed":"Could not load it."},"qr":{"empty":"Nothing to encode yet.","invalid":"That is not a link a QR code can hold."},"trend":{"previous":"vs the previous period","yesterday":"vs yesterday","last_week":"vs last week"},"gauge":{"label":":value of :max"},"chart":{"label":"Chart of :points points, :total in all","series":{"requests":"Requests","errors":"Errors","previous":"Previous period"}},"release":{"since":"out for :age","previous":"after :release","errors":"5xx :rate"},"list":{"empty":"Nothing to show.","oldest":"oldest :age","workers":"{0} no workers|{1} 1 worker|[2,*] :count workers","host_usage":"CPU :cpu \u00b7 memory :memory \u00b7 disk :disk","offline":"Offline","queue":{"waiting":"Waiting :age"},"meter":{"cpu":"CPU","memory":"Mem","disk":"Disk"},"usage":{"cpu":"CPU :value","memory":"Memory :value","disk":"Disk :value"},"calendar":{"all_day":"All day","now":"Now","until":"until :time","busy":"Busy"},"escalating":"Escalating","regressed":"Regressed","task_status":{"finished":"Ran","failed":"Failed","missed":"Missed","running":"Running","skipped":"Skipped"},"sort_hint":{"latest_issues":{"default":"newest first","newest":"newest first","worst":"most important first","last_seen":"last reported first","most_frequent":"most frequent first"},"alert_feed":{"default":"newest first"},"failed_jobs":{"default":"most failures first"},"scheduled_tasks":{"default":"failed first"},"slowest_routes":{"default":"slowest first"},"queues":{"default":""},"hosts":{"default":""},"agents":{"default":""},"calendar":{"default":""}},"issue_status":{"open":"Open","in_progress":"In progress","resolved":"Resolved","ignored":"Ignored"}},"states":{"down":"Down","degraded":"Degraded","recovering":"Recovering","stale":"Stale","pending":"Pending","ok":"OK"},"health":{"ok_of":":ok of :total ok","all_pass":"All checks pass","every_passes":"Every check passes","for":":state for :time","uptime":":uptime uptime","connections_of":":used of :max conns","connections":":count conns","more":"+:count more"},"overview":{"all_ok":"All projects ok","none":"No projects.","ok_of":":ok of :total ok","more":"+:count more","reasons":{"checks_down":"{1} 1 check down|[2,*] :count checks down","checks_degraded":"{1} 1 check degraded|[2,*] :count checks degraded","escalating":"{1} 1 issue escalating|[2,*] :count issues escalating","new_issues":"{1} 1 new issue|[2,*] :count new issues","backlog":"Backlog on :queue"}},"slo":{"target":"target :target","budget":":remaining of budget left","exhausted":"Budget spent","burn":"burn :rate","no_traffic":"No requests yet","latency":"under :ms ms"},"kiosk":{"identify":"This is","all_projects":"All projects","all_environments":"All environments","attention":"{1} 1 needs attention|[2,*] :count need attention","live":"Live","offline_since":"Offline since :time","offline_title":"Lumberjack cannot be reached","offline_body":"The numbers below are from :time and are not current. Trying again every 30 seconds.","deleted":"This screen was deleted.","unshared":"This screen was unshared.","unshared_body":"The link no longer works. Ask the team for a new one.","no_screen":":name shows no screen yet.","no_screen_body":"Pick one for it under Team settings > Displays; it shows here right away."},"display_theme":{"default":"Screen default","dark":"Dark","light":"Light","schedule":"By time of day"},"tv":{"title":"Show a status screen on this TV","step_scan":"Scan the code with your phone, or open :url","step_code":"Enter this code if asked","step_confirm":"Pick the screen and confirm","code_label":"Pairing code :code","qr_label":"QR code for :url","waiting":"Waiting for confirmation","new_code_in":"new code in :time","paired":"Paired. Opening the screen...","window":"Window :slot","choose_title":"Which window is this?","choose_hint":"Pick the window of :device this one shows, or add another; use the arrow keys and Enter on a remote.","choose_start_page":"Each window lives at its own address. For a screen that runs unattended, make that address its start page, such as :url, not this page.","no_screen":"No screen yet","add_window":"Add another window","add_window_hint":"Pairs window :slot with a new code","start_page":"Opened this page by hand? Make :url the start page of the TV browser, and it will show its screen after every restart."},"pair":{"title":"Show a screen on a TV","question":"Show a screen on this TV?","enter":"Enter the code the TV shows","enter_hint":"Its 6 letters and digits; the dash is optional.","code":"Code","find":"Continue","unknown":"No TV waits for the code :code. Codes last 10 minutes; check the TV for its current one.","device":":device \u00b7 code made :age","unknown_device":"Unknown browser","check":"Check that the TV shows the same code.","screen":"Screen","screen_option":":screen (:team)","name":"Name this device","name_hint":"The TV or computer, so its windows are listed together: \"Office PC\".","name_default":"Office TV","join":"Add window :slot to :device","join_body":"This browser is :device already; window :slot joins it.","screen_window":"Screen for window :slot","confirm":"Show on the TV","expires":"Not your TV? Close this page; the code expires :time.","no_screens":"Only team admins pair TVs, and you administer no team with a screen. Ask a team admin, or make a screen first.","done":":display shows :screen","done_body":"Change what it shows, or remove it, under Team settings > Displays. No need to touch the TV again.","another":"Pair another TV","displays":"Go to Displays","another_window":"Another screen on this device? Open :url in a second window (or on the second monitor) and pair it the same way; it joins :device."},"open_tv":{"button":"Open on a TV","title":"Open on a TV","step_open":"On the TV, open :url. It shows a code.","step_scan":"Scan that code with your phone, or enter it at :url.","step_pick":"Pick the screen and confirm. The TV shows it within a second.","qr_hint":"This code opens :url, for a TV stick or kiosk browser with a camera, or to cast the tab from a laptop.","code":"Code on the TV","continue":"Continue","paired":"Or on a TV already paired","show_here":"Show here","shows_this":"Shows this screen","paired_hint":"It shows this screen instead of what it showed, playlist included, within a second."},"share":{"button":"Share","title":"Share link","hint":"A link that shows this screen without signing in, for signage systems and pages that embed a URL. Prefer pairing a TV: it needs no link at all.","enable":"Share with a link","url":"Share link","titles":"Show issue titles and names, not only counts","rotate":"New link","revoke":"Stop sharing","rotate_question":"Make a new link? The current one stops working at once, on every screen that shows it.","revoke_question":"Stop sharing? The link stops working at once, on every screen that shows it.","qr_label":"QR code for the share link","admins_only":"Only team admins share screens.","off":"Not shared."},"displays":{"title":"Displays","description":"TVs and computers that show a status screen, each with its windows. Open :url on a TV and confirm its code to add one. Changing the screen here switches the TV right away.","pair":"Pair a TV","empty_title":"No TVs yet","empty_body":"Open :url on a TV and confirm the code it shows; it appears here.","device_name":"Name of :name","window_col":"Window","shows":"Shows","seconds_col":"Seconds","hold_col":"Holds on red","theme":"Theme","rotation":"Rotation","rotation_hint":"For a TV hung sideways or upside down that cannot turn its picture itself.","rotations":{"0":"None","90":"90\u00b0 right","180":"180\u00b0","270":"90\u00b0 left"},"viewport":"Size","status":"Status","actions":"Actions","yes":"Yes","no":"No","no_screen":"No screen","unknown_viewport":"Not reported","online":"Online","last_seen":"Last seen :time","never_seen":"Never connected","windows":"{1} 1 window|[2,*] :count windows","reload":"Reload","reload_hint":"Loads the page in this window afresh, as after an update.","identify":"Identify","identify_hint":"The TV shows its name over the screen for 10 seconds, to tell it apart from the others.","reload_device":"Reload all","reload_device_hint":"Loads the page in every window of this device afresh.","remove":"Remove","remove_question":"Remove :name? The window goes back to showing a pairing code.","remove_device":"Remove device","remove_device_question":"Remove :name? Every window of it goes back to showing a pairing code.","read_only":"Only team admins change displays.","add_window":"Add a window: open :url in another browser window on this device and pair it.","rotate":"In turn","rotate_hint":"Pick several screens for this window to rotate through, one after another.","rotating":"{1} 1 screen|[2,*] :count screens in turn","playlist_title":"Screens in turn on :name","playlist_hint":"Tick the screens to show one after another, in this order. Fewer than two shows one screen.","move_up":"Move :name up","move_down":"Move :name down","seconds":"Seconds per screen","hold":"Stay on a screen while it has something red","save":"Save"},"validation":{"source":"This widget cannot show that.","duplicate_id":"Two widgets have the same id.","overlap":"This widget covers a cell another widget already uses."}},"settings":{"title":"Project settings","toc":"Sections","actions":"Actions","days":"{1} 1 day|[2,*] :count days","notifications":{"title":"Notifications","description":"How you hear about what concerns you. Alerts a rule sends to a channel are set up under the team's alerts.","what":"What","mail":"Mail","toast":"In app","push":"Browser","not_available":"Not available","save":"Save","presets":{"label":"Presets","quiet":{"label":"Quiet","description":"Only what concerns you, in app."},"balanced":{"label":"Balanced","description":"What concerns you by mail too, your projects in app."},"everything":{"label":"Everything","description":"Every kind in app and in the browser."}},"groups":{"personal":"About you","project":"Your projects"},"watching":{"label":"Issues you watch","description":"Notes, status and assignee changes grouped into one mail; regressions and escalations right away."},"mentions":{"label":"Mentions","description":"A note tags you."},"assignments":{"label":"Assignments","description":"Someone assigns you to issues or takes you off them."},"new_issues":{"label":"New issues","description":"A new error, a regression or an escalation, as the team's alert rules send them."},"health":{"label":"Health checks","description":"A check turns degraded or down, and when it is ok again. Muted checks stay quiet."},"queue_backlogs":{"label":"Queue backlogs","description":"A queue stays over its thresholds, and when it is back under. Muted queues stay quiet."},"scheduled_tasks":{"label":"Scheduled tasks","description":"A scheduled task fails or is missed. Told here instead of under new issues."},"agents":{"label":"Agents","description":"An agent stops sending its heartbeat."},"releases":{"label":"Releases","description":"A server reports a release for the first time."}},"push":{"title":"Browser notifications","description":"Notifications from your browser, also while Lumberjack is closed. Turn them on in every browser you want them in.","enable":"Enable on this device","enabled_here":"On for this browser.","this_device":"This browser","devices":"Browsers with notifications on","none":"No browser yet.","added":"Added :date","remove":"Remove","unsupported":"This browser cannot show push notifications. On an iPhone or iPad, add Lumberjack to the home screen first.","denied":"Notifications are blocked for this site. Allow them in the browser's site settings, then try again.","not_configured":"Browser notifications are not set up on this server. An administrator sets the VAPID keys (see the documentation).","failed":"The browser could not turn notifications on. Try again, or check its settings."},"onboarding":{"title":"First steps","description":"The short tour from your first login: your teams, notifications and this browser.","open":"Show onboarding again"},"account":{"title":"Profile and settings","description":"Your name, email, notifications, password, two-factor authentication and how Lumberjack looks for you.","profile":"Profile","notifications":"Notifications","security":"Security","appearance":"Appearance","profile_description":"Your name and email address, and deleting your account.","security_description":"Your password and two-factor authentication.","appearance_description":"How Lumberjack looks for you: light, dark or following your system."},"general":{"title":"General","name":"Name","slug":"Slug","slug_hint":"Used in URLs and as the project argument in MCP.","issue_prefix":"Issue prefix","issue_prefix_hint":"Issue numbers look like :example. Changing it renames every issue of the project; notes and repository issues that mention the old number keep it.","origins":"Allowed origins","origins_hint":"Browser errors are only accepted from these origins.","scrub_keys":"Extra secret fields","scrub_defaults":"Always masked:","scrub_hint":"Masked before storage in headers, session, Context and log context. A plain word masks every key containing it (cpr). * is a wildcard on the key name (card_*). A dotted pattern matches the full path (session.checkout.*). Press Save to apply.","scrub_invalid":"Use letters, digits, underscores, hyphens, dots and * wildcards, at most 64 characters.","scrub_duplicate":"That field is already masked.","add_scrub_key":"Add field","remove_scrub_key":"Remove :key","no_origins":"No origins yet. Browser errors are rejected until you add one.","add_origin":"Add origin","remove_origin":"Remove :origin","origin_invalid":"Enter an origin like https:\/\/example.com, without a path.","origin_duplicate":"That origin is already on the list."},"install":{"title":"Installation","description":"The package collects exceptions, requests, queries, jobs and logs. The agent runs once per server.","step_package":"1. Install the package (from its GitHub repository, so Composer needs access to it)","step_env":"2. Put the URL and keys in .env","step_agent":"3. Run the agent under Supervisor on every server","step_browser":"4. Browser errors: put the directive in the <head> of your layout","step_test":"5. Test the install","step_browser_plain":"Browser errors without Laravel: the script tag itself"},"keys":{"title":"Keys","server_token":"Server token","server_token_hint":"Shown only once when created. Rotating gives you a new token right away.","public_key":"Public key (browser)","public_key_hint":"Safe to ship in the page. Only accepted from the allowed origins.","rotate":"Rotate","rotate_token_question":"Rotate the server token? Agents need the new one.","rotate_public_question":"Rotate the public key? Update the script tag afterwards.","public_stats":"Public stats","public_stats_hint":"Serves this project's aggregates on the metrics API at a secret URL, without a token: for Grafana or a wall display. No issue messages, stack traces, user ids or host names. Off by default.","public_stats_enable":"Serve public stats","public_stats_url":"Public stats URL","public_stats_titles":"Include issue titles","rotate_stats_question":"Rotate the public stats key? The current URL stops working at once."},"agents":{"title":"Agents","description":"Local agents that ship data from the project's servers. They check in every minute; one not seen for :hours hours is removed, as its server or pod is most likely gone.","empty":"No agent has reported yet","host":"Host","name":"Name","client":"Running","last_seen":"Last seen","cpu":"Load","load":":load on :cores cores","load_hint":"Processes waiting for a CPU over the last minute. Above the number of cores, the host is overloaded.","load_trend":"Highest load per hour, last 24 hours","memory":"Memory","memory_trend":"Highest memory use per hour, last 24 hours","disk":"Disk","of":":used of :total","status":"Status","online":"Online","offline":"Offline","actions":"Actions","parts":{"sdk":"SDK","agent":"Agent","runtime":"Runtime","framework":"Framework"},"remove":"Remove","remove_question":"Remove the agent on :host? It comes back if it checks in again."},"alerts":{"title":"Alerts","queues":{"title":"Queue thresholds","description":"Queues with their own backlog thresholds; everything not set uses the queue backlog rule above.","size":"over :size jobs","oldest":"oldest over :minutes min","sustained":"for :minutes min","muted":"muted, never alerts","change":"Change them on the Jobs page"},"channels_description":"Channels only this project uses, such as a webhook to the app itself. The team's shared channels are on the team's Alerts page and can be picked in the rules below too."},"triage":{"title":"Automatic triage","description":"An agent that triages new issues and answers notes that tag it, on a schedule in your repository, through Lumberjack's MCP server.","step_token":"Create an MCP token with the write scope that covers this project.","tokens_link":"MCP tokens","step_secrets":"Add these secrets to the GitHub repository:","step_workflow":"Commit this workflow as","local_title":"Or triage now, in a local session","local_hint":"Set :secret to an MCP token in your shell first, e.g. export :secret=lj_mcp_...; Claude Code then has Lumberjack's tools for this session.","hint":"CLAUDE_CODE_OAUTH_TOKEN runs on a Claude subscription; create it with claude setup-token. To pay per use instead, use ANTHROPIC_API_KEY as the workflow describes. GitHub has to reach this Lumberjack, so it must be on a public URL. The agent never resolves an issue. When it is sure of a small fix, it opens a draft pull request on a lumberjack\/<issue> branch; it never pushes to the default branch or merges."},"labels":{"title":"Labels","description":"Labels are made on the issue page by typing a new name. Rename, recolor or delete them here.","empty":"No labels yet. Add one on an issue.","name":"Name","color":"Color","issues":"{0} no issues|{1} 1 issue|[2,*] :count issues","delete":"Delete","delete_question":"Delete :label? It comes off every issue that has it.","colors":{"gray":"Gray","red":"Red","orange":"Orange","yellow":"Yellow","green":"Green","teal":"Teal","blue":"Blue","purple":"Purple"}},"channels":{"title":"Log channels","description":"Lines sent to a channel the project does not have land in default.","name":"Channel","lines":"Lines 24 h","retention":"Retention","locked":"Locked","cannot_delete":"Cannot be deleted","inherits":"Project default (:days days)","delete_question":"Delete :name? Its lines move to default.","unknown":"Unknown channel :name has sent lines that landed in default.","create_named":"Create :name","new":"New channel","create":"Create channel","hint":"Lowercase letters, digits and single hyphens, up to 64 characters.","valid":"Looks good.","too_long":"At most 64 characters.","reserved":"\"default\" already exists and is reserved.","invalid":"Use lowercase letters, digits and single hyphens (kebab-case).","taken":"The project already has a channel with that name.","use_suggestion":"Use :name"},"retention":{"title":"Retention","description":"How long each kind of data is kept. Empty uses the team default. Each value is capped by the team and the application.","data_type":"Data type","inherited":"Default","value":"This level","rows":"Rows","oldest":"Oldest","deletes_before":"Deletes before","days_for":":label, days","forever_for":"Keep :label forever","forever":"Forever","never":"Never","inherit":"inherit","estimated":"estimate","more":":count+","measuring":"Counting\u2026","reset":"Reset","reset_for":"Reset :label to the default","team_default":"Team default: :value","application_default":"Application: :value","built_in_default":"Built-in default: :value","cap":"At most :value (:level)","capped":"Capped: keeps :value because the :level allows no more. Stored value: :stored.","groups":{"errors":"Errors","performance":"Performance","jobs":"Jobs","logs":"Logs","health":"Health","infrastructure":"Infrastructure","alerts":"Alerts","administration":"Administration"},"levels":{"default":"built-in default","application":"application","team":"team","project":"project","override":"override"},"job_overrides":"Overrides per job class","no_job_overrides":"No overrides.","job_class":"Job class","days_label":"Days","add_override":"Add override","remove_override":"Remove override for :job","failed_jobs_hint":"Failed job runs always stay at least as long as occurrences.","channels":"Per log channel (days)","override_capped":"Capped at :value by the :level."},"repository":{"create_token":"Create token on GitHub","opens_new_tab":"(opens in a new tab)","create_token_hint":"Opens GitHub with name, expiry (90 days) and Issues read and write filled in. Under Repository access, choose Only select repositories and pick :repository, then paste the token here.","token_description":"Lets Lumberjack create issues in :repository for :project.","title":"Repository integration","description":"Used by the \"Create GitHub issue\" button and the MCP tool create_repo_issue.","provider":"Provider","repository":"Repository","repository_hint":"In the form owner\/name.","token":"Fine-grained token","token_hint":"Only Issues read and write on this repository.","token_keep_hint":"Leave empty to keep the stored token.","expires":"Token expires","expires_soon":"{0} The token expires today.|{1} The token expires in 1 day.|[2,*] The token expires in :count days.","expired":"The token has expired. Issues cannot be created until you add a new one.","labels":"Labels","labels_hint":"Comma separated.","allow_public":"Allow creating issues in a public repository","test":"Test connection","unlink":"Unlink","unlink_question":"Unlink the repository and forget the token?"},"danger":{"title":"Danger zone","description":"Deletes the project and all its data. Raw data is removed in the background in batches and can take several minutes.","delete":"Delete project","type_name":"Type :name to confirm","confirm":"Delete project permanently"}},"team":{"title":"Members and tokens","none":{"title":"Not in a team yet","body":"You join a team when someone invites you to it. Ask a team owner or an administrator of this Lumberjack for an invitation; it arrives by email."},"actions":"Actions","members":{"title":"Members","description":"Only team members have access to the team's projects.","name":"Name","email":"Email","role":"Role","role_for":"Role for :name","you":"(you)","transfer":"Transfer ownership","transfer_question":"Make :name the owner? You become an admin.","remove":"Remove","remove_question":"Remove :name from the team?"},"invitations":{"resend":"Send again","title":"Open invitations","expires":"expires :time","expired":"Expired","revoke":"Revoke","revoke_question":"Revoke the invitation for :email? The link stops working.","email":"Invite by email","email_placeholder":"name@company.com","send":"Send invitation"},"tokens":{"title":"API and MCP tokens","description":"Gives an agent access to the selected projects through MCP, and Grafana or a script read access through the metrics API.","endpoint":"Endpoint:","api_endpoint":"Metrics API:","empty":"No tokens yet","name":"Name","projects":"Projects","all_projects":"All projects (:count)","scope":"Scope","created_by":"Created by","inactive":"Stopped","inactive_hint":"Its creator no longer administers this team, so the token no longer works. Revoke it and make a new one.","last_used":"Last used","never_used":"Never","expires":"Expires","expires_in":"{1} In 1 day|[2,*] In :count days","never":"Never","scopes":{"read":"read","write":"write"},"scope_hints":{"read":"read only (MCP and the metrics API)","write":"read, notes, status, assignment and repository issues"},"no_projects":"The team has no projects yet.","new":"New token","create":"Create token","revoke":"Revoke","revoke_question":"Revoke :name? Agents using it lose access at once."},"retention":{"title":"Team retention","description":"Default and maximum for every project of the team. Empty uses the application value; each value is capped by the application.","unsaved":"Unsaved changes","discard":"Discard"},"create":{"title":"Create a team","description":"A new team starts empty, with you as the owner.","name":"Team name","submit":"Create team"}},"traces":{"title":"Trace","description":"Everything that happened under this trace, on one time axis.","request":"Request","job":"Job","roots":{"command":"Artisan command","schedule":"Scheduled task"},"timeline":"Timeline","timeline_hint":"Bars show how long each step took, placed where it started.","empty":"Nothing was recorded on this trace besides the request itself.","at":"At","what":"What","took":"Took","summary":{"queries":"{1} 1 query|[2,*] :count queries","http":"{1} 1 outgoing call|[2,*] :count outgoing calls","cache":"{1} 1 cache operation|[2,*] :count cache operations","cache_misses":":count missed","mail":"{1} 1 mail|[2,*] :count mails","notification":"{1} 1 notification|[2,*] :count notifications","redis":"{1} 1 Redis command|[2,*] :count Redis commands","log":"{1} 1 log line|[2,*] :count log lines","exception":"{1} 1 exception|[2,*] :count exceptions"},"kinds":{"query":"Query","cache":"Cache","http":"HTTP","mail":"Mail","notification":"Notification","redis":"Redis","log":"Log","exception":"Exception"},"recipients":"{1} to 1 recipient|[2,*] to :count recipients","open":"Open trace"}}