Merge branch 'blender-v3.5-release'
This commit is contained in:
20
.gitignore
vendored
20
.gitignore
vendored
@@ -39,7 +39,7 @@ Desktop.ini
|
||||
/doc/python_api/rst/bmesh.ops.rst
|
||||
|
||||
# in-source lib downloads
|
||||
/build_files/build_environment/downloads
|
||||
/build_files/build_environment/downloads/
|
||||
|
||||
# in-source buildbot signing configuration
|
||||
/build_files/buildbot/codesign/config_server.py
|
||||
@@ -48,4 +48,20 @@ Desktop.ini
|
||||
waveletNoiseTile.bin
|
||||
|
||||
# testing environment
|
||||
/Testing
|
||||
/Testing/
|
||||
|
||||
# Translations.
|
||||
/locale/user-config.py
|
||||
|
||||
# External repositories.
|
||||
/scripts/addons/
|
||||
/scripts/addons_contrib/
|
||||
|
||||
# Ignore old submodules directories.
|
||||
# Eventually need to get rid of those, but for the first time of transition
|
||||
# avoid indidents when the folders exists after bisect and developers staging
|
||||
# them by accident.
|
||||
/release/scripts/addons/
|
||||
/release/datafiles/locale/
|
||||
/release/scripts/addons_contrib/
|
||||
/source/tools/
|
||||
|
20
.gitmodules
vendored
20
.gitmodules
vendored
@@ -1,20 +0,0 @@
|
||||
[submodule "release/scripts/addons"]
|
||||
path = release/scripts/addons
|
||||
url = ../blender-addons.git
|
||||
branch = main
|
||||
ignore = all
|
||||
[submodule "release/scripts/addons_contrib"]
|
||||
path = release/scripts/addons_contrib
|
||||
url = ../blender-addons-contrib.git
|
||||
branch = main
|
||||
ignore = all
|
||||
[submodule "release/datafiles/locale"]
|
||||
path = release/datafiles/locale
|
||||
url = ../blender-translations.git
|
||||
branch = main
|
||||
ignore = all
|
||||
[submodule "source/tools"]
|
||||
path = source/tools
|
||||
url = ../blender-dev-tools.git
|
||||
branch = main
|
||||
ignore = all
|
@@ -954,21 +954,6 @@ endif()
|
||||
# -----------------------------------------------------------------------------
|
||||
# Check if Sub-modules are Cloned
|
||||
|
||||
if(WITH_INTERNATIONAL)
|
||||
file(GLOB RESULT "${CMAKE_SOURCE_DIR}/release/datafiles/locale")
|
||||
list(LENGTH RESULT DIR_LEN)
|
||||
if(DIR_LEN EQUAL 0)
|
||||
message(
|
||||
WARNING
|
||||
"Translation path '${CMAKE_SOURCE_DIR}/release/datafiles/locale' is missing, "
|
||||
"This is a 'git submodule', which are known not to work with bridges to other version "
|
||||
"control systems."
|
||||
)
|
||||
set(TRANSLATIONS_FOUND OFF)
|
||||
set_and_warn_library_found("Translations" TRANSLATIONS_FOUND WITH_INTERNATIONAL)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if(WITH_PYTHON)
|
||||
# While we have this as an '#error' in 'bpy_capi_utils.h',
|
||||
# upgrading Python tends to cause confusion for users who build.
|
||||
@@ -984,14 +969,14 @@ if(WITH_PYTHON)
|
||||
)
|
||||
endif()
|
||||
|
||||
file(GLOB RESULT "${CMAKE_SOURCE_DIR}/release/scripts/addons")
|
||||
file(GLOB RESULT "${CMAKE_SOURCE_DIR}/scripts/addons")
|
||||
list(LENGTH RESULT DIR_LEN)
|
||||
if(DIR_LEN EQUAL 0)
|
||||
message(
|
||||
WARNING
|
||||
"Addons path '${CMAKE_SOURCE_DIR}/release/scripts/addons' is missing, "
|
||||
"This is a 'git submodule', which are known not to work with bridges to other version "
|
||||
"control systems: * CONTINUING WITHOUT ADDONS *"
|
||||
"Addons path '${CMAKE_SOURCE_DIR}/cripts/addons' is missing. "
|
||||
"This is an external repository which needs to be checked out. Use `make update` to do so. "
|
||||
"* CONTINUING WITHOUT ADDONS *"
|
||||
)
|
||||
endif()
|
||||
endif()
|
||||
|
28
GNUmakefile
28
GNUmakefile
@@ -69,7 +69,7 @@ Static Source Code Checking
|
||||
* check_cmake: Runs our own cmake file checker which detects errors in the cmake file list definitions.
|
||||
* check_pep8: Checks all Python script are pep8 which are tagged to use the stricter formatting.
|
||||
* check_mypy: Checks all Python scripts using mypy,
|
||||
see: source/tools/check_source/check_mypy_config.py scripts which are included.
|
||||
see: tools/check_source/check_mypy_config.py scripts which are included.
|
||||
|
||||
Documentation Checking
|
||||
|
||||
@@ -85,7 +85,7 @@ Spell Checkers
|
||||
* check_spelling_osl: Check for spelling errors (OSL only).
|
||||
* check_spelling_py: Check for spelling errors (Python only).
|
||||
|
||||
Note: an additional word-list is maintained at: 'source/tools/check_source/check_spelling_c_config.py'
|
||||
Note: an additional word-list is maintained at: 'tools/check_source/check_spelling_c_config.py'
|
||||
|
||||
Note: that spell checkers can take a 'CHECK_SPELLING_CACHE' filepath argument,
|
||||
so re-running does not need to re-check unchanged files.
|
||||
@@ -490,22 +490,22 @@ check_smatch: .FORCE
|
||||
$(PYTHON) "$(BLENDER_DIR)/build_files/cmake/cmake_static_check_smatch.py"
|
||||
|
||||
check_mypy: .FORCE
|
||||
@$(PYTHON) "$(BLENDER_DIR)/source/tools/check_source/check_mypy.py"
|
||||
@$(PYTHON) "$(BLENDER_DIR)/tools/check_source/check_mypy.py"
|
||||
|
||||
check_wiki_file_structure: .FORCE
|
||||
@PYTHONIOENCODING=utf_8 $(PYTHON) \
|
||||
"$(BLENDER_DIR)/source/tools/check_wiki/check_wiki_file_structure.py"
|
||||
"$(BLENDER_DIR)/tools/check_wiki/check_wiki_file_structure.py"
|
||||
|
||||
check_spelling_py: .FORCE
|
||||
@cd "$(BUILD_DIR)" ; \
|
||||
PYTHONIOENCODING=utf_8 $(PYTHON) \
|
||||
"$(BLENDER_DIR)/source/tools/check_source/check_spelling.py" \
|
||||
"$(BLENDER_DIR)/release/scripts"
|
||||
"$(BLENDER_DIR)/tools/check_source/check_spelling.py" \
|
||||
"$(BLENDER_DIR)/scripts"
|
||||
|
||||
check_spelling_c: .FORCE
|
||||
@cd "$(BUILD_DIR)" ; \
|
||||
PYTHONIOENCODING=utf_8 $(PYTHON) \
|
||||
"$(BLENDER_DIR)/source/tools/check_source/check_spelling.py" \
|
||||
"$(BLENDER_DIR)/tools/check_source/check_spelling.py" \
|
||||
--cache-file=$(CHECK_SPELLING_CACHE) \
|
||||
"$(BLENDER_DIR)/source" \
|
||||
"$(BLENDER_DIR)/intern/cycles" \
|
||||
@@ -515,21 +515,21 @@ check_spelling_c: .FORCE
|
||||
check_spelling_osl: .FORCE
|
||||
@cd "$(BUILD_DIR)" ; \
|
||||
PYTHONIOENCODING=utf_8 $(PYTHON) \
|
||||
"$(BLENDER_DIR)/source/tools/check_source/check_spelling.py" \
|
||||
"$(BLENDER_DIR)/tools/check_source/check_spelling.py" \
|
||||
--cache-file=$(CHECK_SPELLING_CACHE) \
|
||||
"$(BLENDER_DIR)/intern/cycles/kernel/shaders"
|
||||
|
||||
check_descriptions: .FORCE
|
||||
@$(BLENDER_BIN) --background -noaudio --factory-startup --python \
|
||||
"$(BLENDER_DIR)/source/tools/check_source/check_descriptions.py"
|
||||
"$(BLENDER_DIR)/tools/check_source/check_descriptions.py"
|
||||
|
||||
check_deprecated: .FORCE
|
||||
@PYTHONIOENCODING=utf_8 $(PYTHON) \
|
||||
source/tools/check_source/check_deprecated.py
|
||||
tools/check_source/check_deprecated.py
|
||||
|
||||
check_licenses: .FORCE
|
||||
@PYTHONIOENCODING=utf_8 $(PYTHON) \
|
||||
"$(BLENDER_DIR)/source/tools/check_source/check_licenses.py" \
|
||||
"$(BLENDER_DIR)/tools/check_source/check_licenses.py" \
|
||||
"--show-headers=$(SHOW_HEADERS)"
|
||||
|
||||
check_pep8: .FORCE
|
||||
@@ -538,7 +538,7 @@ check_pep8: .FORCE
|
||||
|
||||
check_cmake: .FORCE
|
||||
@PYTHONIOENCODING=utf_8 $(PYTHON) \
|
||||
source/tools/check_source/check_cmake_consistency.py
|
||||
tools/check_source/check_cmake_consistency.py
|
||||
|
||||
|
||||
# -----------------------------------------------------------------------------
|
||||
@@ -576,8 +576,8 @@ update_code: .FORCE
|
||||
@$(PYTHON) ./build_files/utils/make_update.py --no-libraries
|
||||
|
||||
format: .FORCE
|
||||
@PATH="${LIBDIR}/llvm/bin/:$(PATH)" $(PYTHON) source/tools/utils_maintenance/clang_format_paths.py $(PATHS)
|
||||
@$(PYTHON) source/tools/utils_maintenance/autopep8_format_paths.py --autopep8-command="$(AUTOPEP8)" $(PATHS)
|
||||
@PATH="${LIBDIR}/llvm/bin/:$(PATH)" $(PYTHON) tools/utils_maintenance/clang_format_paths.py $(PATHS)
|
||||
@$(PYTHON) tools/utils_maintenance/autopep8_format_paths.py --autopep8-command="$(AUTOPEP8)" $(PATHS)
|
||||
|
||||
|
||||
# -----------------------------------------------------------------------------
|
||||
|
@@ -901,11 +901,11 @@ endif()
|
||||
|
||||
if(WINDOWS_PYTHON_DEBUG)
|
||||
# Include the system scripts in the blender_python_system_scripts project.
|
||||
file(GLOB_RECURSE inFiles "${CMAKE_SOURCE_DIR}/release/scripts/*.*" )
|
||||
file(GLOB_RECURSE inFiles "${CMAKE_SOURCE_DIR}/scripts/*.*" )
|
||||
add_custom_target(blender_python_system_scripts SOURCES ${inFiles})
|
||||
foreach(_source IN ITEMS ${inFiles})
|
||||
get_filename_component(_source_path "${_source}" PATH)
|
||||
string(REPLACE "${CMAKE_SOURCE_DIR}/release/scripts/" "" _source_path "${_source_path}")
|
||||
string(REPLACE "${CMAKE_SOURCE_DIR}/scripts/" "" _source_path "${_source_path}")
|
||||
string(REPLACE "/" "\\" _group_path "${_source_path}")
|
||||
source_group("${_group_path}" FILES "${_source}")
|
||||
endforeach()
|
||||
@@ -940,7 +940,7 @@ if(WINDOWS_PYTHON_DEBUG)
|
||||
file(WRITE ${USER_PROPS_FILE} "<?xml version=\"1.0\" encoding=\"utf-8\"?>
|
||||
<Project DefaultTargets=\"Build\" xmlns=\"http://schemas.microsoft.com/developer/msbuild/2003\">
|
||||
<PropertyGroup>
|
||||
<LocalDebuggerCommandArguments>-con --env-system-scripts \"${CMAKE_SOURCE_DIR}/release/scripts\" </LocalDebuggerCommandArguments>
|
||||
<LocalDebuggerCommandArguments>-con --env-system-scripts \"${CMAKE_SOURCE_DIR}/scripts\" </LocalDebuggerCommandArguments>
|
||||
</PropertyGroup>
|
||||
</Project>")
|
||||
endif()
|
||||
|
@@ -1,53 +1,3 @@
|
||||
#
|
||||
# Used by Buildbot build pipeline make_update.py script only for now
|
||||
# We intended to update the make_update.py in the branches to use this file eventually
|
||||
#
|
||||
update-code:
|
||||
git:
|
||||
submodules:
|
||||
- branch: main
|
||||
commit_id: HEAD
|
||||
path: release/scripts/addons
|
||||
- branch: main
|
||||
commit_id: HEAD
|
||||
path: release/scripts/addons_contrib
|
||||
- branch: main
|
||||
commit_id: HEAD
|
||||
path: release/datafiles/locale
|
||||
- branch: main
|
||||
commit_id: HEAD
|
||||
path: source/tools
|
||||
svn:
|
||||
libraries:
|
||||
darwin-arm64:
|
||||
branch: trunk
|
||||
commit_id: HEAD
|
||||
path: lib/darwin_arm64
|
||||
darwin-x86_64:
|
||||
branch: trunk
|
||||
commit_id: HEAD
|
||||
path: lib/darwin
|
||||
linux-x86_64:
|
||||
branch: trunk
|
||||
commit_id: HEAD
|
||||
path: lib/linux_x86_64_glibc_228
|
||||
windows-amd64:
|
||||
branch: trunk
|
||||
commit_id: HEAD
|
||||
path: lib/win64_vc15
|
||||
tests:
|
||||
branch: trunk
|
||||
commit_id: HEAD
|
||||
path: lib/tests
|
||||
benchmarks:
|
||||
branch: trunk
|
||||
commit_id: HEAD
|
||||
path: lib/benchmarks
|
||||
assets:
|
||||
branch: trunk
|
||||
commit_id: HEAD
|
||||
path: lib/assets
|
||||
|
||||
#
|
||||
# Buildbot only configs
|
||||
#
|
||||
|
@@ -135,7 +135,7 @@ def submodules_to_manifest(
|
||||
submodule = line.split()[1]
|
||||
|
||||
# Don't use native slashes as GIT for MS-Windows outputs forward slashes.
|
||||
if skip_addon_contrib and submodule == "release/scripts/addons_contrib":
|
||||
if skip_addon_contrib and submodule == "scripts/addons_contrib":
|
||||
continue
|
||||
|
||||
for path in git_ls_files(blender_srcdir / submodule):
|
||||
|
@@ -16,14 +16,28 @@ import shutil
|
||||
import sys
|
||||
|
||||
import make_utils
|
||||
from pathlib import Path
|
||||
from make_utils import call, check_output
|
||||
from urllib.parse import urljoin
|
||||
|
||||
from typing import (
|
||||
List,
|
||||
Iterable,
|
||||
Optional,
|
||||
)
|
||||
|
||||
|
||||
class Submodule:
|
||||
path: str
|
||||
branch: str
|
||||
branch_fallback: str
|
||||
|
||||
def __init__(self, path: str, branch: str, branch_fallback: str) -> None:
|
||||
self.path = path
|
||||
self.branch = branch
|
||||
self.branch_fallback = branch_fallback
|
||||
|
||||
|
||||
def print_stage(text: str) -> None:
|
||||
print("")
|
||||
print(text)
|
||||
@@ -198,73 +212,257 @@ def git_update_skip(args: argparse.Namespace, check_remote_exists: bool = True)
|
||||
return ""
|
||||
|
||||
|
||||
def use_upstream_workflow(args: argparse.Namespace) -> bool:
|
||||
return make_utils.git_remote_exist(args.git_command, "upstream")
|
||||
|
||||
|
||||
def work_tree_update_upstream_workflow(args: argparse.Namespace, use_fetch=True) -> str:
|
||||
"""
|
||||
Update the Blender repository using the Github style of fork organization
|
||||
|
||||
Returns true if the current local branch has been updated to the upstream state.
|
||||
Otherwise false is returned.
|
||||
"""
|
||||
|
||||
branch_name = make_utils.git_branch(args.git_command)
|
||||
|
||||
if use_fetch:
|
||||
call((args.git_command, "fetch", "upstream"))
|
||||
|
||||
upstream_branch = f"upstream/{branch_name}"
|
||||
if not make_utils.git_branch_exists(args.git_command, upstream_branch):
|
||||
return "no_branch"
|
||||
|
||||
retcode = call((args.git_command, "merge", "--ff-only", upstream_branch), exit_on_error=False)
|
||||
if retcode != 0:
|
||||
return "Unable to fast forward\n"
|
||||
|
||||
return ""
|
||||
|
||||
|
||||
def work_tree_update(args: argparse.Namespace, use_fetch=True) -> str:
|
||||
"""
|
||||
Update the Git working tree using the best strategy
|
||||
|
||||
This function detects whether it is a github style of fork remote organization is used, or
|
||||
is it a repository which origin is an upstream.
|
||||
"""
|
||||
|
||||
if use_upstream_workflow(args):
|
||||
message = work_tree_update_upstream_workflow(args, use_fetch)
|
||||
if message != "no_branch":
|
||||
return message
|
||||
|
||||
# If there is upstream configured but the local branch is not in the upstream, try to
|
||||
# update the branch from the fork.
|
||||
|
||||
update_command = [args.git_command, "pull", "--rebase"]
|
||||
|
||||
call(update_command)
|
||||
|
||||
return ""
|
||||
|
||||
|
||||
# Update blender repository.
|
||||
def blender_update(args: argparse.Namespace) -> None:
|
||||
def blender_update(args: argparse.Namespace) -> str:
|
||||
print_stage("Updating Blender Git Repository")
|
||||
call([args.git_command, "pull", "--rebase"])
|
||||
|
||||
return work_tree_update(args)
|
||||
|
||||
|
||||
# Update submodules.
|
||||
def submodules_update(
|
||||
args: argparse.Namespace,
|
||||
release_version: Optional[str],
|
||||
branch: Optional[str],
|
||||
) -> str:
|
||||
print_stage("Updating Submodules")
|
||||
if make_utils.command_missing(args.git_command):
|
||||
sys.stderr.write("git not found, can't update code\n")
|
||||
sys.exit(1)
|
||||
def resolve_external_url(blender_url: str, repo_name: str) -> str:
|
||||
return urljoin(blender_url + "/", "../" + repo_name)
|
||||
|
||||
# Update submodules to appropriate given branch,
|
||||
# falling back to main if none is given and/or found in a sub-repository.
|
||||
|
||||
def external_script_copy_old_submodule_over(args: argparse.Namespace, directory_name: str) -> None:
|
||||
blender_git_root = Path(get_blender_git_root())
|
||||
scripts_dir = blender_git_root / "scripts"
|
||||
external_dir = scripts_dir / directory_name
|
||||
|
||||
old_submodule_relative_dir = Path("release") / "scripts" / directory_name
|
||||
print(f"Moving {old_submodule_relative_dir} to scripts/{directory_name} ...")
|
||||
|
||||
old_submodule_dir = blender_git_root / old_submodule_relative_dir
|
||||
shutil.move(old_submodule_dir, external_dir)
|
||||
|
||||
# Remove old ".git" which is a file with path to a submodule bare repo inside of main
|
||||
# repo .git/modules directory.
|
||||
(external_dir / ".git").unlink()
|
||||
|
||||
bare_repo_relative_dir = Path(".git") / "modules" / "release" / "scripts" / directory_name
|
||||
print(f"Copying {bare_repo_relative_dir} to scripts/{directory_name}/.git ...")
|
||||
bare_repo_dir = blender_git_root / bare_repo_relative_dir
|
||||
shutil.copytree(bare_repo_dir, external_dir / ".git")
|
||||
|
||||
git_config = external_dir / ".git" / "config"
|
||||
call((args.git_command, "config", "--file", git_config, "--unset", "core.worktree"))
|
||||
|
||||
|
||||
def external_script_initialize_if_needed(args: argparse.Namespace,
|
||||
repo_name: str,
|
||||
directory_name: str) -> None:
|
||||
"""Initialize checkout of an external repository scripts directory"""
|
||||
|
||||
blender_git_root = Path(get_blender_git_root())
|
||||
blender_dot_git = blender_git_root / ".git"
|
||||
scripts_dir = blender_git_root / "scripts"
|
||||
external_dir = scripts_dir / directory_name
|
||||
|
||||
if external_dir.exists():
|
||||
return
|
||||
|
||||
print(f"Initializing scripts/{directory_name} ...")
|
||||
|
||||
old_submodule_dot_git = blender_git_root / "release" / "scripts" / directory_name / ".git"
|
||||
if old_submodule_dot_git.exists() and blender_dot_git.is_dir():
|
||||
external_script_copy_old_submodule_over(args, directory_name)
|
||||
return
|
||||
|
||||
origin_name = "upstream" if use_upstream_workflow(args) else "origin"
|
||||
blender_url = make_utils.git_get_remote_url(args.git_command, origin_name)
|
||||
external_url = resolve_external_url(blender_url, repo_name)
|
||||
|
||||
call((args.git_command, "clone", "--origin", origin_name, external_url, external_dir))
|
||||
|
||||
|
||||
def external_script_add_origin_if_needed(args: argparse.Namespace,
|
||||
repo_name: str,
|
||||
directory_name: str) -> str:
|
||||
"""
|
||||
Add remote called 'origin' if there is a fork of the external repository available
|
||||
|
||||
This is only done when using Github style upstream workflow in the main repository.
|
||||
"""
|
||||
|
||||
if not use_upstream_workflow(args):
|
||||
return ""
|
||||
|
||||
cwd = os.getcwd()
|
||||
|
||||
blender_git_root = Path(get_blender_git_root())
|
||||
scripts_dir = blender_git_root / "scripts"
|
||||
external_dir = scripts_dir / directory_name
|
||||
|
||||
origin_blender_url = make_utils.git_get_remote_url(args.git_command, "origin")
|
||||
origin_external_url = resolve_external_url(origin_blender_url, repo_name)
|
||||
|
||||
try:
|
||||
os.chdir(external_dir)
|
||||
|
||||
if (make_utils.git_remote_exist(args.git_command, "origin") or
|
||||
not make_utils.git_remote_exist(args.git_command, "upstream")):
|
||||
return
|
||||
|
||||
if not make_utils.git_is_remote_repository(args.git_command, origin_external_url):
|
||||
return
|
||||
|
||||
print(f"Adding origin remote to {directory_name} pointing to fork ...")
|
||||
|
||||
# Non-obvious tricks to introduce the new remote called "origin" to the existing
|
||||
# submodule configuration.
|
||||
#
|
||||
# This is all within the content of creating a fork of a submodule after `make update`
|
||||
# has been run and possibly local branches tracking upstream were added.
|
||||
#
|
||||
# The idea here goes as following:
|
||||
#
|
||||
# - Rename remote "upstream" to "origin", which takes care of changing the names of
|
||||
# remotes the local branches are tracking.
|
||||
#
|
||||
# - Change the URL to the "origin", which so was was still pointing to upstream.
|
||||
#
|
||||
# - Re-introduce the "upstream" remote, with the same URL as it had prior to rename.
|
||||
|
||||
upstream_url = make_utils.git_get_remote_url(args.git_command, "upstream")
|
||||
|
||||
call((args.git_command, "remote", "rename", "upstream", "origin"))
|
||||
make_utils.git_set_config(args.git_command, f"remote.origin.url", origin_external_url)
|
||||
|
||||
call((args.git_command, "remote", "add", "upstream", upstream_url))
|
||||
finally:
|
||||
os.chdir(cwd)
|
||||
|
||||
return ""
|
||||
|
||||
|
||||
def external_scripts_update(args: argparse.Namespace,
|
||||
repo_name: str,
|
||||
directory_name: str,
|
||||
branch: Optional[str]) -> str:
|
||||
"""Update a single external checkout with the given name in the scripts folder"""
|
||||
|
||||
external_script_initialize_if_needed(args, repo_name, directory_name)
|
||||
external_script_add_origin_if_needed(args, repo_name, directory_name)
|
||||
|
||||
print(f"Updating scripts/{directory_name} ...")
|
||||
|
||||
cwd = os.getcwd()
|
||||
|
||||
blender_git_root = Path(get_blender_git_root())
|
||||
scripts_dir = blender_git_root / "scripts"
|
||||
external_dir = scripts_dir / directory_name
|
||||
|
||||
# Update externals to appropriate given branch, falling back to main if none is given and/or
|
||||
# found in a sub-repository.
|
||||
branch_fallback = "main"
|
||||
if not branch:
|
||||
branch = branch_fallback
|
||||
|
||||
submodules = [
|
||||
("release/scripts/addons", branch, branch_fallback),
|
||||
("release/scripts/addons_contrib", branch, branch_fallback),
|
||||
("release/datafiles/locale", branch, branch_fallback),
|
||||
("source/tools", branch, branch_fallback),
|
||||
]
|
||||
|
||||
# Initialize submodules only if needed.
|
||||
for submodule_path, submodule_branch, submodule_branch_fallback in submodules:
|
||||
if not os.path.exists(os.path.join(submodule_path, ".git")):
|
||||
call([args.git_command, "submodule", "update", "--init", "--recursive"])
|
||||
break
|
||||
|
||||
# Checkout appropriate branch and pull changes.
|
||||
skip_msg = ""
|
||||
for submodule_path, submodule_branch, submodule_branch_fallback in submodules:
|
||||
cwd = os.getcwd()
|
||||
try:
|
||||
os.chdir(submodule_path)
|
||||
msg = git_update_skip(args, check_remote_exists=False)
|
||||
if msg:
|
||||
skip_msg += submodule_path + " skipped: " + msg + "\n"
|
||||
else:
|
||||
# Find a matching branch that exists.
|
||||
call([args.git_command, "fetch", "origin"])
|
||||
if make_utils.git_branch_exists(args.git_command, submodule_branch):
|
||||
pass
|
||||
elif make_utils.git_branch_exists(args.git_command, submodule_branch_fallback):
|
||||
submodule_branch = submodule_branch_fallback
|
||||
else:
|
||||
# Skip.
|
||||
submodule_branch = ""
|
||||
|
||||
# Switch to branch and pull.
|
||||
if submodule_branch:
|
||||
if make_utils.git_branch(args.git_command) != submodule_branch:
|
||||
call([args.git_command, "checkout", submodule_branch])
|
||||
call([args.git_command, "pull", "--rebase", "origin", submodule_branch])
|
||||
finally:
|
||||
os.chdir(cwd)
|
||||
try:
|
||||
os.chdir(external_dir)
|
||||
msg = git_update_skip(args, check_remote_exists=False)
|
||||
if msg:
|
||||
skip_msg += directory_name + " skipped: " + msg + "\n"
|
||||
else:
|
||||
# Find a matching branch that exists.
|
||||
for remote in ("origin", "upstream"):
|
||||
if make_utils.git_remote_exist(args.git_command, remote):
|
||||
call([args.git_command, "fetch", remote])
|
||||
|
||||
submodule_branch = branch
|
||||
|
||||
if make_utils.git_branch_exists(args.git_command, submodule_branch):
|
||||
pass
|
||||
elif make_utils.git_branch_exists(args.git_command, branch_fallback):
|
||||
submodule_branch = branch_fallback
|
||||
else:
|
||||
# Skip.
|
||||
submodule_branch = ""
|
||||
|
||||
# Switch to branch and pull.
|
||||
if submodule_branch:
|
||||
if make_utils.git_branch(args.git_command) != submodule_branch:
|
||||
call([args.git_command, "checkout", submodule_branch])
|
||||
# Don't use extra fetch since all remotes of interest have been already fetched
|
||||
# some lines above.
|
||||
skip_msg += work_tree_update(args, use_fetch=False)
|
||||
finally:
|
||||
os.chdir(cwd)
|
||||
|
||||
return skip_msg
|
||||
|
||||
|
||||
def scripts_submodules_update(args: argparse.Namespace, branch: Optional[str]) -> str:
|
||||
"""Update working trees of addons and addons_contrib within the scripts/ directory"""
|
||||
msg = ""
|
||||
|
||||
msg += external_scripts_update(args, "blender-addons", "addons", branch)
|
||||
msg += external_scripts_update(args, "blender-addons-contrib", "addons_contrib", branch)
|
||||
|
||||
return msg
|
||||
|
||||
|
||||
def submodules_update(args: argparse.Namespace, branch: Optional[str]) -> str:
|
||||
"""Update submodules or other externally tracked source trees"""
|
||||
msg = ""
|
||||
|
||||
msg += scripts_submodules_update(args, branch)
|
||||
|
||||
return msg
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
args = parse_arguments()
|
||||
blender_skip_msg = ""
|
||||
@@ -287,9 +485,9 @@ if __name__ == "__main__":
|
||||
if blender_skip_msg:
|
||||
blender_skip_msg = "Blender repository skipped: " + blender_skip_msg + "\n"
|
||||
else:
|
||||
blender_update(args)
|
||||
blender_skip_msg = "Blender repository skipped: " + blender_update(args) + "\n"
|
||||
if not args.no_submodules:
|
||||
submodules_skip_msg = submodules_update(args, release_version, branch)
|
||||
submodules_skip_msg = submodules_update(args, branch)
|
||||
|
||||
# Report any skipped repositories at the end, so it's not as easy to miss.
|
||||
skip_msg = blender_skip_msg + submodules_skip_msg
|
||||
|
@@ -9,7 +9,9 @@ import re
|
||||
import shutil
|
||||
import subprocess
|
||||
import sys
|
||||
import os
|
||||
from pathlib import Path
|
||||
from urllib.parse import urljoin
|
||||
|
||||
from typing import (
|
||||
Sequence,
|
||||
@@ -19,7 +21,7 @@ from typing import (
|
||||
|
||||
def call(cmd: Sequence[str], exit_on_error: bool = True, silent: bool = False) -> int:
|
||||
if not silent:
|
||||
print(" ".join(cmd))
|
||||
print(" ".join([str(x) for x in cmd]))
|
||||
|
||||
# Flush to ensure correct order output on Windows.
|
||||
sys.stdout.flush()
|
||||
@@ -55,10 +57,48 @@ def check_output(cmd: Sequence[str], exit_on_error: bool = True) -> str:
|
||||
def git_branch_exists(git_command: str, branch: str) -> bool:
|
||||
return (
|
||||
call([git_command, "rev-parse", "--verify", branch], exit_on_error=False, silent=True) == 0 or
|
||||
call([git_command, "rev-parse", "--verify", "remotes/upstream/" + branch], exit_on_error=False, silent=True) == 0 or
|
||||
call([git_command, "rev-parse", "--verify", "remotes/origin/" + branch], exit_on_error=False, silent=True) == 0
|
||||
)
|
||||
|
||||
|
||||
def git_get_remote_url(git_command: str, remote_name: str) -> bool:
|
||||
return check_output((git_command, "ls-remote", "--get-url", remote_name))
|
||||
|
||||
|
||||
def git_remote_exist(git_command: str, remote_name: str) -> bool:
|
||||
"""Check whether there is a remote with the given name"""
|
||||
# `git ls-remote --get-url upstream` will print an URL if there is such remote configured, and
|
||||
# otherwise will print "upstream".
|
||||
remote_url = check_output((git_command, "ls-remote", "--get-url", remote_name))
|
||||
return remote_url != remote_name
|
||||
|
||||
|
||||
def git_get_resolved_submodule_url(git_command: str, blender_url: str, submodule_path: str) -> str:
|
||||
git_root = check_output([git_command, "rev-parse", "--show-toplevel"])
|
||||
dot_gitmodules = os.path.join(git_root, ".gitmodules")
|
||||
|
||||
submodule_key_prefix = f"submodule.{submodule_path}"
|
||||
submodule_key_url = f"{submodule_key_prefix}.url"
|
||||
|
||||
gitmodule_url = git_get_config(
|
||||
git_command, submodule_key_url, file=dot_gitmodules)
|
||||
|
||||
# A bit of a trickery to construct final URL.
|
||||
# Only works for the relative submodule URLs.
|
||||
#
|
||||
# Note that unless the LHS URL ends up with a slash urljoin treats the last component as a
|
||||
# file.
|
||||
assert gitmodule_url.startswith('..')
|
||||
return urljoin(blender_url + "/", gitmodule_url)
|
||||
|
||||
|
||||
def git_is_remote_repository(git_command: str, repo: str) -> bool:
|
||||
"""Returns true if the given repository is a valid/clonable git repo"""
|
||||
exit_code = call((git_command, "ls-remote", repo, "HEAD"), exit_on_error=False, silent=True)
|
||||
return exit_code == 0
|
||||
|
||||
|
||||
def git_branch(git_command: str) -> str:
|
||||
# Get current branch name.
|
||||
try:
|
||||
@@ -70,6 +110,20 @@ def git_branch(git_command: str) -> str:
|
||||
return branch.strip().decode('utf8')
|
||||
|
||||
|
||||
def git_get_config(git_command: str, key: str, file: Optional[str] = None) -> str:
|
||||
if file:
|
||||
return check_output([git_command, "config", "--file", file, "--get", key])
|
||||
|
||||
return check_output([git_command, "config", "--get", key])
|
||||
|
||||
|
||||
def git_set_config(git_command: str, key: str, value: str, file: Optional[str] = None) -> str:
|
||||
if file:
|
||||
return check_output([git_command, "config", "--file", file, key, value])
|
||||
|
||||
return check_output([git_command, "config", key, value])
|
||||
|
||||
|
||||
def git_tag(git_command: str) -> Optional[str]:
|
||||
# Get current tag name.
|
||||
try:
|
||||
|
@@ -4,9 +4,9 @@ if "%GIT%" == "" (
|
||||
)
|
||||
cd "%BLENDER_DIR%"
|
||||
for /f "delims=" %%i in ('"%GIT%" rev-parse HEAD') do echo Branch_hash=%%i
|
||||
cd "%BLENDER_DIR%/release/datafiles/locale"
|
||||
cd "%BLENDER_DIR%/locale"
|
||||
for /f "delims=" %%i in ('"%GIT%" rev-parse HEAD') do echo Locale_hash=%%i
|
||||
cd "%BLENDER_DIR%/release/scripts/addons"
|
||||
cd "%BLENDER_DIR%/scripts/addons"
|
||||
for /f "delims=" %%i in ('"%GIT%" rev-parse HEAD') do echo Addons_Hash=%%i
|
||||
cd "%BLENDER_DIR%"
|
||||
:EOF
|
@@ -31,7 +31,7 @@ For an overview of BMesh data types and how they reference each other see:
|
||||
Example Script
|
||||
--------------
|
||||
|
||||
.. literalinclude:: __/__/__/release/scripts/templates_py/bmesh_simple.py
|
||||
.. literalinclude:: __/__/__/scripts/templates_py/bmesh_simple.py
|
||||
|
||||
|
||||
Standalone Module
|
||||
|
@@ -288,7 +288,7 @@ In Python, this is done by defining a class, which is a subclass of an existing
|
||||
Example Operator
|
||||
----------------
|
||||
|
||||
.. literalinclude:: __/__/__/release/scripts/templates_py/operator_simple.py
|
||||
.. literalinclude:: __/__/__/scripts/templates_py/operator_simple.py
|
||||
|
||||
Once this script runs, ``SimpleOperator`` is registered with Blender
|
||||
and can be called from Operator Search or added to the toolbar.
|
||||
@@ -320,7 +320,7 @@ Example Panel
|
||||
Panels are registered as a class, like an operator.
|
||||
Notice the extra ``bl_`` variables used to set the context they display in.
|
||||
|
||||
.. literalinclude:: __/__/__/release/scripts/templates_py/ui_panel_simple.py
|
||||
.. literalinclude:: __/__/__/scripts/templates_py/ui_panel_simple.py
|
||||
|
||||
To run the script:
|
||||
|
||||
|
@@ -367,13 +367,13 @@ except ImportError:
|
||||
# Note that ".." is replaced by "__" in the RST files,
|
||||
# to avoid having to match Blender's source tree.
|
||||
EXTRA_SOURCE_FILES = (
|
||||
"../../../release/scripts/templates_py/bmesh_simple.py",
|
||||
"../../../release/scripts/templates_py/gizmo_operator.py",
|
||||
"../../../release/scripts/templates_py/gizmo_operator_target.py",
|
||||
"../../../release/scripts/templates_py/gizmo_simple.py",
|
||||
"../../../release/scripts/templates_py/operator_simple.py",
|
||||
"../../../release/scripts/templates_py/ui_panel_simple.py",
|
||||
"../../../release/scripts/templates_py/ui_previews_custom_icon.py",
|
||||
"../../../scripts/templates_py/bmesh_simple.py",
|
||||
"../../../scripts/templates_py/gizmo_operator.py",
|
||||
"../../../scripts/templates_py/gizmo_operator_target.py",
|
||||
"../../../scripts/templates_py/gizmo_simple.py",
|
||||
"../../../scripts/templates_py/operator_simple.py",
|
||||
"../../../scripts/templates_py/ui_panel_simple.py",
|
||||
"../../../scripts/templates_py/ui_previews_custom_icon.py",
|
||||
"../examples/bmesh.ops.1.py",
|
||||
"../examples/bpy.app.translations.py",
|
||||
)
|
||||
@@ -1816,7 +1816,7 @@ def pyrna2sphinx(basepath):
|
||||
|
||||
# operators
|
||||
def write_ops():
|
||||
API_BASEURL = "https://projects.blender.org/blender/blender/src/branch/main/release/scripts"
|
||||
API_BASEURL = "https://projects.blender.org/blender/blender/src/branch/main/scripts"
|
||||
API_BASEURL_ADDON = "https://projects.blender.org/blender/blender-addons"
|
||||
API_BASEURL_ADDON_CONTRIB = "https://projects.blender.org/blender/blender-addons-contrib"
|
||||
|
||||
|
65
locale/languages
Normal file
65
locale/languages
Normal file
@@ -0,0 +1,65 @@
|
||||
# File used by Blender to know which languages (translations) are available,
|
||||
# and to generate translation menu.
|
||||
#
|
||||
# File format:
|
||||
# ID:MENULABEL:ISOCODE
|
||||
# ID must be unique, except for 0 value (marks categories for menu).
|
||||
# Line starting with a # are comments!
|
||||
#
|
||||
# Automatically generated by bl_i18n_utils/update_languages_menu.py script.
|
||||
# Highest ID currently in use: 48
|
||||
#
|
||||
0:Complete:
|
||||
0:Automatic (Automatic):DEFAULT
|
||||
1:English (English):en_US
|
||||
9:Spanish (Español):es
|
||||
8:French (Français):fr_FR
|
||||
2:Japanese (日本語):ja_JP
|
||||
47:Slovak (Slovenčina):sk_SK
|
||||
41:Vietnamese (tiếng Việt):vi_VN
|
||||
13:Simplified Chinese (简体中文):zh_CN
|
||||
#
|
||||
0:In Progress:
|
||||
10:Catalan (Català):ca_AD
|
||||
11:Czech (Český):cs_CZ
|
||||
5:German (Deutsch):de_DE
|
||||
4:Italian (Italiano):it_IT
|
||||
48:Georgian (ქართული):ka
|
||||
24:Korean (한국어):ko_KR
|
||||
32:Brazilian Portuguese (Português do Brasil):pt_BR
|
||||
12:Portuguese (Português):pt_PT
|
||||
15:Russian (Русский):ru_RU
|
||||
18:Ukrainian (Українська):uk_UA
|
||||
14:Traditional Chinese (繁體中文):zh_TW
|
||||
#
|
||||
0:Starting:
|
||||
45:Abkhaz (Аԥсуа бызшәа):ab
|
||||
# Skipped (see IMPORT_LANGUAGES_SKIP in settings.py). #37:Amharic (አማርኛ):am_ET
|
||||
21:Arabic (ﺔﻴﺑﺮﻌﻟﺍ):ar_EG
|
||||
# Skipped (see IMPORT_LANGUAGES_SKIP in settings.py). #22:Bulgarian (Български):bg_BG
|
||||
# Skipped (see IMPORT_LANGUAGES_SKIP in settings.py). #23:Greek (Ελληνικά):el_GR
|
||||
35:Esperanto (Esperanto):eo
|
||||
# Skipped (see IMPORT_LANGUAGES_SKIP in settings.py). #36:Spanish from Spain (Español de España):es_ES
|
||||
# Skipped (see IMPORT_LANGUAGES_SKIP in settings.py). #34:Estonian (Eestlane):et_EE
|
||||
42:Basque (Euskara):eu_EU
|
||||
26:Persian (ﯽﺳﺭﺎﻓ):fa_IR
|
||||
6:Finnish (Suomi):fi_FI
|
||||
43:Hausa (Hausa):ha
|
||||
33:Hebrew (תירִבְעִ):he_IL
|
||||
40:Hindi (मानक हिन्दी):hi_IN
|
||||
16:Croatian (Hrvatski):hr_HR
|
||||
31:Hungarian (Magyar):hu_HU
|
||||
27:Indonesian (Bahasa indonesia):id_ID
|
||||
# Skipped (see IMPORT_LANGUAGES_SKIP in settings.py). #44:Kazakh (қазақша):kk_KZ
|
||||
29:Kyrgyz (Кыргыз тили):ky_KG
|
||||
# Skipped (see IMPORT_LANGUAGES_SKIP in settings.py). #25:Nepali (नेपाली):ne_NP
|
||||
3:Dutch (Nederlandse taal):nl_NL
|
||||
19:Polish (Polski):pl_PL
|
||||
# Skipped (see IMPORT_LANGUAGES_SKIP in settings.py). #20:Romanian (Român):ro_RO
|
||||
17:Serbian (Српски):sr_RS
|
||||
28:Serbian Latin (Srpski latinica):sr_RS@latin
|
||||
7:Swedish (Svenska):sv_SE
|
||||
46:Thai (ภาษาไทย):th_TH
|
||||
30:Turkish (Türkçe):tr_TR
|
||||
# Skipped (see IMPORT_LANGUAGES_SKIP in settings.py). #38:Uzbek (Oʻzbek):uz_UZ
|
||||
# Skipped (see IMPORT_LANGUAGES_SKIP in settings.py). #39:Uzbek Cyrillic (Ўзбек):uz_UZ@cyrillic
|
720
locale/po/ab.po
Normal file
720
locale/po/ab.po
Normal file
@@ -0,0 +1,720 @@
|
||||
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: Blender 3.5.0 Beta (b'5fd4d47206ff')\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"\"POT-Creation-Date: 2019-02-25 20:41:30\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: Daniel Tlisha <daniel.abzakh@gmail.com>\n"
|
||||
"Language-Team: Abkhaz language team <daniel.abzakh@gmail.com>\n"
|
||||
"Language: ab\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit"
|
||||
|
||||
|
||||
msgid "Select"
|
||||
msgstr "Алхра"
|
||||
|
||||
|
||||
msgid "Add"
|
||||
msgstr "Ацҵара"
|
||||
|
||||
|
||||
msgid "Subtract"
|
||||
msgstr "Ацхра"
|
||||
|
||||
|
||||
msgid "Empty"
|
||||
msgstr "Аҭацәы"
|
||||
|
||||
|
||||
msgid "Edge"
|
||||
msgstr "Акьыԥшь"
|
||||
|
||||
|
||||
msgid "Face"
|
||||
msgstr "Ахаҿы"
|
||||
|
||||
|
||||
msgid "Object"
|
||||
msgstr "Амаҭәар"
|
||||
|
||||
|
||||
msgid "Texts"
|
||||
msgstr "Аҳәоуқәа"
|
||||
|
||||
|
||||
msgid "Main Images"
|
||||
msgstr "Ихадоу Асахьақәа"
|
||||
|
||||
|
||||
msgid "Main Lights"
|
||||
msgstr "Ихадоу Алашарақәа"
|
||||
|
||||
|
||||
msgid "Main Meshes"
|
||||
msgstr "Ихадоу Аҿарԥагақәа"
|
||||
|
||||
|
||||
msgid "Mode"
|
||||
msgstr "А́иҿкаашьа"
|
||||
|
||||
|
||||
msgid "Marker"
|
||||
msgstr "Ашьҭа"
|
||||
|
||||
|
||||
msgid "Image"
|
||||
msgstr "Асахьанҵа"
|
||||
|
||||
|
||||
msgid "Rotation"
|
||||
msgstr "Агьежьра"
|
||||
|
||||
|
||||
msgid "Scale"
|
||||
msgstr "Ашәага"
|
||||
|
||||
|
||||
msgid "Curve"
|
||||
msgstr "Архәара"
|
||||
|
||||
|
||||
msgid "Difference"
|
||||
msgstr "Аиԥшымра"
|
||||
|
||||
|
||||
msgid "Armature"
|
||||
msgstr "Абаҩ"
|
||||
|
||||
|
||||
msgid "Camera"
|
||||
msgstr "Акамера"
|
||||
|
||||
|
||||
msgid "Location"
|
||||
msgstr "Аҭыԥ"
|
||||
|
||||
|
||||
msgid "Cursor"
|
||||
msgstr "Ахырхага"
|
||||
|
||||
|
||||
msgid "Plane"
|
||||
msgstr "Аҟьаҟьа"
|
||||
|
||||
|
||||
msgid "View"
|
||||
msgstr "Аԥшра"
|
||||
|
||||
|
||||
msgid "Render"
|
||||
msgstr "Архиара"
|
||||
|
||||
|
||||
msgid "Shading"
|
||||
msgstr "Аршәшьра"
|
||||
|
||||
|
||||
msgctxt "ID"
|
||||
msgid "Armature"
|
||||
msgstr "Абаҩ"
|
||||
|
||||
|
||||
msgctxt "ID"
|
||||
msgid "Camera"
|
||||
msgstr "Акамера"
|
||||
|
||||
|
||||
msgctxt "ID"
|
||||
msgid "Image"
|
||||
msgstr "Асахьанҵа"
|
||||
|
||||
|
||||
msgctxt "ID"
|
||||
msgid "Lattice"
|
||||
msgstr "Аҭыџьеихац"
|
||||
|
||||
|
||||
msgctxt "ID"
|
||||
msgid "Library"
|
||||
msgstr "Ашәҟәыԥхьарҭа"
|
||||
|
||||
|
||||
msgctxt "ID"
|
||||
msgid "Light"
|
||||
msgstr "Алашара"
|
||||
|
||||
|
||||
msgctxt "ID"
|
||||
msgid "Metaball"
|
||||
msgstr "Метампыл"
|
||||
|
||||
|
||||
msgctxt "ID"
|
||||
msgid "Speaker"
|
||||
msgstr "Абжьы Ахыҵхырҭа"
|
||||
|
||||
|
||||
msgid "Vertex"
|
||||
msgstr "Ақәыцә"
|
||||
|
||||
|
||||
msgid "Group"
|
||||
msgstr "Агәыԥ"
|
||||
|
||||
|
||||
msgid "Cone"
|
||||
msgstr "Аконус"
|
||||
|
||||
|
||||
msgid "Sphere"
|
||||
msgstr "Асфера"
|
||||
|
||||
|
||||
msgid "End"
|
||||
msgstr "Алгара"
|
||||
|
||||
|
||||
msgid "Start"
|
||||
msgstr "Алагара"
|
||||
|
||||
|
||||
msgid "Window"
|
||||
msgstr "Аԥенџьыр"
|
||||
|
||||
|
||||
msgid "Edit Mode"
|
||||
msgstr "Аиҭакра Аиҿкаашьа"
|
||||
|
||||
|
||||
msgid "Lattice"
|
||||
msgstr "Аҭыџьеихац"
|
||||
|
||||
|
||||
msgid "Library"
|
||||
msgstr "Ашәҟәыԥхьарҭа"
|
||||
|
||||
|
||||
msgid "Local"
|
||||
msgstr "Ҷыдала"
|
||||
|
||||
|
||||
msgid "Global"
|
||||
msgstr "Зеиԥшла"
|
||||
|
||||
|
||||
msgctxt "Light"
|
||||
msgid "Light"
|
||||
msgstr "Алашара"
|
||||
|
||||
|
||||
msgctxt "Light"
|
||||
msgid "Sun"
|
||||
msgstr "Амра"
|
||||
|
||||
|
||||
msgid "Cube"
|
||||
msgstr "Акуб"
|
||||
|
||||
|
||||
msgid "Roughness"
|
||||
msgstr "Аџьаџьара"
|
||||
|
||||
|
||||
msgid "Specular"
|
||||
msgstr "Ацырцырра"
|
||||
|
||||
|
||||
msgid "Circle"
|
||||
msgstr "Аицыгьежь"
|
||||
|
||||
|
||||
msgid "Object Mode"
|
||||
msgstr "Амаҭәар Аиҿкаашьа"
|
||||
|
||||
|
||||
msgid "Sculpt Mode"
|
||||
msgstr "Ашәаҳара Аиҿкаашьа"
|
||||
|
||||
|
||||
msgid "Vertex Paint"
|
||||
msgstr "Ақәыцә Ашәра"
|
||||
|
||||
|
||||
msgid "Weight Paint"
|
||||
msgstr "Акапан Ашәра"
|
||||
|
||||
|
||||
msgid "Texture Paint"
|
||||
msgstr "Атекстура Ашәра"
|
||||
|
||||
|
||||
msgctxt "ID"
|
||||
msgid "Empty"
|
||||
msgstr "Аҭацәы"
|
||||
|
||||
|
||||
msgid "3D Cursor"
|
||||
msgstr "3Д Ахырхага"
|
||||
|
||||
|
||||
msgid "Edit"
|
||||
msgstr "Аиҭакра"
|
||||
|
||||
|
||||
msgid "Text"
|
||||
msgstr "Аҳәоу"
|
||||
|
||||
|
||||
msgid "Mesh"
|
||||
msgstr "Аҿарҧага"
|
||||
|
||||
|
||||
msgid "File"
|
||||
msgstr "Ашәҟәы"
|
||||
|
||||
|
||||
msgid "Help"
|
||||
msgstr "Аилыркаа"
|
||||
|
||||
|
||||
msgid "Metaball"
|
||||
msgstr "Метампыл"
|
||||
|
||||
|
||||
msgid "Light"
|
||||
msgstr "Алашара"
|
||||
|
||||
|
||||
msgid "Intersect"
|
||||
msgstr "Аихҵәара"
|
||||
|
||||
|
||||
msgid "Ball"
|
||||
msgstr "Ампыл"
|
||||
|
||||
|
||||
msgid "New"
|
||||
msgstr "Аҿыц"
|
||||
|
||||
|
||||
msgid "Keying"
|
||||
msgstr " Аиҭаганҵа"
|
||||
|
||||
|
||||
msgctxt "Operator"
|
||||
msgid "Add Circle"
|
||||
msgstr "Ацҵара Аицыгьежь"
|
||||
|
||||
|
||||
msgctxt "Operator"
|
||||
msgid "Add Cube"
|
||||
msgstr "Ацҵара Акуб"
|
||||
|
||||
|
||||
msgctxt "Operator"
|
||||
msgid "Add Ico Sphere"
|
||||
msgstr "Ацҵара Ico Асфера"
|
||||
|
||||
|
||||
msgctxt "Operator"
|
||||
msgid "Add Monkey"
|
||||
msgstr "Ацҵара Амаамын"
|
||||
|
||||
|
||||
msgctxt "Operator"
|
||||
msgid "Add Plane"
|
||||
msgstr "Ацҵара Аҟьаҟьа"
|
||||
|
||||
|
||||
msgctxt "Operator"
|
||||
msgid "Add UV Sphere"
|
||||
msgstr "Ацҵара UV Асфера"
|
||||
|
||||
|
||||
msgctxt "Operator"
|
||||
msgid "Add Armature"
|
||||
msgstr "Ацҵара Абаҩ"
|
||||
|
||||
|
||||
msgctxt "Operator"
|
||||
msgid "Add Camera"
|
||||
msgstr "Ацҵара Акамера"
|
||||
|
||||
|
||||
msgid "Monkey"
|
||||
msgstr "Амаамын"
|
||||
|
||||
|
||||
msgctxt "Operator"
|
||||
msgid "Add Light"
|
||||
msgstr "Ацҵара Алашара"
|
||||
|
||||
|
||||
msgctxt "Operator"
|
||||
msgid "Add Metaball"
|
||||
msgstr "Ацҵара Метампыл"
|
||||
|
||||
|
||||
msgctxt "Operator"
|
||||
msgid "Add Speaker"
|
||||
msgstr "Ацҵара Абжьы Ахыҵхырҭа"
|
||||
|
||||
|
||||
msgctxt "Operator"
|
||||
msgid "Add Text"
|
||||
msgstr "Ацҵара Аҳәоу"
|
||||
|
||||
|
||||
msgctxt "Scene"
|
||||
msgid "New"
|
||||
msgstr "Аҿыц"
|
||||
|
||||
|
||||
msgid "Overlays"
|
||||
msgstr "Ақәҵакәа"
|
||||
|
||||
|
||||
msgctxt "Operator"
|
||||
msgid "Scale"
|
||||
msgstr "Ашәага"
|
||||
|
||||
|
||||
msgid "Playback"
|
||||
msgstr "Арҳәара"
|
||||
|
||||
|
||||
msgctxt "Operator"
|
||||
msgid "Circle"
|
||||
msgstr "Аицыгьежь"
|
||||
|
||||
|
||||
msgctxt "Sequence"
|
||||
msgid "Image"
|
||||
msgstr "Асахьанҵа"
|
||||
|
||||
|
||||
msgctxt "Sequence"
|
||||
msgid "Text"
|
||||
msgstr "Аҳәоу"
|
||||
|
||||
|
||||
msgctxt "MovieClip"
|
||||
msgid "View"
|
||||
msgstr "Аԥшра"
|
||||
|
||||
|
||||
msgid "Speaker"
|
||||
msgstr "Абжьы Ахыҵхырҭа"
|
||||
|
||||
|
||||
msgctxt "WindowManager"
|
||||
msgid "Armature"
|
||||
msgstr "Абаҩ"
|
||||
|
||||
|
||||
msgctxt "WindowManager"
|
||||
msgid "Metaball"
|
||||
msgstr "Метампы"
|
||||
|
||||
|
||||
msgctxt "WindowManager"
|
||||
msgid "Lattice"
|
||||
msgstr "Аҭыџьеихац"
|
||||
|
||||
|
||||
msgctxt "WindowManager"
|
||||
msgid "Image"
|
||||
msgstr "Асахьанҵа"
|
||||
|
||||
|
||||
msgctxt "WindowManager"
|
||||
msgid "Text"
|
||||
msgstr "Аҳәоу"
|
||||
|
||||
|
||||
msgctxt "Operator"
|
||||
msgid "Location"
|
||||
msgstr "Аҭыԥ"
|
||||
|
||||
|
||||
msgctxt "Image"
|
||||
msgid "New"
|
||||
msgstr "Аҿыц"
|
||||
|
||||
|
||||
msgctxt "Operator"
|
||||
msgid "Text"
|
||||
msgstr "Аҳәоу"
|
||||
|
||||
|
||||
msgctxt "Operator"
|
||||
msgid "Rotation"
|
||||
msgstr "Агьежьра"
|
||||
|
||||
|
||||
msgctxt "Text"
|
||||
msgid "New"
|
||||
msgstr "Аҿыц"
|
||||
|
||||
|
||||
msgid "location"
|
||||
msgstr "Аҭыԥ"
|
||||
|
||||
|
||||
msgctxt "Operator"
|
||||
msgid "Plane"
|
||||
msgstr "Аҟьаҟьа"
|
||||
|
||||
|
||||
msgctxt "Operator"
|
||||
msgid "Cube"
|
||||
msgstr "Акуб"
|
||||
|
||||
|
||||
msgctxt "Operator"
|
||||
msgid "UV Sphere"
|
||||
msgstr "UV Асфера"
|
||||
|
||||
|
||||
msgctxt "Operator"
|
||||
msgid "Ico Sphere"
|
||||
msgstr "Ico Асфера "
|
||||
|
||||
|
||||
msgctxt "Operator"
|
||||
msgid "Cylinder"
|
||||
msgstr "Ацилиндр"
|
||||
|
||||
|
||||
msgctxt "Operator"
|
||||
msgid "Cone"
|
||||
msgstr "Аконус"
|
||||
|
||||
|
||||
msgctxt "Operator"
|
||||
msgid "Monkey"
|
||||
msgstr "Амаамын"
|
||||
|
||||
|
||||
msgctxt "Operator"
|
||||
msgid "Camera"
|
||||
msgstr "Акамера"
|
||||
|
||||
|
||||
msgctxt "Operator"
|
||||
msgid "Speaker"
|
||||
msgstr "Абжьы Ахыҵхырҭа"
|
||||
|
||||
|
||||
msgctxt "Operator"
|
||||
msgid "Armature"
|
||||
msgstr "Абаҩ"
|
||||
|
||||
|
||||
msgctxt "Operator"
|
||||
msgid "Lattice"
|
||||
msgstr "Аҭыџьеихац"
|
||||
|
||||
|
||||
msgctxt "Object"
|
||||
msgid "New"
|
||||
msgstr "Аҿыц"
|
||||
|
||||
|
||||
msgctxt "Mesh"
|
||||
msgid "New"
|
||||
msgstr "Аҿыц"
|
||||
|
||||
|
||||
msgctxt "Curve"
|
||||
msgid "New"
|
||||
msgstr "Аҿыц"
|
||||
|
||||
|
||||
msgctxt "Metaball"
|
||||
msgid "New"
|
||||
msgstr "Аҿыц"
|
||||
|
||||
|
||||
msgctxt "Material"
|
||||
msgid "New"
|
||||
msgstr "Аҿыц"
|
||||
|
||||
|
||||
msgctxt "Texture"
|
||||
msgid "New"
|
||||
msgstr "Аҿыц"
|
||||
|
||||
|
||||
msgctxt "Lattice"
|
||||
msgid "New"
|
||||
msgstr "Аҿыц"
|
||||
|
||||
|
||||
msgctxt "Light"
|
||||
msgid "New"
|
||||
msgstr "Аҿыц"
|
||||
|
||||
|
||||
msgctxt "Camera"
|
||||
msgid "New"
|
||||
msgstr "Аҿыц"
|
||||
|
||||
|
||||
msgctxt "World"
|
||||
msgid "New"
|
||||
msgstr "Аҿыц"
|
||||
|
||||
|
||||
msgctxt "Screen"
|
||||
msgid "New"
|
||||
msgstr "Аҿыц"
|
||||
|
||||
|
||||
msgctxt "Speaker"
|
||||
msgid "New"
|
||||
msgstr "Аҿыц"
|
||||
|
||||
|
||||
msgctxt "Sound"
|
||||
msgid "New"
|
||||
msgstr "Аҿыц"
|
||||
|
||||
|
||||
msgctxt "Armature"
|
||||
msgid "New"
|
||||
msgstr "Аҿыц"
|
||||
|
||||
|
||||
msgctxt "Action"
|
||||
msgid "New"
|
||||
msgstr "Аҿыц"
|
||||
|
||||
|
||||
msgctxt "NodeTree"
|
||||
msgid "New"
|
||||
msgstr "Аҿыц"
|
||||
|
||||
|
||||
msgctxt "Brush"
|
||||
msgid "New"
|
||||
msgstr "Аҿыц"
|
||||
|
||||
|
||||
msgctxt "ParticleSettings"
|
||||
msgid "New"
|
||||
msgstr "Аҿыц"
|
||||
|
||||
|
||||
msgctxt "GPencil"
|
||||
msgid "New"
|
||||
msgstr "Аҿыц"
|
||||
|
||||
|
||||
msgctxt "FreestyleLineStyle"
|
||||
msgid "New"
|
||||
msgstr "Аҿыц"
|
||||
|
||||
|
||||
msgctxt "WorkSpace"
|
||||
msgid "New"
|
||||
msgstr "Аҿыц"
|
||||
|
||||
|
||||
msgctxt "LightProbe"
|
||||
msgid "New"
|
||||
msgstr "Аҿыц"
|
||||
|
||||
|
||||
msgctxt "Action"
|
||||
msgid "Group"
|
||||
msgstr "Агәыԥ"
|
||||
|
||||
|
||||
msgid "Front Orthographic"
|
||||
msgstr "Аԥхьа Аҩышьаԥҟара"
|
||||
|
||||
|
||||
msgid "Front Perspective"
|
||||
msgstr "Аԥхьа Ԥхьаԥшра"
|
||||
|
||||
|
||||
msgid "Back Orthographic"
|
||||
msgstr "Ашьҭахь Аҩышьаԥҟара"
|
||||
|
||||
|
||||
msgid "Back Perspective"
|
||||
msgstr "Ашьҭахь Ԥхьаԥшра"
|
||||
|
||||
|
||||
msgid "Top Orthographic"
|
||||
msgstr "Ақә Аҩышьаԥҟара"
|
||||
|
||||
|
||||
msgid "Top Perspective"
|
||||
msgstr "Ақә Ԥхьаԥшра"
|
||||
|
||||
|
||||
msgid "Bottom Orthographic"
|
||||
msgstr "Ҵаҟа Аҩышьаԥҟара"
|
||||
|
||||
|
||||
msgid "Bottom Perspective"
|
||||
msgstr "Ҵаҟа Ԥхьаԥшра"
|
||||
|
||||
|
||||
msgid "Right Orthographic"
|
||||
msgstr "Арӷьа Аҩышьаԥҟара"
|
||||
|
||||
|
||||
msgid "Right Perspective"
|
||||
msgstr "Арӷьа Ԥхьаԥшра"
|
||||
|
||||
|
||||
msgid "Left Orthographic"
|
||||
msgstr "Арма Аҩышьаԥҟара"
|
||||
|
||||
|
||||
msgid "Left Perspective"
|
||||
msgstr "Арма Ԥхьаԥшра"
|
||||
|
||||
|
||||
msgid "Camera Perspective"
|
||||
msgstr "Акамера Ԥхьаԥшра"
|
||||
|
||||
|
||||
msgid "Camera Orthographic"
|
||||
msgstr "Акамера Аҩышьаԥҟара"
|
||||
|
||||
|
||||
msgid "User Orthographic"
|
||||
msgstr "Ахархәаҩ Аҩышьаԥҟара"
|
||||
|
||||
|
||||
msgid "User Perspective"
|
||||
msgstr "Ахархәаҩ Ԥхьаԥшра"
|
||||
|
||||
|
||||
msgid "global"
|
||||
msgstr "Зеиԥшла"
|
||||
|
||||
|
||||
msgid "local"
|
||||
msgstr "Ҷыдала"
|
||||
|
||||
|
||||
msgid "view"
|
||||
msgstr "Аԥшра"
|
||||
|
||||
|
||||
msgid "cursor"
|
||||
msgstr "Ахырхага"
|
||||
|
||||
|
||||
msgctxt "Armature"
|
||||
msgid "Group"
|
||||
msgstr "Агәыԥ"
|
||||
|
41082
locale/po/ar.po
Normal file
41082
locale/po/ar.po
Normal file
File diff suppressed because it is too large
Load Diff
72547
locale/po/ca.po
Normal file
72547
locale/po/ca.po
Normal file
File diff suppressed because it is too large
Load Diff
48103
locale/po/cs.po
Normal file
48103
locale/po/cs.po
Normal file
File diff suppressed because it is too large
Load Diff
66345
locale/po/de.po
Normal file
66345
locale/po/de.po
Normal file
File diff suppressed because it is too large
Load Diff
75
locale/po/eo.po
Normal file
75
locale/po/eo.po
Normal file
@@ -0,0 +1,75 @@
|
||||
|
||||
msgid "Select"
|
||||
msgstr "Elektas"
|
||||
|
||||
|
||||
msgid "Add"
|
||||
msgstr "Aldonia"
|
||||
|
||||
|
||||
msgid "View"
|
||||
msgstr "Rigardi"
|
||||
|
||||
|
||||
msgid "Render"
|
||||
msgstr "Por Kapitulacigi"
|
||||
|
||||
|
||||
msgid "Window"
|
||||
msgstr "Fenestro"
|
||||
|
||||
|
||||
msgid "Edit Mode"
|
||||
msgstr "Prilaborado Modo"
|
||||
|
||||
|
||||
msgid "Links"
|
||||
msgstr "Ligiloj"
|
||||
|
||||
|
||||
msgid "Object Mode"
|
||||
msgstr "Objekto Modo"
|
||||
|
||||
|
||||
msgid "Sculpt Mode"
|
||||
msgstr "Skulptaĵo Modo"
|
||||
|
||||
|
||||
msgid "File"
|
||||
msgstr "Dosiero"
|
||||
|
||||
|
||||
msgid "Help"
|
||||
msgstr "Helpo"
|
||||
|
||||
|
||||
msgid "New"
|
||||
msgstr "Nova"
|
||||
|
||||
|
||||
msgctxt "Operator"
|
||||
msgid "Select"
|
||||
msgstr "Elektas"
|
||||
|
||||
|
||||
msgid "View Z Axis"
|
||||
msgstr "Montri Z Axis"
|
||||
|
||||
|
||||
msgid "View X Axis"
|
||||
msgstr "Montri X Axis"
|
||||
|
||||
|
||||
msgctxt "Operator"
|
||||
msgid "Render"
|
||||
msgstr "Por Kapitulacigi"
|
||||
|
||||
|
||||
msgctxt "Operator"
|
||||
msgid "Recover Last Session"
|
||||
msgstr "Restaŭri lasta kunsido"
|
||||
|
||||
|
||||
msgid "Recent"
|
||||
msgstr "Freŝaj"
|
||||
|
126298
locale/po/es.po
Normal file
126298
locale/po/es.po
Normal file
File diff suppressed because it is too large
Load Diff
99778
locale/po/es_ES.po
Normal file
99778
locale/po/es_ES.po
Normal file
File diff suppressed because it is too large
Load Diff
2578
locale/po/eu.po
Normal file
2578
locale/po/eu.po
Normal file
File diff suppressed because it is too large
Load Diff
4305
locale/po/fa.po
Normal file
4305
locale/po/fa.po
Normal file
File diff suppressed because it is too large
Load Diff
12368
locale/po/fi.po
Normal file
12368
locale/po/fi.po
Normal file
File diff suppressed because it is too large
Load Diff
128050
locale/po/fr.po
Normal file
128050
locale/po/fr.po
Normal file
File diff suppressed because it is too large
Load Diff
123
locale/po/ha.po
Normal file
123
locale/po/ha.po
Normal file
@@ -0,0 +1,123 @@
|
||||
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: Blender 3.5.0 Beta (b'5fd4d47206ff')\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2023-02-20 13:46:36\n"
|
||||
"PO-Revision-Date: 2017-12-25 14:01+0100\n"
|
||||
"Last-Translator: UMAR HARUNA ABDULLAHI <umarbrowser20@gmail.com>\n"
|
||||
"Language-Team: BlenderNigeria <pyc0der@outlook.com>\n"
|
||||
"Language: ha\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Generator: Poedit 1.8.11"
|
||||
|
||||
|
||||
msgid "Name"
|
||||
msgstr "Suna"
|
||||
|
||||
|
||||
msgid "Action F-Curves"
|
||||
msgstr "Aikin F-Curves"
|
||||
|
||||
|
||||
msgid "Collection of action F-Curves"
|
||||
msgstr "Karban bayanan aikin F-Curves"
|
||||
|
||||
|
||||
msgid "Action Group"
|
||||
msgstr "Aikin Kunguya"
|
||||
|
||||
|
||||
msgid "Groups of F-Curves"
|
||||
msgstr "Kungiyar F-Curves"
|
||||
|
||||
|
||||
msgid "Channels"
|
||||
msgstr "Channels"
|
||||
|
||||
|
||||
msgid "F-Curves in this group"
|
||||
msgstr "F-Curves acikin wannan kungiya"
|
||||
|
||||
|
||||
msgid "Color Set"
|
||||
msgstr "Sashin Launi"
|
||||
|
||||
|
||||
msgid "Custom color set to use"
|
||||
msgstr "Hadaddiyar sashin launin daza a saka"
|
||||
|
||||
|
||||
msgid "Default Colors"
|
||||
msgstr "Launi na ainihi"
|
||||
|
||||
|
||||
msgid "01 - Theme Color Set"
|
||||
msgstr "01 - Theme Color Set"
|
||||
|
||||
|
||||
msgid "02 - Theme Color Set"
|
||||
msgstr "02 - Theme Color Set"
|
||||
|
||||
|
||||
msgid "03 - Theme Color Set"
|
||||
msgstr "03 - Theme Color Set"
|
||||
|
||||
|
||||
msgid "04 - Theme Color Set"
|
||||
msgstr "04 - Theme Color Set"
|
||||
|
||||
|
||||
msgid "Custom Color Set"
|
||||
msgstr "Hadaddiyar sashin launuka"
|
||||
|
||||
|
||||
msgid "Colors"
|
||||
msgstr "launuka"
|
||||
|
||||
|
||||
msgid "Copy of the colors associated with the group's color set"
|
||||
msgstr "Ari launukan dasuka danganta da launukannan"
|
||||
|
||||
|
||||
msgid "Color set is user-defined instead of a fixed theme color set"
|
||||
msgstr "Launukan nawanda yasane ba na gyararren theme ba"
|
||||
|
||||
|
||||
msgid "Lock"
|
||||
msgstr "rufe"
|
||||
|
||||
|
||||
msgid "Action group is locked"
|
||||
msgstr "Aikin kungiya ya rufe"
|
||||
|
||||
|
||||
msgid "Select"
|
||||
msgstr "Zabi"
|
||||
|
||||
|
||||
msgid "Action group is selected"
|
||||
msgstr "An zabi aikin kungiya"
|
||||
|
||||
|
||||
msgid "Expanded"
|
||||
msgstr "budadde"
|
||||
|
||||
|
||||
msgid "Action Groups"
|
||||
msgstr "Aikin kungiyoyi"
|
||||
|
||||
|
||||
msgid "Collection of action groups"
|
||||
msgstr "Karban aikin kungiyoyi"
|
||||
|
||||
|
||||
msgid "Action Pose Markers"
|
||||
msgstr "Aikin Pose Markers"
|
||||
|
||||
|
||||
msgid "Collection of timeline markers"
|
||||
msgstr "Sashin lokacin markers"
|
||||
|
531
locale/po/he.po
Normal file
531
locale/po/he.po
Normal file
@@ -0,0 +1,531 @@
|
||||
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: Blender 3.5.0 Beta (b'5fd4d47206ff')\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2023-02-20 13:46:36\n"
|
||||
"PO-Revision-Date: 2012-10-07 13:56+0300\n"
|
||||
"Last-Translator: Barak Itkin <lightningismyname@gmail.com>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
"Language: he\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
"X-Generator: Virtaal 0.7.0"
|
||||
|
||||
|
||||
msgid "Name"
|
||||
msgstr "םש"
|
||||
|
||||
|
||||
msgid "Color"
|
||||
msgstr "עבצ"
|
||||
|
||||
|
||||
msgid "Value"
|
||||
msgstr "ךרע"
|
||||
|
||||
|
||||
msgid "Off"
|
||||
msgstr "יובכ"
|
||||
|
||||
|
||||
msgid "Add"
|
||||
msgstr "ףסוה"
|
||||
|
||||
|
||||
msgid "Width"
|
||||
msgstr "בחור"
|
||||
|
||||
|
||||
msgid "Vector"
|
||||
msgstr "רוטקו"
|
||||
|
||||
|
||||
msgid "Indirect"
|
||||
msgstr "ףיקע"
|
||||
|
||||
|
||||
msgid "Speed"
|
||||
msgstr "תוריהמ"
|
||||
|
||||
|
||||
msgid "Strength"
|
||||
msgstr "המצוע"
|
||||
|
||||
|
||||
msgid "Random"
|
||||
msgstr "יארקא"
|
||||
|
||||
|
||||
msgid "Remove"
|
||||
msgstr "רסה"
|
||||
|
||||
|
||||
msgid "Vertex Color"
|
||||
msgstr "דוקדוק עבצ"
|
||||
|
||||
|
||||
msgid "Smooth"
|
||||
msgstr "קלח"
|
||||
|
||||
|
||||
msgid "Saturation"
|
||||
msgstr "היוור"
|
||||
|
||||
|
||||
msgid "Path"
|
||||
msgstr "ביתנ"
|
||||
|
||||
|
||||
msgid "Rotation"
|
||||
msgstr "בוביס"
|
||||
|
||||
|
||||
msgid "Left"
|
||||
msgstr "לאמש"
|
||||
|
||||
|
||||
msgid "Right"
|
||||
msgstr "ןימי"
|
||||
|
||||
|
||||
msgid "Center"
|
||||
msgstr "זכרמ"
|
||||
|
||||
|
||||
msgid "Gamma"
|
||||
msgstr "אמג"
|
||||
|
||||
|
||||
msgid "Constant"
|
||||
msgstr "עובק"
|
||||
|
||||
|
||||
msgid "Position"
|
||||
msgstr "םוקמ"
|
||||
|
||||
|
||||
msgid "Output"
|
||||
msgstr "טלפ"
|
||||
|
||||
|
||||
msgid "Default"
|
||||
msgstr "לדחמ תרירב"
|
||||
|
||||
|
||||
msgid "Location"
|
||||
msgstr "םוקימ"
|
||||
|
||||
|
||||
msgid "White Level"
|
||||
msgstr "ןבל תמר"
|
||||
|
||||
|
||||
msgid "Surface"
|
||||
msgstr "חטשמ"
|
||||
|
||||
|
||||
msgid "View"
|
||||
msgstr "הגוצת"
|
||||
|
||||
|
||||
msgid "Scene"
|
||||
msgstr "הנצס"
|
||||
|
||||
|
||||
msgid "Shrink"
|
||||
msgstr "ץווכ"
|
||||
|
||||
|
||||
msgid "Modifiers"
|
||||
msgstr "םינשמ"
|
||||
|
||||
|
||||
msgid "Frequency"
|
||||
msgstr "תורידת"
|
||||
|
||||
|
||||
msgid "Size"
|
||||
msgstr "לדוג"
|
||||
|
||||
|
||||
msgid "Environment"
|
||||
msgstr "הביבס"
|
||||
|
||||
|
||||
msgid "End"
|
||||
msgstr "ףוס"
|
||||
|
||||
|
||||
msgid "Start"
|
||||
msgstr "הלחתה"
|
||||
|
||||
|
||||
msgid "Density"
|
||||
msgstr "תופיפצ"
|
||||
|
||||
|
||||
msgid "Generated"
|
||||
msgstr "רצוימ"
|
||||
|
||||
|
||||
msgid "Window"
|
||||
msgstr "ןולח"
|
||||
|
||||
|
||||
msgid "Header"
|
||||
msgstr "תרתוכ"
|
||||
|
||||
|
||||
msgid "Tools"
|
||||
msgstr "םילכ"
|
||||
|
||||
|
||||
msgid "Edit Mode"
|
||||
msgstr "הכירע בצמ"
|
||||
|
||||
|
||||
msgid "Mirror"
|
||||
msgstr "הארמ"
|
||||
|
||||
|
||||
msgid "Space"
|
||||
msgstr "חוור"
|
||||
|
||||
|
||||
msgid "Red"
|
||||
msgstr "םודא"
|
||||
|
||||
|
||||
msgid "Green"
|
||||
msgstr "קורי"
|
||||
|
||||
|
||||
msgid "Blue"
|
||||
msgstr "לוחכ"
|
||||
|
||||
|
||||
msgid "Mask"
|
||||
msgstr "הכסמ"
|
||||
|
||||
|
||||
msgid "Up"
|
||||
msgstr "הלעמ"
|
||||
|
||||
|
||||
msgid "Mean"
|
||||
msgstr "עצוממ"
|
||||
|
||||
|
||||
msgid "Movie"
|
||||
msgstr "טרס"
|
||||
|
||||
|
||||
msgid "Roughness"
|
||||
msgstr "תוסג"
|
||||
|
||||
|
||||
msgid "Specular"
|
||||
msgstr "רלקפסא"
|
||||
|
||||
|
||||
msgid "Both"
|
||||
msgstr "םהינש"
|
||||
|
||||
|
||||
msgid "Sculpt Mode"
|
||||
msgstr "לוסיפ בצמ"
|
||||
|
||||
|
||||
msgid "Vertex Paint"
|
||||
msgstr "םידוקדוק תעיבצ"
|
||||
|
||||
|
||||
msgid "Weight Paint"
|
||||
msgstr "לקשמ תעיבצ"
|
||||
|
||||
|
||||
msgid "Quadratic"
|
||||
msgstr "יעוביר"
|
||||
|
||||
|
||||
msgid "Mist"
|
||||
msgstr "לפרע"
|
||||
|
||||
|
||||
msgid "Color Management"
|
||||
msgstr "עבצ לוהינ"
|
||||
|
||||
|
||||
msgid "Apply"
|
||||
msgstr "לחה"
|
||||
|
||||
|
||||
msgid "Python"
|
||||
msgstr "Python"
|
||||
|
||||
|
||||
msgid "System"
|
||||
msgstr "תכרעמ"
|
||||
|
||||
|
||||
msgid "Convert"
|
||||
msgstr "רמה"
|
||||
|
||||
|
||||
msgid "World"
|
||||
msgstr "םלוע"
|
||||
|
||||
|
||||
msgid "Lift"
|
||||
msgstr "יוליע"
|
||||
|
||||
|
||||
msgid "Y Axis"
|
||||
msgstr "Y ריצ"
|
||||
|
||||
|
||||
msgid "Background"
|
||||
msgstr "עקר"
|
||||
|
||||
|
||||
msgid "Reflection"
|
||||
msgstr "תופקתשה"
|
||||
|
||||
|
||||
msgid "Emission"
|
||||
msgstr "הטילפ"
|
||||
|
||||
|
||||
msgid "Down"
|
||||
msgstr "הטמ"
|
||||
|
||||
|
||||
msgid "Lamp"
|
||||
msgstr "הרונמ"
|
||||
|
||||
|
||||
msgid "Reset"
|
||||
msgstr "לוחתא"
|
||||
|
||||
|
||||
msgid "Manual"
|
||||
msgstr "ינדי"
|
||||
|
||||
|
||||
msgid "Credits"
|
||||
msgstr "תודות"
|
||||
|
||||
|
||||
msgid "Detail"
|
||||
msgstr "טוריפ"
|
||||
|
||||
|
||||
msgid "Dimension"
|
||||
msgstr "דמימ"
|
||||
|
||||
|
||||
msgid "Location:"
|
||||
msgstr ":םוקימ"
|
||||
|
||||
|
||||
msgid "Nothing selected"
|
||||
msgstr "רבד רחבנ אל"
|
||||
|
||||
|
||||
msgctxt "Operator"
|
||||
msgid "Change Shortcut"
|
||||
msgstr "ךרד־רוציק הנש"
|
||||
|
||||
|
||||
msgctxt "Operator"
|
||||
msgid "Reset All to Default Values"
|
||||
msgstr "לדחמה תרירב יכרעל לכה לחתא"
|
||||
|
||||
|
||||
msgctxt "Operator"
|
||||
msgid "Remove Shortcut"
|
||||
msgstr "ךרד־רוציק רסה"
|
||||
|
||||
|
||||
msgid "Value:"
|
||||
msgstr ":ךרע"
|
||||
|
||||
|
||||
msgid "(Gamma Corrected)"
|
||||
msgstr "(אמג ןקותמ)"
|
||||
|
||||
|
||||
msgid "Shortcut: %s"
|
||||
msgstr "%s :ךרד־רוציק"
|
||||
|
||||
|
||||
msgid "Python: %s"
|
||||
msgstr "Python: %s"
|
||||
|
||||
|
||||
msgid "Radians: %f"
|
||||
msgstr "%f :םינאידר"
|
||||
|
||||
|
||||
msgid "Expression: %s"
|
||||
msgstr "%s :יוטיב"
|
||||
|
||||
|
||||
msgid "Library: %s"
|
||||
msgstr "%s :היירפס"
|
||||
|
||||
|
||||
msgid "Disabled: %s"
|
||||
msgstr "%s :תבשומ"
|
||||
|
||||
|
||||
msgid "Python: %s.%s"
|
||||
msgstr "Python: %s.%s"
|
||||
|
||||
|
||||
msgid "No Properties"
|
||||
msgstr "םינייפאמ אלל"
|
||||
|
||||
|
||||
msgid "Delete points"
|
||||
msgstr "תודוקנ קחמ"
|
||||
|
||||
|
||||
msgid "Stop this job"
|
||||
msgstr "וז הדובע רוצע"
|
||||
|
||||
|
||||
msgid "%d items"
|
||||
msgstr "%d םיטירפ"
|
||||
|
||||
|
||||
msgid "Fields"
|
||||
msgstr "תודש"
|
||||
|
||||
|
||||
msgid "File Path:"
|
||||
msgstr ":ץבוק ביתנ"
|
||||
|
||||
|
||||
msgid "File path"
|
||||
msgstr "ץבוק ביתנ"
|
||||
|
||||
|
||||
msgid "Cancel"
|
||||
msgstr "לוטיב"
|
||||
|
||||
|
||||
msgid "File name"
|
||||
msgstr "ץבוק םש"
|
||||
|
||||
|
||||
msgid "Add Modifier"
|
||||
msgstr "הנשמ ףסוה"
|
||||
|
||||
|
||||
msgid "Select Layer"
|
||||
msgstr "הבכש רחב"
|
||||
|
||||
|
||||
msgid " + Z"
|
||||
msgstr " + Z"
|
||||
|
||||
|
||||
msgid "Label Size"
|
||||
msgstr "תיוות לדוג"
|
||||
|
||||
|
||||
msgid "Squash"
|
||||
msgstr "ךעמ"
|
||||
|
||||
|
||||
msgid "Disconnect"
|
||||
msgstr "קתנ"
|
||||
|
||||
|
||||
msgid "Dependency Loop"
|
||||
msgstr "תויולת תאלול"
|
||||
|
||||
|
||||
msgid "Vertex:"
|
||||
msgstr ":דוקדוק"
|
||||
|
||||
|
||||
msgid "Median:"
|
||||
msgstr ":ןויצח"
|
||||
|
||||
|
||||
msgid "Radius X:"
|
||||
msgstr ":X סוידר"
|
||||
|
||||
|
||||
msgid "Radius Y:"
|
||||
msgstr ":Y סוידר"
|
||||
|
||||
|
||||
msgid "Weight:"
|
||||
msgstr ":לקשמ"
|
||||
|
||||
|
||||
msgid "Radius:"
|
||||
msgstr ":סוידר"
|
||||
|
||||
|
||||
msgid "Mean Radius:"
|
||||
msgstr ":עצוממ סוידר"
|
||||
|
||||
|
||||
msgid "Modify"
|
||||
msgstr "הנש"
|
||||
|
||||
|
||||
msgid "Color Space:"
|
||||
msgstr ":עבצ בחרמ"
|
||||
|
||||
|
||||
msgid "Key Color"
|
||||
msgstr "חתפמ עבצ"
|
||||
|
||||
|
||||
msgid "Image 1"
|
||||
msgstr "1 הנומת"
|
||||
|
||||
|
||||
msgid "Image 2"
|
||||
msgstr "2 הנומת"
|
||||
|
||||
|
||||
msgid "Std Dev"
|
||||
msgstr "ןקת תייטס"
|
||||
|
||||
|
||||
msgid "Path:"
|
||||
msgstr ":ביתנ"
|
||||
|
||||
|
||||
msgid "Add Input"
|
||||
msgstr "טלק ףסוה"
|
||||
|
||||
|
||||
msgid "Incoming"
|
||||
msgstr "סנכנ"
|
||||
|
||||
|
||||
msgid "Color2"
|
||||
msgstr "2עבצ"
|
||||
|
||||
|
||||
msgid "Row Height"
|
||||
msgstr "הרוש הבוג"
|
||||
|
||||
|
||||
msgid "Bricks 1"
|
||||
msgstr "1 םינבל"
|
||||
|
||||
|
||||
msgid "Bricks 2"
|
||||
msgstr "2 םינבל"
|
||||
|
7300
locale/po/hi.po
Normal file
7300
locale/po/hi.po
Normal file
File diff suppressed because it is too large
Load Diff
9
locale/po/hr.po
Normal file
9
locale/po/hr.po
Normal file
@@ -0,0 +1,9 @@
|
||||
|
||||
msgctxt "Operator"
|
||||
msgid "Duplicate Objects"
|
||||
msgstr "bbbbbbbbbbbbb"
|
||||
|
||||
|
||||
msgid "Duplicate Objects"
|
||||
msgstr "aaaaaaaaa"
|
||||
|
21219
locale/po/hu.po
Normal file
21219
locale/po/hu.po
Normal file
File diff suppressed because it is too large
Load Diff
27271
locale/po/id.po
Normal file
27271
locale/po/id.po
Normal file
File diff suppressed because it is too large
Load Diff
60880
locale/po/it.po
Normal file
60880
locale/po/it.po
Normal file
File diff suppressed because it is too large
Load Diff
128626
locale/po/ja.po
Normal file
128626
locale/po/ja.po
Normal file
File diff suppressed because it is too large
Load Diff
43107
locale/po/ka.po
Normal file
43107
locale/po/ka.po
Normal file
File diff suppressed because it is too large
Load Diff
89826
locale/po/ko.po
Normal file
89826
locale/po/ko.po
Normal file
File diff suppressed because it is too large
Load Diff
4170
locale/po/ky.po
Normal file
4170
locale/po/ky.po
Normal file
File diff suppressed because it is too large
Load Diff
9751
locale/po/nl.po
Normal file
9751
locale/po/nl.po
Normal file
File diff suppressed because it is too large
Load Diff
11564
locale/po/pl.po
Normal file
11564
locale/po/pl.po
Normal file
File diff suppressed because it is too large
Load Diff
68171
locale/po/pt.po
Normal file
68171
locale/po/pt.po
Normal file
File diff suppressed because it is too large
Load Diff
76649
locale/po/pt_BR.po
Normal file
76649
locale/po/pt_BR.po
Normal file
File diff suppressed because it is too large
Load Diff
92634
locale/po/ru.po
Normal file
92634
locale/po/ru.po
Normal file
File diff suppressed because it is too large
Load Diff
128065
locale/po/sk.po
Normal file
128065
locale/po/sk.po
Normal file
File diff suppressed because it is too large
Load Diff
28383
locale/po/sr.po
Normal file
28383
locale/po/sr.po
Normal file
File diff suppressed because it is too large
Load Diff
28363
locale/po/sr@latin.po
Normal file
28363
locale/po/sr@latin.po
Normal file
File diff suppressed because it is too large
Load Diff
2810
locale/po/sv.po
Normal file
2810
locale/po/sv.po
Normal file
File diff suppressed because it is too large
Load Diff
5922
locale/po/th.po
Normal file
5922
locale/po/th.po
Normal file
File diff suppressed because it is too large
Load Diff
6297
locale/po/tr.po
Normal file
6297
locale/po/tr.po
Normal file
File diff suppressed because it is too large
Load Diff
104399
locale/po/uk.po
Normal file
104399
locale/po/uk.po
Normal file
File diff suppressed because it is too large
Load Diff
122861
locale/po/vi.po
Normal file
122861
locale/po/vi.po
Normal file
File diff suppressed because it is too large
Load Diff
127996
locale/po/zh_CN.po
Normal file
127996
locale/po/zh_CN.po
Normal file
File diff suppressed because it is too large
Load Diff
61951
locale/po/zh_TW.po
Normal file
61951
locale/po/zh_TW.po
Normal file
File diff suppressed because it is too large
Load Diff
@@ -33,15 +33,15 @@ aggressive = 2
|
||||
|
||||
# Exclude:
|
||||
# - `./extern/` because it's maintained separately.
|
||||
# - `./release/scripts/addons*` & `./source/tools/` because they are external repositories
|
||||
# - `./scripts/addons*` & `./tools/` because they are external repositories
|
||||
# which can contain their own configuration and be handled separately.
|
||||
# - `./release/scripts/modules/rna_manual_reference.py` because it's a generated data-file.
|
||||
# - `./scripts/modules/rna_manual_reference.py` because it's a generated data-file.
|
||||
exclude = """
|
||||
./extern/*,
|
||||
./release/scripts/addons/*,
|
||||
./release/scripts/addons_contrib/*,
|
||||
./release/scripts/modules/rna_manual_reference.py,
|
||||
./source/tools/*,
|
||||
./scripts/addons/*,
|
||||
./scripts/addons_contrib/*,
|
||||
./scripts/modules/rna_manual_reference.py,
|
||||
./tools/*,
|
||||
"""
|
||||
|
||||
# Omit settings such as `jobs`, `in_place` & `recursive` as they can cause editor utilities that auto-format on save
|
||||
|
Submodule release/datafiles/locale deleted from 4331c8e76c
@@ -1,7 +1,7 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0-or-later */
|
||||
|
||||
/**
|
||||
* Generated by 'source/tools/utils/blender_theme_as_c.py'
|
||||
* Generated by 'tools/utils/blender_theme_as_c.py'
|
||||
*
|
||||
* Do not hand edit this file!
|
||||
*/
|
||||
|
Submodule release/scripts/addons deleted from b3f0ffc587
Submodule release/scripts/addons_contrib deleted from 14ab927340
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user