Merge main into #10540

This commit is contained in:
Horizon agent committed 2026-11-06 12:57:33 +01:00
commit 97f85f4530
466 files changed
+21945 -2742

No files matched your search

+1 -1
View File
@@ -394,7 +394,7 @@ pub fn apply_deprecated(map: &mut HashMap<String, String>, json: &[u8]) {
/// characters in strings, `=` or `=>` and `;`), which vanilla reads lang files with (expected
/// from `Language.loadFromJson`, Gson). A file that is not JSON even so adds nothing; a value
/// that is not a string, number or boolean (`GsonHelper.convertToString`) ends the file there.
fn read_lang_file(bytes: &[u8], map: &mut HashMap<String, String>) {
pub fn read_lang_file(bytes: &[u8], map: &mut HashMap<String, String>) {
use horizon_world::datafix::json::{Json, parse_lenient};
if let Ok(entries) = serde_json::from_slice::<HashMap<String, String>>(bytes) {
map.extend(entries);
+1 -1
View File
@@ -81,7 +81,7 @@ fn elements(tag: &Tag) -> Option<Vec<Tag>> {
}
/// `DoubleTag.intValue` / `FloatTag.intValue` floor before the i32 conversion;
/// integral tags use their intValue narrowing. Byte arrays then keep the low byte.
fn int_value(t: &Tag) -> Option<i32> {
pub fn int_value(t: &Tag) -> Option<i32> {
Some(match t {
Tag::Byte(v) => i32::from(*v),
Tag::Short(v) => i32::from(*v),
+16
View File
@@ -628,6 +628,22 @@ pub fn icon() -> Option<winit::window::Icon> {
winit::window::Icon::from_rgba(bytes, info.width, info.height).ok()
}
/// Apply Horizon's icon to every window. Windows has a separate taskbar icon slot from the small
/// window icon; requiring the decoded icon there prevents a generic taskbar icon from appearing.
pub fn with_horizon_icon(
attributes: winit::window::WindowAttributes,
) -> winit::window::WindowAttributes {
let icon = icon();
#[cfg(target_os = "windows")]
let icon = Some(icon.expect("Horizon's icon must be available on Windows"));
let attributes = attributes.with_window_icon(icon.clone());
#[cfg(target_os = "windows")]
let attributes =
winit::platform::windows::WindowAttributesExtWindows::with_taskbar_icon(attributes, icon);
attributes
}
#[cfg(test)]
mod tests {
use super::*;
+127 -40
View File
@@ -2,7 +2,9 @@
//! small mixer standing in for OpenAL: one channel per source with its gain,
//! pitch, linear distance attenuation (`AL_LINEAR_DISTANCE`, reference 0,
//! rolloff 1), looping, relative flag and source state, Ogg/Vorbis decoding
//! (streams on a worker thread) and OpenAL Soft's stereo panning.
//! (streams on a worker thread) and OpenAL Soft's mixing: mono sources panned
//! and attenuated, multi-channel buffers (stereo music and records) played
//! direct as OpenAL does.
use crate::Result;
use crate::sound_engine::{
Attenuation, Backend, Bound, ChannelId, InstanceId, PlayResult, SoundEngine, SoundInstance,
@@ -29,7 +31,7 @@ enum State {
}
/// An OpenAL source.
struct Channel {
samples: Option<(Arc<Vec<f32>>, u32)>,
samples: Option<(Arc<Vec<f32>>, u32, u16)>,
position: f64,
state: State,
gain: f32,
@@ -135,8 +137,8 @@ impl Drop for MixerBackend {
static SHARED_CHANNELS: std::sync::atomic::AtomicU64 = std::sync::atomic::AtomicU64::new(0);
/// Two players' copies of one sound: started within this of each other.
const SAME_SOUND: std::time::Duration = std::time::Duration::from_millis(150);
/// Decoded samples and their rate (`None`: the file did not load).
type Samples = Option<(Arc<Vec<f32>>, u32)>;
/// Decoded interleaved samples, their rate and channel count (`None`: the file did not load).
type Samples = Option<(Arc<Vec<f32>>, u32, u16)>;
/// Decoded static sounds (`SoundBufferLibrary`'s buffers), dropped least
/// recently used first past `CACHE_BYTES`: kept forever, every sound heard in
/// a session stayed (up to 1.4 GiB of samples, villages playing hundreds).
@@ -177,7 +179,7 @@ impl SoundCache {
fn size(samples: &Samples) -> usize {
samples
.as_ref()
.map_or(0, |(s, _)| s.len() * std::mem::size_of::<f32>())
.map_or(0, |(s, _, _)| s.len() * std::mem::size_of::<f32>())
}
}
/// A static sound to decode for a channel waiting on it.
@@ -260,7 +262,7 @@ pub struct Audio {
#[cfg(feature = "audio")]
device_ticks: u32,
}
fn decode(path: &Path) -> Option<(Vec<f32>, u32)> {
fn decode(path: &Path) -> Option<(Vec<f32>, u32, u16)> {
use symphonia::core::{
audio::SampleBuffer, codecs::DecoderOptions, formats::FormatOptions, io::MediaSourceStream,
meta::MetadataOptions, probe::Hint,
@@ -284,7 +286,8 @@ fn decode(path: &Path) -> Option<(Vec<f32>, u32)> {
let mut decoder = symphonia::default::get_codecs()
.make(&track.codec_params, &DecoderOptions::default())
.ok()?;
let mut mono = Vec::new();
let mut samples = Vec::new();
let mut channels = 0u16;
while let Ok(packet) = format.next_packet() {
if packet.track_id() != id {
continue;
@@ -293,14 +296,34 @@ fn decode(path: &Path) -> Option<(Vec<f32>, u32)> {
continue;
};
let spec = *buffer.spec();
let channels = spec.channels.count().max(1);
let mut samples = SampleBuffer::<f32>::new(buffer.capacity() as u64, spec);
samples.copy_interleaved_ref(buffer);
for frame in samples.samples().chunks(channels) {
mono.push(frame.iter().sum::<f32>() / channels as f32);
let frame_channels = spec.channels.count().max(1);
let mut decoded = SampleBuffer::<f32>::new(buffer.capacity() as u64, spec);
decoded.copy_interleaved_ref(buffer);
if channels == 0 {
channels = frame_channels.min(2) as u16;
}
if frame_channels <= 2 {
samples.extend_from_slice(decoded.samples());
} else {
// OpenAL plays multi-channel buffers direct; a stereo output hears the odd/even split.
for frame in decoded.samples().chunks(frame_channels) {
let (mut left, mut right) = (0.0, 0.0);
let (mut lefts, mut rights) = (0.0f32, 0.0f32);
for (i, sample) in frame.iter().enumerate() {
if i % 2 == 0 {
left += sample;
lefts += 1.0;
} else {
right += sample;
rights += 1.0;
}
}
samples.push(left / lefts.max(1.0));
samples.push(right / rights.max(1.0));
}
}
}
Some((mono, rate))
(channels != 0).then_some((samples, rate, channels))
}
/// A sound file without its variant number (`mob/creeper/say2.ogg` is `mob/creeper/say`): each
/// player's game picks its own variant of the same event.
@@ -427,7 +450,7 @@ impl Backend for MixerBackend {
// A streamed sound loops by restarting its stream.
let mixer = self.mixer.clone();
std::thread::spawn(move || {
let samples = decode(&file).map(|(s, r)| (Arc::new(s), r));
let samples = decode(&file).map(|(s, r, c)| (Arc::new(s), r, c));
attach(&mixer, channel, samples, looping);
});
return;
@@ -448,7 +471,7 @@ impl Backend for MixerBackend {
// Queued twice before the first decode finished.
let cached = cache.lock().ok().and_then(|mut c| c.get(&job.key));
let samples = cached.unwrap_or_else(|| {
let samples = decode(&job.file).map(|(s, r)| (Arc::new(s), r));
let samples = decode(&job.file).map(|(s, r, c)| (Arc::new(s), r, c));
if let Ok(mut c) = cache.lock() {
c.insert(job.key, samples.clone());
}
@@ -584,9 +607,13 @@ fn mix(mixer: &mut Mixer, data: &mut [f32], channels: usize, rate: u32) {
let mut voices = std::mem::take(&mut mixer.voices);
voices.clear();
for (id, c) in &mixer.channels {
let Some((_, source_rate)) = &c.samples else {
let Some((_, source_rate, source_channels)) = &c.samples else {
continue;
};
// OpenAL plays a multi-channel buffer direct: no panning and no distance attenuation
// (`CalcVoiceParams`' non-spatialized path, vanilla's HRTF-off stereo context). Vanilla's
// music and records are stereo. A mono buffer is the positional one.
let direct = *source_channels > 1;
if c.state != State::Playing {
continue;
}
@@ -611,24 +638,33 @@ fn mix(mixer: &mut Mixer, data: &mut [f32], channels: usize, rate: u32) {
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) * distance_gain(c.linear, distance)
c.gain.clamp(0.0, 1.0)
* if direct {
1.0
} else {
distance_gain(c.linear, distance)
}
} else {
0.0
};
// 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)
let [left, right] = if direct {
[gain, gain]
} else {
stereo_gains(dot(d, right), dot(d, up), dot(d, forward))
// 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 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;
}
let [left, right] = [left, right].map(|pan| gain * pan);
let step = f64::from(*source_rate) / f64::from(rate) * f64::from(c.pitch.max(0.0));
voices.push((*id, [left, right, gain], step));
}
@@ -636,13 +672,15 @@ fn mix(mixer: &mut Mixer, data: &mut [f32], channels: usize, rate: u32) {
let Some(c) = mixer.channels.get_mut(&id) else {
continue;
};
let Some((samples, _)) = c.samples.clone() else {
let Some((samples, _, source_channels)) = c.samples.clone() else {
continue;
};
let source_channels = source_channels as usize;
let frames = samples.len() / source_channels;
for frame in data.chunks_mut(channels) {
let mut i = c.position as usize;
if i + 1 >= samples.len() {
if c.looping && samples.len() > 1 {
if i + 1 >= frames {
if c.looping && frames > 1 {
c.position = 0.0;
i = 0;
} else {
@@ -651,13 +689,24 @@ fn mix(mixer: &mut Mixer, data: &mut [f32], channels: usize, rate: u32) {
}
}
let t = (c.position - i as f64) as f32;
let s = samples[i] * (1.0 - t) + samples[i + 1] * t;
if channels >= 2 {
frame[0] += s * left;
frame[1] += s * right;
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;
if channels >= 2 {
frame[0] += l * left;
frame[1] += r * right;
} else {
frame[0] += (l + r) * 0.5 * gain;
}
} else {
// A mono output has no panning: the source's own gain.
frame[0] += s * gain;
let s = samples[i] * (1.0 - t) + samples[i + 1] * t;
if channels >= 2 {
frame[0] += s * left;
frame[1] += s * right;
} else {
// A mono output has no panning: the source's own gain.
frame[0] += s * gain;
}
}
c.position += step;
}
@@ -1687,7 +1736,7 @@ mod tests {
fn channel(samples: Vec<f32>, linear: Option<f32>, at: [f32; 3], looping: bool) -> Channel {
Channel {
samples: Some((Arc::new(samples), 48_000)),
samples: Some((Arc::new(samples), 48_000, 1)),
position: 0.0,
state: State::Playing,
gain: 1.0,
@@ -1702,11 +1751,23 @@ mod tests {
}
}
/// A channel whose buffer is interleaved stereo.
fn stereo_channel(
samples: Vec<f32>,
linear: Option<f32>,
at: [f32; 3],
looping: bool,
) -> Channel {
let mut c = channel(Vec::new(), linear, at, looping);
c.samples = Some((Arc::new(samples), 48_000, 2));
c
}
#[test]
fn decoded_sounds_stay_within_the_budget_least_recently_used_out() {
let mut cache = SoundCache::default();
let quarter = CACHE_BYTES / 4 / std::mem::size_of::<f32>();
let sound = || Some((Arc::new(vec![0.0f32; quarter]), 44100));
let sound = || Some((Arc::new(vec![0.0f32; quarter]), 44100, 1));
for key in ["a", "b", "c", "d"] {
cache.insert(key.into(), sound());
}
@@ -1833,6 +1894,32 @@ mod tests {
}
}
#[test]
fn stereo_sounds_play_direct_without_panning_or_distance() {
// OpenAL Soft plays a multi-channel buffer direct (its non-spatialized path), so vanilla's
// stereo music and records keep their own left/right mix at full volume whichever way the
// camera faces and however far it is. Only mono buffers are panned and attenuated.
let wave = [0.1, -0.2, 0.3, -0.4, 0.5, -0.6]; // three stereo frames
let expected = [wave[0], wave[1], wave[2], wave[3]];
for (yaw, at, linear, listener) in [
(0.0, [100.0, 0.0, 0.0], Some(16.0), [0.0; 3]),
(180.0, [0.0, 0.0, -100.0], Some(16.0), [0.0; 3]),
(90.0, [2.0, 1.0, -3.0], Some(16.0), [5.0, 60.0, 5.0]),
(0.0, [0.0, 0.0, 0.0], None, [0.0; 3]),
] {
let mut m = Mixer {
listener,
listener_yaw: yaw,
..Mixer::default()
};
m.channels
.insert(1, stereo_channel(wave.to_vec(), linear, at, false));
let mut data = [0.0; 4];
mix(&mut m, &mut data, 2, 48_000);
assert_eq!(data, expected, "yaw {yaw}, source {at:?}");
}
}
#[test]
fn panning_follows_the_camera_rotation() {
let gains = |yaw: f32, pitch: f32, at: [f32; 3]| {
@@ -572,7 +572,7 @@ impl ControllerUi {
&cols,
&lines,
self.scroll.amount,
Page::name,
|page| lang::get(page.name()),
|batch, setting: Setting, y| {
let item = setting.item;
let [rx, ry, rw, rh] = cols.row(y);
@@ -896,6 +896,13 @@ pub fn worldgen_overrides(
let mut warnings = Vec::new();
for pack in packs {
for file in pack.list_kinds(&overrides::PACK_KINDS) {
if let Some(id) = overrides::template_id(&file) {
match pack.read(&file) {
Some(nbt) => out.set_template(&id, nbt),
None => warnings.push(format!("{}: {file}: unreadable", pack.id)),
}
continue;
}
let read = || String::from_utf8(pack.read(&file)?).ok();
match out.add_file(&pack.id, &file, read) {
PackFile::Read | PackFile::Other => {}
@@ -956,6 +963,7 @@ mod tests {
for pack in ["a", "b", "off"] {
write(pack, "pack.mcmeta", "{}");
write(pack, "data/minecraft/worldgen/noise/cave.json", pack);
write(pack, "data/p/structure/room/a.nbt", pack);
write(
pack,
"data/minecraft/tags/worldgen/biome/is_hill.json",
@@ -992,6 +1000,8 @@ mod tests {
o.entries("noises").collect::<Vec<_>>(),
[("minecraft:cave", "a")]
);
assert_eq!(o.templates().len(), 1);
assert_eq!(&*o.templates()["p:room/a"], b"a");
assert_eq!(
o.entries("biomes").collect::<Vec<_>>(),
[("minecraft:plains", "{}")]
+2 -8
View File
@@ -6634,17 +6634,11 @@ impl Renderer {
if let Some(atlas) = &mut atlas {
atlas.separate_ao = self.separate_ao;
}
self.pack_material_atlases = atlas.as_ref().and_then(|_| {
self.pack_material_atlases = atlas.as_ref().and_then(|colour| {
let maps = self.pbr_maps.as_ref()?;
let make = |kind: usize, encoder: &mut wgpu::CommandEncoder| {
let arrays: Vec<_> = maps.iter().map(|pair| pair[kind].clone()).collect();
pack_atlas::PackAtlas::material(
&self.device,
encoder,
&arrays,
self.sprite_split,
layers,
)
colour.material_for(&self.device, encoder, &arrays, layers)
};
Some([make(0, &mut encoder)?, make(1, &mut encoder)?])
});
+1 -1
View File
@@ -220,7 +220,7 @@ impl Cull {
/// write storage.
pub fn supported(adapter: &wgpu::Adapter, device: &wgpu::Device) -> Option<DepthTest> {
let depth_test = match adapter.get_info().backend {
wgpu::Backend::Vulkan
wgpu::Backend::Vulkan | wgpu::Backend::Gl
if device
.features()
.contains(wgpu::Features::SHADER_EARLY_DEPTH_TEST) =>
@@ -30,6 +30,7 @@ struct Stitched {
/// Each layer's sprite at the first level: its top left corner and its side.
rects: Vec<[u32; 3]>,
padding: u32,
material: bool,
pipeline: wgpu::RenderPipeline,
/// One per sprite array.
groups: Vec<wgpu::BindGroup>,
@@ -66,10 +67,19 @@ fn vs(@builtin(vertex_index) v: u32, @location(0) rect: vec4<i32>, @location(1)
out.source = source.xy;
return out;
}
fn sprite_texel(in: Out) -> vec2<i32> {
return clamp(vec2<i32>(floor(in.position.xy)) - in.rect.xy, vec2(0), vec2(in.rect.z - 1));
}
@fragment
fn fs(in: Out) -> @location(0) vec4<f32> {
let texel = clamp(vec2<i32>(floor(in.position.xy)) - in.rect.xy, vec2(0), vec2(in.rect.z - 1));
return textureLoad(sprites, texel, i32(in.source.x), i32(in.source.y));
return textureLoad(sprites, sprite_texel(in), i32(in.source.x), i32(in.source.y));
}
@fragment
fn fs_material(in: Out) -> @location(0) vec4<f32> {
let texel = sprite_texel(in);
let edge = i32(textureDimensions(sprites, 0).x);
let sampled = min((texel * 2 + 1) * edge / (2 * in.rect.z), vec2(edge - 1));
return textureLoad(sprites, sampled, i32(in.source.x), i32(in.source.y));
}
"#;
@@ -210,14 +220,72 @@ impl PackAtlas {
stitch_mip_level(&sides, mip_option).min(array_levels.saturating_sub(deepest + 1));
let max = device.limits().max_texture_dimension_2d;
let layout = stitch::stitch(&sides, mip, anisotropy_bit, max)?;
let rects = layout
.holders
.iter()
.zip(&sides)
.map(|(&[x, y], &side)| [x + layout.padding, y + layout.padding, side])
.collect();
Some(Self::with_rects(
device,
encoder,
arrays,
split,
sprite,
[layout.width.max(1), layout.height.max(1)],
rects,
layout.padding,
mip + 1,
false,
))
}
/// Companion maps use the colour atlas's coordinates, not a second packing.
pub fn material_for(
&self,
device: &wgpu::Device,
encoder: &mut wgpu::CommandEncoder,
arrays: &[wgpu::Texture],
layers: u32,
) -> Option<Self> {
let Some(stitched) = &self.stitched else {
return Self::material(device, encoder, arrays, self.split, layers);
};
Some(Self::with_rects(
device,
encoder,
arrays,
self.split,
arrays[0].width(),
self.size(),
stitched.rects.clone(),
stitched.padding,
1,
true,
))
}
#[allow(clippy::too_many_arguments)]
fn with_rects(
device: &wgpu::Device,
encoder: &mut wgpu::CommandEncoder,
arrays: &[wgpu::Texture],
split: u32,
sprite: u32,
size: [u32; 2],
rects: Vec<[u32; 3]>,
padding: u32,
levels: u32,
material: bool,
) -> Self {
let texture = device.create_texture(&wgpu::TextureDescriptor {
label: Some("Shader pack block atlas"),
size: wgpu::Extent3d {
width: layout.width.max(1),
height: layout.height.max(1),
width: size[0],
height: size[1],
depth_or_array_layers: 1,
},
mip_level_count: mip + 1,
mip_level_count: levels,
sample_count: 1,
dimension: wgpu::TextureDimension::D2,
format: wgpu::TextureFormat::Rgba8Unorm,
@@ -268,7 +336,7 @@ impl PackAtlas {
multisample: Default::default(),
fragment: Some(wgpu::FragmentState {
module: &module,
entry_point: Some("fs"),
entry_point: Some(if material { "fs_material" } else { "fs" }),
compilation_options: Default::default(),
targets: &[Some(wgpu::TextureFormat::Rgba8Unorm.into())],
}),
@@ -293,12 +361,6 @@ impl PackAtlas {
})
})
.collect();
let rects = layout
.holders
.iter()
.zip(&sides)
.map(|(&[x, y], &side)| [x + layout.padding, y + layout.padding, side])
.collect::<Vec<_>>();
let layers = rects.len() as u32;
let atlas = Self {
texture,
@@ -309,13 +371,14 @@ impl PackAtlas {
separate_ao: false,
stitched: Some(Stitched {
rects,
padding: layout.padding,
padding,
material,
pipeline,
groups,
}),
};
atlas.copy(device, encoder, arrays, 0..layers);
Some(atlas)
atlas
}
/// Whether the sprites keep their own sizes ([`PackAtlas::stitched`]).
@@ -425,7 +488,11 @@ impl PackAtlas {
rect: [x, y, side, stitched.padding].map(|v| (v >> level) as i32),
source: [
layer % self.split,
(self.sprite / side).ilog2() + level,
if stitched.material {
0
} else {
(self.sprite / side).ilog2() + level
},
size[0],
size[1],
],
@@ -563,7 +630,7 @@ impl PackAtlas {
"layout(set = 1, binding = 0) readonly buffer HzBlockSlots { uint hz_block_slots[]; };\n\
layout(set = 1, binding = 1) readonly buffer HzSlotOrigins { vec4 hz_slot_origins[]; };\n",
);
// Of each sprite layer, `mc_Entity` (id, then 1 for fluids or -1) and
// Of each sprite layer, `mc_Entity` (id, then 1 for fluids or 0) and
// `at_midBlock.w` (its block's light), the game's table; and the arena page's
// vertices (`TerrainVertex`, six words each).
declarations.push_str(
@@ -641,7 +708,7 @@ impl PackAtlas {
let entity = if flat {
"vec4(float(hz_block_ids[3u * hz_layer]), float(hz_block_ids[3u * hz_layer + 1u]), 0.0, 0.0)"
} else {
"vec4(-1.0, -1.0, 0.0, 0.0)"
"vec4(-1.0, 0.0, 0.0, 0.0)"
};
// The block a face belongs to: half a block behind its centre (the quad's diagonal);
// w, the light it gives (Iris's `BLOCK_EMISSION_ATTRIBUTE`, 0 to 15).
@@ -894,6 +961,144 @@ mod tests {
assert_eq!([at(9, 5), at(8, 4), at(10, 6)], [[100, 0, 0, 255]; 3]);
}
fn material_fixture(animated: bool) {
let instance = crate::gfx::test_gpu::instance();
// No adapter (a CI runner without a GPU): skip, as the module's other readback tests do.
let Ok(adapter) = pollster::block_on(instance.request_adapter(&Default::default())) else {
return;
};
let (device, queue) =
pollster::block_on(adapter.request_device(&Default::default())).unwrap();
let colour_array = upscaled_array(&device, &queue, &[2, 4, 1]);
let mut encoder = device.create_command_encoder(&Default::default());
let colour = PackAtlas::stitched(
&device,
&mut encoder,
&[colour_array],
3,
4,
&[2, 4, 1],
0,
0,
)
.unwrap();
for kind in 0..2 {
// Different source resolution, with encoded channel boundaries and defaults.
let markers = if kind == 0 {
[
[128, 126, 255, 19],
crate::sprites::FLAT_NORMAL,
[130, 125, 254, 21],
]
} else {
[
[17, 240, 65, 255],
[18, 0, 66, 0],
crate::sprites::NO_SPECULAR,
]
};
let pixels: Vec<_> = markers.iter().flat_map(|m| m.repeat(4)).collect();
let array = wgpu::util::DeviceExt::create_texture_with_data(
&device,
&queue,
&wgpu::TextureDescriptor {
label: None,
size: wgpu::Extent3d {
width: 2,
height: 2,
depth_or_array_layers: 3,
},
mip_level_count: 1,
sample_count: 1,
dimension: wgpu::TextureDimension::D2,
format: wgpu::TextureFormat::Rgba8Unorm,
usage: wgpu::TextureUsages::TEXTURE_BINDING | wgpu::TextureUsages::COPY_DST,
view_formats: &[],
},
wgpu::util::TextureDataOrder::LayerMajor,
&pixels,
);
let arrays = [array];
let material = colour
.material_for(&device, &mut encoder, &arrays, 3)
.unwrap();
assert_eq!(material.size(), [16, 8]);
assert_eq!(material.rects_table(), colour.rects_table());
assert_eq!(material.texture.mip_level_count(), 1);
queue.submit([encoder.finish()]);
encoder = device.create_command_encoder(&Default::default());
let changed = [243, 1, 229, 0];
if animated {
// Alter every source layer, but copy only the animated layer.
queue.write_texture(
arrays[0].as_image_copy(),
&changed.repeat(12),
wgpu::TexelCopyBufferLayout {
bytes_per_row: Some(8),
rows_per_image: Some(2),
offset: 0,
},
arrays[0].size(),
);
material.copy(&device, &mut encoder, &arrays, [0]);
}
let read = device.create_buffer(&wgpu::BufferDescriptor {
label: None,
size: 256 * 8,
usage: wgpu::BufferUsages::COPY_DST | wgpu::BufferUsages::MAP_READ,
mapped_at_creation: false,
});
encoder.copy_texture_to_buffer(
material.texture.as_image_copy(),
wgpu::TexelCopyBufferInfo {
buffer: &read,
layout: wgpu::TexelCopyBufferLayout {
bytes_per_row: Some(256),
..Default::default()
},
},
material.texture.size(),
);
queue.submit([encoder.finish()]);
encoder = device.create_command_encoder(&Default::default());
read.slice(..).map_async(wgpu::MapMode::Read, |_| {});
device.poll(wgpu::PollType::wait_indefinitely()).unwrap();
let data = read.slice(..).get_mapped_range().unwrap();
// Independent, hand-worked colour rectangles, including all padding pixels.
for (layer, [x, y, side]) in [[9usize, 1, 2], [1, 1, 4], [9, 5, 1]]
.into_iter()
.enumerate()
{
let expected = if animated && layer == 0 {
changed
} else {
markers[layer]
};
for py in y - 1..=y + side {
for px in x - 1..=x + side {
let at = py * 256 + px * 4;
assert_eq!(
&data[at..at + 4],
&expected,
"kind={kind}, layer={layer}, ({px},{py})"
);
}
}
}
}
queue.submit([encoder.finish()]);
}
#[test]
fn stitched_material_maps_share_colour_rectangles() {
material_fixture(false);
}
#[test]
fn animated_stitched_material_updates_only_its_rectangle() {
material_fixture(true);
}
#[test]
fn terrain_inputs_respects_separate_ao() {
let instance = crate::gfx::test_gpu::instance();
@@ -40,6 +40,9 @@ mod higher_shadowcolor_tests;
#[cfg(test)]
mod single_side_tests;
#[cfg(test)]
mod undrawn_terrain_tests;
#[cfg(test)]
mod shadow_faces_tests;
@@ -55,6 +58,9 @@ mod custom_type_tests;
#[cfg(test)]
mod sky_depth_tests;
#[cfg(test)]
mod translucent_color_tests;
/// The texture behind a pack sampler name.
#[derive(Clone, Copy, PartialEq)]
enum Source {
@@ -477,7 +483,7 @@ pub(super) struct World<'a> {
pub lightmap: wgpu::TextureView,
/// Terrain's geometry, when the pack draws it.
pub terrain: Option<Geometry<'a>>,
/// Of each block sprite layer, `mc_Entity` (id, then 1 for fluids or -1) and `at_midBlock.w`
/// Of each block sprite layer, `mc_Entity` (id, then 1 for fluids or 0) and `at_midBlock.w`
/// (its block's light): three values a layer.
pub block_ids: &'a [i32],
/// The atlas of the sun and moon's sprites.
@@ -555,6 +561,10 @@ pub struct PackPost {
terrain_cutout: Option<Pass>,
/// What draws translucent terrain (`gbuffers_water` or its fallback), after `deferred`.
water: Option<Pass>,
/// The pack has no program for solid and cutout terrain, or for translucent terrain:
/// nothing draws it (`horizon_shaders::Post::terrain_undrawn`).
terrain_undrawn: bool,
water_undrawn: bool,
/// What draws the sky (`gbuffers_skybasic` or its fallback), before terrain, and its vertices.
sky: Option<Sky>,
/// What draws entities and block entities, after terrain, and their vertices.
@@ -1273,8 +1283,9 @@ fn bindings(
let mut reads = 0u16;
let mut shadow_reads = 0u16;
let watershadow = interface.samplers.iter().any(|s| s.name == "watershadow");
// A gbuffers pass draws into its buffers and the depth buffer: reading them as well would
// be a feedback loop (undefined in GL, refused by wgpu), so those read a blank texture.
// Opaque gbuffers draws cannot sample their own attachments. Translucent draws can
// read colortex4 and above from the preceding deferred stage; those reads use a copy
// taken before the draw, so the sampled texture is never also an attachment.
let in_place = match geometry {
Some(_) => buffers.iter().fold(0u16, |m, &b| m | 1 << b),
None => 0,
@@ -1384,7 +1395,9 @@ fn bindings(
Source::Depth => geometry.is_some(),
// Translucent terrain reads the copy; opaque terrain would read itself.
Source::Depth1 | Source::Depth2 => group == Group::Gbuffers,
Source::Color(n) => in_place & 1 << n != 0,
Source::Color(n) => {
(group != Group::Translucent || n < 4) && in_place & 1 << n != 0
}
_ => false,
};
let mut sample_type = match src {
@@ -1865,7 +1878,13 @@ fn build_pass(
ids: geometry.is_some_and(|g| g.ids.is_some()),
groups: HashMap::new(),
portal_groups: HashMap::new(),
copies: image_buffers(&images) & reads,
copies: (image_buffers(&images)
| if p.group == Group::Translucent {
written
} else {
0
})
& reads,
reads: reads | image_buffers(&images),
buffers: !interface.buffers.is_empty(),
images,
@@ -2288,6 +2307,7 @@ impl PackPost {
cull: g.cull,
});
let split = post.terrain.is_some() && post.terrain_cutout.is_some();
let (terrain_undrawn, water_undrawn) = (post.terrain_undrawn, post.water_undrawn);
let mut terrain = post
.terrain
.zip(terrain_geometry.as_ref())
@@ -2834,6 +2854,8 @@ impl PackPost {
terrain,
terrain_cutout,
water,
terrain_undrawn,
water_undrawn,
sky,
entities,
clouds,
@@ -4061,9 +4083,9 @@ impl PackPost {
})
}
/// Whether the pack draws terrain itself.
/// Whether the pack draws terrain itself, or has nothing draw it.
pub fn has_terrain(&self) -> bool {
self.terrain.is_some() || self.terrain_cutout.is_some()
self.terrain.is_some() || self.terrain_cutout.is_some() || self.terrain_undrawn
}
/// Whether the pack's shadow pass draws terrain (`shadow_view`).
@@ -4091,7 +4113,7 @@ impl PackPost {
/// Whether the pack draws translucent terrain itself.
pub fn has_water(&self) -> bool {
self.water.is_some()
self.water.is_some() || self.water_undrawn
}
/// The names of the programs that run, in order.
@@ -0,0 +1,152 @@
//! A translucent draw reads the preceding scene even when it writes the same color buffer.
//! Original programs and independently calculated colors; no shader-pack assets.
use super::depth_test::{Gpu, SIZE, VERTEX, fixture_frame};
use super::*;
use crate::hud::HudBatch;
use wgpu::{TextureFormat as T, util::DeviceExt};
#[test]
fn translucent_draws_sample_the_color_written_by_deferred() {
let Some(gpu) = Gpu::new() else { return };
let positions: [[f32; 3]; 6] = [
[-1.0, -1.0, 0.0],
[1.0, -1.0, 0.0],
[1.0, 1.0, 0.0],
[-1.0, -1.0, 0.0],
[1.0, 1.0, 0.0],
[-1.0, 1.0, 0.0],
];
let vertices = gpu
.device
.create_buffer_init(&wgpu::util::BufferInitDescriptor {
label: Some("Original translucent quad"),
contents: bytemuck::cast_slice(&positions),
usage: wgpu::BufferUsages::VERTEX,
});
const ATTRS: [wgpu::VertexAttribute; 1] = wgpu::vertex_attr_array![0=>Float32x3];
let layouts = [Some(wgpu::VertexBufferLayout {
array_stride: 12,
step_mode: wgpu::VertexStepMode::Vertex,
attributes: &ATTRS,
})];
// Odd and even numbers of deferred passes leave the current scene on different sides.
// Exercise two buffer numbers and the legacy sampler aliases too.
for (buffer, sampler) in [(4, "colortex4"), (7, "gaux4")] {
for stages in [1, 2] {
for blended in [false, true] {
let mut files = vec![
("deferred.vsh".into(), VERTEX.into()),
(
"deferred.fsh".into(),
format!(
"#version 120\n/* RENDERTARGETS: {buffer} */\nvoid main(){{gl_FragData[0]=vec4(0.25,0.5,0.75,1.0);}}"
),
),
(
"gbuffers_water.vsh".into(),
"#version 120\nvoid main(){gl_Position=gl_Vertex;}".into(),
),
(
"gbuffers_water.fsh".into(),
format!(
"#version 120\n/* RENDERTARGETS: {buffer} */\nuniform sampler2D {sampler};\nvoid main(){{gl_FragData[0]=vec4(texture2D({sampler},vec2(0.5)).rgb+vec3(0.125,0.0,0.0),0.5);}}"
),
),
("final.vsh".into(), VERTEX.into()),
(
"final.fsh".into(),
format!(
"#version 120\nuniform sampler2D colortex{buffer};varying vec2 uv;\nvoid main(){{gl_FragColor=vec4(texture2D(colortex{buffer},uv).rgb,1.0);}}"
),
),
(
"shaders.properties".into(),
format!(
"blend.gbuffers_water={}\n",
if blended {
"SRC_ALPHA ONE_MINUS_SRC_ALPHA ONE ONE_MINUS_SRC_ALPHA"
} else {
"off"
}
),
),
];
if stages == 2 {
files.extend([
("deferred1.vsh".into(), VERTEX.into()),
("deferred1.fsh".into(), format!(
"#version 120\n/* RENDERTARGETS: {buffer} */\nvoid main(){{gl_FragData[0]=vec4(0.5,0.75,0.25,1.0);}}"
)),
]);
}
let color = gpu.texture(T::Rgba8Unorm);
let depth = gpu.texture(T::Depth32Float);
gpu.clear(&color, &depth, 0.0);
let mut post = gpu.load(
files,
World {
atlas: None,
material_maps: None,
lightmap: color.clone(),
terrain: Some(Geometry {
buffers: &layouts,
table: None,
depth_write: true,
atlas: None,
material_maps: false,
ids: None,
cull: false,
}),
block_ids: &[],
sprite_rects: &[],
celestial: None,
gui_size: SIZE,
clouds: None,
weather: false,
hand: false,
},
horizon_shaders::GameInputs {
terrain: Some(horizon_shaders::GbuffersInputs {
declarations: "layout(location=0)in vec3 fixture_position;\n".into(),
body: "hz_Vertex=vec4(fixture_position,1.0);\n".into(),
..Default::default()
}),
..Default::default()
},
);
assert!(post.has_water(), "{:?}", post.notes);
let mut expected = if stages == 1 {
[0.25f32, 0.5, 0.75]
} else {
[0.5, 0.75, 0.25]
};
expected[0] += if blended { 0.0625 } else { 0.125 };
let expected = expected.map(|c| (c * 255.0).round() as u8);
let hud = HudBatch::new(SIZE);
for frame in 0..2 {
let pixels = gpu.render(
&mut post,
&color,
&depth,
&fixture_frame(&hud),
&mut |rp, list, _, _| {
if list == TerrainList::Translucent {
rp.set_vertex_buffer(0, vertices.slice(..));
rp.draw(0..6, 0..1);
}
},
);
for p in pixels {
assert!(
p[..3]
.iter()
.zip(expected)
.all(|(&a, b)| a.abs_diff(b) <= 2),
"buffer {buffer}, {stages} deferred stages, blended {blended}, frame {frame}: {p:?}, expected {expected:?}"
);
}
}
}
}
}
}
@@ -0,0 +1,49 @@
//! A pack with no program for terrain draws none (#10455): Iris 1.11.7 drew no terrain, solid
//! or translucent, into any buffer or depth with probe packs of ours having no gbuffers
//! programs. The game hands the pack its terrain, so it doesn't draw it either. The programs
//! here are original and cut down.
use super::destination_tests::Fixture;
use std::io::{Cursor, Write};
const VERTEX: &str = "#version 120\nvoid main() { gl_Position = ftransform(); }\n";
const WHITE: &str =
"#version 120\n/* DRAWBUFFERS:0 */\nvoid main() { gl_FragData[0] = vec4(1.0); }\n";
/// A pack with `programs` (each drawing white into colortex0) loaded for a game that can hand it
/// terrain: whether it takes solid and translucent terrain from the game.
fn takes_terrain(programs: &[&str]) -> Option<(bool, bool)> {
let gpu = Fixture::new()?;
let mut zip = zip::ZipWriter::new(Cursor::new(Vec::new()));
for name in programs {
for (ext, source) in [("vsh", VERTEX), ("fsh", WHITE)] {
zip.start_file(
format!("shaders/{name}.{ext}"),
zip::write::SimpleFileOptions::default(),
)
.unwrap();
zip.write_all(source.as_bytes()).unwrap();
}
}
let pack = horizon_shaders::Pack::from_zip_bytes(
"undrawn-terrain",
zip.finish().unwrap().into_inner(),
)
.unwrap();
let mut macros = horizon_shaders::Macros::standard();
let (properties, _) = horizon_shaders::read_properties(&pack, &mut macros);
let inputs = horizon_shaders::GameInputs {
terrain: Some(Default::default()),
..Default::default()
};
let post = horizon_shaders::load_post(&pack, "", &properties, &macros, &inputs);
let post = gpu.try_build(post).ok()?;
Some((post.has_terrain(), post.has_water()))
}
#[test]
fn a_pack_without_terrain_programs_takes_terrain_from_the_game() {
let Some(taken) = takes_terrain(&["composite"]) else {
return;
};
assert_eq!(taken, (true, true));
}
@@ -1576,7 +1576,7 @@ impl GraphicsUi {
&cols,
&lines,
self.scroll.amount,
Page::name,
|page| lang::get(page.name()),
|batch, setting: Setting, y| {
let item = setting.item;
let rect = cols.row(y);
+36 -2
View File
@@ -76,6 +76,7 @@ pub struct HudAtlas {
pub sprites: HashMap<String, Rect>,
/// Resolved player-profile names and UUIDs for inline head components.
pub object_skins: HashMap<String, String>,
pub object_skins_revision: u64,
/// Sprites with a 0 < alpha < 255 texel (`SpriteContents.transparency().hasTranslucent`),
/// which puts their particles on vanilla's translucent layer.
pub translucent: HashSet<String>,
@@ -786,21 +787,29 @@ impl HudAtlas {
.or_else(|| self.sprites.get(MISSING_SPRITE))
.copied()
}
pub fn clear_object_skins(&mut self) {
self.object_skins.clear();
self.object_skins_revision = Self::next_revision();
}
/// Keep a ready profile skin when another source only has its default.
pub fn set_object_skin(&mut self, key: String, skin: String) {
use std::collections::hash_map::Entry;
if self.object_skins.len() >= 1024 && !self.object_skins.contains_key(&key) {
self.object_skins.clear();
self.clear_object_skins();
}
match self.object_skins.entry(key) {
Entry::Occupied(entry)
if skin.starts_with("entity/player/") && self.sprites.contains_key(entry.get()) => {
}
Entry::Occupied(mut entry) => {
entry.insert(skin);
if entry.get() != &skin {
entry.insert(skin);
self.object_skins_revision = Self::next_revision();
}
}
Entry::Vacant(entry) => {
entry.insert(skin);
self.object_skins_revision = Self::next_revision();
}
}
}
@@ -920,6 +929,7 @@ impl HudAtlas {
height: 1,
sprites: HashMap::new(),
object_skins: HashMap::new(),
object_skins_revision: Self::next_revision(),
translucent: HashSet::new(),
flags: HashMap::new(),
sprite_animations: Vec::new(),
@@ -985,6 +995,7 @@ impl HudAtlas {
translucent: HashSet::new(),
flags: HashMap::new(),
object_skins: HashMap::new(),
object_skins_revision: Self::next_revision(),
sprite_animations: Vec::new(),
glint: (vec![0; 4], 1, 1),
glint_armor: (vec![0; 4], 1, 1),
@@ -1436,6 +1447,7 @@ impl HudAtlas {
height,
sprites,
object_skins: HashMap::new(),
object_skins_revision: Self::next_revision(),
translucent,
flags,
sprite_animations,
@@ -2890,6 +2902,28 @@ impl HudRenderer {
mod tests {
use super::*;
#[test]
fn object_skin_revision_tracks_changes_and_capacity_clear() {
let mut atlas = HudAtlas::boot();
atlas.set_object_skin("name:player".into(), "skins/server".into());
let revision = atlas.object_skins_revision;
atlas.set_object_skin("name:player".into(), "skins/server".into());
assert_eq!(atlas.object_skins_revision, revision);
atlas.set_object_skin("name:player".into(), "skins/inline".into());
assert_ne!(atlas.object_skins_revision, revision);
for i in 1..1024 {
atlas.set_object_skin(format!("name:{i}"), "skins/server".into());
}
let revision = atlas.object_skins_revision;
atlas.set_object_skin("name:overflow".into(), "skins/server".into());
assert_ne!(atlas.object_skins_revision, revision);
assert_eq!(atlas.object_skins.len(), 1);
let revision = atlas.object_skins_revision;
atlas.clear_object_skins();
assert_ne!(atlas.object_skins_revision, revision);
assert!(atlas.object_skins.is_empty());
}
/// The mod image slot is paid only by a game with a native mod loaded.
#[test]
fn the_mod_image_slot_exists_only_when_a_mod_is_loaded() {
+1
View File
@@ -97,6 +97,7 @@ pub mod settings;
pub mod settings_shell;
pub mod shader_options;
pub mod shader_pack_list;
pub mod shader_ui;
pub mod signs;
pub mod skins;
pub mod sound_engine;
File diff suppressed because it is too large. Load diff
+30 -3
View File
@@ -899,9 +899,24 @@ fn merge(kind: Merge, layers: &[Vec<u8>]) -> Option<Vec<u8>> {
.iter()
// SoundManager skips a sounds.json Gson rejects, whole.
.filter(|b| kind != Merge::Sounds || crate::sound_events::is_valid_file(b))
.filter_map(|b| match serde_json::from_slice(b) {
Ok(Value::Object(m)) => Some(m),
_ => None,
.filter_map(|b| {
match serde_json::from_slice(b) {
Ok(Value::Object(m)) => Some(m),
// `Language.loadFromJson` reads with Gson's lenient reader, so
// a lang file with `#` comments still counts; a file that
// strict JSON accepts keeps its bytes as they are.
_ if kind == Merge::Lang => {
let mut strings = std::collections::HashMap::new();
horizon_client_core::lang::read_lang_file(b, &mut strings);
Some(
strings
.into_iter()
.map(|(k, v)| (k, Value::String(v)))
.collect(),
)
}
_ => None,
}
})
.collect();
let list = |key: &str, layers: &mut dyn Iterator<Item = &Map<String, Value>>| {
@@ -1424,6 +1439,18 @@ mod tests {
parse(lang.unwrap()),
serde_json::json!({"a":"vanilla a","b":"pack b"})
);
// A layer with `#` comments is read leniently, not dropped.
let lenient = merge(
Merge::Lang,
&[
json(r#"{"a":"vanilla a"}"#),
json("# a pack comment\n{\"b\":\"pack b\", # trailing\n\"a\":\"pack a\"}"),
],
);
assert_eq!(
parse(lenient.unwrap()),
serde_json::json!({"a":"pack a","b":"pack b"})
);
// SoundManager: sounds add up; `replace` starts the event over.
let sounds = merge(
Merge::Sounds,
+148 -3
View File
@@ -975,11 +975,32 @@ impl TextField {
}
}
/// `ScreenRectangle.intersection`: the part of both rectangles, or
/// `ScreenRectangle.empty()` (`0, 0, 0, 0`, which clips everything) when they
/// do not overlap.
fn intersect(a: [i32; 4], b: [i32; 4]) -> [i32; 4] {
let rect = [
a[0].max(b[0]),
a[1].max(b[1]),
a[2].min(b[2]),
a[3].min(b[3]),
];
if rect[0] < rect[2] && rect[1] < rect[3] {
rect
} else {
[0, 0, 0, 0]
}
}
/// Draws the calls with the HUD batch: sprites nine-sliced, textures from
/// the atlas (`textures/gui/x.png` is `gui/x`; tiled textures from their
/// corner), scissor clipping, and the tooltip at the mouse.
pub fn paint(batch: &mut HudBatch, atlas: &HudAtlas, draws: &[Draw]) {
let mut clip: Option<(usize, [i32; 4])> = None;
// `GuiGraphicsExtractor.ScissorStack`: a scissor clips what is drawn since
// it opened, cut to the screen while none is open and to the one around it
// otherwise; closing it puts the enclosing one back.
let screen = [0, 0, batch.width as i32, batch.height as i32];
let mut clips: Vec<(usize, [i32; 4])> = Vec::new();
let mut tooltip = None;
for d in draws {
match d {
@@ -1083,10 +1104,11 @@ pub fn paint(batch: &mut HudBatch, atlas: &HudAtlas, draws: &[Draw]) {
);
}
Draw::Scissor { x0, y0, x1, y1 } => {
clip = Some((batch.vertices.len(), [*x0, *y0, *x1, *y1]))
let outer = clips.last().map_or(screen, |&(_, rect)| rect);
clips.push((batch.vertices.len(), intersect(outer, [*x0, *y0, *x1, *y1])));
}
Draw::NoScissor => {
if let Some((start, [x0, y0, x1, y1])) = clip.take() {
if let Some((start, [x0, y0, x1, y1])) = clips.pop() {
batch.clip_since(start, x0 as f32, y0 as f32, x1 as f32, y1 as f32);
}
}
@@ -1282,3 +1304,126 @@ mod button_label_tests {
batch.vertices.len()
}
}
#[cfg(test)]
mod scissor_tests {
use super::*;
fn atlas() -> HudAtlas {
HudAtlas::build(std::path::Path::new("/nonexistent/horizon-test-assets")).unwrap()
}
/// The bounds of every quad's six vertices, in draw order.
fn quads(batch: &HudBatch) -> Vec<[f32; 4]> {
batch
.vertices
.as_chunks::<6>()
.0
.iter()
.map(|q| {
let (mut x0, mut y0) = (f32::MAX, f32::MAX);
let (mut x1, mut y1) = (f32::MIN, f32::MIN);
for v in q {
x0 = x0.min(v.pos[0]);
y0 = y0.min(v.pos[1]);
x1 = x1.max(v.pos[0]);
y1 = y1.max(v.pos[1]);
}
[x0, y0, x1, y1]
})
.collect()
}
fn fill(x0: i32, y0: i32, x1: i32, y1: i32) -> Draw {
Draw::Fill {
x0,
y0,
x1,
y1,
color: -1,
}
}
fn scissor(x0: i32, y0: i32, x1: i32, y1: i32) -> Draw {
Draw::Scissor { x0, y0, x1, y1 }
}
/// `GuiGraphicsExtractor.ScissorStack.push`: a scissor inside another is
/// intersected with it (`ScreenRectangle.intersection`), and the outer one
/// still clips what is drawn after the inner one closes.
#[test]
fn a_nested_scissor_is_intersected_with_the_one_around_it() {
let atlas = atlas();
let mut batch = HudBatch::new([320, 240]);
paint(
&mut batch,
&atlas,
&[
scissor(10, 10, 100, 100),
fill(0, 0, 200, 200),
scissor(50, 50, 300, 300),
fill(0, 0, 400, 400),
Draw::NoScissor,
fill(0, 0, 200, 200),
Draw::NoScissor,
],
);
assert_eq!(
quads(&batch),
[
[10.0, 10.0, 100.0, 100.0],
[50.0, 50.0, 100.0, 100.0],
[10.0, 10.0, 100.0, 100.0],
]
);
}
/// A scissor with no scissor around it is cut to the screen, as
/// `ScissorStack.push` intersects with the screen while the stack is empty.
#[test]
fn a_scissor_wider_than_the_screen_is_cut_to_it() {
let atlas = atlas();
let mut batch = HudBatch::new([320, 240]);
paint(
&mut batch,
&atlas,
&[
scissor(-50, -50, 500, 500),
fill(-100, -100, 600, 600),
Draw::NoScissor,
],
);
assert_eq!(quads(&batch), [[0.0, 0.0, 320.0, 240.0]]);
}
/// A scissor that misses the one around it intersects to
/// `ScreenRectangle.empty()`: nothing inside it is drawn, and the outer
/// scissor takes over again when it closes.
#[test]
fn a_scissor_outside_the_one_around_it_draws_nothing() {
let atlas = atlas();
let mut batch = HudBatch::new([320, 240]);
paint(
&mut batch,
&atlas,
&[
scissor(10, 10, 50, 50),
fill(0, 0, 200, 200),
scissor(60, 60, 90, 90),
fill(0, 0, 200, 200),
Draw::NoScissor,
fill(0, 0, 200, 200),
Draw::NoScissor,
fill(0, 0, 200, 200),
],
);
assert_eq!(
quads(&batch),
[
[10.0, 10.0, 50.0, 50.0],
[10.0, 10.0, 50.0, 50.0],
[0.0, 0.0, 200.0, 200.0],
]
);
}
}
@@ -170,6 +170,11 @@ impl<P: Copy, S: Copy> Lines<P, S> {
}
self.y += style::GROUP_GAP;
}
/// A group of rows under its page's own name (`list`'s `page_name`), for pages named at run
/// time, such as a shader pack's screens.
pub(crate) fn titled(&mut self, page: P, rows: Vec<S>) {
self.group(page, "", rows);
}
/// The lines and the content's height.
pub(crate) fn finish(self) -> (Vec<Line<P, S>>, f32) {
(self.lines, (self.y - style::GROUP_GAP).max(0.0))
@@ -292,14 +297,15 @@ pub(crate) fn plate(batch: &mut HudBatch, atlas: &HudAtlas, cols: &Columns, head
}
/// The list, clipped to its view: each group's panel, then its names and rows on it. `row`
/// draws a setting at its `y`.
/// draws a setting at its `y`; `page_name` names a page, and a group without a name of its own
/// (`Lines::titled`), in the player's language.
pub(crate) fn list<P: Copy, S: Copy>(
batch: &mut HudBatch,
atlas: &HudAtlas,
cols: &Columns,
lines: &[Line<P, S>],
scroll: f32,
page_name: impl Fn(P) -> &'static str,
page_name: impl Fn(P) -> String,
mut row: impl FnMut(&mut HudBatch, S, f32),
) {
let start = batch.vertices.len();
@@ -325,10 +331,11 @@ pub(crate) fn list<P: Copy, S: Copy>(
}
let Some(setting) = line.setting else {
let (name, color, dy) = match line.group {
Some((name, _)) => (name, style::MUTED, 3.0),
Some(("", _)) => (page_name(line.page), style::MUTED, 3.0),
Some((name, _)) => (lang::get(name), style::MUTED, 3.0),
None => (page_name(line.page), style::ACCENT, 4.0),
};
let name = Text::literal(lang::get(name));
let name = Text::literal(name);
batch.text_styled(atlas, &name, cols.list_x + 2.0, y + dy, color, true);
continue;
};
@@ -191,49 +191,6 @@ impl ShaderOptions {
.map(|c| Text::legacy(&c.replace("\\n", "\n")))
}
/// `option_label` within `width` as `measure` sizes it: the name shortened (`Bloom Up...: 2`)
/// when the whole doesn't fit, and whether it was.
pub fn option_label_within(
&self,
name: &str,
width: f32,
measure: impl Fn(&Text) -> f32,
) -> (Text, bool) {
let full = self.option_label(name);
if measure(&full) <= width {
return (full, false);
}
// The pack's text, cut a character at a time with the `§` codes it holds kept.
let key = format!("option.{name}");
let caption = self.lang.get(&key).unwrap_or(name);
let value = self.value_text(name);
let mut chars: Vec<char> = caption.chars().collect();
loop {
while chars.len() >= 2 && chars[chars.len() - 2] == '§' {
chars.truncate(chars.len() - 2);
}
if chars.pop().is_none() {
return (full, true);
}
// Without the spaces and codes it ends with.
let mut end = chars.len();
loop {
if end >= 2 && chars[end - 2] == '§' {
end -= 2;
} else if end > 0 && chars[end - 1].is_whitespace() {
end -= 1;
} else {
break;
}
}
let cut: String = chars[..end].iter().collect();
let label = Text::option_name_value(Text::legacy(&format!("{cut}...")), value.clone());
if measure(&label) <= width {
return (label, true);
}
}
}
/// `Name: value`, in the pack's words, the value yellow when it is not the default.
pub fn option_label(&self, name: &str) -> Text {
Text::option_name_value(
@@ -242,8 +199,13 @@ impl ShaderOptions {
)
}
/// Option `name`'s caption in the pack's words.
pub fn option_name(&self, name: &str) -> Text {
self.named(&format!("option.{name}"), name)
}
/// The value of option `name` as the pack names it, yellow when it is not the default.
fn value_text(&self, name: &str) -> Text {
pub fn value_text(&self, name: &str) -> Text {
let Some(option) = self.options.get(name) else {
return Text::literal(String::new());
};
@@ -350,7 +312,7 @@ mod tests {
}
#[test]
fn single_resets_comments_and_fitted_labels() {
fn single_resets_and_comments() {
let mut o = options();
o.lang = Lang::parse(
"option.LEVEL=Level of detail\noption.LEVEL.comment=How much detail.\\nMore costs more.\n",
@@ -364,18 +326,6 @@ mod tests {
Some("How much detail.\nMore costs more.")
);
assert!(o.comment("option.AO").is_none());
// One unit a character.
let measure = |t: &Text| t.plain().chars().count() as f32;
assert!(!o.option_label_within("LEVEL", 40.0, measure).1);
let (fitted, cut) = o.option_label_within("LEVEL", 12.0, measure);
assert!(cut);
assert_eq!(fitted.plain(), "Level...: 2");
o.lang = Lang::parse("option.LEVEL=§aLevel §lof detail§r\n");
let (fitted, _) = o.option_label_within("LEVEL", 12.0, measure);
assert_eq!(fitted.plain(), "Level...: 2");
assert_eq!(fitted.spans[0].style, Text::legacy("§aL").spans[0].style);
let (fitted, _) = o.option_label_within("LEVEL", 14.0, measure);
assert_eq!(fitted.plain(), "Level of...: 2");
}
#[test]
File diff suppressed because it is too large. Load diff
+171 -15
View File
@@ -237,6 +237,7 @@ pub struct Resolver {
done: std::sync::mpsc::Receiver<(NameOrId, Option<ResolvedProfile>)>,
send: std::sync::mpsc::Sender<(NameOrId, Option<ResolvedProfile>)>,
last_sweep: std::time::Instant,
heads: HeadProfiles,
}
struct Entry {
touched: std::time::Instant,
@@ -304,6 +305,7 @@ impl Resolver {
done,
send,
last_sweep: std::time::Instant::now(),
heads: HeadProfiles::default(),
}
}
/// `CacheBuilder.expireAfterAccess` with `maximumSize`.
@@ -465,6 +467,64 @@ pub fn dynamic_nbt(profile: &horizon_world::nbt::Tag) -> Option<NameOrId> {
}
}
const MAX_HEAD_PROFILES: usize = 4096;
#[derive(Debug, PartialEq)]
struct HeadProfile {
info: ProfileInfo,
skin: Option<(String, String)>,
}
fn prepare_head(profile: &serde_json::Value) -> HeadProfile {
let info = parse_profile(profile);
let skin = info.textures.as_ref().and_then(|(value, signature)| {
let url = unpack(value, *signature, &TEXTURE_URIS).skin?;
let location = skin_location(&texture_hash(&url)?);
Some((url, location))
});
HeadProfile { info, skin }
}
#[derive(Default)]
struct HeadProfiles {
entries: std::collections::HashMap<serde_json::Value, std::sync::Arc<HeadProfile>>,
nbt: std::collections::HashMap<horizon_world::nbt::Tag, std::sync::Arc<serde_json::Value>>,
resolved: [std::collections::HashMap<String, std::sync::Arc<HeadProfile>>; 2],
}
impl HeadProfiles {
fn get(&mut self, profile: &serde_json::Value) -> std::sync::Arc<HeadProfile> {
if let Some(parsed) = self.entries.get(profile) {
return parsed.clone();
}
if self.entries.len() >= MAX_HEAD_PROFILES {
self.entries.clear();
}
let parsed = std::sync::Arc::new(prepare_head(profile));
self.entries.insert(profile.clone(), parsed.clone());
parsed
}
}
impl Resolver {
/// Cache by NBT value rather than address: equipment can be replaced or
/// mutated in place, and neither must leave a stale profile behind.
pub fn head_profile_nbt(
&mut self,
profile: &horizon_world::nbt::Tag,
) -> std::sync::Arc<serde_json::Value> {
if let Some(json) = self.heads.nbt.get(profile) {
return json.clone();
}
if self.heads.nbt.len() >= MAX_HEAD_PROFILES {
self.heads.nbt.clear();
}
let json = std::sync::Arc::new(crate::scoreboard::tag_to_json(profile));
self.heads.nbt.insert(profile.clone(), json.clone());
json
}
}
/// `PlayerSkinRenderCache.getOrDefault` for a head: the resolved skin once
/// its texture is in the atlas (`atlas`), else `partialProfile`'s default.
pub fn head_skin(
@@ -478,32 +538,54 @@ pub fn head_skin(
{
return sprite;
}
let p = parse_profile(profile);
let property = p.textures.or_else(|| {
let key = p.dynamic.as_ref()?;
let p = resolver.heads.get(profile);
// Dynamic resolution is deliberately not cached: pending answers and the
// resolver's expiring service results must still advance on every draw.
let resolved = p.info.dynamic.as_ref().and_then(|key| {
if p.info.textures.is_some() {
return None;
}
match resolver.state(key) {
Resolve::Done(Some(profile)) => profile.textures(),
Resolve::Done(Some(profile)) => {
let (_, value, signature) = profile
.properties
.iter()
.find(|(n, _, _)| n == "textures")?;
let cache = &mut resolver.heads.resolved[usize::from(signature.is_some())];
if let Some(parsed) = cache.get(value) {
return Some(parsed.clone());
}
if cache.len() >= MAX_HEAD_PROFILES {
cache.clear();
}
let property = if signature.is_some() {
serde_json::json!({"name": "textures", "value": value, "signature": ""})
} else {
serde_json::json!({"name": "textures", "value": value})
};
let parsed = std::sync::Arc::new(prepare_head(
&serde_json::json!({"properties": [property]}),
));
cache.insert(value.clone(), parsed.clone());
Some(parsed)
}
_ => None,
}
});
if let Some((value, signature)) = property
&& let Some(url) = unpack(&value, signature, &TEXTURE_URIS).skin
&& let Some(hash) = texture_hash(&url)
{
let location = skin_location(&hash);
match downloads.state(Kind::Skin, &url) {
Download::Ready if atlas(&location) => {
downloads.drawn(&location);
return location;
if let Some((url, location)) = resolved.as_deref().unwrap_or(&p).skin.as_ref() {
match downloads.state(Kind::Skin, url) {
Download::Ready if atlas(location) => {
downloads.drawn(location);
return location.clone();
}
// Its slot was evicted: offer the image again.
Download::Ready => {
downloads.again(&location);
downloads.again(location);
}
_ => {}
}
}
crate::tab_list::default_skin(p.id).to_owned()
crate::tab_list::default_skin(p.info.id).to_owned()
}
/// `PlayerSkin.Patch.apply` for a head: the sprite of a profile's `texture`
@@ -1137,6 +1219,80 @@ pub fn sha1(data: &[u8]) -> [u8; 20] {
#[cfg(test)]
mod tests {
#[test]
fn head_profile_cache_matches_uncached_and_is_bounded() {
use base64::Engine;
let mut cache = super::HeadProfiles::default();
for (url, slim) in [
("https://textures.minecraft.net/texture/abc", false),
("https://textures.minecraft.net/texture/abc", true),
("https://evil.example/texture/abc", false),
] {
let payload = serde_json::json!({"textures": {
"SKIN": {"url": url, "metadata": {"model": if slim { "slim" } else { "classic" }}},
"CAPE": {"url": "http://textures.minecraft.net/texture/cape"}
}});
let value = base64::engine::general_purpose::STANDARD.encode(payload.to_string());
for signed in [false, true] {
let mut property = serde_json::json!({"name": "textures", "value": value});
if signed {
property["signature"] = serde_json::Value::Null;
}
let profile = serde_json::json!({"properties": [property]});
let parsed = cache.get(&profile);
assert_eq!(*parsed, super::prepare_head(&profile));
let textures = super::unpack(
&value,
if signed {
super::Signature::Signed
} else {
super::Signature::Unsigned
},
&super::TEXTURE_URIS,
);
assert_eq!(textures.slim, slim && !url.contains("evil"));
assert_eq!(textures.cape.is_some(), !url.contains("evil"));
assert_eq!(parsed.skin.is_some(), !url.contains("evil"));
assert!(std::sync::Arc::ptr_eq(&parsed, &cache.get(&profile)));
}
}
for profile in [
serde_json::json!({"properties": [{"name": "textures", "value": "!bad"}]}),
serde_json::json!({"name": "Notch"}),
serde_json::json!({}),
] {
let parsed = cache.get(&profile);
assert_eq!(*parsed, super::prepare_head(&profile));
assert!(parsed.skin.is_none());
assert!(std::sync::Arc::ptr_eq(&parsed, &cache.get(&profile)));
}
cache.entries.clear();
for i in 0..super::MAX_HEAD_PROFILES {
cache.get(&serde_json::json!({"id": i}));
}
assert_eq!(cache.entries.len(), super::MAX_HEAD_PROFILES);
cache.get(&serde_json::json!({}));
assert_eq!(cache.entries.len(), 1);
}
#[test]
fn head_profile_nbt_cache_tracks_value_changes() {
let mut resolver = super::Resolver::new();
let mut tag = horizon_world::nbt::Tag::String("Notch".into());
let first = resolver.head_profile_nbt(&tag);
assert_eq!(*first, crate::scoreboard::tag_to_json(&tag));
assert!(std::sync::Arc::ptr_eq(
&first,
&resolver.head_profile_nbt(&tag)
));
tag = horizon_world::nbt::Tag::String("Alex".into());
assert_eq!(*resolver.head_profile_nbt(&tag), serde_json::json!("Alex"));
for i in 0..super::MAX_HEAD_PROFILES {
resolver.head_profile_nbt(&horizon_world::nbt::Tag::Int(i as i32));
}
assert!(resolver.heads.nbt.len() < super::MAX_HEAD_PROFILES);
}
/// A profile's `texture` names a pack texture, never a file outside the
/// packs: bad characters and `..` segments draw nothing.
#[test]
+98 -36
View File
@@ -544,6 +544,12 @@ pub struct Streaming {
/// Chunks come from a server (`insert_remote`/`forget`): nothing is
/// generated and columns are only unloaded when the server says so.
pub remote: bool,
/// This server sends bulk block edits as whole columns whose light is
/// from before its relight (a Horizon server): a resent resident column
/// is lit here. Any other server's packet carries the light vanilla
/// applies, so it is not lit again (a proxy's next server resends its
/// whole world at the same coordinates).
pub relight_resent: bool,
/// More areas to keep loaded (centre chunk, radius), e.g. around the
/// players of a server. Each is a square, like vanilla's ticket levels:
/// chunks finish out to `radius + 1` (Chebyshev) and generation reaches
@@ -1108,6 +1114,7 @@ impl Streaming {
generated_total: 0,
meshed_total: 0,
remote: false,
relight_resent: false,
extra: Vec::new(),
cover: None,
mesh: true,
@@ -1154,14 +1161,15 @@ impl Streaming {
}
/// A resident column a server sent again whole (it changed it in bulk):
/// its new blocks taken, the sections that did not change kept as they
/// were, and its light and its neighbours' worked out again here, off
/// the game thread, as light is for the blocks a server changes one at a
/// time; the sections that changed remesh (with theirs) once lit. Until
/// then the sections that changed show the light the packet carried (a
/// Horizon server sends the light from before its relight, then the
/// new light; another server's is already right, which matters where
/// the neighbours this light needs aren't all here).
pub fn replace_remote(&mut self, world: &mut World, mut chunk: Chunk) {
/// were, and (for a Horizon server's bulk edit) its light and its
/// neighbours' worked out again here, off the game thread, as light is for
/// the blocks a server changes one at a time; the sections that changed
/// remesh (with theirs) once lit. Until then the sections that changed
/// show the light the packet carried (a Horizon server sends the light
/// from before its relight, then the new light; another server's is already
/// right, which matters where the neighbours this light needs aren't all
/// here).
pub fn replace_remote(&mut self, world: &mut World, chunk: Chunk) {
let key = (chunk.x, chunk.z);
let Some(old) = world.chunks.get(&key).cloned() else {
return self.insert_remote(world, chunk);
@@ -1169,34 +1177,7 @@ impl Streaming {
if !self.lit.contains(&key) {
return self.insert_remote(world, chunk);
}
// The cells whose blocks changed, by section: they remesh with the neighbours within a block of them (as
// vanilla's `setBlocksDirty`), not every section round each section changed (which, for the few blocks a
// section often changes in a bulk edit, is mostly sections that did not).
let mut cells = crate::light::LightChanges::default();
cells.keyed(world.layout());
let kept = keep_unchanged_sections(&old, &mut chunk, &mut cells);
chunk.light_loaded = old.light_loaded;
chunk.lit = true;
world.chunks.insert(key, Arc::new(chunk));
world.revision = world.revision.wrapping_add(1);
// A section with new biomes and the same blocks remeshes now (its tint), with its neighbours, whose tint
// blends across the border: above and below too, as a block's tint can sample the biome quart of the
// section next to it (`BiomeManager.getBiome`'s zoom reaches a quart beyond the block).
Self::light_updated(world, key.0, key.1, &kept.biomes);
// A section with the same blocks and new light takes the packet's light (vanilla's
// `handleLevelChunkWithLight` always applies it) and remeshes as a light update would.
Self::light_updated(world, key.0, key.1, &kept.light);
if !kept.blocks {
return;
}
for dz in -1..=1 {
for dx in -1..=1 {
world.dirty_light.insert((key.0 + dx, key.1 + dz));
}
}
cells.dirty_sections(|section| {
world.dirty_sections.insert(section);
});
take_resent_column(world, key, &old, chunk, self.relight_resent);
}
/// A server's light update for a resident column: the sections whose
/// light changed and their neighbours remesh
@@ -3046,6 +3027,51 @@ fn keep_unchanged_sections(
}
out
}
/// Takes the server's new `chunk` over the resident column `old`: the sections
/// whose blocks did not change keep `old`'s (with `chunk`'s biomes and light),
/// and the sections whose blocks changed remesh. `relight` says the packet's
/// light is from before the server's relight (a Horizon server's bulk edit), so
/// the column and its neighbours are lit here; another server's packet already
/// carries the light vanilla applies, so no light job is queued for it.
fn take_resent_column(
world: &mut World,
key: (i32, i32),
old: &Chunk,
mut chunk: Chunk,
relight: bool,
) {
// The cells whose blocks changed, by section: they remesh with the neighbours within a block of them (as
// vanilla's `setBlocksDirty`), not every section round each section changed (which, for the few blocks a
// section often changes in a bulk edit, is mostly sections that did not).
let mut cells = crate::light::LightChanges::default();
cells.keyed(world.layout());
let kept = keep_unchanged_sections(old, &mut chunk, &mut cells);
chunk.light_loaded = old.light_loaded;
chunk.lit = true;
world.chunks.insert(key, Arc::new(chunk));
world.revision = world.revision.wrapping_add(1);
// A section with new biomes and the same blocks remeshes now (its tint), with its neighbours, whose tint
// blends across the border: above and below too, as a block's tint can sample the biome quart of the
// section next to it (`BiomeManager.getBiome`'s zoom reaches a quart beyond the block).
Streaming::light_updated(world, key.0, key.1, &kept.biomes);
// A section with the same blocks and new light takes the packet's light (vanilla's
// `handleLevelChunkWithLight` always applies it) and remeshes as a light update would.
Streaming::light_updated(world, key.0, key.1, &kept.light);
if !kept.blocks {
return;
}
if relight {
for dz in -1..=1 {
for dx in -1..=1 {
world.dirty_light.insert((key.0 + dx, key.1 + dz));
}
}
}
cells.dirty_sections(|section| {
world.dirty_sections.insert(section);
});
}
/// Whether two sections' packed light (4,096 cells) holds the same values.
fn same_light(a: &crate::chunk::Light, b: &crate::chunk::Light) -> bool {
a.same_as(b)
@@ -4215,6 +4241,42 @@ mod tests {
);
}
}
fn resident_column(world: &mut World, light: u8) -> Chunk {
let mut chunk = Chunk::empty(2, -3);
chunk.set(1, 10, 1, 1);
Arc::make_mut(&mut chunk.sections[0]).light = crate::chunk::Light::Uniform(light);
chunk.lit = true;
world.chunks.insert((2, -3), Arc::new(chunk.clone()));
chunk
}
/// A server's resent column uses the light in its packet, as vanilla's
/// `handleLevelChunkWithLight` does: only a Horizon server's bulk edit,
/// whose packet light is from before its relight, is relit here. A proxy's
/// next server resends its whole world at the same coordinates, and
/// relighting every column and its neighbours is work that world never
/// asked for (#10273).
#[test]
fn a_resent_column_is_relit_only_for_a_horizon_servers_bulk_edit() {
for relight in [false, true] {
let mut world = World::new(horizon_world::registry::BlockStateId(0), 0);
let old = resident_column(&mut world, 0x50);
let mut new = old.clone();
new.set(1, 10, 1, 2);
Arc::make_mut(&mut new.sections[0]).light = crate::chunk::Light::Uniform(0xF0);
take_resent_column(&mut world, (2, -3), &old, new, relight);
let chunk = &world.chunks[&(2, -3)];
assert_eq!(chunk.block(1, 10, 1).0, 2);
// The packet's light is what the column shows.
assert_eq!(chunk.sections[0].light.get(0), 0xF0);
// The changed section remeshes either way.
assert!(world.dirty_sections.contains(&(2, 0, -3)));
// Only a Horizon bulk edit queues light work, for the column and
// its eight neighbours.
assert_eq!(world.dirty_light.len(), if relight { 9 } else { 0 });
}
}
}
#[cfg(test)]
+197 -36
View File
@@ -12,7 +12,11 @@ use crate::{
scoreboard::{Comp, NumberFormat, Objective, RenderType, Scoreboard, comp_text},
text::Text,
};
use std::{borrow::Cow, cmp::Ordering, collections::HashMap};
use std::{
borrow::Cow,
cmp::Ordering,
collections::{HashMap, HashSet},
};
/// `GameType.SPECTATOR` id.
pub const SPECTATOR: i32 = 3;
@@ -124,10 +128,18 @@ pub fn face(
}
}
/// `Hud.extractTabList`: whether the list shows. A single-player world
/// shows it only with another listed player or a `list` objective.
pub fn visible(key_down: bool, local_server: bool, listed: usize, objective: bool) -> bool {
key_down && !(local_server && listed <= 1 && !objective)
/// `Hud.extractTabList`: whether the list shows. `Hud.extractRenderState`
/// only calls it inside `if (!isHidden)`, so F1 takes the list away whatever
/// else holds it up. A single-player world shows it only with another listed
/// player or a `list` objective.
pub fn visible(
hud_shown: bool,
key_down: bool,
local_server: bool,
listed: usize,
objective: bool,
) -> bool {
hud_shown && key_down && !(local_server && listed <= 1 && !objective)
}
/// `Options.getBackgroundColor(553648127)`: the row background.
@@ -146,12 +158,14 @@ fn compare_utf16(a: &str, b: &str) -> Ordering {
/// `String.compareToIgnoreCase` (per code point: upper then lower case).
fn compare_ignore_case(a: &str, b: &str) -> Ordering {
fn simple(c: char, upper: bool) -> char {
let mut it: Box<dyn Iterator<Item = char>> = if upper {
Box::new(c.to_uppercase())
let pair = if upper {
let mut it = c.to_uppercase();
(it.next(), it.next())
} else {
Box::new(c.to_lowercase())
let mut it = c.to_lowercase();
(it.next(), it.next())
};
match (it.next(), it.next()) {
match pair {
(Some(m), None) => m,
_ => c,
}
@@ -181,23 +195,25 @@ fn compare_ignore_case(a: &str, b: &str) -> Ordering {
/// list order first, spectators last, team name, profile name ignoring
/// case), at most 80 players.
pub fn sorted_players<'a>(players: &'a [TabPlayer], board: &Scoreboard) -> Vec<&'a TabPlayer> {
let team = |p: &TabPlayer| {
board
.players_team(&p.name)
.map_or("", |t| t.name.as_str())
.to_owned()
};
let mut out: Vec<&TabPlayer> = players.iter().collect();
out.sort_by(|a, b| {
let mut out: Vec<_> = players
.iter()
.map(|p| {
(
p,
board.players_team(&p.name).map_or("", |t| t.name.as_str()),
)
})
.collect();
out.sort_by(|(a, team_a), (b, team_b)| {
a.list_order
.wrapping_neg()
.cmp(&b.list_order.wrapping_neg())
.then_with(|| (a.game_mode == SPECTATOR).cmp(&(b.game_mode == SPECTATOR)))
.then_with(|| compare_utf16(&team(a), &team(b)))
.then_with(|| compare_utf16(team_a, team_b))
.then_with(|| compare_ignore_case(&a.name, &b.name))
});
out.truncate(80);
out
out.into_iter().map(|(p, _)| p).collect()
}
/// What `setVisible(true)` has the narrator say:
@@ -339,6 +355,26 @@ pub struct TabList {
pub footer: Option<Text>,
visible: bool,
health: HashMap<u128, HealthState>,
cache: Option<LayoutCache>,
order: Option<(Vec<TabPlayer>, Scoreboard, Vec<u128>)>,
}
#[derive(Clone)]
struct LayoutCache {
players: Vec<TabPlayer>,
board: Scoreboard,
objective: Option<Objective>,
header: Option<Text>,
footer: Option<Text>,
language: Option<std::sync::Arc<crate::lang::Language>>,
dimensions: (i32, bool, u32, u64),
flags: Vec<(bool, bool)>,
draws: Vec<GuiDraw>,
hearts: Vec<(usize, i32, i32, i32, u128, i32)>,
}
impl std::fmt::Debug for LayoutCache {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
f.debug_struct("LayoutCache").finish_non_exhaustive()
}
}
struct Entry {
name: Text,
@@ -363,10 +399,87 @@ impl TabList {
self.header = None;
self.footer = None;
}
/// `extractRenderState`.
/// Share the cached display order with skin residency selection.
pub fn displayed_ids(&mut self, players: &[TabPlayer], board: &Scoreboard) -> &[u128] {
if self.order.as_ref().is_none_or(|(old, previous, _)| {
old.len() != players.len()
|| old.iter().zip(players).any(|(a, b)| {
a.uuid != b.uuid
|| a.name != b.name
|| a.list_order != b.list_order
|| a.game_mode != b.game_mode
})
|| previous != board
}) {
let ids = sorted_players(players, board)
.iter()
.map(|p| p.uuid)
.collect();
self.order = Some((players.to_vec(), board.clone(), ids));
}
&self.order.as_ref().unwrap().2
}
/// `extractRenderState`: retain text, measurements and geometry, not animated hearts.
pub fn layout(&mut self, i: &TabInputs, font: &Font) -> Vec<GuiDraw> {
let language = crate::lang::current();
let dimensions = (i.screen_width, i.online_mode, i.background, font.epoch());
let flags: Vec<_> = i
.players
.iter()
.map(|p| ((i.upside_down)(p.uuid), (i.horizon)(p.uuid)))
.collect();
let valid = self.cache.as_ref().is_some_and(|c| {
c.players == i.players
&& c.board == *i.board
&& c.objective.as_ref() == i.objective
&& c.header == self.header
&& c.footer == self.footer
&& c.dimensions == dimensions
&& c.flags == flags
&& match (&c.language, &language) {
(Some(a), Some(b)) => std::sync::Arc::ptr_eq(a, b),
(None, None) => true,
_ => false,
}
});
if !valid {
let mut hearts = Vec::new();
let draws = self.build_layout(i, font, &mut hearts);
self.cache = Some(LayoutCache {
players: i.players.to_vec(),
board: i.board.clone(),
objective: i.objective.cloned(),
header: self.header.clone(),
footer: self.footer.clone(),
language,
dimensions,
flags,
draws,
hearts,
});
}
let cache = self.cache.take().unwrap();
let mut out = Vec::with_capacity(cache.draws.len());
let mut start = 0;
for &(at, y, left, right, id, score) in &cache.hearts {
out.extend_from_slice(&cache.draws[start..at]);
self.hearts(y, left, right, id, score, i.gui_ticks, font, &mut out);
start = at;
}
out.extend_from_slice(&cache.draws[start..]);
self.cache = Some(cache);
out
}
fn build_layout(
&mut self,
i: &TabInputs,
font: &Font,
hearts: &mut Vec<(usize, i32, i32, i32, u128, i32)>,
) -> Vec<GuiDraw> {
let width = |t: &Text| font.width_text(t) as i32;
let players = sorted_players(i.players, i.board);
let ids = self.displayed_ids(i.players, i.board);
let by_id: HashMap<_, _> = i.players.iter().map(|p| (p.uuid, p)).collect();
let players: Vec<_> = ids.iter().map(|id| by_id[id]).collect();
let spacer = font.width(" ") as i32;
let mut max_name = 0;
let mut max_score = 0;
@@ -409,8 +522,8 @@ impl TabList {
entries.push(entry);
}
if !self.health.is_empty() {
self.health
.retain(|id, _| players.iter().any(|p| p.uuid == *id));
let displayed: HashSet<_> = players.iter().map(|p| p.uuid).collect();
self.health.retain(|id, _| displayed.contains(id));
}
let slots = players.len() as i32;
let mut rows = slots;
@@ -524,16 +637,7 @@ impl TabList {
let right = left + width_for_score;
if right - left > 5 {
if objective.render_type == RenderType::Hearts {
self.hearts(
yo,
left,
right,
p.uuid,
entry.score,
i.gui_ticks,
font,
&mut out,
);
hearts.push((out.len(), yo, left, right, p.uuid, entry.score));
} else if let Some(text) = &entry.formatted {
out.push(GuiDraw::Text {
text: text.clone(),
@@ -683,6 +787,60 @@ mod tests {
assert!(list.set_visible(true));
}
#[test]
fn cached_tab_layout_matches_rebuilt_layout_and_animated_health() {
let font = Font::metrics(std::path::Path::new("missing-tab-test-resources"));
let mut board = Scoreboard::default();
board.add_objective(
"hp",
"dummy",
serde_json::json!("hp"),
RenderType::Hearts,
false,
None,
);
board.add_team("red");
board.add_to_team("Alice", "red");
board.score_mut("Alice", "hp").value = 20;
let mut players = vec![TabPlayer::new(1, "Alice"), TabPlayer::new(2, "Bob")];
let mut cached = TabList::default();
let mut fresh = TabList::default();
cached.header = Some(Text::literal("Header"));
fresh.header = cached.header.clone();
for frame in 0..40 {
match frame {
2 => {
players[0].display_name =
Some(serde_json::json!({"text": "Changed", "obfuscated": true}))
}
3 => board.team_mut("red").unwrap().prefix = serde_json::json!("prefix"),
4 => board.score_mut("Alice", "hp").value = 9,
5 => players.push(TabPlayer::new(3, "Charlie")),
6 => {
players.pop();
}
_ => {}
}
let inputs = TabInputs {
players: &players,
board: &board,
objective: board.objective("hp"),
screen_width: if frame < 7 { 400 } else { 300 },
online_mode: true,
gui_ticks: frame,
background: 0x20ffffff,
upside_down: &|_| false,
horizon: &|_| false,
};
fresh.cache = None;
assert_eq!(
cached.layout(&inputs, &font),
fresh.layout(&inputs, &font),
"frame {frame}"
);
}
}
#[test]
fn order_ping_and_skins() {
let board = Scoreboard::default();
@@ -702,8 +860,11 @@ mod tests {
assert_eq!(ping_sprite(1000), "icon/ping_1");
// UUID.hashCode of 0 is 0: the first default skin.
assert_eq!(default_skin(0), "entity/player/slim/alex");
assert!(!visible(true, true, 1, false));
assert!(visible(true, true, 1, true));
assert!(visible(true, false, 1, false));
assert!(!visible(true, true, true, 1, false));
assert!(visible(true, true, true, 1, true));
assert!(visible(true, true, false, 1, false));
// F1 (`Hud.isHidden`) takes the list away however it was held up.
assert!(!visible(false, true, false, 2, false));
assert!(!visible(false, true, true, 1, true));
}
}
@@ -72,10 +72,7 @@
"horizon.mods.settings": "Instellings",
"horizon.mods.in_world": " (los die wêreld om te verander)",
"horizon.mods.open_folder": "Maak Mod-lêergids oop",
"horizon.shader_packs.empty": "Geen shader packs: plaas dit in die shaderpacks-lêergids",
"horizon.shader_options.open": "Shader-opsies...",
"horizon.shader_options.profile": "Profiel",
"horizon.shader_options.loading": "Lees tans die shader-pakket se opsies...",
"horizon.agent.copy_details": "Kopieer verbindingbesonderhede",
"horizon.multiplayer.join": "Sluit aan",
"horizon.multiplayer.cancel_reconnecting": "Kanselleer Herkoppel",
@@ -475,5 +472,22 @@
"horizon.extras.cosmetics_hide_fx.tooltip": "Ander spelers se spore en auras bly versteek; hul ander kosmetiese items wys steeds. By verstek af.",
"horizon.extras.cosmetics.shown": "Getoon",
"horizon.extras.cosmetics.hidden": "Versteek",
"horizon.extras.cosmetics.name_tags": "Slegs naamplaatjies"
"horizon.extras.cosmetics.name_tags": "Slegs naamplaatjies",
"Installed": "Geïnstalleer",
"Apply": "Pas toe",
"Reset all options": "Stel alle opsies terug",
"A Horizon shader pack.": "'n Horizon-skadupakket.",
"An OptiFine or Iris shader pack.": "'n OptiFine- of Iris-skadupakket.",
"In use: press to turn shaders off.": "In gebruik: druk om skadus af te skakel.",
"Press to use it.": "Druk om dit te gebruik.",
"Put shader pack .zip files or folders in it.": "Sit skadupakket-.zip-lêers of -vouers daarin.",
"Puts every option of this pack back to its default.": "Stel elke opsie van hierdie pakket terug na sy verstek.",
"Sets many options at once, as the pack groups them.": "Stel baie opsies op een slag, soos die pakket hulle groepeer.",
"No shader packs yet: open the pack folder and put some in it.": "Nog geen skadupakkette nie: maak die pakketvouer oop en sit 'n paar daarin.",
"Pick a shader pack. Picking the one in use turns shaders off.": "Kies 'n skadupakket. As jy die een in gebruik kies, word skadus afgeskakel.",
"Changed options apply with Apply, or when you leave.": "Gewysigde opsies word toegepas met Pas toe, of wanneer jy verlaat.",
"Pack settings": "Pakketopsies",
"Built-in settings": "Ingeboude opsies",
"%s settings": "%s-opsies",
"Settings made by the pack's author: they change only this pack.": "Opsies deur die pakket se skepper: hulle verander net hierdie pakket."
}
@@ -77,10 +77,7 @@
"horizon.mods.settings": "الإعدادات",
"horizon.mods.in_world": " (اترك العالم ليتغير)",
"horizon.mods.open_folder": "افتح مجلد التعديل",
"horizon.shader_packs.empty": "لا توجد حزم تظليل: ضعها في مجلدshaderpacks",
"horizon.shader_options.open": "خيارات التظليل...",
"horizon.shader_options.profile": "الملف الشخصي",
"horizon.shader_options.loading": "قراءة خيارات حزمة التظليل...",
"horizon.agent.copy_details": "نسخ تفاصيل الاتصال",
"horizon.multiplayer.join": "انضم",
"horizon.multiplayer.cancel_reconnecting": "إلغاء إعادة الاتصال",
@@ -494,5 +491,22 @@
"horizon.extras.cosmetics_hide_fx.tooltip": "تبقى آثار وهالات اللاعبين الآخرين مخفية؛ وتظل مستحضراتهم الأخرى ظاهرة. معطّل افتراضيًا.",
"horizon.extras.cosmetics.shown": "معروض",
"horizon.extras.cosmetics.hidden": "مخفي",
"horizon.extras.cosmetics.name_tags": "علامات الاسم فقط"
"horizon.extras.cosmetics.name_tags": "علامات الاسم فقط",
"Installed": "المثبّتة",
"Apply": "تطبيق",
"Reset all options": "إعادة ضبط كل الخيارات",
"A Horizon shader pack.": "حزمة شيدر من Horizon.",
"An OptiFine or Iris shader pack.": "حزمة شيدر من OptiFine أو Iris.",
"In use: press to turn shaders off.": "قيد الاستخدام: اضغط لإيقاف الشيدرات.",
"Press to use it.": "اضغط لاستخدامها.",
"Put shader pack .zip files or folders in it.": "ضع ملفات .zip أو مجلدات حزم الشيدر فيه.",
"Puts every option of this pack back to its default.": "يعيد كل خيار في هذه الحزمة إلى قيمته الافتراضية.",
"Sets many options at once, as the pack groups them.": "يضبط عدة خيارات دفعة واحدة، كما تجمعها الحزمة.",
"No shader packs yet: open the pack folder and put some in it.": "لا توجد حزم شيدر بعد: افتح مجلد الحزم وضع بعضها فيه.",
"Pick a shader pack. Picking the one in use turns shaders off.": "اختر حزمة شيدر. اختيار الحزمة قيد الاستخدام يوقف الشيدرات.",
"Changed options apply with Apply, or when you leave.": "تُطبَّق الخيارات المعدّلة بزر تطبيق، أو عند المغادرة.",
"Pack settings": "إعدادات الحزمة",
"Built-in settings": "الإعدادات المدمجة",
"%s settings": "إعدادات %s",
"Settings made by the pack's author: they change only this pack.": "إعدادات وضعها مؤلف الحزمة: تؤثر على هذه الحزمة فقط."
}
@@ -71,10 +71,7 @@
"horizon.mods.settings": "Parametrlər",
"horizon.mods.in_world": " (Dəyişmək üçün dünyanı tərk et)",
"horizon.mods.open_folder": "Mod Qovluğunu açın",
"horizon.shader_packs.empty": "Şeyder paketləri yoxdur: onları shaderpacks qovluğuna qoyun",
"horizon.shader_options.open": "Shader Seçimləri...",
"horizon.shader_options.profile": "Profil",
"horizon.shader_options.loading": "Şeyder paketinin seçimləri oxunur...",
"horizon.agent.copy_details": "Bağlantı təfərrüatlarını kopyalayın",
"horizon.multiplayer.join": "Qoşulun",
"horizon.multiplayer.cancel_reconnecting": "Yenidən qoşulmanı ləğv edin",
@@ -466,5 +463,22 @@
"horizon.extras.cosmetics_hide_fx.tooltip": "Digər oyunçuların izləri və auraları gizli qalır; digər kosmetikaları görünməyə davam edir. Defolt olaraq söndürülüb.",
"horizon.extras.cosmetics.shown": "Göstərildi",
"horizon.extras.cosmetics.hidden": "Gizli",
"horizon.extras.cosmetics.name_tags": "Yalnız ad etiketləri"
"horizon.extras.cosmetics.name_tags": "Yalnız ad etiketləri",
"Installed": "Quraşdırılmış",
"Apply": "Tətbiq et",
"Reset all options": "Bütün seçimləri sıfırla",
"A Horizon shader pack.": "Horizon şeyder paketi.",
"An OptiFine or Iris shader pack.": "OptiFine və ya Iris şeyder paketi.",
"In use: press to turn shaders off.": "İstifadədədir: şeyderləri söndürmək üçün basın.",
"Press to use it.": "İstifadə etmək üçün basın.",
"Put shader pack .zip files or folders in it.": "Şeyder paketlərinin .zip fayllarını və ya qovluqlarını bura qoyun.",
"Puts every option of this pack back to its default.": "Bu paketin bütün seçimlərini ilkin dəyərinə qaytarır.",
"Sets many options at once, as the pack groups them.": "Paketin qruplaşdırdığı kimi, bir çox seçimi birdən təyin edir.",
"No shader packs yet: open the pack folder and put some in it.": "Hələ şeyder paketi yoxdur: paket qovluğunu açıb bir neçəsini qoyun.",
"Pick a shader pack. Picking the one in use turns shaders off.": "Şeyder paketi seçin. İstifadədə olanı seçmək şeyderləri söndürür.",
"Changed options apply with Apply, or when you leave.": "Dəyişdirilmiş seçimlər Tətbiq et ilə və ya çıxdıqda tətbiq olunur.",
"Pack settings": "Paket seçimləri",
"Built-in settings": "Daxili seçimlər",
"%s settings": "%s seçimləri",
"Settings made by the pack's author: they change only this pack.": "Paketin müəllifinin yaratdığı seçimlər: yalnız bu paketə təsir edir."
}
@@ -74,10 +74,7 @@
"horizon.mods.settings": "Көйләүҙәр",
"horizon.mods.in_world": " (донъяны үҙгәртергә ҡалдырырға)",
"horizon.mods.open_folder": "Мод папкаһын асыу",
"horizon.shader_packs.empty": "Шейдер пакеттары юҡ: уларҙы шейдерпакеттар папкаһына һалығыҙ",
"horizon.shader_options.open": "Шейдер варианттары...",
"horizon.shader_options.profile": "Профиль",
"horizon.shader_options.loading": "Шейдер пакетының варианттарын уҡыу...",
"horizon.agent.copy_details": "Тоташыу тураһында мәғлүмәтте күсерергә",
"horizon.multiplayer.join": "Ҡушылыу",
"horizon.multiplayer.cancel_reconnecting": "Яңынан тоташтырыуҙы юҡҡа сығарыу",
@@ -492,5 +489,22 @@
"horizon.extras.cosmetics_hide_fx.tooltip": "Башҡа уйынсыларҙың эҙҙәре һәм ауралары йәшерен ҡала; уларҙың башҡа косметикаһы күренә. Ғәҙәттә һүндерелгән.",
"horizon.extras.cosmetics.shown": "Күрһәтелгән",
"horizon.extras.cosmetics.hidden": "Йәшерен",
"horizon.extras.cosmetics.name_tags": "Исем билдәләре генә"
"horizon.extras.cosmetics.name_tags": "Исем билдәләре генә",
"Installed": "Урынлаштырылған",
"Apply": "Ҡулланырға",
"Reset all options": "Бөтә көйләүҙәрҙе ташларға",
"A Horizon shader pack.": "Horizon шейдер пакеты.",
"An OptiFine or Iris shader pack.": "OptiFine йәки Iris шейдер пакеты.",
"In use: press to turn shaders off.": "Ҡулланыла: шейдерҙарҙы һүндереү өсөн баҫығыҙ.",
"Press to use it.": "Ҡулланыу өсөн баҫығыҙ.",
"Put shader pack .zip files or folders in it.": "Шейдер пакеттарының .zip файлдарын йәки папкаларын шунда һалығыҙ.",
"Puts every option of this pack back to its default.": "Был пакеттың һәр көйләүен ғәҙәти хәленә ҡайтара.",
"Sets many options at once, as the pack groups them.": "Пакет төркөмләгәнсә, күп көйләүҙе бер юлы урынлаштыра.",
"No shader packs yet: open the pack folder and put some in it.": "Шейдер пакеттары әлегә юҡ: пакеттар папкаһын асып, берәй нисәһен һалығыҙ.",
"Pick a shader pack. Picking the one in use turns shaders off.": "Шейдер пакетын һайлағыҙ. Ҡулланылғанын һайлау шейдерҙарҙы һүндерә.",
"Changed options apply with Apply, or when you leave.": "Үҙгәртелгән көйләүҙәр «Ҡулланырға» менән йәки сыҡҡанда ҡулланыла.",
"Pack settings": "Пакет көйләүҙәре",
"Built-in settings": "Эске көйләүҙәр",
"%s settings": "%s көйләүҙәре",
"Settings made by the pack's author: they change only this pack.": "Пакет авторы төҙөгән көйләүҙәр: улар тик был пакетты үҙгәртә."
}
@@ -72,10 +72,7 @@
"horizon.mods.settings": "Налады",
"horizon.mods.in_world": " (пакінуць свет змяніцца)",
"horizon.mods.open_folder": "Адкрыць тэчку Mod",
"horizon.shader_packs.empty": "Пакетаў шэйдэраў няма: змесціце іх у тэчку шэйдэраў",
"horizon.shader_options.open": "Параметры шэйдара...",
"horizon.shader_options.profile": "Профіль",
"horizon.shader_options.loading": "Чытанне параметраў пакета шэйдараў...",
"horizon.agent.copy_details": "Скапіруйце звесткі аб падключэнні",
"horizon.multiplayer.join": "Далучайцеся",
"horizon.multiplayer.cancel_reconnecting": "Адмяніць паўторнае падключэнне",
@@ -478,5 +475,22 @@
"horizon.extras.cosmetics_hide_fx.tooltip": "Сляды і аўры іншых гульцоў схаваныя; іх астатняя касметыка бачная. Па змаўчанні выкл.",
"horizon.extras.cosmetics.shown": "Паказана",
"horizon.extras.cosmetics.hidden": "Схаваны",
"horizon.extras.cosmetics.name_tags": "Толькі біркі з імёнамі"
"horizon.extras.cosmetics.name_tags": "Толькі біркі з імёнамі",
"Installed": "Усталяваныя",
"Apply": "Ужыць",
"Reset all options": "Скінуць усе налады",
"A Horizon shader pack.": "Пакет шэйдараў Horizon.",
"An OptiFine or Iris shader pack.": "Пакет шэйдараў OptiFine або Iris.",
"In use: press to turn shaders off.": "Выкарыстоўваецца: націсніце, каб выключыць шэйдары.",
"Press to use it.": "Націсніце, каб выкарыстаць.",
"Put shader pack .zip files or folders in it.": "Пакладзіце ў яе .zip-файлы або папкі пакетаў шэйдараў.",
"Puts every option of this pack back to its default.": "Вяртае ўсе налады гэтага пакета да прадвызначаных.",
"Sets many options at once, as the pack groups them.": "Задае адразу многія налады так, як іх групуе пакет.",
"No shader packs yet: open the pack folder and put some in it.": "Пакетаў шэйдараў пакуль няма: адкрыйце папку пакетаў і пакладзіце туды некалькі.",
"Pick a shader pack. Picking the one in use turns shaders off.": "Выберыце пакет шэйдараў. Выбар пакета, які выкарыстоўваецца, выключае шэйдары.",
"Changed options apply with Apply, or when you leave.": "Змененыя налады ўжываюцца кнопкай «Ужыць» або пры выхадзе.",
"Pack settings": "Налады пакета",
"Built-in settings": "Убудаваныя налады",
"%s settings": "Налады %s",
"Settings made by the pack's author: they change only this pack.": "Налады, зробленыя аўтарам пакета: яны змяняюць толькі гэты пакет."
}
@@ -70,10 +70,7 @@
"horizon.mods.settings": "Настройки",
"horizon.mods.in_world": " (оставете света да се промени)",
"horizon.mods.open_folder": "Отворете папката на Mod",
"horizon.shader_packs.empty": "Без шейдър пакети: поставете ги в папката shaderpacks",
"horizon.shader_options.open": "Опции за шейдър...",
"horizon.shader_options.profile": "Профил",
"horizon.shader_options.loading": "Четене на опциите на шейдър пакета...",
"horizon.agent.copy_details": "Копиране на подробности за връзката",
"horizon.multiplayer.join": "Присъединете се",
"horizon.multiplayer.cancel_reconnecting": "Отказ Повторно свързване",
@@ -474,5 +471,22 @@
"horizon.extras.cosmetics.shown": "Показано",
"horizon.extras.cosmetics.hidden": "Скрити",
"horizon.extras.cosmetics.name_tags": "Само етикети с имена",
"Shader Packs...": "Шейдър пакети..."
"Shader Packs...": "Шейдър пакети...",
"Installed": "Инсталирани",
"Apply": "Приложи",
"Reset all options": "Нулирай всички опции",
"A Horizon shader pack.": "Пакет шейдъри на Horizon.",
"An OptiFine or Iris shader pack.": "Пакет шейдъри на OptiFine или Iris.",
"In use: press to turn shaders off.": "В употреба: натиснете, за да изключите шейдърите.",
"Press to use it.": "Натиснете, за да го използвате.",
"Put shader pack .zip files or folders in it.": "Сложете в нея .zip файлове или папки с пакети шейдъри.",
"Puts every option of this pack back to its default.": "Връща всяка опция на този пакет към стойността по подразбиране.",
"Sets many options at once, as the pack groups them.": "Задава много опции наведнъж, както ги групира пакетът.",
"No shader packs yet: open the pack folder and put some in it.": "Още няма пакети шейдъри: отворете папката с пакети и сложете няколко.",
"Pick a shader pack. Picking the one in use turns shaders off.": "Изберете пакет шейдъри. Изборът на използвания го изключва.",
"Changed options apply with Apply, or when you leave.": "Променените опции се прилагат с Приложи или при излизане.",
"Pack settings": "Настройки на пакета",
"Built-in settings": "Вградени настройки",
"%s settings": "Настройки на %s",
"Settings made by the pack's author: they change only this pack.": "Настройки, направени от автора на пакета: променят само този пакет."
}
@@ -72,10 +72,7 @@
"horizon.mods.settings": "Arventennoù",
"horizon.mods.in_world": " (lezel ar bed da cheñch)",
"horizon.mods.open_folder": "Digeriñ an teuliad mod",
"horizon.shader_packs.empty": "Pakad skeudennoù ebet : lakait anezho e teuliad ar pakadoù skeudennoù",
"horizon.shader_options.open": "Dibarzhioù skeudenniñ...",
"horizon.shader_options.profile": "Profil",
"horizon.shader_options.loading": "O lenn dibaboù ar pakad skeudennoù...",
"horizon.agent.copy_details": "Eilañ munudoù ar c'hennask",
"horizon.multiplayer.join": "Kemer perzh",
"horizon.multiplayer.cancel_reconnecting": "Nullañ an adkennaskañ",
@@ -477,5 +474,22 @@
"horizon.extras.cosmetics_hide_fx.tooltip": "Kuzhet e chom roudoù hag aouraoù ar c'hoarierien all; diskouezet e vez o c'hinkladurioù all. Diweredekaet dre ziouer.",
"horizon.extras.cosmetics.shown": "Diskouezet",
"horizon.extras.cosmetics.hidden": "Kuzhet",
"horizon.extras.cosmetics.name_tags": "Tikedennoù anvioù hepken"
"horizon.extras.cosmetics.name_tags": "Tikedennoù anvioù hepken",
"Installed": "Staliet",
"Apply": "Arloañ",
"Reset all options": "Adderaouekaat an holl zibarzhioù",
"A Horizon shader pack.": "Ur pakad skeudennerioù Horizon.",
"An OptiFine or Iris shader pack.": "Ur pakad skeudennerioù OptiFine pe Iris.",
"In use: press to turn shaders off.": "Implijet: pouezit evit lazhañ ar skeudennerioù.",
"Press to use it.": "Pouezit evit e implijout.",
"Put shader pack .zip files or folders in it.": "Lakait e-barzh restroù .zip pe teuliadoù pakadoù skeudennerioù.",
"Puts every option of this pack back to its default.": "Adlakaat a ra pep dibarzh eus ar pakad-mañ d'e dalvoudegezh dre ziouer.",
"Sets many options at once, as the pack groups them.": "Lakaat a ra kalz dibarzhioù war un dro, evel ma vez strollet gant ar pakad.",
"No shader packs yet: open the pack folder and put some in it.": "Pakad skeudennerioù ebet c'hoazh: digorit teuliad ar pakadoù ha lakait un nebeut e-barzh.",
"Pick a shader pack. Picking the one in use turns shaders off.": "Dibabit ur pakad skeudennerioù. Dibab an hini implijet a laz ar skeudennerioù.",
"Changed options apply with Apply, or when you leave.": "An dibarzhioù cheñchet a vez arloet gant Arloañ, pe pa guitait.",
"Pack settings": "Arventennoù ar pakad",
"Built-in settings": "Arventennoù enframmet",
"%s settings": "Arventennoù %s",
"Settings made by the pack's author: they change only this pack.": "Arventennoù graet gant oberer ar pakad: cheñch a reont nemet ar pakad-mañ."
}
@@ -58,10 +58,7 @@
"horizon.mods.settings": "Postavke",
"horizon.mods.in_world": " (ostavi svijet da se promijeni)",
"horizon.mods.open_folder": "Otvorite Mod folder",
"horizon.shader_packs.empty": "Nema paketa shadera: stavite ih u mapu shaderpacks",
"horizon.shader_options.open": "Opcije shadera...",
"horizon.shader_options.profile": "Profil",
"horizon.shader_options.loading": "Čitanje opcija paketa shadera...",
"horizon.agent.copy_details": "Kopiraj detalje veze",
"horizon.multiplayer.join": "Pridružite se",
"horizon.multiplayer.cancel_reconnecting": "Otkaži ponovno povezivanje",
@@ -419,5 +416,22 @@
"horizon.extras.cosmetics.shown": "Prikazano",
"horizon.extras.cosmetics.hidden": "Skriveno",
"horizon.extras.cosmetics.name_tags": "Samo oznake sa imenom",
"Shader Packs...": "Shader paketi..."
"Shader Packs...": "Shader paketi...",
"Installed": "Instalirani",
"Apply": "Primijeni",
"Reset all options": "Resetuj sve opcije",
"A Horizon shader pack.": "Horizon paket šejdera.",
"An OptiFine or Iris shader pack.": "OptiFine ili Iris paket šejdera.",
"In use: press to turn shaders off.": "U upotrebi: pritisni da isključiš šejdere.",
"Press to use it.": "Pritisni da ga koristiš.",
"Put shader pack .zip files or folders in it.": "Stavi u njega .zip datoteke ili mape paketa šejdera.",
"Puts every option of this pack back to its default.": "Vraća svaku opciju ovog paketa na zadanu vrijednost.",
"Sets many options at once, as the pack groups them.": "Postavlja mnogo opcija odjednom, kako ih paket grupiše.",
"No shader packs yet: open the pack folder and put some in it.": "Još nema paketa šejdera: otvori mapu paketa i stavi nekoliko u nju.",
"Pick a shader pack. Picking the one in use turns shaders off.": "Odaberi paket šejdera. Odabir paketa koji se koristi isključuje šejdere.",
"Changed options apply with Apply, or when you leave.": "Promijenjene opcije se primjenjuju pomoću Primijeni ili kada izađeš.",
"Pack settings": "Postavke paketa",
"Built-in settings": "Ugrađene postavke",
"%s settings": "Postavke za %s",
"Settings made by the pack's author: they change only this pack.": "Postavke koje je napravio autor paketa: mijenjaju samo ovaj paket."
}
@@ -69,10 +69,7 @@
"horizon.mods.settings": "Configuració",
"horizon.mods.in_world": " (deixar el món per canviar)",
"horizon.mods.open_folder": "Obriu la carpeta de modificacions",
"horizon.shader_packs.empty": "Sense paquets d'ombres: col·loqueu-los a la carpeta shaderpacks",
"horizon.shader_options.open": "Opcions d'ombrejat...",
"horizon.shader_options.profile": "Perfil",
"horizon.shader_options.loading": "Llegint les opcions del paquet shader...",
"horizon.agent.copy_details": "Copia els detalls de la connexió",
"horizon.multiplayer.join": "Uneix-te",
"horizon.multiplayer.cancel_reconnecting": "Cancel·la la tornada a connectar",
@@ -467,5 +464,22 @@
"horizon.extras.cosmetics.shown": "Es mostra",
"horizon.extras.cosmetics.hidden": "Ocult",
"horizon.extras.cosmetics.name_tags": "Només etiquetes de nom",
"Shader Packs...": "Paquets d'ombres..."
"Shader Packs...": "Paquets d'ombres...",
"Installed": "Instal·lats",
"Apply": "Aplica",
"Reset all options": "Restableix totes les opcions",
"A Horizon shader pack.": "Un paquet de shaders d'Horizon.",
"An OptiFine or Iris shader pack.": "Un paquet de shaders d'OptiFine o Iris.",
"In use: press to turn shaders off.": "En ús: prem per desactivar els shaders.",
"Press to use it.": "Prem per fer-lo servir.",
"Put shader pack .zip files or folders in it.": "Hi pots posar fitxers .zip o carpetes de paquets de shaders.",
"Puts every option of this pack back to its default.": "Torna totes les opcions d'aquest paquet al valor per defecte.",
"Sets many options at once, as the pack groups them.": "Defineix moltes opcions alhora, tal com les agrupa el paquet.",
"No shader packs yet: open the pack folder and put some in it.": "Encara no hi ha cap paquet de shaders: obre la carpeta de paquets i hi poses algun.",
"Pick a shader pack. Picking the one in use turns shaders off.": "Tria un paquet de shaders. Triar el que està en ús desactiva els shaders.",
"Changed options apply with Apply, or when you leave.": "Les opcions canviades s'apliquen amb Aplica, o quan surts.",
"Pack settings": "Configuració del paquet",
"Built-in settings": "Configuració integrada",
"%s settings": "Configuració de %s",
"Settings made by the pack's author: they change only this pack.": "Configuració feta per l'autor del paquet: només canvia aquest paquet."
}
@@ -67,11 +67,7 @@
"horizon.mods.settings": "Nastavení",
"horizon.mods.in_world": " (nechat svět změnit)",
"horizon.mods.open_folder": "Otevřete složku Mod",
"horizon.shader_packs.empty": "Žádné balíčky shaderů: vložte je do složky shaderpacks",
"horizon.shader_packs.kind_horizon": " (Horizont)",
"horizon.shader_options.open": "Možnosti stínování...",
"horizon.shader_options.profile": "Profil",
"horizon.shader_options.loading": "Čtení možností sady shaderů...",
"horizon.agent.copy_details": "Kopírovat podrobnosti o připojení",
"horizon.multiplayer.join": "Připojte se",
"horizon.multiplayer.cancel_reconnecting": "Zrušit opětovné připojení",
@@ -456,5 +452,22 @@
"horizon.extras.cosmetics_hide_fx.tooltip": "Stopy a aury ostatních hráčů zůstanou skryté; jejich ostatní kosmetika je dál vidět. Ve výchozím stavu vypnuto.",
"horizon.extras.cosmetics.shown": "Zobrazeno",
"horizon.extras.cosmetics.hidden": "Skrytá",
"horizon.extras.cosmetics.name_tags": "Pouze jmenovky"
"horizon.extras.cosmetics.name_tags": "Pouze jmenovky",
"Installed": "Nainstalované",
"Apply": "Použít",
"Reset all options": "Obnovit všechny možnosti",
"A Horizon shader pack.": "Balíček shaderů Horizon.",
"An OptiFine or Iris shader pack.": "Balíček shaderů OptiFine nebo Iris.",
"In use: press to turn shaders off.": "Používá se: stisknutím vypnete shadery.",
"Press to use it.": "Stisknutím jej použijete.",
"Put shader pack .zip files or folders in it.": "Vložte do ní soubory .zip nebo složky balíčků shaderů.",
"Puts every option of this pack back to its default.": "Vrátí všechny možnosti tohoto balíčku na výchozí hodnoty.",
"Sets many options at once, as the pack groups them.": "Nastaví mnoho možností najednou, tak jak je balíček seskupuje.",
"No shader packs yet: open the pack folder and put some in it.": "Zatím žádné balíčky shaderů: otevřete složku balíčků a vložte do ní nějaké.",
"Pick a shader pack. Picking the one in use turns shaders off.": "Vyberte balíček shaderů. Výběr používaného balíčku shadery vypne.",
"Changed options apply with Apply, or when you leave.": "Změněné možnosti se použijí tlačítkem Použít nebo při odchodu.",
"Pack settings": "Nastavení balíčku",
"Built-in settings": "Vestavěná nastavení",
"%s settings": "Nastavení %s",
"Settings made by the pack's author: they change only this pack.": "Nastavení vytvořená autorem balíčku: mění jen tento balíček."
}
@@ -73,10 +73,7 @@
"horizon.mods.settings": "Настройкӑсем",
"horizon.mods.in_world": " (тӗнчене улӑштарма хӑвар)",
"horizon.mods.open_folder": "Мод папкине уҫӑр",
"horizon.shader_packs.empty": "Шейдер пакетӗсем ҫук: вӗсене шейдер пакетӗсем папкӑна лартӑр",
"horizon.shader_options.open": "Шейдер опцийӗсем...",
"horizon.shader_options.profile": "Профиль",
"horizon.shader_options.loading": "Шейдер пакетӗн опцийӗсене вулатӑп...",
"horizon.agent.copy_details": "Ҫыхӑну даннӑйӗсене копилесе илӗр",
"horizon.multiplayer.join": "Пӗрлешӗр",
"horizon.multiplayer.cancel_reconnecting": "Ҫӗнӗрен ҫыхӑнассине пӑрахӑҫла",
@@ -488,5 +485,22 @@
"horizon.extras.cosmetics_hide_fx.tooltip": "Ытти вӑййисен йӗрӗсем тата аурисем пытарӑнса юлаҫҫӗ; вӗсен ытти косметики курӑнать. Йӑлана кура сӳнтернӗ.",
"horizon.extras.cosmetics.shown": "Кӑтартнӑ",
"horizon.extras.cosmetics.hidden": "Пытарнӑ",
"horizon.extras.cosmetics.name_tags": "Ят паллисем кӑна"
"horizon.extras.cosmetics.name_tags": "Ят паллисем кӑна",
"Installed": "Лартнă",
"Apply": "Усă курасси",
"Reset all options": "Пур ĕнерлевсене таçтан лартасси",
"A Horizon shader pack.": "Horizon шейдер пакечĕ.",
"An OptiFine or Iris shader pack.": "OptiFine е Iris шейдер пакечĕ.",
"In use: press to turn shaders off.": "Усă курăнать: шейдерсене сӳнтермелли пусăр.",
"Press to use it.": "Усă курма пусăр.",
"Put shader pack .zip files or folders in it.": "Шейдер пакечĕсен .zip файлĕсене е папкисене унта хурăр.",
"Puts every option of this pack back to its default.": "Ку пакетăн пур ĕнерлевне те пуçламăш хакне таврăнтарать.",
"Sets many options at once, as the pack groups them.": "Пакет ушкăнланă евĕр нумай ĕнерлеве пĕр харăсах лартать.",
"No shader packs yet: open the pack folder and put some in it.": "Шейдер пакечĕсем халлĕхе çук: пакетсен папкине уçса темиçе хурăр.",
"Pick a shader pack. Picking the one in use turns shaders off.": "Шейдер пакечĕ суйлăр. Усă куракана суйласан шейдерсем сӳнеççĕ.",
"Changed options apply with Apply, or when you leave.": "Улшăннă ĕнерлевсем «Усă курасси» пусăмпа е тухнă чухне усă курăнаççĕ.",
"Pack settings": "Пакет ĕнерлевĕсем",
"Built-in settings": "Йĕркеленĕ ĕнерлевсем",
"%s settings": "%s ĕнерлевĕсем",
"Settings made by the pack's author: they change only this pack.": "Пакет авторĕ тунă ĕнерлевсем: вĕсем ҫак пакета çеç улăштараççĕ."
}
@@ -67,10 +67,7 @@
"horizon.mods.settings": "Gosodiadau",
"horizon.mods.in_world": " (gadewch y byd i newid)",
"horizon.mods.open_folder": "Agor Ffolder Mod",
"horizon.shader_packs.empty": "Dim pecynnau lliwiwr: rhowch nhw yn y ffolder shaderpacks",
"horizon.shader_options.open": "Opsiynau Shader...",
"horizon.shader_options.profile": "Proffil",
"horizon.shader_options.loading": "Darllen opsiynau'r pecyn lliwiwr...",
"horizon.agent.copy_details": "Copïo Manylion Cysylltiad",
"horizon.multiplayer.join": "Ymuno",
"horizon.multiplayer.cancel_reconnecting": "Canslo Ailgysylltu",
@@ -463,5 +460,22 @@
"horizon.extras.cosmetics_hide_fx.tooltip": "Mae llwybrau ac awrâu chwaraewyr eraill yn aros yn gudd; mae eu colur arall yn dal i ddangos. I ffwrdd yn ddiofyn.",
"horizon.extras.cosmetics.shown": "Dangosir",
"horizon.extras.cosmetics.hidden": "Cudd",
"horizon.extras.cosmetics.name_tags": "Tagiau enw yn unig"
"horizon.extras.cosmetics.name_tags": "Tagiau enw yn unig",
"Installed": "Wedi'u gosod",
"Apply": "Gweithredu",
"Reset all options": "Ailosod pob dewis",
"A Horizon shader pack.": "Pecyn shaders Horizon.",
"An OptiFine or Iris shader pack.": "Pecyn shaders OptiFine neu Iris.",
"In use: press to turn shaders off.": "Yn cael ei ddefnyddio: pwyswch i ddiffodd shaders.",
"Press to use it.": "Pwyswch i'w ddefnyddio.",
"Put shader pack .zip files or folders in it.": "Rhowch ffeiliau .zip neu ffolderi pecynnau shaders ynddo.",
"Puts every option of this pack back to its default.": "Yn rhoi pob dewis o'r pecyn hwn yn ôl i'w ragosodiad.",
"Sets many options at once, as the pack groups them.": "Yn gosod llawer o ddewisiadau ar unwaith, fel mae'r pecyn yn eu grwpio.",
"No shader packs yet: open the pack folder and put some in it.": "Dim pecynnau shaders eto: agorwch ffolder y pecynnau a rhowch rai ynddo.",
"Pick a shader pack. Picking the one in use turns shaders off.": "Dewiswch becyn shaders. Mae dewis yr un sy'n cael ei ddefnyddio yn diffodd shaders.",
"Changed options apply with Apply, or when you leave.": "Mae dewisiadau a newidiwyd yn cael eu gweithredu gyda Gweithredu, neu pan fyddwch yn gadael.",
"Pack settings": "Gosodiadau'r pecyn",
"Built-in settings": "Gosodiadau adeiledig",
"%s settings": "Gosodiadau %s",
"Settings made by the pack's author: they change only this pack.": "Gosodiadau a wnaed gan awdur y pecyn: maent yn newid y pecyn hwn yn unig."
}
@@ -60,10 +60,7 @@
"horizon.mods.settings": "Indstillinger",
"horizon.mods.in_world": " (lad verden ændre sig)",
"horizon.mods.open_folder": "Åbn Mod-mappe",
"horizon.shader_packs.empty": "Ingen shader-pakker: læg dem i shaderpacks-mappen",
"horizon.shader_options.open": "Indstillinger for skygge...",
"horizon.shader_options.profile": "Profil",
"horizon.shader_options.loading": "Læser shader-pakkens muligheder...",
"horizon.agent.copy_details": "Kopier forbindelsesoplysninger",
"horizon.multiplayer.join": "Deltag",
"horizon.multiplayer.cancel_reconnecting": "Annuller Gentilslutning",
@@ -444,5 +441,22 @@
"horizon.extras.cosmetics.shown": "Vist",
"horizon.extras.cosmetics.hidden": "Skjult",
"horizon.extras.cosmetics.name_tags": "Kun navneskilte",
"Shader Packs...": "Shader-pakker..."
"Shader Packs...": "Shader-pakker...",
"Installed": "Installeret",
"Apply": "Anvend",
"Reset all options": "Nulstil alle indstillinger",
"A Horizon shader pack.": "En Horizon-shaderpakke.",
"An OptiFine or Iris shader pack.": "En OptiFine- eller Iris-shaderpakke.",
"In use: press to turn shaders off.": "I brug: tryk for at slå shaders fra.",
"Press to use it.": "Tryk for at bruge den.",
"Put shader pack .zip files or folders in it.": "Læg .zip-filer eller mapper med shaderpakker i den.",
"Puts every option of this pack back to its default.": "Sætter alle denne pakkes indstillinger tilbage til standard.",
"Sets many options at once, as the pack groups them.": "Sætter mange indstillinger på én gang, som pakken grupperer dem.",
"No shader packs yet: open the pack folder and put some in it.": "Ingen shaderpakker endnu: åbn pakkemappen og læg nogle i den.",
"Pick a shader pack. Picking the one in use turns shaders off.": "Vælg en shaderpakke. Vælger du den, der er i brug, slås shaders fra.",
"Changed options apply with Apply, or when you leave.": "Ændrede indstillinger træder i kraft med Anvend, eller når du forlader skærmen.",
"Pack settings": "Pakkeindstillinger",
"Built-in settings": "Indbyggede indstillinger",
"%s settings": "Indstillinger for %s",
"Settings made by the pack's author: they change only this pack.": "Indstillinger lavet af pakkens forfatter: de ændrer kun denne pakke."
}
@@ -65,11 +65,7 @@
"horizon.mods.dev": " (Entwicklung)",
"horizon.mods.settings": "Einstellungen",
"horizon.mods.open_folder": "Modordner öffnen",
"horizon.shader_packs.empty": "Keine Shader-Pakete: Lege sie in den Ordner shaderpacks",
"horizon.shader_packs.kind_horizon": " (Horizon)",
"horizon.shader_options.open": "Shader-Optionen …",
"horizon.shader_options.profile": "Profil",
"horizon.shader_options.loading": "Optionen des Shader-Pakets werden gelesen …",
"horizon.agent.copy_details": "Verbindungsdaten kopieren",
"horizon.multiplayer.join": "Beitreten",
"horizon.multiplayer.cancel_reconnecting": "Neuverbindung abbrechen",
@@ -222,6 +218,8 @@
"horizon.extras.no_ai": "Keine KI",
"horizon.extras.agent_control": "Agentensteuerung",
"horizon.extras.discord_presence": "Discord Rich Presence",
"horizon.extras.zoom": "Zoom",
"horizon.extras.zoom_mod_install": "Zoom: über Mods installieren",
"horizon.extras.fullbright.tooltip": "Zeigt Blöcke und Objekte bei vollem Licht, selbst an dunklen Orten.",
"horizon.extras.dynamic_lights.tooltip": "Fackeln und andere Lichtquellen, die gehalten, fallen gelassen werden oder brennen, beleuchten die Blöcke um sich herum.",
"horizon.extras.own_name_tag.tooltip": "Zeigt deinen Namen in der dritten Person über deinem Kopf an, so wie andere Spieler ihn sehen. Versteckt, wenn der Server die Namen deines Teams verbirgt oder du unsichtbar bist.",
@@ -304,6 +302,23 @@
"Shaders": "Shader",
"Shader packs, Horizon's and shaders/ folder ones, and their options.": "Shader-Pakete, die von Horizon und die aus shaders/-Ordnern, und ihre Optionen.",
"Shader packs": "Shader-Pakete",
"Installed": "Installiert",
"Apply": "Anwenden",
"Reset all options": "Alle Optionen zurücksetzen",
"A Horizon shader pack.": "Ein Horizon-Shader-Paket.",
"An OptiFine or Iris shader pack.": "Ein OptiFine- oder Iris-Shader-Paket.",
"In use: press to turn shaders off.": "In Verwendung: Drücken, um Shader auszuschalten.",
"Press to use it.": "Drücken, um es zu verwenden.",
"Put shader pack .zip files or folders in it.": "Lege Shader-Paket-.zip-Dateien oder -Ordner hinein.",
"Puts every option of this pack back to its default.": "Setzt jede Option dieses Pakets auf den Standardwert zurück.",
"Sets many options at once, as the pack groups them.": "Stellt viele Optionen auf einmal ein, so wie das Paket sie gruppiert.",
"No shader packs yet: open the pack folder and put some in it.": "Noch keine Shader-Pakete: Öffne den Paketordner und lege welche hinein.",
"Pick a shader pack. Picking the one in use turns shaders off.": "Wähle ein Shader-Paket. Das verwendete erneut zu wählen schaltet Shader aus.",
"Changed options apply with Apply, or when you leave.": "Geänderte Optionen gelten mit Anwenden oder beim Verlassen.",
"Pack settings": "Paketeinstellungen",
"Built-in settings": "Integrierte Einstellungen",
"%s settings": "Einstellungen für %s",
"Settings made by the pack's author: they change only this pack.": "Vom Autor des Pakets erstellte Einstellungen: Sie ändern nur dieses Paket.",
"Vanilla's own preset: sets only vanilla's options, as Minecraft does.": "Das Preset von Vanilla: setzt nur die Optionen von Vanilla, wie Minecraft.",
"Fullscreen takes the display over, at the mode below.": "Der Vollbildmodus übernimmt den Bildschirm, im Modus darunter.",
"The display mode exclusive fullscreen uses. Applies when you leave.": "Der Anzeigemodus des exklusiven Vollbilds. Gilt, wenn du das Menü verlässt.",
@@ -67,10 +67,7 @@
"horizon.mods.settings": "Ρυθμίσεις",
"horizon.mods.in_world": " (άσε τον κόσμο να αλλάξει)",
"horizon.mods.open_folder": "Ανοίξτε το φάκελο Mod",
"horizon.shader_packs.empty": "Χωρίς πακέτα shader: τοποθετήστε τα στο φάκελο shaderpacks",
"horizon.shader_options.open": "Επιλογές Shader...",
"horizon.shader_options.profile": "Προφίλ",
"horizon.shader_options.loading": "Διαβάζοντας τις επιλογές του πακέτου shader...",
"horizon.agent.copy_details": "Αντιγραφή στοιχείων σύνδεσης",
"horizon.multiplayer.join": "Εγγραφείτε",
"horizon.multiplayer.cancel_reconnecting": "Ακύρωση επανασύνδεσης",
@@ -466,5 +463,22 @@
"horizon.extras.cosmetics.shown": "Εμφανίζεται",
"horizon.extras.cosmetics.hidden": "Κρυφό",
"horizon.extras.cosmetics.name_tags": "Μόνο ετικέτες ονομάτων",
"Shader Packs...": "Πακέτα Shader..."
"Shader Packs...": "Πακέτα Shader...",
"Installed": "Εγκατεστημένα",
"Apply": "Εφαρμογή",
"Reset all options": "Επαναφορά όλων των επιλογών",
"A Horizon shader pack.": "Ένα πακέτο shader του Horizon.",
"An OptiFine or Iris shader pack.": "Ένα πακέτο shader του OptiFine ή του Iris.",
"In use: press to turn shaders off.": "Σε χρήση: πατήστε για απενεργοποίηση των shader.",
"Press to use it.": "Πατήστε για χρήση.",
"Put shader pack .zip files or folders in it.": "Βάλτε μέσα αρχεία .zip ή φακέλους πακέτων shader.",
"Puts every option of this pack back to its default.": "Επαναφέρει κάθε επιλογή αυτού του πακέτου στην προεπιλογή της.",
"Sets many options at once, as the pack groups them.": "Ορίζει πολλές επιλογές ταυτόχρονα, όπως τις ομαδοποιεί το πακέτο.",
"No shader packs yet: open the pack folder and put some in it.": "Δεν υπάρχουν ακόμη πακέτα shader: ανοίξτε το φάκελο πακέτων και βάλτε μερικά.",
"Pick a shader pack. Picking the one in use turns shaders off.": "Επιλέξτε ένα πακέτο shader. Η επιλογή αυτού που χρησιμοποιείται απενεργοποιεί τα shader.",
"Changed options apply with Apply, or when you leave.": "Οι αλλαγμένες επιλογές εφαρμόζονται με το Εφαρμογή ή όταν φύγετε.",
"Pack settings": "Ρυθμίσεις πακέτου",
"Built-in settings": "Ενσωματωμένες ρυθμίσεις",
"%s settings": "Ρυθμίσεις %s",
"Settings made by the pack's author: they change only this pack.": "Ρυθμίσεις από τον δημιουργό του πακέτου: αλλάζουν μόνο αυτό το πακέτο."
}
@@ -120,11 +120,7 @@
"horizon.mods.switch.worldgen": "changes world generation",
"horizon.mods.switch.registries": "adds blocks, items or other registry entries",
"horizon.mods.switch.restart": "Restart the game to apply %s: they add blocks, items or world generation.",
"horizon.shader_packs.empty": "No shader packs: put them in the shaderpacks folder",
"horizon.shader_packs.kind_horizon": " (Horizon)",
"horizon.shader_options.open": "Shader Options...",
"horizon.shader_options.profile": "Profile",
"horizon.shader_options.loading": "Reading the shader pack's options...",
"horizon.agent.copy_details": "Copy Connection Details",
"horizon.multiplayer.join": "Join",
"horizon.multiplayer.cancel_reconnecting": "Cancel Reconnecting",
@@ -322,6 +318,8 @@
"horizon.extras.no_ai": "No AI",
"horizon.extras.agent_control": "Agent Control",
"horizon.extras.discord_presence": "Discord Rich Presence",
"horizon.extras.zoom": "Zoom",
"horizon.extras.zoom_mod_install": "Zoom: install from Mods",
"horizon.extras.splitscreen": "Splitscreen",
"horizon.extras.chat_animation": "Smooth chat",
"horizon.extras.chat_indicator": "Message indicator",
@@ -495,6 +493,23 @@
"Shaders": "Shaders",
"Shader packs, Horizon's and shaders/ folder ones, and their options.": "Shader packs, Horizon's and shaders/ folder ones, and their options.",
"Shader packs": "Shader packs",
"Installed": "Installed",
"Apply": "Apply",
"Reset all options": "Reset all options",
"A Horizon shader pack.": "A Horizon shader pack.",
"An OptiFine or Iris shader pack.": "An OptiFine or Iris shader pack.",
"In use: press to turn shaders off.": "In use: press to turn shaders off.",
"Press to use it.": "Press to use it.",
"Put shader pack .zip files or folders in it.": "Put shader pack .zip files or folders in it.",
"Puts every option of this pack back to its default.": "Puts every option of this pack back to its default.",
"Sets many options at once, as the pack groups them.": "Sets many options at once, as the pack groups them.",
"No shader packs yet: open the pack folder and put some in it.": "No shader packs yet: open the pack folder and put some in it.",
"Pick a shader pack. Picking the one in use turns shaders off.": "Pick a shader pack. Picking the one in use turns shaders off.",
"Changed options apply with Apply, or when you leave.": "Changed options apply with Apply, or when you leave.",
"Pack settings": "Pack settings",
"Built-in settings": "Built-in settings",
"%s settings": "%s settings",
"Settings made by the pack's author: they change only this pack.": "Settings made by the pack's author: they change only this pack.",
"Vanilla's own preset: sets only vanilla's options, as Minecraft does.": "Vanilla's own preset: sets only vanilla's options, as Minecraft does.",
"Fullscreen takes the display over, at the mode below.": "Fullscreen takes the display over, at the mode below.",
"The display mode exclusive fullscreen uses. Applies when you leave.": "The display mode exclusive fullscreen uses. Applies when you leave.",
@@ -72,10 +72,7 @@
"horizon.mods.settings": "Agordoj",
"horizon.mods.in_world": " (lasu la mondon ŝanĝi)",
"horizon.mods.open_folder": "Malfermu Mod-dosierujon",
"horizon.shader_packs.empty": "Neniuj ombraj pakoj: metu ilin en la dosierujon de ombraj pakoj",
"horizon.shader_options.open": "Ombrilaj Opcioj...",
"horizon.shader_options.profile": "Profilo",
"horizon.shader_options.loading": "Legante la opciojn de la ombra pako...",
"horizon.agent.copy_details": "Kopiu Detalojn pri Konekto",
"horizon.multiplayer.join": "Aliĝu",
"horizon.multiplayer.cancel_reconnecting": "Nuligi Rekonekti",
@@ -471,5 +468,22 @@
"horizon.extras.cosmetics_hide_fx.tooltip": "Spuroj kaj aŭroj de aliaj ludantoj restas kaŝitaj; iliaj aliaj kosmetikaĵoj ankoraŭ montriĝas. Defaŭlte malŝaltita.",
"horizon.extras.cosmetics.shown": "Montrita",
"horizon.extras.cosmetics.hidden": "Kaŝita",
"horizon.extras.cosmetics.name_tags": "Nomaj etikedoj nur"
"horizon.extras.cosmetics.name_tags": "Nomaj etikedoj nur",
"Installed": "Instalitaj",
"Apply": "Apliki",
"Reset all options": "Restarigi ĉiujn agordojn",
"A Horizon shader pack.": "Ombrilo-pakaĵo de Horizon.",
"An OptiFine or Iris shader pack.": "Ombrilo-pakaĵo de OptiFine aŭ Iris.",
"In use: press to turn shaders off.": "Uzata: premu por malŝalti ombrilojn.",
"Press to use it.": "Premu por uzi ĝin.",
"Put shader pack .zip files or folders in it.": "Metu en ĝin .zip-dosierojn aŭ dosierujojn de ombrilo-pakaĵoj.",
"Puts every option of this pack back to its default.": "Restarigas ĉiun agordon de ĉi tiu pakaĵo al ĝia defaŭlto.",
"Sets many options at once, as the pack groups them.": "Agordas multajn agordojn samtempe, kiel la pakaĵo grupigas ilin.",
"No shader packs yet: open the pack folder and put some in it.": "Ankoraŭ neniu ombrilo-pakaĵo: malfermu la pakaĵujon kaj metu kelkajn en ĝin.",
"Pick a shader pack. Picking the one in use turns shaders off.": "Elektu ombrilo-pakaĵon. Elekti la uzatan malŝaltas ombrilojn.",
"Changed options apply with Apply, or when you leave.": "Ŝanĝitaj agordoj efikas per Apliki, aŭ kiam vi foriras.",
"Pack settings": "Agordoj de la pakaĵo",
"Built-in settings": "Enkonstruitaj agordoj",
"%s settings": "Agordoj de %s",
"Settings made by the pack's author: they change only this pack.": "Agordoj faritaj de la aŭtoro de la pakaĵo: ili ŝanĝas nur ĉi tiun pakaĵon."
}
@@ -54,8 +54,6 @@
"horizon.mods.dev": " (Desarrollo)",
"horizon.mods.settings": "Ajustes",
"horizon.mods.open_folder": "Abrir carpeta de mods",
"horizon.shader_packs.empty": "No hay paquetes de shaders: ponlos en la carpeta shaderpacks",
"horizon.shader_packs.kind_horizon": " (Horizon)",
"horizon.agent.copy_details": "Copiar datos de conexión",
"horizon.multiplayer.join": "Unirse",
"horizon.multiplayer.cancel_reconnecting": "Cancelar reconexión",
@@ -194,9 +192,7 @@
"horizon.pages.shader_options": "Opciones de sombreadores",
"horizon.pages.split_profiles": "¿Quién juega?",
"horizon.pages.split_profiles.tooltip": "Quién juega: un perfil guardado en esta carpeta del juego.",
"horizon.shader_options.open": "Opciones de sombreadores…",
"horizon.shader_options.profile": "Perfil",
"horizon.shader_options.loading": "Leyendo las opciones del paquete de sombreadores…",
"Particle Culling": "Particle Culling",
"Draws every particle.": "Draws every particle.",
"Skips offscreen, subpixel and terrain-hidden particles.": "Skips offscreen, subpixel and terrain-hidden particles.",
@@ -256,5 +252,22 @@
"horizon.tempban.list.empty": "No hay baneos temporales",
"horizon.tempban.list.count": "Hay %s baneo(s) temporal(es):",
"horizon.tempban.list.entry": "%1$s fue baneado por %2$s %3$s (hasta %4$s)",
"Shader Packs...": "Paquetes de shaders..."
"Shader Packs...": "Paquetes de shaders...",
"Installed": "Instalados",
"Apply": "Aplicar",
"Reset all options": "Restablecer todas las opciones",
"A Horizon shader pack.": "Un paquete de shaders de Horizon.",
"An OptiFine or Iris shader pack.": "Un paquete de shaders de OptiFine o Iris.",
"In use: press to turn shaders off.": "En uso: pulsa para desactivar los shaders.",
"Press to use it.": "Pulsa para usarlo.",
"Put shader pack .zip files or folders in it.": "Pon en ella archivos .zip o carpetas de paquetes de shaders.",
"Puts every option of this pack back to its default.": "Devuelve todas las opciones de este paquete a sus valores por defecto.",
"Sets many options at once, as the pack groups them.": "Ajusta muchas opciones a la vez, tal como las agrupa el paquete.",
"No shader packs yet: open the pack folder and put some in it.": "Aún no hay paquetes de shaders: abre la carpeta de paquetes y pon algunos en ella.",
"Pick a shader pack. Picking the one in use turns shaders off.": "Elige un paquete de shaders. Elegir el que está en uso desactiva los shaders.",
"Changed options apply with Apply, or when you leave.": "Las opciones cambiadas se aplican con Aplicar, o al salir.",
"Pack settings": "Ajustes del paquete",
"Built-in settings": "Ajustes integrados",
"%s settings": "Ajustes de %s",
"Settings made by the pack's author: they change only this pack.": "Ajustes creados por el autor del paquete: solo cambian este paquete."
}
@@ -70,10 +70,7 @@
"horizon.mods.settings": "Seaded",
"horizon.mods.in_world": " (jätke maailm muutuma)",
"horizon.mods.open_folder": "Avage kaust Mod",
"horizon.shader_packs.empty": "Varjupakkideta: pange need varjupakkide kausta",
"horizon.shader_options.open": "Varjundi valikud...",
"horizon.shader_options.profile": "Profiil",
"horizon.shader_options.loading": "Varjutuspaketi valikute lugemine...",
"horizon.agent.copy_details": "Kopeerige ühenduse üksikasjad",
"horizon.multiplayer.join": "Liitu",
"horizon.multiplayer.cancel_reconnecting": "Tühista uuesti ühendamine",
@@ -467,5 +464,22 @@
"horizon.extras.cosmetics_hide_fx.tooltip": "Teiste mängijate jäljed ja aurad jäävad peidetuks; nende muu kosmeetika on endiselt näha. Vaikimisi väljas.",
"horizon.extras.cosmetics.shown": "Näidatud",
"horizon.extras.cosmetics.hidden": "Peidetud",
"horizon.extras.cosmetics.name_tags": "Ainult nimesildid"
"horizon.extras.cosmetics.name_tags": "Ainult nimesildid",
"Installed": "Paigaldatud",
"Apply": "Rakenda",
"Reset all options": "Lähtesta kõik valikud",
"A Horizon shader pack.": "Horizoni varjutajapakett.",
"An OptiFine or Iris shader pack.": "OptiFine'i või Irise varjutajapakett.",
"In use: press to turn shaders off.": "Kasutusel: vajuta, et varjutajad välja lülitada.",
"Press to use it.": "Vajuta, et seda kasutada.",
"Put shader pack .zip files or folders in it.": "Pane sinna varjutajapakettide .zip-failid või kaustad.",
"Puts every option of this pack back to its default.": "Seab selle paketi kõik valikud tagasi vaikeväärtustele.",
"Sets many options at once, as the pack groups them.": "Seab paljud valikud korraga, nii nagu pakett neid rühmitab.",
"No shader packs yet: open the pack folder and put some in it.": "Varjutajapakette veel pole: ava paketikaust ja pane sinna mõned.",
"Pick a shader pack. Picking the one in use turns shaders off.": "Vali varjutajapakett. Kasutusel oleva valimine lülitab varjutajad välja.",
"Changed options apply with Apply, or when you leave.": "Muudetud valikud rakenduvad nupuga Rakenda või väljumisel.",
"Pack settings": "Paketi sätted",
"Built-in settings": "Sisseehitatud sätted",
"%s settings": "%s sätted",
"Settings made by the pack's author: they change only this pack.": "Paketi autori tehtud sätted: need muudavad ainult seda paketti."
}
@@ -72,10 +72,7 @@
"horizon.mods.settings": "Ezarpenak",
"horizon.mods.in_world": " (utzi mundua aldatzen)",
"horizon.mods.open_folder": "Ireki Mod karpeta",
"horizon.shader_packs.empty": "Ez dago itzal-paketerik: jarri itzazu itzal-paketeen karpetan",
"horizon.shader_options.open": "Itzalaren aukerak...",
"horizon.shader_options.profile": "Profila",
"horizon.shader_options.loading": "Shader paketearen aukerak irakurtzen...",
"horizon.agent.copy_details": "Kopiatu konexioaren xehetasunak",
"horizon.multiplayer.join": "Sartu",
"horizon.multiplayer.cancel_reconnecting": "Utzi berriro konektatzea",
@@ -472,5 +469,22 @@
"horizon.extras.cosmetics_hide_fx.tooltip": "Beste jokalarien arrastoak eta aurak ezkutuan geratzen dira; haien beste kosmetikoak ikusten jarraitzen dute. Desaktibatuta lehenespenez.",
"horizon.extras.cosmetics.shown": "Erakutsita",
"horizon.extras.cosmetics.hidden": "Ezkutuan",
"horizon.extras.cosmetics.name_tags": "Izena etiketak soilik"
"horizon.extras.cosmetics.name_tags": "Izena etiketak soilik",
"Installed": "Instalatuta",
"Apply": "Aplikatu",
"Reset all options": "Berrezarri aukera guztiak",
"A Horizon shader pack.": "Horizon shader pakete bat.",
"An OptiFine or Iris shader pack.": "OptiFine edo Iris shader pakete bat.",
"In use: press to turn shaders off.": "Erabileran: sakatu shaderrak desaktibatzeko.",
"Press to use it.": "Sakatu erabiltzeko.",
"Put shader pack .zip files or folders in it.": "Jarri shader pakete-en .zip fitxategiak edo karpetak bertan.",
"Puts every option of this pack back to its default.": "Pakete honen aukera guztiak lehenetsira itzultzen ditu.",
"Sets many options at once, as the pack groups them.": "Aukera asko batera ezartzen ditu, paketeak taldekatzen dituen moduan.",
"No shader packs yet: open the pack folder and put some in it.": "Ez dago shader paketerik oraindik: ireki paketeen karpeta eta jarri batzuk bertan.",
"Pick a shader pack. Picking the one in use turns shaders off.": "Aukeratu shader pakete bat. Erabileran dagoena aukeratzeak shaderrak desaktibatzen ditu.",
"Changed options apply with Apply, or when you leave.": "Aldatutako aukerak Aplikatu botoiarekin aplikatzen dira, edo irtetean.",
"Pack settings": "Paketearen ezarpenak",
"Built-in settings": "Ezarpen integratuak",
"%s settings": "%s(r)en ezarpenak",
"Settings made by the pack's author: they change only this pack.": "Paketearen egileak egindako ezarpenak: pakete hau soilik aldatzen dute."
}
@@ -69,10 +69,7 @@
"horizon.mods.settings": "تنظیمات",
"horizon.mods.in_world": " (دنیا را رها کن تا تغییر کند)",
"horizon.mods.open_folder": "پوشه Mod را باز کنید",
"horizon.shader_packs.empty": "بدون بسته های سایه زن: آنها را در پوشه shaderpacks قرار دهید",
"horizon.shader_options.open": "گزینه های سایه زن...",
"horizon.shader_options.profile": "نمایه",
"horizon.shader_options.loading": "خواندن گزینه های بسته سایه زن...",
"horizon.agent.copy_details": "کپی جزئیات اتصال",
"horizon.multiplayer.join": "بپیوندید",
"horizon.multiplayer.cancel_reconnecting": "لغو اتصال مجدد",
@@ -477,5 +474,22 @@
"horizon.extras.cosmetics_hide_fx.tooltip": "ردها و هاله‌های بازیکنان دیگر پنهان می‌مانند؛ دیگر آرایه‌هایشان همچنان دیده می‌شوند. به‌طور پیش‌فرض خاموش.",
"horizon.extras.cosmetics.shown": "نشان داده شده است",
"horizon.extras.cosmetics.hidden": "پنهان شده است",
"horizon.extras.cosmetics.name_tags": "فقط برچسب های نام"
"horizon.extras.cosmetics.name_tags": "فقط برچسب های نام",
"Installed": "نصب‌شده",
"Apply": "اعمال",
"Reset all options": "بازنشانی همه گزینه‌ها",
"A Horizon shader pack.": "یک بسته شیدر Horizon.",
"An OptiFine or Iris shader pack.": "یک بسته شیدر OptiFine یا Iris.",
"In use: press to turn shaders off.": "در حال استفاده: برای خاموش کردن شیدرها فشار دهید.",
"Press to use it.": "برای استفاده فشار دهید.",
"Put shader pack .zip files or folders in it.": "فایل‌های .zip یا پوشه‌های بسته‌های شیدر را در آن بگذارید.",
"Puts every option of this pack back to its default.": "همه گزینه‌های این بسته را به پیش‌فرض برمی‌گرداند.",
"Sets many options at once, as the pack groups them.": "چندین گزینه را یکجا تنظیم می‌کند، همان‌طور که بسته آن‌ها را گروه‌بندی کرده است.",
"No shader packs yet: open the pack folder and put some in it.": "هنوز بسته شیدری نیست: پوشه بسته‌ها را باز کنید و چند تا در آن بگذارید.",
"Pick a shader pack. Picking the one in use turns shaders off.": "یک بسته شیدر انتخاب کنید. انتخاب بسته در حال استفاده شیدرها را خاموش می‌کند.",
"Changed options apply with Apply, or when you leave.": "گزینه‌های تغییرکرده با اعمال یا هنگام خروج اعمال می‌شوند.",
"Pack settings": "تنظیمات بسته",
"Built-in settings": "تنظیمات داخلی",
"%s settings": "تنظیمات %s",
"Settings made by the pack's author: they change only this pack.": "تنظیماتی که سازنده بسته ساخته است: فقط همین بسته را تغییر می‌دهند."
}
@@ -67,10 +67,7 @@
"horizon.mods.settings": "Asetukset",
"horizon.mods.in_world": " (jätä maailma muuttumaan)",
"horizon.mods.open_folder": "Avaa Mod-kansio",
"horizon.shader_packs.empty": "Ei Shader-paketteja: laita ne Shaderpacks-kansioon",
"horizon.shader_options.open": "Varjostimen asetukset...",
"horizon.shader_options.profile": "Profiili",
"horizon.shader_options.loading": "Shader-paketin vaihtoehtojen lukeminen...",
"horizon.agent.copy_details": "Kopioi yhteystiedot",
"horizon.multiplayer.join": "Liity",
"horizon.multiplayer.cancel_reconnecting": "Peruuta yhteyden muodostaminen",
@@ -453,5 +450,22 @@
"horizon.extras.cosmetics.shown": "Näytetään",
"horizon.extras.cosmetics.hidden": "Piilotettu",
"horizon.extras.cosmetics.name_tags": "Vain nimilaput",
"Shader Packs...": "Shader Packit..."
"Shader Packs...": "Shader Packit...",
"Installed": "Asennetut",
"Apply": "Käytä",
"Reset all options": "Nollaa kaikki asetukset",
"A Horizon shader pack.": "Horizon-varjostinpaketti.",
"An OptiFine or Iris shader pack.": "OptiFine- tai Iris-varjostinpaketti.",
"In use: press to turn shaders off.": "Käytössä: paina, niin varjostimet poistuvat käytöstä.",
"Press to use it.": "Paina käyttääksesi sitä.",
"Put shader pack .zip files or folders in it.": "Laita siihen varjostinpakettien .zip-tiedostoja tai kansioita.",
"Puts every option of this pack back to its default.": "Palauttaa kaikki tämän paketin asetukset oletusarvoihin.",
"Sets many options at once, as the pack groups them.": "Asettaa monta asetusta kerralla sillä tavalla kuin paketti ryhmittelee ne.",
"No shader packs yet: open the pack folder and put some in it.": "Varjostinpaketteja ei vielä ole: avaa pakettikansio ja laita siihen joitakin.",
"Pick a shader pack. Picking the one in use turns shaders off.": "Valitse varjostinpaketti. Käytössä olevan valitseminen poistaa varjostimet käytöstä.",
"Changed options apply with Apply, or when you leave.": "Muutetut asetukset otetaan käyttöön Käytä-painikkeella tai poistuessasi.",
"Pack settings": "Paketin asetukset",
"Built-in settings": "Sisäänrakennetut asetukset",
"%s settings": "%s: asetukset",
"Settings made by the pack's author: they change only this pack.": "Paketin tekijän tekemät asetukset: ne muuttavat vain tätä pakettia."
}
@@ -62,9 +62,6 @@
"horizon.mods.settings": "Mga setting",
"horizon.mods.in_world": " (iwanan ang mundo upang magbago)",
"horizon.mods.open_folder": "Buksan ang Mod Folder",
"horizon.shader_packs.empty": "Walang shader pack: ilagay ang mga ito sa shaderpacks folder",
"horizon.shader_options.open": "Mga Pagpipilian sa Shader...",
"horizon.shader_options.loading": "Binabasa ang mga opsyon ng shader pack...",
"horizon.agent.copy_details": "Kopyahin ang Mga Detalye ng Koneksyon",
"horizon.multiplayer.join": "Sumali",
"horizon.multiplayer.cancel_reconnecting": "Kanselahin ang Muling Pagkonekta",
@@ -425,5 +422,22 @@
"horizon.extras.cosmetics.shown": "Ipinakita",
"horizon.extras.cosmetics.hidden": "Nakatago",
"horizon.extras.cosmetics.name_tags": "Mga name tag lang",
"Shader Packs...": "Mga Shader Pack..."
"Shader Packs...": "Mga Shader Pack...",
"Installed": "Naka-install",
"Apply": "Ilapat",
"Reset all options": "I-reset ang lahat ng opsyon",
"A Horizon shader pack.": "Isang Horizon shader pack.",
"An OptiFine or Iris shader pack.": "Isang OptiFine o Iris shader pack.",
"In use: press to turn shaders off.": "Ginagamit: pindutin para patayin ang mga shader.",
"Press to use it.": "Pindutin para gamitin ito.",
"Put shader pack .zip files or folders in it.": "Ilagay dito ang mga .zip file o folder ng shader pack.",
"Puts every option of this pack back to its default.": "Ibinabalik sa default ang bawat opsyon ng pack na ito.",
"Sets many options at once, as the pack groups them.": "Nagtatakda ng maraming opsyon nang sabay, ayon sa pagkakagrupo ng pack.",
"No shader packs yet: open the pack folder and put some in it.": "Wala pang shader pack: buksan ang pack folder at maglagay ng ilan.",
"Pick a shader pack. Picking the one in use turns shaders off.": "Pumili ng shader pack. Ang pagpili sa ginagamit ay magpapatay ng mga shader.",
"Changed options apply with Apply, or when you leave.": "Ang mga binagong opsyon ay ilalapat sa Ilapat, o kapag umalis ka.",
"Pack settings": "Mga setting ng pack",
"Built-in settings": "Mga built-in na setting",
"%s settings": "Mga setting ng %s",
"Settings made by the pack's author: they change only this pack.": "Mga setting na ginawa ng may-akda ng pack: ang pack na ito lang ang binabago nila."
}
@@ -70,10 +70,7 @@
"horizon.mods.settings": "Innstillingar",
"horizon.mods.in_world": " (lat heimin broytast)",
"horizon.mods.open_folder": "Opna Mod mappuna",
"horizon.shader_packs.empty": "Ongar skuggapakkar: set teir í mappuna skuggapakkar",
"horizon.shader_options.open": "Skuggamøguleikar...",
"horizon.shader_options.profile": "Vangamynd",
"horizon.shader_options.loading": "Lesa møguleikarnar í skuggapakkanum...",
"horizon.agent.copy_details": "Avrita sambandsupplýsingar",
"horizon.multiplayer.join": "Ver við",
"horizon.multiplayer.cancel_reconnecting": "Avlýs aftursamband",
@@ -474,5 +471,22 @@
"horizon.extras.cosmetics_hide_fx.tooltip": "Spor og aurur hjá øðrum leikarum verða fjald; teirra aðrir prýðislutir síggjast framvegis. Sløkt sum standard.",
"horizon.extras.cosmetics.shown": "Víst",
"horizon.extras.cosmetics.hidden": "Dult",
"horizon.extras.cosmetics.name_tags": "Einans navnamerki"
"horizon.extras.cosmetics.name_tags": "Einans navnamerki",
"Installed": "Innstallað",
"Apply": "Nýt",
"Reset all options": "Nullstilla allar møguleikar",
"A Horizon shader pack.": "Ein Horizon-skuggapakki.",
"An OptiFine or Iris shader pack.": "Ein OptiFine- ella Iris-skuggapakki.",
"In use: press to turn shaders off.": "Í brúki: trýst fyri at sláa skuggar frá.",
"Press to use it.": "Trýst fyri at brúka hann.",
"Put shader pack .zip files or folders in it.": "Legg .zip-fílur ella mappur við skuggapakkum í hana.",
"Puts every option of this pack back to its default.": "Setur allar møguleikar hjá hesum pakka aftur til sjálvvirði.",
"Sets many options at once, as the pack groups them.": "Setur nógvar møguleikar í senn, soleiðis sum pakkin bólkar teir.",
"No shader packs yet: open the pack folder and put some in it.": "Eingir skuggapakkar enn: opna pakkamappuna og legg nakrar í hana.",
"Pick a shader pack. Picking the one in use turns shaders off.": "Vel ein skuggapakka. Um tú velur tann, sum er í brúki, verða skuggar slignir frá.",
"Changed options apply with Apply, or when you leave.": "Broyttir møguleikar verða nýttir við Nýt, ella tá tú fer burtur.",
"Pack settings": "Pakkaskipanir",
"Built-in settings": "Innbygdar skipanir",
"%s settings": "Skipanir hjá %s",
"Settings made by the pack's author: they change only this pack.": "Skipanir gjørdar av høvundanum hjá pakkanum: teir broyta bert hendan pakkan."
}
@@ -68,10 +68,7 @@
"horizon.mods.switch.worldgen": "change la génération du monde",
"horizon.mods.switch.registries": "ajoute des blocs, des objets ou d'autres entrées de registre",
"horizon.mods.switch.restart": "Redémarre le jeu pour appliquer %s : ils ajoutent des blocs, des objets ou de la génération de monde.",
"horizon.shader_packs.empty": "Aucun pack de shaders : placez-les dans le dossier shaderpacks",
"horizon.shader_options.open": "Options des shaders...",
"horizon.shader_options.profile": "Profil",
"horizon.shader_options.loading": "Lecture des options du pack de shaders...",
"horizon.agent.copy_details": "Copier les détails de connexion",
"horizon.multiplayer.join": "Rejoindre",
"horizon.multiplayer.cancel_reconnecting": "Annuler la reconnexion",
@@ -359,6 +356,23 @@
"Shaders": "Shaders",
"Shader packs, Horizon's and shaders/ folder ones, and their options.": "Les packs de shaders, ceux de Horizon et ceux en dossier shaders/, et leurs options.",
"Shader packs": "Packs de shaders",
"Installed": "Installés",
"Apply": "Appliquer",
"Reset all options": "Réinitialiser toutes les options",
"A Horizon shader pack.": "Un pack de shaders Horizon.",
"An OptiFine or Iris shader pack.": "Un pack de shaders OptiFine ou Iris.",
"In use: press to turn shaders off.": "En cours d'utilisation : appuyez pour désactiver les shaders.",
"Press to use it.": "Appuyez pour l'utiliser.",
"Put shader pack .zip files or folders in it.": "Mettez-y des fichiers .zip ou des dossiers de packs de shaders.",
"Puts every option of this pack back to its default.": "Remet chaque option de ce pack à sa valeur par défaut.",
"Sets many options at once, as the pack groups them.": "Règle de nombreuses options à la fois, selon le regroupement du pack.",
"No shader packs yet: open the pack folder and put some in it.": "Aucun pack de shaders pour l'instant : ouvrez le dossier des packs et ajoutez-en.",
"Pick a shader pack. Picking the one in use turns shaders off.": "Choisissez un pack de shaders. Choisir celui en cours d'utilisation désactive les shaders.",
"Changed options apply with Apply, or when you leave.": "Les options modifiées s'appliquent avec Appliquer, ou quand vous quittez.",
"Pack settings": "Réglages du pack",
"Built-in settings": "Réglages intégrés",
"%s settings": "Réglages de %s",
"Settings made by the pack's author: they change only this pack.": "Réglages créés par l'auteur du pack : ils ne modifient que ce pack.",
"Vanilla's own preset: sets only vanilla's options, as Minecraft does.": "Le préréglage de vanilla : il ne règle que les options de vanilla, comme Minecraft.",
"Fullscreen takes the display over, at the mode below.": "Le plein écran prend tout l'écran, au mode ci-dessous.",
"The display mode exclusive fullscreen uses. Applies when you leave.": "Le mode d'affichage du plein écran exclusif. S'applique en quittant.",
@@ -66,10 +66,7 @@
"horizon.mods.settings": "Impostazions",
"horizon.mods.in_world": " (lassâ il mont par cambiâ)",
"horizon.mods.open_folder": "Viert la cjarte Mod",
"horizon.shader_packs.empty": "Nissun grup di ombre: metiju inte cjarte dai grups di ombre",
"horizon.shader_options.open": "Opzions di ombrenadôr...",
"horizon.shader_options.profile": "Profil",
"horizon.shader_options.loading": "Leint lis opzions dal pachetin shader...",
"horizon.agent.copy_details": "Copiâ i detais de conession",
"horizon.multiplayer.join": "Iscrivitvi",
"horizon.multiplayer.cancel_reconnecting": "Annulâ la riconession",
@@ -470,5 +467,22 @@
"horizon.extras.cosmetics_hide_fx.tooltip": "Lis olmis e lis aureis dai altris zuiadôrs a restin platadis; i lôr altris cosmetics si viodin ancjemò. Distudât di predefinît.",
"horizon.extras.cosmetics.shown": "Mostrât",
"horizon.extras.cosmetics.hidden": "Scuindût",
"horizon.extras.cosmetics.name_tags": "Dome lis etichetis dai nons"
"horizon.extras.cosmetics.name_tags": "Dome lis etichetis dai nons",
"Installed": "Instalâts",
"Apply": "Apliche",
"Reset all options": "Ripristine ducj lis opzions",
"A Horizon shader pack.": "Un pachet di shader di Horizon.",
"An OptiFine or Iris shader pack.": "Un pachet di shader di OptiFine o Iris.",
"In use: press to turn shaders off.": "In ûs: frache par distudâ i shader.",
"Press to use it.": "Frache par doprâlu.",
"Put shader pack .zip files or folders in it.": "Met dentri file .zip o cartelis di pachets di shader.",
"Puts every option of this pack back to its default.": "Al torne ogni opzion di chest pachet al so valôr predefinît.",
"Sets many options at once, as the pack groups them.": "Al met tantis opzions in t'un colp, come che il pachet lis gruparès.",
"No shader packs yet: open the pack folder and put some in it.": "Ancjemò nissun pachet di shader: vierç la cartele dai pachets e met-ne cualchidun.",
"Pick a shader pack. Picking the one in use turns shaders off.": "Sielç un pachet di shader. Sielzi chel in ûs al distude i shader.",
"Changed options apply with Apply, or when you leave.": "Lis opzions cambiadis a vegnin aplicadis cun Apliche, o cuant che tu jessis.",
"Pack settings": "Impostazions dal pachet",
"Built-in settings": "Impostazions integradis",
"%s settings": "Impostazions di %s",
"Settings made by the pack's author: they change only this pack.": "Impostazions fatis dal autôr dal pachet: a cambin dome chest pachet."
}
@@ -53,9 +53,6 @@
"horizon.mods.settings": "Ynstellings",
"horizon.mods.in_world": " (lit de wrâld te feroarjen)",
"horizon.mods.open_folder": "Iepenje Mod-map",
"horizon.shader_packs.empty": "Gjin shader-pakketten: set se yn 'e shaderpacks-map",
"horizon.shader_options.open": "Shader-opsjes ...",
"horizon.shader_options.loading": "De opsjes fan it shaderpakket lêze ...",
"horizon.agent.copy_details": "Kopiearje Ferbiningsdetails",
"horizon.multiplayer.cancel_reconnecting": "Ofbrekke opnij ferbinen",
"horizon.multiplayer.join_friend": "Doch mei oan in freon",
@@ -402,5 +399,22 @@
"horizon.extras.cosmetics_hide_fx.tooltip": "Spoaren en aura's fan oare spilers bliuwe ferburgen; harren oare kosmetika bliuwt sichtber. Standert út.",
"horizon.extras.cosmetics.shown": "Oanjûn",
"horizon.extras.cosmetics.hidden": "Ferburgen",
"horizon.extras.cosmetics.name_tags": "Allinnich nammelabels"
"horizon.extras.cosmetics.name_tags": "Allinnich nammelabels",
"Installed": "Ynstallearre",
"Apply": "Tapasse",
"Reset all options": "Alle opsjes weromsette",
"A Horizon shader pack.": "In Horizon-shaderpakket.",
"An OptiFine or Iris shader pack.": "In OptiFine- of Iris-shaderpakket.",
"In use: press to turn shaders off.": "Yn gebrûk: druk om shaders út te setten.",
"Press to use it.": "Druk om it te brûken.",
"Put shader pack .zip files or folders in it.": "Set .zip-bestannen of mappen mei shaderpakketten deryn.",
"Puts every option of this pack back to its default.": "Set alle opsjes fan dit pakket werom nei de standert.",
"Sets many options at once, as the pack groups them.": "Stelt in protte opsjes tagelyk yn, sa't it pakket se groepearret.",
"No shader packs yet: open the pack folder and put some in it.": "Noch gjin shaderpakketten: iepenje de pakketmap en set der guon yn.",
"Pick a shader pack. Picking the one in use turns shaders off.": "Kies in shaderpakket. Dejinge yn gebrûk kieze set shaders út.",
"Changed options apply with Apply, or when you leave.": "Wizige opsjes wurde tapast mei Tapasse, of as jo fuortgeane.",
"Pack settings": "Pakketynstellingen",
"Built-in settings": "Ynboude ynstellingen",
"%s settings": "Ynstellingen fan %s",
"Settings made by the pack's author: they change only this pack.": "Ynstellingen makke troch de skriuwer fan it pakket: se feroarje allinnich dit pakket."
}
@@ -66,10 +66,7 @@
"horizon.mods.settings": "Socruithe",
"horizon.mods.in_world": " (fág an domhan a athrú)",
"horizon.mods.open_folder": "Oscail Fillteán Mod",
"horizon.shader_packs.empty": "Uimh pacáistí shader: iad a chur san fhillteán shaderpacks",
"horizon.shader_options.open": "Roghanna Shader...",
"horizon.shader_options.profile": "Próifíl",
"horizon.shader_options.loading": "Roghanna an phacáiste shader a léamh...",
"horizon.agent.copy_details": "Cóipeáil Sonraí Ceangail",
"horizon.multiplayer.join": "Bígí",
"horizon.multiplayer.cancel_reconnecting": "Cealaigh Athnascadh",
@@ -466,5 +463,22 @@
"horizon.extras.cosmetics_hide_fx.tooltip": "Fanann rianta agus aurataí imreoirí eile i bhfolach; feictear a gcuid maisithe eile fós. As de réir réamhshocraithe.",
"horizon.extras.cosmetics.shown": "Taispeántar",
"horizon.extras.cosmetics.hidden": "i bhfolach",
"horizon.extras.cosmetics.name_tags": "Clibeanna ainm amháin"
"horizon.extras.cosmetics.name_tags": "Clibeanna ainm amháin",
"Installed": "Suiteáilte",
"Apply": "Cuir i bhfeidhm",
"Reset all options": "Athshocraigh gach rogha",
"A Horizon shader pack.": "Pacáiste scáthaitheoirí Horizon.",
"An OptiFine or Iris shader pack.": "Pacáiste scáthaitheoirí OptiFine nó Iris.",
"In use: press to turn shaders off.": "In úsáid: brúigh chun scáthaitheoirí a mhúchadh.",
"Press to use it.": "Brúigh chun é a úsáid.",
"Put shader pack .zip files or folders in it.": "Cuir comhaid .zip nó fillteáin pacáistí scáthaitheoirí ann.",
"Puts every option of this pack back to its default.": "Cuireann sé gach rogha den phacáiste seo ar ais ar an réamhshocrú.",
"Sets many options at once, as the pack groups them.": "Socraíonn sé a lán roghanna ag an am céanna, mar a ghrúpálann an pacáiste iad.",
"No shader packs yet: open the pack folder and put some in it.": "Níl aon phacáiste scáthaitheoirí ann fós: oscail fillteán na bpacáistí agus cuir roinnt ann.",
"Pick a shader pack. Picking the one in use turns shaders off.": "Roghnaigh pacáiste scáthaitheoirí. Má roghnaíonn tú an ceann atá in úsáid, múchtar na scáthaitheoirí.",
"Changed options apply with Apply, or when you leave.": "Cuirtear roghanna athraithe i bhfeidhm le Cuir i bhfeidhm, nó nuair a fhágann tú.",
"Pack settings": "Socruithe an phacáiste",
"Built-in settings": "Socruithe ionsuite",
"%s settings": "Socruithe %s",
"Settings made by the pack's author: they change only this pack.": "Socruithe a rinne údar an phacáiste: ní athraíonn siad ach an pacáiste seo."
}
@@ -70,10 +70,7 @@
"horizon.mods.settings": "Suidhichidhean",
"horizon.mods.in_world": " (Fàg an saoghal airson atharrachadh)",
"horizon.mods.open_folder": "Fosgail pasgan a’ Mhòid",
"horizon.shader_packs.empty": "Gun phasgan shader: cuir iad ann am pasgan shaderpacks",
"horizon.shader_options.open": "Roghainnean Shader...",
"horizon.shader_options.profile": "Pròifil",
"horizon.shader_options.loading": "A’ leughadh roghainnean pacaid shader...",
"horizon.agent.copy_details": "Dèan lethbhreac den fhiosrachadh ceangail",
"horizon.multiplayer.join": "Thig còmhla",
"horizon.multiplayer.cancel_reconnecting": "Sguir dhen ath-cheangal",
@@ -467,5 +464,22 @@
"horizon.extras.cosmetics_hide_fx.tooltip": "Fanaidh slighean is aurathan chluicheadairean eile falaichte; chithear an cuid maise eile fhathast. Dheth a ghnàth.",
"horizon.extras.cosmetics.shown": "Air a shealltainn",
"horizon.extras.cosmetics.hidden": "Falaichte",
"horizon.extras.cosmetics.name_tags": "Tagaichean ainmean a-mhàin"
"horizon.extras.cosmetics.name_tags": "Tagaichean ainmean a-mhàin",
"Installed": "Stàlaichte",
"Apply": "Cuir an sàs",
"Reset all options": "Ath-shuidhich a h-uile roghainn",
"A Horizon shader pack.": "Pacaid sgàileadairean Horizon.",
"An OptiFine or Iris shader pack.": "Pacaid sgàileadairean OptiFine no Iris.",
"In use: press to turn shaders off.": "’Ga chleachdadh: brùth gus na sgàileadairean a chur dheth.",
"Press to use it.": "Brùth gus a chleachdadh.",
"Put shader pack .zip files or folders in it.": "Cuir faidhlichean .zip no pasganan de phacaidean sgàileadairean ann.",
"Puts every option of this pack back to its default.": "Cuiridh e a h-uile roghainn dhen phacaid seo air ais dhan bhunait.",
"Sets many options at once, as the pack groups them.": "Suidhichidh e iomadh roghainn aig an aon àm, mar a bhios a’ phacaid gan cuimseachadh.",
"No shader packs yet: open the pack folder and put some in it.": "Chan eil pacaid sgàileadairean ann fhathast: fosgail pasgan nam pacaidean agus cuir cuid ann.",
"Pick a shader pack. Picking the one in use turns shaders off.": "Tagh pacaid sgàileadairean. Ma thaghas tu an tè a tha ’ga cleachdadh, thèid na sgàileadairean a chur dheth.",
"Changed options apply with Apply, or when you leave.": "Thèid roghainnean atharraichte an sàs le Cuir an sàs, no nuair a dh’fhàgas tu.",
"Pack settings": "Roghainnean na pacaid",
"Built-in settings": "Roghainnean togte a-steach",
"%s settings": "Roghainnean %s",
"Settings made by the pack's author: they change only this pack.": "Roghainnean a rinn ùghdar na pacaid: chan atharraich iad ach a’ phacaid seo."
}
@@ -68,10 +68,7 @@
"horizon.mods.settings": "Configuración",
"horizon.mods.in_world": " (deixar o mundo para cambiar)",
"horizon.mods.open_folder": "Abre o cartafol de mod",
"horizon.shader_packs.empty": "Sen paquetes de sombreadores: colócaos no cartafol de paquetes de sombreadores",
"horizon.shader_options.open": "Opcións de sombreado...",
"horizon.shader_options.profile": "Perfil",
"horizon.shader_options.loading": "Lendo as opcións do paquete de sombreadores...",
"horizon.agent.copy_details": "Copiar os detalles da conexión",
"horizon.multiplayer.join": "Únete",
"horizon.multiplayer.cancel_reconnecting": "Cancelar a conexión",
@@ -466,5 +463,22 @@
"horizon.extras.cosmetics_hide_fx.tooltip": "As estelas e auras doutros xogadores quedan agochadas; os seus outros cosméticos séguense vendo. Desactivado por defecto.",
"horizon.extras.cosmetics.shown": "Amosado",
"horizon.extras.cosmetics.hidden": "Oculto",
"horizon.extras.cosmetics.name_tags": "Só etiquetas de nome"
"horizon.extras.cosmetics.name_tags": "Só etiquetas de nome",
"Installed": "Instalados",
"Apply": "Aplicar",
"Reset all options": "Restablecer todas as opcións",
"A Horizon shader pack.": "Un paquete de shaders de Horizon.",
"An OptiFine or Iris shader pack.": "Un paquete de shaders de OptiFine ou Iris.",
"In use: press to turn shaders off.": "En uso: preme para desactivar os shaders.",
"Press to use it.": "Preme para usalo.",
"Put shader pack .zip files or folders in it.": "Pon nel ficheiros .zip ou cartafoles de paquetes de shaders.",
"Puts every option of this pack back to its default.": "Devolve todas as opcións deste paquete ao seu valor por defecto.",
"Sets many options at once, as the pack groups them.": "Axusta moitas opcións á vez, como as agrupa o paquete.",
"No shader packs yet: open the pack folder and put some in it.": "Aínda non hai paquetes de shaders: abre o cartafol de paquetes e pon algúns nel.",
"Pick a shader pack. Picking the one in use turns shaders off.": "Escolle un paquete de shaders. Escoller o que está en uso desactiva os shaders.",
"Changed options apply with Apply, or when you leave.": "As opcións cambiadas aplícanse con Aplicar, ou ao saír.",
"Pack settings": "Axustes do paquete",
"Built-in settings": "Axustes integrados",
"%s settings": "Axustes de %s",
"Settings made by the pack's author: they change only this pack.": "Axustes feitos polo autor do paquete: só cambian este paquete."
}
@@ -68,10 +68,7 @@
"horizon.mods.settings": "Nā hoʻonohonoho",
"horizon.mods.in_world": " (haʻalele i ka honua e hoʻololi)",
"horizon.mods.open_folder": "E wehe i ka waihona mod",
"horizon.shader_packs.empty": "ʻAʻohe pūʻolo shader: hoʻokomo iā lākou i loko o ka waihona shaderpacks",
"horizon.shader_options.open": "Nā Koho Shader...",
"horizon.shader_options.profile": "Pilikino",
"horizon.shader_options.loading": "Heluhelu i nā koho o ka shader pack...",
"horizon.agent.copy_details": "E kope i nā kikoʻī pili",
"horizon.multiplayer.join": "Hui",
"horizon.multiplayer.cancel_reconnecting": "Hoʻopau i ka hoʻohui hou ʻana",
@@ -461,5 +458,22 @@
"horizon.extras.cosmetics_hide_fx.tooltip": "Hūnā ʻia nā meheu a me nā aura o nā mea pāʻani ʻē aʻe; ʻike ʻia nō kā lākou mau mea hoʻonani ʻē aʻe. Pio ma ke ʻano maʻamau.",
"horizon.extras.cosmetics.shown": "Hōʻike ʻia",
"horizon.extras.cosmetics.hidden": "Huna",
"horizon.extras.cosmetics.name_tags": "Nā inoa inoa wale nō"
"horizon.extras.cosmetics.name_tags": "Nā inoa inoa wale nō",
"Installed": "Kau ʻia",
"Apply": "Hoʻohana",
"Reset all options": "Hoʻomaka hou i nā koho a pau",
"A Horizon shader pack.": "He pūʻolo malu Horizon.",
"An OptiFine or Iris shader pack.": "He pūʻolo malu OptiFine a i ʻole Iris.",
"In use: press to turn shaders off.": "I ka hoʻohana ʻia: kaomi e pani i nā malu.",
"Press to use it.": "Kaomi e hoʻohana iā ia.",
"Put shader pack .zip files or folders in it.": "E waiho i nā faila .zip a i ʻole nā waihona pūʻolo malu i loko.",
"Puts every option of this pack back to its default.": "Hoʻihoʻi i kēlā me kēia koho o kēia pūʻolo i kāna paʻamau.",
"Sets many options at once, as the pack groups them.": "Hoʻonohonoho i nā koho he nui i ka manawa hoʻokahi, e like me ka hui ʻana o ka pūʻolo.",
"No shader packs yet: open the pack folder and put some in it.": "ʻAʻohe pūʻolo malu: e wehe i ka waihona pūʻolo a e waiho i kekahi i loko.",
"Pick a shader pack. Picking the one in use turns shaders off.": "E koho i kekahi pūʻolo malu. Ke koho ʻoe i ka mea e hoʻohana ʻia nei, pani ʻia nā malu.",
"Changed options apply with Apply, or when you leave.": "Hoʻohana ʻia nā koho i hoʻololi ʻia me Hoʻohana, a i ʻole ke haʻalele ʻoe.",
"Pack settings": "Nā hoʻonohonoho o ka pūʻolo",
"Built-in settings": "Nā hoʻonohonoho i kūkulu ʻia",
"%s settings": "Nā hoʻonohonoho o %s",
"Settings made by the pack's author: they change only this pack.": "Nā hoʻonohonoho a ka mea nāna i hana i ka pūʻolo: hoʻololi wale lākou i kēia pūʻolo."
}
@@ -69,10 +69,7 @@
"horizon.mods.settings": "הגדרות",
"horizon.mods.in_world": " (עזוב את העולם להשתנות)",
"horizon.mods.open_folder": "פתח את תיקיית Mod",
"horizon.shader_packs.empty": "ללא חבילות shader: הכניסו אותן לתיקיית shaderpacks",
"horizon.shader_options.open": "אפשרויות הצללה...",
"horizon.shader_options.profile": "פרופיל",
"horizon.shader_options.loading": "קורא את האפשרויות של חבילת הצללה...",
"horizon.agent.copy_details": "העתק את פרטי החיבור",
"horizon.multiplayer.join": "הצטרף",
"horizon.multiplayer.cancel_reconnecting": "בטל חיבור מחדש",
@@ -469,5 +466,22 @@
"horizon.extras.cosmetics.shown": "מוצג",
"horizon.extras.cosmetics.hidden": "מוסתר",
"horizon.extras.cosmetics.name_tags": "תגי שם בלבד",
"Shader Packs...": "חבילות Shader..."
"Shader Packs...": "חבילות Shader...",
"Installed": "מותקנות",
"Apply": "החל",
"Reset all options": "איפוס כל האפשרויות",
"A Horizon shader pack.": "חבילת שיידרים של Horizon.",
"An OptiFine or Iris shader pack.": "חבילת שיידרים של OptiFine או Iris.",
"In use: press to turn shaders off.": "בשימוש: לחצו כדי לכבות שיידרים.",
"Press to use it.": "לחצו כדי להשתמש בה.",
"Put shader pack .zip files or folders in it.": "הניחו בה קובצי .zip או תיקיות של חבילות שיידרים.",
"Puts every option of this pack back to its default.": "מחזיר כל אפשרות של חבילה זו לברירת המחדל.",
"Sets many options at once, as the pack groups them.": "קובע הרבה אפשרויות בבת אחת, כפי שהחבילה מקבצת אותן.",
"No shader packs yet: open the pack folder and put some in it.": "אין עדיין חבילות שיידרים: פתחו את תיקיית החבילות והניחו בה כמה.",
"Pick a shader pack. Picking the one in use turns shaders off.": "בחרו חבילת שיידרים. בחירה בחבילה שבשימוש מכבה את השיידרים.",
"Changed options apply with Apply, or when you leave.": "אפשרויות ששונו יוחלו עם החל, או כשתצאו.",
"Pack settings": "הגדרות החבילה",
"Built-in settings": "הגדרות מובנות",
"%s settings": "הגדרות של %s",
"Settings made by the pack's author: they change only this pack.": "הגדרות שיצר מחבר החבילה: הן משנות רק את החבילה הזו."
}
@@ -62,11 +62,7 @@
"horizon.mods.dev": " (देव)",
"horizon.mods.settings": "सेटिंग्स",
"horizon.mods.open_folder": "मॉड फ़ोल्डर खोलें",
"horizon.shader_packs.empty": "कोई शेडर पैक नहीं: उन्हें shaderpacks फ़ोल्डर में रखें",
"horizon.shader_packs.kind_horizon": " (क्षितिज)",
"horizon.shader_options.open": "शेडर विकल्प...",
"horizon.shader_options.profile": "प्रोफ़ाइल",
"horizon.shader_options.loading": "शेडर पैक के विकल्प पढ़े जा रहे हैं...",
"horizon.agent.copy_details": "कनेक्शन विवरण कॉपी करें",
"horizon.multiplayer.join": "शामिल हों",
"horizon.multiplayer.cancel_reconnecting": "पुनः कनेक्ट करना रद्द करें",
@@ -440,5 +436,22 @@
"horizon.repro.bundle": "रीप्रो बंडल: %s",
"horizon.repro.error": "रीप्रो: %s",
"horizon.repro.no_recording": "निर्यात करने के लिए अभी तक कोई रिकॉर्डिंग नहीं है।",
"horizon.repro.replay_started": "रीप्ले शुरू हुआ: %s"
"horizon.repro.replay_started": "रीप्ले शुरू हुआ: %s",
"Installed": "इंस्टॉल किए गए",
"Apply": "लागू करें",
"Reset all options": "सभी विकल्प रीसेट करें",
"A Horizon shader pack.": "एक Horizon शेडर पैक।",
"An OptiFine or Iris shader pack.": "एक OptiFine या Iris शेडर पैक।",
"In use: press to turn shaders off.": "उपयोग में: शेडर बंद करने के लिए दबाएँ।",
"Press to use it.": "इसे उपयोग करने के लिए दबाएँ।",
"Put shader pack .zip files or folders in it.": "शेडर पैक की .zip फ़ाइलें या फ़ोल्डर इसमें रखें।",
"Puts every option of this pack back to its default.": "इस पैक के हर विकल्प को उसके डिफ़ॉल्ट पर लौटाता है।",
"Sets many options at once, as the pack groups them.": "पैक के समूहों के अनुसार कई विकल्प एक साथ सेट करता है।",
"No shader packs yet: open the pack folder and put some in it.": "अभी कोई शेडर पैक नहीं है: पैक फ़ोल्डर खोलें और उसमें कुछ रखें।",
"Pick a shader pack. Picking the one in use turns shaders off.": "एक शेडर पैक चुनें। उपयोग में चल रहे पैक को चुनने से शेडर बंद हो जाते हैं।",
"Changed options apply with Apply, or when you leave.": "बदले गए विकल्प लागू करें से, या बाहर निकलने पर लागू होते हैं।",
"Pack settings": "पैक की सेटिंग",
"Built-in settings": "अंतर्निहित सेटिंग",
"%s settings": "%s की सेटिंग",
"Settings made by the pack's author: they change only this pack.": "पैक के लेखक की बनाई सेटिंग: ये केवल इसी पैक को बदलती हैं।"
}
@@ -57,10 +57,7 @@
"horizon.mods.dev": " (Razvojno)",
"horizon.mods.settings": "Postavke",
"horizon.mods.open_folder": "Otvori mapu modova",
"horizon.shader_packs.empty": "Nema paketa shadera: stavite ih u mapu shaderpacks",
"horizon.shader_options.open": "Postavke shadera...",
"horizon.shader_options.profile": "Profil",
"horizon.shader_options.loading": "Čitanje postavki paketa shadera...",
"horizon.agent.copy_details": "Kopiraj pojedinosti veze",
"horizon.multiplayer.join": "Pridruži se",
"horizon.multiplayer.cancel_reconnecting": "Otkaži ponovno povezivanje",
@@ -433,5 +430,22 @@
"horizon.repro.bundle": "Paket reprodukcije: %s",
"horizon.repro.error": "Reprodukcija: %s",
"horizon.repro.no_recording": "Još nema snimke za izvoz.",
"horizon.repro.replay_started": "Reprodukcija započeta: %s"
"horizon.repro.replay_started": "Reprodukcija započeta: %s",
"Installed": "Instalirani",
"Apply": "Primijeni",
"Reset all options": "Vrati sve opcije na zadano",
"A Horizon shader pack.": "Horizon paket shadera.",
"An OptiFine or Iris shader pack.": "OptiFine ili Iris paket shadera.",
"In use: press to turn shaders off.": "U upotrebi: pritisni za isključivanje shadera.",
"Press to use it.": "Pritisni za korištenje.",
"Put shader pack .zip files or folders in it.": "Stavi u nju .zip datoteke ili mape paketa shadera.",
"Puts every option of this pack back to its default.": "Vraća svaku opciju ovog paketa na zadanu vrijednost.",
"Sets many options at once, as the pack groups them.": "Postavlja mnogo opcija odjednom, onako kako ih paket grupira.",
"No shader packs yet: open the pack folder and put some in it.": "Još nema paketa shadera: otvori mapu paketa i stavi nekoliko u nju.",
"Pick a shader pack. Picking the one in use turns shaders off.": "Odaberi paket shadera. Odabir paketa koji je u upotrebi isključuje shadere.",
"Changed options apply with Apply, or when you leave.": "Promijenjene opcije primjenjuju se gumbom Primijeni ili kad izađeš.",
"Pack settings": "Postavke paketa",
"Built-in settings": "Ugrađene postavke",
"%s settings": "Postavke za %s",
"Settings made by the pack's author: they change only this pack.": "Postavke koje je napravio autor paketa: mijenjaju samo ovaj paket."
}
@@ -66,11 +66,7 @@
"horizon.mods.settings": "Beállítások elemre",
"horizon.mods.in_world": " (hagyd a világot, hogy megváltozzon)",
"horizon.mods.open_folder": "Nyissa meg a Mod mappát",
"horizon.shader_packs.empty": "Nincs árnyékoló csomag: helyezze őket a shaderpacks mappába",
"horizon.shader_packs.kind_horizon": " (Horizont)",
"horizon.shader_options.open": "Árnyékoló opciók...",
"horizon.shader_options.profile": "Profil",
"horizon.shader_options.loading": "A shader csomag opcióinak elolvasása...",
"horizon.agent.copy_details": "Másolja a kapcsolat részleteit",
"horizon.multiplayer.join": "Csatlakozz",
"horizon.multiplayer.cancel_reconnecting": "Az újracsatlakozás megszakítása",
@@ -461,5 +457,22 @@
"horizon.extras.cosmetics_hide_fx.tooltip": "Más játékosok nyomai és aurái rejtve maradnak; a többi kozmetikumuk továbbra is látszik. Alapértelmezetten ki.",
"horizon.extras.cosmetics.shown": "Megjelenítve",
"horizon.extras.cosmetics.hidden": "Rejtett",
"horizon.extras.cosmetics.name_tags": "Csak névcímkék"
"horizon.extras.cosmetics.name_tags": "Csak névcímkék",
"Installed": "Telepítettek",
"Apply": "Alkalmaz",
"Reset all options": "Összes beállítás visszaállítása",
"A Horizon shader pack.": "Egy Horizon shadercsomag.",
"An OptiFine or Iris shader pack.": "Egy OptiFine- vagy Iris-shadercsomag.",
"In use: press to turn shaders off.": "Használatban: nyomd meg a shaderek kikapcsolásához.",
"Press to use it.": "Nyomd meg a használatához.",
"Put shader pack .zip files or folders in it.": "Tegyél bele shadercsomag .zip fájlokat vagy mappákat.",
"Puts every option of this pack back to its default.": "A csomag minden beállítását visszaállítja az alapértelmezettre.",
"Sets many options at once, as the pack groups them.": "Sok beállítást állít be egyszerre, ahogy a csomag csoportosítja őket.",
"No shader packs yet: open the pack folder and put some in it.": "Még nincs shadercsomag: nyisd meg a csomagmappát, és tegyél bele párat.",
"Pick a shader pack. Picking the one in use turns shaders off.": "Válassz egy shadercsomagot. A használatban lévő kiválasztása kikapcsolja a shadereket.",
"Changed options apply with Apply, or when you leave.": "A módosított beállítások az Alkalmaz gombbal vagy kilépéskor lépnek érvénybe.",
"Pack settings": "Csomagbeállítások",
"Built-in settings": "Beépített beállítások",
"%s settings": "%s beállításai",
"Settings made by the pack's author: they change only this pack.": "A csomag szerzője által készített beállítások: csak ezt a csomagot módosítják."
}
@@ -67,9 +67,7 @@
"horizon.mods.settings": "Կարգավորումներ",
"horizon.mods.in_world": " (թողեք աշխարհը փոխվի)",
"horizon.mods.open_folder": "Բացեք Mod թղթապանակը",
"horizon.shader_packs.empty": "Շեյդերների փաթեթներ չկան. դրեք դրանք shaderpacks թղթապանակում",
"horizon.shader_options.profile": "Անձնագիր",
"horizon.shader_options.loading": "Շեյդերների փաթեթի տարբերակների ընթերցում...",
"horizon.agent.copy_details": "Պատճենել կապի մանրամասները",
"horizon.multiplayer.join": "Միանալ",
"horizon.multiplayer.cancel_reconnecting": "Չեղարկել վերամիացումը",
@@ -467,5 +465,22 @@
"horizon.extras.cosmetics_hide_fx.tooltip": "Այլ խաղացողների հետքերն ու աուրաները մնում են թաքնված. նրանց մյուս կոսմետիկան դեռ երևում է։ Լռելյայն անջատված է։",
"horizon.extras.cosmetics.shown": "Ցուցադրված է",
"horizon.extras.cosmetics.hidden": "Թաքնված",
"horizon.extras.cosmetics.name_tags": "Միայն անունների պիտակներ"
"horizon.extras.cosmetics.name_tags": "Միայն անունների պիտակներ",
"Installed": "Տեղադրված",
"Apply": "Կիրառել",
"Reset all options": "Վերակայել բոլոր ընտրանքները",
"A Horizon shader pack.": "Horizon շեյդերների փաթեթ։",
"An OptiFine or Iris shader pack.": "OptiFine կամ Iris շեյդերների փաթեթ։",
"In use: press to turn shaders off.": "Օգտագործվում է․ սեղմեք՝ շեյդերն անջատելու համար։",
"Press to use it.": "Սեղմեք՝ օգտագործելու համար։",
"Put shader pack .zip files or folders in it.": "Դրեք դրա մեջ շեյդերների փաթեթների .zip ֆայլեր կամ պանակներ։",
"Puts every option of this pack back to its default.": "Այս փաթեթի յուրաքանչյուր ընտրանք վերադարձնում է լռելյայնին։",
"Sets many options at once, as the pack groups them.": "Միանգամից սահմանում է բազմաթիվ ընտրանքներ՝ ինչպես փաթեթն է խմբավորել։",
"No shader packs yet: open the pack folder and put some in it.": "Շեյդերների փաթեթներ դեռ չկան․ բացեք փաթեթների պանակը և դրեք մի քանիսը։",
"Pick a shader pack. Picking the one in use turns shaders off.": "Ընտրեք շեյդերների փաթեթ։ Օգտագործվողն ընտրելը անջատում է շեյդերները։",
"Changed options apply with Apply, or when you leave.": "Փոփոխված ընտրանքները կիրառվում են «Կիրառել» կոճակով կամ դուրս գալիս։",
"Pack settings": "Փաթեթի կարգավորումներ",
"Built-in settings": "Ներկառուցված կարգավորումներ",
"%s settings": "%s կարգավորումներ",
"Settings made by the pack's author: they change only this pack.": "Փաթեթի հեղինակի ստեղծած կարգավորումներ․ դրանք փոխում են միայն այս փաթեթը։"
}
@@ -57,10 +57,7 @@
"horizon.mods.dev": " (Pengembang)",
"horizon.mods.settings": "Pengaturan",
"horizon.mods.open_folder": "Buka Folder Mod",
"horizon.shader_packs.empty": "Tidak ada paket shader: masukkan ke dalam folder shaderpacks",
"horizon.shader_options.open": "Opsi Shader...",
"horizon.shader_options.profile": "Profil",
"horizon.shader_options.loading": "Membaca opsi paket shader...",
"horizon.agent.copy_details": "Salin Detail Koneksi",
"horizon.multiplayer.join": "Gabung",
"horizon.multiplayer.cancel_reconnecting": "Batalkan Menyambungkan Ulang",
@@ -426,5 +423,22 @@
"horizon.repro.bundle": "Bundel reproduksi: %s",
"horizon.repro.error": "Reproduksi: %s",
"horizon.repro.no_recording": "Belum ada rekaman untuk diekspor.",
"horizon.repro.replay_started": "Pemutaran ulang dimulai: %s"
"horizon.repro.replay_started": "Pemutaran ulang dimulai: %s",
"Installed": "Terpasang",
"Apply": "Terapkan",
"Reset all options": "Setel ulang semua opsi",
"A Horizon shader pack.": "Paket shader Horizon.",
"An OptiFine or Iris shader pack.": "Paket shader OptiFine atau Iris.",
"In use: press to turn shaders off.": "Sedang dipakai: tekan untuk mematikan shader.",
"Press to use it.": "Tekan untuk memakainya.",
"Put shader pack .zip files or folders in it.": "Taruh file .zip atau folder paket shader di dalamnya.",
"Puts every option of this pack back to its default.": "Mengembalikan setiap opsi paket ini ke nilai bawaannya.",
"Sets many options at once, as the pack groups them.": "Mengatur banyak opsi sekaligus, sesuai pengelompokan paket.",
"No shader packs yet: open the pack folder and put some in it.": "Belum ada paket shader: buka folder paket dan taruh beberapa di dalamnya.",
"Pick a shader pack. Picking the one in use turns shaders off.": "Pilih paket shader. Memilih yang sedang dipakai akan mematikan shader.",
"Changed options apply with Apply, or when you leave.": "Opsi yang diubah diterapkan dengan Terapkan, atau saat Anda keluar.",
"Pack settings": "Pengaturan paket",
"Built-in settings": "Pengaturan bawaan",
"%s settings": "Pengaturan %s",
"Settings made by the pack's author: they change only this pack.": "Pengaturan buatan pembuat paket: hanya mengubah paket ini."
}
@@ -71,10 +71,7 @@
"horizon.mods.settings": "Ntọala",
"horizon.mods.in_world": " (hapụ ụwa ka ọ gbanwee)",
"horizon.mods.open_folder": "Mepee folda Mod",
"horizon.shader_packs.empty": "Enweghị ngwugwu shader: tinye ha na nchekwa shaderpacks",
"horizon.shader_options.open": "Nhọrọ Shader...",
"horizon.shader_options.profile": "Profaịlụ",
"horizon.shader_options.loading": "Ịgụ nhọrọ mkpọ shader...",
"horizon.agent.copy_details": "Detuo nkọwa njikọ",
"horizon.multiplayer.join": "Soro",
"horizon.multiplayer.cancel_reconnecting": "Kagbuo njikọ ọzọ",
@@ -463,5 +460,22 @@
"horizon.extras.cosmetics_hide_fx.tooltip": "Akara ụkwụ na aura ndị egwuregwu ndị ọzọ na-anọgide zoro ezo; ihe ịchọ mma ha ndị ọzọ ka na-egosi. Gbanyụrụ na ndabara.",
"horizon.extras.cosmetics.shown": "Egosiri",
"horizon.extras.cosmetics.hidden": "Zoro ezo",
"horizon.extras.cosmetics.name_tags": "Naanị mkpado aha"
"horizon.extras.cosmetics.name_tags": "Naanị mkpado aha",
"Installed": "E wụnyere",
"Apply": "Tinye ya",
"Reset all options": "Weghachi nhọrọ niile",
"A Horizon shader pack.": "Mpempe shader Horizon.",
"An OptiFine or Iris shader pack.": "Mpempe shader OptiFine ma ọ bụ Iris.",
"In use: press to turn shaders off.": "A na-eji ya: pịa ka i gbanyụọ shader.",
"Press to use it.": "Pịa ka i jiri ya.",
"Put shader pack .zip files or folders in it.": "Tinye faịlụ .zip ma ọ bụ folda mpempe shader n'ime ya.",
"Puts every option of this pack back to its default.": "Na-eweghachi nhọrọ ọ bụla nke mpempe a na ntọala mbụ.",
"Sets many options at once, as the pack groups them.": "Na-ahazi ọtụtụ nhọrọ n'otu oge, dị ka mpempe ahụ si achịkọta ha.",
"No shader packs yet: open the pack folder and put some in it.": "Enweghị mpempe shader ọ bụla ugbu a: mepee folda mpempe ma tinye ụfọdụ n'ime ya.",
"Pick a shader pack. Picking the one in use turns shaders off.": "Họrọ mpempe shader. Ịhọrọ nke a na-eji na-agbanyụ shader.",
"Changed options apply with Apply, or when you leave.": "A na-etinye nhọrọ ndị agbanwere site na Tinye ya, ma ọ bụ mgbe i si apụ.",
"Pack settings": "Ntọala mpempe",
"Built-in settings": "Ntọala e wuru n'ime ya",
"%s settings": "Ntọala %s",
"Settings made by the pack's author: they change only this pack.": "Ntọala onye mere mpempe kere: ha na-agbanwe naanị mpempe a."
}
@@ -70,10 +70,7 @@
"horizon.mods.settings": "Stillingar",
"horizon.mods.in_world": " (láttu heiminn breytast)",
"horizon.mods.open_folder": "Opnaðu Mod Folder",
"horizon.shader_packs.empty": "Engar shader pakkar: settu þá í shaderpacks möppuna",
"horizon.shader_options.open": "Skuggavalkostir...",
"horizon.shader_options.profile": "Prófíll",
"horizon.shader_options.loading": "Er að lesa valkosti shader pakkans...",
"horizon.agent.copy_details": "Afritaðu tengingarupplýsingar",
"horizon.multiplayer.join": "Vertu með",
"horizon.multiplayer.cancel_reconnecting": "Hætta við að tengjast aftur",
@@ -469,5 +466,22 @@
"horizon.extras.cosmetics.shown": "Sýnd",
"horizon.extras.cosmetics.hidden": "Falinn",
"horizon.extras.cosmetics.name_tags": "Eingöngu nafnamerki",
"Shader Packs...": "Shader pakkar..."
"Shader Packs...": "Shader pakkar...",
"Installed": "Uppsett",
"Apply": "Virkja",
"Reset all options": "Endurstilla alla valkosti",
"A Horizon shader pack.": "Horizon-skuggapakki.",
"An OptiFine or Iris shader pack.": "OptiFine- eða Iris-skuggapakki.",
"In use: press to turn shaders off.": "Í notkun: ýttu til að slökkva á skuggum.",
"Press to use it.": "Ýttu til að nota hann.",
"Put shader pack .zip files or folders in it.": "Settu .zip-skrár eða möppur með skuggapökkum í hana.",
"Puts every option of this pack back to its default.": "Setur alla valkosti þessa pakka aftur á sjálfgefið gildi.",
"Sets many options at once, as the pack groups them.": "Stillir marga valkosti í einu, eins og pakkinn flokkar þá.",
"No shader packs yet: open the pack folder and put some in it.": "Engir skuggapakkar enn: opnaðu pakkamöppuna og settu nokkra í hana.",
"Pick a shader pack. Picking the one in use turns shaders off.": "Veldu skuggapakka. Ef þú velur þann sem er í notkun slokknar á skuggum.",
"Changed options apply with Apply, or when you leave.": "Breyttir valkostir taka gildi með Virkja, eða þegar þú ferð út.",
"Pack settings": "Pakkastillingar",
"Built-in settings": "Innbyggðar stillingar",
"%s settings": "Stillingar %s",
"Settings made by the pack's author: they change only this pack.": "Stillingar sem höfundur pakkans bjó til: þær breyta aðeins þessum pakka."
}
@@ -74,10 +74,7 @@
"horizon.mods.settings": "Impostazioni",
"horizon.mods.in_world": " (lasciare che il mondo cambi)",
"horizon.mods.open_folder": "Apri la cartella Mod",
"horizon.shader_packs.empty": "Nessun pacchetto shader: inseriscili nella cartella shaderpacks",
"horizon.shader_options.open": "Opzioni shader...",
"horizon.shader_options.profile": "Profilo",
"horizon.shader_options.loading": "Leggendo le opzioni del pacchetto shader...",
"horizon.agent.copy_details": "Copia i dettagli della connessione",
"horizon.multiplayer.join": "Partecipa",
"horizon.multiplayer.cancel_reconnecting": "Annulla riconnessione",
@@ -483,5 +480,22 @@
"horizon.extras.cosmetics_hide_fx.tooltip": "Le scie e le aure degli altri giocatori restano nascoste; gli altri loro cosmetici restano visibili. Disattivato per impostazione predefinita.",
"horizon.extras.cosmetics.shown": "Mostrato",
"horizon.extras.cosmetics.hidden": "Nascosto",
"horizon.extras.cosmetics.name_tags": "Solo targhette con nome"
"horizon.extras.cosmetics.name_tags": "Solo targhette con nome",
"Installed": "Installati",
"Apply": "Applica",
"Reset all options": "Ripristina tutte le opzioni",
"A Horizon shader pack.": "Un pacchetto di shader Horizon.",
"An OptiFine or Iris shader pack.": "Un pacchetto di shader OptiFine o Iris.",
"In use: press to turn shaders off.": "In uso: premi per disattivare gli shader.",
"Press to use it.": "Premi per usarlo.",
"Put shader pack .zip files or folders in it.": "Mettici dentro file .zip o cartelle di pacchetti di shader.",
"Puts every option of this pack back to its default.": "Riporta ogni opzione di questo pacchetto al valore predefinito.",
"Sets many options at once, as the pack groups them.": "Imposta molte opzioni insieme, come le raggruppa il pacchetto.",
"No shader packs yet: open the pack folder and put some in it.": "Nessun pacchetto di shader per ora: apri la cartella dei pacchetti e mettine qualcuno.",
"Pick a shader pack. Picking the one in use turns shaders off.": "Scegli un pacchetto di shader. Scegliere quello in uso disattiva gli shader.",
"Changed options apply with Apply, or when you leave.": "Le opzioni modificate si applicano con Applica, o quando esci.",
"Pack settings": "Impostazioni del pacchetto",
"Built-in settings": "Impostazioni integrate",
"%s settings": "Impostazioni di %s",
"Settings made by the pack's author: they change only this pack.": "Impostazioni create dall'autore del pacchetto: cambiano solo questo pacchetto."
}
@@ -76,10 +76,7 @@
"horizon.mods.settings": "設定",
"horizon.mods.in_world": " (世界の変化に任せて)",
"horizon.mods.open_folder": "Modフォルダーを開く",
"horizon.shader_packs.empty": "シェーダー パックはありません。シェーダー パック フォルダーに入れてください。",
"horizon.shader_options.open": "シェーダオプション...",
"horizon.shader_options.profile": "プロフィール",
"horizon.shader_options.loading": "シェーダー パックのオプションを読んでいます...",
"horizon.agent.copy_details": "接続詳細のコピー",
"horizon.multiplayer.join": "参加する",
"horizon.multiplayer.cancel_reconnecting": "再接続のキャンセル",
@@ -490,5 +487,22 @@
"horizon.extras.cosmetics_hide_fx.tooltip": "他のプレイヤーの軌跡とオーラを非表示にします。それ以外のコスメティックは表示されたままです。デフォルトはオフ。",
"horizon.extras.cosmetics.shown": "示されている",
"horizon.extras.cosmetics.hidden": "隠された",
"horizon.extras.cosmetics.name_tags": "ネームタグのみ"
"horizon.extras.cosmetics.name_tags": "ネームタグのみ",
"Installed": "インストール済み",
"Apply": "適用",
"Reset all options": "すべてのオプションをリセット",
"A Horizon shader pack.": "Horizon のシェーダーパック。",
"An OptiFine or Iris shader pack.": "OptiFine または Iris のシェーダーパック。",
"In use: press to turn shaders off.": "使用中: 押すとシェーダーをオフにします。",
"Press to use it.": "押すと使用します。",
"Put shader pack .zip files or folders in it.": "シェーダーパックの .zip ファイルまたはフォルダーをここに入れてください。",
"Puts every option of this pack back to its default.": "このパックのすべてのオプションを初期値に戻します。",
"Sets many options at once, as the pack groups them.": "パックのグループ分けに従って、多数のオプションを一度に設定します。",
"No shader packs yet: open the pack folder and put some in it.": "シェーダーパックはまだありません: パックフォルダーを開いて入れてください。",
"Pick a shader pack. Picking the one in use turns shaders off.": "シェーダーパックを選んでください。使用中のものを選ぶとシェーダーがオフになります。",
"Changed options apply with Apply, or when you leave.": "変更したオプションは「適用」を押すか、画面を閉じると反映されます。",
"Pack settings": "パックの設定",
"Built-in settings": "内蔵設定",
"%s settings": "%s の設定",
"Settings made by the pack's author: they change only this pack.": "パックの作者が用意した設定: このパックだけが変わります。"
}
@@ -70,9 +70,7 @@
"horizon.mods.settings": "პარამეტრები",
"horizon.mods.in_world": " (დატოვე სამყარო, რომ შეიცვალოს)",
"horizon.mods.open_folder": "გახსენით Mod Folder",
"horizon.shader_packs.empty": "შადერის პაკეტების გარეშე: ჩადეთ ისინი shaderpacks საქაღალდეში",
"horizon.shader_options.profile": "პროფილი",
"horizon.shader_options.loading": "შადერის პაკეტის ვარიანტების წაკითხვა...",
"horizon.agent.copy_details": "დააკოპირეთ კავშირის დეტალები",
"horizon.multiplayer.join": "შეუერთდი",
"horizon.multiplayer.cancel_reconnecting": "ხელახლა დაკავშირების გაუქმება",
@@ -475,5 +473,22 @@
"horizon.extras.cosmetics_hide_fx.tooltip": "სხვა მოთამაშეების კვალი და აურები დამალული რჩება; მათი სხვა კოსმეტიკა კვლავ ჩანს. ნაგულისხმევად გამორთულია.",
"horizon.extras.cosmetics.shown": "ნაჩვენებია",
"horizon.extras.cosmetics.hidden": "დამალული",
"horizon.extras.cosmetics.name_tags": "მხოლოდ სახელების ტეგები"
"horizon.extras.cosmetics.name_tags": "მხოლოდ სახელების ტეგები",
"Installed": "დაყენებული",
"Apply": "გამოყენება",
"Reset all options": "ყველა პარამეტრის გადატვირთვა",
"A Horizon shader pack.": "Horizon-ის შეიდერების პაკეტი.",
"An OptiFine or Iris shader pack.": "OptiFine-ის ან Iris-ის შეიდერების პაკეტი.",
"In use: press to turn shaders off.": "გამოიყენება: დააჭირეთ შეიდერების გამოსართავად.",
"Press to use it.": "დააჭირეთ გამოსაყენებლად.",
"Put shader pack .zip files or folders in it.": "ჩადეთ მასში შეიდერების პაკეტების .zip ფაილები ან საქაღალდეები.",
"Puts every option of this pack back to its default.": "ამ პაკეტის ყველა პარამეტრს სტანდარტულზე აბრუნებს.",
"Sets many options at once, as the pack groups them.": "ერთბაშად ადგენს ბევრ პარამეტრს, ისე, როგორც პაკეტი აჯგუფებს მათ.",
"No shader packs yet: open the pack folder and put some in it.": "შეიდერების პაკეტები ჯერ არ არის: გახსენით პაკეტების საქაღალდე და ჩადეთ რამდენიმე.",
"Pick a shader pack. Picking the one in use turns shaders off.": "აირჩიეთ შეიდერების პაკეტი. გამოყენებულის არჩევა შეიდერებს გამორთავს.",
"Changed options apply with Apply, or when you leave.": "შეცვლილი პარამეტრები გამოიყენება ღილაკით „გამოყენება“ ან გასვლისას.",
"Pack settings": "პაკეტის პარამეტრები",
"Built-in settings": "ჩაშენებული პარამეტრები",
"%s settings": "%s-ის პარამეტრები",
"Settings made by the pack's author: they change only this pack.": "პაკეტის ავტორის შექმნილი პარამეტრები: ისინი მხოლოდ ამ პაკეტს ცვლიან."
}
@@ -73,10 +73,7 @@
"horizon.mods.settings": "Параметрлер",
"horizon.mods.in_world": " (әлемді өзгерту үшін қалдырыңыз)",
"horizon.mods.open_folder": "Мод қалтасын ашыңыз",
"horizon.shader_packs.empty": "Шейдер бумалары жоқ: оларды shaderpacks қалтасына салыңыз",
"horizon.shader_options.open": "Шейдер опциялары...",
"horizon.shader_options.profile": "Профиль",
"horizon.shader_options.loading": "Шейдер бумасының опциялары оқылуда...",
"horizon.agent.copy_details": "Қосылым мәліметтерін көшіру",
"horizon.multiplayer.join": "Қосылыңыз",
"horizon.multiplayer.cancel_reconnecting": "Қайта қосылудан бас тарту",
@@ -477,5 +474,22 @@
"horizon.extras.cosmetics_hide_fx.tooltip": "Басқа ойыншылардың іздері мен ауралары жасырын қалады; олардың басқа косметикасы көрінеді. Әдепкі бойынша өшірулі.",
"horizon.extras.cosmetics.shown": "Көрсетілген",
"horizon.extras.cosmetics.hidden": "Жасырын",
"horizon.extras.cosmetics.name_tags": "Тек атау тегтері"
"horizon.extras.cosmetics.name_tags": "Тек атау тегтері",
"Installed": "Орнатылған",
"Apply": "Қолдану",
"Reset all options": "Барлық опцияларды ысыру",
"A Horizon shader pack.": "Horizon шейдер жинағы.",
"An OptiFine or Iris shader pack.": "OptiFine немесе Iris шейдер жинағы.",
"In use: press to turn shaders off.": "Қолданылуда: шейдерлерді өшіру үшін басыңыз.",
"Press to use it.": "Қолдану үшін басыңыз.",
"Put shader pack .zip files or folders in it.": "Оған шейдер жинақтарының .zip файлдарын немесе қалталарын салыңыз.",
"Puts every option of this pack back to its default.": "Осы жинақтың барлық опцияларын бастапқы мәніне қайтарады.",
"Sets many options at once, as the pack groups them.": "Жинақ топтағандай, көп опцияны бірден орнатады.",
"No shader packs yet: open the pack folder and put some in it.": "Шейдер жинақтары әлі жоқ: жинақ қалтасын ашып, бірнешеуін салыңыз.",
"Pick a shader pack. Picking the one in use turns shaders off.": "Шейдер жинағын таңдаңыз. Қолданылып жатқанын таңдасаңыз, шейдерлер өшеді.",
"Changed options apply with Apply, or when you leave.": "Өзгертілген опциялар «Қолдану» батырмасымен немесе шыққанда қолданылады.",
"Pack settings": "Жинақ параметрлері",
"Built-in settings": "Кіріктірілген параметрлер",
"%s settings": "%s параметрлері",
"Settings made by the pack's author: they change only this pack.": "Жинақ авторы жасаған параметрлер: олар тек осы жинақты өзгертеді."
}
@@ -74,10 +74,7 @@
"horizon.mods.settings": "ಸೆಟ್ಟಿಂಗ್‌ಗಳು",
"horizon.mods.in_world": " (ಜಗತ್ತನ್ನು ಬದಲಾಯಿಸಲು ಬಿಡಿ)",
"horizon.mods.open_folder": "ಮಾಡ್ ಫೋಲ್ಡರ್ ತೆರೆಯಿರಿ",
"horizon.shader_packs.empty": "ಶೇಡರ್ ಪ್ಯಾಕ್‌ಗಳಿಲ್ಲ: ಅವುಗಳನ್ನು ಶೇಡರ್‌ಪ್ಯಾಕ್ಸ್ ಫೋಲ್ಡರ್‌ನಲ್ಲಿ ಇರಿಸಿ",
"horizon.shader_options.open": "ಶೇಡರ್ ಆಯ್ಕೆಗಳು...",
"horizon.shader_options.profile": "ಪ್ರೊಫೈಲ್",
"horizon.shader_options.loading": "ಶೇಡರ್ ಪ್ಯಾಕ್‌ನ ಆಯ್ಕೆಗಳನ್ನು ಓದಲಾಗುತ್ತಿದೆ...",
"horizon.agent.copy_details": "ಸಂಪರ್ಕ ವಿವರಗಳನ್ನು ನಕಲಿಸಿ",
"horizon.multiplayer.join": "ಸೇರಿಕೊಳ್ಳಿ",
"horizon.multiplayer.cancel_reconnecting": "ಮರುಸಂಪರ್ಕವನ್ನು ರದ್ದುಮಾಡಿ",
@@ -484,5 +481,22 @@
"horizon.extras.cosmetics_hide_fx.tooltip": "ಇತರ ಆಟಗಾರರ ಹಾದಿಗಳು ಮತ್ತು ಪ್ರಭಾವಳಿಗಳು ಮರೆಯಾಗಿರುತ್ತವೆ; ಅವರ ಇತರ ಅಲಂಕಾರಗಳು ಕಾಣುತ್ತವೆ. ಪೂರ್ವನಿಯೋಜಿತವಾಗಿ ಆಫ್.",
"horizon.extras.cosmetics.shown": "ತೋರಿಸಲಾಗಿದೆ",
"horizon.extras.cosmetics.hidden": "ಮರೆಮಾಡಲಾಗಿದೆ",
"horizon.extras.cosmetics.name_tags": "ಹೆಸರು ಟ್ಯಾಗ್‌ಗಳು ಮಾತ್ರ"
"horizon.extras.cosmetics.name_tags": "ಹೆಸರು ಟ್ಯಾಗ್‌ಗಳು ಮಾತ್ರ",
"Installed": "ಸ್ಥಾಪಿತವಾದವು",
"Apply": "ಅನ್ವಯಿಸಿ",
"Reset all options": "ಎಲ್ಲಾ ಆಯ್ಕೆಗಳನ್ನು ಮರುಹೊಂದಿಸಿ",
"A Horizon shader pack.": "ಒಂದು Horizon ಶೇಡರ್ ಪ್ಯಾಕ್.",
"An OptiFine or Iris shader pack.": "ಒಂದು OptiFine ಅಥವಾ Iris ಶೇಡರ್ ಪ್ಯಾಕ್.",
"In use: press to turn shaders off.": "ಬಳಕೆಯಲ್ಲಿದೆ: ಶೇಡರ್‌ಗಳನ್ನು ಆಫ್ ಮಾಡಲು ಒತ್ತಿ.",
"Press to use it.": "ಬಳಸಲು ಒತ್ತಿ.",
"Put shader pack .zip files or folders in it.": "ಶೇಡರ್ ಪ್ಯಾಕ್ .zip ಫೈಲ್‌ಗಳು ಅಥವಾ ಫೋಲ್ಡರ್‌ಗಳನ್ನು ಅದರಲ್ಲಿ ಇರಿಸಿ.",
"Puts every option of this pack back to its default.": "ಈ ಪ್ಯಾಕ್‌ನ ಪ್ರತಿ ಆಯ್ಕೆಯನ್ನು ಅದರ ಡೀಫಾಲ್ಟ್‌ಗೆ ಮರಳಿಸುತ್ತದೆ.",
"Sets many options at once, as the pack groups them.": "ಪ್ಯಾಕ್ ಗುಂಪು ಮಾಡಿರುವಂತೆ, ಹಲವು ಆಯ್ಕೆಗಳನ್ನು ಒಮ್ಮೆಲೇ ಹೊಂದಿಸುತ್ತದೆ.",
"No shader packs yet: open the pack folder and put some in it.": "ಇನ್ನೂ ಶೇಡರ್ ಪ್ಯಾಕ್‌ಗಳಿಲ್ಲ: ಪ್ಯಾಕ್ ಫೋಲ್ಡರ್ ತೆರೆದು ಕೆಲವನ್ನು ಇರಿಸಿ.",
"Pick a shader pack. Picking the one in use turns shaders off.": "ಒಂದು ಶೇಡರ್ ಪ್ಯಾಕ್ ಆರಿಸಿ. ಬಳಕೆಯಲ್ಲಿರುವುದನ್ನು ಆರಿಸಿದರೆ ಶೇಡರ್‌ಗಳು ಆಫ್ ಆಗುತ್ತವೆ.",
"Changed options apply with Apply, or when you leave.": "ಬದಲಿಸಿದ ಆಯ್ಕೆಗಳು ಅನ್ವಯಿಸಿ ಮೂಲಕ, ಅಥವಾ ನೀವು ಹೊರಬಂದಾಗ ಅನ್ವಯವಾಗುತ್ತವೆ.",
"Pack settings": "ಪ್ಯಾಕ್ ಸೆಟ್ಟಿಂಗ್‌ಗಳು",
"Built-in settings": "ಅಂತರ್ನಿರ್ಮಿತ ಸೆಟ್ಟಿಂಗ್‌ಗಳು",
"%s settings": "%s ಸೆಟ್ಟಿಂಗ್‌ಗಳು",
"Settings made by the pack's author: they change only this pack.": "ಪ್ಯಾಕ್‌ನ ಲೇಖಕರು ರಚಿಸಿದ ಸೆಟ್ಟಿಂಗ್‌ಗಳು: ಅವು ಈ ಪ್ಯಾಕ್ ಅನ್ನು ಮಾತ್ರ ಬದಲಿಸುತ್ತವೆ."
}
@@ -57,10 +57,7 @@
"horizon.mods.dev": " (개발용)",
"horizon.mods.settings": "설정",
"horizon.mods.open_folder": "모드 폴더 열기",
"horizon.shader_packs.empty": "셰이더 팩 없음: shaderpacks 폴더에 넣으세요.",
"horizon.shader_options.open": "셰이더 옵션...",
"horizon.shader_options.profile": "프로필",
"horizon.shader_options.loading": "셰이더 팩 옵션을 읽는 중...",
"horizon.agent.copy_details": "연결 세부 정보 복사",
"horizon.multiplayer.join": "참가",
"horizon.multiplayer.cancel_reconnecting": "재연결 취소",
@@ -436,5 +433,22 @@
"horizon.repro.bundle": "재현 번들: %s",
"horizon.repro.error": "재현 오류: %s",
"horizon.repro.no_recording": "아직 내보낼 기록이 없습니다.",
"horizon.repro.replay_started": "재생이 시작되었습니다: %s"
"horizon.repro.replay_started": "재생이 시작되었습니다: %s",
"Installed": "설치됨",
"Apply": "적용",
"Reset all options": "모든 옵션 초기화",
"A Horizon shader pack.": "Horizon 셰이더 팩.",
"An OptiFine or Iris shader pack.": "OptiFine 또는 Iris 셰이더 팩.",
"In use: press to turn shaders off.": "사용 중: 누르면 셰이더를 끕니다.",
"Press to use it.": "눌러서 사용합니다.",
"Put shader pack .zip files or folders in it.": "셰이더 팩 .zip 파일이나 폴더를 여기에 넣으세요.",
"Puts every option of this pack back to its default.": "이 팩의 모든 옵션을 기본값으로 되돌립니다.",
"Sets many options at once, as the pack groups them.": "팩이 묶어 둔 대로 여러 옵션을 한 번에 설정합니다.",
"No shader packs yet: open the pack folder and put some in it.": "아직 셰이더 팩이 없습니다: 팩 폴더를 열어 몇 개 넣으세요.",
"Pick a shader pack. Picking the one in use turns shaders off.": "셰이더 팩을 선택하세요. 사용 중인 팩을 선택하면 셰이더가 꺼집니다.",
"Changed options apply with Apply, or when you leave.": "변경한 옵션은 적용을 누르거나 나갈 때 적용됩니다.",
"Pack settings": "팩 설정",
"Built-in settings": "내장 설정",
"%s settings": "%s 설정",
"Settings made by the pack's author: they change only this pack.": "팩 제작자가 만든 설정: 이 팩에만 적용됩니다."
}
@@ -66,10 +66,7 @@
"horizon.mods.settings": "Орнотуулар",
"horizon.mods.in_world": " (өзгөрүү үчүн дүйнөнү таштап)",
"horizon.mods.open_folder": "Mod папкасын ачыңыз",
"horizon.shader_packs.empty": "Шейдер топтомдору жок: аларды shaderpacks папкасына салыңыз",
"horizon.shader_options.open": "Шейдер параметрлери...",
"horizon.shader_options.profile": "Профиль",
"horizon.shader_options.loading": "Шейдер топтомунун параметрлери окулууда...",
"horizon.agent.copy_details": "Туташуу чоо-жайын көчүрүү",
"horizon.multiplayer.join": "Кошулуу",
"horizon.multiplayer.cancel_reconnecting": "Кайра туташууну жокко чыгаруу",
@@ -451,5 +448,22 @@
"horizon.extras.cosmetics_hide_fx.tooltip": "Башка оюнчулардын издери жана ауралары жашыруун калат; алардын башка косметикасы көрүнөт. Демейки боюнча өчүк.",
"horizon.extras.cosmetics.shown": "Көрсөтүлдү",
"horizon.extras.cosmetics.hidden": "Жашырылган",
"horizon.extras.cosmetics.name_tags": "Аталышы гана"
"horizon.extras.cosmetics.name_tags": "Аталышы гана",
"Installed": "Орнотулган",
"Apply": "Колдонуу",
"Reset all options": "Бардык параметрлерди баштапкыга келтирүү",
"A Horizon shader pack.": "Horizon шейдер топтомү.",
"An OptiFine or Iris shader pack.": "OptiFine же Iris шейдер топтомү.",
"In use: press to turn shaders off.": "Колдонулуп жатат: шейдерлерди өчүрүү үчүн басыңыз.",
"Press to use it.": "Колдонуу үчүн басыңыз.",
"Put shader pack .zip files or folders in it.": "Ага шейдер топтомдорунун .zip файлдарын же папкаларын салыңыз.",
"Puts every option of this pack back to its default.": "Бул топтомдун бардык параметрлерин демейкисине кайтарат.",
"Sets many options at once, as the pack groups them.": "Топтом топтогондой эле, көп параметрди бир убакта коёт.",
"No shader packs yet: open the pack folder and put some in it.": "Шейдер топтомдору азырынча жок: топтомдор папкасын ачып, бир нечесин салыңыз.",
"Pick a shader pack. Picking the one in use turns shaders off.": "Шейдер топтомун тандаңыз. Колдонулуп жатканын тандасаңыз, шейдерлер өчөт.",
"Changed options apply with Apply, or when you leave.": "Өзгөртүлгөн параметрлер «Колдонуу» менен же чыкканда колдонулат.",
"Pack settings": "Топтом жөндөөлөрү",
"Built-in settings": "Орнотулган жөндөөлөр",
"%s settings": "%s жөндөөлөрү",
"Settings made by the pack's author: they change only this pack.": "Топтомдун автору жасаган жөндөөлөр: алар ушул топтомду гана өзгөртөт."
}
@@ -48,9 +48,6 @@
"horizon.mods.settings": "Occasus",
"horizon.mods.in_world": " (Mutationem relinquere mundum)",
"horizon.mods.open_folder": "Mod aperta Folder",
"horizon.shader_packs.empty": "Non shader sarcinas posuit in shaderpacks folder",
"horizon.shader_options.open": "Optiones Shader ...",
"horizon.shader_options.loading": "Legens opacum sarcina scriptor optiones...",
"horizon.agent.copy_details": "Exemplum Connection Details",
"horizon.multiplayer.join_friend": "Iungere amico",
"horizon.multiplayer.invite_code": "invitare Code",
@@ -402,5 +399,22 @@
"horizon.extras.cosmetics_hide_fx.tooltip": "Vestigia et aurae aliorum lusorum celata manent; cetera ornamenta eorum adhuc videntur. Ex defalta exstinctum.",
"horizon.extras.cosmetics.shown": "Ostensum",
"horizon.extras.cosmetics.hidden": "Occultus",
"horizon.extras.cosmetics.name_tags": "Nomen tags tantum"
"horizon.extras.cosmetics.name_tags": "Nomen tags tantum",
"Installed": "Instituta",
"Apply": "Applica",
"Reset all options": "Omnes optiones restitue",
"A Horizon shader pack.": "Fasciculus umbrarum Horizontis.",
"An OptiFine or Iris shader pack.": "Fasciculus umbrarum OptiFine vel Iris.",
"In use: press to turn shaders off.": "In usu: preme ut umbrae exstinguantur.",
"Press to use it.": "Preme ut eo utaris.",
"Put shader pack .zip files or folders in it.": "Pone in eo fasciculos .zip vel plicas fasciculorum umbrarum.",
"Puts every option of this pack back to its default.": "Omnes optiones huius fasciculi ad praefinita restituit.",
"Sets many options at once, as the pack groups them.": "Multas optiones simul ponit, ut fasciculus eas colligit.",
"No shader packs yet: open the pack folder and put some in it.": "Nondum fasciculi umbrarum sunt: aperi plicam fasciculorum et aliquos in eam pone.",
"Pick a shader pack. Picking the one in use turns shaders off.": "Fasciculum umbrarum elige. Eum qui in usu est eligere umbras exstinguit.",
"Changed options apply with Apply, or when you leave.": "Optiones mutatae applicantur per Applica, vel cum discedis.",
"Pack settings": "Optiones fasciculi",
"Built-in settings": "Optiones insitae",
"%s settings": "Optiones %s",
"Settings made by the pack's author: they change only this pack.": "Optiones ab auctore fasciculi factae: hunc tantum fasciculum mutant."
}
@@ -57,10 +57,7 @@
"horizon.mods.settings": "Astellungen",
"horizon.mods.in_world": " (loosst d'Welt änneren)",
"horizon.mods.open_folder": "Open Mod Dossier",
"horizon.shader_packs.empty": "Keng Shader Packs: setzt se an den Shaderpacks Dossier",
"horizon.shader_options.open": "Shader Optiounen ...",
"horizon.shader_options.profile": "Profil",
"horizon.shader_options.loading": "Liest d'Optioune vum Shader Pack ...",
"horizon.agent.copy_details": "Kopie Verbindung Detailer",
"horizon.multiplayer.join": "Maacht mat",
"horizon.multiplayer.cancel_reconnecting": "Ofbriechen Reconnecting",
@@ -438,5 +435,22 @@
"horizon.extras.cosmetics_hide_fx.tooltip": "Spueren an Auraen vun anere Spiller bleiwe verstoppt; hir aner Kosmetik ass ëmmer nach ze gesinn. Standardméisseg aus.",
"horizon.extras.cosmetics.shown": "gewisen",
"horizon.extras.cosmetics.hidden": "Verstoppt",
"horizon.extras.cosmetics.name_tags": "Numm Tags nëmmen"
"horizon.extras.cosmetics.name_tags": "Numm Tags nëmmen",
"Installed": "Installéiert",
"Apply": "Uwenden",
"Reset all options": "All Optiounen zrécksetzen",
"A Horizon shader pack.": "E Horizon-Shader-Pak.",
"An OptiFine or Iris shader pack.": "E OptiFine- oder Iris-Shader-Pak.",
"In use: press to turn shaders off.": "Am Gebrauch: dréck fir d'Shader auszeschalten.",
"Press to use it.": "Dréck fir en ze benotzen.",
"Put shader pack .zip files or folders in it.": "Leet .zip-Dateien oder Dossieren vu Shader-Paken dran.",
"Puts every option of this pack back to its default.": "Setzt all Optioun vun dësem Pak op de Standard zréck.",
"Sets many options at once, as the pack groups them.": "Stellt vill Optiounen op eemol an, wéi de Pak se gruppéiert.",
"No shader packs yet: open the pack folder and put some in it.": "Nach keng Shader-Paken: maach den Pak-Dossier op a leet e puer dran.",
"Pick a shader pack. Picking the one in use turns shaders off.": "Wiel e Shader-Pak. Dee vum Gebrauch ze wielen schalt d'Shader aus.",
"Changed options apply with Apply, or when you leave.": "Geännert Optioune gi mat Uwenden ugewannt, oder wann dir fortgitt.",
"Pack settings": "Pak-Astellungen",
"Built-in settings": "Agebaut Astellungen",
"%s settings": "Astellunge vu(n) %s",
"Settings made by the pack's author: they change only this pack.": "Astellungen, déi den Auteur vum Pak gemaach huet: si änneren nëmmen dëse Pak."
}
@@ -56,10 +56,7 @@
"horizon.mods.settings": "Instellinge",
"horizon.mods.in_world": " (laot de wereld um te verandere)",
"horizon.mods.open_folder": "Mod-map ope",
"horizon.shader_packs.empty": "Geen shaderpacks: zèt ze in de map shaderpacks",
"horizon.shader_options.open": "Shader-opties...",
"horizon.shader_options.profile": "Profiel",
"horizon.shader_options.loading": "De opties vaan ‘t shaderpakket leze...",
"horizon.agent.copy_details": "Kopieer verbindingsdetails",
"horizon.multiplayer.join": "Sluit aan",
"horizon.multiplayer.cancel_reconnecting": "Herverbinding annulere",
@@ -437,5 +434,22 @@
"horizon.extras.cosmetics_hide_fx.tooltip": "Spore en aura's van anger spelers blieve verborge; hun anger cosmetica blieve zichbaar. Standaard oet.",
"horizon.extras.cosmetics.shown": "Getoend",
"horizon.extras.cosmetics.hidden": "Verborge",
"horizon.extras.cosmetics.name_tags": "Allein naamtags"
"horizon.extras.cosmetics.name_tags": "Allein naamtags",
"Installed": "Geïnstalleerd",
"Apply": "Toepassen",
"Reset all options": "Alle opties herstelle",
"A Horizon shader pack.": "Un Horizon-shaderpakket.",
"An OptiFine or Iris shader pack.": "Un OptiFine- of Iris-shaderpakket.",
"In use: press to turn shaders off.": "In gebruuk: drök om shaders oet te zetten.",
"Press to use it.": "Drök om 't te gebroeke.",
"Put shader pack .zip files or folders in it.": "Zet .zip-besjtenj of mappe mit shaderpakkette drin.",
"Puts every option of this pack back to its default.": "Zet alle opties van dit pakket trök nao de standaard.",
"Sets many options at once, as the pack groups them.": "Steit väöl opties tegeliek in, wie 't pakket ze groepeert.",
"No shader packs yet: open the pack folder and put some in it.": "Nog gein shaderpakkette: opene de pakketmap en zet d'r paar in.",
"Pick a shader pack. Picking the one in use turns shaders off.": "Kees un shaderpakket. 't Pakket in gebruuk kieze zet shaders oet.",
"Changed options apply with Apply, or when you leave.": "Gewijzigde opties waere toegepas mit Toepassen, of es se vertrèkke.",
"Pack settings": "Pakketinstellinge",
"Built-in settings": "Ingebouwde instellinge",
"%s settings": "Instellinge van %s",
"Settings made by the pack's author: they change only this pack.": "Instellinge gemaak door de maker van 't pakket: ze verangere allein dit pakket."
}
@@ -71,10 +71,7 @@
"horizon.mods.settings": "Impostaziun",
"horizon.mods.in_world": " (lassà el mund per cambiar)",
"horizon.mods.open_folder": "Apri la cartella Mod",
"horizon.shader_packs.empty": "Nissun pachett de ombre: mettel in de la cartella di pachett de ombre",
"horizon.shader_options.open": "Opziun del shader...",
"horizon.shader_options.profile": "Profil",
"horizon.shader_options.loading": "Legg i opziun del pachett shader...",
"horizon.agent.copy_details": "Copia i detai de la cunnesiun",
"horizon.multiplayer.join": "Partecipa",
"horizon.multiplayer.cancel_reconnecting": "Annulla la riconnession",
@@ -473,5 +470,22 @@
"horizon.extras.cosmetics_mine.tooltip": "Ascüs: tüt i giucadur Horizon te veden senza i tò cosmetich, anca tì. L’istess interruttur del guardaroba del lanciador.",
"horizon.extras.cosmetics_others": "Cosmetich di olter giucadur",
"horizon.extras.cosmetics_others.tooltip": "Che ròbb che purtan sü i olter giucadur Horizon: tüt, sultant i luur stil de etichett o nient. Ascüs, el giœugh dumanda mai cus’è che g’han sü.",
"horizon.extras.cosmetics_hide_fx.tooltip": "I strasc e i aur di olter giugadur resten scondu; i sò olter cosmetegh se veden anmò. Smorzaa de default."
"horizon.extras.cosmetics_hide_fx.tooltip": "I strasc e i aur di olter giugadur resten scondu; i sò olter cosmetegh se veden anmò. Smorzaa de default.",
"Installed": "Instalaa",
"Apply": "Aplica",
"Reset all options": "Tira indree tucc i opziun",
"A Horizon shader pack.": "Un pacchet de shader de Horizon.",
"An OptiFine or Iris shader pack.": "Un pacchet de shader de OptiFine o Iris.",
"In use: press to turn shaders off.": "In dovrada: schiscia per stüdà i shader.",
"Press to use it.": "Schiscia per doperall.",
"Put shader pack .zip files or folders in it.": "Met denter i file .zip o i cartèll di pacchet de shader.",
"Puts every option of this pack back to its default.": "Torna ogni opziun de sto pacchet al valur de partenza.",
"Sets many options at once, as the pack groups them.": "Impòsta tante opziun in una volta, come el pacchet el i group.",
"No shader packs yet: open the pack folder and put some in it.": "Gh'è nanca on pacchet de shader: derva el cartèll di pacchet e met denter quaivun.",
"Pick a shader pack. Picking the one in use turns shaders off.": "Sèlta on pacchet de shader. Sceglier quel in dovrada el stüda i shader.",
"Changed options apply with Apply, or when you leave.": "Le opziun cambiaa se aplichen cun Aplica, o quand te vee via.",
"Pack settings": "Impostazion del pacchet",
"Built-in settings": "Impostazion integraa",
"%s settings": "Impostazion de %s",
"Settings made by the pack's author: they change only this pack.": "Impostazion fai de l'autor del pacchet: le cambia domà sto pacchet."
}
@@ -69,10 +69,7 @@
"horizon.mods.settings": "ການຕັ້ງຄ່າ",
"horizon.mods.in_world": " (ປ່ອຍໃຫ້ໂລກປ່ຽນແປງ)",
"horizon.mods.open_folder": "ເປີດ Mod Folder",
"horizon.shader_packs.empty": "ບໍ່ມີຊຸດ shader: ເອົາໃສ່ໃນໂຟນເດີ shaderpacks",
"horizon.shader_options.open": "ຕົວເລືອກ Shader...",
"horizon.shader_options.profile": "ໂປຣໄຟລ໌",
"horizon.shader_options.loading": "ກຳລັງອ່ານຕົວເລືອກຂອງຊຸດ shader...",
"horizon.agent.copy_details": "ສຳເນົາລາຍລະອຽດການເຊື່ອມຕໍ່",
"horizon.multiplayer.join": "ເຂົ້າຮ່ວມ",
"horizon.multiplayer.cancel_reconnecting": "ຍົກເລີກການເຊື່ອມຕໍ່ຄືນໃໝ່",
@@ -468,5 +465,22 @@
"horizon.extras.cosmetics.shown": "ສະແດງໃຫ້ເຫັນ",
"horizon.extras.cosmetics.hidden": "ເຊື່ອງໄວ້",
"horizon.extras.cosmetics.name_tags": "ປ້າຍຊື່ເທົ່ານັ້ນ",
"Shader Packs...": "ຊອງ Shader..."
"Shader Packs...": "ຊອງ Shader...",
"Installed": "ຕິດຕັ້ງແລ້ວ",
"Apply": "ນຳໃຊ້",
"Reset all options": "ຣີເຊັດຕົວເລືອກທັງໝົດ",
"A Horizon shader pack.": "ແພັກເຊດເດີ Horizon.",
"An OptiFine or Iris shader pack.": "ແພັກເຊດເດີ OptiFine ຫຼື Iris.",
"In use: press to turn shaders off.": "ກຳລັງໃຊ້: ກົດເພື່ອປິດເຊດເດີ.",
"Press to use it.": "ກົດເພື່ອໃຊ້ມັນ.",
"Put shader pack .zip files or folders in it.": "ເອົາໄຟລ໌ .zip ຫຼື ໂຟນເດີຂອງແພັກເຊດເດີໃສ່ໃນນັ້ນ.",
"Puts every option of this pack back to its default.": "ຄືນຄ່າທຸກຕົວເລືອກຂອງແພັກນີ້ເປັນຄ່າເລີ່ມຕົ້ນ.",
"Sets many options at once, as the pack groups them.": "ຕັ້ງຫຼາຍຕົວເລືອກພ້ອມກັນ ຕາມທີ່ແພັກຈັດກຸ່ມໄວ້.",
"No shader packs yet: open the pack folder and put some in it.": "ຍັງບໍ່ມີແພັກເຊດເດີ: ເປີດໂຟນເດີແພັກ ແລ້ວເອົາບາງອັນໃສ່.",
"Pick a shader pack. Picking the one in use turns shaders off.": "ເລືອກແພັກເຊດເດີ. ການເລືອກອັນທີ່ກຳລັງໃຊ້ຈະປິດເຊດເດີ.",
"Changed options apply with Apply, or when you leave.": "ຕົວເລືອກທີ່ປ່ຽນຈະນຳໃຊ້ດ້ວຍ ນຳໃຊ້ ຫຼື ເມື່ອທ່ານອອກ.",
"Pack settings": "ການຕັ້ງຄ່າແພັກ",
"Built-in settings": "ການຕັ້ງຄ່າໃນຕົວ",
"%s settings": "ການຕັ້ງຄ່າຂອງ %s",
"Settings made by the pack's author: they change only this pack.": "ການຕັ້ງຄ່າທີ່ຜູ້ສ້າງແພັກເຮັດໄວ້: ມັນປ່ຽນສະເພາະແພັກນີ້ເທົ່ານັ້ນ."
}
@@ -72,11 +72,7 @@
"horizon.mods.settings": "Nustatymai",
"horizon.mods.in_world": " (palik pasauliui pasikeisti)",
"horizon.mods.open_folder": "Atidarykite Mod aplanką",
"horizon.shader_packs.empty": "Nėra šešėlių paketų: įdėkite juos į šešėlių paketų aplanką",
"horizon.shader_packs.kind_horizon": " (Horizontas)",
"horizon.shader_options.open": "Shader parinktys...",
"horizon.shader_options.profile": "Profilis",
"horizon.shader_options.loading": "Skaitant šešėlių paketo parinktis...",
"horizon.agent.copy_details": "Nukopijuokite ryšio informaciją",
"horizon.multiplayer.join": "Prisijunk",
"horizon.multiplayer.cancel_reconnecting": "Atšaukti prisijungimą iš naujo",
@@ -470,5 +466,22 @@
"horizon.extras.cosmetics_hide_fx.tooltip": "Kitų žaidėjų pėdsakai ir auros lieka paslėpti; kita jų kosmetika vis dar matoma. Numatytai išjungta.",
"horizon.extras.cosmetics.shown": "Parodyta",
"horizon.extras.cosmetics.hidden": "Paslėpta",
"horizon.extras.cosmetics.name_tags": "Tik vardų žymos"
"horizon.extras.cosmetics.name_tags": "Tik vardų žymos",
"Installed": "Įdiegti",
"Apply": "Taikyti",
"Reset all options": "Atstatyti visas parinktis",
"A Horizon shader pack.": "„Horizon“ šešėliuoklių paketas.",
"An OptiFine or Iris shader pack.": "„OptiFine“ arba „Iris“ šešėliuoklių paketas.",
"In use: press to turn shaders off.": "Naudojamas: paspauskite, kad išjungtumėte šešėliuokles.",
"Press to use it.": "Paspauskite, kad naudotumėte.",
"Put shader pack .zip files or folders in it.": "Įdėkite į jį šešėliuoklių paketų .zip failus arba aplankus.",
"Puts every option of this pack back to its default.": "Grąžina visas šio paketo parinktis į numatytąsias.",
"Sets many options at once, as the pack groups them.": "Nustato daug parinkčių iš karto, kaip jas grupuoja paketas.",
"No shader packs yet: open the pack folder and put some in it.": "Šešėliuoklių paketų dar nėra: atidarykite paketų aplanką ir įdėkite kelis.",
"Pick a shader pack. Picking the one in use turns shaders off.": "Pasirinkite šešėliuoklių paketą. Pasirinkus naudojamą, šešėliuoklės išjungiamos.",
"Changed options apply with Apply, or when you leave.": "Pakeistos parinktys pritaikomos mygtuku Taikyti arba išėjus.",
"Pack settings": "Paketo nustatymai",
"Built-in settings": "Integruoti nustatymai",
"%s settings": "%s nustatymai",
"Settings made by the pack's author: they change only this pack.": "Paketo autoriaus sukurti nustatymai: jie keičia tik šį paketą."
}
@@ -64,11 +64,7 @@
"horizon.mods.settings": "Iestatījumi",
"horizon.mods.in_world": " (atstāj pasauli mainīties)",
"horizon.mods.open_folder": "Atveriet mod mapi",
"horizon.shader_packs.empty": "Nav ēnotāju pakotņu: ievietojiet tos mapē Shaderpacks",
"horizon.shader_packs.kind_horizon": " (Horizonts)",
"horizon.shader_options.open": "Ēnotāja opcijas...",
"horizon.shader_options.profile": "Profils",
"horizon.shader_options.loading": "Notiek ēnotāju pakotnes opciju lasīšana...",
"horizon.agent.copy_details": "Kopējiet savienojuma informāciju",
"horizon.multiplayer.join": "Pievienojieties",
"horizon.multiplayer.cancel_reconnecting": "Atcelt savienojuma atjaunošanu",
@@ -459,5 +455,22 @@
"horizon.extras.cosmetics_hide_fx.tooltip": "Citu spēlētāju pēdas un auras paliek paslēptas; viņu pārējā kosmētika joprojām redzama. Pēc noklusējuma izslēgts.",
"horizon.extras.cosmetics.shown": "Parādīts",
"horizon.extras.cosmetics.hidden": "Slēpts",
"horizon.extras.cosmetics.name_tags": "Tikai vārdu birkas"
"horizon.extras.cosmetics.name_tags": "Tikai vārdu birkas",
"Installed": "Instalētie",
"Apply": "Lietot",
"Reset all options": "Atiestatīt visas opcijas",
"A Horizon shader pack.": "Horizon ēnotāju pakotne.",
"An OptiFine or Iris shader pack.": "OptiFine vai Iris ēnotāju pakotne.",
"In use: press to turn shaders off.": "Lietošanā: nospied, lai izslēgtu ēnotājus.",
"Press to use it.": "Nospied, lai to lietotu.",
"Put shader pack .zip files or folders in it.": "Ievieto tajā ēnotāju pakotņu .zip failus vai mapes.",
"Puts every option of this pack back to its default.": "Atiestata katru šīs pakotnes opciju uz noklusējuma vērtību.",
"Sets many options at once, as the pack groups them.": "Iestata daudz opciju uzreiz, kā pakotne tās grupē.",
"No shader packs yet: open the pack folder and put some in it.": "Ēnotāju pakotņu vēl nav: atver pakotņu mapi un ievieto dažas.",
"Pick a shader pack. Picking the one in use turns shaders off.": "Izvēlies ēnotāju pakotni. Izvēloties lietoto, ēnotāji tiek izslēgti.",
"Changed options apply with Apply, or when you leave.": "Mainītās opcijas tiek pielietotas ar Lietot vai, kad izej.",
"Pack settings": "Pakotnes iestatījumi",
"Built-in settings": "Iebūvētie iestatījumi",
"%s settings": "%s iestatījumi",
"Settings made by the pack's author: they change only this pack.": "Pakotnes autora izveidoti iestatījumi: tie maina tikai šo pakotni."
}
@@ -72,10 +72,7 @@
"horizon.mods.settings": "Поставки",
"horizon.mods.in_world": " (Оставете го светот да се промени)",
"horizon.mods.open_folder": "Отворете ја папката Mod",
"horizon.shader_packs.empty": "Нема пакети за шејдер: ставете ги во папката shaderpacks",
"horizon.shader_options.open": "Опции за засенчување...",
"horizon.shader_options.profile": "Профил",
"horizon.shader_options.loading": "Читање на опциите на пакетот за шејдер...",
"horizon.agent.copy_details": "Копирај ги деталите за поврзување",
"horizon.multiplayer.join": "Приклучи се",
"horizon.multiplayer.cancel_reconnecting": "Откажи повторно поврзување",
@@ -483,5 +480,22 @@
"horizon.extras.cosmetics_hide_fx.tooltip": "Трагите и аурите на другите играчи остануваат скриени; нивната друга козметика и понатаму се гледа. Стандардно исклучено.",
"horizon.extras.cosmetics.shown": "Прикажани",
"horizon.extras.cosmetics.hidden": "Скриени",
"horizon.extras.cosmetics.name_tags": "Само ознаки со имиња"
"horizon.extras.cosmetics.name_tags": "Само ознаки со имиња",
"Installed": "Инсталирани",
"Apply": "Примени",
"Reset all options": "Ресетирај ги сите опции",
"A Horizon shader pack.": "Пакет шејдери на Horizon.",
"An OptiFine or Iris shader pack.": "Пакет шејдери на OptiFine или Iris.",
"In use: press to turn shaders off.": "Во употреба: притисни за да ги исклучиш шејдерите.",
"Press to use it.": "Притисни за да го користиш.",
"Put shader pack .zip files or folders in it.": "Стави во неа .zip датотеки или папки на пакети шејдери.",
"Puts every option of this pack back to its default.": "Ја враќа секоја опција на овој пакет на стандардна вредност.",
"Sets many options at once, as the pack groups them.": "Поставува многу опции одеднаш, како што ги групира пакетот.",
"No shader packs yet: open the pack folder and put some in it.": "Сè уште нема пакети шејдери: отвори ја папката со пакети и стави неколку.",
"Pick a shader pack. Picking the one in use turns shaders off.": "Избери пакет шејдери. Изборот на оној што е во употреба ги исклучува шејдерите.",
"Changed options apply with Apply, or when you leave.": "Променетите опции се применуваат со Примени или кога ќе излезеш.",
"Pack settings": "Поставки на пакетот",
"Built-in settings": "Вградени поставки",
"%s settings": "Поставки на %s",
"Settings made by the pack's author: they change only this pack.": "Поставки направени од авторот на пакетот: го менуваат само овој пакет."
}
@@ -72,10 +72,7 @@
"horizon.mods.settings": "Тохиргоо",
"horizon.mods.in_world": " (дэлхийг өөрчлөхийн тулд орхи)",
"horizon.mods.open_folder": "Mod хавтас нээх",
"horizon.shader_packs.empty": "Шэйдер багц байхгүй: тэдгээрийг shaderpacks хавтсанд хийнэ үү",
"horizon.shader_options.open": "Шэйдерийн сонголтууд...",
"horizon.shader_options.profile": "Профайл",
"horizon.shader_options.loading": "Шэйдер багцын сонголтыг уншиж байна...",
"horizon.agent.copy_details": "Холболтын мэдээллийг хуулах",
"horizon.multiplayer.join": "Нэгдэх",
"horizon.multiplayer.cancel_reconnecting": "Дахин холбогдохыг цуцлах",
@@ -478,5 +475,22 @@
"horizon.extras.cosmetics_hide_fx.tooltip": "Бусад тоглогчийн мөр ба аур нуугдсан хэвээр байна; тэдний бусад гоёл харагдсаар байна. Анхдагчаар унтраалттай.",
"horizon.extras.cosmetics.shown": "Үзүүлсэн",
"horizon.extras.cosmetics.hidden": "Нуугдсан",
"horizon.extras.cosmetics.name_tags": "Зөвхөн нэрийн шошго"
"horizon.extras.cosmetics.name_tags": "Зөвхөн нэрийн шошго",
"Installed": "Суулгасан",
"Apply": "Хэрэглэх",
"Reset all options": "Бүх сонголтыг дахин тохируулах",
"A Horizon shader pack.": "Horizon шейдер багц.",
"An OptiFine or Iris shader pack.": "OptiFine эсвэл Iris шейдер багц.",
"In use: press to turn shaders off.": "Ашиглаж байна: шейдерийг унтраахын тулд дарна уу.",
"Press to use it.": "Ашиглахын тулд дарна уу.",
"Put shader pack .zip files or folders in it.": "Шейдер багцын .zip файл эсвэл хавтсыг түүнд хийнэ үү.",
"Puts every option of this pack back to its default.": "Энэ багцын бүх сонголтыг анхны утгад нь буцаана.",
"Sets many options at once, as the pack groups them.": "Багцын бүлэглэснээр олон сонголтыг нэг дор тохируулна.",
"No shader packs yet: open the pack folder and put some in it.": "Шейдер багц одоогоор алга: багцын хавтсыг нээж заримыг нь хийнэ үү.",
"Pick a shader pack. Picking the one in use turns shaders off.": "Шейдер багц сонгоно уу. Ашиглаж буйг нь сонговол шейдер унтарна.",
"Changed options apply with Apply, or when you leave.": "Өөрчилсөн сонголтууд Хэрэглэх товчоор эсвэл гарахад хэрэгжинэ.",
"Pack settings": "Багцын тохиргоо",
"Built-in settings": "Суурилуулсан тохиргоо",
"%s settings": "%s тохиргоо",
"Settings made by the pack's author: they change only this pack.": "Багцын зохиогчийн хийсэн тохиргоо: зөвхөн энэ багцыг өөрчилнө."
}
@@ -67,10 +67,7 @@
"horizon.mods.settings": "tetapan",
"horizon.mods.in_world": " (tinggalkan dunia untuk berubah)",
"horizon.mods.open_folder": "Buka Folder Mod",
"horizon.shader_packs.empty": "Tiada pek shader: letakkannya dalam folder shaderpacks",
"horizon.shader_options.open": "Pilihan Shader...",
"horizon.shader_options.profile": "Profil",
"horizon.shader_options.loading": "Membaca pilihan pek shader...",
"horizon.agent.copy_details": "Salin Butiran Sambungan",
"horizon.multiplayer.join": "Sertai",
"horizon.multiplayer.cancel_reconnecting": "Batalkan Penyambungan Semula",
@@ -463,5 +460,22 @@
"horizon.extras.cosmetics_hide_fx.tooltip": "Jejak dan aura pemain lain kekal tersembunyi; kosmetik mereka yang lain masih kelihatan. Mati secara lalai.",
"horizon.extras.cosmetics.shown": "Ditunjukkan",
"horizon.extras.cosmetics.hidden": "Tersembunyi",
"horizon.extras.cosmetics.name_tags": "Tanda nama sahaja"
"horizon.extras.cosmetics.name_tags": "Tanda nama sahaja",
"Installed": "Dipasang",
"Apply": "Guna",
"Reset all options": "Set semula semua pilihan",
"A Horizon shader pack.": "Pek shader Horizon.",
"An OptiFine or Iris shader pack.": "Pek shader OptiFine atau Iris.",
"In use: press to turn shaders off.": "Sedang digunakan: tekan untuk mematikan shader.",
"Press to use it.": "Tekan untuk menggunakannya.",
"Put shader pack .zip files or folders in it.": "Letakkan fail .zip atau folder pek shader di dalamnya.",
"Puts every option of this pack back to its default.": "Mengembalikan setiap pilihan pek ini kepada nilai lalai.",
"Sets many options at once, as the pack groups them.": "Menetapkan banyak pilihan sekali gus, seperti yang dikumpulkan oleh pek.",
"No shader packs yet: open the pack folder and put some in it.": "Belum ada pek shader: buka folder pek dan letakkan beberapa di dalamnya.",
"Pick a shader pack. Picking the one in use turns shaders off.": "Pilih pek shader. Memilih yang sedang digunakan akan mematikan shader.",
"Changed options apply with Apply, or when you leave.": "Pilihan yang diubah dikenakan dengan Guna, atau apabila anda keluar.",
"Pack settings": "Tetapan pek",
"Built-in settings": "Tetapan terbina dalam",
"%s settings": "Tetapan %s",
"Settings made by the pack's author: they change only this pack.": "Tetapan yang dibuat oleh pengarang pek: ia hanya mengubah pek ini."
}
@@ -57,10 +57,7 @@
"horizon.mods.not_built": " (Mhux mibnija)",
"horizon.mods.in_world": " (ħalli d-dinja tinbidel)",
"horizon.mods.open_folder": "Iftaħ Mod Folder",
"horizon.shader_packs.empty": "Ebda pakketti shader: poġġihom fil-folder shaderpacks",
"horizon.shader_options.open": "Għażliet ta' Shader...",
"horizon.shader_options.profile": "Profil",
"horizon.shader_options.loading": "Qari tal-għażliet tal-pakkett tax-shader...",
"horizon.agent.copy_details": "Ikkopja Dettalji tal-Konnessjoni",
"horizon.multiplayer.join": "Ingħaqad",
"horizon.multiplayer.cancel_reconnecting": "Ikkanċella l-Konnessjoni mill-ġdid",
@@ -436,5 +433,22 @@
"horizon.extras.cosmetics.shown": "murija",
"horizon.extras.cosmetics.hidden": "Moħbija",
"horizon.extras.cosmetics.name_tags": "Tikketti tal-isem biss",
"Shader Packs...": "Pakketti Shader..."
"Shader Packs...": "Pakketti Shader...",
"Installed": "Installati",
"Apply": "Applika",
"Reset all options": "Irrisettja l-għażliet kollha",
"A Horizon shader pack.": "Pakkett ta' shaders ta' Horizon.",
"An OptiFine or Iris shader pack.": "Pakkett ta' shaders ta' OptiFine jew Iris.",
"In use: press to turn shaders off.": "Qed jintuża: agħfas biex titfi s-shaders.",
"Press to use it.": "Agħfas biex tużah.",
"Put shader pack .zip files or folders in it.": "Poġġi fih fajls .zip jew folders ta' pakketti ta' shaders.",
"Puts every option of this pack back to its default.": "Iroddlu kull għażla ta' dan il-pakkett lura għall-valur awtomatiku.",
"Sets many options at once, as the pack groups them.": "Jistabbilixxi ħafna għażliet f'daqqa, kif jiġbru l-pakkett.",
"No shader packs yet: open the pack folder and put some in it.": "Għad m'hawnx pakketti ta' shaders: iftaħ il-folder tal-pakketti u poġġi xi wħud fih.",
"Pick a shader pack. Picking the one in use turns shaders off.": "Agħżel pakkett ta' shaders. Jekk tagħżel dak li qed jintuża, is-shaders jintfew.",
"Changed options apply with Apply, or when you leave.": "L-għażliet mibdula jiġu applikati b'Applika, jew meta toħroġ.",
"Pack settings": "Issettjar tal-pakkett",
"Built-in settings": "Issettjar integrat",
"%s settings": "Issettjar ta' %s",
"Settings made by the pack's author: they change only this pack.": "Issettjar magħmula mill-awtur tal-pakkett: jibdlu dan il-pakkett biss."
}
@@ -72,10 +72,7 @@
"horizon.mods.settings": "Instellingen",
"horizon.mods.in_world": " (Laat de wereld veranderen)",
"horizon.mods.open_folder": "Open de Mod-map",
"horizon.shader_packs.empty": "Geen shader packs: plaats ze in de map shaderpacks",
"horizon.shader_options.open": "Shader-opties...",
"horizon.shader_options.profile": "Profiel",
"horizon.shader_options.loading": "De opties van het shader-pakket lezen...",
"horizon.agent.copy_details": "Kopieer verbindingsgegevens",
"horizon.multiplayer.join": "Doe mee",
"horizon.multiplayer.cancel_reconnecting": "Annuleren Opnieuw verbinden",
@@ -470,5 +467,22 @@
"horizon.extras.cosmetics_hide_fx.tooltip": "Sporen en aura's van andere spelers blijven verborgen; hun andere cosmetica blijven zichtbaar. Standaard uit.",
"horizon.extras.cosmetics.shown": "Getoond",
"horizon.extras.cosmetics.hidden": "Verborgen",
"horizon.extras.cosmetics.name_tags": "Alleen naamplaatjes"
"horizon.extras.cosmetics.name_tags": "Alleen naamplaatjes",
"Installed": "Geïnstalleerd",
"Apply": "Toepassen",
"Reset all options": "Alle opties resetten",
"A Horizon shader pack.": "Een Horizon-shaderpakket.",
"An OptiFine or Iris shader pack.": "Een OptiFine- of Iris-shaderpakket.",
"In use: press to turn shaders off.": "In gebruik: druk om shaders uit te zetten.",
"Press to use it.": "Druk om het te gebruiken.",
"Put shader pack .zip files or folders in it.": "Zet .zip-bestanden of mappen met shaderpakketten erin.",
"Puts every option of this pack back to its default.": "Zet elke optie van dit pakket terug naar de standaardwaarde.",
"Sets many options at once, as the pack groups them.": "Stelt veel opties tegelijk in, zoals het pakket ze groepeert.",
"No shader packs yet: open the pack folder and put some in it.": "Nog geen shaderpakketten: open de pakketmap en zet er een paar in.",
"Pick a shader pack. Picking the one in use turns shaders off.": "Kies een shaderpakket. Het pakket in gebruik kiezen zet shaders uit.",
"Changed options apply with Apply, or when you leave.": "Gewijzigde opties worden toegepast met Toepassen, of wanneer je weggaat.",
"Pack settings": "Pakketinstellingen",
"Built-in settings": "Ingebouwde instellingen",
"%s settings": "Instellingen van %s",
"Settings made by the pack's author: they change only this pack.": "Instellingen gemaakt door de maker van het pakket: ze wijzigen alleen dit pakket."
}
@@ -64,10 +64,7 @@
"horizon.mods.settings": "Innstillinger",
"horizon.mods.in_world": " (la verden forandre seg)",
"horizon.mods.open_folder": "Åpne Mod-mappen",
"horizon.shader_packs.empty": "Ingen shader-pakker: legg dem i shaderpacks-mappen",
"horizon.shader_options.open": "Skyggeleggingsalternativer...",
"horizon.shader_options.profile": "Profil",
"horizon.shader_options.loading": "Leser alternativene til shader-pakken...",
"horizon.agent.copy_details": "Kopier tilkoblingsdetaljer",
"horizon.multiplayer.join": "Bli med",
"horizon.multiplayer.cancel_reconnecting": "Avbryt tilkobling på nytt",
@@ -453,5 +450,22 @@
"horizon.extras.cosmetics.shown": "Vist",
"horizon.extras.cosmetics.hidden": "Skjult",
"horizon.extras.cosmetics.name_tags": "Kun navnelapper",
"Shader Packs...": "Shader-pakker..."
"Shader Packs...": "Shader-pakker...",
"Installed": "Installert",
"Apply": "Bruk",
"Reset all options": "Tilbakestill alle innstillinger",
"A Horizon shader pack.": "En Horizon-shaderpakke.",
"An OptiFine or Iris shader pack.": "En OptiFine- eller Iris-shaderpakke.",
"In use: press to turn shaders off.": "I bruk: trykk for å slå av shadere.",
"Press to use it.": "Trykk for å bruke den.",
"Put shader pack .zip files or folders in it.": "Legg .zip-filer eller mapper med shaderpakker i den.",
"Puts every option of this pack back to its default.": "Setter alle innstillingene i denne pakken tilbake til standard.",
"Sets many options at once, as the pack groups them.": "Setter mange innstillinger samtidig, slik pakken grupperer dem.",
"No shader packs yet: open the pack folder and put some in it.": "Ingen shaderpakker ennå: åpne pakkemappen og legg noen i den.",
"Pick a shader pack. Picking the one in use turns shaders off.": "Velg en shaderpakke. Velger du den som er i bruk, slås shaderne av.",
"Changed options apply with Apply, or when you leave.": "Endrede innstillinger brukes med Bruk, eller når du forlater skjermen.",
"Pack settings": "Pakkeinnstillinger",
"Built-in settings": "Innebygde innstillinger",
"%s settings": "Innstillinger for %s",
"Settings made by the pack's author: they change only this pack.": "Innstillinger laget av pakkens forfatter: de endrer bare denne pakken."
}
@@ -66,10 +66,7 @@
"horizon.mods.settings": "Paramètres",
"horizon.mods.in_world": " (daissar lo mond per cambiar)",
"horizon.mods.open_folder": "Dobrir lo dorsièr mod",
"horizon.shader_packs.empty": "Pas de paquets d'ombratge : los metre dins lo dorsièr de paquets d'ombratge",
"horizon.shader_options.open": "Opcions d'ombrador...",
"horizon.shader_options.profile": "Perfil",
"horizon.shader_options.loading": "En legissent las opcions del paquet de shader...",
"horizon.agent.copy_details": "Copiar los detalhs de connexion",
"horizon.multiplayer.join": "Inscrivètz-vos",
"horizon.multiplayer.cancel_reconnecting": "Anullar la reconnexion",
@@ -468,5 +465,22 @@
"horizon.extras.cosmetics_hide_fx.tooltip": "Las traças e las auras dels autres jogaires demòran amagadas; lors autres cosmetics se vesan totjorn. Desactivat per defaut.",
"horizon.extras.cosmetics.shown": "Mostrat",
"horizon.extras.cosmetics.hidden": "Amagat",
"horizon.extras.cosmetics.name_tags": "D'etiquetas de nom solament"
"horizon.extras.cosmetics.name_tags": "D'etiquetas de nom solament",
"Installed": "Installats",
"Apply": "Aplicar",
"Reset all options": "Reïnicializar totas las opcions",
"A Horizon shader pack.": "Un paquet de shaders d'Horizon.",
"An OptiFine or Iris shader pack.": "Un paquet de shaders d'OptiFine o Iris.",
"In use: press to turn shaders off.": "En usatge : quichatz per desactivar los shaders.",
"Press to use it.": "Quichatz per l'utilizar.",
"Put shader pack .zip files or folders in it.": "Metètz-i de fichièrs .zip o de dorsièrs de paquets de shaders.",
"Puts every option of this pack back to its default.": "Tòrna cada opcion d'aqueste paquet a sa valor per defaut.",
"Sets many options at once, as the pack groups them.": "Definís mantunas opcions a l'encòp, coma las agropa lo paquet.",
"No shader packs yet: open the pack folder and put some in it.": "Pas encara cap de paquet de shaders : dobrissètz lo dorsièr dels paquets e metètz-ne qualques-uns.",
"Pick a shader pack. Picking the one in use turns shaders off.": "Causissètz un paquet de shaders. Causir lo qu'es en usatge desactiva los shaders.",
"Changed options apply with Apply, or when you leave.": "Las opcions cambiadas s'aplican amb Aplicar, o quand quitatz.",
"Pack settings": "Reglatges del paquet",
"Built-in settings": "Reglatges integrats",
"%s settings": "Reglatges de %s",
"Settings made by the pack's author: they change only this pack.": "Reglatges creats per l'autor del paquet : càmbian pas que aqueste paquet."
}
@@ -57,11 +57,7 @@
"horizon.mods.dev": " (dev)",
"horizon.mods.settings": "Ustawienia",
"horizon.mods.open_folder": "Otwórz folder z modami",
"horizon.shader_packs.empty": "Brak paczek shaderów: umieść je w folderze shaderpacks",
"horizon.shader_packs.kind_horizon": " (Horizon)",
"horizon.shader_options.open": "Ustawienia shaderów…",
"horizon.shader_options.profile": "Profil",
"horizon.shader_options.loading": "Wczytywanie ustawień paczki shaderów…",
"horizon.agent.copy_details": "Kopiuj dane połączenia",
"horizon.multiplayer.join": "Dołącz",
"horizon.multiplayer.cancel_reconnecting": "Anuluj ponowne łączenie",
@@ -242,6 +238,8 @@
"horizon.extras.no_ai": "Bez AI",
"horizon.extras.agent_control": "Sterowanie agentem",
"horizon.extras.discord_presence": "Discord Rich Presence",
"horizon.extras.zoom": "Zoom",
"horizon.extras.zoom_mod_install": "Zoom: zainstaluj w Modach",
"horizon.extras.fullbright.tooltip": "Pokazuje bloki i byty w pełnym oświetleniu, nawet w ciemnych miejscach.",
"horizon.extras.dynamic_lights.tooltip": "Pochodnie i inne źródła światła trzymane w dłoni, upuszczone lub płonące oświetlają otaczające bloki.",
"horizon.extras.own_name_tag.tooltip": "Pokazuje twój nick nad głową w widoku z trzeciej osoby, tak jak widzą go inni gracze. Ukryty, gdy serwer ukrywa nazwy twojej drużyny lub jesteś niewidzialny.",
@@ -359,5 +357,22 @@
"Particle Culling": "Pomijanie cząsteczek",
"Draws every particle.": "Rysuje wszystkie cząsteczki.",
"Skips offscreen, subpixel and terrain-hidden particles.": "Pomija cząsteczki poza ekranem, mniejsze niż piksel i zasłonięte przez teren.",
"Skips offscreen, subpixel and terrain-hidden particles with less render-thread work.": "Pomija cząsteczki poza ekranem, mniejsze niż piksel i zasłonięte przez teren, odciążając wątek renderowania."
"Skips offscreen, subpixel and terrain-hidden particles with less render-thread work.": "Pomija cząsteczki poza ekranem, mniejsze niż piksel i zasłonięte przez teren, odciążając wątek renderowania.",
"Installed": "Zainstalowane",
"Apply": "Zastosuj",
"Reset all options": "Zresetuj wszystkie opcje",
"A Horizon shader pack.": "Paczka shaderów Horizon.",
"An OptiFine or Iris shader pack.": "Paczka shaderów OptiFine lub Iris.",
"In use: press to turn shaders off.": "W użyciu: naciśnij, aby wyłączyć shadery.",
"Press to use it.": "Naciśnij, aby jej użyć.",
"Put shader pack .zip files or folders in it.": "Wrzuć do niego pliki .zip lub foldery paczek shaderów.",
"Puts every option of this pack back to its default.": "Przywraca wszystkie opcje tej paczki do wartości domyślnych.",
"Sets many options at once, as the pack groups them.": "Ustawia wiele opcji naraz, tak jak grupuje je paczka.",
"No shader packs yet: open the pack folder and put some in it.": "Nie ma jeszcze paczek shaderów: otwórz folder paczek i wrzuć do niego kilka.",
"Pick a shader pack. Picking the one in use turns shaders off.": "Wybierz paczkę shaderów. Wybranie używanej wyłącza shadery.",
"Changed options apply with Apply, or when you leave.": "Zmienione opcje zostaną zastosowane przyciskiem Zastosuj lub po wyjściu.",
"Pack settings": "Ustawienia paczki",
"Built-in settings": "Ustawienia wbudowane",
"%s settings": "Ustawienia %s",
"Settings made by the pack's author: they change only this pack.": "Ustawienia stworzone przez autora paczki: zmieniają tylko tę paczkę."
}
@@ -78,11 +78,7 @@
"horizon.mods.settings": "Configurações",
"horizon.mods.in_world": " (deixe o mundo mudar)",
"horizon.mods.open_folder": "Abra a pasta Mod",
"horizon.shader_packs.empty": "Sem pacotes de shader: coloque-os na pasta shaderpacks",
"horizon.shader_packs.kind_horizon": " (Horizonte)",
"horizon.shader_options.open": "Opções de sombreamento...",
"horizon.shader_options.profile": "Perfil",
"horizon.shader_options.loading": "Lendo as opções do pacote de shaders...",
"horizon.agent.copy_details": "Copiar detalhes da conexão",
"horizon.multiplayer.join": "Junte-se",
"horizon.multiplayer.cancel_reconnecting": "Cancelar reconexão",
@@ -487,5 +483,22 @@
"horizon.extras.cosmetics_hide_fx.tooltip": "Os rastros e auras de outros jogadores ficam ocultos; os demais cosméticos deles continuam visíveis. Desativado por padrão.",
"horizon.extras.cosmetics.shown": "Mostrado",
"horizon.extras.cosmetics.hidden": "Oculto",
"horizon.extras.cosmetics.name_tags": "Somente tags de nome"
"horizon.extras.cosmetics.name_tags": "Somente tags de nome",
"Installed": "Instalados",
"Apply": "Aplicar",
"Reset all options": "Redefinir todas as opções",
"A Horizon shader pack.": "Um pacote de shaders do Horizon.",
"An OptiFine or Iris shader pack.": "Um pacote de shaders do OptiFine ou Iris.",
"In use: press to turn shaders off.": "Em uso: clique para desativar os shaders.",
"Press to use it.": "Clique para usá-lo.",
"Put shader pack .zip files or folders in it.": "Coloque nela arquivos .zip ou pastas de pacotes de shaders.",
"Puts every option of this pack back to its default.": "Volta todas as opções deste pacote ao padrão.",
"Sets many options at once, as the pack groups them.": "Define várias opções de uma vez, como o pacote as agrupa.",
"No shader packs yet: open the pack folder and put some in it.": "Ainda não há pacotes de shaders: abra a pasta de pacotes e coloque alguns nela.",
"Pick a shader pack. Picking the one in use turns shaders off.": "Escolha um pacote de shaders. Escolher o que está em uso desativa os shaders.",
"Changed options apply with Apply, or when you leave.": "As opções alteradas são aplicadas com Aplicar, ou quando você sair.",
"Pack settings": "Configurações do pacote",
"Built-in settings": "Configurações internas",
"%s settings": "Configurações de %s",
"Settings made by the pack's author: they change only this pack.": "Configurações criadas pelo autor do pacote: elas mudam apenas este pacote."
}
@@ -53,10 +53,7 @@
"horizon.mods.not_built": " (Não construído)",
"horizon.mods.settings": "Definições",
"horizon.mods.open_folder": "Abrir pasta de mods",
"horizon.shader_packs.empty": "Sem pacotes de shaders: coloca-os na pasta shaderpacks",
"horizon.shader_options.open": "Opções de shaders...",
"horizon.shader_options.profile": "Perfil",
"horizon.shader_options.loading": "A ler as opções do pacote de shaders...",
"horizon.agent.copy_details": "Copiar detalhes de ligação",
"horizon.multiplayer.join": "Entrar",
"horizon.multiplayer.cancel_reconnecting": "Cancelar religação",
@@ -417,5 +414,22 @@
"horizon.repro.bundle": "Pacote de reprodução: %s",
"horizon.repro.error": "Reprodução: %s",
"horizon.repro.no_recording": "Ainda não existe nenhuma gravação para exportar.",
"horizon.repro.replay_started": "Reprodução iniciada: %s"
"horizon.repro.replay_started": "Reprodução iniciada: %s",
"Installed": "Instalados",
"Apply": "Aplicar",
"Reset all options": "Repor todas as opções",
"A Horizon shader pack.": "Um pacote de shaders do Horizon.",
"An OptiFine or Iris shader pack.": "Um pacote de shaders do OptiFine ou Iris.",
"In use: press to turn shaders off.": "Em utilização: prime para desativar os shaders.",
"Press to use it.": "Prime para o utilizar.",
"Put shader pack .zip files or folders in it.": "Coloca nela ficheiros .zip ou pastas de pacotes de shaders.",
"Puts every option of this pack back to its default.": "Repõe todas as opções deste pacote nos valores predefinidos.",
"Sets many options at once, as the pack groups them.": "Define várias opções de uma só vez, tal como o pacote as agrupa.",
"No shader packs yet: open the pack folder and put some in it.": "Ainda não há pacotes de shaders: abre a pasta de pacotes e coloca alguns nela.",
"Pick a shader pack. Picking the one in use turns shaders off.": "Escolhe um pacote de shaders. Escolher o que está em utilização desativa os shaders.",
"Changed options apply with Apply, or when you leave.": "As opções alteradas são aplicadas com Aplicar, ou quando saíres.",
"Pack settings": "Definições do pacote",
"Built-in settings": "Definições integradas",
"%s settings": "Definições de %s",
"Settings made by the pack's author: they change only this pack.": "Definições criadas pelo autor do pacote: só alteram este pacote."
}
@@ -69,10 +69,7 @@
"horizon.mods.settings": "Setări",
"horizon.mods.in_world": " (lasa lumea sa se schimbe)",
"horizon.mods.open_folder": "Deschideți folderul Mod",
"horizon.shader_packs.empty": "Fără pachete de shader: puneți-le în folderul shaderpacks",
"horizon.shader_options.open": "Opțiuni de umbrire...",
"horizon.shader_options.profile": "Profil",
"horizon.shader_options.loading": "Se citesc opțiunile pachetului de shader...",
"horizon.agent.copy_details": "Copiați detaliile conexiunii",
"horizon.multiplayer.join": "Alăturați-vă",
"horizon.multiplayer.cancel_reconnecting": "Anulează reconectarea",
@@ -457,5 +454,22 @@
"horizon.extras.cosmetics.shown": "Afisat",
"horizon.extras.cosmetics.hidden": "Ascuns",
"horizon.extras.cosmetics.name_tags": "Numai etichete de nume",
"Shader Packs...": "Pachete de shader..."
"Shader Packs...": "Pachete de shader...",
"Installed": "Instalate",
"Apply": "Aplică",
"Reset all options": "Resetează toate opțiunile",
"A Horizon shader pack.": "Un pachet de shadere Horizon.",
"An OptiFine or Iris shader pack.": "Un pachet de shadere OptiFine sau Iris.",
"In use: press to turn shaders off.": "În uz: apasă pentru a opri shaderele.",
"Press to use it.": "Apasă pentru a-l folosi.",
"Put shader pack .zip files or folders in it.": "Pune în el fișiere .zip sau foldere cu pachete de shadere.",
"Puts every option of this pack back to its default.": "Readuce fiecare opțiune a acestui pachet la valoarea implicită.",
"Sets many options at once, as the pack groups them.": "Setează multe opțiuni deodată, așa cum le grupează pachetul.",
"No shader packs yet: open the pack folder and put some in it.": "Încă nu există pachete de shadere: deschide folderul de pachete și pune câteva în el.",
"Pick a shader pack. Picking the one in use turns shaders off.": "Alege un pachet de shadere. Alegerea celui în uz oprește shaderele.",
"Changed options apply with Apply, or when you leave.": "Opțiunile modificate se aplică cu Aplică sau când ieși.",
"Pack settings": "Setările pachetului",
"Built-in settings": "Setări integrate",
"%s settings": "Setările %s",
"Settings made by the pack's author: they change only this pack.": "Setări create de autorul pachetului: schimbă doar acest pachet."
}
@@ -53,8 +53,6 @@
"horizon.mods.dev": " (разработка)",
"horizon.mods.settings": "Настройки",
"horizon.mods.open_folder": "Открыть папку модов",
"horizon.shader_packs.empty": "Шейдерпаков нет: положите их в папку shaderpacks",
"horizon.shader_packs.kind_horizon": " (Horizon)",
"horizon.agent.copy_details": "Скопировать данные подключения",
"horizon.multiplayer.join": "Подключиться",
"horizon.multiplayer.cancel_reconnecting": "Отменить переподключение",
@@ -194,9 +192,7 @@
"horizon.pages.shader_options": "Настройки шейдеров",
"horizon.pages.split_profiles": "Кто играет?",
"horizon.pages.split_profiles.tooltip": "Кто играет: профиль, хранимый в этой папке игры.",
"horizon.shader_options.open": "Настройки шейдеров…",
"horizon.shader_options.profile": "Профиль",
"horizon.shader_options.loading": "Чтение настроек набора шейдеров…",
"Particle Culling": "Particle Culling",
"Draws every particle.": "Draws every particle.",
"Skips offscreen, subpixel and terrain-hidden particles.": "Skips offscreen, subpixel and terrain-hidden particles.",
@@ -227,5 +223,22 @@
"Brighter-than-white output on an HDR display.": "Вывод ярче белого на HDR-дисплее.",
"Results for \"%s\"": "Результаты для «%s»",
"No settings match.": "Нет подходящих настроек.",
"Shader Packs...": "Шейдерпаки..."
"Shader Packs...": "Шейдерпаки...",
"Installed": "Установленные",
"Apply": "Применить",
"Reset all options": "Сбросить все настройки",
"A Horizon shader pack.": "Пакет шейдеров Horizon.",
"An OptiFine or Iris shader pack.": "Пакет шейдеров OptiFine или Iris.",
"In use: press to turn shaders off.": "Используется: нажмите, чтобы выключить шейдеры.",
"Press to use it.": "Нажмите, чтобы использовать.",
"Put shader pack .zip files or folders in it.": "Положите в неё файлы .zip или папки пакетов шейдеров.",
"Puts every option of this pack back to its default.": "Возвращает все настройки этого пакета к значениям по умолчанию.",
"Sets many options at once, as the pack groups them.": "Задаёт сразу много настроек так, как их группирует пакет.",
"No shader packs yet: open the pack folder and put some in it.": "Пакетов шейдеров пока нет: откройте папку пакетов и положите в неё несколько.",
"Pick a shader pack. Picking the one in use turns shaders off.": "Выберите пакет шейдеров. Выбор используемого пакета выключает шейдеры.",
"Changed options apply with Apply, or when you leave.": "Изменённые настройки применяются кнопкой «Применить» или при выходе.",
"Pack settings": "Настройки пакета",
"Built-in settings": "Встроенные настройки",
"%s settings": "Настройки %s",
"Settings made by the pack's author: they change only this pack.": "Настройки, созданные автором пакета: они меняют только этот пакет."
}
@@ -73,10 +73,7 @@
"horizon.mods.settings": "Настройкалар",
"horizon.mods.in_world": " (аан дойдуну уларытарга хааллар)",
"horizon.mods.open_folder": "Мод папкатын арый",
"horizon.shader_packs.empty": "Шейдер пакеттара суох: кинилэри шейдерпактар диэн папкаҕа киллэр",
"horizon.shader_options.open": "Шейдер варианнара...",
"horizon.shader_options.profile": "Профиль",
"horizon.shader_options.loading": "Шейдер пакет варианнарын ааҕабын...",
"horizon.agent.copy_details": "Холбоһуу сиһилиитин көһөр",
"horizon.multiplayer.join": "Кыттыс",
"horizon.multiplayer.cancel_reconnecting": "Хата холбоһууну тохтот",
@@ -494,5 +491,22 @@
"horizon.extras.cosmetics_hide_fx.tooltip": "Атын оонньооччулар суоллара уонна аауралара кистэлэҥҥэ хаалаллар; кинилэр атын киэргэллэрэ көстөр. Сүрүннээн араарыллыбыт.",
"horizon.extras.cosmetics.shown": "Көрдөрүллүбүт",
"horizon.extras.cosmetics.hidden": "Буккуллубут",
"horizon.extras.cosmetics.name_tags": "Аат бэлиэлэрэ эрэ"
"horizon.extras.cosmetics.name_tags": "Аат бэлиэлэрэ эрэ",
"Installed": "Туруорулунна",
"Apply": "Туттарга",
"Reset all options": "Бары туруорууну сотору",
"A Horizon shader pack.": "Horizon шейдер пакета.",
"An OptiFine or Iris shader pack.": "OptiFine эбэтэр Iris шейдер пакета.",
"In use: press to turn shaders off.": "Туттулла турар: шейдерї уһултарга баттаа.",
"Press to use it.": "Туттарга баттаа.",
"Put shader pack .zip files or folders in it.": "Онно шейдер пакеттарын .zip билэлэрин эбэтэр хаптаһыннарын укта.",
"Puts every option of this pack back to its default.": "Бу пакет барыта туруорууларын саҥаттан баар туругар төттөрү төндөрөр.",
"Sets many options at once, as the pack groups them.": "Пакет бөлөхтөөбүтүнэн элбэх туруорууну биирдэ туруорар.",
"No shader packs yet: open the pack folder and put some in it.": "Шейдер пакеттара билигин суохтар: пакеттар хаптаһыннарын арыйан, сорох пакеты укта.",
"Pick a shader pack. Picking the one in use turns shaders off.": "Шейдер пакетын талыы. Туттуллар пакеты талар шейдерї уһултарар.",
"Changed options apply with Apply, or when you leave.": "Уларытыллыбыт туруоруулар «Туттарга» кнопканан эбэтэр тахсарга туттуллаллар.",
"Pack settings": "Пакет туруорууллара",
"Built-in settings": "Иһинэн туруоруулар",
"%s settings": "%s туруорууллара",
"Settings made by the pack's author: they change only this pack.": "Пакет аптарын оҥорбут туруоруулара: бу пакеты эрэ уларыталлар."
}
@@ -66,10 +66,7 @@
"horizon.mods.settings": "Ásahusat",
"horizon.mods.in_world": " (luoitte máilmmi rievdat)",
"horizon.mods.open_folder": "Rahpat Mod-máhppa",
"horizon.shader_packs.empty": "Ii leat shader-pakeahtta: bidjat daid shaderpacks-máhppii",
"horizon.shader_options.open": "Shader-válljemat...",
"horizon.shader_options.profile": "Profiila",
"horizon.shader_options.loading": "Lohkan shader-pakeahta válljejumiid...",
"horizon.agent.copy_details": "Kopiere oktavuođadieđuid",
"horizon.multiplayer.join": "Searvva",
"horizon.multiplayer.cancel_reconnecting": "Heaittihit fas čatnama",
@@ -464,5 +461,22 @@
"horizon.extras.cosmetics_hide_fx.tooltip": "Eará speallariid luohtt ja aurat čihkojuvvojit; sin eará čiŋat ain oidnojit. Jáddaduvvon álgoárvun.",
"horizon.extras.cosmetics.shown": "Čájehuvvon",
"horizon.extras.cosmetics.hidden": "Čuohpaduvvon",
"horizon.extras.cosmetics.name_tags": "Dušše nammamearkkat"
"horizon.extras.cosmetics.name_tags": "Dušše nammamearkkat",
"Installed": "Sajáiduhttojuvvon",
"Apply": "Atte",
"Reset all options": "Ásahusaid ođđasit ásahit buot",
"A Horizon shader pack.": "Horizon-sihkkelaváhki.",
"An OptiFine or Iris shader pack.": "OptiFine- dahje Iris-sihkkelaváhki.",
"In use: press to turn shaders off.": "Geavahusas: deaddil sihkkelaid cuvkkodit.",
"Press to use it.": "Deaddil geavahit.",
"Put shader pack .zip files or folders in it.": "Bija dasa .zip-fiillaid dahje sihkkelaváhkiid máppaid.",
"Puts every option of this pack back to its default.": "Máhccaha buot ásahusaid dán páhkas ovdagihtii.",
"Sets many options at once, as the pack groups them.": "Ásaha ollu ásahusaid oktanaga, nugo páhkka joavdada daid.",
"No shader packs yet: open the pack folder and put some in it.": "Ain eai leat sihkkelaváhkkiid: rahpa páhkkamáhpa ja bija moatti dasa.",
"Pick a shader pack. Picking the one in use turns shaders off.": "Vállje sihkkelaváhki. Geavahusas leahkki válljen cuvkkoda sihkkelaid.",
"Changed options apply with Apply, or when you leave.": "Rievdaduvvon ásahusat atnojit Atte-boalus dahje go vuolggat.",
"Pack settings": "Páhka ásahusat",
"Built-in settings": "Sisahuvvon ásahusat",
"%s settings": "%s ásahusat",
"Settings made by the pack's author: they change only this pack.": "Páhka čálli ráhkaduvvon ásahusat: dat rievdadit dušše dán páhka."
}
@@ -65,11 +65,7 @@
"horizon.mods.settings": "Nastavenia",
"horizon.mods.in_world": " (nechaj svet zmeniť)",
"horizon.mods.open_folder": "Otvorte priečinok Mod",
"horizon.shader_packs.empty": "Žiadne balíčky shaderov: vložte ich do priečinka shaderpacks",
"horizon.shader_packs.kind_horizon": " (Horizont)",
"horizon.shader_options.open": "Možnosti tieňovania...",
"horizon.shader_options.profile": "Profil",
"horizon.shader_options.loading": "Čítam možnosti balíka shaderov...",
"horizon.agent.copy_details": "Kopírovať podrobnosti o pripojení",
"horizon.multiplayer.join": "Pripojte sa",
"horizon.multiplayer.cancel_reconnecting": "Zrušiť opätovné pripojenie",
@@ -453,5 +449,22 @@
"horizon.extras.cosmetics_hide_fx.tooltip": "Stopy a aury ostatných hráčov zostanú skryté; ich ostatná kozmetika je stále vidieť. Predvolene vypnuté.",
"horizon.extras.cosmetics.shown": "Zobrazené",
"horizon.extras.cosmetics.hidden": "Skryté",
"horizon.extras.cosmetics.name_tags": "Iba menovky"
"horizon.extras.cosmetics.name_tags": "Iba menovky",
"Installed": "Nainštalované",
"Apply": "Použiť",
"Reset all options": "Obnoviť všetky možnosti",
"A Horizon shader pack.": "Balík shaderov Horizon.",
"An OptiFine or Iris shader pack.": "Balík shaderov OptiFine alebo Iris.",
"In use: press to turn shaders off.": "Používa sa: stlačením vypnete shadery.",
"Press to use it.": "Stlačením ho použijete.",
"Put shader pack .zip files or folders in it.": "Vložte doň súbory .zip alebo priečinky balíkov shaderov.",
"Puts every option of this pack back to its default.": "Vráti všetky možnosti tohto balíka na predvolené hodnoty.",
"Sets many options at once, as the pack groups them.": "Nastaví veľa možností naraz, tak ako ich balík zoskupuje.",
"No shader packs yet: open the pack folder and put some in it.": "Zatiaľ žiadne balíky shaderov: otvorte priečinok balíkov a vložte do neho nejaké.",
"Pick a shader pack. Picking the one in use turns shaders off.": "Vyberte balík shaderov. Výber používaného balíka vypne shadery.",
"Changed options apply with Apply, or when you leave.": "Zmenené možnosti sa použijú tlačidlom Použiť alebo pri odchode.",
"Pack settings": "Nastavenia balíka",
"Built-in settings": "Vstavané nastavenia",
"%s settings": "Nastavenia %s",
"Settings made by the pack's author: they change only this pack.": "Nastavenia vytvorené autorom balíka: menia iba tento balík."
}
@@ -72,11 +72,7 @@
"horizon.mods.settings": "nastavitve",
"horizon.mods.in_world": " (pusti svet, da se spremeni)",
"horizon.mods.open_folder": "Odpri mapo Mod",
"horizon.shader_packs.empty": "Brez paketov shaderjev: postavite jih v mapo shaderpacks",
"horizon.shader_packs.kind_horizon": " (Horizont)",
"horizon.shader_options.open": "Možnosti senčil ...",
"horizon.shader_options.profile": "Profil",
"horizon.shader_options.loading": "Branje možnosti paketa senčil ...",
"horizon.agent.copy_details": "Kopiraj podrobnosti povezave",
"horizon.multiplayer.join": "Pridruži se",
"horizon.multiplayer.cancel_reconnecting": "Prekliči Ponovno povezovanje",
@@ -470,5 +466,22 @@
"horizon.extras.cosmetics.shown": "Prikazano",
"horizon.extras.cosmetics.hidden": "Skrito",
"horizon.extras.cosmetics.name_tags": "Samo imenske oznake",
"Shader Packs...": "Shader paketi..."
"Shader Packs...": "Shader paketi...",
"Installed": "Nameščeni",
"Apply": "Uporabi",
"Reset all options": "Ponastavi vse možnosti",
"A Horizon shader pack.": "Paket senčilnikov Horizon.",
"An OptiFine or Iris shader pack.": "Paket senčilnikov OptiFine ali Iris.",
"In use: press to turn shaders off.": "V uporabi: pritisni za izklop senčilnikov.",
"Press to use it.": "Pritisni za uporabo.",
"Put shader pack .zip files or folders in it.": "Vanjo daj datoteke .zip ali mape paketov senčilnikov.",
"Puts every option of this pack back to its default.": "Vse možnosti tega paketa vrne na privzete vrednosti.",
"Sets many options at once, as the pack groups them.": "Nastavi veliko možnosti naenkrat, kot jih združuje paket.",
"No shader packs yet: open the pack folder and put some in it.": "Paketov senčilnikov še ni: odpri mapo paketov in daj vanjo nekaj paketov.",
"Pick a shader pack. Picking the one in use turns shaders off.": "Izberi paket senčilnikov. Izbira paketa v uporabi izklopi senčilnike.",
"Changed options apply with Apply, or when you leave.": "Spremenjene možnosti se uporabijo z Uporabi ali ob izhodu.",
"Pack settings": "Nastavitve paketa",
"Built-in settings": "Vgrajene nastavitve",
"%s settings": "Nastavitve za %s",
"Settings made by the pack's author: they change only this pack.": "Nastavitve, ki jih je naredil avtor paketa: spreminjajo samo ta paket."
}
@@ -67,9 +67,6 @@
"horizon.mods.settings": "Dejinta",
"horizon.mods.in_world": " ( aduunka ka tag si aad wax u bedesho)",
"horizon.mods.open_folder": "Fur Folderka Mod",
"horizon.shader_packs.empty": "Ma jiraan baakado shader ah: ku rid galka shaderpacks",
"horizon.shader_options.open": "Ikhtiyaarada Shader...",
"horizon.shader_options.loading": "Akhrinta xulashooyinka xirmada shaderka...",
"horizon.agent.copy_details": "Koobi Faahfaahinta Xidhiidhka",
"horizon.multiplayer.join": "Ku biir",
"horizon.multiplayer.cancel_reconnecting": "Jooji dib u xidhidhinta",
@@ -455,5 +452,22 @@
"horizon.extras.cosmetics.shown": "Muujiyay",
"horizon.extras.cosmetics.hidden": "Qarsoon",
"horizon.extras.cosmetics.name_tags": "Magac tags kaliya",
"Shader Packs...": "Xirmooyinka Shader..."
"Shader Packs...": "Xirmooyinka Shader...",
"Installed": "Lagu rakibay",
"Apply": "Dalbo",
"Reset all options": "Dib u deji dhammaan doorashooyinka",
"A Horizon shader pack.": "Xirmo hadh Horizon ah.",
"An OptiFine or Iris shader pack.": "Xirmo hadh OptiFine ama Iris ah.",
"In use: press to turn shaders off.": "Waa la isticmaalayaa: taabo si aad hadhka u damiso.",
"Press to use it.": "Taabo si aad u isticmaasho.",
"Put shader pack .zip files or folders in it.": "Ku shub faylasha .zip ama gal-gal xirmooyinka hadhka.",
"Puts every option of this pack back to its default.": "Wuxuu dooranaha xirmadan oo dhan ku celiyaa caadiga.",
"Sets many options at once, as the pack groups them.": "Wuxuu dejiyaa doorashooyin badan hal mar, sida xirmadu u kooxeysay.",
"No shader packs yet: open the pack folder and put some in it.": "Weli xirmo hadh ma jiraan: fur galka xirmooyinka oo ku shub qaar.",
"Pick a shader pack. Picking the one in use turns shaders off.": "Dooro xirmo hadh. Doorashada midka la isticmaalayo wuxuu damiyaa hadhka.",
"Changed options apply with Apply, or when you leave.": "Doorashooyinka la bedelay waxay dhaqan galaan marka Dalbo la taabto, ama marka aad baxdo.",
"Pack settings": "Dejinta xirmada",
"Built-in settings": "Dejimaha ku dhex jira",
"%s settings": "Dejimaha %s",
"Settings made by the pack's author: they change only this pack.": "Dejimaha uu sameeyay qoraaga xirmada: waxay beddelaan xirmadan oo keliya."
}
@@ -70,10 +70,7 @@
"horizon.mods.settings": "Cilësimet",
"horizon.mods.in_world": " (lëre botën të ndryshojë)",
"horizon.mods.open_folder": "Hapni dosjen Mod",
"horizon.shader_packs.empty": "Nuk ka pako shader: vendosini në dosjen shaderpacks",
"horizon.shader_options.open": "Opsionet e Shader...",
"horizon.shader_options.profile": "Profili",
"horizon.shader_options.loading": "Leximi i opsioneve të paketës shader...",
"horizon.agent.copy_details": "Kopjoni detajet e lidhjes",
"horizon.multiplayer.join": "Bashkohu",
"horizon.multiplayer.cancel_reconnecting": "Anulo rilidhjen",
@@ -468,5 +465,22 @@
"horizon.extras.cosmetics_hide_fx.tooltip": "Gjurmët dhe aurat e lojtarëve të tjerë mbeten të fshehura; kozmetikat e tjera të tyre shihen ende. Joaktiv si parazgjedhje.",
"horizon.extras.cosmetics.shown": "Treguar",
"horizon.extras.cosmetics.hidden": "I fshehur",
"horizon.extras.cosmetics.name_tags": "Vetëm etiketat e emrave"
"horizon.extras.cosmetics.name_tags": "Vetëm etiketat e emrave",
"Installed": "Të instaluara",
"Apply": "Apliko",
"Reset all options": "Rivendos të gjitha opsionet",
"A Horizon shader pack.": "Një pako shaderësh e Horizon.",
"An OptiFine or Iris shader pack.": "Një pako shaderësh e OptiFine ose Iris.",
"In use: press to turn shaders off.": "Në përdorim: shtyp për të fikur shaderët.",
"Press to use it.": "Shtyp për ta përdorur.",
"Put shader pack .zip files or folders in it.": "Vendos brenda skedarë .zip ose dosje pakosh shaderësh.",
"Puts every option of this pack back to its default.": "I kthen çdo opsion të kësaj pakoje te parazgjedhja.",
"Sets many options at once, as the pack groups them.": "Vendos shumë opsione njëherësh, ashtu siç i grupon pakoja.",
"No shader packs yet: open the pack folder and put some in it.": "Ende nuk ka pako shaderësh: hap dosjen e pakove dhe vendos disa.",
"Pick a shader pack. Picking the one in use turns shaders off.": "Zgjidh një pako shaderësh. Zgjedhja e asaj në përdorim i fik shaderët.",
"Changed options apply with Apply, or when you leave.": "Opsionet e ndryshuara aplikohen me Apliko, ose kur del.",
"Pack settings": "Cilësimet e pakos",
"Built-in settings": "Cilësimet e integruara",
"%s settings": "Cilësimet e %s",
"Settings made by the pack's author: they change only this pack.": "Cilësime të bëra nga autori i pakos: ndryshojnë vetëm këtë pako."
}
@@ -74,10 +74,7 @@
"horizon.mods.settings": "Podešavanja",
"horizon.mods.in_world": " (ostavi svet da se promeni)",
"horizon.mods.open_folder": "Otvorite fasciklu modova",
"horizon.shader_packs.empty": "Nema paketa shadera: stavite ih u fasciklu shaderpacks",
"horizon.shader_options.open": "Opcije shadera...",
"horizon.shader_options.profile": "Profile",
"horizon.shader_options.loading": "Čitanje opcija paketa senki...",
"horizon.agent.copy_details": "Kopiraj detalje veze",
"horizon.multiplayer.join": "Pridružite se",
"horizon.multiplayer.cancel_reconnecting": "Otkažite ponovno povezivanje",
@@ -491,5 +488,22 @@
"horizon.extras.cosmetics_hide_fx.tooltip": "Tragovi i aure drugih igrača ostaju skriveni; njihova ostala kozmetika se i dalje vidi. Isključeno po zadanom.",
"horizon.extras.cosmetics.shown": "Pokazano",
"horizon.extras.cosmetics.hidden": "Skriveno",
"horizon.extras.cosmetics.name_tags": "Samo oznake sa imenom"
"horizon.extras.cosmetics.name_tags": "Samo oznake sa imenom",
"Installed": "Instalirani",
"Apply": "Primeni",
"Reset all options": "Vrati sve opcije na podrazumevano",
"A Horizon shader pack.": "Horizon paket šejdera.",
"An OptiFine or Iris shader pack.": "OptiFine ili Iris paket šejdera.",
"In use: press to turn shaders off.": "U upotrebi: pritisni da isključiš šejdere.",
"Press to use it.": "Pritisni da ga koristiš.",
"Put shader pack .zip files or folders in it.": "Stavi u nju .zip datoteke ili fascikle paketa šejdera.",
"Puts every option of this pack back to its default.": "Vraća svaku opciju ovog paketa na podrazumevanu vrednost.",
"Sets many options at once, as the pack groups them.": "Podešava mnogo opcija odjednom, onako kako ih paket grupiše.",
"No shader packs yet: open the pack folder and put some in it.": "Još nema paketa šejdera: otvori fasciklu paketa i stavi nekoliko u nju.",
"Pick a shader pack. Picking the one in use turns shaders off.": "Izaberi paket šejdera. Izbor paketa koji je u upotrebi isključuje šejdere.",
"Changed options apply with Apply, or when you leave.": "Izmenjene opcije se primenjuju dugmetom Primeni ili kada izađeš.",
"Pack settings": "Podešavanja paketa",
"Built-in settings": "Ugrađena podešavanja",
"%s settings": "Podešavanja za %s",
"Settings made by the pack's author: they change only this pack.": "Podešavanja koja je napravio autor paketa: menjaju samo ovaj paket."
}
@@ -74,10 +74,7 @@
"horizon.mods.settings": "Подешавања",
"horizon.mods.in_world": " (остави свет да се промени)",
"horizon.mods.open_folder": "Отворите фасциклу модова",
"horizon.shader_packs.empty": "Нема пакета схадера: ставите их у фасциклу схадерпацкс",
"horizon.shader_options.open": "Опције схадера...",
"horizon.shader_options.profile": "Профиле",
"horizon.shader_options.loading": "Читање опција пакета сенки...",
"horizon.agent.copy_details": "Копирај детаље везе",
"horizon.multiplayer.join": "Придружите се",
"horizon.multiplayer.cancel_reconnecting": "Откажите поновно повезивање",
@@ -491,5 +488,22 @@
"horizon.extras.cosmetics_hide_fx.tooltip": "Трагови и ауре других играча остају сакривени; њихова остала козметика се и даље види. Подразумевано искључено.",
"horizon.extras.cosmetics.shown": "Показано",
"horizon.extras.cosmetics.hidden": "Скривено",
"horizon.extras.cosmetics.name_tags": "Само ознаке са именом"
"horizon.extras.cosmetics.name_tags": "Само ознаке са именом",
"Installed": "Инсталирани",
"Apply": "Примени",
"Reset all options": "Врати све опције на подразумевано",
"A Horizon shader pack.": "Horizon пакет шејдера.",
"An OptiFine or Iris shader pack.": "OptiFine или Iris пакет шејдера.",
"In use: press to turn shaders off.": "У употреби: притисни да искључиш шејдере.",
"Press to use it.": "Притисни да га користиш.",
"Put shader pack .zip files or folders in it.": "Стави у њу .zip датотеке или фасцикле пакета шејдера.",
"Puts every option of this pack back to its default.": "Враћа сваку опцију овог пакета на подразумевану вредност.",
"Sets many options at once, as the pack groups them.": "Подешава много опција одједном, онако како их пакет групише.",
"No shader packs yet: open the pack folder and put some in it.": "Још нема пакета шејдера: отвори фасциклу пакета и стави неколико у њу.",
"Pick a shader pack. Picking the one in use turns shaders off.": "Изабери пакет шејдера. Избор пакета који је у употреби искључује шејдере.",
"Changed options apply with Apply, or when you leave.": "Измењене опције се примењују дугметом Примени или када изађеш.",
"Pack settings": "Подешавања пакета",
"Built-in settings": "Уграђена подешавања",
"%s settings": "Подешавања за %s",
"Settings made by the pack's author: they change only this pack.": "Подешавања која је направио аутор пакета: мењају само овај пакет."
}
@@ -65,10 +65,7 @@
"horizon.mods.settings": "Inställningar",
"horizon.mods.in_world": " (låt världen förändras)",
"horizon.mods.open_folder": "Öppna Mod-mappen",
"horizon.shader_packs.empty": "Inga shader-paket: lägg dem i shaderpacks-mappen",
"horizon.shader_options.open": "Skuggningsalternativ...",
"horizon.shader_options.profile": "Profil",
"horizon.shader_options.loading": "Läser shader-paketets alternativ...",
"horizon.agent.copy_details": "Kopiera anslutningsinformation",
"horizon.multiplayer.join": "Gå med",
"horizon.multiplayer.cancel_reconnecting": "Avbryt Återansluter",
@@ -454,5 +451,22 @@
"horizon.extras.cosmetics.shown": "Visas",
"horizon.extras.cosmetics.hidden": "Dold",
"horizon.extras.cosmetics.name_tags": "Endast namnlappar",
"Shader Packs...": "Shader-paket..."
"Shader Packs...": "Shader-paket...",
"Installed": "Installerade",
"Apply": "Använd",
"Reset all options": "Återställ alla alternativ",
"A Horizon shader pack.": "Ett Horizon-shaderpaket.",
"An OptiFine or Iris shader pack.": "Ett OptiFine- eller Iris-shaderpaket.",
"In use: press to turn shaders off.": "Används: tryck för att stänga av shaders.",
"Press to use it.": "Tryck för att använda det.",
"Put shader pack .zip files or folders in it.": "Lägg .zip-filer eller mappar med shaderpaket i den.",
"Puts every option of this pack back to its default.": "Återställer alla alternativ i det här paketet till standard.",
"Sets many options at once, as the pack groups them.": "Ställer in många alternativ samtidigt, som paketet grupperar dem.",
"No shader packs yet: open the pack folder and put some in it.": "Inga shaderpaket än: öppna paketmappen och lägg några i den.",
"Pick a shader pack. Picking the one in use turns shaders off.": "Välj ett shaderpaket. Väljer du det som används stängs shaders av.",
"Changed options apply with Apply, or when you leave.": "Ändrade alternativ tillämpas med Använd, eller när du lämnar skärmen.",
"Pack settings": "Paketinställningar",
"Built-in settings": "Inbyggda inställningar",
"%s settings": "Inställningar för %s",
"Settings made by the pack's author: they change only this pack.": "Inställningar gjorda av paketets upphovsperson: de ändrar bara det här paketet."
}
@@ -70,10 +70,7 @@
"horizon.mods.settings": "Ustawiynia",
"horizon.mods.in_world": " (ôpuścić świat, coby sie zmiynioł)",
"horizon.mods.open_folder": "Ôtwōrz folder Mod",
"horizon.shader_packs.empty": "Brak pakietōw shaderōw: wkludź je do katalogu pakietōw ciyniōw",
"horizon.shader_options.open": "Ôpcyje Shadera...",
"horizon.shader_options.profile": "Profil",
"horizon.shader_options.loading": "Ôczytanie ôpcyjōw pakietu shaderōw...",
"horizon.agent.copy_details": "Skopiuj szczegōły połōnczynio",
"horizon.multiplayer.join": "Prziłōncz sie",
"horizon.multiplayer.cancel_reconnecting": "Pociepniyńcie pōnownego połōnczynio",
@@ -483,5 +480,22 @@
"horizon.extras.cosmetics_hide_fx.tooltip": "Ślady i aury inszych grŏczy ôstŏwajōm skryte; jejich inksze kosmetyki sōm dalij widoczne. Wychodnie zastawiōne.",
"horizon.extras.cosmetics.shown": "Pokazano",
"horizon.extras.cosmetics.hidden": "Skryte",
"horizon.extras.cosmetics.name_tags": "Ino znaczniki mian"
"horizon.extras.cosmetics.name_tags": "Ino znaczniki mian",
"Installed": "Zainstalowane",
"Apply": "Zastosuj",
"Reset all options": "Zresetuj wszystkie opcyje",
"A Horizon shader pack.": "Paczka shaderōw Horizon.",
"An OptiFine or Iris shader pack.": "Paczka shaderōw OptiFine abo Iris.",
"In use: press to turn shaders off.": "W użyciu: naciś, coby wyłōnczyć shadery.",
"Press to use it.": "Naciś, coby jōm użyć.",
"Put shader pack .zip files or folders in it.": "Wrzuć do niego zbiory .zip abo katalogi paczek shaderōw.",
"Puts every option of this pack back to its default.": "Przywraca wszyjske opcyje tyj paczki do wartości domyślnych.",
"Sets many options at once, as the pack groups them.": "Ustawia moc opcyji naroz, tak jak je grupuje paczka.",
"No shader packs yet: open the pack folder and put some in it.": "Jeszcze niy ma paczek shaderōw: ôtwōrz katalog paczek i wrzuć do niego kilka.",
"Pick a shader pack. Picking the one in use turns shaders off.": "Wybier paczka shaderōw. Wybranie używanyj wyłōncza shadery.",
"Changed options apply with Apply, or when you leave.": "Zmiynione opcyje sie zastosujōm przyciskiym Zastosuj abo po wyjściu.",
"Pack settings": "Sztelōnki paczki",
"Built-in settings": "Wbudowane sztelōnki",
"%s settings": "Sztelōnki %s",
"Settings made by the pack's author: they change only this pack.": "Sztelōnki zrobiōne przez autora paczki: zmieniajōm ino tã paczka."
}
@@ -74,10 +74,7 @@
"horizon.mods.settings": "அமைப்புகள்",
"horizon.mods.in_world": " (உலகத்தை மாற்ற விடுங்கள்)",
"horizon.mods.open_folder": "மோட் கோப்புறையைத் திறக்கவும்",
"horizon.shader_packs.empty": "ஷேடர் பேக்குகள் இல்லை: ஷேடர் பேக்ஸ் கோப்புறையில் வைக்கவும்",
"horizon.shader_options.open": "ஷேடர் விருப்பங்கள்...",
"horizon.shader_options.profile": "சுயவிவரம்",
"horizon.shader_options.loading": "ஷேடர் பேக்கின் விருப்பங்களைப் படித்தல்...",
"horizon.agent.copy_details": "இணைப்பு விவரங்களை நகலெடுக்கவும்",
"horizon.multiplayer.join": "சேருங்கள்",
"horizon.multiplayer.cancel_reconnecting": "மீண்டும் இணைப்பதை ரத்துசெய்",
@@ -484,5 +481,22 @@
"horizon.extras.cosmetics_hide_fx.tooltip": "மற்ற விளையாட்டாளர்களின் தடங்களும் ஒளிவட்டங்களும் மறைந்திருக்கும்; அவர்களின் மற்ற அலங்காரங்கள் தெரியும். இயல்பாக அணைக்கப்பட்டுள்ளது.",
"horizon.extras.cosmetics.shown": "காட்டப்பட்டது",
"horizon.extras.cosmetics.hidden": "மறைக்கப்பட்டது",
"horizon.extras.cosmetics.name_tags": "பெயர் குறிச்சொற்கள் மட்டுமே"
"horizon.extras.cosmetics.name_tags": "பெயர் குறிச்சொற்கள் மட்டுமே",
"Installed": "நிறுவப்பட்டவை",
"Apply": "பயன்படுத்து",
"Reset all options": "அனைத்து விருப்பங்களையும் மீட்டமை",
"A Horizon shader pack.": "ஒரு Horizon ஷேடர் பேக்.",
"An OptiFine or Iris shader pack.": "ஒரு OptiFine அல்லது Iris ஷேடர் பேக்.",
"In use: press to turn shaders off.": "பயன்பாட்டில் உள்ளது: ஷேடர்களை அணைக்க அழுத்தவும்.",
"Press to use it.": "பயன்படுத்த அழுத்தவும்.",
"Put shader pack .zip files or folders in it.": "ஷேடர் பேக் .zip கோப்புகளை அல்லது கோப்புறைகளை அதில் வையுங்கள்.",
"Puts every option of this pack back to its default.": "இந்த பேக்கின் ஒவ்வொரு விருப்பத்தையும் இயல்புநிலைக்குத் திருப்பும்.",
"Sets many options at once, as the pack groups them.": "பேக் தொகுத்துள்ளபடி பல விருப்பங்களை ஒரே நேரத்தில் அமைக்கும்.",
"No shader packs yet: open the pack folder and put some in it.": "இன்னும் ஷேடர் பேக்குகள் இல்லை: பேக் கோப்புறையைத் திறந்து சிலவற்றை வையுங்கள்.",
"Pick a shader pack. Picking the one in use turns shaders off.": "ஒரு ஷேடர் பேக்கைத் தேர்ந்தெடுக்கவும். பயன்பாட்டில் உள்ளதைத் தேர்ந்தால் ஷேடர்கள் அணையும்.",
"Changed options apply with Apply, or when you leave.": "மாற்றிய விருப்பங்கள் பயன்படுத்து மூலம் அல்லது நீங்கள் வெளியேறும்போது செயல்படும்.",
"Pack settings": "பேக் அமைப்புகள்",
"Built-in settings": "உள்ளமைந்த அமைப்புகள்",
"%s settings": "%s அமைப்புகள்",
"Settings made by the pack's author: they change only this pack.": "பேக்கின் ஆசிரியர் உருவாக்கிய அமைப்புகள்: இவை இந்த பேக்கை மட்டுமே மாற்றும்."
}
Loaded 100 of 466 files, more files were not shown because too many files have changed in this diff. Show more