mirror of
https://github.com/horizon-rust/horizon.git
synced 2026-11-07 11:06:11 -10:00
Merge main into #10540
This commit is contained in:
commit
97f85f4530
466 files changed
+21945
-2742
No files matched your search
@@ -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);
|
||||
|
||||
@@ -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),
|
||||
|
||||
@@ -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::*;
|
||||
|
||||
@@ -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", "{}")]
|
||||
|
||||
@@ -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)?])
|
||||
});
|
||||
|
||||
@@ -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, ¯os, &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);
|
||||
|
||||
@@ -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() {
|
||||
|
||||
@@ -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
@@ -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,
|
||||
|
||||
@@ -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
@@ -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]
|
||||
|
||||
@@ -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)]
|
||||
|
||||
@@ -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
Reference in new issue
Block a user