mirror of
https://github.com/JannisX11/blockbench.git
synced 2025-03-19 17:01:55 +08:00
3.4.1
This commit is contained in:
parent
d3d50ffc79
commit
7941f20437
1
.gitignore
vendored
1
.gitignore
vendored
@ -1,3 +1,4 @@
|
||||
/dist/
|
||||
index.php
|
||||
package-lock.json
|
||||
node_modules/
|
15
README.md
15
README.md
@ -1,7 +1,18 @@
|
||||
# Blockbench
|
||||
|
||||
Blockbench is a free, modern model editor for Minecraft Java and Bedrock Edition.
|
||||
Blockbench is a free, modern model editor for boxy models and pixel art textures.
|
||||
Models can be exported for Minecraft Java and Bedrock Edition as well as most game engines and other 3D applications.
|
||||
Blockbench features a modern and intuitive UI, plugin support and innovative features. It is the industry standard for creating custom 3D models for the Minecraft Marketplace.
|
||||
Project and download page: [blockbench.net](https://www.blockbench.net)
|
||||
Website and download: [blockbench.net](https://www.blockbench.net)
|
||||
|
||||

|
||||
|
||||
## Contribution
|
||||
|
||||
I am not actively using this repository to develop Blockbench. Therefore, I currently won't accept pull requests, sorry!
|
||||
If you want something implemented in Blockbench, please write a plugin, create an issue labeled [Suggestion], or contact me on Discord.
|
||||
If you want to Blockbench translations, please visit [blockbench.net/translations](https://blockbench.net/translations/). Thank you!
|
||||
|
||||
## Plugins
|
||||
|
||||
Blockbench supports Javascript-based plugins. Learn more about creating plugins on [jannisx11.github.io/blockbench-docs](https://jannisx11.github.io/blockbench-docs/#creating-a-plugin).
|
||||
|
@ -992,6 +992,9 @@
|
||||
cursor: default;
|
||||
pointer-events: none;
|
||||
z-index: 5;
|
||||
color: white;
|
||||
mix-blend-mode: difference;
|
||||
font-weight: 300;
|
||||
}
|
||||
.panel .bar.next_to_title {
|
||||
margin-top: -30px;
|
||||
@ -1231,5 +1234,7 @@
|
||||
}
|
||||
.panel#color .sp-container.sp-flat {
|
||||
overflow: visible;
|
||||
margin: 2px 4px 0 4px;
|
||||
width: calc(100% - 8px);
|
||||
}
|
||||
|
||||
|
@ -23,7 +23,7 @@
|
||||
<script>
|
||||
if (typeof module === 'object') {window.module = module; module = undefined;}//jQuery Fix
|
||||
const isApp = typeof require !== 'undefined';
|
||||
const appVersion = '3.4.0';
|
||||
const appVersion = '3.4.1';
|
||||
</script>
|
||||
<div id="loading_error_message" style="display: none;">
|
||||
<div>An error occurred while loading Blockbench</div>
|
||||
@ -58,6 +58,7 @@
|
||||
<script src="js/interface/actions.js"></script>
|
||||
<script src="js/interface/themes.js"></script>
|
||||
<script src="js/blockbench.js"></script>
|
||||
<script src="js/modes.js"></script>
|
||||
<script src="js/interface/keyboard.js"></script>
|
||||
<script src="js/interface/settings.js"></script>
|
||||
<script src="js/interface/dialog.js"></script>
|
||||
|
@ -1225,6 +1225,7 @@ const Animator = {
|
||||
animation.getBoneAnimator(group).displayFrame(Timeline.time)
|
||||
}
|
||||
})
|
||||
group.mesh.updateMatrixWorld()
|
||||
})
|
||||
|
||||
Animator.animations.forEach(animation => {
|
||||
|
248
js/blockbench.js
248
js/blockbench.js
@ -294,163 +294,6 @@ function createSelection() {
|
||||
}
|
||||
hideDialog()
|
||||
}
|
||||
//Modes
|
||||
class Mode extends KeybindItem {
|
||||
constructor(data) {
|
||||
super(data)
|
||||
this.id = data.id;
|
||||
this.name = data.name || tl('mode.'+this.id);
|
||||
this.selected = false
|
||||
this.default_tool = data.default_tool;
|
||||
this.center_windows = data.center_windows||['preview'];
|
||||
this.selectCubes = data.selectCubes !== false
|
||||
this.hide_toolbars = data.hide_toolbars
|
||||
this.condition = data.condition;
|
||||
this.onSelect = data.onSelect;
|
||||
this.onUnselect = data.onUnselect;
|
||||
Modes.options[this.id] = this;
|
||||
}
|
||||
select() {
|
||||
var scope = this;
|
||||
if (Modes.selected) {
|
||||
delete Modes[Modes.selected.id];
|
||||
Modes.previous_id = Modes.selected.id;
|
||||
}
|
||||
if (typeof Modes.selected.onUnselect === 'function') {
|
||||
Modes.selected.onUnselect()
|
||||
}
|
||||
if (Modes.selected.selected) {
|
||||
Modes.selected.selected = false
|
||||
}
|
||||
this.selected = true;
|
||||
Modes.id = this.id
|
||||
Modes.selected = this;
|
||||
Modes[Modes.selected.id] = true;
|
||||
|
||||
document.body.setAttribute('mode', this.id);
|
||||
|
||||
$('#center > #preview').toggle(this.center_windows.includes('preview'));
|
||||
$('#center > #timeline').toggle(this.center_windows.includes('timeline'));
|
||||
$('#center > #start_screen').toggle(this.center_windows.includes('start_screen'));
|
||||
|
||||
if (this.hide_toolbars) {
|
||||
$('#main_toolbar .toolbar_wrapper').css('visibility', 'hidden')
|
||||
} else {
|
||||
$('#main_toolbar .toolbar_wrapper').css('visibility', 'visible')
|
||||
}
|
||||
|
||||
if (typeof this.onSelect === 'function') {
|
||||
this.onSelect()
|
||||
}
|
||||
|
||||
updateInterface()
|
||||
Canvas.updateRenderSides()
|
||||
if (BarItems[this.default_tool]) {
|
||||
BarItems[this.default_tool].select()
|
||||
} else {
|
||||
BarItems.move_tool.select()
|
||||
}
|
||||
TickUpdates.selection = true;
|
||||
}
|
||||
trigger() {
|
||||
if (Condition(this.condition)) {
|
||||
this.select()
|
||||
}
|
||||
}
|
||||
}
|
||||
const Modes = {
|
||||
id: 'edit',
|
||||
selected: false,
|
||||
options: {},
|
||||
};
|
||||
onVueSetup(function() {
|
||||
Modes.vue = new Vue({
|
||||
el: '#mode_selector',
|
||||
data: {
|
||||
options: Modes.options
|
||||
}
|
||||
})
|
||||
});
|
||||
BARS.defineActions(function() {
|
||||
new Mode({
|
||||
id: 'start',
|
||||
category: 'navigate',
|
||||
center_windows: ['start_screen'],
|
||||
hide_toolbars: true,
|
||||
onSelect: function () {
|
||||
},
|
||||
onUnselect: function () {
|
||||
}
|
||||
})
|
||||
new Mode({
|
||||
id: 'edit',
|
||||
default_tool: 'move_tool',
|
||||
category: 'navigate',
|
||||
condition: () => Format,
|
||||
keybind: new Keybind({key: 49})
|
||||
})
|
||||
new Mode({
|
||||
id: 'paint',
|
||||
default_tool: 'brush_tool',
|
||||
category: 'navigate',
|
||||
condition: () => Format,
|
||||
keybind: new Keybind({key: 50}),
|
||||
onSelect: () => {
|
||||
if (Modes.previous_id == 'animate') {
|
||||
Animator.preview();
|
||||
}
|
||||
Cube.all.forEach(cube => {
|
||||
Canvas.buildGridBox(cube)
|
||||
})
|
||||
$('#main_colorpicker').spectrum('set', ColorPanel.vue._data.main_color);
|
||||
BarItems.slider_color_h.update();
|
||||
BarItems.slider_color_s.update();
|
||||
BarItems.slider_color_v.update();
|
||||
|
||||
$('.UVEditor').find('#uv_size').hide()
|
||||
three_grid.visible = false;
|
||||
},
|
||||
onUnselect: () => {
|
||||
Cube.all.forEach(cube => {
|
||||
Canvas.buildGridBox(cube)
|
||||
})
|
||||
$('.UVEditor').find('#uv_size').show();
|
||||
three_grid.visible = true;
|
||||
},
|
||||
})
|
||||
new Mode({
|
||||
id: 'display',
|
||||
selectCubes: false,
|
||||
default_tool: 'move_tool',
|
||||
category: 'navigate',
|
||||
keybind: new Keybind({key: 51}),
|
||||
condition: () => Format.display_mode,
|
||||
onSelect: () => {
|
||||
enterDisplaySettings()
|
||||
},
|
||||
onUnselect: () => {
|
||||
exitDisplaySettings()
|
||||
},
|
||||
})
|
||||
new Mode({
|
||||
id: 'animate',
|
||||
default_tool: 'move_tool',
|
||||
category: 'navigate',
|
||||
center_windows: ['preview', 'timeline'],
|
||||
keybind: new Keybind({key: 52}),
|
||||
condition: () => Format.animation_mode,
|
||||
onSelect: () => {
|
||||
Animator.join()
|
||||
},
|
||||
onUnselect: () => {
|
||||
Animator.leave()
|
||||
}
|
||||
})
|
||||
//Update to 3.2.0
|
||||
if (Modes.options.animate.keybind.key == 51) {
|
||||
Modes.options.animate.keybind.set({key: 52})
|
||||
}
|
||||
})
|
||||
//Backup
|
||||
setInterval(function() {
|
||||
if (Outliner.root.length || textures.length) {
|
||||
@ -500,95 +343,6 @@ const TickUpdates = {
|
||||
}
|
||||
}
|
||||
|
||||
const FormatWizard = {
|
||||
start() {
|
||||
var dialog_1 = new Dialog({
|
||||
id: 'format_wizard_1',
|
||||
title: 'format_wizard.title',
|
||||
width: 540,
|
||||
form: {
|
||||
question: {type: 'text', text: 'Which platform do you want to create a model for?'},
|
||||
platform: {label: 'dialog.radio', type: 'radio', options: {
|
||||
'mcj': 'Minecraft: Java Edition',
|
||||
'mcbe': 'Minecraft: Bedrock Edition',
|
||||
'obj': 'Game Engine'
|
||||
}},
|
||||
},
|
||||
onConfirm: function(formResult1) {
|
||||
if (formResult1.platform == 'obj') {
|
||||
|
||||
FormatWizard.result('free');
|
||||
|
||||
} else if (formResult1.platform == 'mcbe') {
|
||||
var types = {
|
||||
block: 'format_wizard.type.block',
|
||||
item: 'format_wizard.type.item',
|
||||
entity: 'format_wizard.type.entity',
|
||||
}
|
||||
} else {
|
||||
var types = {
|
||||
block: 'format_wizard.type.block',
|
||||
item: 'format_wizard.type.item',
|
||||
entity: 'format_wizard.type.entity',
|
||||
armor: 'format_wizard.type.armor',
|
||||
}
|
||||
}
|
||||
var dialog_2 = new Dialog({
|
||||
id: 'format_wizard_2',
|
||||
title: 'format_wizard.title',
|
||||
width: 540,
|
||||
form: {
|
||||
question: {type: 'text', text: 'What type of model do you want to edit?'},
|
||||
type: {label: 'dialog.radio', type: 'radio', options: types},
|
||||
},
|
||||
onConfirm: function(formResult2) {
|
||||
if (formResult1.platform == 'mcj' && (formResult2.type == 'entity' || formResult2.type == 'armor')) {
|
||||
|
||||
var dialog_3 = new Dialog({
|
||||
id: 'format_wizard_3',
|
||||
title: 'format_wizard.title',
|
||||
width: 540,
|
||||
form: {
|
||||
question: {type: 'text', text: 'What do you want to create the model for?'},
|
||||
product: {label: 'dialog.radio', type: 'radio', options: {
|
||||
vanilla: '',
|
||||
optifine: '',
|
||||
modded: '',
|
||||
}},
|
||||
},
|
||||
onConfirm: function(formResult3) {
|
||||
switch (formResult3.product) {
|
||||
case 'vanilla':
|
||||
FormatWizard.result(''); break;
|
||||
case 'optifine':
|
||||
FormatWizard.result(formResult2.type == 'armor' ? 'java_armor' : 'optifine_entity'); break;
|
||||
case 'modded': default:
|
||||
FormatWizard.result('modded_entity'); break;
|
||||
}
|
||||
}
|
||||
}).show();
|
||||
} else if (formResult1.platform == 'mcj') {
|
||||
FormatWizard.result('java_block');
|
||||
} else {
|
||||
switch (formResult2.type) {
|
||||
case 'block':
|
||||
FormatWizard.result('not_supported_yet'); break;
|
||||
case 'item':
|
||||
FormatWizard.result('not_supported_yet'); break;
|
||||
default:
|
||||
FormatWizard.result('bedrock'); break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}).show();
|
||||
}
|
||||
}).show();
|
||||
},
|
||||
result(result) {
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
const entityMode = {
|
||||
hardcodes: {"geometry.chicken":{"body":{"rotation":[90,0,0]}},"geometry.llama":{"chest1":{"rotation":[0,90,0]},"chest2":{"rotation":[0,90,0]},"body":{"rotation":[90,0,0]}},"geometry.cow":{"body":{"rotation":[90,0,0]}},"geometry.sheep.sheared":{"body":{"rotation":[90,0,0]}},"geometry.sheep":{"body":{"rotation":[90,0,0]}},"geometry.phantom":{"body":{"rotation":[0,0,0]},"wing0":{"rotation":[0,0,5.7]},"wingtip0":{"rotation":[0,0,5.7]},"wing1":{"rotation":[0,0,-5.7]},"wingtip1":{"rotation":[0,0,-5.7]},"head":{"rotation":[11.5,0,0]},"tail":{"rotation":[0,0,0]},"tailtip":{"rotation":[0,0,0]}},"geometry.pig":{"body":{"rotation":[90,0,0]}},"geometry.ocelot":{"body":{"rotation":[90,0,0]},"tail1":{"rotation":[90,0,0]},"tail2":{"rotation":[90,0,0]}},"geometry.cat":{"body":{"rotation":[90,0,0]},"tail1":{"rotation":[90,0,0]},"tail2":{"rotation":[90,0,0]}},"geometry.turtle":{"eggbelly":{"rotation":[90,0,0]},"body":{"rotation":[90,0,0]}},"geometry.villager.witch":{"hat2":{"rotation":[-3,0,1.5]},"hat3":{"rotation":[-6,0,3]},"hat4":{"rotation":[-12,0,6]}},"geometry.pufferfish.mid":{"spines_top_front":{"rotation":[45,0,0]},"spines_top_back":{"rotation":[-45,0,0]},"spines_bottom_front":{"rotation":[-45,0,0]},"spines_bottom_back":{"rotation":[45,0,0]},"spines_left_front":{"rotation":[0,45,0]},"spines_left_back":{"rotation":[0,-45,0]},"spines_right_front":{"rotation":[0,-45,0]},"spines_right_back":{"rotation":[0,45,0]}},"geometry.pufferfish.large":{"spines_top_front":{"rotation":[45,0,0]},"spines_top_back":{"rotation":[-45,0,0]},"spines_bottom_front":{"rotation":[-45,0,0]},"spines_bottom_back":{"rotation":[45,0,0]},"spines_left_front":{"rotation":[0,45,0]},"spines_left_back":{"rotation":[0,-45,0]},"spines_right_front":{"rotation":[0,-45,0]},"spines_right_back":{"rotation":[0,45,0]}},"geometry.tropicalfish_a":{"leftFin":{"rotation":[0,-35,0]},"rightFin":{"rotation":[0,35,0]}},"geometry.tropicalfish_b":{"leftFin":{"rotation":[0,-35,0]},"rightFin":{"rotation":[0,35,0]}}},
|
||||
hardcodes: JSON.parse('{"geometry.chicken":{"body":{"rotation":[90,0,0]}},"geometry.llama":{"chest1":{"rotation":[0,90,0]},"chest2":{"rotation":[0,90,0]},"body":{"rotation":[90,0,0]}},"geometry.cow":{"body":{"rotation":[90,0,0]}},"geometry.sheep.sheared":{"body":{"rotation":[90,0,0]}},"geometry.sheep":{"body":{"rotation":[90,0,0]}},"geometry.phantom":{"body":{"rotation":[0,0,0]},"wing0":{"rotation":[0,0,5.7]},"wingtip0":{"rotation":[0,0,5.7]},"wing1":{"rotation":[0,0,-5.7]},"wingtip1":{"rotation":[0,0,-5.7]},"head":{"rotation":[11.5,0,0]},"tail":{"rotation":[0,0,0]},"tailtip":{"rotation":[0,0,0]}},"geometry.pig":{"body":{"rotation":[90,0,0]}},"geometry.ocelot":{"body":{"rotation":[90,0,0]},"tail1":{"rotation":[90,0,0]},"tail2":{"rotation":[90,0,0]}},"geometry.cat":{"body":{"rotation":[90,0,0]},"tail1":{"rotation":[90,0,0]},"tail2":{"rotation":[90,0,0]}},"geometry.turtle":{"eggbelly":{"rotation":[90,0,0]},"body":{"rotation":[90,0,0]}},"geometry.villager.witch":{"hat2":{"rotation":[-3,0,1.5]},"hat3":{"rotation":[-6,0,3]},"hat4":{"rotation":[-12,0,6]}},"geometry.pufferfish.mid":{"spines_top_front":{"rotation":[45,0,0]},"spines_top_back":{"rotation":[-45,0,0]},"spines_bottom_front":{"rotation":[-45,0,0]},"spines_bottom_back":{"rotation":[45,0,0]},"spines_left_front":{"rotation":[0,45,0]},"spines_left_back":{"rotation":[0,-45,0]},"spines_right_front":{"rotation":[0,-45,0]},"spines_right_back":{"rotation":[0,45,0]}},"geometry.pufferfish.large":{"spines_top_front":{"rotation":[45,0,0]},"spines_top_back":{"rotation":[-45,0,0]},"spines_bottom_front":{"rotation":[-45,0,0]},"spines_bottom_back":{"rotation":[45,0,0]},"spines_left_front":{"rotation":[0,45,0]},"spines_left_back":{"rotation":[0,-45,0]},"spines_right_front":{"rotation":[0,-45,0]},"spines_right_back":{"rotation":[0,45,0]}},"geometry.tropicalfish_a":{"leftFin":{"rotation":[0,-35,0]},"rightFin":{"rotation":[0,35,0]}},"geometry.tropicalfish_b":{"leftFin":{"rotation":[0,-35,0]},"rightFin":{"rotation":[0,35,0]}}}')
|
||||
}
|
||||
|
@ -30,7 +30,7 @@ const Clipbench = {
|
||||
if (display_mode) {
|
||||
return Clipbench.types.display_slot
|
||||
}
|
||||
if (Animator.open && Timeline.animators.length && (Timeline.selected.length || mode === 2)) {
|
||||
if (Animator.open && Timeline.animators.length && (Timeline.selected.length || mode === 2) && ['keyframe', 'timeline'].includes(p)) {
|
||||
return Clipbench.types.keyframe
|
||||
}
|
||||
if ((p == 'uv' || p == 'preview') && Modes.edit) {
|
||||
|
@ -1460,6 +1460,7 @@ exitDisplaySettings = function() { //Enterung Display Setting Mode, changes the
|
||||
display_area.updateMatrixWorld()
|
||||
display_base.updateMatrixWorld()
|
||||
lights.rotation.set(0, 0, 0);
|
||||
if (scene.parent) scene.parent.remove(scene)
|
||||
|
||||
display_mode = false;
|
||||
main_preview.fullscreen()
|
||||
|
@ -1632,6 +1632,10 @@ const BARS = {
|
||||
'transform_space'
|
||||
]
|
||||
})
|
||||
// update 3.4.1
|
||||
if (!Toolbars.main_tools.children.includes(BarItems.transform_space)) {
|
||||
Toolbars.main_tools.add(BarItems.transform_space, -1)
|
||||
}
|
||||
Toolbars.brush = new Toolbar({
|
||||
id: 'brush',
|
||||
children: [
|
||||
|
@ -85,7 +85,15 @@ function Dialog(settings) {
|
||||
|
||||
switch (data.type) {
|
||||
default:
|
||||
bar.append(`<input class="dark_bordered half focusable_input" type="text" id="${form_id}" value="${data.value||''}" placeholder="${data.placeholder||''}">`)
|
||||
bar.append(`<input class="dark_bordered half focusable_input" type="text" id="${form_id}" value="${data.value||''}" placeholder="${data.placeholder||''}" ${data.list ? `list="${scope.id}_${form_id}_list"` : ''}>`)
|
||||
if (data.list) {
|
||||
let id = `${scope.id}_${form_id}_list`
|
||||
let list = $(`<datalist id="${scope.id}_${form_id}_list"></datalist>`)
|
||||
for (let value of data.list) {
|
||||
list.append(`<option value="${value}">`)
|
||||
}
|
||||
bar.append(list)
|
||||
}
|
||||
break;
|
||||
case 'textarea':
|
||||
bar.append(`<textarea class="focusable_input" style="height: ${data.height||150}px;" id="${form_id}"></textarea>`)
|
||||
|
@ -180,7 +180,7 @@ var codec = new Codec('project', {
|
||||
var copy = NonGroup.fromSave(element, true)
|
||||
for (var face in copy.faces) {
|
||||
if (!Format.single_texture) {
|
||||
var texture = element.faces[face].texture && textures[element.faces[face].texture]
|
||||
var texture = element.faces[face].texture !== null && textures[element.faces[face].texture]
|
||||
if (texture) {
|
||||
copy.faces[face].texture = texture.uuid
|
||||
}
|
||||
|
@ -33,6 +33,7 @@ var codec = new Codec('gltf', {
|
||||
let times = [];
|
||||
let values = [];
|
||||
let keyframes = animator[channel].slice();
|
||||
keyframes.sort((a, b) => a.time - b.time)
|
||||
keyframes.forEach(kf => {
|
||||
times.push(kf.time);
|
||||
Timeline.time = kf.time;
|
||||
|
@ -411,6 +411,7 @@ function setupDragHandlers() {
|
||||
var tex = textures.findInArray('uuid', texture_li.attr('texid'))
|
||||
if (tex) {
|
||||
tex.fromFile(files[0])
|
||||
TickUpdates.selection = true;
|
||||
return;
|
||||
}
|
||||
}
|
||||
@ -888,7 +889,7 @@ BARS.defineActions(function() {
|
||||
form: {
|
||||
format: {type: 'text', label: 'data.format', text: Format.name||'unknown'},
|
||||
name: {label: 'dialog.project.name', value: Project.name},
|
||||
parent: {label: 'dialog.project.parent', value: Project.parent, condition: !Format.bone_rig},
|
||||
parent: {label: 'dialog.project.parent', value: Project.parent, condition: !Format.bone_rig, list: ['paro', 'foo', 'bar']},
|
||||
geometry_name: {label: 'dialog.project.geoname', value: Project.geometry_name, condition: Format.bone_rig},
|
||||
ambientocclusion: {label: 'dialog.project.ao', type: 'checkbox', value: Project.ambientocclusion, condition: Format.id == 'java_block'},
|
||||
box_uv: {label: 'dialog.project.box_uv', type: 'checkbox', value: Project.box_uv, condition: Format.optional_box_uv},
|
||||
|
@ -312,7 +312,19 @@ var codec = new Codec('java_block', {
|
||||
base_cube = new Cube(obj)
|
||||
if (obj.__comment) base_cube.name = obj.__comment
|
||||
//Faces
|
||||
var uv_stated = false;
|
||||
var faces_without_uv = false;
|
||||
for (var key in base_cube.faces) {
|
||||
if (obj.faces[key] && !obj.faces[key].uv) {
|
||||
faces_without_uv = true;
|
||||
}
|
||||
}
|
||||
if (faces_without_uv) {
|
||||
base_cube.autouv = 2
|
||||
base_cube.mapAutoUV()
|
||||
} else {
|
||||
base_cube.autouv = 0;
|
||||
}
|
||||
|
||||
for (var key in base_cube.faces) {
|
||||
var read_face = obj.faces[key];
|
||||
var new_face = base_cube.faces[key];
|
||||
@ -322,10 +334,9 @@ var codec = new Codec('java_block', {
|
||||
new_face.uv = [0,0,0,0]
|
||||
} else {
|
||||
if (typeof read_face.uv === 'object') {
|
||||
uv_stated = true
|
||||
|
||||
new_face.uv.forEach((n, i) => {
|
||||
new_face.uv[i] *= main_uv.getResolution(i%2) / 16;
|
||||
new_face.uv[i] = read_face.uv[i] * main_uv.getResolution(i%2) / 16;
|
||||
})
|
||||
}
|
||||
if (read_face.texture === '#missing') {
|
||||
@ -354,12 +365,7 @@ var codec = new Codec('java_block', {
|
||||
}
|
||||
}
|
||||
}
|
||||
if (!uv_stated) {
|
||||
base_cube.autouv = 2
|
||||
base_cube.mapAutoUV()
|
||||
} else {
|
||||
base_cube.autouv = 0;
|
||||
}
|
||||
|
||||
if (!add) {
|
||||
Outliner.root.push(base_cube)
|
||||
base_cube.parent = 'root'
|
||||
|
@ -104,15 +104,10 @@ var codec = new Codec('modded_entity', {
|
||||
|
||||
|
||||
var model = (settings.credit.value
|
||||
? '//'+settings.credit.value+'\n'
|
||||
? '// '+settings.credit.value+'\n'
|
||||
: '')+
|
||||
'//Paste this code into your mod.\n' +
|
||||
'\nimport org.lwjgl.opengl.GL11;'+
|
||||
'\nimport net.minecraft.client.model.ModelBase;'+
|
||||
'\nimport net.minecraft.client.model.ModelBox;'+
|
||||
`\nimport net.minecraft.client.model.${rendererName};`+
|
||||
'\nimport net.minecraft.client.renderer.GlStateManager;'+
|
||||
'\nimport net.minecraft.entity.Entity;\n';
|
||||
'// Paste this code into your mod.\n' +
|
||||
'// Make sure to generate all required imports\n'
|
||||
if (ver == 1) {
|
||||
model += '\npublic class '+model_id+' extends EntityModel {';
|
||||
} else {
|
||||
|
@ -2792,7 +2792,7 @@ skin_presets.panda = `{
|
||||
"textureheight": 64,
|
||||
"eyes": [
|
||||
[11, 19, 2, 1],
|
||||
[18, 19, 2, 1],
|
||||
[18, 19, 2, 1]
|
||||
],
|
||||
"bones": [
|
||||
{
|
||||
|
156
js/modes.js
Normal file
156
js/modes.js
Normal file
@ -0,0 +1,156 @@
|
||||
class Mode extends KeybindItem {
|
||||
constructor(data) {
|
||||
super(data)
|
||||
this.id = data.id;
|
||||
this.name = data.name || tl('mode.'+this.id);
|
||||
this.selected = false
|
||||
this.default_tool = data.default_tool;
|
||||
this.center_windows = data.center_windows||['preview'];
|
||||
this.selectCubes = data.selectCubes !== false
|
||||
this.hide_toolbars = data.hide_toolbars
|
||||
this.condition = data.condition;
|
||||
this.onSelect = data.onSelect;
|
||||
this.onUnselect = data.onUnselect;
|
||||
Modes.options[this.id] = this;
|
||||
}
|
||||
select() {
|
||||
var scope = this;
|
||||
if (Modes.selected) {
|
||||
delete Modes[Modes.selected.id];
|
||||
Modes.previous_id = Modes.selected.id;
|
||||
}
|
||||
if (typeof Modes.selected.onUnselect === 'function') {
|
||||
Modes.selected.onUnselect()
|
||||
}
|
||||
if (Modes.selected.selected) {
|
||||
Modes.selected.selected = false
|
||||
}
|
||||
this.selected = true;
|
||||
Modes.id = this.id
|
||||
Modes.selected = this;
|
||||
Modes[Modes.selected.id] = true;
|
||||
|
||||
document.body.setAttribute('mode', this.id);
|
||||
|
||||
$('#center > #preview').toggle(this.center_windows.includes('preview'));
|
||||
$('#center > #timeline').toggle(this.center_windows.includes('timeline'));
|
||||
$('#center > #start_screen').toggle(this.center_windows.includes('start_screen'));
|
||||
|
||||
if (this.hide_toolbars) {
|
||||
$('#main_toolbar .toolbar_wrapper').css('visibility', 'hidden')
|
||||
} else {
|
||||
$('#main_toolbar .toolbar_wrapper').css('visibility', 'visible')
|
||||
}
|
||||
|
||||
if (typeof this.onSelect === 'function') {
|
||||
this.onSelect()
|
||||
}
|
||||
|
||||
updateInterface()
|
||||
Canvas.updateRenderSides()
|
||||
if (BarItems[this.default_tool]) {
|
||||
BarItems[this.default_tool].select()
|
||||
} else {
|
||||
BarItems.move_tool.select()
|
||||
}
|
||||
TickUpdates.selection = true;
|
||||
}
|
||||
trigger() {
|
||||
if (Condition(this.condition)) {
|
||||
this.select()
|
||||
}
|
||||
}
|
||||
}
|
||||
const Modes = {
|
||||
id: 'edit',
|
||||
selected: false,
|
||||
options: {},
|
||||
};
|
||||
onVueSetup(function() {
|
||||
Modes.vue = new Vue({
|
||||
el: '#mode_selector',
|
||||
data: {
|
||||
options: Modes.options
|
||||
}
|
||||
})
|
||||
});
|
||||
BARS.defineActions(function() {
|
||||
new Mode({
|
||||
id: 'start',
|
||||
category: 'navigate',
|
||||
center_windows: ['start_screen'],
|
||||
hide_toolbars: true,
|
||||
onSelect: function () {
|
||||
},
|
||||
onUnselect: function () {
|
||||
}
|
||||
})
|
||||
new Mode({
|
||||
id: 'edit',
|
||||
default_tool: 'move_tool',
|
||||
category: 'navigate',
|
||||
condition: () => Format,
|
||||
keybind: new Keybind({key: 49})
|
||||
})
|
||||
new Mode({
|
||||
id: 'paint',
|
||||
default_tool: 'brush_tool',
|
||||
category: 'navigate',
|
||||
condition: () => Format,
|
||||
keybind: new Keybind({key: 50}),
|
||||
onSelect: () => {
|
||||
if (Modes.previous_id == 'animate') {
|
||||
Animator.preview();
|
||||
}
|
||||
Cube.all.forEach(cube => {
|
||||
Canvas.buildGridBox(cube)
|
||||
})
|
||||
$('#main_colorpicker').spectrum('set', ColorPanel.vue._data.main_color);
|
||||
BarItems.slider_color_h.update();
|
||||
BarItems.slider_color_s.update();
|
||||
BarItems.slider_color_v.update();
|
||||
|
||||
$('.UVEditor').find('#uv_size').hide()
|
||||
three_grid.visible = false;
|
||||
},
|
||||
onUnselect: () => {
|
||||
Cube.all.forEach(cube => {
|
||||
Canvas.buildGridBox(cube)
|
||||
})
|
||||
$('.UVEditor').find('#uv_size').show();
|
||||
three_grid.visible = true;
|
||||
},
|
||||
})
|
||||
new Mode({
|
||||
id: 'display',
|
||||
selectCubes: false,
|
||||
default_tool: 'move_tool',
|
||||
category: 'navigate',
|
||||
keybind: new Keybind({key: 51}),
|
||||
condition: () => Format.display_mode,
|
||||
onSelect: () => {
|
||||
enterDisplaySettings()
|
||||
},
|
||||
onUnselect: () => {
|
||||
exitDisplaySettings()
|
||||
},
|
||||
})
|
||||
new Mode({
|
||||
id: 'animate',
|
||||
default_tool: 'move_tool',
|
||||
category: 'navigate',
|
||||
center_windows: ['preview', 'timeline'],
|
||||
keybind: new Keybind({key: 52}),
|
||||
condition: () => Format.animation_mode,
|
||||
onSelect: () => {
|
||||
Animator.join()
|
||||
},
|
||||
onUnselect: () => {
|
||||
Animator.leave()
|
||||
}
|
||||
})
|
||||
//Update to 3.2.0
|
||||
if (Modes.options.animate.keybind.key == 51) {
|
||||
Modes.options.animate.keybind.set({key: 52})
|
||||
}
|
||||
})
|
@ -407,8 +407,8 @@ class Group extends OutlinerElement {
|
||||
}},
|
||||
*/
|
||||
'rename',
|
||||
{icon: 'sort_by_alpha', name: 'menu.group.sort', click: function(group) {group.sortContent()}},
|
||||
{icon: 'fa-leaf', name: 'menu.group.resolve', click: function(group) {
|
||||
{icon: 'sort_by_alpha', name: 'menu.group.sort', condition: {modes: ['edit']}, click: function(group) {group.sortContent()}},
|
||||
{icon: 'fa-leaf', name: 'menu.group.resolve', condition: {modes: ['edit']}, click: function(group) {
|
||||
Undo.initEdit({outliner: true})
|
||||
group.resolve()
|
||||
Undo.finishEdit('group resolve')
|
||||
|
@ -502,6 +502,8 @@ class NonGroup extends OutlinerElement {
|
||||
break;
|
||||
}
|
||||
}
|
||||
NonGroup.selected = selected;
|
||||
NonGroup.all = elements;
|
||||
|
||||
Array.prototype.findRecursive = function(key1, val) {
|
||||
var i = 0
|
||||
|
@ -553,7 +553,9 @@ class Preview {
|
||||
if (this.static_rclick && (event.which === 3 || (event.type == 'touchend' && this.rclick_cooldown == true))) {
|
||||
var data = this.raycast(event)
|
||||
if (Toolbox.selected.selectCubes && Modes.selected.selectCubes && data && data.cube) {
|
||||
data.cube.showContextMenu(event)
|
||||
if (!Modes.animate) {
|
||||
data.cube.showContextMenu(event)
|
||||
}
|
||||
} else {
|
||||
this.menu.open(event, this)
|
||||
}
|
||||
@ -1586,7 +1588,7 @@ function buildGrid() {
|
||||
x: side_grid,
|
||||
z: side_grid.clone()
|
||||
}
|
||||
scene.add(Canvas.side_grids.x)
|
||||
three_grid.add(Canvas.side_grids.x)
|
||||
Canvas.side_grids.x.name = 'side_grid_x'
|
||||
Canvas.side_grids.x.visible = !Modes.display;
|
||||
Canvas.side_grids.x.rotation.z = Math.PI/2;
|
||||
@ -1595,7 +1597,7 @@ function buildGrid() {
|
||||
el.layers.set(1)
|
||||
});
|
||||
|
||||
scene.add(Canvas.side_grids.z)
|
||||
three_grid.add(Canvas.side_grids.z)
|
||||
Canvas.side_grids.z.name = 'side_grid_z'
|
||||
Canvas.side_grids.z.visible = !Modes.display;
|
||||
Canvas.side_grids.z.rotation.z = Math.PI/2;
|
||||
|
@ -923,21 +923,6 @@
|
||||
Transformer.rotation_ref = space.mesh;
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
/* else if (Group.selected && !Blockbench.globalMovement) {
|
||||
Transformer.rotation_ref = rotation_object.mesh;
|
||||
|
||||
} else if (Group.selected && Blockbench.globalMovement && Group.selected.parent && Format.bone_rig) {
|
||||
Transformer.rotation_ref = Group.selected.parent.mesh;
|
||||
|
||||
} else if (!Blockbench.globalMovement && Cube.selected[0] && Cube.selected[0].mesh) {
|
||||
Transformer.rotation_ref = Cube.selected[0].mesh;
|
||||
|
||||
} else if (!Blockbench.globalMovement && Locator.selected[0]) {
|
||||
Transformer.rotation_ref = Locator.selected[0].parent.mesh;
|
||||
}*/
|
||||
}
|
||||
|
||||
} else if (Modes.display) {
|
||||
@ -964,9 +949,10 @@
|
||||
Group.selected.mesh.getWorldPosition(this.position);
|
||||
if (Toolbox.selected.id == 'resize_tool') {
|
||||
Transformer.rotation_ref = Group.selected.mesh;
|
||||
} else if (!Toolbox.selected.id == 'move_tool' || !Group.selected.ik_enabled) {
|
||||
} else {
|
||||
Transformer.rotation_ref = Group.selected.mesh.parent;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
function displayDistance(number) {
|
||||
|
@ -373,7 +373,6 @@ const Painter = {
|
||||
var a = b_opacity * opacity;
|
||||
var before = Painter.getAlphaMatrix(texture, px, py)
|
||||
Painter.setAlphaMatrix(texture, px, py, a);
|
||||
//if (before) a = Math.clamp(a-before, 0, 1);
|
||||
if (a > before) {
|
||||
a = (a - before) / (1 - before);
|
||||
} else if (before) {
|
||||
@ -385,15 +384,12 @@ const Painter = {
|
||||
})
|
||||
} else if (tool === 'eraser') {
|
||||
Painter.editCircle(ctx, x, y, size, softness, function(pxcolor, opacity) {
|
||||
if (!Painter.lock_alpha) {
|
||||
var a = b_opacity;
|
||||
return {
|
||||
r: pxcolor.r,
|
||||
g: pxcolor.g,
|
||||
b: pxcolor.b,
|
||||
a: pxcolor.a*(1-a)
|
||||
};
|
||||
}
|
||||
return {
|
||||
r: pxcolor.r,
|
||||
g: pxcolor.g,
|
||||
b: pxcolor.b,
|
||||
a: Painter.lock_alpha ? pxcolor.a : (pxcolor.a*(1-b_opacity))
|
||||
};
|
||||
})
|
||||
}
|
||||
ctx.restore();
|
||||
@ -626,6 +622,7 @@ const Painter = {
|
||||
} else {
|
||||
for (var cube2 of Cube.all) {
|
||||
if (
|
||||
cube.inflate === cube2.inflate &&
|
||||
cube.from[2] === cube2.from[2] && cube.to[2] === cube2.to[2] &&
|
||||
cube.from[1] === cube2.from[1] && cube.to[1] === cube2.to[1] &&
|
||||
cube.size(0) === cube2.size(0) && cube.to[0]-center === center-cube2.from[0]
|
||||
@ -703,7 +700,7 @@ const Painter = {
|
||||
},
|
||||
editCircle(ctx, x, y, r, s, editPx) {
|
||||
r = Math.round(r+1)/2
|
||||
Painter.scanCanvas(ctx, x-r-2, y-r-2, 2*r+4, 2*r+4, function (px, py, pixel) {
|
||||
Painter.scanCanvas(ctx, x-Math.ceil(r)-2, y-Math.ceil(r)-2, 2*r+3, 2*r+3, function (px, py, pixel) {
|
||||
if (
|
||||
settings.paint_side_restrict.value &&
|
||||
Painter.editing_area &&
|
||||
@ -718,8 +715,8 @@ const Painter = {
|
||||
return;
|
||||
}
|
||||
|
||||
px -= x;
|
||||
py -= y;
|
||||
px -= x - r%1;
|
||||
py -= y - r%1;
|
||||
|
||||
var distance = Math.sqrt(px*px + py*py)
|
||||
if (s*r != 0) {
|
||||
|
@ -296,10 +296,7 @@ class Texture {
|
||||
this.startWatcher()
|
||||
Painter.current = {}
|
||||
|
||||
if (!isApp && Project.dataURLTextures) {
|
||||
this.loadEmpty()
|
||||
|
||||
} else if (EditSession.active) {
|
||||
if (EditSession.active) {
|
||||
this.load(() => {
|
||||
var before = {textures: {}}
|
||||
before.textures[scope.uuid] = true;
|
||||
@ -362,6 +359,7 @@ class Texture {
|
||||
return this;
|
||||
}
|
||||
updateSource(dataUrl) {
|
||||
// Update the source, only used when source is secure + base64
|
||||
if (!dataUrl) dataUrl = this.source;
|
||||
this.source = dataUrl;
|
||||
this.img.src = dataUrl;
|
||||
@ -440,8 +438,7 @@ class Texture {
|
||||
tex_version++;
|
||||
}
|
||||
this.source = this.source.replace(/\?\d+$/, '?' + tex_version)
|
||||
this.img.src = this.source;
|
||||
this.updateMaterial();
|
||||
this.load();
|
||||
TickUpdates.main_uv = true;
|
||||
TickUpdates.texture_list = true;
|
||||
}
|
||||
@ -803,7 +800,7 @@ class Texture {
|
||||
var image = nativeImage.createFromDataURL(scope.source).toPNG()
|
||||
}
|
||||
tex_version++;
|
||||
if (!as && this.path && this.path.substr(1,1) === ':') {
|
||||
if (!as && this.path && this.path.substr(1,1) === ':' && fs.existsSync(this.path)) {
|
||||
fs.writeFile(this.path, image, function (err) {
|
||||
scope.fromPath(scope.path)
|
||||
})
|
||||
|
@ -45,8 +45,7 @@ function getSelectionCenter() {
|
||||
var center = [0, 0, 0]
|
||||
var i = 0;
|
||||
selected.forEach(obj => {
|
||||
var m = obj.mesh
|
||||
if (m) {
|
||||
if (obj.getWorldCenter) {
|
||||
var pos = obj.getWorldCenter();
|
||||
center[0] += pos.x
|
||||
center[1] += pos.y
|
||||
@ -1316,34 +1315,37 @@ BARS.defineActions(function() {
|
||||
new Action('toggle_visibility', {
|
||||
icon: 'visibility',
|
||||
category: 'transform',
|
||||
condition: {modes: ['edit']},
|
||||
click: function () {toggleCubeProperty('visibility')}
|
||||
})
|
||||
new Action('toggle_export', {
|
||||
icon: 'save',
|
||||
category: 'transform',
|
||||
condition: {modes: ['edit']},
|
||||
click: function () {toggleCubeProperty('export')}
|
||||
})
|
||||
new Action('toggle_autouv', {
|
||||
icon: 'fullscreen_exit',
|
||||
category: 'transform',
|
||||
condition: {modes: ['edit']},
|
||||
click: function () {toggleCubeProperty('autouv')}
|
||||
})
|
||||
new Action('toggle_shade', {
|
||||
icon: 'wb_sunny',
|
||||
category: 'transform',
|
||||
condition: () => !Project.box_uv,
|
||||
condition: () => !Project.box_uv && Modes.edit,
|
||||
click: function () {toggleCubeProperty('shade')}
|
||||
})
|
||||
new Action('toggle_mirror_uv', {
|
||||
icon: 'icon-mirror_x',
|
||||
category: 'transform',
|
||||
condition: () => Project.box_uv,
|
||||
condition: () => Project.box_uv && Modes.edit,
|
||||
click: function () {toggleCubeProperty('shade')}
|
||||
})
|
||||
new Action('update_autouv', {
|
||||
icon: 'brightness_auto',
|
||||
category: 'transform',
|
||||
condition: () => !Project.box_uv,
|
||||
condition: () => !Project.box_uv && Modes.edit,
|
||||
click: function () {
|
||||
if (Cube.selected.length) {
|
||||
Undo.initEdit({elements: Cube.selected[0].forSelected(), selection: true})
|
||||
@ -1357,6 +1359,7 @@ BARS.defineActions(function() {
|
||||
new Action('origin_to_geometry', {
|
||||
icon: 'filter_center_focus',
|
||||
category: 'transform',
|
||||
condition: {modes: ['edit']},
|
||||
click: function () {origin2geometry()}
|
||||
})
|
||||
new Action('rescale_toggle', {
|
||||
|
144
lang/de.json
144
lang/de.json
@ -1013,79 +1013,79 @@
|
||||
"menu.help.about": "Über...",
|
||||
"menu.preview.background.clipboard": "Aus Zwischenablage laden",
|
||||
"dialog.ignore": "Ignorieren",
|
||||
"generic.unset": "Unset",
|
||||
"message.invalid_builtin_parent.title": "Invalid Built-in Parent",
|
||||
"message.invalid_builtin_parent.message": "The link to the invalid parent model '%0' was removed in order to export a valid model.",
|
||||
"dialog.resize_texture.fill": "Fill with",
|
||||
"dialog.resize_texture.fill.transparent": "Transparent",
|
||||
"dialog.resize_texture.fill.color": "Color",
|
||||
"dialog.resize_texture.fill.repeat": "Repeat",
|
||||
"dialog.resize_texture.fill.stretch": "Stretch",
|
||||
"dialog.scale.element_pivot": "Element Pivot",
|
||||
"dialog.scale.selection_center": "Selection Center",
|
||||
"dialog.create_gif.length_mode": "Length Mode",
|
||||
"dialog.create_gif.length_mode.seconds": "Seconds",
|
||||
"generic.unset": "(Keine)",
|
||||
"message.invalid_builtin_parent.title": "Ungültiges Elternmodell",
|
||||
"message.invalid_builtin_parent.message": "Die Referenz auf das ungültige Elternmodell '%0' wurde entfernt, um ein funktionierendes Modell zu speichern.",
|
||||
"dialog.resize_texture.fill": "Füllen mit",
|
||||
"dialog.resize_texture.fill.transparent": "Transparenz",
|
||||
"dialog.resize_texture.fill.color": "Farbe",
|
||||
"dialog.resize_texture.fill.repeat": "Wiederholen",
|
||||
"dialog.resize_texture.fill.stretch": "Ausdehnen",
|
||||
"dialog.scale.element_pivot": "Angelpunkt",
|
||||
"dialog.scale.selection_center": "Mittelpunkt der Auswahl",
|
||||
"dialog.create_gif.length_mode": "Längenmodus",
|
||||
"dialog.create_gif.length_mode.seconds": "Sekunden",
|
||||
"dialog.create_gif.length_mode.frames": "Frames",
|
||||
"dialog.create_gif.length_mode.animation": "Animation Length",
|
||||
"dialog.create_gif.length_mode.turntable": "Turntable Rotation",
|
||||
"dialog.save_angle.projection": "Projection",
|
||||
"dialog.save_angle.projection.perspective": "Perspective",
|
||||
"dialog.save_angle.projection.orthographic": "Orthographic",
|
||||
"dialog.sketchfab_uploader.animations": "Animations",
|
||||
"dialog.settings.theme": "Theme",
|
||||
"settings.category.interface": "Interface",
|
||||
"settings.preview_checkerboard": "Preview Checkerboard",
|
||||
"settings.preview_checkerboard.desc": "Toggle the checkerboard background behind the preview",
|
||||
"settings.uv_checkerboard": "UV Editor Checkerboard",
|
||||
"settings.uv_checkerboard.desc": "Toggle the checkerboard background behind the UV editor",
|
||||
"category.paint": "Paint",
|
||||
"action.fill_mode.color_connected": "Connected Colors",
|
||||
"action.draw_shape_type": "Shape Type",
|
||||
"action.draw_shape_type.rectangle": "Rectangle",
|
||||
"action.draw_shape_type.rectangle_h": "Rectangle (Hollow)",
|
||||
"dialog.create_gif.length_mode.animation": "Animationslänge",
|
||||
"dialog.create_gif.length_mode.turntable": "Umdrehung",
|
||||
"dialog.save_angle.projection": "Projektion",
|
||||
"dialog.save_angle.projection.perspective": "Perspektivisch",
|
||||
"dialog.save_angle.projection.orthographic": "Parallel",
|
||||
"dialog.sketchfab_uploader.animations": "Animationen",
|
||||
"dialog.settings.theme": "Farbschema",
|
||||
"settings.category.interface": "Benutzeroberfläche",
|
||||
"settings.preview_checkerboard": "Vorschau Schachbrettmuster",
|
||||
"settings.preview_checkerboard.desc": "Aktiviert das Schachbrettmuster hinter der 3D Vorschau",
|
||||
"settings.uv_checkerboard": "UV Fenster Schachbrettmuster",
|
||||
"settings.uv_checkerboard.desc": "Aktiviert das Schachbrettmuster hinter dem UV Fenster",
|
||||
"category.paint": "Malen",
|
||||
"action.fill_mode.color_connected": "Verbundene Farben",
|
||||
"action.draw_shape_type": "Form",
|
||||
"action.draw_shape_type.rectangle": "Rechteck",
|
||||
"action.draw_shape_type.rectangle_h": "Rechteck (Hohl)",
|
||||
"action.draw_shape_type.ellipse": "Ellipse",
|
||||
"action.draw_shape_type.ellipse_h": "Ellipse (Hollow)",
|
||||
"action.draw_shape_type.line": "Line",
|
||||
"action.mirror_painting": "Mirror Painting",
|
||||
"action.mirror_painting.description": "Mirror your paint strokes to the other side of the model",
|
||||
"action.lock_alpha": "Lock Alpha Channel",
|
||||
"action.lock_alpha.description": "Lock the transparency of all pixels",
|
||||
"action.draw_shape_tool": "Draw Shape",
|
||||
"action.draw_shape_tool.desc": "Tool to draw simple shapes on textures",
|
||||
"action.copy_paste_tool": "Copy Paste Tool",
|
||||
"action.copy_paste_tool.desc": "Tool to copy and paste selections of textures",
|
||||
"action.export_gltf": "Export As glTF",
|
||||
"action.export_gltf.desc": "Export model and animations as glTF file to use in other 3D applications",
|
||||
"action.transform_space": "Transform Space",
|
||||
"action.transform_space.desc": "Default transform space for elements and bones",
|
||||
"action.draw_shape_type.ellipse_h": "Ellipse (Hohl)",
|
||||
"action.draw_shape_type.line": "Linie",
|
||||
"action.mirror_painting": "Gespiegelt Malen",
|
||||
"action.mirror_painting.description": "Spiegelt alle Pinselstriche auf die andere Seite des Modells",
|
||||
"action.lock_alpha": "Transparenzkanal sperren",
|
||||
"action.lock_alpha.description": "Sperrt die Transparenz aller Pixel",
|
||||
"action.draw_shape_tool": "Form zeichnen",
|
||||
"action.draw_shape_tool.desc": "Werkzeug zum Zeichnen einfacher Formen",
|
||||
"action.copy_paste_tool": "Kopierwerkzeug",
|
||||
"action.copy_paste_tool.desc": "Werkzeug zum Kopieren und verschieben von Ausschnitten aus Texturen",
|
||||
"action.export_gltf": "Als glTF exportieren",
|
||||
"action.export_gltf.desc": "Exportiert das Modell und die Animationen als glTF Datei, zur Weiterverwendung in anderen 3D Programmen",
|
||||
"action.transform_space": "Transformationsraum",
|
||||
"action.transform_space.desc": "Raum, in dem Elemente bewegt werden",
|
||||
"action.transform_space.global": "Global",
|
||||
"action.transform_space.bone": "Bone",
|
||||
"action.transform_space.local": "Local",
|
||||
"action.toggle_camera_projection": "Toggle Camera Projection",
|
||||
"action.toggle_camera_projection.desc": "Toggle the camera projection between perspective and orthographic",
|
||||
"action.load_camera_angle": "Camera Angle: %0",
|
||||
"action.load_camera_angle.desc": "Load the camera angle '%0'",
|
||||
"action.slider_face_tint": "Tint Index",
|
||||
"action.slider_face_tint.desc": "Set the tint index of the current face. -1 means unset.",
|
||||
"menu.help.quickstart": "Quickstart Wizard",
|
||||
"menu.help.developer": "Developer",
|
||||
"menu.help.developer.dev_tools": "Open Dev Tools",
|
||||
"menu.help.developer.reset_storage": "Factory Reset",
|
||||
"menu.help.developer.reset_storage.confirm": "Are you sure you want to reset Blockbench to factory settings? This will delete all custom settings, keybindings and installed plugins.",
|
||||
"menu.help.developer.cache_reload": "Cache Reload",
|
||||
"menu.texture.resize": "Resize...",
|
||||
"menu.preview.orthographic": "Orthographic",
|
||||
"menu.preview.save_angle": "Save Angle...",
|
||||
"menu.preview.angle": "Angles",
|
||||
"menu.preview.angle.initial": "Initial Angle",
|
||||
"menu.preview.angle.load": "Load",
|
||||
"menu.preview.maximize": "Maximize",
|
||||
"panel.color.both": "Both",
|
||||
"uv_editor.copy_selection": "Copy Selection",
|
||||
"uv_editor.paste_selection": "Paste Selection",
|
||||
"uv_editor.copy_paste_tool.place": "Place",
|
||||
"uv_editor.copy_paste_tool.cut": "Cut",
|
||||
"uv_editor.copy_paste_tool.mirror_x": "Mirror X",
|
||||
"uv_editor.copy_paste_tool.mirror_y": "Mirror Y",
|
||||
"uv_editor.copy_paste_tool.rotate": "Rotate 90 Degrees"
|
||||
"action.transform_space.bone": "Knochen",
|
||||
"action.transform_space.local": "Lokal",
|
||||
"action.toggle_camera_projection": "Kameraprojektion Umschalten",
|
||||
"action.toggle_camera_projection.desc": "Schaltet die Kameraprojektion zwischen perspektivisch und parallel um",
|
||||
"action.load_camera_angle": "Kamerablickwinkel: %s",
|
||||
"action.load_camera_angle.desc": "Den Kamerablickwinkel '%0' laden",
|
||||
"action.slider_face_tint": "Färbungsindex",
|
||||
"action.slider_face_tint.desc": "Legt den Färbungsindex für die ausgewählten Flächen fest. -1 entspricht keiner Färbung.",
|
||||
"menu.help.quickstart": "Schnellstartassistent",
|
||||
"menu.help.developer": "Entwickler",
|
||||
"menu.help.developer.dev_tools": "Entwicklerwerkzeuge öffnen",
|
||||
"menu.help.developer.reset_storage": "Auf Werkseinstellungen zurücksetzen",
|
||||
"menu.help.developer.reset_storage.confirm": "Bist du dir sicher, dass du Blockbench auf Werkseinstellungen zurücksetzen möchtest? Der Vorgang wird alle Benutzereinstellungen und Plugins zurücksetzen.",
|
||||
"menu.help.developer.cache_reload": "Cache neu laden",
|
||||
"menu.texture.resize": "Größe ändern",
|
||||
"menu.preview.orthographic": "Parallel",
|
||||
"menu.preview.save_angle": "Blickwinkel speichern...",
|
||||
"menu.preview.angle": "Blickwinkel",
|
||||
"menu.preview.angle.initial": "Standardblickwinkel",
|
||||
"menu.preview.angle.load": "Laden",
|
||||
"menu.preview.maximize": "Maximieren",
|
||||
"panel.color.both": "Beides",
|
||||
"uv_editor.copy_selection": "Auswahl Kopieren",
|
||||
"uv_editor.paste_selection": "Auswahl einfügen",
|
||||
"uv_editor.copy_paste_tool.place": "Platzieren",
|
||||
"uv_editor.copy_paste_tool.cut": "Ausschneiden",
|
||||
"uv_editor.copy_paste_tool.mirror_x": "Spiegeln (X)",
|
||||
"uv_editor.copy_paste_tool.mirror_y": "Spiegeln (Y)",
|
||||
"uv_editor.copy_paste_tool.rotate": "Um 90 Grad drehen"
|
||||
}
|
@ -228,7 +228,7 @@
|
||||
"dialog.project.title": "Project",
|
||||
"dialog.project.name": "File Name",
|
||||
"dialog.project.parent": "Parent Model",
|
||||
"dialog.project.geoname": "Mob Geometry Name",
|
||||
"dialog.project.geoname": "Model Identifier",
|
||||
"dialog.project.openparent": "Open Parent",
|
||||
"dialog.project.ao": "Ambient Occlusion",
|
||||
"dialog.project.box_uv": "Box UV",
|
||||
|
144
lang/es.json
144
lang/es.json
@ -1012,80 +1012,80 @@
|
||||
"menu.help.donate": "Donar",
|
||||
"menu.help.about": "Acerca de...",
|
||||
"menu.preview.background.clipboard": "Cargar desde Portapapeles",
|
||||
"dialog.ignore": "Ignore",
|
||||
"generic.unset": "Unset",
|
||||
"message.invalid_builtin_parent.title": "Invalid Built-in Parent",
|
||||
"message.invalid_builtin_parent.message": "The link to the invalid parent model '%0' was removed in order to export a valid model.",
|
||||
"dialog.resize_texture.fill": "Fill with",
|
||||
"dialog.resize_texture.fill.transparent": "Transparent",
|
||||
"dialog.ignore": "Ignorar",
|
||||
"generic.unset": "Desajustar",
|
||||
"message.invalid_builtin_parent.title": "Padre Incorporado Inválido",
|
||||
"message.invalid_builtin_parent.message": "El enlace al modelo inválido padre '%0' fue quitado para exportar un modelo válido.",
|
||||
"dialog.resize_texture.fill": "Rellenar con",
|
||||
"dialog.resize_texture.fill.transparent": "Transparente",
|
||||
"dialog.resize_texture.fill.color": "Color",
|
||||
"dialog.resize_texture.fill.repeat": "Repeat",
|
||||
"dialog.resize_texture.fill.stretch": "Stretch",
|
||||
"dialog.scale.element_pivot": "Element Pivot",
|
||||
"dialog.scale.selection_center": "Selection Center",
|
||||
"dialog.create_gif.length_mode": "Length Mode",
|
||||
"dialog.create_gif.length_mode.seconds": "Seconds",
|
||||
"dialog.resize_texture.fill.repeat": "Repetir",
|
||||
"dialog.resize_texture.fill.stretch": "Estirar",
|
||||
"dialog.scale.element_pivot": "Pivote de Elemento",
|
||||
"dialog.scale.selection_center": "Centro de Selección",
|
||||
"dialog.create_gif.length_mode": "Modo de Longitud",
|
||||
"dialog.create_gif.length_mode.seconds": "Segundos",
|
||||
"dialog.create_gif.length_mode.frames": "Frames",
|
||||
"dialog.create_gif.length_mode.animation": "Animation Length",
|
||||
"dialog.create_gif.length_mode.turntable": "Turntable Rotation",
|
||||
"dialog.save_angle.projection": "Projection",
|
||||
"dialog.save_angle.projection.perspective": "Perspective",
|
||||
"dialog.save_angle.projection.orthographic": "Orthographic",
|
||||
"dialog.sketchfab_uploader.animations": "Animations",
|
||||
"dialog.settings.theme": "Theme",
|
||||
"settings.category.interface": "Interface",
|
||||
"settings.preview_checkerboard": "Preview Checkerboard",
|
||||
"settings.preview_checkerboard.desc": "Toggle the checkerboard background behind the preview",
|
||||
"settings.uv_checkerboard": "UV Editor Checkerboard",
|
||||
"settings.uv_checkerboard.desc": "Toggle the checkerboard background behind the UV editor",
|
||||
"category.paint": "Paint",
|
||||
"action.fill_mode.color_connected": "Connected Colors",
|
||||
"action.draw_shape_type": "Shape Type",
|
||||
"action.draw_shape_type.rectangle": "Rectangle",
|
||||
"action.draw_shape_type.rectangle_h": "Rectangle (Hollow)",
|
||||
"action.draw_shape_type.ellipse": "Ellipse",
|
||||
"action.draw_shape_type.ellipse_h": "Ellipse (Hollow)",
|
||||
"action.draw_shape_type.line": "Line",
|
||||
"action.mirror_painting": "Mirror Painting",
|
||||
"action.mirror_painting.description": "Mirror your paint strokes to the other side of the model",
|
||||
"action.lock_alpha": "Lock Alpha Channel",
|
||||
"action.lock_alpha.description": "Lock the transparency of all pixels",
|
||||
"action.draw_shape_tool": "Draw Shape",
|
||||
"action.draw_shape_tool.desc": "Tool to draw simple shapes on textures",
|
||||
"action.copy_paste_tool": "Copy Paste Tool",
|
||||
"action.copy_paste_tool.desc": "Tool to copy and paste selections of textures",
|
||||
"action.export_gltf": "Export As glTF",
|
||||
"action.export_gltf.desc": "Export model and animations as glTF file to use in other 3D applications",
|
||||
"action.transform_space": "Transform Space",
|
||||
"action.transform_space.desc": "Default transform space for elements and bones",
|
||||
"dialog.create_gif.length_mode.animation": "Longitud de Animación",
|
||||
"dialog.create_gif.length_mode.turntable": "Rotación de Bombero",
|
||||
"dialog.save_angle.projection": "Proyección",
|
||||
"dialog.save_angle.projection.perspective": "Perspectiva",
|
||||
"dialog.save_angle.projection.orthographic": "Ortogonal",
|
||||
"dialog.sketchfab_uploader.animations": "Animaciones",
|
||||
"dialog.settings.theme": "Tema",
|
||||
"settings.category.interface": "Interfaz",
|
||||
"settings.preview_checkerboard": "Previsualizar Cuadrícula",
|
||||
"settings.preview_checkerboard.desc": "Cambia el fondo de la cuadrícula detrás de la previsualización",
|
||||
"settings.uv_checkerboard": "Cuadrícula del Editor de UV",
|
||||
"settings.uv_checkerboard.desc": "Cambia el fondo de la cuadrícula detrás del editor de UV",
|
||||
"category.paint": "Pintar",
|
||||
"action.fill_mode.color_connected": "Colores Conectados",
|
||||
"action.draw_shape_type": "Tipo de Forma",
|
||||
"action.draw_shape_type.rectangle": "Rectángulo",
|
||||
"action.draw_shape_type.rectangle_h": "Rectángulo (Hueco)",
|
||||
"action.draw_shape_type.ellipse": "Elipse",
|
||||
"action.draw_shape_type.ellipse_h": "Elipse (Hueca)",
|
||||
"action.draw_shape_type.line": "Línea",
|
||||
"action.mirror_painting": "Invertir Pintura",
|
||||
"action.mirror_painting.description": "Invierte tus trazos de pintura al otro lado del moedlo",
|
||||
"action.lock_alpha": "Bloquear Canal Alfa",
|
||||
"action.lock_alpha.description": "Bloquea la transparencia de todos los píxeles",
|
||||
"action.draw_shape_tool": "Dibujar Figura",
|
||||
"action.draw_shape_tool.desc": "Herramienta para dibujar figuras simples en texturas",
|
||||
"action.copy_paste_tool": "Herramienta de Copiar y Pega",
|
||||
"action.copy_paste_tool.desc": "Herramienta para copiar y pegar selecciones de texturas",
|
||||
"action.export_gltf": "Exportar como gITF",
|
||||
"action.export_gltf.desc": "Exporta el modelo y las animaciones como un archivo gITF para usarlo en otras aplicaciones 3D",
|
||||
"action.transform_space": "Transformar Espacio",
|
||||
"action.transform_space.desc": "Espacio de transformación por defecto para elementos y huesos",
|
||||
"action.transform_space.global": "Global",
|
||||
"action.transform_space.bone": "Bone",
|
||||
"action.transform_space.bone": "Hueso",
|
||||
"action.transform_space.local": "Local",
|
||||
"action.toggle_camera_projection": "Toggle Camera Projection",
|
||||
"action.toggle_camera_projection.desc": "Toggle the camera projection between perspective and orthographic",
|
||||
"action.load_camera_angle": "Camera Angle: %0",
|
||||
"action.load_camera_angle.desc": "Load the camera angle '%0'",
|
||||
"action.slider_face_tint": "Tint Index",
|
||||
"action.slider_face_tint.desc": "Set the tint index of the current face. -1 means unset.",
|
||||
"menu.help.quickstart": "Quickstart Wizard",
|
||||
"menu.help.developer": "Developer",
|
||||
"menu.help.developer.dev_tools": "Open Dev Tools",
|
||||
"menu.help.developer.reset_storage": "Factory Reset",
|
||||
"menu.help.developer.reset_storage.confirm": "Are you sure you want to reset Blockbench to factory settings? This will delete all custom settings, keybindings and installed plugins.",
|
||||
"menu.help.developer.cache_reload": "Cache Reload",
|
||||
"menu.texture.resize": "Resize...",
|
||||
"menu.preview.orthographic": "Orthographic",
|
||||
"menu.preview.save_angle": "Save Angle...",
|
||||
"menu.preview.angle": "Angles",
|
||||
"menu.preview.angle.initial": "Initial Angle",
|
||||
"menu.preview.angle.load": "Load",
|
||||
"menu.preview.maximize": "Maximize",
|
||||
"panel.color.both": "Both",
|
||||
"uv_editor.copy_selection": "Copy Selection",
|
||||
"uv_editor.paste_selection": "Paste Selection",
|
||||
"uv_editor.copy_paste_tool.place": "Place",
|
||||
"uv_editor.copy_paste_tool.cut": "Cut",
|
||||
"uv_editor.copy_paste_tool.mirror_x": "Mirror X",
|
||||
"uv_editor.copy_paste_tool.mirror_y": "Mirror Y",
|
||||
"uv_editor.copy_paste_tool.rotate": "Rotate 90 Degrees"
|
||||
"action.toggle_camera_projection": "Cambiar Cámara de Proyección",
|
||||
"action.toggle_camera_projection.desc": "Cambia la cámara de proyección entre perspectiva y ortogonal",
|
||||
"action.load_camera_angle": "Ángulo de Cámara: %0",
|
||||
"action.load_camera_angle.desc": "Cargar el ángulo de cámara: '%0'",
|
||||
"action.slider_face_tint": "Índice de Tintado",
|
||||
"action.slider_face_tint.desc": "Ajusta el índice de tintado de la cara actual. -1 significa sin ajustar.",
|
||||
"menu.help.quickstart": "Asistente de Inicio Rápido",
|
||||
"menu.help.developer": "Desarrollador",
|
||||
"menu.help.developer.dev_tools": "Abre las Herramientas de Desarrollador",
|
||||
"menu.help.developer.reset_storage": "Reinicio de Fábrica",
|
||||
"menu.help.developer.reset_storage.confirm": "¿Seguro que quieres reiniciar Blockbench a los ajustes de fábrica? Esto borrará todos los ajustes personalizados, las teclas asignadas y los plugins instalados.",
|
||||
"menu.help.developer.cache_reload": "Recargar Caché",
|
||||
"menu.texture.resize": "Redimensionar...",
|
||||
"menu.preview.orthographic": "Ortogonal",
|
||||
"menu.preview.save_angle": "Guardar Ángulo...",
|
||||
"menu.preview.angle": "Ángulos",
|
||||
"menu.preview.angle.initial": "Ángulo inicial",
|
||||
"menu.preview.angle.load": "Cargar",
|
||||
"menu.preview.maximize": "Maximizar",
|
||||
"panel.color.both": "Ambos",
|
||||
"uv_editor.copy_selection": "Copiar selección",
|
||||
"uv_editor.paste_selection": "Pegar selección",
|
||||
"uv_editor.copy_paste_tool.place": "Lugar",
|
||||
"uv_editor.copy_paste_tool.cut": "Cortar",
|
||||
"uv_editor.copy_paste_tool.mirror_x": "Invertir X",
|
||||
"uv_editor.copy_paste_tool.mirror_y": "Invertir Y",
|
||||
"uv_editor.copy_paste_tool.rotate": "Rotar 90 Grados"
|
||||
}
|
132
lang/fr.json
132
lang/fr.json
@ -1012,80 +1012,80 @@
|
||||
"menu.help.donate": "Faire un dons",
|
||||
"menu.help.about": "A propos",
|
||||
"menu.preview.background.clipboard": "Charger depuis le presse-papier",
|
||||
"dialog.ignore": "Ignore",
|
||||
"generic.unset": "Unset",
|
||||
"message.invalid_builtin_parent.title": "Invalid Built-in Parent",
|
||||
"message.invalid_builtin_parent.message": "The link to the invalid parent model '%0' was removed in order to export a valid model.",
|
||||
"dialog.resize_texture.fill": "Fill with",
|
||||
"dialog.ignore": "Ignorer",
|
||||
"generic.unset": "Non défini",
|
||||
"message.invalid_builtin_parent.title": "Parent intégré invalide",
|
||||
"message.invalid_builtin_parent.message": "Le lien vers le modèle parent invalide '%0' a été retiré pour exporter un modèle valide.",
|
||||
"dialog.resize_texture.fill": "Remplir avec",
|
||||
"dialog.resize_texture.fill.transparent": "Transparent",
|
||||
"dialog.resize_texture.fill.color": "Color",
|
||||
"dialog.resize_texture.fill.repeat": "Repeat",
|
||||
"dialog.resize_texture.fill.stretch": "Stretch",
|
||||
"dialog.scale.element_pivot": "Element Pivot",
|
||||
"dialog.scale.selection_center": "Selection Center",
|
||||
"dialog.create_gif.length_mode": "Length Mode",
|
||||
"dialog.create_gif.length_mode.seconds": "Seconds",
|
||||
"dialog.create_gif.length_mode.frames": "Frames",
|
||||
"dialog.create_gif.length_mode.animation": "Animation Length",
|
||||
"dialog.create_gif.length_mode.turntable": "Turntable Rotation",
|
||||
"dialog.resize_texture.fill.color": "Couleur",
|
||||
"dialog.resize_texture.fill.repeat": "Répéter",
|
||||
"dialog.resize_texture.fill.stretch": "Étirer",
|
||||
"dialog.scale.element_pivot": "Pivot d'élément",
|
||||
"dialog.scale.selection_center": "Centre de la sélection",
|
||||
"dialog.create_gif.length_mode": "Mode Longueur",
|
||||
"dialog.create_gif.length_mode.seconds": "Secondes",
|
||||
"dialog.create_gif.length_mode.frames": "Images",
|
||||
"dialog.create_gif.length_mode.animation": "Longueur d'animation",
|
||||
"dialog.create_gif.length_mode.turntable": "Rotation platine",
|
||||
"dialog.save_angle.projection": "Projection",
|
||||
"dialog.save_angle.projection.perspective": "Perspective",
|
||||
"dialog.save_angle.projection.orthographic": "Orthographic",
|
||||
"dialog.save_angle.projection.orthographic": "Orthographique",
|
||||
"dialog.sketchfab_uploader.animations": "Animations",
|
||||
"dialog.settings.theme": "Theme",
|
||||
"dialog.settings.theme": "Thème",
|
||||
"settings.category.interface": "Interface",
|
||||
"settings.preview_checkerboard": "Preview Checkerboard",
|
||||
"settings.preview_checkerboard.desc": "Toggle the checkerboard background behind the preview",
|
||||
"settings.uv_checkerboard": "UV Editor Checkerboard",
|
||||
"settings.uv_checkerboard.desc": "Toggle the checkerboard background behind the UV editor",
|
||||
"category.paint": "Paint",
|
||||
"action.fill_mode.color_connected": "Connected Colors",
|
||||
"action.draw_shape_type": "Shape Type",
|
||||
"settings.preview_checkerboard": "Prévisualiser damier",
|
||||
"settings.preview_checkerboard.desc": "Basculer le damier d'arrière-plan de la prévisualisation",
|
||||
"settings.uv_checkerboard": "Damier de l'éditeur UV",
|
||||
"settings.uv_checkerboard.desc": "Basculer le damier d'arrière-plan de l'éditeur UV",
|
||||
"category.paint": "Peinture",
|
||||
"action.fill_mode.color_connected": "Couleurs connectées",
|
||||
"action.draw_shape_type": "Type d'ombre",
|
||||
"action.draw_shape_type.rectangle": "Rectangle",
|
||||
"action.draw_shape_type.rectangle_h": "Rectangle (Hollow)",
|
||||
"action.draw_shape_type.rectangle_h": "Rectangle (vide)",
|
||||
"action.draw_shape_type.ellipse": "Ellipse",
|
||||
"action.draw_shape_type.ellipse_h": "Ellipse (Hollow)",
|
||||
"action.draw_shape_type.line": "Line",
|
||||
"action.mirror_painting": "Mirror Painting",
|
||||
"action.mirror_painting.description": "Mirror your paint strokes to the other side of the model",
|
||||
"action.lock_alpha": "Lock Alpha Channel",
|
||||
"action.lock_alpha.description": "Lock the transparency of all pixels",
|
||||
"action.draw_shape_tool": "Draw Shape",
|
||||
"action.draw_shape_tool.desc": "Tool to draw simple shapes on textures",
|
||||
"action.copy_paste_tool": "Copy Paste Tool",
|
||||
"action.copy_paste_tool.desc": "Tool to copy and paste selections of textures",
|
||||
"action.export_gltf": "Export As glTF",
|
||||
"action.export_gltf.desc": "Export model and animations as glTF file to use in other 3D applications",
|
||||
"action.transform_space": "Transform Space",
|
||||
"action.transform_space.desc": "Default transform space for elements and bones",
|
||||
"action.draw_shape_type.ellipse_h": "Ellipse (vide)",
|
||||
"action.draw_shape_type.line": "Ligne",
|
||||
"action.mirror_painting": "Peinture en miroir",
|
||||
"action.mirror_painting.description": "Renverse vos traits de l'autre côté du modèle",
|
||||
"action.lock_alpha": "Verrouiller canal alpha",
|
||||
"action.lock_alpha.description": "Verrouiller la transparence de tous les pixels",
|
||||
"action.draw_shape_tool": "Dessiner forme",
|
||||
"action.draw_shape_tool.desc": "Outil de dessin d'ombres simples pour les textures",
|
||||
"action.copy_paste_tool": "Outil duplication",
|
||||
"action.copy_paste_tool.desc": "Outil pour copier et coller des sélections de textures",
|
||||
"action.export_gltf": "Exporter en tant que gITF",
|
||||
"action.export_gltf.desc": "Exporter le modèle et les animations en tant que fichier gITF compatible avec d'autres applications 3D",
|
||||
"action.transform_space": "Transformer espace",
|
||||
"action.transform_space.desc": "Transformation d'espace par défaut pour éléments et os",
|
||||
"action.transform_space.global": "Global",
|
||||
"action.transform_space.bone": "Bone",
|
||||
"action.transform_space.bone": "Os",
|
||||
"action.transform_space.local": "Local",
|
||||
"action.toggle_camera_projection": "Toggle Camera Projection",
|
||||
"action.toggle_camera_projection.desc": "Toggle the camera projection between perspective and orthographic",
|
||||
"action.load_camera_angle": "Camera Angle: %0",
|
||||
"action.load_camera_angle.desc": "Load the camera angle '%0'",
|
||||
"action.slider_face_tint": "Tint Index",
|
||||
"action.slider_face_tint.desc": "Set the tint index of the current face. -1 means unset.",
|
||||
"menu.help.quickstart": "Quickstart Wizard",
|
||||
"menu.help.developer": "Developer",
|
||||
"menu.help.developer.dev_tools": "Open Dev Tools",
|
||||
"menu.help.developer.reset_storage": "Factory Reset",
|
||||
"menu.help.developer.reset_storage.confirm": "Are you sure you want to reset Blockbench to factory settings? This will delete all custom settings, keybindings and installed plugins.",
|
||||
"menu.help.developer.cache_reload": "Cache Reload",
|
||||
"menu.texture.resize": "Resize...",
|
||||
"menu.preview.orthographic": "Orthographic",
|
||||
"menu.preview.save_angle": "Save Angle...",
|
||||
"action.toggle_camera_projection": "Basculer projection caméra",
|
||||
"action.toggle_camera_projection.desc": "Basculer la projection caméra entre perspective et orthographique",
|
||||
"action.load_camera_angle": "Angle de caméra : %0",
|
||||
"action.load_camera_angle.desc": "Charge l'angle de caméra '%0'",
|
||||
"action.slider_face_tint": "Index de teinte",
|
||||
"action.slider_face_tint.desc": "Définit l'index de teinte de la face actuelle. -1 indique qu'il n'est pas défini.",
|
||||
"menu.help.quickstart": "Wizard démarrage rapide",
|
||||
"menu.help.developer": "Développeur",
|
||||
"menu.help.developer.dev_tools": "Ouvrir outils développeur",
|
||||
"menu.help.developer.reset_storage": "Formatage d'usine",
|
||||
"menu.help.developer.reset_storage.confirm": "Voulez-vous vraiment réinitialiser Blockbench à ses paramètres d'usine ? Cela effacera tout paramètre personnalisé, raccourci et plugin installé.",
|
||||
"menu.help.developer.cache_reload": "Rechargement cache",
|
||||
"menu.texture.resize": "Redimentionner…",
|
||||
"menu.preview.orthographic": "Orthographique",
|
||||
"menu.preview.save_angle": "Sauvegarder angle…",
|
||||
"menu.preview.angle": "Angles",
|
||||
"menu.preview.angle.initial": "Initial Angle",
|
||||
"menu.preview.angle.load": "Load",
|
||||
"menu.preview.maximize": "Maximize",
|
||||
"panel.color.both": "Both",
|
||||
"uv_editor.copy_selection": "Copy Selection",
|
||||
"uv_editor.paste_selection": "Paste Selection",
|
||||
"uv_editor.copy_paste_tool.place": "Place",
|
||||
"uv_editor.copy_paste_tool.cut": "Cut",
|
||||
"uv_editor.copy_paste_tool.mirror_x": "Mirror X",
|
||||
"uv_editor.copy_paste_tool.mirror_y": "Mirror Y",
|
||||
"uv_editor.copy_paste_tool.rotate": "Rotate 90 Degrees"
|
||||
"menu.preview.angle.initial": "Angle initial",
|
||||
"menu.preview.angle.load": "Charger",
|
||||
"menu.preview.maximize": "Maximiser",
|
||||
"panel.color.both": "Les deux",
|
||||
"uv_editor.copy_selection": "Copier la sélection",
|
||||
"uv_editor.paste_selection": "Coller la sélection",
|
||||
"uv_editor.copy_paste_tool.place": "Placer",
|
||||
"uv_editor.copy_paste_tool.cut": "Couper",
|
||||
"uv_editor.copy_paste_tool.mirror_x": "Miroir X",
|
||||
"uv_editor.copy_paste_tool.mirror_y": "Miroir Y",
|
||||
"uv_editor.copy_paste_tool.rotate": "Rotation de 90 degrés"
|
||||
}
|
160
lang/ja.json
160
lang/ja.json
@ -669,7 +669,7 @@
|
||||
"panel.variable_placeholders.info": "プレビューする変数を 名前 = 値で表示する",
|
||||
"status_bar.vertex_distance": "間隔:%0",
|
||||
"dialog.create_gif.title": "GIF",
|
||||
"dialog.create_gif.length": "Length",
|
||||
"dialog.create_gif.length": "長さ",
|
||||
"dialog.create_gif.fps": "FPS",
|
||||
"dialog.create_gif.compression": "圧縮率",
|
||||
"dialog.create_gif.play": "アニメーションを再生",
|
||||
@ -979,8 +979,8 @@
|
||||
"timeline.timeline": "取扱説明書",
|
||||
"menu.palette.load": "パレットをロード",
|
||||
"menu.palette.load.default": "デフォルト",
|
||||
"panel.color.picker": "スポイト",
|
||||
"panel.color.palette": "パレット",
|
||||
"panel.color.picker": "Picker",
|
||||
"panel.color.palette": "Palette",
|
||||
"generic.import": "インポート",
|
||||
"settings.brush_modifier.none": "なし",
|
||||
"action.export_entity": "統合版Entityをエクスポート",
|
||||
@ -991,101 +991,101 @@
|
||||
"action.add_marker.desc": "タイムラインマーカーを設定します",
|
||||
"timeline.pre_effect_script": "Script",
|
||||
"format.skin": "Skin",
|
||||
"format.skin.desc": "Edit player and entity skins",
|
||||
"message.sketchfab.setup_guide": "Want to learn how to set up models in Sketchfab? Read %0",
|
||||
"dialog.skin.title": "Create Skin",
|
||||
"dialog.skin.model": "Skin",
|
||||
"dialog.skin.texture": "Texture (Optional)",
|
||||
"action.toggle_skin_layer": "Toggle Skin Layer",
|
||||
"action.toggle_skin_layer.desc": "Toggle the hat and clothing layer of the skin model",
|
||||
"action.gui_light": "GUI Light",
|
||||
"action.gui_light.desc": "Select the way the item is lit in the inventory",
|
||||
"action.gui_light.side": "Side Light",
|
||||
"action.gui_light.front": "Front Light",
|
||||
"action.move_keyframe_back": "Move Keyframes Back",
|
||||
"action.move_keyframe_forth": "Move Keyframes Forth",
|
||||
"format.skin.desc": "スキンを編集",
|
||||
"message.sketchfab.setup_guide": "Sketchfabでモデルを設定する方法を学びたいですか?%0",
|
||||
"dialog.skin.title": "Skin",
|
||||
"dialog.skin.model": "スキン",
|
||||
"dialog.skin.texture": "テクスチャを追加",
|
||||
"action.toggle_skin_layer": "レイヤーを切り替え",
|
||||
"action.toggle_skin_layer.desc": "スキンモデルのレイヤーを切り替えます",
|
||||
"action.gui_light": "GUIライト",
|
||||
"action.gui_light.desc": "インベントリでアイテムを照らす方法を選択します",
|
||||
"action.gui_light.side": "Sideライト",
|
||||
"action.gui_light.front": "Frontライト",
|
||||
"action.move_keyframe_back": "キーフレームを戻す",
|
||||
"action.move_keyframe_forth": "キーフレームを前方に移動する",
|
||||
"menu.help": "Help",
|
||||
"menu.help.discord": "Discord Server",
|
||||
"menu.help.report_issue": "Report an Issue",
|
||||
"menu.help.plugin_documentation": "Plugin API Documentation",
|
||||
"menu.help.search_action": "Search and Run Action",
|
||||
"menu.help.donate": "Donate",
|
||||
"menu.help.discord": "Discord",
|
||||
"menu.help.report_issue": "問題を報告",
|
||||
"menu.help.plugin_documentation": "プラグインAPI",
|
||||
"menu.help.search_action": "検索および実行",
|
||||
"menu.help.donate": "寄付",
|
||||
"menu.help.about": "About...",
|
||||
"menu.preview.background.clipboard": "Load from Clipboard",
|
||||
"dialog.ignore": "Ignore",
|
||||
"menu.preview.background.clipboard": "クリップボードから読み込む",
|
||||
"dialog.ignore": "スルー",
|
||||
"generic.unset": "Unset",
|
||||
"message.invalid_builtin_parent.title": "Invalid Built-in Parent",
|
||||
"message.invalid_builtin_parent.message": "The link to the invalid parent model '%0' was removed in order to export a valid model.",
|
||||
"dialog.resize_texture.fill": "Fill with",
|
||||
"message.invalid_builtin_parent.title": "Error",
|
||||
"message.invalid_builtin_parent.message": "有効なモデルをエクスポートするために、無効なモデル '%0'へのリンクが削除されました。",
|
||||
"dialog.resize_texture.fill": "Fill",
|
||||
"dialog.resize_texture.fill.transparent": "Transparent",
|
||||
"dialog.resize_texture.fill.color": "Color",
|
||||
"dialog.resize_texture.fill.repeat": "Repeat",
|
||||
"dialog.resize_texture.fill.stretch": "Stretch",
|
||||
"dialog.scale.element_pivot": "Element Pivot",
|
||||
"dialog.scale.selection_center": "Selection Center",
|
||||
"dialog.create_gif.length_mode": "Length Mode",
|
||||
"dialog.create_gif.length_mode": "Lengthモード",
|
||||
"dialog.create_gif.length_mode.seconds": "Seconds",
|
||||
"dialog.create_gif.length_mode.frames": "Frames",
|
||||
"dialog.create_gif.length_mode.animation": "Animation Length",
|
||||
"dialog.create_gif.length_mode.turntable": "Turntable Rotation",
|
||||
"dialog.save_angle.projection": "Projection",
|
||||
"dialog.save_angle.projection.perspective": "Perspective",
|
||||
"dialog.save_angle.projection.orthographic": "Orthographic",
|
||||
"dialog.sketchfab_uploader.animations": "Animations",
|
||||
"dialog.settings.theme": "Theme",
|
||||
"settings.category.interface": "Interface",
|
||||
"settings.preview_checkerboard": "Preview Checkerboard",
|
||||
"settings.preview_checkerboard.desc": "Toggle the checkerboard background behind the preview",
|
||||
"settings.uv_checkerboard": "UV Editor Checkerboard",
|
||||
"settings.uv_checkerboard.desc": "Toggle the checkerboard background behind the UV editor",
|
||||
"category.paint": "Paint",
|
||||
"dialog.create_gif.length_mode.frames": "フレーム",
|
||||
"dialog.create_gif.length_mode.animation": "アニメーションの長さ",
|
||||
"dialog.create_gif.length_mode.turntable": "ターンテーブル",
|
||||
"dialog.save_angle.projection": "プロジェクション",
|
||||
"dialog.save_angle.projection.perspective": "視点",
|
||||
"dialog.save_angle.projection.orthographic": "直交",
|
||||
"dialog.sketchfab_uploader.animations": "アニメーション",
|
||||
"dialog.settings.theme": "テーマ",
|
||||
"settings.category.interface": "インタフェース",
|
||||
"settings.preview_checkerboard": "プレビュー",
|
||||
"settings.preview_checkerboard.desc": "プレビューチェッカーボードの背景を切り替えます",
|
||||
"settings.uv_checkerboard": "UV エディター",
|
||||
"settings.uv_checkerboard.desc": "UVエディターのチェッカーボードの背景を切り替えます",
|
||||
"category.paint": "ペイント",
|
||||
"action.fill_mode.color_connected": "Connected Colors",
|
||||
"action.draw_shape_type": "Shape Type",
|
||||
"action.draw_shape_type.rectangle": "Rectangle",
|
||||
"action.draw_shape_type.rectangle_h": "Rectangle (Hollow)",
|
||||
"action.draw_shape_type.ellipse": "Ellipse",
|
||||
"action.draw_shape_type.ellipse_h": "Ellipse (Hollow)",
|
||||
"action.draw_shape_type.line": "Line",
|
||||
"action.mirror_painting": "Mirror Painting",
|
||||
"action.mirror_painting.description": "Mirror your paint strokes to the other side of the model",
|
||||
"action.lock_alpha": "Lock Alpha Channel",
|
||||
"action.lock_alpha.description": "Lock the transparency of all pixels",
|
||||
"action.draw_shape_tool": "Draw Shape",
|
||||
"action.draw_shape_tool.desc": "Tool to draw simple shapes on textures",
|
||||
"action.copy_paste_tool": "Copy Paste Tool",
|
||||
"action.copy_paste_tool.desc": "Tool to copy and paste selections of textures",
|
||||
"action.export_gltf": "Export As glTF",
|
||||
"action.export_gltf.desc": "Export model and animations as glTF file to use in other 3D applications",
|
||||
"action.draw_shape_type": "シャープ",
|
||||
"action.draw_shape_type.rectangle": "四角形■",
|
||||
"action.draw_shape_type.rectangle_h": "四角形□",
|
||||
"action.draw_shape_type.ellipse": "円●",
|
||||
"action.draw_shape_type.ellipse_h": "円○",
|
||||
"action.draw_shape_type.line": "線",
|
||||
"action.mirror_painting": "ミラーペイント",
|
||||
"action.mirror_painting.description": "モデルの反対側にもペイントします",
|
||||
"action.lock_alpha": "アルファチャンネルを固定",
|
||||
"action.lock_alpha.description": "ピクセルの透明度をロックします",
|
||||
"action.draw_shape_tool": "図形",
|
||||
"action.draw_shape_tool.desc": "テクスチャにシンプルな形状を描きます",
|
||||
"action.copy_paste_tool": "コピーペースト",
|
||||
"action.copy_paste_tool.desc": "選択したテクスチャをコピー/貼り付けする",
|
||||
"action.export_gltf": "glTFとしてエクスポート",
|
||||
"action.export_gltf.desc": "モデルとアニメーションをglTFファイルとしてエクスポートします",
|
||||
"action.transform_space": "Transform Space",
|
||||
"action.transform_space.desc": "Default transform space for elements and bones",
|
||||
"action.transform_space.global": "Global",
|
||||
"action.transform_space.bone": "Bone",
|
||||
"action.transform_space.local": "Local",
|
||||
"action.toggle_camera_projection": "Toggle Camera Projection",
|
||||
"action.toggle_camera_projection.desc": "Toggle the camera projection between perspective and orthographic",
|
||||
"action.load_camera_angle": "Camera Angle: %0",
|
||||
"action.load_camera_angle.desc": "Load the camera angle '%0'",
|
||||
"action.slider_face_tint": "Tint Index",
|
||||
"action.slider_face_tint.desc": "Set the tint index of the current face. -1 means unset.",
|
||||
"menu.help.quickstart": "Quickstart Wizard",
|
||||
"menu.help.developer": "Developer",
|
||||
"menu.help.developer.dev_tools": "Open Dev Tools",
|
||||
"menu.help.developer.reset_storage": "Factory Reset",
|
||||
"menu.help.developer.reset_storage.confirm": "Are you sure you want to reset Blockbench to factory settings? This will delete all custom settings, keybindings and installed plugins.",
|
||||
"menu.help.developer.cache_reload": "Cache Reload",
|
||||
"menu.texture.resize": "Resize...",
|
||||
"action.toggle_camera_projection": "カメラの切り替え",
|
||||
"action.toggle_camera_projection.desc": "カメラの投影を遠近法と正投影法の間で切り替えます",
|
||||
"action.load_camera_angle": "カメラアングル: %0",
|
||||
"action.load_camera_angle.desc": "カメラアングル '%0'を読み込みます",
|
||||
"action.slider_face_tint": "色合い指数",
|
||||
"action.slider_face_tint.desc": "現在の顔の色合い指数を設定します。 -1は未設定を意味します",
|
||||
"menu.help.quickstart": "クイックスタート",
|
||||
"menu.help.developer": "デベロッパー",
|
||||
"menu.help.developer.dev_tools": "開発ツールを開く",
|
||||
"menu.help.developer.reset_storage": "初期化",
|
||||
"menu.help.developer.reset_storage.confirm": "Blockbenchを工場出荷時設定にリセットします。すべてのカスタム設定、キーバインド、およびインストールされたプラグインが削除されます。",
|
||||
"menu.help.developer.cache_reload": "キャッシュのリロード",
|
||||
"menu.texture.resize": "リサイズ...",
|
||||
"menu.preview.orthographic": "Orthographic",
|
||||
"menu.preview.save_angle": "Save Angle...",
|
||||
"menu.preview.angle": "Angles",
|
||||
"menu.preview.angle.initial": "Initial Angle",
|
||||
"menu.preview.angle.load": "Load",
|
||||
"menu.preview.maximize": "Maximize",
|
||||
"menu.preview.save_angle": "アングルを保存...",
|
||||
"menu.preview.angle": "アングル",
|
||||
"menu.preview.angle.initial": "初期角度",
|
||||
"menu.preview.angle.load": "ロード",
|
||||
"menu.preview.maximize": "最大化",
|
||||
"panel.color.both": "Both",
|
||||
"uv_editor.copy_selection": "Copy Selection",
|
||||
"uv_editor.paste_selection": "Paste Selection",
|
||||
"uv_editor.copy_paste_tool.place": "Place",
|
||||
"uv_editor.copy_paste_tool.cut": "Cut",
|
||||
"uv_editor.copy_selection": "選択範囲をコピー",
|
||||
"uv_editor.paste_selection": "選択範囲を貼り付け",
|
||||
"uv_editor.copy_paste_tool.place": "配置",
|
||||
"uv_editor.copy_paste_tool.cut": "カット",
|
||||
"uv_editor.copy_paste_tool.mirror_x": "Mirror X",
|
||||
"uv_editor.copy_paste_tool.mirror_y": "Mirror Y",
|
||||
"uv_editor.copy_paste_tool.rotate": "Rotate 90 Degrees"
|
||||
"uv_editor.copy_paste_tool.rotate": "Rotate 90°"
|
||||
}
|
160
lang/zh.json
160
lang/zh.json
@ -336,7 +336,7 @@
|
||||
"action.load_plugin": "从文件加载插件",
|
||||
"action.load_plugin.desc": "通过导入源文件来加载插件。",
|
||||
"action.reload_plugins": "重载插件",
|
||||
"action.reload_plugins.desc": "重载所有开发插件。",
|
||||
"action.reload_plugins.desc": "重新载入所有开发插件",
|
||||
"action.uv_dialog": "打开全部 UV 窗口",
|
||||
"action.uv_dialog.desc": "打开 UV 对话框以查看彼此相邻的所有面",
|
||||
"action.uv_dialog_full": "大视图",
|
||||
@ -419,8 +419,8 @@
|
||||
"action.rescale_toggle.desc": "根据当前旋转重新缩放立方体",
|
||||
"action.bone_reset_toggle": "重置骨骼",
|
||||
"action.bone_reset_toggle.desc": "阻止骨骼显示父模型中的立方体",
|
||||
"action.reload": "重载 Blockbench",
|
||||
"action.reload.desc": "重载 Blockbench,这将删除所有未保存的进度",
|
||||
"action.reload": "重启 Blockbench",
|
||||
"action.reload.desc": "重启 Blockbench,如果你有未保存的工程将会丢失",
|
||||
"menu.file": "文件",
|
||||
"menu.edit": "编辑",
|
||||
"menu.transform": "模型控制",
|
||||
@ -705,7 +705,7 @@
|
||||
"action.open_backup_folder.desc": "打开 Blockbench 备份文件夹",
|
||||
"switches.mirror": "镜像 UV",
|
||||
"language_name": "简体中文",
|
||||
"message.plugin_reload": "已重载 %0 个本地插件",
|
||||
"message.plugin_reload": "已重新载入 %0 个本地插件",
|
||||
"settings.brightness": "亮度",
|
||||
"settings.brightness.desc": "预览的亮度,默认值为 50",
|
||||
"menu.preview.perspective.reset": "重置相机位置",
|
||||
@ -1012,80 +1012,80 @@
|
||||
"menu.help.donate": "捐赠",
|
||||
"menu.help.about": "关于……",
|
||||
"menu.preview.background.clipboard": "从剪贴板中进行加载",
|
||||
"dialog.ignore": "Ignore",
|
||||
"generic.unset": "Unset",
|
||||
"message.invalid_builtin_parent.title": "Invalid Built-in Parent",
|
||||
"message.invalid_builtin_parent.message": "The link to the invalid parent model '%0' was removed in order to export a valid model.",
|
||||
"dialog.resize_texture.fill": "Fill with",
|
||||
"dialog.resize_texture.fill.transparent": "Transparent",
|
||||
"dialog.resize_texture.fill.color": "Color",
|
||||
"dialog.resize_texture.fill.repeat": "Repeat",
|
||||
"dialog.resize_texture.fill.stretch": "Stretch",
|
||||
"dialog.scale.element_pivot": "Element Pivot",
|
||||
"dialog.scale.selection_center": "Selection Center",
|
||||
"dialog.create_gif.length_mode": "Length Mode",
|
||||
"dialog.create_gif.length_mode.seconds": "Seconds",
|
||||
"dialog.create_gif.length_mode.frames": "Frames",
|
||||
"dialog.create_gif.length_mode.animation": "Animation Length",
|
||||
"dialog.create_gif.length_mode.turntable": "Turntable Rotation",
|
||||
"dialog.save_angle.projection": "Projection",
|
||||
"dialog.save_angle.projection.perspective": "Perspective",
|
||||
"dialog.save_angle.projection.orthographic": "Orthographic",
|
||||
"dialog.sketchfab_uploader.animations": "Animations",
|
||||
"dialog.settings.theme": "Theme",
|
||||
"settings.category.interface": "Interface",
|
||||
"settings.preview_checkerboard": "Preview Checkerboard",
|
||||
"settings.preview_checkerboard.desc": "Toggle the checkerboard background behind the preview",
|
||||
"settings.uv_checkerboard": "UV Editor Checkerboard",
|
||||
"settings.uv_checkerboard.desc": "Toggle the checkerboard background behind the UV editor",
|
||||
"category.paint": "Paint",
|
||||
"action.fill_mode.color_connected": "Connected Colors",
|
||||
"action.draw_shape_type": "Shape Type",
|
||||
"action.draw_shape_type.rectangle": "Rectangle",
|
||||
"action.draw_shape_type.rectangle_h": "Rectangle (Hollow)",
|
||||
"action.draw_shape_type.ellipse": "Ellipse",
|
||||
"action.draw_shape_type.ellipse_h": "Ellipse (Hollow)",
|
||||
"action.draw_shape_type.line": "Line",
|
||||
"action.mirror_painting": "Mirror Painting",
|
||||
"action.mirror_painting.description": "Mirror your paint strokes to the other side of the model",
|
||||
"action.lock_alpha": "Lock Alpha Channel",
|
||||
"action.lock_alpha.description": "Lock the transparency of all pixels",
|
||||
"action.draw_shape_tool": "Draw Shape",
|
||||
"action.draw_shape_tool.desc": "Tool to draw simple shapes on textures",
|
||||
"action.copy_paste_tool": "Copy Paste Tool",
|
||||
"action.copy_paste_tool.desc": "Tool to copy and paste selections of textures",
|
||||
"action.export_gltf": "Export As glTF",
|
||||
"action.export_gltf.desc": "Export model and animations as glTF file to use in other 3D applications",
|
||||
"action.transform_space": "Transform Space",
|
||||
"action.transform_space.desc": "Default transform space for elements and bones",
|
||||
"action.transform_space.global": "Global",
|
||||
"action.transform_space.bone": "Bone",
|
||||
"action.transform_space.local": "Local",
|
||||
"action.toggle_camera_projection": "Toggle Camera Projection",
|
||||
"action.toggle_camera_projection.desc": "Toggle the camera projection between perspective and orthographic",
|
||||
"action.load_camera_angle": "Camera Angle: %0",
|
||||
"action.load_camera_angle.desc": "Load the camera angle '%0'",
|
||||
"action.slider_face_tint": "Tint Index",
|
||||
"action.slider_face_tint.desc": "Set the tint index of the current face. -1 means unset.",
|
||||
"menu.help.quickstart": "Quickstart Wizard",
|
||||
"menu.help.developer": "Developer",
|
||||
"menu.help.developer.dev_tools": "Open Dev Tools",
|
||||
"menu.help.developer.reset_storage": "Factory Reset",
|
||||
"menu.help.developer.reset_storage.confirm": "Are you sure you want to reset Blockbench to factory settings? This will delete all custom settings, keybindings and installed plugins.",
|
||||
"menu.help.developer.cache_reload": "Cache Reload",
|
||||
"menu.texture.resize": "Resize...",
|
||||
"menu.preview.orthographic": "Orthographic",
|
||||
"menu.preview.save_angle": "Save Angle...",
|
||||
"menu.preview.angle": "Angles",
|
||||
"menu.preview.angle.initial": "Initial Angle",
|
||||
"menu.preview.angle.load": "Load",
|
||||
"menu.preview.maximize": "Maximize",
|
||||
"panel.color.both": "Both",
|
||||
"uv_editor.copy_selection": "Copy Selection",
|
||||
"uv_editor.paste_selection": "Paste Selection",
|
||||
"uv_editor.copy_paste_tool.place": "Place",
|
||||
"uv_editor.copy_paste_tool.cut": "Cut",
|
||||
"uv_editor.copy_paste_tool.mirror_x": "Mirror X",
|
||||
"uv_editor.copy_paste_tool.mirror_y": "Mirror Y",
|
||||
"uv_editor.copy_paste_tool.rotate": "Rotate 90 Degrees"
|
||||
"dialog.ignore": "忽略",
|
||||
"generic.unset": "取消设置",
|
||||
"message.invalid_builtin_parent.title": "内置的父级模型无效",
|
||||
"message.invalid_builtin_parent.message": "为了导出可用的模型文件,删除了无效的内置父级模型 “%0”",
|
||||
"dialog.resize_texture.fill": "填充",
|
||||
"dialog.resize_texture.fill.transparent": "透明",
|
||||
"dialog.resize_texture.fill.color": "颜色",
|
||||
"dialog.resize_texture.fill.repeat": "重复",
|
||||
"dialog.resize_texture.fill.stretch": "伸展",
|
||||
"dialog.scale.element_pivot": "元素枢轴",
|
||||
"dialog.scale.selection_center": "选择中心",
|
||||
"dialog.create_gif.length_mode": "长度模式",
|
||||
"dialog.create_gif.length_mode.seconds": "秒",
|
||||
"dialog.create_gif.length_mode.frames": "框架",
|
||||
"dialog.create_gif.length_mode.animation": "动画长度",
|
||||
"dialog.create_gif.length_mode.turntable": "转盘旋转",
|
||||
"dialog.save_angle.projection": "投影",
|
||||
"dialog.save_angle.projection.perspective": "透视图",
|
||||
"dialog.save_angle.projection.orthographic": "正射投影",
|
||||
"dialog.sketchfab_uploader.animations": "动画制作",
|
||||
"dialog.settings.theme": "主题",
|
||||
"settings.category.interface": "界面",
|
||||
"settings.preview_checkerboard": "预览网格",
|
||||
"settings.preview_checkerboard.desc": "修改预览网格的背景",
|
||||
"settings.uv_checkerboard": "UV编辑器网格",
|
||||
"settings.uv_checkerboard.desc": "修改UV编辑器后的网格背景",
|
||||
"category.paint": "漆",
|
||||
"action.fill_mode.color_connected": "联系的颜色",
|
||||
"action.draw_shape_type": "形状类型",
|
||||
"action.draw_shape_type.rectangle": "矩形",
|
||||
"action.draw_shape_type.rectangle_h": "矩形(空心)",
|
||||
"action.draw_shape_type.ellipse": "椭圆",
|
||||
"action.draw_shape_type.ellipse_h": "椭圆(空心)",
|
||||
"action.draw_shape_type.line": "直线",
|
||||
"action.mirror_painting": "镜像绘画",
|
||||
"action.mirror_painting.description": "在一边绘画像素的同时另一也会有同样的像素",
|
||||
"action.lock_alpha": "锁定 Alpha 通道",
|
||||
"action.lock_alpha.description": "锁定所有像素的透明度",
|
||||
"action.draw_shape_tool": "绘制形状",
|
||||
"action.draw_shape_tool.desc": "在贴图上绘制简单形状的工具",
|
||||
"action.copy_paste_tool": "复制粘贴工具",
|
||||
"action.copy_paste_tool.desc": "复制和粘贴材质的工具",
|
||||
"action.export_gltf": "导出为 glTF 文件",
|
||||
"action.export_gltf.desc": "将模型和动画导出为 glTF 文件使其能在其他3D建模软件中使用",
|
||||
"action.transform_space": "变换空间",
|
||||
"action.transform_space.desc": "默认转换元素体素和绑骨",
|
||||
"action.transform_space.global": "全部",
|
||||
"action.transform_space.bone": "绑骨",
|
||||
"action.transform_space.local": "本地",
|
||||
"action.toggle_camera_projection": "切换相机投影",
|
||||
"action.toggle_camera_projection.desc": "切换透视图和正视之间的相机投影",
|
||||
"action.load_camera_angle": "摄影机角度: %0",
|
||||
"action.load_camera_angle.desc": "载入相机角度 “%0”",
|
||||
"action.slider_face_tint": "色调指数",
|
||||
"action.slider_face_tint.desc": "设置当前面的色调索引, -1 表示不设置 ",
|
||||
"menu.help.quickstart": "快速入门向导",
|
||||
"menu.help.developer": "开发者",
|
||||
"menu.help.developer.dev_tools": "打开开发工具",
|
||||
"menu.help.developer.reset_storage": "恢复全部默认设置",
|
||||
"menu.help.developer.reset_storage.confirm": "你确定要将 Blockbench 重置为默认设置吗?\n这将重置或删除所有自定义设置,按键绑定和已安装的插件",
|
||||
"menu.help.developer.cache_reload": "缓存刷新",
|
||||
"menu.texture.resize": "调整大小",
|
||||
"menu.preview.orthographic": "预览正交",
|
||||
"menu.preview.save_angle": "保存角度",
|
||||
"menu.preview.angle": "角度",
|
||||
"menu.preview.angle.initial": "初始角度",
|
||||
"menu.preview.angle.load": "加载",
|
||||
"menu.preview.maximize": "最大化",
|
||||
"panel.color.both": "两者",
|
||||
"uv_editor.copy_selection": "复制所选内容",
|
||||
"uv_editor.paste_selection": "粘贴所选内容",
|
||||
"uv_editor.copy_paste_tool.place": "此地",
|
||||
"uv_editor.copy_paste_tool.cut": "剪切",
|
||||
"uv_editor.copy_paste_tool.mirror_x": "镜像 X 轴",
|
||||
"uv_editor.copy_paste_tool.mirror_y": "镜像 Y 轴",
|
||||
"uv_editor.copy_paste_tool.rotate": "旋转90度"
|
||||
}
|
@ -1,7 +1,7 @@
|
||||
{
|
||||
"name": "Blockbench",
|
||||
"description": "Model editing and animation software",
|
||||
"version": "3.4.0",
|
||||
"version": "3.4.1",
|
||||
"license": "MIT",
|
||||
"author": {
|
||||
"name": "JannisX11",
|
||||
|
Loading…
x
Reference in New Issue
Block a user