Compare commits

..
Author SHA1 Message Date
Ludovic Marie 4cea8c2ee6 Merge remote-tracking branch 'origin/main' into split/telemetry-probes 2026-11-09 21:00:24 +01:00
Ludovic Marie 38174db59b Merge pull request #14170 from MSedgeMC/port_map/barrier-pickup-rule
🤖 Agent: Sim::pickup_block already gates a waterlogged barrier on the breaker being creative, as BarrierBlock.pickupBlock does.
2026-11-09 20:59:57 +01:00
Ludovic Marie 093f5efda8 Merge pull request #14001 from horizon-rust/layers/input-feedback
🤖 Agent: gameplay now asks controllers only through input_move, input_holds, input_look and input_feedback in play_input.rs, which still call the same pad functions, so the pad modules can later answer through a registered input source.
2026-11-09 20:59:12 +01:00
Ludovic Marie b444a6b64f Merge pull request #14171 from MSedgeMC/worldlane/chest-opener-rechecks
🤖 Agent: same rows as #14128 without the stray worldgen change: Sim::tick_block's chest arm is recheckOpen, scheduled every 5 ticks from count_opener.
2026-11-09 20:59:03 +01:00
Ludovic Marie e8d192f2ac Merge pull request #14218 from horizon-rust/layers/containers-spec
🤖 Agent: docs only: adds the Look and container-screen API specs to docs/layers.md under Platform registries, following #14217's look::update.
2026-11-09 20:58:59 +01:00
Ludovic Marie 6ad39aa412 Merge pull request #14127 from horizon-rust/fix/offline-names-dev-only
🤖 Agent: the game now plays only as the selected account (else the first), which must own the game itself (launch_for_game); old accounts.json/settings.json load and drop offline, offline_selected, looks, skins/ and dev_offline on the next save, covered by files_from_launchers_with_offline_names_load_and_lose_them_on_save.
2026-11-09 20:58:55 +01:00
Ludovic Marie 6342ce83b2 Merge pull request #14002 from MrCloudy2/fix/bounced-projectile-tick-order
🤖 Agent: a bounced arrow goes back by join number through JoinList::put_back (unit-tested), so it keeps its EntityTickList place; moved out of creatures.rs, which may not grow.
2026-11-09 20:58:51 +01:00
Ludovic Marie 595421d8ee Merge pull request #14018 from MSedgeMC/fix/stonecutter-result-components
🤖 Agent: a stonecutting result with a components patch goes through SmithingResult's template create, so a pack's custom-named result keeps its name; plain results stay on the cheap path.
2026-11-09 20:51:44 +01:00
Ludovic Marie 7169886142 Merge pull request #14122 from MSedgeMC/fix/anvil-selection-colour
🤖 Agent: AnvilScreen.init's setInvertHighlightedTextColor(false) on the rename box; moved apart from #14094's EditBox lines so both merge in either order.
2026-11-09 20:48:53 +01:00
Ludovic Marie cdcac3463e Merge pull request #14123 from Mik00000/perf/async-audio-raycasts
🤖 Agent: bee sounds no longer rescan every mob per bee each tick and the sound engine takes one lock per channel update; silent one-frame/empty sounds stop again (agent fix 23ca4a8).
2026-11-09 20:45:15 +01:00
Ludovic Marie e71c626484 Merge pull request #14097 from vnsmoreira/packs/polytone-expr-fast
🤖 Agent: the fast path only takes one-expression programs whose kind is known and is checked bit for bit against the interpreter; 468 lines after the timing test moved to #14185. Queue AFTER 14089.
2026-11-09 20:45:10 +01:00
Ludovic Marie 194ede9376 Merge pull request #14077 from DUzzL/fix/13935-iron-golem
🤖 Agent: OfferFlowerGoal's (6,2,6) box plus forNonCombat().range(6) with sight, isBrightOutside's fixed-time check, the golem's own random for the repair pitch; the defence sight test the body named is now in the diff (agent fix 4643ea9).
2026-11-09 20:45:06 +01:00
Ludovic Marie 0694db7dcb Merge pull request #14152 from horizon-rust/split/telemetry-scrub
🤖 Agent: scrub.rs moved unchanged to horizon-system; horizon-telemetry re-exports it, so the launcher and the ingest server keep their paths.
2026-11-09 20:00:36 +01:00
Horizon agentandClaude Opus 5.5 4881a0862f Container screens spec: container_key gets the hovered slot, as the other inputs
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-11-09 19:59:40 +01:00
Horizon agentandClaude Opus 5.5 e859476293 test_world_input_capture: the move read is input_move now
tick_remote_level asks the input source (input_move) instead of pad_move, so
the order check (load completes, then the player moves) looks for that call
(verify run 42649031940).

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-11-09 19:45:27 +01:00
Horizon agentandClaude Opus 5.5 89235891ce Container screens spec: the API as implemented (&mut reads, spread, Equipment, every menu's slots)
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-11-09 19:38:19 +01:00
Horizon agentandClaude Opus 5.5 2081a0dd95 Merge main into #14127; be.json is main's translation minus the offline-name keys
Main retranslated 252 Belarusian launcher strings; this PR removes the 28
offline-name keys. be.json is main's file with those 28 keys taken out (7 of
them were among the retranslated ones); every lang file parses and none keeps
a removed key.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-11-09 19:35:38 +01:00
Horizon agentandClaude Opus 5.5 8534f12db0 Look spec: update, each crate its own fields
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-11-09 19:25:12 +01:00
Horizon agentandClaude Opus 5.5 7e95a1f57f stations tests: keep the registration-order doc on its own test
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-11-09 19:23:37 +01:00
Horizon agentandClaude Opus 5.5 e0e4c5e9db docs/layers.md: spec of the look and the container screen API (layer plan M5)
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-11-09 19:22:25 +01:00
MSedgeMC 2e9f807458 Merge remote-tracking branch 'upstream/main' into fix/stonecutter-result-components 2026-11-09 18:01:23 +00:00
MSedgeMC 8d7ca30ea4 Merge remote-tracking branch 'upstream/main' into fix/stonecutter-result-components 2026-11-09 17:58:10 +00:00
Horizon agentandClaude Opus 5.5 6bb4c0eda9 Put a bounced projectile back through JoinList::put_back
creatures.rs is over 3000 lines and may not grow (verify's file-size check):
the join-order insertion moves to join_seq.rs, with a unit test.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-11-09 18:53:40 +01:00
Horizon agentandClaude Opus 5.5 2f06f532e5 rustfmt
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-11-09 18:52:52 +01:00
MSedgeMC 092dee299b Merge remote-tracking branch 'upstream/main' into fix/stonecutter-result-components 2026-11-09 17:52:13 +00:00
Horizon agentandClaude Opus 5.5 23ca4a855a audio: silent short sounds stop again; drop the unused camera_epoch
- A channel of one frame or none was skipped before the mixing loop, so it
  never stopped and kept its channel; the inaudible fast path also computed
  (frames - 1) in usize, which underflows for an empty sound. Both now stop
  it, as the loop does; a step of 0 no longer stops a sound the loop keeps.
- Mixer::camera_epoch was written and never read.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-11-09 18:46:45 +01:00
MSedgeMC 16172da6b7 port_map: the chest and ender chest recheckOpen rows are ports
`Sim::tick_block`'s chest arm is `ChestBlock.tick`/`EnderChestBlock.tick`:
it recounts the openers through `recheck_container_openers`
(`ContainerOpenersCounter.recheckOpeners`), broadcasts the lid event and
re-schedules the five-tick tick while anyone has the container open. The
rows still said only the copper golems' openers were rechecked.
2026-11-09 17:46:19 +00:00
Horizon agentandClaude Opus 5.5 5720b15eff ui: the highlight flag and its test sit apart from #14094's
#14094 adds EditBox::centered beside text_color and a test at the end of
ui.rs's tests; this PR's field, initialiser and test touched the same lines.
Moved further down so both merge in either order. No behaviour change.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-11-09 18:45:49 +01:00
Horizon agentandClaude Opus 5.5 2e754b1297 Polytone: the ticker timing test moves to its own PR; field() last
Keeps this PR under the project's 500-line limit (519 -> 468): the ignored
custom_ticker_cost timing test follows in a separate PR. Ctx's field() moves
to the end of its Host impl, so this merges cleanly beside #14089, which
changes the impl's own line.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-11-09 18:45:18 +01:00
MSedgeMC 70c8d7089d port_map: the barrier pickup row's creative rule is checked
`Sim::pickup_block` returns false for a waterlogged barrier unless the
breaker is creative, which is `BarrierBlock.pickupBlock`'s gate; the row
said the rule was not there.
2026-11-09 17:45:14 +00:00
Horizon agentandClaude Opus 5.5 4643ea9357 Iron golem: the defence goal sees the hating villager too
DefendVillageTargetGoal.canUse finds the villagers through attackTargeting
(forCombat().range(64)), which tests the golem's line of sight to each: a
villager behind a wall no longer sets the golem on the player. The PR body
named this change but the commit missed it.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-11-09 18:44:12 +01:00
Horizon agentandClaude Opus 5.5 1e789800af launcher: remove offline names; play only as an account that owns the game
The project decided that Horizon plays only with a Microsoft account that
owns Minecraft: Java Edition. The launcher loses, in every build:

- the hidden Developer options section (seven clicks on the sidebar
  version) and Settings::dev_offline;
- offline names: adding, selecting and playing as one, the game's made-up
  name as a player, their skins and capes (skins.rs, skin_page.rs), the
  quick switch's and Settings > Account's offline entries, and the CLI's
  `account offline`, `account forget-offline` and `account skin`;
- the `--name` and HORIZON_OFFLINE_SKIN* it gave the game for them.

The game plays as the selected account (else the first), and
account::launch_for_game requires that account to own the game itself:
another account's ownership no longer lets it start under a name of its
own. With no network, its last answer still stands, as before.

Files from older launchers still load: accounts.json's `offline`,
`offline_selected` and `looks` and settings.json's `dev_offline` are
ignored on read and gone from the next save, which also deletes the old
names' skin and cape files.

The 28 strings only these used leave the 86 lang files and the
lang_review copies.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-11-09 18:18:05 +01:00
MSedgeMC 74e0245c47 port_map: EditBox.setInvertHighlightedTextColor 2026-11-09 17:17:21 +00:00
MSedgeMC e5eacec45c test: the anvil's selection keeps its colour
The box reports its own inversion off; a default box inverts; the selection
it would draw is the value.
2026-11-09 17:17:15 +00:00
Mik00000andClaude Opus 5.5 cf23e5001a perf(audio): optimize sound attenuation, spatial math, and batch channel updates
- Early-out for stationary listener in Audio::set_listener (bypasses mutex lock contention completely when camera does not move, ~5.25 ns vs ~36 ns)
- Eliminate redundant distance sqrt in stereo_gains: projections onto orthonormal basis preserve Euclidean distance, so reuse d.length()
- Replace asin in elevation with sqrt(1 - u^2) using identity cos(asin(u)) = sqrt(1 - u^2), avoiding inverse trig entirely
- Single-camera fast path in mix to avoid splitscreen camera search loop in normal single-player / multiplayer mode
- Distance squared early-out for linear attenuation (bypasses basis projections and stereo gains for inaudible sounds outside attenuation radius)
- Fast sample skipping for silent / zero-gain audio frames without decoding interpolation
- Batch channel parameter updates via Backend::update_channel, reducing 3 mutex lock acquisitions per ticking instance to 1
- Batch stopped query via Backend::filter_stopped, replacing N individual channel mutex locks per tick with a single query pass
- Avoid O(N*M) entity loop in Game::start_mob_sounds by collecting bee indices in initial filter pass

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-11-09 19:16:52 +02:00
MSedgeMC 0e9233b230 fix: the anvil's selected name keeps its colour
AnvilScreen sets setInvertHighlightedTextColor(false) on its rename box, so a
selection leaves the white text alone instead of painting it black on the
highlight. EditBox always inverted it.
2026-11-09 17:16:42 +00:00
Vinícius MoreiraandClaude Opus 5.5 3b03b98836 Polytone: expression fields answered without their names
The fast path resolves the methods without arguments expressions read most (age, life,
custom, x, y, z, temperature, downfall) when the program compiles; a host may answer them by
that Field (Host::field) instead of comparing names, and one that doesn't, or a case it
doesn't cover, goes through the name as before, with the same value. The particles' host
answers a particle's own fields, the colormaps' block host its position and biome climate.
The equivalence test now also runs a host that answers fields.

Custom particle tick (custom_ticker_cost, release): 376 ns before, 344 ns now.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-11-09 13:42:26 -03:00
Vinícius MoreiraandClaude Opus 5.5 4e4767bbfe Polytone: a numeric fast path for expressions
A Polytone expression ran through the interpreter's Values and Results: about 263 ns for a
firefly's alpha that costs 7 ns written in Rust. An expression of one statement whose every
part is a number (constants, arithmetic, comparisons of numbers, math functions, ternaries,
and root.method(...) calls) now compiles a second time into a tree of f64s. It answers
exactly what the interpreter would: the result's kind (number, boolean, or a method's own
value at the top), method arguments as the interpreter passes them, Value::truthy for
methods in conditions; anything that could tell them apart (strings, == on a method's
value, locals, game functions) stays in the interpreter. A test runs a corpus of
expressions through both and compares every value and every host call.

Custom particle tick (custom_ticker_cost, release): 715 ns before, 376 ns now. A section's
colormap tints (colormap_tint_cost): 178 µs before, 135 µs now, same colours.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-11-09 13:42:26 -03:00
Vinícius MoreiraandClaude Opus 5.5 a2d34c7dbd Polytone: a timing test for custom particle tickers
custom_ticker_cost (ignored) ticks a firefly-like custom particle (five expressions with
sines and a named custom) and prints the time a tick takes, about 0.7 µs in release.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-11-09 13:42:26 -03:00
DUzzL e42acfc7ea Give the iron golem's poppy offer vanilla's range, sight and daylight gate, sight-test villagers in the defence goal, draw the repair pitch from the golem 2026-11-09 17:37:02 +01:00
MSedgeMC f0c1ec9d84 A stonecutter result keeps its components
StonecuttingRecipe.assemble creates the result from ItemStackTemplate, so a
result's components (a data pack's custom name, damage, ...) belong on the
output. Horizon built the result from its id and count only.

Test: a stonecutting recipe whose stone result names it "Cut Stone" yields a
named stone.
2026-11-09 15:59:33 +00:00
Horizon agentandClaude Opus 5.5 755b7800c1 Input source: what gameplay tells the pad goes through engine methods too
input_keyboard_used, input_made_pointer_event, input_player_replaced,
input_takes_stack_drop and input_hud_begin replace gameplay's direct writes to
the pad's state.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-11-09 16:51:53 +01:00
MrCloudy2andClaude Opus 5.5 30149bfb41 Harness: an arrow bouncing off a wind charge keeps its place in the tick order
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-11-09 16:47:59 +01:00
Ludovic MarieandClaude Opus 5.5 0031c67d04 rustfmt explosion.rs
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-11-09 16:46:14 +01:00
MrCloudy2andClaude Opus 5.5 2726614191 A projectile put back after its hit keeps its place in the tick order
An arrow that bounces off an entity (deflect REVERSE) never leaves the level
in vanilla, so it keeps its place in EntityTickList. Horizon's projectile
pass drops it and finish_arrow_hit adds it again with add_projectile, which
appended it behind every projectile already waiting: those then ticked
before it. add_projectile now puts a projectile that has already joined back
at its join position; a new one still goes last.

Found with the Orbital Skybender: the arrow that reads each digit missed
every other wind charge, so only half the digits were read.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-11-09 16:41:23 +01:00
Ludovic MarieandClaude Opus 5.5 5152376c4b input_feedback: commands already have a feedback
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-11-09 16:24:14 +01:00
Horizon agentandClaude Opus 5.5 8f331a10f5 Input source: gameplay asks controllers through engine methods (layer plan M6)
Gameplay reads the analog move vector, held mappings and the view turn, and
reports what the player may feel (Feedback), through input_move, input_holds,
input_look and feedback in play_input.rs. Only these four bodies name the pad
modules, which answer today; Feedback is an engine type the pad maps to Rumble.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-11-09 16:15:28 +01:00
Horizon agentandClaude Opus 5.5 92742bef1b horizon-system: the scrubber leaves horizon-telemetry (layer plan M5)
scrub.rs moves unchanged from horizon-telemetry to horizon-system (engine);
horizon-telemetry re-exports it at horizon_telemetry::scrub for the launcher.
The repro export (agent control) reads it there, so gameplay no longer uses
horizon-telemetry for it.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-11-09 15:36:00 +01:00
Horizon agentandClaude Opus 5.5 bb29b70b32 Cargo.lock: horizon-system for horizon-client and horizon-optifine
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-11-09 15:23:16 +01:00
Horizon agentandClaude Opus 5.5 3ad8a18a7b horizon-system: the process probes leave horizon-bench (layer plan M5)
rss_bytes, cpu_seconds and load_average move to horizon-system (engine);
horizon-bench re-exports them for the launcher. horizon-system's cpu() and
ram_bytes() become public and replace horizon-bench's identical copies.
The dedicated server's performance report and cem_expr_bench read them
there, so gameplay no longer uses horizon-bench for them.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-11-09 15:14:20 +01:00
380 changed files with 4300 additions and 9252 deletions

No files matched your search

Generated
+3 -1
View File
@@ -1449,6 +1449,7 @@ dependencies = [
"horizon-core",
"horizon-cosmetics",
"horizon-dualsense",
"horizon-friends",
"horizon-hdr",
"horizon-hooks",
"horizon-items",
@@ -1460,6 +1461,7 @@ dependencies = [
"horizon-server-files",
"horizon-shader-api",
"horizon-shaders",
"horizon-system",
"horizon-telemetry",
"horizon-theme",
"horizon-threads",
@@ -1804,8 +1806,8 @@ dependencies = [
name = "horizon-optifine"
version = "0.1.0"
dependencies = [
"horizon-bench",
"horizon-core",
"horizon-system",
"log",
"regex",
]
+3 -117
View File
@@ -1,6 +1,7 @@
//! The machine a report was measured on. CPU, RAM and OS are detected here; the GPU and the display
//! come from the program that rendered (the game knows its adapter, the launcher its window).
#[cfg(any(target_os = "macos", target_os = "linux"))]
use horizon_telemetry::system::command_output as output;
use serde::{Deserialize, Serialize};
@@ -68,12 +69,12 @@ impl Hardware {
os: std::env::consts::OS.to_owned(),
os_version: os_version(),
arch: std::env::consts::ARCH.to_owned(),
cpu: cpu(),
cpu: horizon_telemetry::system::cpu(),
cpu_threads: std::thread::available_parallelism().ok().map(|n| n.get()),
cpu_cores: probes.cores,
cpu_base_mhz: probes.base,
cpu_boost_mhz: probes.boost,
ram_mb: ram_bytes().map(|b| b >> 20),
ram_mb: horizon_telemetry::system::ram_bytes().map(|b| b >> 20),
storage: None,
form: probes.form,
gpu: None,
@@ -109,84 +110,16 @@ fn probes() -> Probes {
}
}
/// The one-minute load average: above about the number of threads the machine was busy.
pub fn load_average() -> Option<f64> {
if cfg!(target_os = "macos") {
// "{ 1.23 1.10 1.00 }"
output("sysctl", &["-n", "vm.loadavg"])?
.trim_start_matches('{')
.split_whitespace()
.next()?
.parse()
.ok()
} else {
std::fs::read_to_string("/proc/loadavg")
.ok()?
.split_whitespace()
.next()?
.parse()
.ok()
}
}
/// `ac` or `battery`; `None` where it can't be read (and on machines without a battery on Linux).
pub fn power_source() -> Option<&'static str> {
horizon_telemetry::system::power()
}
/// Resident memory of a process, in bytes (macOS, Linux).
pub fn rss_bytes(pid: u32) -> Option<u64> {
if cfg!(target_os = "macos") {
return output("ps", &["-o", "rss=", "-p", &pid.to_string()])?
.parse::<u64>()
.ok()
.map(|kb| kb * 1024);
}
let status = std::fs::read_to_string(format!("/proc/{pid}/status")).ok()?;
let line = status.lines().find(|l| l.starts_with("VmRSS:"))?;
line.split_whitespace()
.nth(1)?
.parse::<u64>()
.ok()
.map(|kb| kb * 1024)
}
/// CPU time a process has used, user and system, in seconds (macOS, Linux).
pub fn cpu_seconds(pid: u32) -> Option<f64> {
if cfg!(target_os = "macos") {
// "[[dd-]hh:]mm:ss.cc"
let time = output("ps", &["-o", "time=", "-p", &pid.to_string()])?;
let (rest, days) = match time.split_once('-') {
Some((d, rest)) => (rest.to_owned(), d.parse::<f64>().ok()?),
None => (time, 0.0),
};
let seconds = rest.split(':').try_fold(0.0, |acc, part| {
part.parse::<f64>().ok().map(|v| acc * 60.0 + v)
})?;
return Some(days * 86_400.0 + seconds);
}
// utime and stime, fields 14 and 15, in clock ticks (100 per second on Linux).
let stat = std::fs::read_to_string(format!("/proc/{pid}/stat")).ok()?;
let fields: Vec<&str> = stat.rsplit_once(')')?.1.split_whitespace().collect();
let ticks: f64 = fields.get(11)?.parse::<f64>().ok()? + fields.get(12)?.parse::<f64>().ok()?;
Some(ticks / 100.0)
}
#[cfg(target_os = "macos")]
fn os_version() -> Option<String> {
output("sw_vers", &["-productVersion"])
}
#[cfg(target_os = "macos")]
fn cpu() -> Option<String> {
output("sysctl", &["-n", "machdep.cpu.brand_string"])
}
#[cfg(target_os = "macos")]
fn ram_bytes() -> Option<u64> {
output("sysctl", &["-n", "hw.memsize"])?.parse().ok()
}
#[cfg(target_os = "linux")]
fn os_version() -> Option<String> {
let release = std::fs::read_to_string("/etc/os-release").ok()?;
@@ -199,22 +132,6 @@ fn os_version() -> Option<String> {
})
}
#[cfg(target_os = "linux")]
fn cpu() -> Option<String> {
let info = std::fs::read_to_string("/proc/cpuinfo").ok()?;
// x86 names the CPU per core; arm64 only gives the core's implementer and part.
horizon_telemetry::system::linux_cpu_name(&info)
}
#[cfg(target_os = "linux")]
fn ram_bytes() -> Option<u64> {
let info = std::fs::read_to_string("/proc/meminfo").ok()?;
let kb = key_value(&info, "MemTotal", ':')?
.trim_end_matches("kB")
.trim();
kb.parse::<u64>().ok().map(|kb| kb * 1024)
}
#[cfg(target_os = "linux")]
fn key_value<'a>(text: &'a str, key: &str, sep: char) -> Option<&'a str> {
text.lines().find_map(|line| {
@@ -228,39 +145,11 @@ fn os_version() -> Option<String> {
horizon_telemetry::system::windows_version()
}
#[cfg(target_os = "windows")]
fn cpu() -> Option<String> {
horizon_telemetry::system::windows_cpu()
}
#[cfg(target_os = "windows")]
fn ram_bytes() -> Option<u64> {
let out = output(
"powershell",
&[
"-NoProfile",
"-Command",
"(Get-CimInstance Win32_ComputerSystem).TotalPhysicalMemory",
],
)?;
out.parse().ok()
}
#[cfg(not(any(target_os = "macos", target_os = "linux", target_os = "windows")))]
fn os_version() -> Option<String> {
None
}
#[cfg(not(any(target_os = "macos", target_os = "linux", target_os = "windows")))]
fn cpu() -> Option<String> {
None
}
#[cfg(not(any(target_os = "macos", target_os = "linux", target_os = "windows")))]
fn ram_bytes() -> Option<u64> {
None
}
#[cfg(test)]
mod tests {
use super::*;
@@ -274,9 +163,6 @@ mod tests {
assert!(hw.cpu.is_some(), "{hw:?}");
assert!(hw.ram_mb.unwrap() > 256, "{hw:?}");
assert!(hw.os_version.is_some(), "{hw:?}");
assert!(load_average().is_some());
assert!(rss_bytes(std::process::id()).unwrap() > 1 << 20);
assert!(cpu_seconds(std::process::id()).unwrap() >= 0.0);
}
}
+3 -1
View File
@@ -13,7 +13,9 @@ use serde::{Deserialize, Serialize};
mod hardware;
pub use hardware::{cpu_seconds, load_average, power_source, rss_bytes, Display, Gpu, Hardware};
pub use hardware::{power_source, Display, Gpu, Hardware};
/// The process probes, from the platform (`horizon-system`).
pub use horizon_telemetry::system::{cpu_seconds, load_average, rss_bytes};
pub const FORMAT: &str = "horizon-benchmark-report";
pub const VERSION: u32 = 1;
+37 -172
View File
@@ -74,70 +74,11 @@ pub trait ResourceSource {
vec!["minecraft".into()]
}
}
/// The bundled file a language reads, and whether it drops `ß`: a regional variant reads its
/// language's file (Swiss German writes "ss" for "ß", as vanilla's de_ch does).
fn bundled_code(code: &str) -> (&str, bool) {
match code {
"ko" => ("ko_kr", false),
"hr" => ("hr_hr", false),
"de_at" => ("de_de", false),
"de_ch" => ("de_de", true),
"fr_ca" | "fr_ch" => ("fr_fr", false),
"es_ar" | "es_cl" | "es_ec" | "es_mx" | "es_uy" | "es_ve" => ("es_es", false),
code => (code, false),
}
}
/// Lang files crates above the engine ship (`horizon_hooks::lang`), each a list of
/// (code, JSON) pairs. The game's entry installs them once, before any language loads.
static CRATE_FILES: std::sync::OnceLock<&'static [&'static [(&'static str, &'static str)]]> =
std::sync::OnceLock::new();
/// Installs the crates' lang files (`horizon_hooks::lang::engine::all()`). Only the first call
/// counts.
pub fn install_crate_files(files: &'static [&'static [(&'static str, &'static str)]]) {
let _ = CRATE_FILES.set(files);
}
/// The crates' entries for language `code` (through [`bundled_code`]'s variants) that the
/// engine's own `horizon` file for it doesn't have: on a key both have, the engine wins.
fn read_crate_files(files: &[&[(&str, &str)]], code: &str, map: &mut HashMap<String, String>) {
if files.is_empty() {
return;
}
let (file, swiss) = bundled_code(code);
let mut own = HashMap::new();
if let Some(bytes) = Bundled.read(&format!("assets/horizon/lang/{code}.json")) {
read_lang_file(&bytes, &mut own);
}
for (c, json) in files.iter().flat_map(|f| f.iter()) {
if *c != file {
continue;
}
let mut theirs = HashMap::new();
if swiss {
read_lang_file(json.replace('ß', "ss").as_bytes(), &mut theirs);
} else {
read_lang_file(json.as_bytes(), &mut theirs);
}
for (key, value) in theirs {
if !own.contains_key(&key) {
map.insert(key, value);
}
}
}
}
/// Horizon's own strings, compiled in so they need no prepared resources.
struct Bundled;
impl ResourceSource for Bundled {
fn read(&self, path: &str) -> Option<Vec<u8>> {
let code = path
.strip_prefix("assets/horizon/lang/")?
.strip_suffix(".json")?;
let (file, swiss) = bundled_code(code);
let path = format!("assets/horizon/lang/{file}.json");
let body = match path.as_str() {
let body = match path {
"assets/horizon/lang/en_us.json" => {
include_str!("../../horizon-client/assets/horizon/lang/en_us.json")
}
@@ -162,10 +103,10 @@ impl ResourceSource for Bundled {
"assets/horizon/lang/tr_tr.json" => {
include_str!("../../horizon-client/assets/horizon/lang/tr_tr.json")
}
"assets/horizon/lang/ko_kr.json" => {
"assets/horizon/lang/ko_kr.json" | "assets/horizon/lang/ko.json" => {
include_str!("../../horizon-client/assets/horizon/lang/ko_kr.json")
}
"assets/horizon/lang/hr_hr.json" => {
"assets/horizon/lang/hr_hr.json" | "assets/horizon/lang/hr.json" => {
include_str!("../../horizon-client/assets/horizon/lang/hr_hr.json")
}
"assets/horizon/lang/pt_pt.json" => {
@@ -390,20 +331,30 @@ impl ResourceSource for Bundled {
"assets/horizon/lang/vec_it.json" => {
include_str!("../../horizon-client/assets/horizon/lang/vec_it.json")
}
"assets/horizon/lang/de_de.json" => {
"assets/horizon/lang/de_de.json" | "assets/horizon/lang/de_at.json" => {
include_str!("../../horizon-client/assets/horizon/lang/de_de.json")
}
"assets/horizon/lang/fr_fr.json" => {
// Swiss German writes "ss" for "ß", as vanilla's de_ch does.
"assets/horizon/lang/de_ch.json" => {
let de = include_str!("../../horizon-client/assets/horizon/lang/de_de.json");
return Some(de.replace('ß', "ss").into_bytes());
}
"assets/horizon/lang/fr_fr.json"
| "assets/horizon/lang/fr_ca.json"
| "assets/horizon/lang/fr_ch.json" => {
include_str!("../../horizon-client/assets/horizon/lang/fr_fr.json")
}
"assets/horizon/lang/es_es.json" => {
"assets/horizon/lang/es_es.json"
| "assets/horizon/lang/es_ar.json"
| "assets/horizon/lang/es_cl.json"
| "assets/horizon/lang/es_ec.json"
| "assets/horizon/lang/es_mx.json"
| "assets/horizon/lang/es_uy.json"
| "assets/horizon/lang/es_ve.json" => {
include_str!("../../horizon-client/assets/horizon/lang/es_es.json")
}
_ => return None,
};
if swiss {
return Some(body.replace('ß', "ss").into_bytes());
}
Some(body.as_bytes().to_vec())
}
fn namespaces(&self) -> Vec<String> {
@@ -487,16 +438,6 @@ impl Language {
/// from every namespace and every source in priority order (later sources
/// override).
pub fn load(sources: &[&dyn ResourceSource], code: &str) -> Self {
let crate_files = CRATE_FILES.get().copied().unwrap_or_default();
Self::load_with(sources, code, crate_files)
}
/// [`Language::load`] with these crates' lang files.
fn load_with(
sources: &[&dyn ResourceSource],
code: &str,
crate_files: &[&[(&str, &str)]],
) -> Self {
let mut map = HashMap::new();
let mut codes = vec![DEFAULT];
if code != DEFAULT {
@@ -512,14 +453,12 @@ impl Language {
sources.iter().flat_map(|s| s.namespaces()).collect();
for c in codes {
for namespace in &namespaces {
for (i, source) in sources.iter().enumerate() {
if let Some(bytes) = source.read(&format!("assets/{namespace}/lang/{c}.json")) {
read_lang_file(&bytes, &mut map);
}
// The crates' text right after the engine's own (`Bundled`, the first source).
if i == 0 && namespace == "horizon" {
read_crate_files(crate_files, c, &mut map);
}
for source in sources {
let Some(bytes) = source.read(&format!("assets/{namespace}/lang/{c}.json"))
else {
continue;
};
read_lang_file(&bytes, &mut map);
}
}
}
@@ -749,43 +688,6 @@ mod tests {
);
}
#[test]
fn a_crates_text_loads_after_the_engines_and_before_packs() {
static CRATE: &[(&str, &str)] = &[
(
"en_us",
r#"{"test.crate.hello": "Hello", "horizon.osk.close": "Shut", "test.crate.packed": "Crate"}"#,
),
(
"de_de",
r#"{"test.crate.hello": "Grüß dich", "horizon.osk.close": "Zu"}"#,
),
("fr_fr", r#"{"test.crate.hello": "Bonjour"}"#),
];
let pack = Mem(HashMap::from([(
"assets/horizon/lang/en_us.json".to_owned(),
br#"{"test.crate.packed": "Pack"}"#.to_vec(),
)]));
let load = |code| Language::load_with(&[&pack], code, &[CRATE]);
let en = load("en_us");
assert_eq!(en.get("test.crate.hello"), Some("Hello"));
// The engine's own file wins on a key both have; a pack wins over both.
assert_eq!(en.get("horizon.osk.close"), Some("Close"));
assert_eq!(en.get("test.crate.packed"), Some("Pack"));
let de = load("de_de");
assert_eq!(de.get("test.crate.hello"), Some("Grüß dich"));
assert_eq!(de.get("horizon.osk.close"), Some("Schließen"));
// Regional variants read their language's file, as the engine's do.
assert_eq!(load("de_ch").get("test.crate.hello"), Some("Grüss dich"));
assert_eq!(load("fr_ca").get("test.crate.hello"), Some("Bonjour"));
// A language the crate lacks falls back to its English.
assert_eq!(load("pl_pl").get("test.crate.hello"), Some("Hello"));
// Without crate files, nothing changes.
let plain = Language::load_with(&[&pack], "de_de", &[]);
assert_eq!(plain.get("test.crate.hello"), None);
assert_eq!(plain.len() + 1, de.len());
}
#[test]
fn a_scoped_language_is_the_calling_threads_and_reports_what_it_lacks() {
let empty = Mem(HashMap::new());
@@ -837,20 +739,6 @@ mod tests {
std::path::Path::new(env!("CARGO_MANIFEST_DIR"))
.join("../horizon-client/assets/horizon/lang")
}
/// The crates whose own lang files the game loads (`crates/<name>/assets/lang`,
/// registered through `horizon_hooks::lang`), with that folder.
fn crate_lang_dirs() -> Vec<(String, std::path::PathBuf)> {
let crates = std::path::Path::new(env!("CARGO_MANIFEST_DIR")).join("..");
let mut dirs: Vec<_> = std::fs::read_dir(&crates)
.unwrap()
.flatten()
.map(|e| (e.file_name().into_string().unwrap(), e.path()))
.map(|(name, path)| (name, path.join("assets/lang")))
.filter(|(_, dir)| dir.join("en_us.json").is_file())
.collect();
dirs.sort();
dirs
}
/// The keys of a flat bundled file in file order, duplicates included (a map
/// would keep only the last of two equal keys). One `"key": "value"` per line.
fn file_keys(body: &str) -> Vec<String> {
@@ -888,33 +776,11 @@ mod tests {
#[test]
fn bundled_files_are_served_and_have_no_stale_or_repeated_keys() {
let engine = check_lang_dir(&bundled_dir(), true);
assert!(
engine.1 >= 7,
"found {} bundled lang files in {}",
engine.1,
bundled_dir().display()
);
// A crate's files pass the same checks. Its keys are its own: on a key the engine's
// files also have, the engine's text would win and hide the crate's.
for (name, dir) in crate_lang_dirs() {
let (en, _) = check_lang_dir(&dir, false);
for key in en.keys() {
assert!(
!engine.0.contains_key(key),
"{name}: {key} is also the engine's"
);
}
}
}
/// The checks every lang folder passes: flat maps, no repeated key, no key en_us lacks, the
/// same placeholders as English, no empty text. Its en_us and how many files it has.
fn check_lang_dir(dir: &std::path::Path, bundled: bool) -> (HashMap<String, String>, usize) {
let dir = bundled_dir();
let en_body = std::fs::read_to_string(dir.join("en_us.json")).unwrap();
let en: HashMap<String, String> = serde_json::from_str(&en_body).unwrap();
let mut seen = 0;
for entry in std::fs::read_dir(dir).unwrap().flatten() {
for entry in std::fs::read_dir(&dir).unwrap().flatten() {
let name = entry.file_name().into_string().unwrap();
let Some(code) = name.strip_suffix(".json") else {
continue;
@@ -923,7 +789,7 @@ mod tests {
// A file that Bundled::read does not name is never loaded.
let path = format!("assets/horizon/lang/{name}");
assert!(
!bundled || Bundled.read(&path).is_some(),
Bundled.read(&path).is_some(),
"{name} is not served by Bundled"
);
let body = std::fs::read_to_string(entry.path()).unwrap();
@@ -949,7 +815,11 @@ mod tests {
assert!(!value.trim().is_empty(), "{code}: {key} is empty");
}
}
(en, seen)
assert!(
seen >= 7,
"found {seen} bundled lang files in {}",
dir.display()
);
}
#[test]
@@ -964,10 +834,10 @@ mod tests {
}
}
}
let english = |dir: &std::path::Path| -> HashMap<String, String> {
serde_json::from_str(&std::fs::read_to_string(dir.join("en_us.json")).unwrap()).unwrap()
};
let mut en = english(&bundled_dir());
let en: HashMap<String, String> = serde_json::from_str(
&std::fs::read_to_string(bundled_dir().join("en_us.json")).unwrap(),
)
.unwrap();
let crates = std::path::Path::new(env!("CARGO_MANIFEST_DIR")).join("..");
let mut files = Vec::new();
for krate in [
@@ -977,11 +847,6 @@ mod tests {
] {
rust_files(&crates.join(krate).join("src"), &mut files);
}
// A crate that ships lang files names its keys in its own sources.
for (name, dir) in crate_lang_dirs() {
en.extend(english(&dir));
rust_files(&crates.join(name).join("src"), &mut files);
}
assert!(files.len() > 100, "found only {} sources", files.len());
let mut found = 0;
for file in files {
@@ -1441,6 +1441,16 @@ pub enum Rumble {
},
Totem,
}
impl From<crate::input_source::Feedback> for Rumble {
fn from(event: crate::input_source::Feedback) -> Self {
use crate::input_source::Feedback;
match event {
Feedback::BlockBroken => Rumble::BlockBroken,
Feedback::Explosion { distance, radius } => Rumble::Explosion { distance, radius },
Feedback::Totem => Rumble::Totem,
}
}
}
/// A vibration: the heavy (low-frequency) and light motors, 0..1, and how
/// long it lasts.
#[derive(Clone, Copy, Debug, PartialEq)]
@@ -0,0 +1,15 @@
//! The engine's side of the input source (docs/layers.md, "Controllers, splitscreen, replays and
//! UI pages"): what gameplay tells a device beyond the keyboard and mouse. Gameplay names these
//! types, never a controller's; the controller code answers.
/// Something that happened to the player that a device may let them feel (a controller's
/// vibration). The device decides how, or whether.
#[derive(Clone, Copy, Debug, PartialEq)]
pub enum Feedback {
/// The player broke a block.
BlockBroken,
/// An explosion this far away (blocks) with this power.
Explosion { distance: f64, radius: f32 },
/// A totem of undying saved the player.
Totem,
}
+1
View File
@@ -9,6 +9,7 @@ pub mod gamepad;
pub mod gameplay_guide;
pub mod held;
pub mod input;
pub mod input_source;
pub mod interaction_input;
pub mod key_names;
pub mod keybinds;
@@ -0,0 +1,158 @@
//! Audio occlusion, attenuation and mixing benchmark.
//! Run with: `cargo run --profile fast -p horizon-client-render --example audio_bench`
use horizon_client_render::{
audio::Audio,
sound_engine::{MobSound, SoundInstance, Sounds, TickContext},
};
use std::{path::Path, time::Instant};
fn main() {
println!("=== Horizon Audio Attenuation & Mixing Benchmark ===");
let mut audio = Audio::silent(Path::new("/nonexistent"));
audio.engine.loaded = true;
audio.backend_live_for_bench();
audio.record_heard = false;
// Register a sound event with attenuation distance 16
audio.engine.registry.add_file(
"minecraft",
br#"{"bench.loop":{"attenuation_distance":16,"sounds":[{"name":"bench/loop","stream":false}]}}"#,
&|_, _| true,
);
// Insert 1 second of audio into cache (48000 mono samples)
let samples: Vec<f32> = (0..48_000)
.map(|i| ((i as f32) * 440.0 * 2.0 * std::f32::consts::PI / 48000.0).sin() * 0.5)
.collect();
audio.insert_cached_sound("minecraft:bench/loop", samples, 48_000, 1);
// 1. Benchmark set_listener (called every client render frame)
let listener_iterations = 200_000;
let start = Instant::now();
for i in 0..listener_iterations {
let angle = (i as f32) * 0.01;
audio.set_listener(
[
100.0 + (angle.cos() as f64) * 5.0,
64.0,
200.0 + (angle.sin() as f64) * 5.0,
],
angle,
0.0,
);
}
let listener_elapsed = start.elapsed();
println!(
"1. set_listener moving (render frame): {:?} for {} calls ({:.2} ns/call)",
listener_elapsed,
listener_iterations,
(listener_elapsed.as_nanos() as f64) / (listener_iterations as f64)
);
// 1b. Benchmark set_listener stationary (lock elimination early-out)
let stationary_iterations = 200_000;
let start = Instant::now();
for _ in 0..stationary_iterations {
audio.set_listener([100.0, 64.0, 200.0], 0.0, 0.0);
}
let stationary_elapsed = start.elapsed();
println!(
"1b. set_listener stationary (lock early-out): {:?} for {} calls ({:.2} ns/call)",
stationary_elapsed,
stationary_iterations,
(stationary_elapsed.as_nanos() as f64) / (stationary_iterations as f64)
);
// 2. Play 128 sounds in the world at various distances from listener at [100.0, 64.0, 200.0]
// 64 sounds within attenuation distance (<16 blocks)
// 64 sounds outside attenuation distance (>16 blocks)
for i in 0..128 {
let dist = if i < 64 {
(i as f64) * 0.24 // 0 to 15.1 blocks (audible)
} else {
17.0 + ((i - 64) as f64) * 1.5 // 17 to 111.5 blocks (out of attenuation range)
};
let pos = [100.0 + dist, 64.0, 200.0];
let instance = SoundInstance::new(
"minecraft:bench.loop",
crate_sound_source(i),
1.0,
1.0,
horizon_core::random::LegacyRandom::new(i as i64),
true, // looping
0,
horizon_client_render::sound_engine::Attenuation::Linear,
pos,
false,
);
audio.play_instance(instance, false);
}
// 3. Benchmark mix_buffer (5000 buffers of 1024 stereo frames @ 48kHz = ~106 seconds of audio mixing)
let mut buffer = vec![0.0f32; 1024 * 2];
let mix_iterations = 5_000;
let start = Instant::now();
for _ in 0..mix_iterations {
audio.mix_buffer(&mut buffer, 2, 48_000);
}
let mix_elapsed = start.elapsed();
println!(
"2. mix_buffer (128 active channels, 1024 stereo frames): {:?} for {} buffers ({:.2} µs/buffer)",
mix_elapsed,
mix_iterations,
(mix_elapsed.as_micros() as f64) / (mix_iterations as f64)
);
// 4. Benchmark SoundEngine::tick with ticking mob sounds
let mut mobs = Vec::new();
for i in 0..64 {
mobs.push(MobSound {
id: 2000 + i,
position: [100.0 + (i as f64) * 0.5, 64.0, 200.0 + (i as f64) * 0.5],
speed: 0.25,
baby: false,
angry: i % 2 == 0,
silent: false,
attack_scale: 0.5,
sniffer_digging: false,
});
}
let tick_ctx = TickContext {
player_underwater: false,
player_removed: false,
vehicle: None,
carts: Vec::new(),
mobs: mobs.clone(),
frozen: false,
player_position: [100.0, 64.0, 200.0],
player_speed_sqr: 0.1,
player_fall_flying: false,
ridden: None,
camera_position: [100.0, 64.0, 200.0],
};
let tick_iterations = 10_000;
let start = Instant::now();
for _ in 0..tick_iterations {
audio.tick(false, &tick_ctx);
}
let tick_elapsed = start.elapsed();
println!(
"3. SoundEngine::tick (64 channels + ticking): {:?} for {} ticks ({:.2} µs/tick)",
tick_elapsed,
tick_iterations,
(tick_elapsed.as_micros() as f64) / (tick_iterations as f64)
);
}
fn crate_sound_source(i: u32) -> usize {
match i % 6 {
0 => 0, // master
1 => 1, // music
2 => 2, // records
3 => 3, // weather
4 => 4, // blocks
_ => 5, // hostile
}
}
+167 -53
View File
@@ -478,6 +478,7 @@ pub struct Audio {
pub record_heard: bool,
pub listener: [f64; 3],
pub listener_yaw: f32,
pub listener_pitch: f32,
pub master: f32,
/// Seeds of positional plays (the client level random's `nextLong`).
random: LegacyRandom,
@@ -722,6 +723,29 @@ impl Backend for MixerBackend {
fn set_unmuffled(&mut self, channel: ChannelId, unmuffled: bool) {
self.with(channel, |c| c.unmuffled = unmuffled);
}
fn update_channel(&mut self, channel: ChannelId, volume: f32, pitch: f32, position: [f64; 3]) {
if let Ok(mut m) = self.mixer.lock()
&& let Some(c) = m.channels.get_mut(&channel)
{
c.gain = volume;
c.pitch = pitch;
c.at = [position[0] as f32, position[1] as f32, position[2] as f32];
}
}
fn filter_stopped(&mut self, live: &[(u64, ChannelId)], stopped: &mut Vec<u64>) {
if let Ok(m) = self.mixer.lock() {
for &(h, c) in live {
if m.channels
.get(&c)
.is_none_or(|ch| ch.state == State::Stopped)
{
stopped.push(h);
}
}
} else {
stopped.extend(live.iter().map(|&(h, _)| h));
}
}
/// `getCompleteBuffer` (cached, else decoded on the decoder thread) or
/// `getStream` (decoded on a thread of its own), then attach and
/// `alSourcePlay`. A sound that cannot load leaves its source initial,
@@ -822,18 +846,24 @@ impl Backend for MixerBackend {
/// pinned client's) rendered through `ALC_SOFT_loopback` within 1e-5.
fn stereo_gains(right: f32, up: f32, forward: f32) -> [f32; 2] {
let length = (right * right + up * up + forward * forward).sqrt();
stereo_gains_with_length(right, up, forward, length)
}
#[inline]
fn stereo_gains_with_length(right: f32, up: f32, forward: f32, length: f32) -> [f32; 2] {
if length <= f32::EPSILON {
return stereo_gains(0.0, 0.0, 1.0);
return stereo_gains_with_length(0.0, 0.0, 1.0, 1.0);
}
let elevation = (up / length).clamp(-1.0, 1.0).asin();
let u = (up / length).clamp(-1.0, 1.0);
let cos_elev = (1.0 - u * u).max(0.0).sqrt();
let mut azimuth = right.atan2(forward);
if azimuth.abs() < std::f32::consts::FRAC_PI_2 {
azimuth = (azimuth.abs() * 1.5)
.min(std::f32::consts::FRAC_PI_2)
.copysign(azimuth);
}
let side = azimuth.sin() * elevation.cos();
let front = azimuth.cos() * elevation.cos() * 0.095_660_8;
let (sin_az, cos_az) = azimuth.sin_cos();
let side = sin_az * cos_elev;
let front = cos_az * cos_elev * 0.095_660_8;
[0.5 - 0.5 * side + front, 0.5 + 0.5 * side + front]
}
/// The gain OpenAL applies for distance (`AL_LINEAR_DISTANCE` with reference
@@ -853,16 +883,10 @@ fn mix(mixer: &mut Mixer, data: &mut [f32], channels: usize, rate: u32) {
// and OpenAL's right = forward x up.
let basis = |yaw: f32, pitch: f32| {
let (yaw, pitch) = (f64::from(yaw.to_radians()), f64::from(pitch.to_radians()));
let forward = [
-yaw.sin() * pitch.cos(),
-pitch.sin(),
yaw.cos() * pitch.cos(),
];
let up = [
-yaw.sin() * pitch.sin(),
pitch.cos(),
yaw.cos() * pitch.sin(),
];
let (yaw_sin, yaw_cos) = yaw.sin_cos();
let (pitch_sin, pitch_cos) = pitch.sin_cos();
let forward = [-yaw_sin * pitch_cos, -pitch_sin, yaw_cos * pitch_cos];
let up = [-yaw_sin * pitch_sin, pitch_cos, yaw_cos * pitch_sin];
let right = [
forward[1] * up[2] - forward[2] * up[1],
forward[2] * up[0] - forward[0] * up[2],
@@ -896,7 +920,7 @@ fn mix(mixer: &mut Mixer, data: &mut [f32], channels: usize, rate: u32) {
// Gains and pans per source for this buffer.
let mut voices = std::mem::take(&mut mixer.voices);
voices.clear();
for (id, c) in &mixer.channels {
for (id, c) in &mut mixer.channels {
let Some((_, source_rate, source_channels)) = &c.samples else {
continue;
};
@@ -907,6 +931,7 @@ fn mix(mixer: &mut Mixer, data: &mut [f32], channels: usize, rate: u32) {
if c.state != State::Playing {
continue;
}
let at = [f64::from(c.at[0]), f64::from(c.at[1]), f64::from(c.at[2])];
let away = |listener: [f64; 3]| {
[
@@ -915,45 +940,56 @@ fn mix(mixer: &mut Mixer, data: &mut [f32], channels: usize, rate: u32) {
at[2] - listener[2],
]
};
let length = |d: [f64; 3]| d[0] * d[0] + d[1] * d[1] + d[2] * d[2];
// The nearest camera hears it (one camera but in splitscreen).
let camera = mixer
.cameras
.iter()
.filter(|camera| c.relative || camera.2 == c.world)
.min_by(|a, b| length(away(a.0)).total_cmp(&length(away(b.0))))
.map(|camera| (camera.0, camera.1));
// Unheard sources still advance: returning to a world must not resume stale sounds.
let length_sq = |d: [f64; 3]| d[0] * d[0] + d[1] * d[1] + d[2] * d[2];
let camera = if !shared {
let cam = &mixer.cameras[0];
if c.relative || cam.2 == c.world {
Some((cam.0, cam.1))
} else {
None
}
} else {
mixer
.cameras
.iter()
.filter(|camera| c.relative || camera.2 == c.world)
.min_by(|a, b| length_sq(away(a.0)).total_cmp(&length_sq(away(b.0))))
.map(|camera| (camera.0, camera.1))
};
let (listener, (forward, up, right)) = camera.unwrap_or(([0.0; 3], basis(0.0, 0.0)));
let d = if c.relative { at } else { away(listener) };
let distance = (d[0] * d[0] + d[1] * d[1] + d[2] * d[2]).sqrt() as f32;
let gain = if camera.is_some() {
c.gain.clamp(0.0, 1.0)
* if direct {
1.0
} else {
distance_gain(c.linear, distance)
let d_sqr = length_sq(d);
let (gain, [left, right]) = if camera.is_none() {
(0.0, [0.0, 0.0])
} else if direct {
let gain = c.gain.clamp(0.0, 1.0);
(gain, [gain, gain])
} else {
let mut zero = false;
if let Some(max) = c.linear {
let max_d = max as f64;
if max <= 0.0 || (!c.relative && d_sqr >= max_d * max_d) {
zero = true;
}
} else {
0.0
};
let [left, right] = if direct {
[gain, gain]
} else {
// Relative sources are already in OpenAL's listener space (-Z ahead).
let [mut left, mut right] = if c.relative {
stereo_gains(d[0] as f32, d[1] as f32, -d[2] as f32)
} else {
stereo_gains(dot(d, right), dot(d, up), dot(d, forward))
};
if shared {
// Several players on the speakers: half the stereo width, as left and right are
// nobody's in particular.
let middle = (left + right) / 2.0;
left = middle + (left - middle) / 2.0;
right = middle + (right - middle) / 2.0;
}
[left * gain, right * gain]
if zero {
(0.0, [0.0, 0.0])
} else {
let distance = d_sqr.sqrt() as f32;
let gain = c.gain.clamp(0.0, 1.0) * distance_gain(c.linear, distance);
let [mut left, mut right] = if c.relative {
stereo_gains_with_length(d[0] as f32, d[1] as f32, -d[2] as f32, distance)
} else {
stereo_gains_with_length(dot(d, right), dot(d, up), dot(d, forward), distance)
};
if shared {
let middle = (left + right) * 0.5;
left = middle + (left - middle) * 0.5;
right = middle + (right - middle) * 0.5;
}
(gain, [left * gain, right * gain])
}
};
let step = f64::from(*source_rate) / f64::from(rate) * f64::from(c.pitch.max(0.0));
voices.push((*id, [left, right, gain], step));
@@ -974,6 +1010,40 @@ fn mix(mixer: &mut Mixer, data: &mut [f32], channels: usize, rate: u32) {
};
let source_channels = source_channels as usize;
let frames = samples.len() / source_channels;
let inaudible = if channels >= 2 {
left == 0.0 && right == 0.0
} else {
gain == 0.0
};
if inaudible {
let buffer_frames = data.len() / channels;
// As the loop below: a sound of one frame or none stops, looping or not.
if !c.looping || frames <= 1 {
// `frames` may be 0: no `frames - 1` in usize. A step of 0 never
// reaches the end, as in the loop below.
let needed = frames as f64 - 1.0 - c.position;
if needed <= 0.0 {
c.state = State::Stopped;
} else if step > 0.0 {
let steps_to_stop = needed / step;
if (buffer_frames as f64) >= steps_to_stop {
c.state = State::Stopped;
} else {
c.position += step * (buffer_frames as f64);
}
}
} else {
for _ in 0..buffer_frames {
let i = c.position as usize;
if i + 1 >= frames {
c.position = 0.0;
}
c.position += step;
}
}
continue;
}
let out: &mut [f32] = if muffling && !c.unmuffled {
&mut bus
} else {
@@ -992,8 +1062,8 @@ fn mix(mixer: &mut Mixer, data: &mut [f32], channels: usize, rate: u32) {
}
let t = (c.position - i as f64) as f32;
if source_channels > 1 {
let l = samples[i * 2] * (1.0 - t) + samples[(i + 1) * 2] * t;
let r = samples[i * 2 + 1] * (1.0 - t) + samples[(i + 1) * 2 + 1] * t;
let l = samples[i * 2] + (samples[(i + 1) * 2] - samples[i * 2]) * t;
let r = samples[i * 2 + 1] + (samples[(i + 1) * 2 + 1] - samples[i * 2 + 1]) * t;
if channels >= 2 {
frame[0] += l * left;
frame[1] += r * right;
@@ -1001,7 +1071,7 @@ fn mix(mixer: &mut Mixer, data: &mut [f32], channels: usize, rate: u32) {
frame[0] += (l + r) * 0.5 * gain;
}
} else {
let s = samples[i] * (1.0 - t) + samples[i + 1] * t;
let s = samples[i] + (samples[i + 1] - samples[i]) * t;
if channels >= 2 {
frame[0] += s * left;
frame[1] += s * right;
@@ -1412,6 +1482,7 @@ impl Audio {
record_heard: false,
listener: [0.0; 3],
listener_yaw: 0.0,
listener_pitch: 0.0,
master: 1.0,
random: crate::random_source::create(),
source_override: None,
@@ -1535,8 +1606,12 @@ impl Audio {
/// `SoundManager.updateSource`: the camera position and rotation
/// (`Listener.setTransform` takes its forward and up vectors).
pub fn set_listener(&mut self, position: [f64; 3], yaw: f32, pitch: f32) {
if self.listener == position && self.listener_yaw == yaw && self.listener_pitch == pitch {
return;
}
self.listener = position;
self.listener_yaw = yaw;
self.listener_pitch = pitch;
if let Ok(mut m) = self.backend.mixer.lock() {
if self.backend.owner == 0 {
m.listener = position;
@@ -1576,6 +1651,7 @@ impl Audio {
record_heard: false,
listener: [0.0; 3],
listener_yaw: 0.0,
listener_pitch: 0.0,
master: self.master,
random: crate::random_source::create(),
source_override: None,
@@ -2109,6 +2185,25 @@ impl Audio {
})
.collect()
}
/// Mixes one buffer of audio into `data` (channels: 1 or 2, rate in Hz).
pub fn mix_buffer(&mut self, data: &mut [f32], channels: usize, rate: u32) {
if let Ok(mut m) = self.backend.mixer.lock() {
mix(&mut m, data, channels, rate);
}
}
#[doc(hidden)]
pub fn insert_cached_sound(&mut self, key: &str, samples: Vec<f32>, rate: u32, channels: u16) {
if let Ok(mut c) = self.backend.cache.lock() {
c.insert(
key.to_owned(),
Some((std::sync::Arc::new(samples), rate, channels)),
);
}
}
#[doc(hidden)]
pub fn backend_live_for_bench(&mut self) {
self.backend.live = true;
}
}
impl Sounds for Audio {
fn engine(&mut self) -> &mut SoundEngine {
@@ -2613,6 +2708,25 @@ mod tests {
assert_eq!(data, [0.0; 4], "returning must not resume the old one-shot");
}
/// A sound of one frame or none, heard or not, looping or not, stops at its first
/// buffer as the mixing loop stops it: none stays playing (and holds its channel).
#[test]
fn sounds_too_short_to_mix_stop_even_unheard() {
for (samples, looping) in [(vec![], false), (vec![1.0], false), (vec![1.0], true)] {
let mut mixer = Mixer::default();
let mut source = channel(samples.clone(), None, [0.0; 3], looping);
source.gain = 0.0;
mixer.channels.insert(1, source);
let mut data = [0.0; 4];
mix(&mut mixer, &mut data, 2, 48_000);
assert_eq!(
mixer.channels[&1].state,
State::Stopped,
"{samples:?} {looping}"
);
}
}
#[test]
fn variants_of_one_sound_are_the_same_sound() {
assert_eq!(
@@ -569,6 +569,25 @@ pub(crate) fn polytone_noise() -> &'static horizon_core::noise::SimplexNoise {
}
impl horizon_polytone::expr::Host for BlockHost<'_> {
fn field(
&mut self,
root: horizon_polytone::expr::Root,
field: horizon_polytone::expr::Field,
) -> Option<horizon_polytone::expr::Value> {
use horizon_polytone::expr::Field as F;
if root != horizon_polytone::expr::Root::Object {
return None;
}
Some(horizon_polytone::expr::Value::Num(match field {
F::X => f64::from(self.at[0]),
F::Y => f64::from(self.at[1]),
F::Z => f64::from(self.at[2]),
F::Temperature => f64::from(self.biome.temperature),
F::Downfall => f64::from(self.biome.downfall),
_ => return None,
}))
}
fn root(&mut self, root: horizon_polytone::expr::Root) -> horizon_polytone::expr::Value {
use horizon_polytone::expr::Root;
horizon_polytone::expr::Value::Object(match root {
@@ -112,11 +112,7 @@ fn add_sections(groups: &mut Vec<Group<ExtraRow>>) {
};
Row::new(id, lang::get(label), value)
}
added::Row::Button {
label,
active: true,
..
} => Row::new(id, lang::get(label), Value::Press),
added::Row::Button { label } => Row::new(id, lang::get(label), Value::Press),
added::Row::Key { label, key } => {
let key = crate::keybinds::display_name(&key).plain();
Row::new(id, lang::get(label), Value::Read(key))
@@ -494,7 +490,9 @@ mod tests {
added::Place::HorizonSettings
}
fn rows(&self, rows: &mut Vec<added::Row>) {
rows.push(added::Row::button("test.elsewhere.button"));
rows.push(added::Row::Button {
label: "test.elsewhere.button",
});
}
fn act(&self, _: usize, _: Act) {}
}
@@ -162,38 +162,10 @@ impl OptionsUi {
};
let mut rows = Vec::new();
registered.rows(&mut rows);
let mut out = Vec::new();
// The row a half-width button started, waiting for the next to sit beside it.
let mut half_open = false;
for (r, row) in rows.into_iter().enumerate() {
match row {
// Wrapped as the engine's own notes; space is for pages drawn as a screen.
added::Row::Text { text, .. } => {
out.extend(wrap(&text, 64).into_iter().map(Row::Note))
}
added::Row::Space(_) | added::Row::Field { .. } => continue,
added::Row::Button {
label,
active,
half: true,
..
} => {
let mut half = button(0.0, 0.0, 150.0, tr(label), Act::PageRow(page, r));
if !active {
half = inactive(half);
}
match out.last_mut() {
Some(Row::Buttons(_, second @ None)) if half_open => *second = Some(half),
_ => out.push(Row::Buttons(half, None)),
}
half_open = !half_open;
continue;
}
row => out.push(self.added_row(page, r, row)),
}
half_open = false;
}
out
rows.into_iter()
.enumerate()
.map(|(r, row)| self.added_row(page, r, row))
.collect()
}
fn added_row(&self, page: usize, r: usize, row: added::Row) -> Row {
@@ -205,10 +177,7 @@ impl OptionsUi {
added::Row::Toggle { label, on } => wide(generic(label, on_off(on))),
added::Row::Cycle { label, value } => wide(generic(label, label_text(value))),
added::Row::Slider { .. } => Row::Big(Opt::Page(page, r)),
added::Row::Button { label, active, .. } => {
let wide = button(0.0, 0.0, 310.0, tr(label), act);
Row::Buttons(if active { wide } else { inactive(wide) }, None)
}
added::Row::Button { label } => wide(tr(label)),
added::Row::Key { label, key } => {
let mut message = keybinds::display_name(&key);
if self.selected_key == Some(PAGE_KEY)
@@ -492,84 +461,4 @@ mod tests {
Some(tr("test.sample.switch.tooltip").plain())
);
}
/// Text, a grey note, space, two half buttons (the second inactive) and a footer button.
struct Shaped(Mutex<Vec<usize>>);
impl added::Page for Shaped {
fn id(&self) -> &'static str {
"test.shaped"
}
fn title(&self) -> &'static str {
"test.shaped.title"
}
fn place(&self) -> added::Place {
added::Place::HorizonSettings
}
fn rows(&self, rows: &mut Vec<added::Row>) {
rows.push(added::Row::text("ABCDE-FGHIJ").groups());
rows.push(added::Row::text("grey").quiet());
rows.push(added::Row::Space(6));
rows.push(added::Row::button("test.shaped.copy").half());
rows.push(added::Row::button("test.shaped.stop").half().active(false));
rows.push(added::Row::button("test.shaped.help").footer());
}
fn act(&self, row: usize, _: added::Act) {
self.0.lock().unwrap().push(row);
}
}
static SHAPED: Shaped = Shaped(Mutex::new(Vec::new()));
static SHAPED_PAGES: [&dyn added::Page; 1] = [&SHAPED];
#[test]
fn half_buttons_share_a_row_and_an_inactive_one_is_never_pressed() {
let mut s = Settings::default();
TEST_PAGES.set(Some(&SHAPED_PAGES));
let ui = OptionsUi::default();
let rows = ui.added_rows(0);
// The two texts as notes (space shows nothing here), the halves on one row, the
// footer button below them (the settings shell has no footer of its own).
assert!(matches!(&rows[0], Row::Note(t) if t == "ABCDE-FGHIJ"));
assert!(matches!(&rows[1], Row::Note(t) if t == "grey"));
let Row::Buttons(copy, Some(stop)) = &rows[2] else {
panic!("the halves sit side by side: {:?}", rows.len());
};
assert_eq!((copy.w, stop.w), (150.0, 150.0));
assert!(matches!(&rows[3], Row::Buttons(help, None) if help.w == 310.0));
assert_eq!(rows.len(), 4);
let mut ui = ui;
ui.show(Page::Added(0));
press(&mut ui, &mut s, Act::PageRow(0, 3), false);
press(&mut ui, &mut s, Act::PageRow(0, 5), false);
let (widgets, ..) = ui.layout(&s, 480.0, 240.0);
let stop = widgets
.iter()
.find(|w| {
matches!(
&w.kind,
WKind::Button {
act: Act::PageRow(0, 4),
..
}
)
})
.expect("Stop is drawn");
let atlas = super::super::tests::atlas();
ui.click(
&mut s,
&atlas,
stop.x + 1.0,
stop.y + 1.0,
(480.0, 240.0),
[480, 240],
false,
false,
);
assert_eq!(
*SHAPED.0.lock().unwrap(),
[3, 5],
"the inactive half heard nothing"
);
}
}
@@ -801,6 +801,26 @@ impl Host for Ctx<'_, '_> {
_ => Err(format!("{name} is not available here")),
}
}
/// A particle's own fields, as `particle_method` answers them.
fn field(&mut self, root: Root, field: horizon_polytone::expr::Field) -> Option<V> {
use horizon_polytone::expr::Field as F;
let Subject::Particle(p) = &self.subject else {
return None;
};
if root != Root::Object {
return None;
}
Some(V::Num(match field {
F::Age => f64::from(p.age),
F::Life => f64::from(p.lifetime),
F::Custom => *self.custom,
F::X => p.position[0],
F::Y => p.position[1],
F::Z => p.position[2],
F::Temperature | F::Downfall => return None,
}))
}
}
fn eval(program: &Program, ctx: &mut Ctx) -> Option<f64> {
@@ -913,6 +913,20 @@ pub trait Backend {
fn unpause(&mut self, channel: ChannelId);
/// `Channel.stopped`.
fn stopped(&mut self, channel: ChannelId) -> bool;
/// Update volume, pitch, and position in a single backend call.
fn update_channel(&mut self, channel: ChannelId, volume: f32, pitch: f32, position: [f64; 3]) {
self.set_volume(channel, volume);
self.set_pitch(channel, pitch);
self.set_position(channel, position);
}
/// Filter which handles have stopped playing in a single pass.
fn filter_stopped(&mut self, live: &[(u64, ChannelId)], stopped: &mut Vec<u64>) {
for &(h, c) in live {
if self.stopped(c) {
stopped.push(h);
}
}
}
/// Whether the channel plays clearly through a mod's muffle (`Audio::muffle`): its sound
/// event is one the mod exempted. A backend without a muffle ignores it.
fn set_unmuffled(&mut self, _channel: ChannelId, _unmuffled: bool) {}
@@ -1494,13 +1508,14 @@ impl SoundEngine {
.iter()
.filter_map(|(h, handle)| handle.channel.map(|c| (*h, c))),
);
for (h, c) in live.drain(..) {
if backend.stopped(c) {
self.release_handle(h, backend);
}
let mut stopped = std::mem::take(&mut self.mapped_scratch);
stopped.clear();
backend.filter_stopped(&live, &mut stopped);
for h in stopped.drain(..) {
self.release_handle(h, backend);
}
// Released handles nobody maps any more.
let mut mapped = std::mem::take(&mut self.mapped_scratch);
let mut mapped = stopped;
mapped.clear();
mapped.extend(self.instance_to_channel.iter().map(|(_, h)| *h));
self.handles
@@ -1550,9 +1565,7 @@ impl SoundEngine {
h.pitch_edited = pitch_edited;
}
if let Some(c) = self.handles.get(&handle).and_then(handle_channel) {
backend.set_volume(c, volume);
backend.set_pitch(c, pitch);
backend.set_position(c, position);
backend.update_channel(c, volume, pitch, position);
}
let instance = self.instances.get_mut(&id).expect("present");
if instance.looping
+23 -1
View File
@@ -1251,6 +1251,9 @@ pub struct EditBox {
/// `getMessage`: what the narrator calls the box ("<message> edit box:
/// <value>").
pub message: String,
/// `EditBox.setInvertHighlightedTextColor`: a selection draws its text
/// inverted (the default) or in the box's own colour (`AnvilScreen`).
pub invert_highlighted_text_color: bool,
/// Where a borderless box drawn in a frame of its own focuses: a controller's outline goes
/// round the frame, not over the text.
pub frame: Option<[f32; 4]>,
@@ -1543,6 +1546,7 @@ impl EditBox {
text_color_uneditable: rgba(112, 112, 112, 255),
editable: true,
message: String::new(),
invert_highlighted_text_color: true,
frame: None,
}
}
@@ -1918,7 +1922,11 @@ impl EditBox {
let right = self.x + self.width;
let (x0, x1) = (cursor_x.min(right), (hx - 1.0).min(right));
let (a, b) = (x0.min(x1), x0.max(x1));
batch.text_highlight(atlas, (a, ty - 1.0, b - a, 11.0), true);
batch.text_highlight(
atlas,
(a, ty - 1.0, b - a, 11.0),
self.invert_highlighted_text_color,
);
}
if show_cursor {
if insert {
@@ -2628,6 +2636,20 @@ mod tests {
);
}
/// `EditBox.setInvertHighlightedTextColor`: a selection inverts its text
/// unless the box asks it not to (the anvil's rename box).
#[test]
fn a_selection_inverts_its_text_unless_the_box_says_not_to() {
let mut edit = EditBox::new(0.0, 0.0, 100.0, 20.0);
assert!(edit.invert_highlighted_text_color);
edit.invert_highlighted_text_color = false;
edit.set_value("name");
edit.set_cursor(0, false);
edit.set_cursor(4, true);
assert_eq!(edit.selected_text(), "name");
assert!(!edit.invert_highlighted_text_color);
}
/// `EditBox.setEditable(false)`: the box keeps the focus, the caret keys
/// and copy, but `charTyped`/paste/Backspace/Delete do nothing, and Cut
/// copies without taking the text out. A value and the caret still show,
+8 -1
View File
@@ -39,6 +39,8 @@ horizon-chat-filter = { path = "../horizon-chat-filter" }
horizon-shaders = { path = "../horizon-shaders" }
# Horizon's own shader packs: the format, the stages and the check (docs/shaders.md).
horizon-shader-api = { path = "../horizon-shader-api" }
# Play with Friends: invite codes and their tunnel; the `friends` feature.
horizon-friends = { path = "../horizon-friends", optional = true }
# The narrator (GameNarrator): text-to-speech of chat, system messages and screens.
horizon-narrator = { path = "../horizon-narrator" }
# Horizon mods: sandboxed WebAssembly components, off unless installed and turned on (docs/mods.md).
@@ -70,6 +72,8 @@ horizon-theme = { path = "../horizon-theme" }
# anonymous "I'm playing" ping is the Horizon layer's (`horizon-heartbeat`, in the official executable).
horizon-telemetry = { path = "../horizon-telemetry", default-features = false }
horizon-bench = { path = "../horizon-bench" }
# The machine and process probes (the dedicated server's performance report).
horizon-system = { path = "../horizon-system" }
crc32fast = "1"
zip = { version = "9.1.3", default-features = false, features = ["deflate"] }
# Controllers (evdev + libudev on Linux, IOKit on macOS, Windows.Gaming.Input); the `controllers` feature.
@@ -121,10 +125,13 @@ controllers = ["horizon-client-lib/controllers", "dep:gilrs", "dep:horizon-duals
# tracing on request (`HORIZON_RAY_TRACING=1`). Players always get them; there is no switch. `grep -rn horizon-extras crates/` lists
# every place it gates. Without it (`--no-default-features --features audio,controllers`) the
# client is best effort: CI builds only the default.
horizon-extras = ["horizon-client-lib/horizon-extras", "horizon-client-render/horizon-extras", "discord"]
horizon-extras = ["horizon-client-lib/horizon-extras", "horizon-client-render/horizon-extras", "discord", "friends"]
# Online extras a server or a port can leave out; the server build has none of them. "Playing Horizon"
# on Discord (game/discord.rs).
discord = ["horizon-client-lib/discord"]
# Play with Friends: sharing a world behind an invite code (game/friends.rs). Joining one is
# horizon-friends' `game` side, which horizon-official registers (`horizon_hooks::tunnel`).
friends = ["dep:horizon-friends"]
# Records the call sites of mob random draws (`mob_ai_probe` traces).
rng-trace = ["horizon-core/rng-trace", "horizon-client-lib/rng-trace"]
# Rust's allocations go to the system heap instead of mimalloc, where heap profilers that replace
@@ -462,6 +462,23 @@
"horizon.splitscreen.profiles.offline_note": "Vanlyn profiele behoort aan hierdie geval",
"horizon.splitscreen.profiles.move": "Beweeg waar jy speel",
"horizon.splitscreen.profiles.move_place": "Beweeg waar jy speel: %s",
"horizon.friends.title": "Speel met vriende",
"horizon.friends.hint": "Vriende plak die kode na die titelskerm se Vriende-knoppie, in Direkte verbinding, of op die lanseerder se Speel-bladsy.",
"horizon.friends.copied": "Gekopieer",
"horizon.friends.copy_code": "Kopieer kode",
"horizon.friends.stop_sharing": "Hou op deel",
"horizon.friends.none_yet": "Nog geen vriende hier nie.",
"horizon.friends.here_now": "Hier nou: %s",
"horizon.friends.share_intro": "Deel hierdie wêreld agter 'n uitnodigingskode: dit maak oop na LAN, en vriende op die internet sluit aan met die kode. Geen bediener van ons is betrokke nie.",
"horizon.friends.start_sharing": "Begin deel",
"horizon.friends.troubleshooting": "Foutsporing …",
"horizon.friends.stopped": "Het opgehou om die uitnodigingkode te deel.",
"horizon.friends.short_code_changed": "Iemand het aanhou om 'n verkeerde kort kode te probeer, so dit het verander.",
"horizon.friends.wrong_code": "Iemand het 'n verkeerde kode probeer.",
"horizon.friends.relay_stopped": "Te veel verkeerde kort kodes, so die aflos is af totdat jy weer deel. Vriende kan steeds met die volle kode aansluit.",
"horizon.friends.code_ready": "Jou uitnodigingskode is gereed: Speletjie-kieslys, Speel met vriende. Kopieer dit en stuur dit aan jou vriende.",
"horizon.friends.share_failed": "Kon nie die wêreld deel nie: %s",
"horizon.friends.finding_route": "Vind tans hoe vriende jou kan bereik …",
"horizon.osk.shift": "Verskuiwing",
"horizon.osk.space": "Ruimte",
"horizon.osk.delete": "Vee uit",
@@ -462,6 +462,23 @@
"horizon.splitscreen.profiles.offline_note": "تنتمي الملفات الشخصية غير المتصلة بالإنترنت إلى هذه الحالة",
"horizon.splitscreen.profiles.move": "تحرك حيث تلعب",
"horizon.splitscreen.profiles.move_place": "تحرك حيث تلعب: %s",
"horizon.friends.title": "العب مع الأصدقاء",
"horizon.friends.hint": "يقوم الأصدقاء بلصق الرمز بعد زر الأصدقاء على شاشة العنوان، أو في الاتصال المباشر، أو على صفحة التشغيل الخاصة بالمشغل.",
"horizon.friends.copied": "منقول",
"horizon.friends.copy_code": "نسخ الرمز",
"horizon.friends.stop_sharing": "توقف عن المشاركة",
"horizon.friends.none_yet": "لا يوجد أصدقاء هنا بعد.",
"horizon.friends.here_now": "هنا الآن: %s",
"horizon.friends.share_intro": "شارك هذا العالم خلف رمز الدعوة: فهو يفتح على شبكة LAN، وينضم الأصدقاء على الإنترنت باستخدام الرمز. لا يوجد خادم خاص بنا متورط.",
"horizon.friends.start_sharing": "ابدأ المشاركة",
"horizon.friends.troubleshooting": "استكشاف الأخطاء وإصلاحها...",
"horizon.friends.stopped": "تم إيقاف مشاركة رمز الدعوة.",
"horizon.friends.short_code_changed": "استمر شخص ما في تجربة رمز قصير خاطئ، لذلك تغير.",
"horizon.friends.wrong_code": "حاول شخص ما رمزا خاطئا.",
"horizon.friends.relay_stopped": "رموز قصيرة خاطئة كثيرة، لذا أُوقف التتابع حتى تشارك مجددًا. يمكن للأصدقاء الانضمام بالرمز الكامل.",
"horizon.friends.code_ready": "رمز الدعوة الخاص بك جاهز: قائمة الألعاب، العب مع الأصدقاء. انسخها وأرسلها إلى أصدقائك.",
"horizon.friends.share_failed": "لا يمكن مشاركة العالم: %s",
"horizon.friends.finding_route": "التعرف على كيفية وصول الأصدقاء إليك...",
"horizon.osk.shift": "التحول",
"horizon.osk.space": "الفضاء",
"horizon.osk.delete": "حذف",
@@ -462,6 +462,23 @@
"horizon.splitscreen.profiles.offline_note": "Oflayn profillər bu instansiyaya aiddir",
"horizon.splitscreen.profiles.move": "Oynadığınız yerdə hərəkət edin",
"horizon.splitscreen.profiles.move_place": "Oynadığınız yerə köçürün: %s",
"horizon.friends.title": "Dostlarla oynayın",
"horizon.friends.hint": "Dostlar kodu başlıq ekranının Dostlar düyməsindən sonra, Birbaşa Bağlantıda və ya başlatma qurğusunun Play səhifəsində yerləşdirin.",
"horizon.friends.copied": "Kopyalandı",
"horizon.friends.copy_code": "Kodu kopyalayın",
"horizon.friends.stop_sharing": "Paylaşmağı dayandırın",
"horizon.friends.none_yet": "Burada hələ dost yoxdur.",
"horizon.friends.here_now": "İndi burada: %s",
"horizon.friends.share_intro": "Bu dünyanı dəvət kodunun arxasında paylaşın: o, LAN-a açılır və internetdəki dostlar kodla qoşulur. Heç bir serverimiz iştirak etmir.",
"horizon.friends.start_sharing": "Paylaşmağa başlayın",
"horizon.friends.troubleshooting": "Problem həll olunur...",
"horizon.friends.stopped": "Dəvət kodunu paylaşmağı dayandırdı.",
"horizon.friends.short_code_changed": "Kimsə səhv qısa kodu sınamağa davam etdi, ona görə də dəyişdi.",
"horizon.friends.wrong_code": "Kimsə səhv kodu sınadı.",
"horizon.friends.relay_stopped": "Çox sayda yanlış qısa kod daxil edildi, ona görə yenidən paylaşana qədər rele söndürülüb. Dostlar hələ də tam kodla qoşula bilər.",
"horizon.friends.code_ready": "Dəvət kodunuz hazırdır: Oyun Menyu, Dostlarla Oyna. Kopyalayın və dostlarınıza göndərin.",
"horizon.friends.share_failed": "Dünyanı paylaşmaq mümkün olmadı: %s",
"horizon.friends.finding_route": "Dostların sizinlə necə əlaqə saxlaya biləcəyi tapılır...",
"horizon.osk.shift": "Shift",
"horizon.osk.space": "Kosmos",
"horizon.osk.delete": "Sil",
@@ -462,6 +462,23 @@
"horizon.splitscreen.profiles.offline_note": "Офлайн профилдәр был данаға ҡарай",
"horizon.splitscreen.profiles.move": "Уйнаған ергә күсерегеҙ .",
"horizon.splitscreen.profiles.move_place": "Уйнаған урынға күсегеҙ: %s .",
"horizon.friends.title": "Дуҫтар менән уйнау .",
"horizon.friends.hint": "Дуҫтар кодты титул экранының «Дуҫтар» төймәһенән һуң, туранан-тура бәйләнештә йәки стартердың «Уйнау» битендә йәбештерә.",
"horizon.friends.copied": "Күсерелгән",
"horizon.friends.copy_code": "Код күсермәһе",
"horizon.friends.stop_sharing": "Бүлешеүҙе туҡтатығыҙ",
"horizon.friends.none_yet": "Бында әлегә дуҫтар юҡ.",
"horizon.friends.here_now": "Бында хәҙер: %s",
"horizon.friends.share_intro": "Был донъя менән бүлешергә артында саҡырыу коды: ул LAN асыла, һәм дуҫтар интернетта код менән ҡушыла. Беҙҙең бер сервер ҙа ҡатнашмай.",
"horizon.friends.start_sharing": "Бүлешергә башлағыҙ",
"horizon.friends.troubleshooting": "Неисправность...",
"horizon.friends.stopped": "Саҡырыу коды менән бүлешеүҙе туҡтатты.",
"horizon.friends.short_code_changed": "Кемдер дөрөҫ булмаған ҡыҫҡа кодты һынап ҡараны, шуға күрә ул үҙгәрҙе.",
"horizon.friends.wrong_code": "Кемдер дөрөҫ булмаған кодты ҡулланып ҡараған.",
"horizon.friends.relay_stopped": "Дөрөҫ булмаған ҡыҫҡа кодтар бик күп булды, шуға күрә ҡабат бүлешкәнгә тиклем реле һүндерелгән. Дуҫтар тулы код менән килеүен дауам итә ала.",
"horizon.friends.code_ready": "Һеҙҙең саҡырыу коды әҙер: Уйын Менюһы, Дуҫтар менән уйнау. Күсереп яҙып, дуҫтарығыҙға ебәрегеҙ.",
"horizon.friends.share_failed": "Донъяны бүлешә алманым: %s",
"horizon.friends.finding_route": "Һеҙгә дуҫтар нисек барып етә алыуын табыу...",
"horizon.osk.shift": "Смена",
"horizon.osk.space": "Йыһан",
"horizon.osk.delete": "Юйырға",
@@ -462,6 +462,23 @@
"horizon.splitscreen.profiles.offline_note": "Афлайн-профілі належаць да гэтага асобніка",
"horizon.splitscreen.profiles.move": "Рухайцеся туды, дзе гуляеце",
"horizon.splitscreen.profiles.move_place": "Рухайцеся туды, дзе вы гуляеце: %s",
"horizon.friends.title": "Гуляць з сябрамі",
"horizon.friends.hint": "Сябры ўстаўце код пасля кнопкі \"Сябры\" на тытульным экране ў раздзеле \"Прамое злучэнне\" або на старонцы \"Прайграванне\" праграмы запуску.",
"horizon.friends.copied": "Скапіравана",
"horizon.friends.copy_code": "Скапіруйце код",
"horizon.friends.stop_sharing": "Спыніць абагульванне",
"horizon.friends.none_yet": "Тут пакуль няма сяброў.",
"horizon.friends.here_now": "Вось зараз: %s",
"horizon.friends.share_intro": "Падзяліцеся гэтым светам за кодам запрашэння: ён адкрываецца ў лакальнай сеткі, і сябры ў Інтэрнэце далучаюцца з кодам. Наш сервер не задзейнічаны.",
"horizon.friends.start_sharing": "Пачніце абагульваць",
"horizon.friends.troubleshooting": "Ліквідацыя непаладак...",
"horizon.friends.stopped": "Абагульванне кода запрашэння спынена.",
"horizon.friends.short_code_changed": "Хтосьці спрабаваў увесці няправільны кароткі код, таму ён змяніўся.",
"horizon.friends.wrong_code": "Хтосьці паспрабаваў увесці няправільны код.",
"horizon.friends.relay_stopped": "Занадта шмат няправільных кароткіх кодаў, таму рэле выключана, пакуль вы не падзеліцеся зноў. Сябры ўсё яшчэ могуць далучыцца з поўным кодам.",
"horizon.friends.code_ready": "Ваш код запрашэння гатовы: меню гульні, гульня з сябрамі. Скапіруйце яго і адпраўце сваім сябрам.",
"horizon.friends.share_failed": "Не атрымалася падзяліцца светам: %s",
"horizon.friends.finding_route": "Пошук, як сябры могуць звязацца з вамі...",
"horizon.osk.shift": "зрух",
"horizon.osk.space": "космас",
"horizon.osk.delete": "Выдаліць",
@@ -462,6 +462,23 @@
"horizon.splitscreen.profiles.offline_note": "Офлайн профилите принадлежат към този екземпляр",
"horizon.splitscreen.profiles.move": "Движете се там, където играете",
"horizon.splitscreen.profiles.move_place": "Преместете се там, където играете: %s",
"horizon.friends.title": "Играйте с приятели",
"horizon.friends.hint": "Приятели поставете кода след бутона Приятели на заглавния екран, в Direct Connection или на страницата за възпроизвеждане на стартовия панел.",
"horizon.friends.copied": "Копирано",
"horizon.friends.copy_code": "Копиране на код",
"horizon.friends.stop_sharing": "Спиране на споделянето",
"horizon.friends.none_yet": "Тук все още няма приятели.",
"horizon.friends.here_now": "Тук сега: %s",
"horizon.friends.share_intro": "Споделете този свят зад код за покана: той се отваря към LAN и приятели в интернет се присъединяват с кода. Не е включен наш сървър.",
"horizon.friends.start_sharing": "Започнете споделяне",
"horizon.friends.troubleshooting": "Отстраняване на неизправности...",
"horizon.friends.stopped": "Спря споделянето на кода за покана.",
"horizon.friends.short_code_changed": "Някой продължаваше да опитва грешен кратък код, така че той се промени.",
"horizon.friends.wrong_code": "Някой е опитал грешен код.",
"horizon.friends.relay_stopped": "Твърде много грешни кратки кодове, затова релето е изключено, докато не споделите отново. Приятелите все още могат да се присъединят с пълния код.",
"horizon.friends.code_ready": "Вашият код за покана е готов: Меню за игри, Играйте с приятели. Копирайте го и го изпратете на приятелите си.",
"horizon.friends.share_failed": "Не можах да споделя света: %s",
"horizon.friends.finding_route": "Търся как приятелите могат да се свържат с вас...",
"horizon.osk.shift": "Shift",
"horizon.osk.space": "пространство",
"horizon.osk.delete": "Изтриване",
@@ -462,6 +462,23 @@
"horizon.splitscreen.profiles.offline_note": "Ar profiloù ezlinenn a ya d'ober an ensavadur-mañ",
"horizon.splitscreen.profiles.move": "Dilec'hiañ el lec'h ma c'hoarier",
"horizon.splitscreen.profiles.move_place": "Dilec'hiañ el lec'h ma c'hoarier : %s",
"horizon.friends.title": "C'hoari gant mignoned",
"horizon.friends.hint": "Pegañ a ra ar vignoned ar c'hod goude bouton Mignoned ar skramm titl, e Kevreadur war-eeun, pe war bajenn C'hoari al lañser.",
"horizon.friends.copied": "Eilet",
"horizon.friends.copy_code": "Eilañ ar c'hod",
"horizon.friends.stop_sharing": "Paouez da rannañ",
"horizon.friends.none_yet": "Mignon ebet amañ c'hoazh.",
"horizon.friends.here_now": "Setu bremañ : %s",
"horizon.friends.share_intro": "Rannañ ar bed-mañ a-dreñv ur c'hod pediñ : digeriñ a ra d'ar LAN, ha mignoned war internet a gemer perzh gant ar c'hod. N'eus servijer ebet ac'hanomp e-barzh.",
"horizon.friends.start_sharing": "Kregiñ da rannañ",
"horizon.friends.troubleshooting": "Diskoulmañ kudennoù...",
"horizon.friends.stopped": "Paouezet da rannañ ar c'hod pediñ.",
"horizon.friends.short_code_changed": "Unan bennak a gendalc'has da glask ur c'hod berr fazius, setu m'eo cheñchet.",
"horizon.friends.wrong_code": "Unan bennak en deus klasket ur c'hod fall.",
"horizon.friends.relay_stopped": "Re a godoù berr fazius, setu m'eo diweredekaet an treuzkas betek ma rannit en-dro. Ar vignoned a c'hall c'hoazh mont e-barzh gant ar c'hod klok.",
"horizon.friends.code_ready": "Prest eo ho kod pediñ : Menü ar c'hoari, C'hoari gant mignoned. Eilañ anezhañ ha kas anezhañ d'ho mignoned.",
"horizon.friends.share_failed": "N'hall ket rannañ ar bed : %s",
"horizon.friends.finding_route": "Kavout penaos e c'hall mignoned tizhout ac'hanoc'h...",
"horizon.osk.shift": "Dilec'hiañ",
"horizon.osk.space": "Egor",
"horizon.osk.delete": "Dilemel",
@@ -462,6 +462,23 @@
"horizon.splitscreen.profiles.offline_note": "Offline profili pripadaju ovoj instanci",
"horizon.splitscreen.profiles.move": "Krećite se tamo gdje igrate",
"horizon.splitscreen.profiles.move_place": "Premjestite se gdje igrate: %s",
"horizon.friends.title": "Igrajte se s prijateljima",
"horizon.friends.hint": "Prijatelji zalijepe kod iza dugmeta Prijatelji na naslovnom ekranu, u Direktnu vezu ili na Play stranicu pokretača.",
"horizon.friends.copied": "Kopirano",
"horizon.friends.copy_code": "Kopiraj kod",
"horizon.friends.stop_sharing": "Prekini dijeljenje",
"horizon.friends.none_yet": "Ovdje još nema prijatelja.",
"horizon.friends.here_now": "Evo sada: %s",
"horizon.friends.share_intro": "Podijelite ovaj svijet iza pozivnog koda: otvara se na LAN, a prijatelji na internetu se pridružuju kodu. Nijedan naš server nije uključen.",
"horizon.friends.start_sharing": "Počnite dijeliti",
"horizon.friends.troubleshooting": "Rješavanje problema...",
"horizon.friends.stopped": "Zaustavljeno je dijeljenje pozivnog koda.",
"horizon.friends.short_code_changed": "Neko je nastavio pokušavati s pogrešnim kratkim kodom, pa se to promijenilo.",
"horizon.friends.wrong_code": "Neko je probao pogrešan kod.",
"horizon.friends.relay_stopped": "Previše pogrešnih kratkih kodova, pa je relej isključen dok ponovo ne podijelite. Prijatelji se još mogu pridružiti s punim kodom.",
"horizon.friends.code_ready": "Vaš pozivni kod je spreman: Meni igre, Igrajte se sa prijateljima. Kopirajte ga i pošaljite svojim prijateljima.",
"horizon.friends.share_failed": "Ne mogu dijeliti svijet: %s",
"horizon.friends.finding_route": "Pronalaženje načina na koji prijatelji mogu doći do vas…",
"horizon.osk.shift": "Shift",
"horizon.osk.space": "Razmak",
"horizon.osk.delete": "Izbriši",
@@ -462,6 +462,23 @@
"horizon.splitscreen.profiles.offline_note": "Els perfils fora de línia pertanyen a aquesta instància",
"horizon.splitscreen.profiles.move": "Mou-te on jugues",
"horizon.splitscreen.profiles.move_place": "Mou on jugues: %s",
"horizon.friends.title": "Juga amb els amics",
"horizon.friends.hint": "Els amics enganxen el codi després del botó Amics de la pantalla del títol, a la connexió directa o a la pàgina de reproducció del llançador.",
"horizon.friends.copied": "Copiat",
"horizon.friends.copy_code": "Copia el codi",
"horizon.friends.stop_sharing": "Deixa de compartir",
"horizon.friends.none_yet": "Encara no hi ha amics.",
"horizon.friends.here_now": "Aquí ara: %s",
"horizon.friends.share_intro": "Comparteix aquest món darrere d'un codi d'invitació: s'obre a LAN i els amics d'Internet s'uneixen amb el codi. Cap servidor nostre està implicat.",
"horizon.friends.start_sharing": "Comenceu a compartir",
"horizon.friends.troubleshooting": "Resolució de problemes...",
"horizon.friends.stopped": "S'ha deixat de compartir el codi d'invitació.",
"horizon.friends.short_code_changed": "Algú va seguir provant un codi curt equivocat, així que va canviar.",
"horizon.friends.wrong_code": "Algú ha provat un codi incorrecte.",
"horizon.friends.relay_stopped": "Massa codis curts incorrectes, així que el relé està aturat fins que tornis a compartir. Els amics encara s'hi poden unir amb el codi complet.",
"horizon.friends.code_ready": "El teu codi d'invitació està preparat: Menú de joc, Juga amb els amics. Copia'l i envia'l als teus amics.",
"horizon.friends.share_failed": "No s'ha pogut compartir el món: %s",
"horizon.friends.finding_route": "Trobar com els amics et poden arribar...",
"horizon.osk.shift": "Canvi",
"horizon.osk.space": "Espai",
"horizon.osk.delete": "Suprimeix",
@@ -462,6 +462,23 @@
"horizon.splitscreen.profiles.offline_note": "Offline profily patří k této instanci",
"horizon.splitscreen.profiles.move": "Pohybujte se tam, kde hrajete",
"horizon.splitscreen.profiles.move_place": "Přesuňte se, kde hrajete: %s",
"horizon.friends.title": "Hrajte s přáteli",
"horizon.friends.hint": "Přátelé vloží kód za tlačítko Přátelé na titulní obrazovce, do Přímého připojení nebo na stránku Play spouštěče.",
"horizon.friends.copied": "Zkopírováno",
"horizon.friends.copy_code": "Kopírovat kód",
"horizon.friends.stop_sharing": "Přestat sdílet",
"horizon.friends.none_yet": "Zatím tu nejsou žádní přátelé.",
"horizon.friends.here_now": "Tady teď: %s",
"horizon.friends.share_intro": "Sdílejte tento svět pomocí zvacího kódu: otevře se na LAN a přátelé na internetu se připojí pomocí kódu. Není zapojen žádný náš server.",
"horizon.friends.start_sharing": "Začněte sdílet",
"horizon.friends.troubleshooting": "Odstraňování problémů...",
"horizon.friends.stopped": "Sdílení kódu pozvánky bylo zastaveno.",
"horizon.friends.short_code_changed": "Někdo neustále zkoušel špatný krátký kód, takže se to změnilo.",
"horizon.friends.wrong_code": "Někdo zkusil špatný kód.",
"horizon.friends.relay_stopped": "Příliš mnoho špatných krátkých kódů, takže relé je vypnuté, dokud nebudete sdílet znovu. Přátelé se stále mohou připojit s plným kódem.",
"horizon.friends.code_ready": "Váš zvací kód je připraven: Herní menu, Hrajte s přáteli. Zkopírujte jej a pošlete svým přátelům.",
"horizon.friends.share_failed": "Nepodařilo se sdílet svět: %s",
"horizon.friends.finding_route": "Zjištění, jak vás mohou přátelé kontaktovat…",
"horizon.osk.shift": "Shift",
"horizon.osk.space": "Prostor",
"horizon.osk.delete": "Smazat",
@@ -462,6 +462,23 @@
"horizon.splitscreen.profiles.offline_note": "Офлайн профильсем ҫак экземпляра кӗреҫҫӗ",
"horizon.splitscreen.profiles.move": "Ӑҫта вылятӑн, ҫавӑнта куҫ",
"horizon.splitscreen.profiles.move_place": "Ӑҫта вылятӑн, ҫавӑнта куҫ: %s",
"horizon.friends.title": "Юлташсемпе выля",
"horizon.friends.hint": "Туссем ҫак кода титул экранӗнчи Туссем кнопки хыҫҫӑн, Тӳрӗ ҫыхӑнура е пуҫлаканӑн Play страницинче ҫыпӑҫтараҫҫӗ.",
"horizon.friends.copied": "Копиленӗ",
"horizon.friends.copy_code": "Код копийӗ",
"horizon.friends.stop_sharing": "Пайлама пӑрахӑр",
"horizon.friends.none_yet": "Кунта туссем ҫук-ха.",
"horizon.friends.here_now": "Акӑ халӗ: %s",
"horizon.friends.share_intro": "Ҫак тӗнчене йыхрав кодӗ хыҫӗнче пайла: вӑл LAN-а уҫӑлать, интернетри туссем вара ҫав кодпа хутшӑнаҫҫӗ. Пирӗн пӗр сервер та ҫак ӗҫе хутшӑнмасть.",
"horizon.friends.start_sharing": "Пайлама пуҫлӑр",
"horizon.friends.troubleshooting": "Ҫитменлӗхсене пӗтересси...",
"horizon.friends.stopped": "Чӗнӳ кодне пайлама пӑрахрӑм.",
"horizon.friends.short_code_changed": "Такам кӗске кода йӑнӑш ҫырса пӑхрӗ, ҫавӑнпа вӑл улшӑнчӗ.",
"horizon.friends.wrong_code": "Такам йӑнӑш кодпа усӑ курса пӑхнӑ.",
"horizon.friends.relay_stopped": "Ытла нумай тӗрӗс мар кӗске код, ҫавӑнпа реле эсир тепӗр хут пайласан ҫеҫ ӗҫлӗ. Тусем тулли кодпа кӗме пултараҫҫӗ.",
"horizon.friends.code_ready": "Сирӗн чӗнӳ кодӗ хатӗр: Вӑйӑ меню, Туссемпе выля. Ӑна копилесе юлташсене ярса парӑр.",
"horizon.friends.share_failed": "Тӗнчене пайлаймарӑм: %s",
"horizon.friends.finding_route": "Юлташсем сирӗн пата мӗнле ҫитме пултарнине тупасси...",
"horizon.osk.shift": "Смена",
"horizon.osk.space": "Космос",
"horizon.osk.delete": "Пӗтер",
@@ -462,6 +462,23 @@
"horizon.splitscreen.profiles.offline_note": "Mae proffiliau all-lein yn perthyn i'r achos hwn",
"horizon.splitscreen.profiles.move": "Symudwch lle rydych chi'n chwarae",
"horizon.splitscreen.profiles.move_place": "Symudwch ble rydych chi'n chwarae: %s",
"horizon.friends.title": "Chwarae gyda Ffrindiau",
"horizon.friends.hint": "Mae ffrindiau'n gludo'r cod ar ôl botwm Friends y sgrin deitl, yn Direct Connection, neu ar dudalen Chwarae'r lansiwr.",
"horizon.friends.copied": "Wedi'i gopïo",
"horizon.friends.copy_code": "Copi Cod",
"horizon.friends.stop_sharing": "Stopio Rhannu",
"horizon.friends.none_yet": "Dim ffrindiau yma eto.",
"horizon.friends.here_now": "Yma nawr: %s",
"horizon.friends.share_intro": "Rhannwch y byd hwn y tu ôl i god gwahoddiad: mae'n agor i LAN, ac mae ffrindiau ar y rhyngrwyd yn ymuno â'r cod. Nid oes unrhyw weinydd ohonom yn cymryd rhan.",
"horizon.friends.start_sharing": "Dechrau Rhannu",
"horizon.friends.troubleshooting": "Datrys Problemau...",
"horizon.friends.stopped": "Wedi stopio rhannu'r cod gwahoddiad.",
"horizon.friends.short_code_changed": "Roedd rhywun yn ceisio cod byr anghywir o hyd, felly fe newidiodd.",
"horizon.friends.wrong_code": "Ceisiodd rhywun god anghywir.",
"horizon.friends.relay_stopped": "Gormod o godau byr anghywir, felly mae'r cyfnewidydd i ffwrdd nes i chi rannu eto. Gall ffrindiau ymuno o hyd â'r cod llawn.",
"horizon.friends.code_ready": "Mae eich cod gwahoddiad yn barod: Dewislen Gêm, Chwarae gyda Ffrindiau. Copïwch ef a'i anfon at eich ffrindiau.",
"horizon.friends.share_failed": "Methu rhannu'r byd: %s",
"horizon.friends.finding_route": "Darganfod sut y gall ffrindiau eich cyrraedd…",
"horizon.osk.shift": "Turn",
"horizon.osk.space": "Gofod",
"horizon.osk.delete": "Dileu",
@@ -462,6 +462,23 @@
"horizon.splitscreen.profiles.offline_note": "Offlineprofiler hører til denne instans",
"horizon.splitscreen.profiles.move": "Flyt hvor du spiller",
"horizon.splitscreen.profiles.move_place": "Flyt hvor du spiller: %s",
"horizon.friends.title": "Spil med venner",
"horizon.friends.hint": "Venner indsætter koden efter titelskærmens Venner-knap, i Direct Connection eller på launcherens Play-side.",
"horizon.friends.copied": "Kopieret",
"horizon.friends.copy_code": "Kopiér kode",
"horizon.friends.stop_sharing": "Stop deling",
"horizon.friends.none_yet": "Ingen venner her endnu.",
"horizon.friends.here_now": "Her nu: %s",
"horizon.friends.share_intro": "Del denne verden bag en invitationskode: den åbner til LAN, og venner på internettet deltager med koden. Ingen af vores servere er involveret.",
"horizon.friends.start_sharing": "Begynd at dele",
"horizon.friends.troubleshooting": "Fejlfinding...",
"horizon.friends.stopped": "Stoppet med at dele invitationskoden.",
"horizon.friends.short_code_changed": "Nogen blev ved med at prøve en forkert kort kode, så den ændrede sig.",
"horizon.friends.wrong_code": "Nogen prøvede en forkert kode.",
"horizon.friends.relay_stopped": "For mange forkerte kortkoder, så relæet er slået fra, indtil du deler igen. Venner kan stadig deltage med den fulde kode.",
"horizon.friends.code_ready": "Din invitationskode er klar: Spilmenu, Spil med venner. Kopier det og send det til dine venner.",
"horizon.friends.share_failed": "Kunne ikke dele verden: %s",
"horizon.friends.finding_route": "Finder, hvordan venner kan nå dig...",
"horizon.osk.shift": "Skift",
"horizon.osk.space": "Plads",
"horizon.osk.delete": "Slet",
@@ -323,6 +323,7 @@
"horizon.extras.wheel_cycles_settings": "Mausrad ändert Einstellungen",
"horizon.extras.pack_browser": "Ressourcenpaket-Browser",
"horizon.extras.music_page.tooltip": "Musik & Geräusche erhält eine Seite „Musik …“: Spiele jeden eingebauten Titel jetzt ab oder schalte einen aus, damit das Spiel ihn nicht mehr wählt. Nichts ändert sich, bis du einen Titel ausschaltest.",
"horizon.friends.relay_stopped": "Zu viele falsche Kurzcodes, deshalb ist das Relay aus, bis du erneut teilst. Freunde können weiterhin mit dem vollständigen Code beitreten.",
"horizon.extras.pack_browser.tooltip": "Ressourcenpakete auswählen erhält eine Schaltfläche „Hinzufügen“, die Modrinth durchsucht und ein Paket in deinen Paketordner installiert. Aus kontaktiert das Spiel Modrinth nie.",
"horizon.splitscreen.setup.monitor": "Monitor %s",
"horizon.splitscreen.setup.monitor_unknown": "ein Monitor",
@@ -542,6 +543,22 @@
"horizon.splitscreen.profiles.offline_note": "Offline-Profile gehören zu dieser Instanz",
"horizon.splitscreen.profiles.move": "Spielort wechseln",
"horizon.splitscreen.profiles.move_place": "Spielort wechseln: %s",
"horizon.friends.title": "Mit Freunden spielen",
"horizon.friends.hint": "Freunde fügen den Code nach dem Freunde-Knopf des Titelbildschirms ein, bei „Direktverbindung“ oder auf der Spielen-Seite des Launchers.",
"horizon.friends.copied": "Kopiert",
"horizon.friends.copy_code": "Code kopieren",
"horizon.friends.stop_sharing": "Teilen beenden",
"horizon.friends.none_yet": "Noch keine Freunde hier.",
"horizon.friends.here_now": "Gerade hier: %s",
"horizon.friends.share_intro": "Teile diese Welt mit einem Einladungscode: Sie wird im LAN geöffnet, und Freunde im Internet treten mit dem Code bei. Es ist kein Server von uns beteiligt.",
"horizon.friends.start_sharing": "Teilen starten",
"horizon.friends.troubleshooting": "Fehlerbehebung …",
"horizon.friends.stopped": "Das Teilen des Einladungscodes wurde beendet.",
"horizon.friends.short_code_changed": "Jemand hat immer wieder einen falschen Kurzcode versucht, deshalb wurde er geändert.",
"horizon.friends.wrong_code": "Jemand hat einen falschen Code versucht.",
"horizon.friends.code_ready": "Dein Einladungscode ist bereit: Spielmenü, Mit Freunden spielen. Kopiere ihn und schicke ihn an deine Freunde.",
"horizon.friends.share_failed": "Die Welt konnte nicht geteilt werden: %s",
"horizon.friends.finding_route": "Es wird ermittelt, wie Freunde dich erreichen können …",
"horizon.osk.shift": "Umschalt",
"horizon.osk.space": "Leertaste",
"horizon.osk.delete": "Löschen",
@@ -462,6 +462,23 @@
"horizon.splitscreen.profiles.offline_note": "Τα προφίλ εκτός σύνδεσης ανήκουν σε αυτήν την περίπτωση",
"horizon.splitscreen.profiles.move": "Μετακινηθείτε όπου παίζετε",
"horizon.splitscreen.profiles.move_place": "Μετακινηθείτε όπου παίζετε: %s",
"horizon.friends.title": "Παίξτε με φίλους",
"horizon.friends.hint": "Οι φίλοι επικολλούν τον κώδικα μετά το κουμπί Φίλοι της οθόνης τίτλου, στην Άμεση σύνδεση ή στη σελίδα Αναπαραγωγή του προγράμματος εκκίνησης.",
"horizon.friends.copied": "Αντιγράφηκε",
"horizon.friends.copy_code": "Αντιγραφή Κωδικού",
"horizon.friends.stop_sharing": "Διακοπή κοινής χρήσης",
"horizon.friends.none_yet": "Δεν υπάρχουν φίλοι εδώ ακόμα.",
"horizon.friends.here_now": "Εδώ τώρα: %s",
"horizon.friends.share_intro": "Μοιραστείτε αυτόν τον κόσμο πίσω από έναν κωδικό πρόσκλησης: ανοίγει σε LAN και οι φίλοι στο Διαδίκτυο συμμετέχουν με τον κωδικό. Κανένας διακομιστής μας δεν εμπλέκεται.",
"horizon.friends.start_sharing": "Ξεκινήστε την κοινή χρήση",
"horizon.friends.troubleshooting": "Αντιμετώπιση προβλημάτων...",
"horizon.friends.stopped": "Σταμάτησε η κοινή χρήση του κωδικού πρόσκλησης.",
"horizon.friends.short_code_changed": "Κάποιος συνέχισε να δοκιμάζει έναν λάθος σύντομο κωδικό, οπότε άλλαξε.",
"horizon.friends.wrong_code": "Κάποιος δοκίμασε λάθος κωδικό.",
"horizon.friends.relay_stopped": "Πολλοί λάθος σύντομοι κωδικοί, οπότε το ρελέ είναι κλειστό μέχρι να μοιραστείτε ξανά. Οι φίλοι μπορούν ακόμη να συνδεθούν με τον πλήρη κωδικό.",
"horizon.friends.code_ready": "Ο κωδικός πρόσκλησής σας είναι έτοιμος: Μενού παιχνιδιού, Παίξτε με φίλους. Αντιγράψτε το και στείλτε το στους φίλους σας.",
"horizon.friends.share_failed": "Δεν μπορούσα να μοιραστώ τον κόσμο: %s",
"horizon.friends.finding_route": "Βρείτε πώς μπορούν να σας φτάσουν οι φίλοι…",
"horizon.osk.shift": "Μετατόπιση",
"horizon.osk.space": "Διάστημα",
"horizon.osk.delete": "Διαγραφή",
@@ -465,6 +465,23 @@
"horizon.splitscreen.profiles.offline_note": "Offline profiles belong to this instance",
"horizon.splitscreen.profiles.move": "Move where you play",
"horizon.splitscreen.profiles.move_place": "Move where you play: %s",
"horizon.friends.title": "Play with Friends",
"horizon.friends.hint": "Friends paste the code after the title screen's Friends button, in Direct Connection, or on the launcher's Play page.",
"horizon.friends.copied": "Copied",
"horizon.friends.copy_code": "Copy Code",
"horizon.friends.stop_sharing": "Stop Sharing",
"horizon.friends.none_yet": "No friends here yet.",
"horizon.friends.here_now": "Here now: %s",
"horizon.friends.share_intro": "Share this world behind an invite code: it opens to LAN, and friends on the internet join with the code. No server of ours is involved.",
"horizon.friends.start_sharing": "Start Sharing",
"horizon.friends.troubleshooting": "Troubleshooting...",
"horizon.friends.stopped": "Stopped sharing the invite code.",
"horizon.friends.short_code_changed": "Someone kept trying a wrong short code, so it changed.",
"horizon.friends.wrong_code": "Someone tried a wrong code.",
"horizon.friends.relay_stopped": "Too many wrong short codes, so the relay is off until you share again. Friends can still join with the full code.",
"horizon.friends.code_ready": "Your invite code is ready: Game Menu, Play with Friends. Copy it and send it to your friends.",
"horizon.friends.share_failed": "Couldn't share the world: %s",
"horizon.friends.finding_route": "Finding how friends can reach you…",
"horizon.osk.shift": "Shift",
"horizon.osk.space": "Space",
"horizon.osk.delete": "Delete",
@@ -462,6 +462,23 @@
"horizon.splitscreen.profiles.offline_note": "Senretaj profiloj apartenas al ĉi tiu kazo",
"horizon.splitscreen.profiles.move": "Movu kien vi ludas",
"horizon.splitscreen.profiles.move_place": "Movu kien vi ludas: %s",
"horizon.friends.title": "Ludu kun Amikoj",
"horizon.friends.hint": "Amikoj algluas la kodon post la butono Amikoj de la titolekrano, en Rekta Konekto aŭ sur la Luda paĝo de la lanĉilo.",
"horizon.friends.copied": "Kopiita",
"horizon.friends.copy_code": "Kopiu Kodon",
"horizon.friends.stop_sharing": "Ĉesu Kundividon",
"horizon.friends.none_yet": "Ankoraŭ neniuj amikoj ĉi tie.",
"horizon.friends.here_now": "Ĉi tie nun: %s",
"horizon.friends.share_intro": "Kunhavigu ĉi tiun mondon malantaŭ invitkodo: ĝi malfermiĝas al LAN, kaj amikoj en la interreto aliĝas kun la kodo. Neniu servilo nia estas implikita.",
"horizon.friends.start_sharing": "Komencu Kunhavigi",
"horizon.friends.troubleshooting": "Solvado de problemoj...",
"horizon.friends.stopped": "Ĉesis kunhavigi la invitkodon.",
"horizon.friends.short_code_changed": "Iu daŭre provis malĝustan mallongan kodon, do ĝi ŝanĝiĝis.",
"horizon.friends.wrong_code": "Iu provis malĝustan kodon.",
"horizon.friends.relay_stopped": "Tro da malĝustaj mallongaj kodoj, do la relajso estas malŝaltita ĝis vi denove kundividos. Amikoj ankoraŭ povas aliĝi per la plena kodo.",
"horizon.friends.code_ready": "Via invitkodo estas preta: Luda Menuo, Ludu kun Amikoj. Kopiu ĝin kaj sendu ĝin al viaj amikoj.",
"horizon.friends.share_failed": "Ne povis dividi la mondon: %s",
"horizon.friends.finding_route": "Trovi kiel amikoj povas atingi vin...",
"horizon.osk.shift": "Majusklo",
"horizon.osk.space": "Spaco",
"horizon.osk.delete": "Forigi",
@@ -462,6 +462,23 @@
"horizon.splitscreen.profiles.offline_note": "Los perfiles sin conexión pertenecen a esta instancia",
"horizon.splitscreen.profiles.move": "Mover dónde juegas",
"horizon.splitscreen.profiles.move_place": "Mover dónde juegas: %s",
"horizon.friends.title": "Jugar con amigos",
"horizon.friends.hint": "Tus amigos pegan el código tras el botón Amigos de la pantalla de título, en Conexión directa o en la página Jugar del launcher.",
"horizon.friends.copied": "Copiado",
"horizon.friends.copy_code": "Copiar código",
"horizon.friends.stop_sharing": "Dejar de compartir",
"horizon.friends.none_yet": "Aún no hay amigos aquí.",
"horizon.friends.here_now": "Aquí ahora: %s",
"horizon.friends.share_intro": "Comparte este mundo con un código de invitación: se abre a la LAN y tus amigos de internet se unen con el código. No interviene ningún servidor nuestro.",
"horizon.friends.start_sharing": "Empezar a compartir",
"horizon.friends.troubleshooting": "Solución de problemas...",
"horizon.friends.stopped": "Se ha dejado de compartir el código de invitación.",
"horizon.friends.short_code_changed": "Alguien intentó varias veces un código corto incorrecto, así que ha cambiado.",
"horizon.friends.wrong_code": "Alguien ha probado un código incorrecto.",
"horizon.friends.relay_stopped": "Demasiados códigos cortos incorrectos: el relé queda apagado hasta que vuelvas a compartir. Tus amigos aún pueden unirse con el código completo.",
"horizon.friends.code_ready": "Tu código de invitación está listo: Menú del juego, Jugar con amigos. Cópialo y envíaselo a tus amigos.",
"horizon.friends.share_failed": "No se pudo compartir el mundo: %s",
"horizon.friends.finding_route": "Buscando cómo pueden llegar tus amigos hasta ti…",
"horizon.osk.shift": "Mayús",
"horizon.osk.space": "Espacio",
"horizon.osk.delete": "Borrar",
@@ -462,6 +462,23 @@
"horizon.splitscreen.profiles.offline_note": "Sellesse eksemplari kuuluvad võrguühenduseta profiilid",
"horizon.splitscreen.profiles.move": "Liikuge sinna, kus mängite",
"horizon.splitscreen.profiles.move_place": "Liikuge sinna, kus mängite: %s",
"horizon.friends.title": "Mängige sõpradega",
"horizon.friends.hint": "Sõbrad kleebivad koodi pealkirjaekraani nupu Sõbrad järele, otseühenduses või käivitusprogrammi Play lehel.",
"horizon.friends.copied": "Kopeeritud",
"horizon.friends.copy_code": "Kopeeri kood",
"horizon.friends.stop_sharing": "Lõpeta jagamine",
"horizon.friends.none_yet": "Siin pole veel sõpru.",
"horizon.friends.here_now": "Siin praegu: %s",
"horizon.friends.share_intro": "Jagage seda maailma kutsekoodi taga: see avaneb LAN-i ja Internetis olevad sõbrad liituvad koodiga. Ükski meie server ei ole sellega seotud.",
"horizon.friends.start_sharing": "Alusta jagamist",
"horizon.friends.troubleshooting": "Veaotsing...",
"horizon.friends.stopped": "Kutsekoodi jagamine lõpetati.",
"horizon.friends.short_code_changed": "Keegi proovis pidevalt valet lühikoodi, nii et see muutus.",
"horizon.friends.wrong_code": "Keegi proovis vale koodi.",
"horizon.friends.relay_stopped": "Liiga palju valesid lühikoode, seega relee on väljas, kuni uuesti jagad. Sõbrad saavad siiski täiskoodiga liituda.",
"horizon.friends.code_ready": "Teie kutsekood on valmis: Mängumenüü, Mängige sõpradega. Kopeerige see ja saatke see oma sõpradele.",
"horizon.friends.share_failed": "Ei saanud maailma jagada: %s",
"horizon.friends.finding_route": "Kuidas sõbrad teiega ühendust saavad…",
"horizon.osk.shift": "Shift",
"horizon.osk.space": "Kosmos",
"horizon.osk.delete": "Kustuta",
@@ -462,6 +462,23 @@
"horizon.splitscreen.profiles.offline_note": "Lineaz kanpoko profilak instantzia honetakoak dira",
"horizon.splitscreen.profiles.move": "Mugitu jolasten duzun tokira",
"horizon.splitscreen.profiles.move_place": "Mugitu jolasten duzun tokira: %s",
"horizon.friends.title": "Jolastu Lagunekin",
"horizon.friends.hint": "Lagunek itsatsi dute kodea izenburu-pantailaren Lagunak botoian, Zuzeneko konexioan edo abiarazlearen Play orrian.",
"horizon.friends.copied": "Kopiatua",
"horizon.friends.copy_code": "Kopiatu kodea",
"horizon.friends.stop_sharing": "Utzi partekatzeari",
"horizon.friends.none_yet": "Hemen oraindik ez dago lagunik.",
"horizon.friends.here_now": "Hemen orain: %s",
"horizon.friends.share_intro": "Partekatu mundu hau gonbidapen-kode baten atzean: LANera irekitzen da eta Interneteko lagunak bat egiten dute kodearekin. Ez dago gure zerbitzaririk parte hartzen.",
"horizon.friends.start_sharing": "Hasi Partekatzen",
"horizon.friends.troubleshooting": "Arazoak konpontzen...",
"horizon.friends.stopped": "Gonbidapen kodea partekatzeari utzi dio.",
"horizon.friends.short_code_changed": "Norbaitek kode labur oker bat probatzen jarraitu zuen, beraz, aldatu egin zen.",
"horizon.friends.wrong_code": "Norbaitek kode oker batekin saiatu da.",
"horizon.friends.relay_stopped": "Kode labur oker gehiegi, beraz erreleboa itzalita dago berriro partekatu arte. Lagunek kode osoarekin sartzen jarrai dezakete.",
"horizon.friends.code_ready": "Zure gonbidapen-kodea prest dago: Jokoen menua, Jolastu lagunekin. Kopiatu eta bidali zure lagunei.",
"horizon.friends.share_failed": "Ezin izan da mundua partekatu: %s",
"horizon.friends.finding_route": "Lagunak zurekin nola irits daitezkeen aurkitzen...",
"horizon.osk.shift": "Txanda",
"horizon.osk.space": "Espazioa",
"horizon.osk.delete": "Ezabatu",
@@ -462,6 +462,23 @@
"horizon.splitscreen.profiles.offline_note": "پروفایل های آفلاین متعلق به این نمونه است",
"horizon.splitscreen.profiles.move": "جایی که بازی می کنید حرکت کنید",
"horizon.splitscreen.profiles.move_place": "جایی را که بازی می کنید حرکت دهید: %s",
"horizon.friends.title": "با دوستان بازی کنید",
"horizon.friends.hint": "دوستان کد را بعد از دکمه Friends صفحه عنوان، در اتصال مستقیم یا در صفحه Play راه‌انداز قرار می‌دهند.",
"horizon.friends.copied": "کپی شده است",
"horizon.friends.copy_code": "کد را کپی کنید",
"horizon.friends.stop_sharing": "اشتراک گذاری را متوقف کنید",
"horizon.friends.none_yet": "هنوز دوستی اینجا نیست",
"horizon.friends.here_now": "اکنون اینجا: %s",
"horizon.friends.share_intro": "این دنیا را پشت یک کد دعوت به اشتراک بگذارید: به شبکه LAN باز می شود و دوستانی که در اینترنت هستند با این کد ملحق می شوند. هیچ سروری از ما درگیر نیست.",
"horizon.friends.start_sharing": "اشتراک گذاری را شروع کنید",
"horizon.friends.troubleshooting": "عیب یابی ...",
"horizon.friends.stopped": "اشتراک‌گذاری کد دعوت متوقف شد.",
"horizon.friends.short_code_changed": "کسی مدام یک کد کوتاه اشتباه را امتحان می‌کرد، بنابراین تغییر کرد.",
"horizon.friends.wrong_code": "شخصی کد اشتباهی را امتحان کرده است.",
"horizon.friends.relay_stopped": "کدهای کوتاه اشتباه بیش از حد بود، بنابراین رله تا اشتراک‌گذاری دوباره خاموش است. دوستان هنوز می‌توانند با کد کامل بپیوندند.",
"horizon.friends.code_ready": "کد دعوت شما آماده است: منوی بازی، بازی با دوستان. کپی کنید و برای دوستانتان ارسال کنید.",
"horizon.friends.share_failed": "نمی توان جهان را به اشتراک گذاشت: %s",
"horizon.friends.finding_route": "یافتن نحوه ارتباط دوستان با شما…",
"horizon.osk.shift": "شیفت",
"horizon.osk.space": "فضا",
"horizon.osk.delete": "حذف کنید",
@@ -462,6 +462,23 @@
"horizon.splitscreen.profiles.offline_note": "Offline-profiilit kuuluvat tähän esiintymään",
"horizon.splitscreen.profiles.move": "Muuta missä pelaat",
"horizon.splitscreen.profiles.move_place": "Siirry paikkaan, jossa pelaat: %s",
"horizon.friends.title": "Pelaa ystävien kanssa",
"horizon.friends.hint": "Ystävät liittävät koodin otsikkonäytön Ystävät-painikkeen perään, Suoraan yhteyteen tai käynnistysohjelman Play-sivulle.",
"horizon.friends.copied": "Kopioitu",
"horizon.friends.copy_code": "Kopioi koodi",
"horizon.friends.stop_sharing": "Lopeta jakaminen",
"horizon.friends.none_yet": "Täällä ei ole vielä ystäviä.",
"horizon.friends.here_now": "Täällä nyt: %s",
"horizon.friends.share_intro": "Jaa tämä maailma kutsukoodin takana: se avautuu lähiverkkoon, ja ystävät Internetissä liittyvät koodin avulla. Yksikään palvelin ei ole mukana.",
"horizon.friends.start_sharing": "Aloita jakaminen",
"horizon.friends.troubleshooting": "Vianmääritys...",
"horizon.friends.stopped": "Kutsukoodin jakaminen lopetettiin.",
"horizon.friends.short_code_changed": "Joku yritti jatkuvasti käyttää väärää lyhytkoodia, joten se muuttui.",
"horizon.friends.wrong_code": "Joku yritti väärää koodia.",
"horizon.friends.relay_stopped": "Liian monta väärää lyhytkoodia, joten rele on pois päältä, kunnes jaat uudelleen. Ystävät voivat yhä liittyä täydellä koodilla.",
"horizon.friends.code_ready": "Kutsukoodisi on valmis: Pelivalikko, Pelaa ystävien kanssa. Kopioi se ja lähetä se ystävillesi.",
"horizon.friends.share_failed": "Ei voinut jakaa maailmaa: %s",
"horizon.friends.finding_route": "Selvitetään, kuinka ystävät voivat tavoittaa sinut…",
"horizon.osk.shift": "Vaihto",
"horizon.osk.space": "Avaruus",
"horizon.osk.delete": "Poista",
@@ -462,6 +462,23 @@
"horizon.splitscreen.profiles.offline_note": "Ang mga offline na profile ay kabilang sa pagkakataong ito",
"horizon.splitscreen.profiles.move": "Lumipat kung saan ka naglalaro",
"horizon.splitscreen.profiles.move_place": "Ilipat kung saan ka naglalaro: %s",
"horizon.friends.title": "Makipaglaro sa Kaibigan",
"horizon.friends.hint": "I-paste ng mga kaibigan ang code pagkatapos ng button na Friends ng screen ng pamagat, sa Direktang Koneksyon, o sa Play page ng launcher.",
"horizon.friends.copied": "Kinopya",
"horizon.friends.copy_code": "Kopyahin ang Code",
"horizon.friends.stop_sharing": "Itigil ang Pagbabahagi",
"horizon.friends.none_yet": "Wala pang kaibigan dito.",
"horizon.friends.here_now": "Narito ngayon: %s",
"horizon.friends.share_intro": "Ibahagi ang mundong ito sa likod ng code ng imbitasyon: bumubukas ito sa LAN, at sumali ang mga kaibigan sa internet gamit ang code. Walang kasamang server namin.",
"horizon.friends.start_sharing": "Simulan ang Pagbabahagi",
"horizon.friends.troubleshooting": "Pag-troubleshoot...",
"horizon.friends.stopped": "Huminto sa pagbabahagi ng code ng imbitasyon.",
"horizon.friends.short_code_changed": "May sumubok ng maling maikling code, kaya nagbago ito.",
"horizon.friends.wrong_code": "May sumubok ng maling code.",
"horizon.friends.relay_stopped": "Napakaraming maling short code, kaya naka-off ang relay hanggang magbahagi ka muli. Nakakasali pa rin ang mga kaibigan gamit ang buong code.",
"horizon.friends.code_ready": "Handa na ang iyong code ng imbitasyon: Game Menu, Play with Friends. Kopyahin ito at ipadala sa iyong mga kaibigan.",
"horizon.friends.share_failed": "Hindi maibahagi ang mundo: %s",
"horizon.friends.finding_route": "Hinahanap kung paano ka maaabot ng mga kaibigan...",
"horizon.osk.shift": "Paglipat",
"horizon.osk.space": "kalawakan",
"horizon.osk.delete": "Tanggalin",
@@ -462,6 +462,23 @@
"horizon.splitscreen.profiles.offline_note": "Offline profilar hoyra til hesa instans",
"horizon.splitscreen.profiles.move": "Flyt har tú spælir",
"horizon.splitscreen.profiles.move_place": "Flyt har tú spælir: %s .",
"horizon.friends.title": "Spæl við vinum",
"horizon.friends.hint": "Vinir líma kotuna eftir Vinir knøttin á tittulskjálvtanum, í Beinleiðis sambandi ella á Spæla síðuni á sjósetaranum.",
"horizon.friends.copied": "Avritað",
"horizon.friends.copy_code": "Avritskotu",
"horizon.friends.stop_sharing": "Steðga við at deila",
"horizon.friends.none_yet": "Eingir vinir her enn.",
"horizon.friends.here_now": "Her nú: %s",
"horizon.friends.share_intro": "Deil hendan heimin aftanfyri eina boðkotu: hon letur upp fyri LAN, og vinir á internetinum melda seg til við koduni. Eingin servari hjá okkum er við.",
"horizon.friends.start_sharing": "Byrja at deila",
"horizon.friends.troubleshooting": "Trupulleikaloysn...",
"horizon.friends.stopped": "Steðgaði við at deila boðkotuna.",
"horizon.friends.short_code_changed": "Onkur bleiv við at royna eina skeiva stutta kodu, so hon broyttist.",
"horizon.friends.wrong_code": "Onkur royndi eina skeiva kodu.",
"horizon.friends.relay_stopped": "Ov nógvar skeivar stuttkour, so stafettin er sløkt, til tú deilir aftur. Vinir kunnu framvegis melda seg til við fullu koduni.",
"horizon.friends.code_ready": "Tín boðkoda er klár: Spælvalmynd, Spæl við vinum. Kopiera tað og send tað til tínar vinir.",
"horizon.friends.share_failed": "Kundi ikki deila heimin: %s",
"horizon.friends.finding_route": "At finna útav, hvussu vinir kunnu røkka tær...",
"horizon.osk.shift": "Vakt",
"horizon.osk.space": "Rúm",
"horizon.osk.delete": "Strika",
@@ -302,6 +302,7 @@
"horizon.extras.zoom_mod_install": "Zoom : à installer depuis Mods",
"horizon.extras.pack_browser": "Navigateur de packs de ressources",
"horizon.extras.music_page.tooltip": "Musique et sons gagne une page Musique... : lancez n'importe quelle piste intégrée maintenant, ou désactivez-en une pour que le jeu arrête de la choisir. Rien ne change tant que vous ne désactivez pas une piste.",
"horizon.friends.relay_stopped": "Trop de codes courts erronés : le relais est désactivé jusqu'à ce que vous partagiez à nouveau. Vos amis peuvent toujours rejoindre avec le code complet.",
"horizon.extras.pack_browser.tooltip": "La sélection des packs de ressources gagne un bouton Ajouter qui cherche sur Modrinth et installe un pack dans votre dossier de packs. Désactivé, le jeu ne contacte jamais Modrinth.",
"horizon.splitscreen.setup.layout.two.0": "Auto",
"Opaque Ice": "Glace opaque",
@@ -431,6 +432,22 @@
"horizon.splitscreen.profiles.offline_note": "Les profils hors ligne appartiennent à cette instance",
"horizon.splitscreen.profiles.move": "Changer d'emplacement de jeu",
"horizon.splitscreen.profiles.move_place": "Changer d'emplacement de jeu : %s",
"horizon.friends.title": "Jouer avec des amis",
"horizon.friends.hint": "Vos amis collent le code après le bouton Amis de l'écran titre, dans « Connexion rapide » ou sur la page Jouer du lanceur.",
"horizon.friends.copied": "Copié",
"horizon.friends.copy_code": "Copier le code",
"horizon.friends.stop_sharing": "Arrêter le partage",
"horizon.friends.none_yet": "Aucun ami pour l'instant.",
"horizon.friends.here_now": "Présents : %s",
"horizon.friends.share_intro": "Partagez ce monde avec un code d'invitation : il s'ouvre au LAN, et vos amis sur internet le rejoignent avec le code. Aucun serveur de notre part n'est impliqué.",
"horizon.friends.start_sharing": "Commencer le partage",
"horizon.friends.troubleshooting": "Dépannage...",
"horizon.friends.stopped": "Le partage du code d'invitation est arrêté.",
"horizon.friends.short_code_changed": "Quelqu'un a essayé plusieurs fois un mauvais code court, il a donc été changé.",
"horizon.friends.wrong_code": "Quelqu'un a essayé un mauvais code.",
"horizon.friends.code_ready": "Votre code d'invitation est prêt : Menu du jeu, Jouer avec des amis. Copiez-le et envoyez-le à vos amis.",
"horizon.friends.share_failed": "Impossible de partager le monde : %s",
"horizon.friends.finding_route": "Recherche de la manière dont vos amis peuvent vous joindre…",
"horizon.osk.shift": "Maj.",
"horizon.osk.space": "Espace",
"horizon.osk.delete": "Effacer",
@@ -462,6 +462,23 @@
"horizon.splitscreen.profiles.offline_note": "I profîi fûr linie a apartegnin a cheste esemplificazion",
"horizon.splitscreen.profiles.move": "Spostâsi dulà che tu zuiis",
"horizon.splitscreen.profiles.move_place": "Spostâsi dulà che si zuie: %s",
"horizon.friends.title": "Zuegâ cui amîs",
"horizon.friends.hint": "I amîs a incolin il codiç dopo dal botôn Amîs de scherme dal titul, in Conession direte, o su la pagjine Play dal lançadôr.",
"horizon.friends.copied": "Copiât",
"horizon.friends.copy_code": "Codiç di copie",
"horizon.friends.stop_sharing": "Fermâ di condividi",
"horizon.friends.none_yet": "Ancjemò nissun amì culì.",
"horizon.friends.here_now": "Eco cumò: %s",
"horizon.friends.share_intro": "Condividi chest mont daûr di un codiç di invit: al si vierç ae LAN, e i amîs su internet a si unissin cul codiç. Nissun nestri servidôr al è coinvolt.",
"horizon.friends.start_sharing": "Scomencia a condividi",
"horizon.friends.troubleshooting": "Risoluzion dai problemis...",
"horizon.friends.stopped": "Fermât di condividi il codiç di invit.",
"horizon.friends.short_code_changed": "Cualchidun al continuave a provâ un codiç curt sbalît, cussì al cambià.",
"horizon.friends.wrong_code": "Cualchidun al à provât un codiç sbalît.",
"horizon.friends.relay_stopped": "Masse codiçs curts sbalâts, cussì il relê al è spent fin che no tu condividis di gnûf. I amîs a puedin ancjemò jentrâ cul codiç complet.",
"horizon.friends.code_ready": "Il to codiç di invit al è pront: Menu dal zûc, Zugâ cui amîs. Copielu e mandâlu ai tois amiis.",
"horizon.friends.share_failed": "No rivave a condividi il mont: %s",
"horizon.friends.finding_route": "Cjatâ cemût che i amîs a puedin rivâ a te...",
"horizon.osk.shift": "Cambi",
"horizon.osk.space": "Spazi",
"horizon.osk.delete": "Elimina",
@@ -462,6 +462,23 @@
"horizon.splitscreen.profiles.offline_note": "Offline profilen hearre ta dit eksimplaar",
"horizon.splitscreen.profiles.move": "Ferpleats wêr't jo spylje",
"horizon.splitscreen.profiles.move_place": "Ferpleats wêr't jo spylje: %s",
"horizon.friends.title": "Boartsje mei freonen",
"horizon.friends.hint": "Freonen plakke de koade nei de knop Freonen fan it titelskerm, yn Direkte ferbining, of op 'e Play-side fan 'e launcher.",
"horizon.friends.copied": "Kopiearre",
"horizon.friends.copy_code": "Kopiearje Code",
"horizon.friends.stop_sharing": "Stopje mei dielen",
"horizon.friends.none_yet": "Gjin freonen hjir noch.",
"horizon.friends.here_now": "Hjir no: %s",
"horizon.friends.share_intro": "Diel dizze wrâld efter in útnoegingskoade: it iepenet nei LAN, en freonen op it ynternet dogge mei mei de koade. Gjin tsjinner fan ús is belutsen.",
"horizon.friends.start_sharing": "Begjin te dielen",
"horizon.friends.troubleshooting": "Problemen oplosse...",
"horizon.friends.stopped": "Stoppe mei it dielen fan de útnoegingskoade.",
"horizon.friends.short_code_changed": "Immen besocht hieltyd in ferkearde koarte koade, dus it feroare.",
"horizon.friends.wrong_code": "Immen besocht in ferkearde koade.",
"horizon.friends.relay_stopped": "Te folle ferkearde koadekoarten, dus de estafette stiet út oant jo wer diele. Freonen kinne noch altyd mei de folsleine koade meidwaan.",
"horizon.friends.code_ready": "Jo útnoegingskoade is klear: Game Menu, Boartsje mei freonen. Kopiearje it en stjoer it nei jo freonen.",
"horizon.friends.share_failed": "Koe de wrâld net diele: %s",
"horizon.friends.finding_route": "Fyn hoe't freonen jo kinne berikke ...",
"horizon.osk.shift": "Shift",
"horizon.osk.space": "Romte",
"horizon.osk.delete": "Wiskje",
@@ -462,6 +462,23 @@
"horizon.splitscreen.profiles.offline_note": "Baineann próifílí as líne leis an gcás seo",
"horizon.splitscreen.profiles.move": "Bog áit a imríonn tú",
"horizon.splitscreen.profiles.move_place": "Bog áit a imríonn tú: %s",
"horizon.friends.title": "Seinn le Cairde",
"horizon.friends.hint": "Greamaigh Cairde an cód tar éis cnaipe Cairde an scáileáin teidil, i Ceangal Díreach, nó ar leathanach Súgartha an Tosaitheora.",
"horizon.friends.copied": "Cóipeáladh",
"horizon.friends.copy_code": "Cóipeáil Cód",
"horizon.friends.stop_sharing": "Stop Roinnt",
"horizon.friends.none_yet": "Níl aon chairde anseo fós.",
"horizon.friends.here_now": "Anseo anois: %s",
"horizon.friends.share_intro": "Roinn an domhan seo taobh thiar de chód cuirí: osclaíonn sé go LAN, agus glacann cairde ar an idirlíon leis an gcód. Níl aon fhreastalaí dár gcuid i gceist.",
"horizon.friends.start_sharing": "Tosaigh ag Roinnt",
"horizon.friends.troubleshooting": "Fabhtcheartú...",
"horizon.friends.stopped": "Stopadh an cód cuirí a roinnt.",
"horizon.friends.short_code_changed": "Lean duine éigin ag iarraidh cód gearr mícheart, mar sin d'athraigh sé.",
"horizon.friends.wrong_code": "Bhain duine éigin triail as cód mícheart.",
"horizon.friends.relay_stopped": "An iomarca cóid ghearra míchearta, mar sin tá an sealaíocht as go dtí go roinnfidh tú arís. Is féidir le cairde teacht isteach fós leis an gcód iomlán.",
"horizon.friends.code_ready": "Tá do chód cuireadh réidh: Roghchlár Cluiche, Spraoi le Cairde. Cóipeáil é agus seol chuig do chairde é.",
"horizon.friends.share_failed": "Níorbh fhéidir an domhan a roinnt: %s",
"horizon.friends.finding_route": "Ag fáil amach conas is féidir le cairde dul i dteagmháil leat…",
"horizon.osk.shift": "Shift",
"horizon.osk.space": "Spás",
"horizon.osk.delete": "Scrios",
@@ -462,6 +462,23 @@
"horizon.splitscreen.profiles.offline_note": "Buinidh pròifilean far-loidhne don t-suidheachadh seo",
"horizon.splitscreen.profiles.move": "Gluais far a bheil thu a 'cluich",
"horizon.splitscreen.profiles.move_place": "Gluais far a bheil thu a’ cluich: %s",
"horizon.friends.title": "Cluich le caraidean",
"horizon.friends.hint": "Bidh caraidean a’ cuir a-steach an còd às deidh putan Caraidean an sgrion tiotal, ann an Direct Connection, no air duilleag Cluich an lannsair.",
"horizon.friends.copied": "Rinn lethbhreac",
"horizon.friends.copy_code": "Dèan lethbhreac den Chòd",
"horizon.friends.stop_sharing": "Stad air roinneadh",
"horizon.friends.none_yet": "Chan eil caraidean an seo fhathast.",
"horizon.friends.here_now": "Seo agaibh a-nis: %s",
"horizon.friends.share_intro": "Roinn an saoghal seo air cùl còd cuireadh: bidh e a’ fosgladh gu LAN, agus bidh caraidean air an eadar-lìn a’ tighinn còmhla ris a’ chòd. Chan eil seirbheisiche sam bith againn an sàs.",
"horizon.friends.start_sharing": "Tòisich a 'roinneadh",
"horizon.friends.troubleshooting": "Fuasgladh thrioblaidean...",
"horizon.friends.stopped": "Sguir a bhith a’ roinneadh a’ chòd cuireadh.",
"horizon.friends.short_code_changed": "Chùm cuideigin a’ feuchainn còd goirid ceàrr, agus mar sin dh’atharraich e.",
"horizon.friends.wrong_code": "Dh’fheuch cuideigin còd ceàrr.",
"horizon.friends.relay_stopped": "Cus de chòdan goirid ceàrr, agus mar sin tha an t-sealaidheachd dheth gus an roinn thu a-rithist. Faodaidh caraidean a dhol còmhla leis a' chòd slàn fhathast.",
"horizon.friends.code_ready": "Tha an còd cuireadh agad deiseil: Clàr Gèam, Cluich le Caraidean. Dèan lethbhreac dheth agus cuir gu do charaidean e.",
"horizon.friends.share_failed": "Cha b’ urrainn dhuinn an saoghal a cho-roinn: %s",
"horizon.friends.finding_route": "Faigh a-mach mar as urrainn do charaidean ruighinn ort…",
"horizon.osk.shift": "Gluasad",
"horizon.osk.space": "Àite",
"horizon.osk.delete": "Sguab às",
@@ -462,6 +462,23 @@
"horizon.splitscreen.profiles.offline_note": "Os perfís sen conexión pertencen a esta instancia",
"horizon.splitscreen.profiles.move": "Móvete onde xogas",
"horizon.splitscreen.profiles.move_place": "Move onde xogas: %s",
"horizon.friends.title": "Xoga cos amigos",
"horizon.friends.hint": "Os amigos pegan o código despois do botón Amigos da pantalla de título, na Conexión directa ou na páxina Play do iniciador.",
"horizon.friends.copied": "Copiouse",
"horizon.friends.copy_code": "Copiar código",
"horizon.friends.stop_sharing": "Deixa de compartir",
"horizon.friends.none_yet": "Aínda non hai amigos aquí.",
"horizon.friends.here_now": "Aquí agora: %s",
"horizon.friends.share_intro": "Comparte este mundo detrás dun código de invitación: ábrese a LAN e os amigos de Internet únense co código. Ningún servidor noso está implicado.",
"horizon.friends.start_sharing": "Comeza a compartir",
"horizon.friends.troubleshooting": "Solución de problemas...",
"horizon.friends.stopped": "Deixou de compartir o código de invitación.",
"horizon.friends.short_code_changed": "Alguén seguiu probando un código curto incorrecto, polo que cambiou.",
"horizon.friends.wrong_code": "Alguén intentou un código incorrecto.",
"horizon.friends.relay_stopped": "Demasiados códigos curtos incorrectos, polo que o relé está desactivado ata que volvas compartir. Os amigos aínda poden unirse co código completo.",
"horizon.friends.code_ready": "O teu código de invitación está listo: Menú Xogo, Xoga cos amigos. Cópiao e envíao aos teus amigos.",
"horizon.friends.share_failed": "Non se puido compartir o mundo: %s",
"horizon.friends.finding_route": "Buscando como os amigos poden contactar contigo...",
"horizon.osk.shift": "Cambio",
"horizon.osk.space": "Espazo",
"horizon.osk.delete": "Eliminar",
@@ -462,6 +462,23 @@
"horizon.splitscreen.profiles.offline_note": "No kēia laʻana nā ʻaoʻao pahemo",
"horizon.splitscreen.profiles.move": "E neʻe i kahi āu e pāʻani ai",
"horizon.splitscreen.profiles.move_place": "E neʻe i kahi āu e pāʻani ai: %s",
"horizon.friends.title": "E pāʻani me nā hoa",
"horizon.friends.hint": "Hoʻopili nā hoa i ke code ma hope o ke pihi Hoa o ka pale poʻo inoa, ma Direct Connection, a i ʻole ma ka ʻaoʻao Play o ka mea hoʻolaha.",
"horizon.friends.copied": "Kope ʻia",
"horizon.friends.copy_code": "Kāhea kope",
"horizon.friends.stop_sharing": "Hooki i ka Kaʻana like",
"horizon.friends.none_yet": "ʻAʻohe hoa ma ʻaneʻi.",
"horizon.friends.here_now": "Eia i kēia manawa: %s",
"horizon.friends.share_intro": "E kaʻana like i kēia ao ma hope o kahi code kono: wehe ia i LAN, a hui pū nā hoaaloha ma ka pūnaewele me ke code. ʻAʻohe kikowaena o kā mākou pili.",
"horizon.friends.start_sharing": "Hoʻomaka Kaʻana like",
"horizon.friends.troubleshooting": "Hoʻoponopono pilikia...",
"horizon.friends.stopped": "Ua ho'ōki i ka hāʻawi ʻana i ke code kono.",
"horizon.friends.short_code_changed": "Ke hoʻāʻo nei kekahi i kahi code pōkole hewa, no laila ua loli.",
"horizon.friends.wrong_code": "Ua hoʻāʻo kekahi i kahi code hewa.",
"horizon.friends.relay_stopped": "Nui loa nā code pōkole hewa, no laila ua paʻa ka relay a hiki i kou kaʻana hou ʻana. Hiki nō i nā hoaaloha ke hui me ka code piha.",
"horizon.friends.code_ready": "Ua mākaukau kāu code kono: Game Menu, Play with Friends. E kope a hoʻouna aku i kāu mau hoaaloha.",
"horizon.friends.share_failed": "ʻAʻole hiki ke kaʻana like i ka honua: %s",
"horizon.friends.finding_route": "Ke ʻimi nei pehea e hiki ai i nā hoaaloha ke loaʻa iā ʻoe…",
"horizon.osk.shift": "Hoʻololi",
"horizon.osk.space": "Pā Hakahaka",
"horizon.osk.delete": "Holoi",
@@ -462,6 +462,23 @@
"horizon.splitscreen.profiles.offline_note": "פרופילים לא מקוונים שייכים למופע הזה",
"horizon.splitscreen.profiles.move": "זז לאן שאתה משחק",
"horizon.splitscreen.profiles.move_place": "זז לאן שאתה משחק: %s",
"horizon.friends.title": "שחקו עם חברים",
"horizon.friends.hint": "חברים מדביקים את הקוד אחרי כפתור החברים של מסך הכותרת, בחיבור ישיר או בדף ההפעלה של המשגר.",
"horizon.friends.copied": "הועתק",
"horizon.friends.copy_code": "העתק קוד",
"horizon.friends.stop_sharing": "תפסיק לשתף",
"horizon.friends.none_yet": "אין כאן חברים עדיין.",
"horizon.friends.here_now": "כאן עכשיו: %s",
"horizon.friends.share_intro": "שתף את העולם הזה מאחורי קוד הזמנה: הוא נפתח ל-LAN, וחברים באינטרנט מצטרפים עם הקוד. אף שרת שלנו לא מעורב.",
"horizon.friends.start_sharing": "התחל לשתף",
"horizon.friends.troubleshooting": "פתרון בעיות...",
"horizon.friends.stopped": "הפסיק לשתף את קוד ההזמנה.",
"horizon.friends.short_code_changed": "מישהו כל הזמן ניסה קוד קצר שגוי, אז זה השתנה.",
"horizon.friends.wrong_code": "מישהו ניסה קוד שגוי.",
"horizon.friends.relay_stopped": "יותר מדי קודים קצרים שגויים, ולכן הממסר כבוי עד שתשתף שוב. חברים עדיין יכולים להצטרף עם הקוד המלא.",
"horizon.friends.code_ready": "קוד ההזמנה שלך מוכן: תפריט משחק, שחק עם חברים. העתק אותו ושלח אותו לחברים שלך.",
"horizon.friends.share_failed": "לא יכולתי לשתף את העולם: %s",
"horizon.friends.finding_route": "מוצא כיצד חברים יכולים להגיע אליך...",
"horizon.osk.shift": "Shift",
"horizon.osk.space": "חלל",
"horizon.osk.delete": "מחק",
@@ -462,6 +462,23 @@
"horizon.splitscreen.profiles.offline_note": "ऑफ़लाइन प्रोफ़ाइल इस इंस्टेंस के हैं",
"horizon.splitscreen.profiles.move": "स्थानांतरित करें जहाँ आप खेलते हैं",
"horizon.splitscreen.profiles.move_place": "स्थानांतरित करें जहाँ आप खेलते हैं: %s",
"horizon.friends.title": "मित्रों के साथ खेलें",
"horizon.friends.hint": "मित्र शीर्षक स्क्रीन के फ्रेंड्स बटन के बाद, डायरेक्ट कनेक्शन में, या लॉन्चर के प्ले पेज पर कोड पेस्ट करते हैं।",
"horizon.friends.copied": "कॉपी किया गया",
"horizon.friends.copy_code": "कोड कॉपी करें",
"horizon.friends.stop_sharing": "साझा करना बंद करें",
"horizon.friends.none_yet": "यहाँ अभी कोई मित्र नहीं है।",
"horizon.friends.here_now": "अभी यहाँ हैं: %s",
"horizon.friends.share_intro": "इस दुनिया को आमंत्रण कोड के पीछे साझा करें: यह LAN के लिए खुलता है, और इंटरनेट पर मित्र कोड के साथ जुड़ते हैं। इसमें हमारा कोई सर्वर शामिल नहीं है।",
"horizon.friends.start_sharing": "साझा करना शुरू करें",
"horizon.friends.troubleshooting": "समस्या निवारण...",
"horizon.friends.stopped": "आमंत्रण कोड साझा करना बंद कर दिया।",
"horizon.friends.short_code_changed": "किसी ने बार-बार गलत शॉर्ट कोड आजमाया, इसलिए यह बदल गया।",
"horizon.friends.wrong_code": "किसी ने गलत कोड आजमाया।",
"horizon.friends.relay_stopped": "बहुत अधिक गलत शॉर्ट कोड, इसलिए दोबारा साझा करने तक रिले बंद है। मित्र अभी भी पूर्ण कोड से जुड़ सकते हैं।",
"horizon.friends.code_ready": "आपका आमंत्रण कोड तैयार है: गेम मेनू, प्ले विद फ्रेंड्स। इसे कॉपी करें और अपने मित्रों को भेजें।",
"horizon.friends.share_failed": "दुनिया साझा नहीं की जा सकी: %s",
"horizon.friends.finding_route": "ढूंढ रहे हैं कि मित्र आप तक कैसे पहुँच सकते हैं…",
"horizon.osk.shift": "Shift",
"horizon.osk.space": "Space",
"horizon.osk.delete": "Delete",
@@ -462,6 +462,23 @@
"horizon.splitscreen.profiles.offline_note": "Izvanmrežni profili pripadaju ovoj instanci",
"horizon.splitscreen.profiles.move": "Premjesti mjesto igranja",
"horizon.splitscreen.profiles.move_place": "Premjesti mjesto igranja: %s",
"horizon.friends.title": "Igraj s prijateljima",
"horizon.friends.hint": "Prijatelji lijepe kod nakon gumba Prijatelji na naslovnom zaslonu, u izravnom povezivanju ili na stranici za igranje pokretača.",
"horizon.friends.copied": "Kopirano",
"horizon.friends.copy_code": "Kopiraj kod",
"horizon.friends.stop_sharing": "Zaustavi dijeljenje",
"horizon.friends.none_yet": "Ovdje još nema prijatelja.",
"horizon.friends.here_now": "Ovdje sada: %s",
"horizon.friends.share_intro": "Podijelite ovaj svijet iza pozivnog koda: otvara se za LAN, a prijatelji na internetu pridružuju se s kodom. Nijedan naš poslužitelj nije uključen.",
"horizon.friends.start_sharing": "Započni dijeljenje",
"horizon.friends.troubleshooting": "Rješavanje problema...",
"horizon.friends.stopped": "Zaustavljeno dijeljenje pozivnog koda.",
"horizon.friends.short_code_changed": "Netko je stalno pokušavao unijeti pogrešan kratki kod, pa se on promijenio.",
"horizon.friends.wrong_code": "Netko je pokušao unijeti pogrešan kod.",
"horizon.friends.relay_stopped": "Previše pogrešnih kratkih kodova, pa je prijenos isključen dok ponovno ne podijelite. Prijatelji se još mogu pridružiti s punim kodom.",
"horizon.friends.code_ready": "Vaš pozivni kod je spreman: Izbornik igre, Igraj s prijateljima. Kopirajte ga i pošaljite svojim prijateljima.",
"horizon.friends.share_failed": "Nije moguće dijeliti svijet: %s",
"horizon.friends.finding_route": "Pronalaženje načina na koji vas prijatelji mogu dosegnuti…",
"horizon.osk.shift": "Shift",
"horizon.osk.space": "Razmaknica",
"horizon.osk.delete": "Izbriši",
@@ -462,6 +462,23 @@
"horizon.splitscreen.profiles.offline_note": "Az offline profilok ehhez a példányhoz tartoznak",
"horizon.splitscreen.profiles.move": "Menj oda, ahol játszol",
"horizon.splitscreen.profiles.move_place": "Menjen oda, ahol játszik: %s",
"horizon.friends.title": "Játssz a barátokkal",
"horizon.friends.hint": "Az ismerősök beillesztik a kódot a címképernyő Barátok gombja mögé, a Közvetlen kapcsolatba vagy az indító Play oldalára.",
"horizon.friends.copied": "Másolva",
"horizon.friends.copy_code": "Kód másolása",
"horizon.friends.stop_sharing": "Megosztás leállítása",
"horizon.friends.none_yet": "Még nincsenek itt barátok.",
"horizon.friends.here_now": "Itt most: %s",
"horizon.friends.share_intro": "Oszd meg ezt a világot egy meghívókód mögött: megnyílik a LAN-hoz, és az interneten lévő ismerősök is csatlakoznak a kódhoz. A mi szerverünk nem érintett.",
"horizon.friends.start_sharing": "Indítsa el a Megosztást",
"horizon.friends.troubleshooting": "Hibaelhárítás...",
"horizon.friends.stopped": "A meghívókód megosztása leállt.",
"horizon.friends.short_code_changed": "Valaki folyamatosan rossz rövid kóddal próbálkozott, ezért megváltozott.",
"horizon.friends.wrong_code": "Valaki rossz kóddal próbálkozott.",
"horizon.friends.relay_stopped": "Túl sok rossz rövid kód érkezett, ezért a relé ki van kapcsolva, amíg újra nem osztja meg. A barátok a teljes kóddal továbbra is csatlakozhatnak.",
"horizon.friends.code_ready": "A meghívókód készen áll: Játékmenü, Játssz a barátokkal. Másold ki és küldd el ismerőseidnek.",
"horizon.friends.share_failed": "Nem sikerült megosztani a világot: %s",
"horizon.friends.finding_route": "Megtudja, hogyan érhetnek el barátaid…",
"horizon.osk.shift": "Váltás",
"horizon.osk.space": "Tér",
"horizon.osk.delete": "Törölje",
@@ -462,6 +462,23 @@
"horizon.splitscreen.profiles.offline_note": "Անցանց պրոֆիլները պատկանում են այս օրինակին",
"horizon.splitscreen.profiles.move": "Տեղափոխեք այնտեղ, որտեղ խաղում եք",
"horizon.splitscreen.profiles.move_place": "Տեղափոխեք այնտեղ, որտեղ խաղում եք՝ %s",
"horizon.friends.title": "Խաղացեք ընկերների հետ",
"horizon.friends.hint": "Ընկերները տեղադրում են կոդը վերնագրի էկրանի Ընկերներ կոճակից հետո, ուղիղ միացումում կամ գործարկողի Play էջում:",
"horizon.friends.copied": "Պատճենվել է",
"horizon.friends.copy_code": "Պատճենել կոդը",
"horizon.friends.stop_sharing": "Դադարեցնել համօգտագործումը",
"horizon.friends.none_yet": "Այստեղ դեռ ընկերներ չկան:",
"horizon.friends.here_now": "Ահա հիմա: %s",
"horizon.friends.share_intro": "Կիսվեք այս աշխարհով հրավերի կոդով. այն բացվում է LAN-ի համար, և ինտերնետում գտնվող ընկերները միանում են կոդով: Մեր ոչ մի սերվեր ներգրավված չէ:",
"horizon.friends.start_sharing": "Սկսեք համօգտագործել",
"horizon.friends.troubleshooting": "Անսարքությունների վերացում...",
"horizon.friends.stopped": "Դադարեցվել է հրապարակել հրավերի կոդը:",
"horizon.friends.short_code_changed": "Ինչ-որ մեկը շարունակում էր սխալ կարճ կոդ փորձել, ուստի այն փոխվեց:",
"horizon.friends.wrong_code": "Ինչ-որ մեկը սխալ կոդ է փորձել:",
"horizon.friends.relay_stopped": "Չափից շատ սխալ կարճ կոդեր, ուստի ռելեն անջատված է, մինչև նորից կիսվեք։ Ընկերները դեռ կարող են միանալ ամբողջական կոդով։",
"horizon.friends.code_ready": "Ձեր հրավերի կոդը պատրաստ է. Խաղի ընտրացանկ, Խաղացեք ընկերների հետ: Պատճենեք այն և ուղարկեք ձեր ընկերներին։",
"horizon.friends.share_failed": "Չեմ կարող կիսվել աշխարհով. %s",
"horizon.friends.finding_route": "Գտեք, թե ինչպես ընկերները կարող են կապվել ձեզ հետ…",
"horizon.osk.shift": "Հերթափոխ",
"horizon.osk.space": "Տիեզերք",
"horizon.osk.delete": "Ջնջել",
@@ -462,6 +462,23 @@
"horizon.splitscreen.profiles.offline_note": "Profil offline milik instans ini",
"horizon.splitscreen.profiles.move": "Pindahkan posisi bermain",
"horizon.splitscreen.profiles.move_place": "Pindahkan posisi bermain: %s",
"horizon.friends.title": "Bermain dengan Teman",
"horizon.friends.hint": "Teman menempelkan kode setelah mengeklik tombol Teman di layar judul, melalui Koneksi Langsung (Direct Connection), atau di halaman Main peluncur.",
"horizon.friends.copied": "Disalin",
"horizon.friends.copy_code": "Salin Kode",
"horizon.friends.stop_sharing": "Berhenti Berbagi",
"horizon.friends.none_yet": "Belum ada teman di sini.",
"horizon.friends.here_now": "Di sini sekarang: %s",
"horizon.friends.share_intro": "Bagikan dunia ini di balik kode undangan: dunia akan terbuka untuk LAN, dan teman di internet dapat bergabung menggunakan kode tersebut. Tidak ada server kami yang dilibatkan.",
"horizon.friends.start_sharing": "Mulai Berbagi",
"horizon.friends.troubleshooting": "Pemecahan Masalah...",
"horizon.friends.stopped": "Berhenti berbagi kode undangan.",
"horizon.friends.short_code_changed": "Seseorang terus mencoba kode pendek yang salah, sehingga kode telah diubah.",
"horizon.friends.wrong_code": "Seseorang mencoba memasukkan kode yang salah.",
"horizon.friends.relay_stopped": "Terlalu banyak kode pendek yang salah, sehingga relay nonaktif hingga Anda berbagi lagi. Teman tetap dapat bergabung dengan kode lengkap.",
"horizon.friends.code_ready": "Kode undangan Anda sudah siap: Menu Game -> Bermain dengan Teman. Salin dan kirimkan ke teman-teman Anda.",
"horizon.friends.share_failed": "Tidak dapat membagikan dunia: %s",
"horizon.friends.finding_route": "Mencari cara agar teman dapat menjangkau Anda…",
"horizon.osk.shift": "Shift",
"horizon.osk.space": "Spasi",
"horizon.osk.delete": "Hapus",
@@ -462,6 +462,23 @@
"horizon.splitscreen.profiles.offline_note": "Profaịlụ ndị na-anọghị n'ịntanetị bụ nke ihe atụ a",
"horizon.splitscreen.profiles.move": "Bugharịa ebe ị na-egwu",
"horizon.splitscreen.profiles.move_place": "Bugharịa ebe ị na-egwu: %s",
"horizon.friends.title": "Soro ndị enyi gwuo egwu",
"horizon.friends.hint": "Ndị enyi na-amanye koodu ahụ ka bọtịnụ ndị enyi gachara aha ihuenyo ahụ, na njikọ Direct, ma ọ bụ na ibe Play nke onye mbido.",
"horizon.friends.copied": "Eṅomiri",
"horizon.friends.copy_code": "Detuo koodu",
"horizon.friends.stop_sharing": "Kwụsị ikekọrịta",
"horizon.friends.none_yet": "Onweghi enyi ebea.",
"horizon.friends.here_now": "Ebe a ugbu a: %s",
"horizon.friends.share_intro": "Kekọrịta ụwa a n'azụ koodu ịkpọ òkù: ọ ga-emepe na LAN, ndị enyi na ịntanetị sonye na koodu ahụ. Ọ nweghị ihe nkesa nke anyị metụtara.",
"horizon.friends.start_sharing": "Malite ikekọrịta",
"horizon.friends.troubleshooting": "Nchọpụta nsogbu...",
"horizon.friends.stopped": "Kwụsị ikesa koodu ịkpọ òkù.",
"horizon.friends.short_code_changed": "Mmadụ nọgidere na-agbalị koodu dị mkpirikpi na-ezighi ezi, ya mere ọ gbanwere.",
"horizon.friends.wrong_code": "Mmadụ nwara koodu na-ezighi ezi.",
"horizon.friends.relay_stopped": "Koodu mkpụmkpụ na-ezighi ezi karịrị oke, ya mere relay agbanyụrụ ruo mgbe i ga-ekerịta ọzọ. Ndị enyi ka nwere ike iso na koodu zuru oke.",
"horizon.friends.code_ready": "Koodu ịkpọ oku gị adịla njikere: NchNhr Egwuregwu, Soro ndị enyi gwuo egwu. Detuo ya ma ziga ya ndị enyi gị.",
"horizon.friends.share_failed": "Enweghị ike ịkekọrịta ụwa: %s",
"horizon.friends.finding_route": "Ịchọta ka ndị enyi ga-esi nweta gị…",
"horizon.osk.shift": "Mgbanwe",
"horizon.osk.space": "Oghere",
"horizon.osk.delete": "Hichapụ",
@@ -462,6 +462,23 @@
"horizon.splitscreen.profiles.offline_note": "Prófílar án nettengingar tilheyra þessu tilviki",
"horizon.splitscreen.profiles.move": "Færðu þig þangað sem þú spilar",
"horizon.splitscreen.profiles.move_place": "Færðu þig þar sem þú spilar: %s",
"horizon.friends.title": "Spilaðu með vinum",
"horizon.friends.hint": "Vinir líma kóðann aftan við Vinahnapp titilskjásins, í beinni tengingu eða á Play síðu ræsiforritsins.",
"horizon.friends.copied": "Afritað",
"horizon.friends.copy_code": "Afritaðu kóða",
"horizon.friends.stop_sharing": "Hættu að deila",
"horizon.friends.none_yet": "Engir vinir hér ennþá.",
"horizon.friends.here_now": "Hér núna: %s",
"horizon.friends.share_intro": "Deildu þessum heimi á bak við boðskóða: hann opnast fyrir staðarnet og vinir á internetinu tengjast með kóðanum. Enginn þjónn okkar kemur við sögu.",
"horizon.friends.start_sharing": "Byrjaðu að deila",
"horizon.friends.troubleshooting": "Úrræðaleit...",
"horizon.friends.stopped": "Hætti að deila boðskóðanum.",
"horizon.friends.short_code_changed": "Einhver hélt áfram að reyna rangan stuttkóða, svo hann breyttist.",
"horizon.friends.wrong_code": "Einhver reyndi rangan kóða.",
"horizon.friends.relay_stopped": "Of margir rangir stuttkóðar, svo gengið er slökkt þar til þú deilir aftur. Vinir geta samt tengst með fullum kóða.",
"horizon.friends.code_ready": "Boðskóðinn þinn er tilbúinn: Leikjavalmynd, Spilaðu með vinum. Afritaðu það og sendu það til vina þinna.",
"horizon.friends.share_failed": "Gat ekki deilt heiminum: %s",
"horizon.friends.finding_route": "Að finna hvernig vinir geta náð í þig...",
"horizon.osk.shift": "Shift",
"horizon.osk.space": "Rými",
"horizon.osk.delete": "Eyða",
@@ -462,6 +462,23 @@
"horizon.splitscreen.profiles.offline_note": "I profili offline appartengono a questa istanza",
"horizon.splitscreen.profiles.move": "Muoviti dove giochi",
"horizon.splitscreen.profiles.move_place": "Spostati dove giochi: %s",
"horizon.friends.title": "Gioca con gli amici",
"horizon.friends.hint": "Gli amici incollano il codice dopo il pulsante Amici della schermata del titolo, in Connessione diretta o nella pagina di riproduzione del launcher.",
"horizon.friends.copied": "Copiato",
"horizon.friends.copy_code": "Copia codice",
"horizon.friends.stop_sharing": "Interrompi la condivisione",
"horizon.friends.none_yet": "Nessun amico qui ancora.",
"horizon.friends.here_now": "Ecco adesso: %s",
"horizon.friends.share_intro": "Condividi questo mondo dietro un codice di invito: si apre alla LAN e gli amici su Internet si uniscono con il codice. Nessun nostro server è coinvolto.",
"horizon.friends.start_sharing": "Inizia a condividere",
"horizon.friends.troubleshooting": "Risoluzione dei problemi...",
"horizon.friends.stopped": "Interrotta la condivisione del codice di invito.",
"horizon.friends.short_code_changed": "Qualcuno continuava a provare un codice funzione sbagliato, quindi è cambiato.",
"horizon.friends.wrong_code": "Qualcuno ha provato un codice sbagliato.",
"horizon.friends.relay_stopped": "Troppi codici brevi errati, quindi il relè è spento finché non condividi di nuovo. Gli amici possono ancora unirsi con il codice completo.",
"horizon.friends.code_ready": "Il tuo codice di invito è pronto: Menu di gioco, Gioca con gli amici. Copialo e invialo ai tuoi amici.",
"horizon.friends.share_failed": "Impossibile condividere il mondo: %s",
"horizon.friends.finding_route": "Scoprire come gli amici possono contattarti...",
"horizon.osk.shift": "Cambio",
"horizon.osk.space": "Spazio",
"horizon.osk.delete": "Elimina",
@@ -462,6 +462,23 @@
"horizon.splitscreen.profiles.offline_note": "オフライン プロファイルはこのインスタンスに属します",
"horizon.splitscreen.profiles.move": "遊ぶ場所を移動する",
"horizon.splitscreen.profiles.move_place": "プレイする場所を移動: %s",
"horizon.friends.title": "友達と遊ぶ",
"horizon.friends.hint": "フレンドは、タイトル画面のフレンドボタンの後、ダイレクト接続、またはランチャーのプレイページにコードを貼り付けます。",
"horizon.friends.copied": "コピーされました",
"horizon.friends.copy_code": "コードをコピーする",
"horizon.friends.stop_sharing": "共有を停止する",
"horizon.friends.none_yet": "ここにはまだ友達がいません。",
"horizon.friends.here_now": "今ここ: %s",
"horizon.friends.share_intro": "招待コードを使用してこの世界を共有します。コードは LAN に開かれ、インターネット上の友人はコードを使用して参加します。弊社のサーバーは関与しておりません。",
"horizon.friends.start_sharing": "共有を開始する",
"horizon.friends.troubleshooting": "トラブルシューティング中...",
"horizon.friends.stopped": "招待コードの共有を停止しました。",
"horizon.friends.short_code_changed": "誰かが間違ったショートコードを試し続けたため、コードが変更されました。",
"horizon.friends.wrong_code": "誰かが間違ったコードを試みました。",
"horizon.friends.relay_stopped": "短いコードの入力ミスが多すぎるため、再び共有するまでリレーはオフです。友達は完全なコードなら参加できます。",
"horizon.friends.code_ready": "招待コードの準備が整いました: ゲーム メニュー、友達とプレイ。コピーして友達に送信してください。",
"horizon.friends.share_failed": "世界を共有できませんでした: %s",
"horizon.friends.finding_route": "友達があなたに連絡する方法を調べています…",
"horizon.osk.shift": "シフト",
"horizon.osk.space": "宇宙",
"horizon.osk.delete": "削除",
@@ -462,6 +462,23 @@
"horizon.splitscreen.profiles.offline_note": "ოფლაინ პროფილები ეკუთვნის ამ შემთხვევას",
"horizon.splitscreen.profiles.move": "იმოძრავეთ იქ, სადაც თამაშობთ",
"horizon.splitscreen.profiles.move_place": "გადაიტანეთ სადაც თამაშობთ: %s",
"horizon.friends.title": "ითამაშეთ მეგობრებთან ერთად",
"horizon.friends.hint": "მეგობრებმა ჩასვით კოდი სათაურის ეკრანის მეგობრების ღილაკის შემდეგ, პირდაპირი კავშირში ან გამშვების Play გვერდზე.",
"horizon.friends.copied": "კოპირებულია",
"horizon.friends.copy_code": "დააკოპირეთ კოდი",
"horizon.friends.stop_sharing": "შეწყვიტე გაზიარება",
"horizon.friends.none_yet": "აქ მეგობრები ჯერ არ არის.",
"horizon.friends.here_now": "აქ არის ახლა: %s",
"horizon.friends.share_intro": "გააზიარეთ ეს სამყარო მოწვევის კოდის მიღმა: ის იხსნება LAN-ზე და ინტერნეტში მყოფი მეგობრები უერთდებიან კოდით. არც ერთი ჩვენი სერვერი არ არის ჩართული.",
"horizon.friends.start_sharing": "დაიწყეთ გაზიარება",
"horizon.friends.troubleshooting": "პრობლემების აღმოფხვრა...",
"horizon.friends.stopped": "შეწყვიტა მოწვევის კოდის გაზიარება.",
"horizon.friends.short_code_changed": "ვიღაც ცდილობდა არასწორ მოკლე კოდს, ამიტომ ის შეიცვალა.",
"horizon.friends.wrong_code": "ვიღაცამ არასწორი კოდი სცადა.",
"horizon.friends.relay_stopped": "ძალიან ბევრი არასწორი მოკლე კოდი, ამიტომ რელე გამორთულია, სანამ ხელახლა არ გააზიარებთ. მეგობრებს მაინც შეუძლიათ შეერთება სრული კოდით.",
"horizon.friends.code_ready": "თქვენი მოწვევის კოდი მზად არის: თამაშის მენიუ, თამაში მეგობრებთან ერთად. დააკოპირეთ და გაუგზავნეთ თქვენს მეგობრებს.",
"horizon.friends.share_failed": "ვერ ვიზიარებ სამყაროს: %s",
"horizon.friends.finding_route": "იპოვნეთ როგორ დაგიკავშირდნენ მეგობრები…",
"horizon.osk.shift": "ცვლა",
"horizon.osk.space": "სივრცე",
"horizon.osk.delete": "წაშლა",
@@ -462,6 +462,23 @@
"horizon.splitscreen.profiles.offline_note": "Офлайн профильдер осы данаға жатады",
"horizon.splitscreen.profiles.move": "Ойнайтын жерге көшіңіз",
"horizon.splitscreen.profiles.move_place": "Ойнайтын жерге көшіңіз: %s",
"horizon.friends.title": "Достармен ойнау",
"horizon.friends.hint": "Достар кодты тақырып экранындағы \"Достар\" түймесінен кейін, \"Тікелей қосылым\" бөліміне немесе іске қосу құралының \"Ойнату\" бетіне қояды.",
"horizon.friends.copied": "Көшірілген",
"horizon.friends.copy_code": "Кодты көшіру",
"horizon.friends.stop_sharing": "Бөлісуді тоқтату",
"horizon.friends.none_yet": "Бұл жерде әлі достар жоқ.",
"horizon.friends.here_now": "Мұнда қазір: %s",
"horizon.friends.share_intro": "Шақыру кодының артында осы әлемді бөлісіңіз: ол LAN желісіне ашылады және интернеттегі достар кодпен қосылады. Біздің серверіміз қатыспайды.",
"horizon.friends.start_sharing": "Бөлісуді бастау",
"horizon.friends.troubleshooting": "Ақаулықтарды жою...",
"horizon.friends.stopped": "Шақыру кодын бөлісуді тоқтатты.",
"horizon.friends.short_code_changed": "Біреу қате қысқа кодты қолданып көрді, сондықтан ол өзгерді.",
"horizon.friends.wrong_code": "Біреу қате кодты қолданып көрді.",
"horizon.friends.relay_stopped": "Қате қысқа кодтар тым көп болды, сондықтан сіз қайта бөліскенше реле өшірулі. Достар толық кодпен әлі де қосыла алады.",
"horizon.friends.code_ready": "Шақыру коды дайын: Ойын мәзірі, Достармен ойнау. Оны көшіріп, достарыңызға жіберіңіз.",
"horizon.friends.share_failed": "Әлемді бөлісу мүмкін болмады: %s",
"horizon.friends.finding_route": "Достар сізге қалай хабарласа алатынын анықтау...",
"horizon.osk.shift": "Shift",
"horizon.osk.space": "Ғарыш",
"horizon.osk.delete": "Жою",
@@ -462,6 +462,23 @@
"horizon.splitscreen.profiles.offline_note": "ಆಫ್‌ಲೈನ್ ಪ್ರೊಫೈಲ್‌ಗಳು ಈ ನಿದರ್ಶನಕ್ಕೆ ಸೇರಿವೆ",
"horizon.splitscreen.profiles.move": "ನೀವು ಆಡುವ ಸ್ಥಳಕ್ಕೆ ಸರಿಸಿ",
"horizon.splitscreen.profiles.move_place": "ನೀವು ಆಡುವ ಸ್ಥಳಕ್ಕೆ ಸರಿಸಿ: %s",
"horizon.friends.title": "ಸ್ನೇಹಿತರೊಂದಿಗೆ ಆಟವಾಡಿ",
"horizon.friends.hint": "ಶೀರ್ಷಿಕೆ ಪರದೆಯ ಸ್ನೇಹಿತರ ಬಟನ್ ನಂತರ, ನೇರ ಸಂಪರ್ಕದಲ್ಲಿ ಅಥವಾ ಲಾಂಚರ್‌ನ ಪ್ಲೇ ಪುಟದಲ್ಲಿ ಸ್ನೇಹಿತರು ಕೋಡ್ ಅನ್ನು ಅಂಟಿಸಿ.",
"horizon.friends.copied": "ನಕಲು ಮಾಡಲಾಗಿದೆ",
"horizon.friends.copy_code": "ಕೋಡ್ ನಕಲಿಸಿ",
"horizon.friends.stop_sharing": "ಹಂಚಿಕೊಳ್ಳುವುದನ್ನು ನಿಲ್ಲಿಸಿ",
"horizon.friends.none_yet": "ಇಲ್ಲಿ ಇನ್ನೂ ಸ್ನೇಹಿತರಿಲ್ಲ.",
"horizon.friends.here_now": "ಇಲ್ಲಿ ಈಗ: %s",
"horizon.friends.share_intro": "ಆಹ್ವಾನ ಕೋಡ್‌ನ ಹಿಂದೆ ಈ ಜಗತ್ತನ್ನು ಹಂಚಿಕೊಳ್ಳಿ: ಇದು LAN ಗೆ ತೆರೆಯುತ್ತದೆ ಮತ್ತು ಇಂಟರ್ನೆಟ್‌ನಲ್ಲಿರುವ ಸ್ನೇಹಿತರು ಕೋಡ್‌ನೊಂದಿಗೆ ಸೇರಿಕೊಳ್ಳುತ್ತಾರೆ. ನಮ್ಮ ಯಾವುದೇ ಸರ್ವರ್ ಭಾಗಿಯಾಗಿಲ್ಲ.",
"horizon.friends.start_sharing": "ಹಂಚಿಕೆಯನ್ನು ಪ್ರಾರಂಭಿಸಿ",
"horizon.friends.troubleshooting": "ದೋಷನಿವಾರಣೆ...",
"horizon.friends.stopped": "ಆಹ್ವಾನ ಕೋಡ್ ಹಂಚಿಕೊಳ್ಳುವುದನ್ನು ನಿಲ್ಲಿಸಲಾಗಿದೆ.",
"horizon.friends.short_code_changed": "ಯಾರೋ ತಪ್ಪು ಶಾರ್ಟ್ ಕೋಡ್ ಅನ್ನು ಪ್ರಯತ್ನಿಸುತ್ತಲೇ ಇದ್ದಾರೆ, ಆದ್ದರಿಂದ ಅದು ಬದಲಾಗಿದೆ.",
"horizon.friends.wrong_code": "ಯಾರೋ ತಪ್ಪು ಕೋಡ್ ಅನ್ನು ಪ್ರಯತ್ನಿಸಿದ್ದಾರೆ.",
"horizon.friends.relay_stopped": "ತುಂಬಾ ತಪ್ಪು ಶಾರ್ಟ್ ಕೋಡ್‌ಗಳು, ಆದ್ದರಿಂದ ನೀವು ಮತ್ತೆ ಹಂಚಿಕೊಳ್ಳುವವರೆಗೆ ರಿಲೇ ಆಫ್ ಆಗಿದೆ. ಸ್ನೇಹಿತರು ಪೂರ್ಣ ಕೋಡ್‌ನಿಂದ ಇನ್ನೂ ಸೇರಬಹುದು.",
"horizon.friends.code_ready": "ನಿಮ್ಮ ಆಹ್ವಾನ ಕೋಡ್ ಸಿದ್ಧವಾಗಿದೆ: ಗೇಮ್ ಮೆನು, ಸ್ನೇಹಿತರೊಂದಿಗೆ ಆಟವಾಡಿ. ಅದನ್ನು ನಕಲಿಸಿ ಮತ್ತು ನಿಮ್ಮ ಸ್ನೇಹಿತರಿಗೆ ಕಳುಹಿಸಿ.",
"horizon.friends.share_failed": "ಜಗತ್ತನ್ನು ಹಂಚಿಕೊಳ್ಳಲು ಸಾಧ್ಯವಾಗಲಿಲ್ಲ: %s",
"horizon.friends.finding_route": "ಸ್ನೇಹಿತರು ನಿಮ್ಮನ್ನು ಹೇಗೆ ತಲುಪಬಹುದು ಎಂಬುದನ್ನು ಹುಡುಕಲಾಗುತ್ತಿದೆ...",
"horizon.osk.shift": "ಶಿಫ್ಟ್",
"horizon.osk.space": "ಬಾಹ್ಯಾಕಾಶ",
"horizon.osk.delete": "ಅಳಿಸಿ",
@@ -462,6 +462,23 @@
"horizon.splitscreen.profiles.offline_note": "오프라인 프로필은 이 인스턴스에 속합니다.",
"horizon.splitscreen.profiles.move": "플레이 위치 이동",
"horizon.splitscreen.profiles.move_place": "플레이 위치 이동: %s",
"horizon.friends.title": "친구와 함께 플레이",
"horizon.friends.hint": "친구가 타이틀 화면의 친구 버튼, 직접 연결, 또는 런처의 플레이 페이지에서 코드를 입력합니다.",
"horizon.friends.copied": "복사됨",
"horizon.friends.copy_code": "코드 복사",
"horizon.friends.stop_sharing": "공유 중지",
"horizon.friends.none_yet": "아직 친구가 없습니다.",
"horizon.friends.here_now": "현재 접속 중: %s",
"horizon.friends.share_intro": "초대 코드를 통해 이 월드를 공유하세요: LAN으로 개방되며 인터넷상의 친구들이 코드로 참여할 수 있습니다. 당사의 서버는 개입하지 않습니다.",
"horizon.friends.start_sharing": "공유 시작",
"horizon.friends.troubleshooting": "문제 해결...",
"horizon.friends.stopped": "초대 코드 공유가 중지되었습니다.",
"horizon.friends.short_code_changed": "누군가 잘못된 짧은 코드를 계속 시도하여 코드가 변경되었습니다.",
"horizon.friends.wrong_code": "누군가 잘못된 코드를 입력했습니다.",
"horizon.friends.relay_stopped": "잘못된 짧은 코드가 너무 많아 다시 공유할 때까지 릴레이가 꺼집니다. 친구는 전체 코드로는 여전히 참가할 수 있습니다.",
"horizon.friends.code_ready": "초대 코드가 준비되었습니다: 게임 메뉴 - 친구와 함께 플레이. 코드를 복사하여 친구에게 보내세요.",
"horizon.friends.share_failed": "월드를 공유할 수 없습니다: %s",
"horizon.friends.finding_route": "친구가 접속할 수 있는 경로를 찾는 중...",
"horizon.osk.shift": "Shift",
"horizon.osk.space": "스페이스바",
"horizon.osk.delete": "삭제",
@@ -462,6 +462,23 @@
"horizon.splitscreen.profiles.offline_note": "Оффлайн профилдери ушул инстанцияга таандык",
"horizon.splitscreen.profiles.move": "Кайда ойносоңуз, ошол жерге жылыңыз",
"horizon.splitscreen.profiles.move_place": "Ойногон жериңизди жылдырыңыз: %s",
"horizon.friends.title": "Достор менен ойно",
"horizon.friends.hint": "Достор кодду аталыш экранындагы \"Достор\" баскычынан кийин, Түз байланышта же ишке киргизгичтин Play бетине чапташат.",
"horizon.friends.copied": "Көчүрүлгөн",
"horizon.friends.copy_code": "Кодду көчүрүү",
"horizon.friends.stop_sharing": "Бөлүшүүнү токтотуу",
"horizon.friends.none_yet": "Бул жерде азырынча достор жок.",
"horizon.friends.here_now": "Бул жерде: %s",
"horizon.friends.share_intro": "Чакыруу кодунун артында бул дүйнөнү бөлүшүңүз: ал LANга ачылат жана интернеттеги достор код менен кошулат. Биздин эч кандай сервер катышпайт.",
"horizon.friends.start_sharing": "Бөлүшүүнү баштоо",
"horizon.friends.troubleshooting": "Көйгөйлөр аныкталууда...",
"horizon.friends.stopped": "Чакыруу кодун бөлүшүүнү токтотту.",
"horizon.friends.short_code_changed": "Кимдир бирөө туура эмес кыска кодду аракет кыла бергендиктен, ал өзгөрдү.",
"horizon.friends.wrong_code": "Кимдир бирөө туура эмес кодду аракет кылды.",
"horizon.friends.relay_stopped": "Туура эмес кыска коддор өтө көп болгондуктан, кайра бөлүшпөйүнчө реле өчүк. Достар толук код менен кошула алышат.",
"horizon.friends.code_ready": "Чакыруу коду даяр: Оюн менюсу, Достор менен ойноо. Аны көчүрүп, досторуңузга жөнөтүңүз.",
"horizon.friends.share_failed": "Дүйнөнү бөлүшө алган жок: %s",
"horizon.friends.finding_route": "Достор сиз менен кантип байланыша аларын издөө…",
"horizon.osk.shift": "Shift",
"horizon.osk.space": "Космос",
"horizon.osk.delete": "Жок кылуу",
@@ -462,6 +462,23 @@
"horizon.splitscreen.profiles.offline_note": "Online profiles pertinent ad hoc exempli gratia",
"horizon.splitscreen.profiles.move": "Movere quo ludere",
"horizon.splitscreen.profiles.move_place": "Movere quo ludo:%s",
"horizon.friends.title": "Ludere cum amicis",
"horizon.friends.hint": "Amici crustulum codicem post titulum screen scriptorum amici conjunctionem, in Direct Connection, vel in pagina Launculi Play.",
"horizon.friends.copied": "Exscriptum",
"horizon.friends.copy_code": "Exemplar Code",
"horizon.friends.stop_sharing": "Socius subsisto",
"horizon.friends.none_yet": "Nondum hic amici.",
"horizon.friends.here_now": "Hic nunc: %s",
"horizon.friends.share_intro": "Share hunc mundum post codicem invitare: aperit LAN, et amicos in interrete cum codice coniunge. Nullus cultor noster involvitur.",
"horizon.friends.start_sharing": "Satus Socius",
"horizon.friends.troubleshooting": "Fermentum...",
"horizon.friends.stopped": "Constitit invitare codicem communicantes.",
"horizon.friends.short_code_changed": "Perperam aliquis brevem codicem tentabat, sic mutavit.",
"horizon.friends.wrong_code": "Conatus codice aliquis iniuriam.",
"horizon.friends.relay_stopped": "Nimis multi codices breves falsi: relay exstinctum donec iterum communices. Amici tamen codice pleno iungere possunt.",
"horizon.friends.code_ready": "Codicem tuum invitare paratum est: Ludus Menu, lude cum amicis. Effingo eam et mitte amicis tuis.",
"horizon.friends.share_failed": "Non potuit communicare mundum:%s",
"horizon.friends.finding_route": "Invenire quomodo amici ad vos pervenire possunt…",
"horizon.osk.shift": "Shift",
"horizon.osk.space": "Spatium",
"horizon.osk.delete": "Delere",
@@ -462,6 +462,23 @@
"horizon.splitscreen.profiles.offline_note": "Offline Profiler gehéieren zu dëser Instanz",
"horizon.splitscreen.profiles.move": "Beweegt wou Dir spillt",
"horizon.splitscreen.profiles.move_place": "Beweegt wou Dir spillt: %s",
"horizon.friends.title": "Spill mat Frënn",
"horizon.friends.hint": "Frënn Paste de Code nom Titelbildschierm Frënn Knäppchen, an Direct Connection, oder op der Play Säit vum Starter.",
"horizon.friends.copied": "Kopéiert",
"horizon.friends.copy_code": "Kopie Code",
"horizon.friends.stop_sharing": "Stop deelen",
"horizon.friends.none_yet": "Hei nach keng Frënn.",
"horizon.friends.here_now": "Hei elo: %s",
"horizon.friends.share_intro": "Deelt dës Welt hannert engem Invitatiounscode: et mécht op LAN op, a Frënn um Internet si mat dem Code verbonnen. Kee Server vun eis ass involvéiert.",
"horizon.friends.start_sharing": "Start Deelen",
"horizon.friends.troubleshooting": "Feelerbehandlung...",
"horizon.friends.stopped": "Huet opgehalen den Invitatiounscode ze deelen.",
"horizon.friends.short_code_changed": "Een huet ëmmer e falsche Kuerzcode probéiert, also huet et geännert.",
"horizon.friends.wrong_code": "Een huet e falsche Code probéiert.",
"horizon.friends.relay_stopped": "Ze vill falsch Kuerzcoden, dofir ass de Relais aus, bis Dir nees deelt. Frënn kënnen nach ëmmer mam vollen Code bäitrieden.",
"horizon.friends.code_ready": "Ären Invitatiounscode ass prett: Spillmenü, Spill mat Frënn. Kopéiert et a schéckt et un Är Frënn.",
"horizon.friends.share_failed": "Konnt d'Welt net deelen: %s",
"horizon.friends.finding_route": "Fannt wéi Frënn Iech erreechen ...",
"horizon.osk.shift": "Verréckelung",
"horizon.osk.space": "Raum",
"horizon.osk.delete": "Läschen",
@@ -462,6 +462,23 @@
"horizon.splitscreen.profiles.offline_note": "Offline profiele behure tot dit exemplaar",
"horizon.splitscreen.profiles.move": "Verplaots boe geer speelt",
"horizon.splitscreen.profiles.move_place": "Verplaots boe geer speelt: %s",
"horizon.friends.title": "Speel mit vrun",
"horizon.friends.hint": "Vrun plak de code nao de Vriend knop op ‘t titelsjerm, in Directe Verbinding of op de Afspeelpagina vaan de launcher.",
"horizon.friends.copied": "Gekopieerd",
"horizon.friends.copy_code": "Kopiecode",
"horizon.friends.stop_sharing": "Stop mit deile",
"horizon.friends.none_yet": "Heej nog gein vrun.",
"horizon.friends.here_now": "Hei noe: %s",
"horizon.friends.share_intro": "Deil deze wereld achter ‘n oetnodigingscode: ‘t geit open veur LAN, en vrun op ‘t internet gaon mit de code. Gein server vaan ós is betrokke.",
"horizon.friends.start_sharing": "Begin mit deile",
"horizon.friends.troubleshooting": "Probleemoplossinge...",
"horizon.friends.stopped": "Is gestop mit ‘t deile vaan de oetnodigingscode.",
"horizon.friends.short_code_changed": "Iemes bleef ‘n verkierde korte code probere, dus ‘t veranderde.",
"horizon.friends.wrong_code": "Iemes heet ‘n verkeerde code geprobeerd.",
"horizon.friends.relay_stopped": "Te väöl verkierde korte codes, dus de relais steit oet totdat se weer deils. Vrun kinne nog ummer mit de volledige code binnekómme.",
"horizon.friends.code_ready": "Uw oetnodigingscode is klaor: Spelmenu, Speel mit vrun. Kopieer ‘t en sjik ‘t nao dien vrun.",
"horizon.friends.share_failed": "Kon de wereld neet deile: %s",
"horizon.friends.finding_route": "Zoe wie vrun dich kinne bereike…",
"horizon.osk.shift": "Verschuiving",
"horizon.osk.space": "Ruimte",
"horizon.osk.delete": "Wisse",
@@ -462,6 +462,23 @@
"horizon.splitscreen.profiles.offline_note": "I profil fœura linea fan part de chesta istanza",
"horizon.splitscreen.profiles.move": "Spusta indué giœghet",
"horizon.splitscreen.profiles.move_place": "Spusta indué giœghet: %s",
"horizon.friends.title": "Giœgar cunt i amì",
"horizon.friends.hint": "I amis incollan el codes dopu el buttun Amis de la scherma del titul, en Cunnession diretta o sü la pagina Play del lanciador.",
"horizon.friends.copied": "Copià",
"horizon.friends.copy_code": "Codèss de copia",
"horizon.friends.stop_sharing": "Ferma de condivider",
"horizon.friends.none_yet": "Ancamò nissun amis chi.",
"horizon.friends.here_now": "Qui adess: %s",
"horizon.friends.share_intro": "Condividi chestu mund deré a un codes de invito: se derva a la LAN e i amis sü Internet se unisen cunt el codes. Nissun noster server l’è coinvolt.",
"horizon.friends.start_sharing": "Cumincià a condivider",
"horizon.friends.troubleshooting": "Risoluziun di prublem...",
"horizon.friends.stopped": "Fermà de condivider el codèss de invito.",
"horizon.friends.short_code_changed": "Quaivun g’ha continuà a pruvar un codes curt sbajaa, inscì l’è cambià.",
"horizon.friends.wrong_code": "Quaivun g’ha pruvà un codes sbajaa.",
"horizon.friends.relay_stopped": "Trope codes curt sbajaa, donca el relè l'è spent fin quand te condividet ancamò. I amis pœden entrà ancamò cunt el codes cumplet.",
"horizon.friends.code_ready": "El tò codes de invito l’è pront: Menu del giœugh, Giœugh cunt i amì. Copia-la e manda-la ai tò amis.",
"horizon.friends.share_failed": "Pudeva minga cundivider el mund: %s",
"horizon.friends.finding_route": "Truvà cuma i amis pœden rivà a ti...",
"horizon.osk.shift": "Maiusc",
"horizon.osk.space": "Spazi",
"horizon.osk.delete": "Eliminar",
@@ -462,6 +462,23 @@
"horizon.splitscreen.profiles.offline_note": "ໂປຣໄຟລ໌ອອບລາຍເປັນຂອງຕົວຢ່າງນີ້",
"horizon.splitscreen.profiles.move": "ຍ້າຍບ່ອນທີ່ທ່ານຫຼິ້ນ",
"horizon.splitscreen.profiles.move_place": "ຍ້າຍບ່ອນທີ່ທ່ານຫຼິ້ນ: %s",
"horizon.friends.title": "ຫຼິ້ນກັບຫມູ່ເພື່ອນ",
"horizon.friends.hint": "ໝູ່ວາງລະຫັດຫຼັງຈາກປຸ່ມໝູ່ຂອງໜ້າຈໍຫົວຂໍ້, ໃນການເຊື່ອມຕໍ່ໂດຍກົງ, ຫຼືໃນໜ້າຫຼິ້ນຂອງຕົວເປີດໃຊ້.",
"horizon.friends.copied": "ສຳເນົາແລ້ວ",
"horizon.friends.copy_code": "ສຳເນົາລະຫັດ",
"horizon.friends.stop_sharing": "ຢຸດການແບ່ງປັນ",
"horizon.friends.none_yet": "ບໍ່ມີໝູ່ຢູ່ບ່ອນນີ້ເທື່ອ.",
"horizon.friends.here_now": "ດຽວນີ້: %s",
"horizon.friends.share_intro": "ແບ່ງປັນໂລກນີ້ຢູ່ເບື້ອງຫຼັງລະຫັດເຊີນ: ມັນເປີດຢູ່ໃນ LAN, ແລະຫມູ່ເພື່ອນໃນອິນເຕີເນັດເຂົ້າຮ່ວມກັບລະຫັດ. ບໍ່ມີເຄື່ອງແມ່ຂ່າຍຂອງພວກເຮົາມີສ່ວນຮ່ວມ.",
"horizon.friends.start_sharing": "ເລີ່ມການແບ່ງປັນ",
"horizon.friends.troubleshooting": "ການແກ້ໄຂບັນຫາ...",
"horizon.friends.stopped": "ຢຸດການແບ່ງປັນລະຫັດເຊີນແລ້ວ.",
"horizon.friends.short_code_changed": "ມີຄົນພະຍາຍາມໃຊ້ລະຫັດສັ້ນຜິດ, ສະນັ້ນມັນຈຶ່ງປ່ຽນໄປ.",
"horizon.friends.wrong_code": "ມີຄົນພະຍາຍາມລະຫັດຜິດ.",
"horizon.friends.relay_stopped": "ລະຫັດສັ້ນຜິດຫຼາຍເກີນໄປ, ດັ່ງນັ້ນ relay ຈຶ່ງປິດຈົນກວ່າທ່ານຈະແບ່ງປັນອີກຄັ້ງ. ໝູ່ເພື່ອນຍັງສາມາດເຂົ້າຮ່ວມດ້ວຍລະຫັດເຕັມໄດ້.",
"horizon.friends.code_ready": "ລະຫັດເຊີນຂອງທ່ານພ້ອມແລ້ວ: ເມນູເກມ, ຫຼິ້ນກັບໝູ່. ຄັດລອກມັນແລະສົ່ງໃຫ້ຫມູ່ເພື່ອນຂອງທ່ານ.",
"horizon.friends.share_failed": "ບໍ່ສາມາດແບ່ງປັນໂລກໄດ້: %s",
"horizon.friends.finding_route": "ຊອກຫາວິທີທີ່ໝູ່ສາມາດເຂົ້າຫາທ່ານ...",
"horizon.osk.shift": "ເລື່ອນ",
"horizon.osk.space": "ຊ່ອງ",
"horizon.osk.delete": "ລຶບ",
@@ -462,6 +462,23 @@
"horizon.splitscreen.profiles.offline_note": "Šiam atvejui priklauso profiliai neprisijungus",
"horizon.splitscreen.profiles.move": "Perkelkite ten, kur žaidžiate",
"horizon.splitscreen.profiles.move_place": "Perkelkite ten, kur žaidžiate: %s",
"horizon.friends.title": "Žaisk su draugais",
"horizon.friends.hint": "Draugai įklijuoja kodą po pavadinimo ekrano mygtuko „Draugai“, tiesioginiame prisijungime arba paleidimo priemonės „Play“ puslapyje.",
"horizon.friends.copied": "Nukopijuota",
"horizon.friends.copy_code": "Kopijuoti kodą",
"horizon.friends.stop_sharing": "Sustabdyti bendrinimą",
"horizon.friends.none_yet": "Draugų čia dar nėra.",
"horizon.friends.here_now": "Čia dabar: %s",
"horizon.friends.share_intro": "Bendrinkite šį pasaulį naudodami kvietimo kodą: jis atidaromas LAN, o draugai internete prisijungia naudodami kodą. Joks mūsų serveris nedalyvauja.",
"horizon.friends.start_sharing": "Pradėti bendrinti",
"horizon.friends.troubleshooting": "Trikčių šalinimas...",
"horizon.friends.stopped": "Nustojo bendrinti kvietimo kodą.",
"horizon.friends.short_code_changed": "Kažkas vis bandė neteisingą trumpąjį kodą, todėl jis pasikeitė.",
"horizon.friends.wrong_code": "Kažkas bandė neteisingą kodą.",
"horizon.friends.relay_stopped": "Per daug neteisingų trumpųjų kodų, todėl relė išjungta, kol vėl bendrinsite. Draugai vis tiek gali prisijungti su visu kodu.",
"horizon.friends.code_ready": "Jūsų kvietimo kodas paruoštas: žaidimų meniu, žaiskite su draugais. Nukopijuokite ir nusiųskite draugams.",
"horizon.friends.share_failed": "Nepavyko pasidalinti pasauliu: %s",
"horizon.friends.finding_route": "Sužinokite, kaip draugai gali su jumis susisiekti…",
"horizon.osk.shift": "Shift",
"horizon.osk.space": "Erdvė",
"horizon.osk.delete": "Ištrinti",
@@ -462,6 +462,23 @@
"horizon.splitscreen.profiles.offline_note": "Šai instancei pieder bezsaistes profili",
"horizon.splitscreen.profiles.move": "Pārvietojieties, kur spēlējat",
"horizon.splitscreen.profiles.move_place": "Pārvietojieties, kur spēlējat: %s",
"horizon.friends.title": "Spēlējiet ar draugiem",
"horizon.friends.hint": "Draugi ielīmē kodu aiz virsraksta ekrāna pogas Draugi, tiešajā savienojumā vai palaišanas programmas Play lapā.",
"horizon.friends.copied": "Kopēts",
"horizon.friends.copy_code": "Kopēt kodu",
"horizon.friends.stop_sharing": "Pārtraukt kopīgošanu",
"horizon.friends.none_yet": "Šeit vēl nav draugu.",
"horizon.friends.here_now": "Šeit tagad: %s",
"horizon.friends.share_intro": "Kopīgojiet šo pasauli aiz uzaicinājuma koda: tā tiek atvērta LAN, un draugi internetā pievienojas ar kodu. Neviens mūsu serveris nav iesaistīts.",
"horizon.friends.start_sharing": "Sāciet kopīgot",
"horizon.friends.troubleshooting": "Problēmu novēršana...",
"horizon.friends.stopped": "Uzaicinājuma koda kopīgošana tika pārtraukta.",
"horizon.friends.short_code_changed": "Kāds turpināja mēģināt ievadīt nepareizu īso kodu, tāpēc tas mainījās.",
"horizon.friends.wrong_code": "Kāds mēģināja ievadīt nepareizu kodu.",
"horizon.friends.relay_stopped": "Pārāk daudz nepareizu īso kodu, tāpēc relejs ir izslēgts, līdz kopīgojat vēlreiz. Draugi joprojām var pievienoties ar pilnu kodu.",
"horizon.friends.code_ready": "Jūsu ielūguma kods ir gatavs: Spēļu izvēlne, Spēlējiet ar draugiem. Kopējiet to un nosūtiet draugiem.",
"horizon.friends.share_failed": "Nevarēja kopīgot pasauli: %s",
"horizon.friends.finding_route": "Noskaidro, kā draugi var ar jums sazināties…",
"horizon.osk.shift": "Shift",
"horizon.osk.space": "Kosmoss",
"horizon.osk.delete": "Dzēst",
@@ -462,6 +462,23 @@
"horizon.splitscreen.profiles.offline_note": "Офлајн профилите припаѓаат на овој пример",
"horizon.splitscreen.profiles.move": "Движете се каде што играте",
"horizon.splitscreen.profiles.move_place": "Преместете се каде што играте: %s",
"horizon.friends.title": "Играјте со пријателите",
"horizon.friends.hint": "Пријателите го залепуваат кодот по копчето Пријатели на насловниот екран, во Директна врска или на страницата Play на стартерот.",
"horizon.friends.copied": "Копирано",
"horizon.friends.copy_code": "Копирај код",
"horizon.friends.stop_sharing": "Стоп за споделување",
"horizon.friends.none_yet": "Сè уште нема пријатели овде.",
"horizon.friends.here_now": "Еве сега: %s",
"horizon.friends.share_intro": "Споделете го овој свет зад кодот за покана: се отвора на LAN и пријателите на интернет се придружуваат со кодот. Ниту еден наш сервер не е вклучен.",
"horizon.friends.start_sharing": "Започнете со споделување",
"horizon.friends.troubleshooting": "Решавање проблеми...",
"horizon.friends.stopped": "Престана да го споделува кодот за покана.",
"horizon.friends.short_code_changed": "Некој постојано пробуваше погрешен краток код, па се смени.",
"horizon.friends.wrong_code": "Некој пробал погрешен код.",
"horizon.friends.relay_stopped": "Премногу погрешни кратки кодови, па релето е исклучено додека повторно не споделите. Пријателите сепак можат да се приклучат со целосниот код.",
"horizon.friends.code_ready": "Вашиот код за покана е подготвен: Мени за игра, Играјте со пријателите. Копирајте го и испратете го на вашите пријатели.",
"horizon.friends.share_failed": "Не можев да го споделам светот: %s",
"horizon.friends.finding_route": "Откривате како пријателите можат да дојдат до вас…",
"horizon.osk.shift": "Смена",
"horizon.osk.space": "Простор",
"horizon.osk.delete": "Избриши",
@@ -462,6 +462,23 @@
"horizon.splitscreen.profiles.offline_note": "Офлайн профайл нь энэ жишээнд хамаарна",
"horizon.splitscreen.profiles.move": "Тоглож буй газраа нүү",
"horizon.splitscreen.profiles.move_place": "Тоглож буй газраа шилжүүлээрэй: %s",
"horizon.friends.title": "Найзуудтайгаа тогло",
"horizon.friends.hint": "Найзууд кодыг гарчгийн дэлгэцийн \"Найзууд\" товчны ард, \"Шууд холболт\" хэсэгт эсвэл эхлүүлэгчийн Play хуудсанд оруулна.",
"horizon.friends.copied": "Хуулсан",
"horizon.friends.copy_code": "Код хуулах",
"horizon.friends.stop_sharing": "Хуваалцахаа зогсоо",
"horizon.friends.none_yet": "Одоохондоо энд найз алга.",
"horizon.friends.here_now": "Одоо энд: %s",
"horizon.friends.share_intro": "Урилгын кодын ард энэ ертөнцийг хуваалцаарай: энэ нь LAN-д нээгдэж, интернетэд байгаа найзууд кодоор нэгдэнэ. Манай сервер оролцдоггүй.",
"horizon.friends.start_sharing": "Хуваалцаж эхлэх",
"horizon.friends.troubleshooting": "Алдааг олж засварлаж байна...",
"horizon.friends.stopped": "Урилгын кодыг хуваалцахаа больсон.",
"horizon.friends.short_code_changed": "Хэн нэгэн буруу богино код оролдсоор байгаад өөрчлөгдсөн.",
"horizon.friends.wrong_code": "Хэн нэгэн буруу код оролдсон байна.",
"horizon.friends.relay_stopped": "Хэт олон буруу богино код оруулсан тул дахин хуваалцах хүртэл реле унтарсан. Найзууд бүтэн кодоор орж болно.",
"horizon.friends.code_ready": "Таны урилгын код бэлэн боллоо: Тоглоомын цэс, Найзуудтайгаа тогло. Үүнийг хуулж аваад найзууддаа илгээнэ үү.",
"horizon.friends.share_failed": "Дэлхийг хуваалцаж чадсангүй: %s",
"horizon.friends.finding_route": "Найзууд тантай хэрхэн холбогдож болохыг хайж байна...",
"horizon.osk.shift": "Шилжилт",
"horizon.osk.space": "Орон зай",
"horizon.osk.delete": "Устгах",
@@ -462,6 +462,23 @@
"horizon.splitscreen.profiles.offline_note": "Profil luar talian tergolong dalam contoh ini",
"horizon.splitscreen.profiles.move": "Bergerak ke tempat anda bermain",
"horizon.splitscreen.profiles.move_place": "Bergerak ke tempat anda bermain: %s",
"horizon.friends.title": "Bermain dengan Kawan",
"horizon.friends.hint": "Rakan tampal kod selepas butang Rakan skrin tajuk, dalam Sambungan Terus atau pada halaman Main pelancar.",
"horizon.friends.copied": "disalin",
"horizon.friends.copy_code": "Salin Kod",
"horizon.friends.stop_sharing": "Berhenti Berkongsi",
"horizon.friends.none_yet": "Belum ada kawan di sini.",
"horizon.friends.here_now": "Di sini sekarang: %s",
"horizon.friends.share_intro": "Kongsi dunia ini di sebalik kod jemputan: ia dibuka kepada LAN, dan rakan di Internet menyertai kod tersebut. Tiada pelayan kami terlibat.",
"horizon.friends.start_sharing": "Mula Berkongsi",
"horizon.friends.troubleshooting": "Menyelesaikan masalah...",
"horizon.friends.stopped": "Berhenti berkongsi kod jemputan.",
"horizon.friends.short_code_changed": "Seseorang terus mencuba kod pendek yang salah, jadi ia berubah.",
"horizon.friends.wrong_code": "Seseorang mencuba kod yang salah.",
"horizon.friends.relay_stopped": "Terlalu banyak kod pendek yang salah, jadi geganti dimatikan sehingga anda berkongsi semula. Rakan masih boleh menyertai dengan kod penuh.",
"horizon.friends.code_ready": "Kod jemputan anda sudah sedia: Menu Permainan, Main dengan Rakan. Salin dan hantar kepada rakan anda.",
"horizon.friends.share_failed": "Tidak dapat berkongsi dunia: %s",
"horizon.friends.finding_route": "Mencari cara rakan boleh menghubungi anda…",
"horizon.osk.shift": "Beralih",
"horizon.osk.space": "Angkasa",
"horizon.osk.delete": "Padam",
@@ -462,6 +462,23 @@
"horizon.splitscreen.profiles.offline_note": "Il-profili offline jappartjenu għal din l-istanza",
"horizon.splitscreen.profiles.move": "Imxi fejn tilgħab",
"horizon.splitscreen.profiles.move_place": "Ċaqlaq fejn tilgħab: %s",
"horizon.friends.title": "Ilgħab mal-Ħbieb",
"horizon.friends.hint": "Ħbieb waħħal il-kodiċi wara l-buttuna Ħbieb tal-iskrin tat-titlu, f'Konnessjoni Diretta, jew fuq il-paġna Play tal-lanċjar.",
"horizon.friends.copied": "Ikkopjati",
"horizon.friends.copy_code": "Kopja tal-Kodiċi",
"horizon.friends.stop_sharing": "Waqqaf il-Qsim",
"horizon.friends.none_yet": "Għadu m'hemmx ħbieb hawn.",
"horizon.friends.here_now": "Hawnhekk issa: %s",
"horizon.friends.share_intro": "Aqsam din id-dinja wara kodiċi tal-istedina: tiftaħ għal LAN, u ħbieb fuq l-internet jingħaqdu mal-kodiċi. L-ebda server tagħna mhu involut.",
"horizon.friends.start_sharing": "Ibda taqsam",
"horizon.friends.troubleshooting": "Issolvi l-problemi...",
"horizon.friends.stopped": "Waqaf taqsam il-kodiċi tal-istedina.",
"horizon.friends.short_code_changed": "Xi ħadd baqa' jipprova kodiċi qasir ħażin, għalhekk inbidel.",
"horizon.friends.wrong_code": "Xi ħadd ipprova kodiċi ħażin.",
"horizon.friends.relay_stopped": "Wisq kodiċi qosra ħżiena, għalhekk ir-relay huwa mitfi sakemm terġa' taqsam. Il-ħbieb xorta jistgħu jingħaqdu bil-kodiċi sħiħ.",
"horizon.friends.code_ready": "Il-kodiċi tal-istedina tiegħek lest: Menu tal-Logħba, Ilgħab mal-Ħbieb. Ikkopjaha u ibgħatha lill-ħbieb tiegħek.",
"horizon.friends.share_failed": "Ma setgħetx naqsam id-dinja: %s",
"horizon.friends.finding_route": "Issib kif il-ħbieb jistgħu jilħquk...",
"horizon.osk.shift": "Shift",
"horizon.osk.space": "L-ispazju",
"horizon.osk.delete": "Ħassar",
@@ -462,6 +462,23 @@
"horizon.splitscreen.profiles.offline_note": "Offline profielen behoren tot deze instantie",
"horizon.splitscreen.profiles.move": "Verplaats waar je speelt",
"horizon.splitscreen.profiles.move_place": "Verplaatsen waar je speelt: %s",
"horizon.friends.title": "Speel met vrienden",
"horizon.friends.hint": "Vrienden plakken de code na de knop Vrienden in het titelscherm, in Directe verbinding of op de Play-pagina van het opstartprogramma.",
"horizon.friends.copied": "Gekopieerd",
"horizon.friends.copy_code": "Kopieer code",
"horizon.friends.stop_sharing": "Stop met delen",
"horizon.friends.none_yet": "Nog geen vrienden hier.",
"horizon.friends.here_now": "Hier nu: %s",
"horizon.friends.share_intro": "Deel deze wereld achter een uitnodigingscode: deze wordt geopend voor LAN en vrienden op internet doen mee met de code. Er is geen server van ons bij betrokken.",
"horizon.friends.start_sharing": "Begin met delen",
"horizon.friends.troubleshooting": "Problemen oplossen...",
"horizon.friends.stopped": "Het delen van de uitnodigingscode is gestopt.",
"horizon.friends.short_code_changed": "Iemand probeerde steeds een verkeerde shortcode, dus het veranderde.",
"horizon.friends.wrong_code": "Iemand heeft een verkeerde code geprobeerd.",
"horizon.friends.relay_stopped": "Te veel verkeerde shortcodes, dus het relais staat uit tot je opnieuw deelt. Vrienden kunnen nog steeds met de volledige code meedoen.",
"horizon.friends.code_ready": "Je uitnodigingscode is klaar: Gamemenu, Spelen met vrienden. Kopieer het en stuur het naar je vrienden.",
"horizon.friends.share_failed": "Kon de wereld niet delen: %s",
"horizon.friends.finding_route": "Ontdek hoe vrienden u kunnen bereiken...",
"horizon.osk.shift": "Verschuiving",
"horizon.osk.space": "Ruimte",
"horizon.osk.delete": "Verwijderen",
@@ -462,6 +462,23 @@
"horizon.splitscreen.profiles.offline_note": "Frakoblede profiler tilhører denne forekomsten",
"horizon.splitscreen.profiles.move": "Flytt dit du spiller",
"horizon.splitscreen.profiles.move_place": "Flytt dit du spiller: %s",
"horizon.friends.title": "Spill med venner",
"horizon.friends.hint": "Venner limer inn koden etter tittelskjermens Venner-knapp, i Direct Connection eller på startprogrammets Play-side.",
"horizon.friends.copied": "Kopiert",
"horizon.friends.copy_code": "Kopier kode",
"horizon.friends.stop_sharing": "Slutt å dele",
"horizon.friends.none_yet": "Ingen venner her ennå.",
"horizon.friends.here_now": "Her nå: %s",
"horizon.friends.share_intro": "Del denne verden bak en invitasjonskode: den åpnes til LAN, og venner på internett blir med med koden. Ingen server av oss er involvert.",
"horizon.friends.start_sharing": "Begynn å dele",
"horizon.friends.troubleshooting": "Feilsøking...",
"horizon.friends.stopped": "Sluttet å dele invitasjonskoden.",
"horizon.friends.short_code_changed": "Noen fortsatte å prøve en feil kort kode, så den endret seg.",
"horizon.friends.wrong_code": "Noen prøvde feil kode.",
"horizon.friends.relay_stopped": "For mange feil korte koder, så reléet er av til du deler på nytt. Venner kan fortsatt bli med med den fulle koden.",
"horizon.friends.code_ready": "Invitasjonskoden din er klar: Spillmeny, Spill med venner. Kopier den og send den til vennene dine.",
"horizon.friends.share_failed": "Kunne ikke dele verden: %s",
"horizon.friends.finding_route": "Finner hvordan venner kan nå deg …",
"horizon.osk.shift": "Skift",
"horizon.osk.space": "Plass",
"horizon.osk.delete": "Slett",
@@ -462,6 +462,23 @@
"horizon.splitscreen.profiles.offline_note": "Los perfils fòra linha apartenon a aquesta instància",
"horizon.splitscreen.profiles.move": "Desplaçatz-vos ont jògatz",
"horizon.splitscreen.profiles.move_place": "Desplaçatz-vos ont jògatz: %s",
"horizon.friends.title": "Jugar amb los amics",
"horizon.friends.hint": "Los amics pegan lo còde après lo boton Amics de l'ecran de títol, dins la connexion dirècta, o sus la pagina de reproduccion del lançaire.",
"horizon.friends.copied": "Copiat",
"horizon.friends.copy_code": "Còde de còpia",
"horizon.friends.stop_sharing": "Arrèsta de partejar",
"horizon.friends.none_yet": "Pas d'amics aicí encara.",
"horizon.friends.here_now": "Aquí ara: %s",
"horizon.friends.share_intro": "Partejatz aquel mond darrièr un còde d'invitacion: se dobrís sus la LAN, e los amics sus internet se jonhon amb lo còde. Cap de servidor nòstre es pas implicat.",
"horizon.friends.start_sharing": "Començatz de partejar",
"horizon.friends.troubleshooting": "Resolucion de problèmas...",
"horizon.friends.stopped": "Arrestat de partejar lo còde d'invitacion.",
"horizon.friends.short_code_changed": "Qualqu'un contunhèt d'ensajar un còde cort incorrècte, alara cambièt.",
"horizon.friends.wrong_code": "Qualqu'un a ensajat un còde incorrècte.",
"horizon.friends.relay_stopped": "Tròp de còdes corts erronèus, doncas lo relais es desactivat fins que partejatz de nòu. Los amics pòdon encara rejónher amb lo còde complet.",
"horizon.friends.code_ready": "Vòstre còde d'invitacion es prèst: Menut de jòc, Jogar amb d'amics. Copiatz-lo e mandatz-lo a vòstres amics.",
"horizon.friends.share_failed": "Poguèt pas partejar lo mond: %s",
"horizon.friends.finding_route": "Trobar cossí los amics pòdon vos contactar...",
"horizon.osk.shift": "Desplaçar",
"horizon.osk.space": "Espaci",
"horizon.osk.delete": "Suprimir",
@@ -300,6 +300,7 @@
"horizon.extras.wheel_cycles_settings": "Kółko zmienia ustawienia",
"horizon.extras.pack_browser": "Przeglądarka paczek zasobów",
"horizon.extras.music_page.tooltip": "Muzyka i dźwięki zyskują stronę Muzyka…: odtwórz dowolną wbudowaną ścieżkę teraz lub wyłącz którąś, by gra przestała ją wybierać. Nic się nie zmienia, dopóki nie wyłączysz ścieżki.",
"horizon.friends.relay_stopped": "Zbyt wiele błędnych krótkich kodów, więc przekaźnik jest wyłączony do ponownego udostępnienia. Znajomi nadal mogą dołączyć pełnym kodem.",
"horizon.extras.pack_browser.tooltip": "Wybór paczek zasobów zyskuje przycisk Dodaj, który przeszukuje Modrinth i instaluje paczkę w folderze paczek. Wyłączone: gra nigdy nie łączy się z Modrinth.",
"horizon.splitscreen.setup.monitor": "Monitor %s",
"horizon.splitscreen.setup.monitor_unknown": "monitor",
@@ -556,6 +557,22 @@
"horizon.splitscreen.profiles.offline_note": "Profile offline należą do tej instancji",
"horizon.splitscreen.profiles.move": "Zmień miejsce gry",
"horizon.splitscreen.profiles.move_place": "Zmień miejsce gry: %s",
"horizon.friends.title": "Graj ze znajomymi",
"horizon.friends.hint": "Znajomi wklejają kod po kliknięciu przycisku Znajomi na ekranie tytułowym, w Połączeniu bezpośrednim lub na stronie Graj w launcherze.",
"horizon.friends.copied": "Skopiowano",
"horizon.friends.copy_code": "Kopiuj kod",
"horizon.friends.stop_sharing": "Przestań udostępniać",
"horizon.friends.none_yet": "Nie ma jeszcze żadnych znajomych.",
"horizon.friends.here_now": "Obecnie: %s",
"horizon.friends.share_intro": "Udostępnij ten świat za pomocą kodu zaproszenia: otwiera się w sieci LAN, a znajomi przez internet dołączają za pomocą kodu. Nie korzystamy z żadnego naszego serwera.",
"horizon.friends.start_sharing": "Zacznij udostępniać",
"horizon.friends.troubleshooting": "Rozwiązywanie problemów…",
"horizon.friends.stopped": "Przestano udostępniać kod zaproszenia.",
"horizon.friends.short_code_changed": "Ktoś wciąż wpisywał zły krótki kod, więc został zmieniony.",
"horizon.friends.wrong_code": "Ktoś wpisał zły kod.",
"horizon.friends.code_ready": "Twój kod zaproszenia jest gotowy: Menu gry, Graj ze znajomymi. Skopiuj go i wyślij znajomym.",
"horizon.friends.share_failed": "Nie udało się udostępnić świata: %s",
"horizon.friends.finding_route": "Sprawdzanie, jak znajomi mogą się z tobą połączyć…",
"horizon.osk.shift": "Shift",
"horizon.osk.space": "Spacja",
"horizon.osk.delete": "Usuń",
@@ -462,6 +462,23 @@
"horizon.splitscreen.profiles.offline_note": "Perfis off-line pertencem a esta instância",
"horizon.splitscreen.profiles.move": "Mova-se para onde você joga",
"horizon.splitscreen.profiles.move_place": "Mova-se para onde você joga: %s",
"horizon.friends.title": "Jogue com amigos",
"horizon.friends.hint": "Amigos colam o código após o botão Amigos da tela de título, no Direct Connection ou na página Play do inicializador.",
"horizon.friends.copied": "Copiado",
"horizon.friends.copy_code": "Copiar código",
"horizon.friends.stop_sharing": "Pare de compartilhar",
"horizon.friends.none_yet": "Nenhum amigo aqui ainda.",
"horizon.friends.here_now": "Aqui agora: %s",
"horizon.friends.share_intro": "Compartilhe este mundo por meio de um código de convite: ele abre para LAN e amigos na internet entram com o código. Nenhum servidor nosso está envolvido.",
"horizon.friends.start_sharing": "Comece a compartilhar",
"horizon.friends.troubleshooting": "Solução de problemas...",
"horizon.friends.stopped": "Parou de compartilhar o código de convite.",
"horizon.friends.short_code_changed": "Alguém continuou tentando um código curto errado, então ele mudou.",
"horizon.friends.wrong_code": "Alguém tentou um código errado.",
"horizon.friends.relay_stopped": "Muitos códigos curtos errados, então o relé fica desligado até você compartilhar de novo. Amigos ainda podem entrar com o código completo.",
"horizon.friends.code_ready": "Seu código de convite está pronto: Menu do Jogo, Jogue com Amigos. Copie e envie para seus amigos.",
"horizon.friends.share_failed": "Não foi possível compartilhar o mundo: %s",
"horizon.friends.finding_route": "Descobrir como os amigos podem entrar em contato com você…",
"horizon.osk.shift": "Mudança",
"horizon.osk.space": "Espaço",
"horizon.osk.delete": "Excluir",
@@ -462,6 +462,23 @@
"horizon.splitscreen.profiles.offline_note": "Os perfis offline pertencem a esta instância",
"horizon.splitscreen.profiles.move": "Mover local de jogo",
"horizon.splitscreen.profiles.move_place": "Mover local de jogo: %s",
"horizon.friends.title": "Jogar com amigos",
"horizon.friends.hint": "Os amigos colam o código após o botão Amigos do ecrã de título, em Ligação Direta, ou na página Jogar do launcher.",
"horizon.friends.copied": "Copiado",
"horizon.friends.copy_code": "Copiar código",
"horizon.friends.stop_sharing": "Parar partilha",
"horizon.friends.none_yet": "Ainda sem amigos aqui.",
"horizon.friends.here_now": "Aqui agora: %s",
"horizon.friends.share_intro": "Partilha este mundo através de um código de convite: abre para LAN e os amigos na internet juntam-se com o código. Nenhum servidor nosso está envolvido.",
"horizon.friends.start_sharing": "Iniciar partilha",
"horizon.friends.troubleshooting": "Resolução de problemas...",
"horizon.friends.stopped": "Partilha do código de convite interrompida.",
"horizon.friends.short_code_changed": "Alguém tentou repetidamente um código curto incorreto, por isso este foi alterado.",
"horizon.friends.wrong_code": "Alguém tentou um código incorreto.",
"horizon.friends.relay_stopped": "Demasiados códigos curtos errados, por isso o relay está desligado até partilhares novamente. Os amigos ainda podem entrar com o código completo.",
"horizon.friends.code_ready": "O teu código de convite está pronto: Menu do Jogo, Jogar com Amigos. Copia-o e envia-o aos teus amigos.",
"horizon.friends.share_failed": "Não foi possível partilhar o mundo: %s",
"horizon.friends.finding_route": "A determinar como os amigos podem aceder...",
"horizon.osk.shift": "Shift",
"horizon.osk.space": "Espaço",
"horizon.osk.delete": "Eliminar",
@@ -462,6 +462,23 @@
"horizon.splitscreen.profiles.offline_note": "Profilurile offline aparțin acestei instanțe",
"horizon.splitscreen.profiles.move": "Mișcă-te unde te joci",
"horizon.splitscreen.profiles.move_place": "Mutați unde jucați: %s",
"horizon.friends.title": "Joacă-te cu prietenii",
"horizon.friends.hint": "Prietenii lipesc codul după butonul Prieteni din ecranul de titlu, în Conexiune directă sau pe pagina Play a lansatorului.",
"horizon.friends.copied": "Copiat",
"horizon.friends.copy_code": "Copiați codul",
"horizon.friends.stop_sharing": "Opriți distribuirea",
"horizon.friends.none_yet": "Niciun prieten aici încă.",
"horizon.friends.here_now": "Aici acum: %s",
"horizon.friends.share_intro": "Distribuie această lume din spatele unui cod de invitație: se deschide către LAN, iar prietenii de pe internet se alătură cu codul. Niciun server de-al nostru nu este implicat.",
"horizon.friends.start_sharing": "Începeți să distribuiți",
"horizon.friends.troubleshooting": "Se depanează...",
"horizon.friends.stopped": "S-a oprit distribuirea codului de invitație.",
"horizon.friends.short_code_changed": "Cineva a tot încercat un cod scurt greșit, așa că s-a schimbat.",
"horizon.friends.wrong_code": "Cineva a încercat un cod greșit.",
"horizon.friends.relay_stopped": "Prea multe coduri scurte greșite, așa că releul este oprit până când distribui din nou. Prietenii se pot alătura în continuare cu codul complet.",
"horizon.friends.code_ready": "Codul dvs. de invitație este gata: Meniu joc, Joacă cu prietenii. Copiați-l și trimiteți-l prietenilor dvs.",
"horizon.friends.share_failed": "Nu am putut împărtăși lumea: %s",
"horizon.friends.finding_route": "Aflați cum prietenii vă pot contacta...",
"horizon.osk.shift": "Shift",
"horizon.osk.space": "Spațiu",
"horizon.osk.delete": "Ștergeți",
@@ -366,6 +366,23 @@
"horizon.splitscreen.profiles.offline_note": "Офлайн-профили принадлежат этому экземпляру",
"horizon.splitscreen.profiles.move": "Сменить место игры",
"horizon.splitscreen.profiles.move_place": "Сменить место игры: %s",
"horizon.friends.title": "Играть с друзьями",
"horizon.friends.hint": "Друзья вставляют код после кнопки «Друзья» на титульном экране, в «Прямом подключении» или на странице «Играть» в лаунчере.",
"horizon.friends.copied": "Скопировано",
"horizon.friends.copy_code": "Копировать код",
"horizon.friends.stop_sharing": "Прекратить доступ",
"horizon.friends.none_yet": "Здесь пока нет друзей.",
"horizon.friends.here_now": "Сейчас здесь: %s",
"horizon.friends.share_intro": "Откройте этот мир по коду приглашения: он открывается в локальную сеть, а друзья в интернете подключаются по коду. Наши серверы не участвуют.",
"horizon.friends.start_sharing": "Открыть доступ",
"horizon.friends.troubleshooting": "Решение проблем...",
"horizon.friends.stopped": "Доступ по коду приглашения закрыт.",
"horizon.friends.short_code_changed": "Кто-то подряд вводил неверный короткий код, поэтому он изменился.",
"horizon.friends.wrong_code": "Кто-то ввёл неверный код.",
"horizon.friends.relay_stopped": "Слишком много неверных коротких кодов, поэтому ретранслятор выключен, пока вы не откроете доступ снова. Друзья всё ещё могут войти по полному коду.",
"horizon.friends.code_ready": "Ваш код приглашения готов: меню игры, «Играть с друзьями». Скопируйте его и отправьте друзьям.",
"horizon.friends.share_failed": "Не удалось открыть мир: %s",
"horizon.friends.finding_route": "Ищем, как друзья могут к вам подключиться…",
"horizon.osk.shift": "Shift",
"horizon.osk.space": "Пробел",
"horizon.osk.delete": "Удалить",
@@ -462,6 +462,23 @@
"horizon.splitscreen.profiles.offline_note": "Офлайн профиллар бу экземплярга киирэллэр",
"horizon.splitscreen.profiles.move": "Оонньуур сиригэр көһүҥ",
"horizon.splitscreen.profiles.move_place": "Оонньуур сиригэр көһөр: %s",
"horizon.friends.title": "Доҕотторгун кытта оонньоо",
"horizon.friends.hint": "Доҕоттор коду титул экранын Доҕоттор кнопкатын кэнниттэн, Прямой сибээскэ эбэтэр лаунчер Оонньуу страницатыгар киллэрэллэр.",
"horizon.friends.copied": "Копированнай",
"horizon.friends.copy_code": "Код копията",
"horizon.friends.stop_sharing": "Үлэһиттэри тохтотуҥ",
"horizon.friends.none_yet": "Манна доҕоттор суохтар.",
"horizon.friends.here_now": "Билигин манна: %s",
"horizon.friends.share_intro": "Ыҥырыы кодун кэннигэр баар аан дойдуну үллэст: LAN-ҥа аһыллар, уонна интернетка баар доҕоттор кодунан холбоһоллор. Биһиги биир да сервербит кыттыбат.",
"horizon.friends.start_sharing": "Үлэһиттэри саҕалаа",
"horizon.friends.troubleshooting": "Кыһалҕалары быһаарыы...",
"horizon.friends.stopped": "Ыҥырыы кодун үллэстиини тохтоппут.",
"horizon.friends.short_code_changed": "Ким эрэ сыыһа кылгас коду боруобалыыра, онон уларыйбыта.",
"horizon.friends.wrong_code": "Ким эрэ сыыһа коду оҥорон көрбүт.",
"horizon.friends.relay_stopped": "Элбэх сыыһа кылгас код, ол иһин relay эмиэ үллэстэриҥ саҕана уһуллубут. Доҕоттор толору кодонан киириэхтэрин сөп.",
"horizon.friends.code_ready": "Ыҥырыы кодуҥ бэлэм: Оонньуу менюта, Доҕотторгун кытта оонньоо. Ону көһөрөн баран доҕотторгор ыыт.",
"horizon.friends.share_failed": "Аан дойдуну үллэстэр кыаҕым суох: %s",
"horizon.friends.finding_route": "Доҕоттор эйиэхэ хайдах тиийиэхтэрин сөбүн булуу...",
"horizon.osk.shift": "Смена",
"horizon.osk.space": "Космос",
"horizon.osk.delete": "Соттор",
@@ -462,6 +462,23 @@
"horizon.splitscreen.profiles.offline_note": "Offline-profiillat gullet dán instánsii",
"horizon.splitscreen.profiles.move": "Sirdde dohko gosa speallat",
"horizon.splitscreen.profiles.move_place": "Sirdde dohko gosa speallat: %s",
"horizon.friends.title": "Speallat ustibiiguin",
"horizon.friends.hint": "Friends liibmet koda maŋŋel nammačájáhusa Friends-boalu, Direct Connection:as dahje álggaheaddji Play-siiddus.",
"horizon.friends.copied": "Kopieren",
"horizon.friends.copy_code": "Kopiere koda",
"horizon.friends.stop_sharing": "Heaittit juohkima",
"horizon.friends.none_yet": "Eai leat skihpárat dáppe vuos.",
"horizon.friends.here_now": "Dáppe dál: %s",
"horizon.friends.share_intro": "Juohkit dán máilmmi bovdehuskoda duohken: dat rahppo LAN:ii, ja skihpárat interneahtas servet kodain. Ii oktage min bálvaleaddji leat mielde.",
"horizon.friends.start_sharing": "Álggat juohkit",
"horizon.friends.troubleshooting": "Vealaheapmi...",
"horizon.friends.stopped": "Heaittihan bovdehuskoda juohkima.",
"horizon.friends.short_code_changed": "Muhtin geahččalii ain boastut oanehis koda, nu ahte dat rievddai.",
"horizon.friends.wrong_code": "Muhtin geahččalii boastut koda.",
"horizon.friends.relay_stopped": "Ollu boastut oanehis kodat, nu ahte rele lea heaittihuvvon gitta dassážii go juohkit ođđasit. Skihpárat sáhttet ain searvat olles kodain.",
"horizon.friends.code_ready": "Du bovdehuskoda lea gárvvis: Speallanmenu, Speallan ustibiiguin. Kopiere dan ja sádde dan iežat skihpáriidda.",
"horizon.friends.share_failed": "Ii sáhttán juohkit máilmmi: %s",
"horizon.friends.finding_route": "Gávdnat mo skihpárat sáhttet olahit du...",
"horizon.osk.shift": "Sirdin",
"horizon.osk.space": "Ruovttu",
"horizon.osk.delete": "Slette",
@@ -462,6 +462,23 @@
"horizon.splitscreen.profiles.offline_note": "Offline profily patria k tejto inštancii",
"horizon.splitscreen.profiles.move": "Pohybujte sa tam, kde hráte",
"horizon.splitscreen.profiles.move_place": "Presuňte sa tam, kde hráte: %s",
"horizon.friends.title": "Hrajte s priateľmi",
"horizon.friends.hint": "Priatelia prilepia kód za tlačidlo Priatelia na titulnej obrazovke, do priameho pripojenia alebo na stránku Play spúšťača.",
"horizon.friends.copied": "Skopírované",
"horizon.friends.copy_code": "Kopírovať kód",
"horizon.friends.stop_sharing": "Zastaviť zdieľanie",
"horizon.friends.none_yet": "Zatiaľ tu nie sú žiadni priatelia.",
"horizon.friends.here_now": "Teraz tu: %s",
"horizon.friends.share_intro": "Zdieľajte tento svet pomocou pozývacieho kódu: otvára sa na LAN a priatelia na internete sa pripájajú pomocou kódu. Nie je zapojený žiadny náš server.",
"horizon.friends.start_sharing": "Začnite zdieľať",
"horizon.friends.troubleshooting": "Riešenie problémov...",
"horizon.friends.stopped": "Zdieľanie pozývacieho kódu bolo zastavené.",
"horizon.friends.short_code_changed": "Niekto stále skúšal nesprávny krátky kód, takže sa to zmenilo.",
"horizon.friends.wrong_code": "Niekto skúsil nesprávny kód.",
"horizon.friends.relay_stopped": "Príliš mnoho nesprávnych krátkych kódov, takže relé je vypnuté, kým znova nezdieľaš. Priatelia sa stále môžu pripojiť s úplným kódom.",
"horizon.friends.code_ready": "Váš pozývací kód je pripravený: Herné menu, Hrajte s priateľmi. Skopírujte ho a pošlite svojim priateľom.",
"horizon.friends.share_failed": "Nepodarilo sa zdieľať svet: %s",
"horizon.friends.finding_route": "Zistite, ako vás môžu priatelia kontaktovať…",
"horizon.osk.shift": "Shift",
"horizon.osk.space": "Priestor",
"horizon.osk.delete": "Odstrániť",
@@ -462,6 +462,23 @@
"horizon.splitscreen.profiles.offline_note": "Profili brez povezave pripadajo temu primerku",
"horizon.splitscreen.profiles.move": "Premakni se, kjer se igraš",
"horizon.splitscreen.profiles.move_place": "Premakni se tja, kjer igraš: %s",
"horizon.friends.title": "Igrajte se s prijatelji",
"horizon.friends.hint": "Prijatelji prilepite kodo za gumb Prijatelji na naslovnem zaslonu, v neposredni povezavi ali na strani za predvajanje zaganjalnika.",
"horizon.friends.copied": "Kopirano",
"horizon.friends.copy_code": "Kopiraj kodo",
"horizon.friends.stop_sharing": "Ustavi skupno rabo",
"horizon.friends.none_yet": "Tukaj še ni prijateljev.",
"horizon.friends.here_now": "Tukaj zdaj: %s",
"horizon.friends.share_intro": "Delite ta svet s kodo povabila: odpre se v LAN in prijatelji na internetu se pridružijo s kodo. Noben naš strežnik ni vpleten.",
"horizon.friends.start_sharing": "Začnite deliti",
"horizon.friends.troubleshooting": "Odpravljanje težav ...",
"horizon.friends.stopped": "Prekinjeno deljenje kode povabila.",
"horizon.friends.short_code_changed": "Nekdo je poskušal vnesti napačno kratko kodo, zato se je spremenila.",
"horizon.friends.wrong_code": "Nekdo je poskusil napačno kodo.",
"horizon.friends.relay_stopped": "Preveč napačnih kratkih kod, zato je rele izklopljen, dokler znova ne delite. Prijatelji se lahko še vedno pridružijo s celotno kodo.",
"horizon.friends.code_ready": "Vaša koda povabila je pripravljena: Igralni meni, Igrajte s prijatelji. Kopirajte ga in pošljite prijateljem.",
"horizon.friends.share_failed": "Ni bilo mogoče deliti sveta: %s",
"horizon.friends.finding_route": "Iskanje načina, kako vas lahko prijatelji dosežejo ...",
"horizon.osk.shift": "Shift",
"horizon.osk.space": "Vesolje",
"horizon.osk.delete": "Izbriši",
@@ -462,6 +462,23 @@
"horizon.splitscreen.profiles.offline_note": "Xogta khadka tooska ah ayaa iska leh tusaalahan",
"horizon.splitscreen.profiles.move": "U dhaqaaq meesha aad ku ciyaareyso",
"horizon.splitscreen.profiles.move_place": "U dhaqaaq meesha aad ku ciyaareyso: %s",
"horizon.friends.title": "La ciyaar asxaabta",
"horizon.friends.hint": "Asxaabtu waxay dhejiyaan koodka ka dib badhanka asxaabta ee shaashadda ciwaanka, xidhiidhka tooska ah, ama bogga bilawga ciyaarta.",
"horizon.friends.copied": "la guuriyay",
"horizon.friends.copy_code": "Koobiga Koodhka",
"horizon.friends.stop_sharing": "Jooji Wadaagista",
"horizon.friends.none_yet": "Wali halkan saaxiibo ma jiraan.",
"horizon.friends.here_now": "Halkan hadda: %s",
"horizon.friends.share_intro": "La wadaag aduunkan gadaasha summada martiqaadka: waxay u furan tahay LAN, saaxiibada intarneedka ku jirana waxay ku biiraan koodka. Ma jiro server naga mid ah oo ku lug leh.",
"horizon.friends.start_sharing": "Bilow wadaagga",
"horizon.friends.troubleshooting": "Cilad bixinta",
"horizon.friends.stopped": "Joojiyey wadaagista summada martiqaadka",
"horizon.friends.short_code_changed": "Qof ayaa sii waday inuu isku dayo kood gaaban oo khaldan, sidaa darteed wuu beddelay.",
"horizon.friends.wrong_code": "Qof ayaa isku dayay kood qaldan",
"horizon.friends.relay_stopped": "Koodhadhka gaaban ee khaldan ayaa aad u badan, sidaas darteed gudbinta waa damin ilaa aad mar kale wadaagto. Saaxiibadu wali waxay ku biiri karaan koodhka buuxa.",
"horizon.friends.code_ready": "Koodhka martiqaadkaagu waa diyaar: Menu Game, La ciyaar asxaabta. Koobiyi una dir asxaabtaada.",
"horizon.friends.share_failed": "Lama wadaagi karo adduunka: %s",
"horizon.friends.finding_route": "Helitaanka sida saaxiibadu ku heli karaan…",
"horizon.osk.shift": "Shift",
"horizon.osk.space": "Meel bannaan",
"horizon.osk.delete": "Tirtir",
@@ -462,6 +462,23 @@
"horizon.splitscreen.profiles.offline_note": "Profilet jashtë linje i përkasin këtij shembulli",
"horizon.splitscreen.profiles.move": "Lëvizni aty ku luani",
"horizon.splitscreen.profiles.move_place": "Lëvizni ku luani: %s",
"horizon.friends.title": "Luaj me miqtë",
"horizon.friends.hint": "Miqtë ngjisin kodin pas butonit Friends të ekranit të titullit, në Lidhje direkte ose në faqen Play të lëshuesit.",
"horizon.friends.copied": "E kopjuar",
"horizon.friends.copy_code": "Kopjo kodin",
"horizon.friends.stop_sharing": "Ndalo ndarjen",
"horizon.friends.none_yet": "Nuk ka ende miq këtu.",
"horizon.friends.here_now": "Këtu tani: %s",
"horizon.friends.share_intro": "Ndani këtë botë pas një kodi ftese: ai hapet në LAN dhe miqtë në internet bashkohen me kodin. Asnjë server i yni nuk është i përfshirë.",
"horizon.friends.start_sharing": "Filloni të ndani",
"horizon.friends.troubleshooting": "Zgjidhja e problemeve...",
"horizon.friends.stopped": "Ndaloi ndarjen e kodit të ftesës.",
"horizon.friends.short_code_changed": "Dikush vazhdoi të provonte një kod të shkurtër të gabuar, kështu që ai ndryshoi.",
"horizon.friends.wrong_code": "Dikush provoi një kod të gabuar.",
"horizon.friends.relay_stopped": "Shumë kode të shkurtra të gabuara, prandaj releja është e fikur derisa të ndash përsëri. Miqtë mund të bashkohen ende me kodin e plotë.",
"horizon.friends.code_ready": "Kodi juaj i ftesës është gati: Menyja e lojës, Luaj me miqtë. Kopjojeni dhe dërgojuni miqve tuaj.",
"horizon.friends.share_failed": "Nuk mund ta ndaja botën: %s",
"horizon.friends.finding_route": "Duke gjetur se si miqtë mund t'ju kontaktojnë…",
"horizon.osk.shift": "Zhvendosja",
"horizon.osk.space": "Hapësirë",
"horizon.osk.delete": "Fshije",
@@ -302,6 +302,22 @@
"horizon.splitscreen.profiles.offline_note": "Oflajn profili pripadaju ovoj instanci",
"horizon.splitscreen.profiles.move": "Krećite se tamo gde igrate",
"horizon.splitscreen.profiles.move_place": "Pomerite se gde igrate: %s",
"horizon.friends.title": "Igrajte se sa prijateljima",
"horizon.friends.hint": "Prijatelji nalepe kod iza dugmeta Prijatelji na naslovnom ekranu, u Direktnu vezu ili na Plai stranicu pokretača.",
"horizon.friends.copied": "Kopirano",
"horizon.friends.copy_code": "Kopiraj kod",
"horizon.friends.stop_sharing": "Zaustavi deljenje",
"horizon.friends.none_yet": "Ovde još nema prijatelja.",
"horizon.friends.here_now": "Evo sada: %s",
"horizon.friends.share_intro": "Podelite ovaj svet iza pozivnog koda: otvara se na LAN, a prijatelji na internetu se pridružuju kodu. Nijedan naš server nije uključen.",
"horizon.friends.start_sharing": "Počnite da delite",
"horizon.friends.troubleshooting": "Rešavanje problema...",
"horizon.friends.stopped": "Zaustavljeno je deljenje koda poziva.",
"horizon.friends.short_code_changed": "Neko je nastavio da pokušava pogrešan kratki kod, pa se to promenilo.",
"horizon.friends.wrong_code": "Neko je probao pogrešan kod.",
"horizon.friends.code_ready": "Vaš pozivni kod je spreman: Meni igre, Igrajte se sa prijateljima. Kopirajte ga i pošaljite svojim prijateljima.",
"horizon.friends.share_failed": "Ne mogu da podelim svet: %s",
"horizon.friends.finding_route": "Pronalaženje načina na koji prijatelji mogu da vas kontaktiraju…",
"horizon.osk.shift": "Shift",
"horizon.osk.space": "Space",
"horizon.osk.delete": "Izbriši",
@@ -462,6 +462,23 @@
"horizon.splitscreen.profiles.offline_note": "Офлајн профили припадају овој инстанци",
"horizon.splitscreen.profiles.move": "Крећите се тамо где играте",
"horizon.splitscreen.profiles.move_place": "Померите се где играте: %s",
"horizon.friends.title": "Играјте се са пријатељима",
"horizon.friends.hint": "Пријатељи налепе код иза дугмета Пријатељи на насловном екрану, у Директну везу или на Плаи страницу покретача.",
"horizon.friends.copied": "Копирано",
"horizon.friends.copy_code": "Копирај код",
"horizon.friends.stop_sharing": "Заустави дељење",
"horizon.friends.none_yet": "Овде још нема пријатеља.",
"horizon.friends.here_now": "Ево сада: %s",
"horizon.friends.share_intro": "Поделите овај свет иза позивног кода: отвара се на ЛАН, а пријатељи на интернету се придружују коду. Ниједан наш сервер није укључен.",
"horizon.friends.start_sharing": "Почните да делите",
"horizon.friends.troubleshooting": "Решавање проблема...",
"horizon.friends.stopped": "Заустављено је дељење кода позива.",
"horizon.friends.short_code_changed": "Неко је наставио да покушава погрешан кратки код, па се то променило.",
"horizon.friends.wrong_code": "Неко је пробао погрешан код.",
"horizon.friends.relay_stopped": "Превише погрешних кратких кодова, па је релеј искључен док поново не поделите. Пријатељи и даље могу да се придруже пуним кодом.",
"horizon.friends.code_ready": "Ваш позивни код је спреман: Мени игре, Играјте се са пријатељима. Копирајте га и пошаљите својим пријатељима.",
"horizon.friends.share_failed": "Не могу да поделим свет: %s",
"horizon.friends.finding_route": "Проналажење начина на који пријатељи могу да вас контактирају…",
"horizon.osk.shift": "Схифт",
"horizon.osk.space": "Спаце",
"horizon.osk.delete": "Избриши",
@@ -462,6 +462,23 @@
"horizon.splitscreen.profiles.offline_note": "Offlineprofiler tillhör denna instans",
"horizon.splitscreen.profiles.move": "Flytta dit du spelar",
"horizon.splitscreen.profiles.move_place": "Flytta dit du spelar: %s",
"horizon.friends.title": "Spela med vänner",
"horizon.friends.hint": "Vänner klistrar in koden efter titelskärmens Vänner-knapp, i direktanslutning eller på startprogrammets spelsida.",
"horizon.friends.copied": "Kopierade",
"horizon.friends.copy_code": "Kopiera kod",
"horizon.friends.stop_sharing": "Sluta dela",
"horizon.friends.none_yet": "Inga vänner här än.",
"horizon.friends.here_now": "Här nu: %s",
"horizon.friends.share_intro": "Dela denna värld bakom en inbjudningskod: den öppnas till LAN och vänner på internet går med med koden. Ingen av vår server är inblandad.",
"horizon.friends.start_sharing": "Börja dela",
"horizon.friends.troubleshooting": "Felsökning...",
"horizon.friends.stopped": "Slutade dela inbjudningskoden.",
"horizon.friends.short_code_changed": "Någon fortsatte att försöka med en felaktig kortkod, så det ändrades.",
"horizon.friends.wrong_code": "Någon försökte med fel kod.",
"horizon.friends.relay_stopped": "För många felaktiga kortkoder, så reläet är avstängt tills du delar igen. Vänner kan fortfarande gå med med den fullständiga koden.",
"horizon.friends.code_ready": "Din inbjudningskod är klar: Spelmeny, Spela med vänner. Kopiera den och skicka den till dina vänner.",
"horizon.friends.share_failed": "Kunde inte dela världen: %s",
"horizon.friends.finding_route": "Hitta hur vänner kan nå dig...",
"horizon.osk.shift": "Skift",
"horizon.osk.space": "Utrymme",
"horizon.osk.delete": "Ta bort",
@@ -462,6 +462,23 @@
"horizon.splitscreen.profiles.offline_note": "Profile poza linijōm noleżōm do tyj instancyje",
"horizon.splitscreen.profiles.move": "Przesuń tam, kaj gryjesz",
"horizon.splitscreen.profiles.move_place": "Przesuń tam, kaj gryjesz: %s",
"horizon.friends.title": "Graj z Kamratami",
"horizon.friends.hint": "Kamraci wklejajōm kod po knopku Kamraci na ekranie tytułowym, w bezpostrzednim połōnczyniu abo na strōnie Ôdtworz ôd startera.",
"horizon.friends.copied": "Skopiowane",
"horizon.friends.copy_code": "Kopiuj kodu",
"horizon.friends.stop_sharing": "Przestań udostępnianie",
"horizon.friends.none_yet": "Jeszcze niy ma tutaj kamratōw.",
"horizon.friends.here_now": "Tu teraz: %s",
"horizon.friends.share_intro": "Podzielij sie tym światym za kodym zaproszynio: ôn sie ôtwiyro na LAN, a kamraty w Internecie prziłōnczajōm sie z kodym. Żodyn nasz serwer niy je zaangażowany.",
"horizon.friends.start_sharing": "Zacznij udostępnianie",
"horizon.friends.troubleshooting": "Rozwiōnzowanie problymōw...",
"horizon.friends.stopped": "Przestało udostępnianie kodu zaproszynio.",
"horizon.friends.short_code_changed": "Ktoś durch prōbowoł felerny krōtki kod, tōż sie zmiyniyło.",
"horizon.friends.wrong_code": "Ktoś prōbowoł felernego kodu.",
"horizon.friends.relay_stopped": "Za moc złych krōtkich kodōw, tōż przekaźnik je wyłōnczōny, dopōki niy udostympnisz nazod. Kamraci mogōm sie durch prziłōnczyć pełnym kodym.",
"horizon.friends.code_ready": "Kod zaproszynio je gotowy: Menu Grōw, Gra z Kamratami. Skopiuj ja i wysyłaj do swojich kamratōw.",
"horizon.friends.share_failed": "Niy mōg sie dzielić światym: %s",
"horizon.friends.finding_route": "Znojdowanie, jak kamraci mogōm sie z Tobōm dotrzeć...",
"horizon.osk.shift": "Pōmiana",
"horizon.osk.space": "Przestrzyństwo",
"horizon.osk.delete": "Usuń",
@@ -462,6 +462,23 @@
"horizon.splitscreen.profiles.offline_note": "ஆஃப்லைன் சுயவிவரங்கள் இந்த நிகழ்வைச் சேர்ந்தவை",
"horizon.splitscreen.profiles.move": "நீங்கள் விளையாடும் இடத்திற்கு நகர்த்தவும்",
"horizon.splitscreen.profiles.move_place": "நீங்கள் விளையாடும் இடத்திற்கு நகர்த்தவும்: %s",
"horizon.friends.title": "நண்பர்களுடன் விளையாடுங்கள்",
"horizon.friends.hint": "தலைப்புத் திரையின் நண்பர்கள் பொத்தானுக்குப் பிறகு, நேரடி இணைப்பில் அல்லது துவக்கியின் ப்ளே பக்கத்தில் நண்பர்கள் குறியீட்டை ஒட்டுவார்கள்.",
"horizon.friends.copied": "நகலெடுக்கப்பட்டது",
"horizon.friends.copy_code": "நகல் குறியீடு",
"horizon.friends.stop_sharing": "பகிர்வதை நிறுத்து",
"horizon.friends.none_yet": "இதுவரை இங்கு நண்பர்கள் இல்லை.",
"horizon.friends.here_now": "இங்கே இப்போது: %s",
"horizon.friends.share_intro": "அழைப்புக் குறியீட்டின் பின்னால் இந்த உலகத்தைப் பகிரவும்: இது LAN க்கு திறக்கும், மேலும் இணையத்தில் உள்ள நண்பர்கள் குறியீட்டுடன் இணைவார்கள். எங்களின் எந்த சர்வரும் இதில் ஈடுபடவில்லை.",
"horizon.friends.start_sharing": "பகிரத் தொடங்கு",
"horizon.friends.troubleshooting": "சரிசெய்தல்...",
"horizon.friends.stopped": "அழைப்புக் குறியீட்டைப் பகிர்வது நிறுத்தப்பட்டது.",
"horizon.friends.short_code_changed": "யாரோ ஒரு தவறான சுருக்கக் குறியீட்டை தொடர்ந்து முயற்சித்ததால், அது மாறிவிட்டது.",
"horizon.friends.wrong_code": "யாரோ தவறான குறியீட்டை முயற்சித்துள்ளனர்.",
"horizon.friends.relay_stopped": "பல தவறான சுருக்கக் குறியீடுகள், எனவே மீண்டும் பகிரும் வரை ரிலே ஆஃப். நண்பர்கள் இன்னும் முழுக் குறியீட்டுடன் சேரலாம்.",
"horizon.friends.code_ready": "உங்கள் அழைப்புக் குறியீடு தயாராக உள்ளது: கேம் மெனு, நண்பர்களுடன் விளையாடுங்கள். அதை நகலெடுத்து உங்கள் நண்பர்களுக்கு அனுப்புங்கள்.",
"horizon.friends.share_failed": "உலகைப் பகிர முடியவில்லை: %s",
"horizon.friends.finding_route": "நண்பர்கள் உங்களை எவ்வாறு அணுகலாம் என்பதைக் கண்டறிதல்…",
"horizon.osk.shift": "ஷிப்ட்",
"horizon.osk.space": "விண்வெளி",
"horizon.osk.delete": "நீக்கு",
@@ -462,6 +462,23 @@
"horizon.splitscreen.profiles.offline_note": "โปรไฟล์ออฟไลน์เป็นของอินสแตนซ์นี้",
"horizon.splitscreen.profiles.move": "ย้ายตำแหน่งที่คุณเล่น",
"horizon.splitscreen.profiles.move_place": "ย้ายไปที่ที่คุณเล่น: %s",
"horizon.friends.title": "เล่นกับเพื่อน",
"horizon.friends.hint": "เพื่อนวางโค้ดไว้หลังปุ่มเพื่อนของหน้าจอชื่อเรื่อง ในการเชื่อมต่อโดยตรง หรือบนหน้าเล่นของตัวเรียกใช้งาน",
"horizon.friends.copied": "คัดลอกแล้ว",
"horizon.friends.copy_code": "คัดลอกรหัส",
"horizon.friends.stop_sharing": "หยุดการแบ่งปัน",
"horizon.friends.none_yet": "ยังไม่มีเพื่อนที่นี่",
"horizon.friends.here_now": "ที่นี่ตอนนี้: %s",
"horizon.friends.share_intro": "แบ่งปันโลกนี้ด้วยรหัสเชิญ: เปิดเป็น LAN และเพื่อนบนอินเทอร์เน็ตเข้าร่วมด้วยรหัส ไม่มีเซิร์ฟเวอร์ของเราเกี่ยวข้อง",
"horizon.friends.start_sharing": "เริ่มแบ่งปัน",
"horizon.friends.troubleshooting": "กำลังแก้ไขปัญหา...",
"horizon.friends.stopped": "หยุดแชร์รหัสเชิญแล้ว",
"horizon.friends.short_code_changed": "มีคนพยายามใช้รหัสสั้นผิด ดังนั้นมันจึงเปลี่ยนไป",
"horizon.friends.wrong_code": "มีคนลองใช้รหัสผิด",
"horizon.friends.relay_stopped": "รหัสสั้นผิดหลายครั้งเกินไป รีเลย์จึงปิดจนกว่าคุณจะแชร์อีกครั้ง เพื่อนยังเข้าร่วมได้ด้วยรหัสเต็ม",
"horizon.friends.code_ready": "รหัสเชิญของคุณพร้อมแล้ว: เมนูเกม เล่นกับเพื่อน ๆ คัดลอกและส่งให้เพื่อนของคุณ",
"horizon.friends.share_failed": "ไม่สามารถแบ่งปันโลกได้: %s",
"horizon.friends.finding_route": "กำลังค้นหาวิธีที่เพื่อนๆ สามารถติดต่อคุณได้...",
"horizon.osk.shift": "กะ",
"horizon.osk.space": "อวกาศ",
"horizon.osk.delete": "ลบ",
@@ -373,6 +373,23 @@
"horizon.splitscreen.profiles.offline_note": "Çevrimdışı profiller bu örneğe aittir",
"horizon.splitscreen.profiles.move": "Oynadığınız yeri taşı",
"horizon.splitscreen.profiles.move_place": "Oynadığınız yeri taşı: %s",
"horizon.friends.title": "Arkadaşlarla Oyna",
"horizon.friends.hint": "Arkadaşlar kodu başlık ekranındaki Arkadaşlar düğmesinden sonra, Doğrudan Bağlantı'da veya başlatıcının Oyna sayfasında yapıştırır.",
"horizon.friends.copied": "Kopyalandı",
"horizon.friends.copy_code": "Kodu Kopyala",
"horizon.friends.stop_sharing": "Paylaşımı Durdur",
"horizon.friends.none_yet": "Burada henüz arkadaş yok.",
"horizon.friends.here_now": "Şu an burada: %s",
"horizon.friends.share_intro": "Bu dünyayı bir davet koduyla paylaşın: LAN'a açılır ve internetteki arkadaşlar kodla katılır. Bizim hiçbir sunucumuz devrede olmaz.",
"horizon.friends.start_sharing": "Paylaşmayı Başlat",
"horizon.friends.troubleshooting": "Sorun Giderme...",
"horizon.friends.stopped": "Davet kodu paylaşımı durduruldu.",
"horizon.friends.short_code_changed": "Biri sürekli yanlış kısa kod denedi, bu yüzden kod değişti.",
"horizon.friends.wrong_code": "Biri yanlış bir kod denedi.",
"horizon.friends.relay_stopped": "Çok fazla yanlış kısa kod denendi, bu yüzden siz yeniden paylaşana kadar aktarıcı kapalı. Arkadaşlar yine de tam kodla katılabilir.",
"horizon.friends.code_ready": "Davet kodunuz hazır: Oyun Menüsü, Arkadaşlarla Oyna. Kopyalayın ve arkadaşlarınıza gönderin.",
"horizon.friends.share_failed": "Dünya paylaşılamadı: %s",
"horizon.friends.finding_route": "Arkadaşların size nasıl ulaşacağı aranıyor…",
"horizon.osk.shift": "Shift",
"horizon.osk.space": "Boşluk",
"horizon.osk.delete": "Sil",
@@ -462,6 +462,23 @@
"horizon.splitscreen.profiles.offline_note": "Оффлайн профильләр бу инстанциягә карый",
"horizon.splitscreen.profiles.move": "Сез уйнаган җиргә күчегез",
"horizon.splitscreen.profiles.move_place": "Сез уйнаган җиргә күчегез: %s",
"horizon.friends.title": "Дуслар белән уйнагыз",
"horizon.friends.hint": "Дуслар кодны титул экранының Дуслар төймәсеннән соң, туры тоташуда яки эшләтеп җибәрүченең Уйнау битендә ябыштыралар.",
"horizon.friends.copied": "Күчерелгән",
"horizon.friends.copy_code": "Кодны күчерү",
"horizon.friends.stop_sharing": "Бүлешүне туктатыгыз",
"horizon.friends.none_yet": "Монда әле дуслар юк.",
"horizon.friends.here_now": "Менә хәзер: %s",
"horizon.friends.share_intro": "Чакыру коды артында бу дөньяны бүлешегез: ул LAN өчен ачыла, һәм интернеттагы дуслар код белән кушылалар. Безнең бер сервер да катнашмый.",
"horizon.friends.start_sharing": "Уртаклашуны башлау",
"horizon.friends.troubleshooting": "Проблеманы чишү ...",
"horizon.friends.stopped": "Чакыру кодын бүлешүне туктатты.",
"horizon.friends.short_code_changed": "Кемдер дөрес булмаган кыска кодны сынап карады, шуңа күрә ул үзгәрде.",
"horizon.friends.wrong_code": "Кемдер дөрес код кулланмады.",
"horizon.friends.relay_stopped": "Бик күп дөрес булмаган кыска код, шуңа күрә сез яңадан уртаклашканчы реле сүнгән. Дуслар тулы код белән кушыла ала.",
"horizon.friends.code_ready": "Сезнең чакыру кодыгыз әзер: Уен менюсы, Дуслар белән уйнагыз. Аны күчереп алыгыз һәм дусларыгызга җибәрегез.",
"horizon.friends.share_failed": "Дөнья белән уртаклаша алмадым: %s",
"horizon.friends.finding_route": "Дусларның сезгә ничек ирешә алуын табу…",
"horizon.osk.shift": "Смена",
"horizon.osk.space": "Космос",
"horizon.osk.delete": "Бетерү",
@@ -354,6 +354,22 @@
"horizon.splitscreen.profiles.offline_note": "Офлайн-профілі належать цьому екземпляру",
"horizon.splitscreen.profiles.move": "Змінити місце гри",
"horizon.splitscreen.profiles.move_place": "Змінити місце гри: %s",
"horizon.friends.title": "Грати з друзями",
"horizon.friends.hint": "Друзі вставляють код після кнопки «Друзі» на головному екрані, у «Пряме з’єднання» або на сторінці «Грати» в лаунчері.",
"horizon.friends.copied": "Скопійовано",
"horizon.friends.copy_code": "Копіювати код",
"horizon.friends.stop_sharing": "Припинити поширення",
"horizon.friends.none_yet": "Друзів тут поки немає.",
"horizon.friends.here_now": "Зараз тут: %s",
"horizon.friends.share_intro": "Поділіться цим світом за допомогою коду запрошення: він відкривається для LAN, а друзі з інтернету приєднуються за кодом. Жоден наш сервер не залучається.",
"horizon.friends.start_sharing": "Почати поширення",
"horizon.friends.troubleshooting": "Усунення несправностей…",
"horizon.friends.stopped": "Поширення коду запрошення припинено.",
"horizon.friends.short_code_changed": "Хтось раз за разом вводив неправильний короткий код, тож його змінено.",
"horizon.friends.wrong_code": "Хтось ввів неправильний код.",
"horizon.friends.code_ready": "Ваш код запрошення готовий: Ігрове меню, Грати з друзями. Скопіюйте його та надішліть друзям.",
"horizon.friends.share_failed": "Не вдалося поділитися світом: %s",
"horizon.friends.finding_route": "З’ясовуємо, як друзі можуть до вас під’єднатися…",
"horizon.osk.shift": "Shift",
"horizon.osk.space": "Пробіл",
"horizon.osk.delete": "Видалити",
@@ -624,6 +640,7 @@
"horizon.extras.wheel_cycles_list_settings.tooltip": "Коліщатко миші над кнопкою в списку налаштувань змінює її значення. Вимкнено, як у ванільній грі: коліщатко прокручує список.",
"horizon.extras.pack_browser": "Огляд наборів ресурсів",
"horizon.extras.music_page.tooltip": "У «Музика і звуки» з’являється сторінка «Музика...»: увімкніть будь-який вбудований трек зараз або вимкніть, щоб гра більше його не обирала. Нічого не змінюється, доки ви не вимкнете трек.",
"horizon.friends.relay_stopped": "Забагато неправильних коротких кодів, тому ретранслятор вимкнено, доки ви знову не поділитеся світом. Друзі все ще можуть приєднатися за повним кодом.",
"horizon.extras.pack_browser.tooltip": "У «Вибрати набори ресурсів» з’являється кнопка «Додати», яка шукає в Modrinth і встановлює набір у вашу теку наборів. Вимкнено: гра ніколи не звертається до Modrinth.",
"horizon.splitscreen.online_only": "Цей сервер працює в онлайн-режимі: офлайн-профілі не можуть приєднатися, кожному гравцеві потрібен власний акаунт Minecraft.",
"horizon.splitscreen.own_account": "Цей сервер вимагає від кожного гравця власного акаунта Minecraft",
@@ -462,6 +462,23 @@
"horizon.splitscreen.profiles.offline_note": "آف لائن پروفائلز اسی انسٹینس کے ہیں",
"horizon.splitscreen.profiles.move": "منتقل کریں جہاں آپ کھیلتے ہیں",
"horizon.splitscreen.profiles.move_place": "منتقل کریں جہاں آپ کھیلتے ہیں: %s",
"horizon.friends.title": "دوستوں کے ساتھ کھیلیں",
"horizon.friends.hint": "دوست ٹائٹل سکرین کے فرینڈز بٹن کے بعد، ڈائریکٹ کنکشن میں، یا لانچر کے پلے پیج پر کوڈ پیسٹ کرتے ہیں۔",
"horizon.friends.copied": "کاپی ہو گیا",
"horizon.friends.copy_code": "کوڈ کاپی کریں",
"horizon.friends.stop_sharing": "شیئر کرنا بند کریں",
"horizon.friends.none_yet": "یہاں ابھی کوئی دوست نہیں ہے۔",
"horizon.friends.here_now": "یہاں موجود ہیں: %s",
"horizon.friends.share_intro": "اس دنیا کو دعوت نامہ کوڈ کے پیچھے شیئر کریں: یہ LAN کے لیے کھلتا ہے، اور انٹرنیٹ پر دوست کوڈ کے ساتھ شامل ہوتے ہیں۔ اس میں ہمارا کوئی سرور شامل نہیں ہے۔",
"horizon.friends.start_sharing": "شیئر کرنا شروع کریں",
"horizon.friends.troubleshooting": "خرابی کا سراغ لگانا...",
"horizon.friends.stopped": "دعوت نامہ کوڈ شیئر کرنا بند کر دیا۔",
"horizon.friends.short_code_changed": "کسی نے بار بار غلط شارٹ کوڈ آزمایا، اس لیے یہ بدل گیا۔",
"horizon.friends.wrong_code": "کسی نے غلط کوڈ آزمایا۔",
"horizon.friends.relay_stopped": "بہت زیادہ غلط شارٹ کوڈز، اس لیے دوبارہ شیئر کرنے تک رلے بند ہے۔ دوست اب بھی مکمل کوڈ سے شامل ہو سکتے ہیں۔",
"horizon.friends.code_ready": "آپ کا دعوت نامہ کوڈ تیار ہے: گیم مینو، پلے ود فرینڈز۔ اسے کاپی کریں اور اپنے دوستوں کو بھیجیں۔",
"horizon.friends.share_failed": "دنیا شیئر نہیں کی جا سکی: %s",
"horizon.friends.finding_route": "تلاش کر رہے ہیں کہ دوست آپ تک کیسے پہنچ سکتے ہیں…",
"horizon.osk.shift": "Shift",
"horizon.osk.space": "Space",
"horizon.osk.delete": "حذف کریں",
@@ -462,6 +462,23 @@
"horizon.splitscreen.profiles.offline_note": "Oflayn profillar ushbu misolga tegishli",
"horizon.splitscreen.profiles.move": "O'ynagan joyingizga o'ting",
"horizon.splitscreen.profiles.move_place": "Oʻynagan joyingizga oʻting: %s",
"horizon.friends.title": "Do'stlar bilan o'ynang",
"horizon.friends.hint": "Do'stlar kodni sarlavha ekranidagi \"Do'stlar\" tugmasidan keyin, \"To'g'ridan-to'g'ri ulanish\"da yoki ishga tushirgichning \"Play\" sahifasiga joylashtiradilar.",
"horizon.friends.copied": "Ko‘chirildi",
"horizon.friends.copy_code": "Kodni nusxalash",
"horizon.friends.stop_sharing": "Ulashishni to'xtating",
"horizon.friends.none_yet": "Bu yerda hali doʻstlar yoʻq.",
"horizon.friends.here_now": "Mana hozir: %s",
"horizon.friends.share_intro": "Taklif kodi ortida bu dunyoni baham ko'ring: u LANga ochiladi va internetdagi do'stlar kodga qo'shiladi. Bizning serverimiz ishtirok etmaydi.",
"horizon.friends.start_sharing": "Ulashishni boshlang",
"horizon.friends.troubleshooting": "Muammo bartaraf qilinmoqda...",
"horizon.friends.stopped": "Taklif kodini ulashish to‘xtatildi.",
"horizon.friends.short_code_changed": "Kimdir noto'g'ri qisqa kodni sinab ko'rdi, shuning uchun u o'zgardi.",
"horizon.friends.wrong_code": "Kimdir noto'g'ri kodni sinab ko'rdi.",
"horizon.friends.relay_stopped": "Juda ko'p noto'g'ri qisqa kod kiritildi, shuning uchun qayta ulashmaguningizcha rele o'chirilgan. Do'stlar hali ham to'liq kod bilan qo'shila oladi.",
"horizon.friends.code_ready": "Taklif kodingiz tayyor: Oʻyin menyusi, Doʻstlar bilan oʻynang. Uni nusxalang va do'stlaringizga yuboring.",
"horizon.friends.share_failed": "Dunyoni ulashib boʻlmadi: %s",
"horizon.friends.finding_route": "Do‘stlar siz bilan qanday bog‘lanishi mumkinligi aniqlanmoqda…",
"horizon.osk.shift": "Shift",
"horizon.osk.space": "Kosmos",
"horizon.osk.delete": "Oʻchirish",
@@ -462,6 +462,23 @@
"horizon.splitscreen.profiles.offline_note": "I profili offline i apartien a sta istansa",
"horizon.splitscreen.profiles.move": "Spostate dove che gioca",
"horizon.splitscreen.profiles.move_place": "Spostate dove giocate: %s",
"horizon.friends.title": "Zuga coi amighi",
"horizon.friends.hint": "I amighi i incoła el còdexe dopo el boton Amighi deła schermata del titoło, in conesion direta o neła pajina de riprodusion del lansador.",
"horizon.friends.copied": "Copià",
"horizon.friends.copy_code": "Copia Codice",
"horizon.friends.stop_sharing": "Smetti de condividere",
"horizon.friends.none_yet": "No ghe xe gnancora amighi qua.",
"horizon.friends.here_now": "Eco qua: %s",
"horizon.friends.share_intro": "Condividi sto mondo dietro un codice de invito: el se apre a LAN, e i amici su internet i se unisse col codice. Nisun server nostro xe coinvolto.",
"horizon.friends.start_sharing": "Scominsia a condividere",
"horizon.friends.troubleshooting": "Risołusion dei problemi...",
"horizon.friends.stopped": "Smesso de condividere el codice de invito.",
"horizon.friends.short_code_changed": "Qualchedun el ga continuà a sercar un codice curto sbalià, cussì el xe canbià.",
"horizon.friends.wrong_code": "Qualchedun ga provà un codice sbalià.",
"horizon.friends.relay_stopped": "Troscia codici curti sbaliài, quindi el relè el resta spento fin che no te condividi da novo. I amighi i pol oncora entrar col codice conpleto.",
"horizon.friends.code_ready": "El vostro codice de invito xe pronto: Menu del gioco, Gioco coi amici. Copiatelo e mandatelo ai tuoi amici.",
"horizon.friends.share_failed": "No se podeva condividere el mondo: %s",
"horizon.friends.finding_route": "Trovando come che i amighi i pol rivar a ti…",
"horizon.osk.shift": "Scambio",
"horizon.osk.space": "Spasio",
"horizon.osk.delete": "Canseła",
@@ -462,6 +462,23 @@
"horizon.splitscreen.profiles.offline_note": "Hồ sơ ngoại tuyến thuộc về trường hợp này",
"horizon.splitscreen.profiles.move": "Di chuyển đến nơi bạn chơi",
"horizon.splitscreen.profiles.move_place": "Di chuyển đến nơi bạn chơi: %s",
"horizon.friends.title": "Chơi với bạn bè",
"horizon.friends.hint": "Bạn bè dán mã sau nút Bạn bè của màn hình tiêu đề, trong Kết nối Trực tiếp hoặc trên trang Play của trình khởi chạy.",
"horizon.friends.copied": "Đã sao chép",
"horizon.friends.copy_code": "Sao chép mã",
"horizon.friends.stop_sharing": "Dừng chia sẻ",
"horizon.friends.none_yet": "Chưa có bạn bè ở đây.",
"horizon.friends.here_now": "Ở đây bây giờ: %s",
"horizon.friends.share_intro": "Chia sẻ thế giới này đằng sau mã mời: nó mở ra mạng LAN và bạn bè trên internet tham gia bằng mã. Không có máy chủ của chúng tôi có liên quan.",
"horizon.friends.start_sharing": "Bắt đầu chia sẻ",
"horizon.friends.troubleshooting": "Đang khắc phục sự cố...",
"horizon.friends.stopped": "Đã dừng chia sẻ mã mời.",
"horizon.friends.short_code_changed": "Ai đó liên tục thử sai mã ngắn nên nó đã thay đổi.",
"horizon.friends.wrong_code": "Ai đó đã thử nhập sai mã.",
"horizon.friends.relay_stopped": "Quá nhiều mã ngắn bị nhập sai nên rơle tắt cho đến khi bạn chia sẻ lại. Bạn bè vẫn có thể tham gia bằng mã đầy đủ.",
"horizon.friends.code_ready": "Mã mời của bạn đã sẵn sàng: Menu trò chơi, Chơi cùng bạn bè. Sao chép nó và gửi cho bạn bè của bạn.",
"horizon.friends.share_failed": "Không thể chia sẻ thế giới: %s",
"horizon.friends.finding_route": "Đang tìm cách bạn bè có thể liên hệ với bạn…",
"horizon.osk.shift": "ca",
"horizon.osk.space": "không gian",
"horizon.osk.delete": "Xóa",
Loaded 100 of 380 files, more files were not shown because too many files have changed in this diff. Show more