I18n: Manually extract many node socket menu items

Node menu sockets' items are not currently exposed to RNA, and need to
be extracted manually for now.

Pull Request: https://projects.blender.org/blender/blender/pulls/147579
This commit is contained in:
Damien Picard
2025-10-07 18:13:39 +02:00
committed by Gitea
parent 9cbbe1ef73
commit f79165eb7c
42 changed files with 254 additions and 230 deletions

View File

@@ -21,20 +21,20 @@ static const EnumPropertyItem type_items[] = {
{CMP_NODE_ALPHA_OVER_OPERATION_TYPE_OVER,
"OVER",
ICON_NONE,
"Over",
"The foreground goes over the background according to the alpha of the foreground"},
N_("Over"),
N_("The foreground goes over the background according to the alpha of the foreground")},
{CMP_NODE_ALPHA_OVER_OPERATION_TYPE_DISJOINT_OVER,
"DISJOINT_OVER",
ICON_NONE,
"Disjoint Over",
"The foreground goes over the background according to the alpha of the foreground while "
"assuming the background is being held out by the foreground"},
N_("Disjoint Over"),
N_("The foreground goes over the background according to the alpha of the foreground while "
"assuming the background is being held out by the foreground")},
{CMP_NODE_ALPHA_OVER_OPERATION_TYPE_CONJOINT_OVER,
"CONJOINT_OVER",
ICON_NONE,
"Conjoint Over",
"The foreground goes over the background according to the alpha of the foreground but the "
"foreground completely covers the background if it is more opaque"},
N_("Conjoint Over"),
N_("The foreground goes over the background according to the alpha of the foreground but the "
"foreground completely covers the background if it is more opaque")},
{0, nullptr, 0, nullptr, nullptr},
};

View File

@@ -30,14 +30,14 @@
namespace blender::nodes::node_composite_blur_cc {
static const EnumPropertyItem type_items[] = {
{R_FILTER_BOX, "FLAT", 0, "Flat", ""},
{R_FILTER_TENT, "TENT", 0, "Tent", ""},
{R_FILTER_QUAD, "QUAD", 0, "Quadratic", ""},
{R_FILTER_CUBIC, "CUBIC", 0, "Cubic", ""},
{R_FILTER_GAUSS, "GAUSS", 0, "Gaussian", ""},
{R_FILTER_FAST_GAUSS, "FAST_GAUSS", 0, "Fast Gaussian", ""},
{R_FILTER_CATROM, "CATROM", 0, "Catrom", ""},
{R_FILTER_MITCH, "MITCH", 0, "Mitch", ""},
{R_FILTER_BOX, "FLAT", 0, N_("Flat"), ""},
{R_FILTER_TENT, "TENT", 0, N_("Tent"), ""},
{R_FILTER_QUAD, "QUAD", 0, N_("Quadratic"), ""},
{R_FILTER_CUBIC, "CUBIC", 0, N_("Cubic"), ""},
{R_FILTER_GAUSS, "GAUSS", 0, N_("Gaussian"), ""},
{R_FILTER_FAST_GAUSS, "FAST_GAUSS", 0, N_("Fast Gaussian"), ""},
{R_FILTER_CATROM, "CATROM", 0, N_("Catrom"), ""},
{R_FILTER_MITCH, "MITCH", 0, N_("Mitch"), ""},
{0, nullptr, 0, nullptr, nullptr},
};

View File

@@ -24,10 +24,10 @@
namespace blender::nodes::node_composite_boxmask_cc {
static const EnumPropertyItem operation_items[] = {
{CMP_NODE_MASKTYPE_ADD, "ADD", 0, "Add", ""},
{CMP_NODE_MASKTYPE_SUBTRACT, "SUBTRACT", 0, "Subtract", ""},
{CMP_NODE_MASKTYPE_MULTIPLY, "MULTIPLY", 0, "Multiply", ""},
{CMP_NODE_MASKTYPE_NOT, "NOT", 0, "Not", ""},
{CMP_NODE_MASKTYPE_ADD, "ADD", 0, N_("Add"), ""},
{CMP_NODE_MASKTYPE_SUBTRACT, "SUBTRACT", 0, N_("Subtract"), ""},
{CMP_NODE_MASKTYPE_MULTIPLY, "MULTIPLY", 0, N_("Multiply"), ""},
{CMP_NODE_MASKTYPE_NOT, "NOT", 0, N_("Not"), ""},
{0, nullptr, 0, nullptr, nullptr},
};

View File

@@ -20,14 +20,22 @@
namespace blender::nodes::node_composite_channel_matte_cc {
static const EnumPropertyItem color_space_items[] = {
{CMP_NODE_CHANNEL_MATTE_CS_RGB, "RGB", 0, "RGB", "RGB (Red, Green, Blue) color space"},
{CMP_NODE_CHANNEL_MATTE_CS_HSV, "HSV", 0, "HSV", "HSV (Hue, Saturation, Value) color space"},
{CMP_NODE_CHANNEL_MATTE_CS_YUV, "YUV", 0, "YUV", "YUV (Y - luma, U V - chroma) color space"},
{CMP_NODE_CHANNEL_MATTE_CS_RGB, "RGB", 0, N_("RGB"), N_("RGB (Red, Green, Blue) color space")},
{CMP_NODE_CHANNEL_MATTE_CS_HSV,
"HSV",
0,
N_("HSV"),
N_("HSV (Hue, Saturation, Value) color space")},
{CMP_NODE_CHANNEL_MATTE_CS_YUV,
"YUV",
0,
N_("YUV"),
N_("YUV (Y - luma, U V - chroma) color space")},
{CMP_NODE_CHANNEL_MATTE_CS_YCC,
"YCC",
0,
"YCbCr",
"YCbCr (Y - luma, Cb - blue-difference chroma, Cr - red-difference chroma) color space"},
N_("YCbCr"),
N_("YCbCr (Y - luma, Cb - blue-difference chroma, Cr - red-difference chroma) color space")},
{0, nullptr, 0, nullptr, nullptr},
};

View File

@@ -35,13 +35,13 @@ static const EnumPropertyItem limit_method_items[] = {
{CMP_NODE_COLOR_SPILL_LIMIT_ALGORITHM_SINGLE,
"SINGLE",
0,
"Single",
"Limit by a single channel"},
N_("Single"),
N_("Limit by a single channel")},
{CMP_NODE_COLOR_SPILL_LIMIT_ALGORITHM_AVERAGE,
"AVERAGE",
0,
"Average",
"Limit by the average of the other two channels"},
N_("Average"),
N_("Limit by the average of the other two channels")},
{0, nullptr, 0, nullptr, nullptr},
};
@@ -62,6 +62,7 @@ static void cmp_node_color_spill_declare(NodeDeclarationBuilder &b)
.default_value(RGBChannel::G)
.static_items(rgb_channel_items)
.expanded()
.translation_context(BLT_I18NCONTEXT_COLOR)
.optional_label();
b.add_input<decl::Menu>("Limit Method")
.default_value(CMP_NODE_COLOR_SPILL_LIMIT_ALGORITHM_SINGLE)
@@ -72,6 +73,7 @@ static void cmp_node_color_spill_declare(NodeDeclarationBuilder &b)
.default_value(RGBChannel::R)
.static_items(rgb_channel_items)
.expanded()
.translation_context(BLT_I18NCONTEXT_COLOR)
.optional_label()
.usage_by_menu("Limit Method", CMP_NODE_COLOR_SPILL_LIMIT_ALGORITHM_SINGLE);
b.add_input<decl::Float>("Limit Strength")

View File

@@ -33,17 +33,17 @@
namespace blender::nodes::node_composite_colorbalance_cc {
static const EnumPropertyItem type_items[] = {
{CMP_NODE_COLOR_BALANCE_LGG, "LIFT_GAMMA_GAIN", 0, "Lift/Gamma/Gain", ""},
{CMP_NODE_COLOR_BALANCE_LGG, "LIFT_GAMMA_GAIN", 0, N_("Lift/Gamma/Gain"), ""},
{CMP_NODE_COLOR_BALANCE_ASC_CDL,
"OFFSET_POWER_SLOPE",
0,
"Offset/Power/Slope (ASC-CDL)",
"ASC-CDL standard color correction"},
N_("Offset/Power/Slope (ASC-CDL)"),
N_("ASC-CDL standard color correction")},
{CMP_NODE_COLOR_BALANCE_WHITEPOINT,
"WHITEPOINT",
0,
"White Point",
"Chromatic adaption from a different white point"},
N_("White Point"),
N_("Chromatic adaption from a different white point")},
{0, nullptr, 0, nullptr, nullptr},
};

View File

@@ -20,14 +20,14 @@ static const EnumPropertyItem kernel_data_type_items[] = {
{int(KernelDataType::Float),
"FLOAT",
0,
"Float",
"The kernel is a float and will be convolved with all input channels"},
N_("Float"),
N_("The kernel is a float and will be convolved with all input channels")},
{int(KernelDataType::Color),
"COLOR",
0,
"Color",
"The kernel is a color and each channel of the kernel will be convolved with each respective "
"channel in the input"},
N_("Color"),
N_("The kernel is a color and each channel of the kernel will be convolved with each "
"respective channel in the input")},
{0, nullptr, 0, nullptr, nullptr},
};

View File

@@ -40,34 +40,34 @@ static const EnumPropertyItem prefilter_items[] = {
{CMP_NODE_DENOISE_PREFILTER_NONE,
"NONE",
0,
"None",
"No prefiltering, use when guiding passes are noise-free"},
N_("None"),
N_("No prefiltering, use when guiding passes are noise-free")},
{CMP_NODE_DENOISE_PREFILTER_FAST,
"FAST",
0,
"Fast",
"Denoise image and guiding passes together. Improves quality when guiding passes are noisy "
"using least amount of extra processing time."},
N_("Fast"),
N_("Denoise image and guiding passes together. Improves quality when guiding passes are "
"noisy using least amount of extra processing time.")},
{CMP_NODE_DENOISE_PREFILTER_ACCURATE,
"ACCURATE",
0,
"Accurate",
"Prefilter noisy guiding passes before denoising image. Improves quality when guiding "
"passes are noisy using extra processing time."},
N_("Accurate"),
N_("Prefilter noisy guiding passes before denoising image. Improves quality when guiding "
"passes are noisy using extra processing time.")},
{0, nullptr, 0, nullptr, nullptr}};
static const EnumPropertyItem quality_items[] = {
{CMP_NODE_DENOISE_QUALITY_SCENE,
"FOLLOW_SCENE",
0,
"Follow Scene",
"Use the scene's denoising quality setting"},
N_("Follow Scene"),
N_("Use the scene's denoising quality setting")},
{CMP_NODE_DENOISE_QUALITY_HIGH, "HIGH", 0, "High", "High quality"},
{CMP_NODE_DENOISE_QUALITY_BALANCED,
"BALANCED",
0,
"Balanced",
"Balanced between performance and quality"},
N_("Balanced"),
N_("Balanced between performance and quality")},
{CMP_NODE_DENOISE_QUALITY_FAST, "FAST", 0, "Fast", "High performance"},
{0, nullptr, 0, nullptr, nullptr}};

View File

@@ -30,10 +30,10 @@
namespace blender::nodes::node_composite_dilate_cc {
static const EnumPropertyItem type_items[] = {
{CMP_NODE_DILATE_ERODE_STEP, "STEP", 0, "Steps", ""},
{CMP_NODE_DILATE_ERODE_DISTANCE_THRESHOLD, "THRESHOLD", 0, "Threshold", ""},
{CMP_NODE_DILATE_ERODE_DISTANCE, "DISTANCE", 0, "Distance", ""},
{CMP_NODE_DILATE_ERODE_DISTANCE_FEATHER, "FEATHER", 0, "Feather", ""},
{CMP_NODE_DILATE_ERODE_STEP, "STEP", 0, N_("Steps"), ""},
{CMP_NODE_DILATE_ERODE_DISTANCE_THRESHOLD, "THRESHOLD", 0, N_("Threshold"), ""},
{CMP_NODE_DILATE_ERODE_DISTANCE, "DISTANCE", 0, N_("Distance"), ""},
{CMP_NODE_DILATE_ERODE_DISTANCE_FEATHER, "FEATHER", 0, N_("Feather"), ""},
{0, nullptr, 0, nullptr, nullptr},
};

View File

@@ -18,8 +18,8 @@
namespace blender::nodes::node_composite_distance_matte_cc {
static const EnumPropertyItem color_space_items[] = {
{CMP_NODE_DISTANCE_MATTE_COLOR_SPACE_RGBA, "RGB", 0, "RGB", "RGB color space"},
{CMP_NODE_DISTANCE_MATTE_COLOR_SPACE_YCCA, "YCC", 0, "YCC", "YCbCr color space"},
{CMP_NODE_DISTANCE_MATTE_COLOR_SPACE_RGBA, "RGB", 0, N_("RGB"), N_("RGB color space")},
{CMP_NODE_DISTANCE_MATTE_COLOR_SPACE_YCCA, "YCC", 0, N_("YCC"), N_("YCbCr color space")},
{0, nullptr, 0, nullptr, nullptr},
};

View File

@@ -22,10 +22,10 @@
namespace blender::nodes::node_composite_ellipsemask_cc {
static const EnumPropertyItem operation_items[] = {
{CMP_NODE_MASKTYPE_ADD, "ADD", 0, "Add", ""},
{CMP_NODE_MASKTYPE_SUBTRACT, "SUBTRACT", 0, "Subtract", ""},
{CMP_NODE_MASKTYPE_MULTIPLY, "MULTIPLY", 0, "Multiply", ""},
{CMP_NODE_MASKTYPE_NOT, "NOT", 0, "Not", ""},
{CMP_NODE_MASKTYPE_ADD, "ADD", 0, N_("Add"), ""},
{CMP_NODE_MASKTYPE_SUBTRACT, "SUBTRACT", 0, N_("Subtract"), ""},
{CMP_NODE_MASKTYPE_MULTIPLY, "MULTIPLY", 0, N_("Multiply"), ""},
{CMP_NODE_MASKTYPE_NOT, "NOT", 0, N_("Not"), ""},
{0, nullptr, 0, nullptr, nullptr},
};

View File

@@ -20,18 +20,22 @@
namespace blender::nodes::node_composite_filter_cc {
static const EnumPropertyItem type_items[] = {
{CMP_NODE_FILTER_SOFT, "SOFTEN", 0, "Soften", ""},
{CMP_NODE_FILTER_SHARP_BOX, "SHARPEN", 0, "Box Sharpen", "An aggressive sharpening filter"},
{CMP_NODE_FILTER_SOFT, "SOFTEN", 0, N_("Soften"), ""},
{CMP_NODE_FILTER_SHARP_BOX,
"SHARPEN",
0,
N_("Box Sharpen"),
N_("An aggressive sharpening filter")},
{CMP_NODE_FILTER_SHARP_DIAMOND,
"SHARPEN_DIAMOND",
0,
"Diamond Sharpen",
"A moderate sharpening filter"},
{CMP_NODE_FILTER_LAPLACE, "LAPLACE", 0, "Laplace", ""},
{CMP_NODE_FILTER_SOBEL, "SOBEL", 0, "Sobel", ""},
{CMP_NODE_FILTER_PREWITT, "PREWITT", 0, "Prewitt", ""},
{CMP_NODE_FILTER_KIRSCH, "KIRSCH", 0, "Kirsch", ""},
{CMP_NODE_FILTER_SHADOW, "SHADOW", 0, "Shadow", ""},
N_("Diamond Sharpen"),
N_("A moderate sharpening filter")},
{CMP_NODE_FILTER_LAPLACE, "LAPLACE", 0, N_("Laplace"), ""},
{CMP_NODE_FILTER_SOBEL, "SOBEL", 0, N_("Sobel"), ""},
{CMP_NODE_FILTER_PREWITT, "PREWITT", 0, N_("Prewitt"), ""},
{CMP_NODE_FILTER_KIRSCH, "KIRSCH", 0, N_("Kirsch"), ""},
{CMP_NODE_FILTER_SHADOW, "SHADOW", 0, N_("Shadow"), ""},
{0, nullptr, 0, nullptr, nullptr},
};

View File

@@ -50,20 +50,20 @@
namespace blender::nodes::node_composite_glare_cc {
static const EnumPropertyItem type_items[] = {
{CMP_NODE_GLARE_BLOOM, "BLOOM", 0, "Bloom", ""},
{CMP_NODE_GLARE_GHOST, "GHOSTS", 0, "Ghosts", ""},
{CMP_NODE_GLARE_STREAKS, "STREAKS", 0, "Streaks", ""},
{CMP_NODE_GLARE_FOG_GLOW, "FOG_GLOW", 0, "Fog Glow", ""},
{CMP_NODE_GLARE_SIMPLE_STAR, "SIMPLE_STAR", 0, "Simple Star", ""},
{CMP_NODE_GLARE_SUN_BEAMS, "SUN_BEAMS", 0, "Sun Beams", ""},
{CMP_NODE_GLARE_KERNEL, "KERNEL", 0, "Kernel", ""},
{CMP_NODE_GLARE_BLOOM, "BLOOM", 0, N_("Bloom"), ""},
{CMP_NODE_GLARE_GHOST, "GHOSTS", 0, N_("Ghosts"), ""},
{CMP_NODE_GLARE_STREAKS, "STREAKS", 0, N_("Streaks"), ""},
{CMP_NODE_GLARE_FOG_GLOW, "FOG_GLOW", 0, N_("Fog Glow"), ""},
{CMP_NODE_GLARE_SIMPLE_STAR, "SIMPLE_STAR", 0, N_("Simple Star"), ""},
{CMP_NODE_GLARE_SUN_BEAMS, "SUN_BEAMS", 0, N_("Sun Beams"), ""},
{CMP_NODE_GLARE_KERNEL, "KERNEL", 0, N_("Kernel"), ""},
{0, nullptr, 0, nullptr, nullptr},
};
static const EnumPropertyItem quality_items[] = {
{CMP_NODE_GLARE_QUALITY_HIGH, "HIGH", 0, "High", ""},
{CMP_NODE_GLARE_QUALITY_MEDIUM, "MEDIUM", 0, "Medium", ""},
{CMP_NODE_GLARE_QUALITY_LOW, "LOW", 0, "Low", ""},
{CMP_NODE_GLARE_QUALITY_HIGH, "HIGH", 0, N_("High"), ""},
{CMP_NODE_GLARE_QUALITY_MEDIUM, "MEDIUM", 0, N_("Medium"), ""},
{CMP_NODE_GLARE_QUALITY_LOW, "LOW", 0, N_("Low"), ""},
{0, nullptr, 0, nullptr, nullptr},
};
@@ -76,14 +76,14 @@ static const EnumPropertyItem kernel_data_type_items[] = {
{int(KernelDataType::Float),
"FLOAT",
0,
"Float",
"The kernel is a float and will be convolved with all input channels"},
N_("Float"),
N_("The kernel is a float and will be convolved with all input channels")},
{int(KernelDataType::Color),
"COLOR",
0,
"Color",
"The kernel is a color and each channel of the kernel will be convolved with each respective "
"channel in the input"},
N_("Color"),
N_("The kernel is a color and each channel of the kernel will be convolved with each "
"respective channel in the input")},
{0, nullptr, 0, nullptr, nullptr},
};

View File

@@ -27,12 +27,16 @@
namespace blender::nodes::node_composite_kuwahara_cc {
static const EnumPropertyItem type_items[] = {
{CMP_NODE_KUWAHARA_CLASSIC, "CLASSIC", 0, "Classic", "Fast but less accurate variation"},
{CMP_NODE_KUWAHARA_CLASSIC,
"CLASSIC",
0,
N_("Classic"),
N_("Fast but less accurate variation")},
{CMP_NODE_KUWAHARA_ANISOTROPIC,
"ANISOTROPIC",
0,
"Anisotropic",
"Accurate but slower variation"},
N_("Anisotropic"),
N_("Accurate but slower variation")},
{0, nullptr, 0, nullptr, nullptr},
};

View File

@@ -37,13 +37,13 @@ static const EnumPropertyItem type_items[] = {
{CMP_NODE_LENS_DISTORTION_RADIAL,
"RADIAL",
0,
"Radial",
"Radially distorts the image to create a barrel or a Pincushion distortion"},
N_("Radial"),
N_("Radially distorts the image to create a barrel or a Pincushion distortion")},
{CMP_NODE_LENS_DISTORTION_HORIZONTAL,
"HORIZONTAL",
0,
"Horizontal",
"Horizontally distorts the image to create a channel/color shifting effect"},
N_("Horizontal"),
N_("Horizontally distorts the image to create a channel/color shifting effect")},
{0, nullptr, 0, nullptr, nullptr},
};

View File

@@ -23,11 +23,11 @@
namespace blender::nodes::node_composite_levels_cc {
static const EnumPropertyItem channel_items[] = {
{CMP_NODE_LEVLES_LUMINANCE, "COMBINED_RGB", 0, "Combined", "Combined RGB"},
{CMP_NODE_LEVLES_RED, "RED", 0, "Red", "Red Channel"},
{CMP_NODE_LEVLES_GREEN, "GREEN", 0, "Green", "Green Channel"},
{CMP_NODE_LEVLES_BLUE, "BLUE", 0, "Blue", "Blue Channel"},
{CMP_NODE_LEVLES_LUMINANCE_BT709, "LUMINANCE", 0, "Luminance", "Luminance Channel"},
{CMP_NODE_LEVLES_LUMINANCE, "COMBINED_RGB", 0, N_("Combined"), N_("Combined RGB")},
{CMP_NODE_LEVLES_RED, "RED", 0, N_("Red"), N_("Red Channel")},
{CMP_NODE_LEVLES_GREEN, "GREEN", 0, N_("Green"), N_("Green Channel")},
{CMP_NODE_LEVLES_BLUE, "BLUE", 0, N_("Blue"), N_("Blue Channel")},
{CMP_NODE_LEVLES_LUMINANCE_BT709, "LUMINANCE", 0, N_("Luminance"), N_("Luminance Channel")},
{0, nullptr, 0, nullptr, nullptr},
};

View File

@@ -23,12 +23,12 @@ namespace blender::nodes::node_composite_mask_cc {
static const EnumPropertyItem size_source_items[] = {
{0, "SCENE", 0, "Scene Size", ""},
{CMP_NODE_MASK_FLAG_SIZE_FIXED, "FIXED", 0, "Fixed", "Use pixel size for the buffer"},
{CMP_NODE_MASK_FLAG_SIZE_FIXED, "FIXED", 0, N_("Fixed"), N_("Use pixel size for the buffer")},
{CMP_NODE_MASK_FLAG_SIZE_FIXED_SCENE,
"FIXED_SCENE",
0,
"Fixed/Scene",
"Pixel size scaled by scene percentage"},
N_("Fixed/Scene"),
N_("Pixel size scaled by scene percentage")},
{0, nullptr, 0, nullptr, nullptr},
};

View File

@@ -31,8 +31,8 @@
namespace blender::nodes::node_composite_moviedistortion_cc {
static const EnumPropertyItem type_items[] = {
{int(compositor::DistortionType::Distort), "UNDISTORT", 0, "Undistort", ""},
{int(compositor::DistortionType::Undistort), "DISTORT", 0, "Distort", ""},
{int(compositor::DistortionType::Distort), "UNDISTORT", 0, N_("Undistort"), ""},
{int(compositor::DistortionType::Undistort), "DISTORT", 0, N_("Distort"), ""},
{0, nullptr, 0, nullptr, nullptr},
};

View File

@@ -22,13 +22,13 @@ static const EnumPropertyItem type_items[] = {
{CMP_NODE_ALPHA_CONVERT_PREMULTIPLY,
"STRAIGHT_TO_PREMULTIPLIED",
0,
"To Premultiplied",
"Convert straight to premultiplied"},
N_("To Premultiplied"),
N_("Convert straight to premultiplied")},
{CMP_NODE_ALPHA_CONVERT_UNPREMULTIPLY,
"PREMULTIPLIED_TO_STRAIGHT",
0,
"To Straight",
"Convert premultiplied to straight"},
N_("To Straight"),
N_("Convert premultiplied to straight")},
{0, nullptr, 0, nullptr, nullptr},
};

View File

@@ -31,18 +31,18 @@
namespace blender::nodes::node_composite_scale_cc {
static const EnumPropertyItem type_items[] = {
{CMP_NODE_SCALE_RELATIVE, "RELATIVE", 0, "Relative", ""},
{CMP_NODE_SCALE_ABSOLUTE, "ABSOLUTE", 0, "Absolute", ""},
{CMP_NODE_SCALE_RENDER_PERCENT, "SCENE_SIZE", 0, "Scene Size", ""},
{CMP_NODE_SCALE_RENDER_SIZE, "RENDER_SIZE", 0, "Render Size", ""},
{CMP_NODE_SCALE_RELATIVE, "RELATIVE", 0, N_("Relative"), ""},
{CMP_NODE_SCALE_ABSOLUTE, "ABSOLUTE", 0, N_("Absolute"), ""},
{CMP_NODE_SCALE_RENDER_PERCENT, "SCENE_SIZE", 0, N_("Scene Size"), ""},
{CMP_NODE_SCALE_RENDER_SIZE, "RENDER_SIZE", 0, N_("Render Size"), ""},
{0, nullptr, 0, nullptr, nullptr},
};
/* Matches bgpic_camera_frame_items[]. */
static const EnumPropertyItem frame_type_items[] = {
{CMP_NODE_SCALE_RENDER_SIZE_STRETCH, "STRETCH", 0, "Stretch", ""},
{CMP_NODE_SCALE_RENDER_SIZE_FIT, "FIT", 0, "Fit", ""},
{CMP_NODE_SCALE_RENDER_SIZE_CROP, "CROP", 0, "Crop", ""},
{CMP_NODE_SCALE_RENDER_SIZE_STRETCH, "STRETCH", 0, N_("Stretch"), ""},
{CMP_NODE_SCALE_RENDER_SIZE_FIT, "FIT", 0, N_("Fit"), ""},
{CMP_NODE_SCALE_RENDER_SIZE_CROP, "CROP", 0, N_("Crop"), ""},
{0, nullptr, 0, nullptr, nullptr},
};

View File

@@ -22,13 +22,13 @@ static const EnumPropertyItem type_items[] = {
{CMP_NODE_SETALPHA_MODE_APPLY,
"APPLY",
0,
"Apply Mask",
"Multiply the input image's RGBA channels by the alpha input value"},
N_("Apply Mask"),
N_("Multiply the input image's RGBA channels by the alpha input value")},
{CMP_NODE_SETALPHA_MODE_REPLACE_ALPHA,
"REPLACE_ALPHA",
0,
"Replace Alpha",
"Replace the input image's alpha channel by the alpha input value"},
N_("Replace Alpha"),
N_("Replace the input image's alpha channel by the alpha input value")},
{0, nullptr, 0, nullptr, nullptr},
};

View File

@@ -28,13 +28,13 @@ static const EnumPropertyItem type_items[] = {
{CMP_NODE_TONE_MAP_PHOTORECEPTOR,
"RD_PHOTORECEPTOR",
0,
"R/D Photoreceptor",
"More advanced algorithm based on eye physiology, by Reinhard and Devlin"},
N_("R/D Photoreceptor"),
N_("More advanced algorithm based on eye physiology, by Reinhard and Devlin")},
{CMP_NODE_TONE_MAP_SIMPLE,
"RH_SIMPLE",
0,
"Rh Simple",
"Simpler photographic algorithm by Reinhard"},
N_("Rh Simple"),
N_("Simpler photographic algorithm by Reinhard")},
{0, nullptr, 0, nullptr, nullptr},
};

View File

@@ -38,26 +38,26 @@ static const EnumPropertyItem mode_items[] = {
{CMP_NODE_TRACK_POSITION_ABSOLUTE,
"ABSOLUTE",
0,
"Absolute",
"Returns the position and speed of the marker at the current scene frame relative to the "
"zero origin of the tracking space"},
N_("Absolute"),
N_("Returns the position and speed of the marker at the current scene frame relative to the "
"zero origin of the tracking space")},
{CMP_NODE_TRACK_POSITION_RELATIVE_START,
"RELATIVE_START",
0,
"Relative Start",
"Returns the position and speed of the marker at the current scene frame relative to the "
"position of the first non-disabled marker in the track"},
N_("Relative Start"),
N_("Returns the position and speed of the marker at the current scene frame relative to the "
"position of the first non-disabled marker in the track")},
{CMP_NODE_TRACK_POSITION_RELATIVE_FRAME,
"RELATIVE_FRAME",
0,
"Relative Frame",
"Returns the position and speed of the marker at the current scene frame relative to the "
"position of the marker at the current scene frame plus the user given relative frame"},
N_("Relative Frame"),
N_("Returns the position and speed of the marker at the current scene frame relative to the "
"position of the marker at the current scene frame plus the user given relative frame")},
{CMP_NODE_TRACK_POSITION_ABSOLUTE_FRAME,
"ABSOLUTE_FRAME",
0,
"Absolute Frame",
"Returns the position and speed of the marker at the given absolute frame"},
N_("Absolute Frame"),
N_("Returns the position and speed of the marker at the given absolute frame")},
{0, nullptr, 0, nullptr, nullptr},
};

View File

@@ -19,18 +19,18 @@ const EnumPropertyItem rna_enum_node_match_string_items[] = {
{int(MatchStringOperation::StartsWith),
"STARTS_WITH",
0,
"Starts With",
"True when the first input starts with the second"},
N_("Starts With"),
N_("True when the first input starts with the second")},
{int(MatchStringOperation::EndsWith),
"ENDS_WITH",
0,
"Ends With",
"True when the first input ends with the second"},
N_("Ends With"),
N_("True when the first input ends with the second")},
{int(MatchStringOperation::Contains),
"CONTAINS",
0,
"Contains",
"True when the first input contains the second as a substring"},
N_("Contains"),
N_("True when the first input contains the second as a substring")},
{0, nullptr, 0, nullptr, nullptr},
};

View File

@@ -23,8 +23,8 @@ namespace blender::nodes::node_geo_curve_fill_cc {
NODE_STORAGE_FUNCS(NodeGeometryCurveFill)
static const EnumPropertyItem mode_items[] = {
{GEO_NODE_CURVE_FILL_MODE_TRIANGULATED, "TRIANGLES", 0, "Triangles", ""},
{GEO_NODE_CURVE_FILL_MODE_NGONS, "NGONS", 0, "N-gons", ""},
{GEO_NODE_CURVE_FILL_MODE_TRIANGULATED, "TRIANGLES", 0, N_("Triangles"), ""},
{GEO_NODE_CURVE_FILL_MODE_NGONS, "NGONS", 0, N_("N-gons"), ""},
{0, nullptr, 0, nullptr, nullptr},
};

View File

@@ -19,13 +19,13 @@ static EnumPropertyItem mode_items[] = {
{GEO_NODE_CURVE_FILLET_BEZIER,
"BEZIER",
0,
"Bézier",
"Align Bézier handles to create circular arcs at each control point"},
N_("Bézier"),
N_("Align Bézier handles to create circular arcs at each control point")},
{GEO_NODE_CURVE_FILLET_POLY,
"POLY",
0,
"Poly",
"Add control points along a circular arc (handle type is vector if Bézier Spline)"},
N_("Poly"),
N_("Add control points along a circular arc (handle type is vector if Bézier Spline)")},
{0, nullptr, 0, nullptr, nullptr},
};

View File

@@ -23,20 +23,21 @@ static EnumPropertyItem mode_items[] = {
{GEO_NODE_CURVE_RESAMPLE_EVALUATED,
"EVALUATED",
0,
"Evaluated",
"Output the input spline's evaluated points, based on the resolution attribute for NURBS "
"and Bézier splines. Poly splines are unchanged"},
N_("Evaluated"),
N_("Output the input spline's evaluated points, based on the resolution attribute for NURBS "
"and Bézier splines. Poly splines are unchanged")},
{GEO_NODE_CURVE_RESAMPLE_COUNT,
"COUNT",
0,
"Count",
"Sample the specified number of points along each spline"},
N_("Count"),
N_("Sample the specified number of points along each spline")},
{GEO_NODE_CURVE_RESAMPLE_LENGTH,
"LENGTH",
0,
"Length",
"Calculate the number of samples by splitting each spline into segments with the specified "
"length"},
N_("Length"),
N_("Calculate the number of samples by splitting each spline into segments with the "
"specified "
"length")},
{0, nullptr, 0, nullptr, nullptr},
};

View File

@@ -30,13 +30,13 @@ static const EnumPropertyItem mode_items[] = {
{GEO_NODE_DISTRIBUTE_POINTS_IN_VOLUME_DENSITY_RANDOM,
"DENSITY_RANDOM",
0,
"Random",
"Distribute points randomly inside of the volume"},
N_("Random"),
N_("Distribute points randomly inside of the volume")},
{GEO_NODE_DISTRIBUTE_POINTS_IN_VOLUME_DENSITY_GRID,
"DENSITY_GRID",
0,
"Grid",
"Distribute the points in a grid pattern inside of the volume"},
N_("Grid"),
N_("Distribute the points in a grid pattern inside of the volume")},
{0, nullptr, 0, nullptr, nullptr},
};

View File

@@ -43,20 +43,21 @@ static void node_declare(NodeDeclarationBuilder &b)
{int(Mode::Inactive),
"INACTIVE",
0,
"Inactive",
"Turn inactive voxels and tiles into inactive background tiles"},
N_("Inactive"),
N_("Turn inactive voxels and tiles into inactive background tiles")},
{int(Mode::Threshold),
"THRESHOLD",
0,
"Threshold",
"Turn regions where all voxels have the same value and active state (within a tolerance "
"threshold) into inactive background tiles"},
N_("Threshold"),
N_("Turn regions where all voxels have the same value and active state (within a tolerance "
"threshold) into inactive background tiles")},
{int(Mode::SDF),
"SDF",
0,
"SDF",
"Replace inactive tiles with inactive nodes. Faster than tolerance-based pruning, useful "
"for cases like narrow-band SDF grids with only inside or outside background values."},
N_("SDF"),
N_("Replace inactive tiles with inactive nodes. Faster than tolerance-based pruning, "
"useful for cases like narrow-band SDF grids with only inside or outside background "
"values.")},
{0, nullptr, 0, nullptr, nullptr},
};
b.add_input<decl::Menu>("Mode")

View File

@@ -19,13 +19,13 @@ static EnumPropertyItem mode_items[] = {
{GEO_NODE_MERGE_BY_DISTANCE_MODE_ALL,
"ALL",
0,
"All",
"Merge all close selected points, whether or not they are connected"},
N_("All"),
N_("Merge all close selected points, whether or not they are connected")},
{GEO_NODE_MERGE_BY_DISTANCE_MODE_CONNECTED,
"CONNECTED",
0,
"Connected",
"Only merge mesh vertices along existing edges. This method can be much faster"},
N_("Connected"),
N_("Only merge mesh vertices along existing edges. This method can be much faster")},
{0, nullptr, 0, nullptr, nullptr},
};

View File

@@ -25,13 +25,13 @@ static EnumPropertyItem resolution_mode_items[] = {
{MESH_TO_VOLUME_RESOLUTION_MODE_VOXEL_AMOUNT,
"VOXEL_AMOUNT",
0,
"Amount",
"Desired number of voxels along one axis"},
N_("Amount"),
N_("Desired number of voxels along one axis")},
{MESH_TO_VOLUME_RESOLUTION_MODE_VOXEL_SIZE,
"VOXEL_SIZE",
0,
"Size",
"Desired voxel side length"},
N_("Size"),
N_("Desired voxel side length")},
{0, nullptr, 0, nullptr, nullptr},
};

View File

@@ -128,13 +128,13 @@ static EnumPropertyItem resolution_mode_items[] = {
{GEO_NODE_POINTS_TO_VOLUME_RESOLUTION_MODE_AMOUNT,
"VOXEL_AMOUNT",
0,
"Amount",
"Specify the approximate number of voxels along the diagonal"},
N_("Amount"),
N_("Specify the approximate number of voxels along the diagonal")},
{GEO_NODE_POINTS_TO_VOLUME_RESOLUTION_MODE_SIZE,
"VOXEL_SIZE",
0,
"Size",
"Specify the voxel side length"},
N_("Size"),
N_("Specify the voxel side length")},
{0, nullptr, 0, nullptr, nullptr},
};

View File

@@ -29,13 +29,13 @@ static EnumPropertyItem interpolation_items[] = {
{GEO_NODE_RAYCAST_INTERPOLATED,
"INTERPOLATED",
0,
"Interpolated",
"Interpolate the attribute from the corners of the hit face"},
N_("Interpolated"),
N_("Interpolate the attribute from the corners of the hit face")},
{GEO_NODE_RAYCAST_NEAREST,
"NEAREST",
0,
"Nearest",
"Use the attribute value of the closest mesh element"},
N_("Nearest"),
N_("Use the attribute value of the closest mesh element")},
{0, nullptr, 0, nullptr, nullptr},
};

View File

@@ -15,13 +15,17 @@ enum class PatternMode {
};
static const EnumPropertyItem pattern_mode_items[] = {
{int(PatternMode::Exact), "EXACT", 0, "Exact", "Remove the one attribute with the given name"},
{int(PatternMode::Exact),
"EXACT",
0,
N_("Exact"),
N_("Remove the one attribute with the given name")},
{int(PatternMode::Wildcard),
"WILDCARD",
0,
"Wildcard",
"Remove all attributes that match the pattern which is allowed to contain a single "
"wildcard (*)"},
N_("Wildcard"),
N_("Remove all attributes that match the pattern which is allowed to contain a single "
"wildcard (*)")},
{0, nullptr, 0, nullptr, nullptr},
};

View File

@@ -30,9 +30,9 @@ enum class InterpolationMode {
};
static const EnumPropertyItem interpolation_mode_items[] = {
{int(InterpolationMode::Nearest), "NEAREST", 0, "Nearest Neighbor", ""},
{int(InterpolationMode::TriLinear), "TRILINEAR", 0, "Trilinear", ""},
{int(InterpolationMode::TriQuadratic), "TRIQUADRATIC", 0, "Triquadratic", ""},
{int(InterpolationMode::Nearest), "NEAREST", 0, N_("Nearest Neighbor"), ""},
{int(InterpolationMode::TriLinear), "TRILINEAR", 0, N_("Trilinear"), ""},
{int(InterpolationMode::TriQuadratic), "TRIQUADRATIC", 0, N_("Triquadratic"), ""},
{0, nullptr, 0, nullptr, nullptr},
};

View File

@@ -30,13 +30,13 @@ static const EnumPropertyItem scale_mode_items[] = {
{GEO_NODE_SCALE_ELEMENTS_UNIFORM,
"UNIFORM",
ICON_NONE,
"Uniform",
"Scale elements by the same factor in every direction"},
N_("Uniform"),
N_("Scale elements by the same factor in every direction")},
{GEO_NODE_SCALE_ELEMENTS_SINGLE_AXIS,
"SINGLE_AXIS",
ICON_NONE,
"Single Axis",
"Scale elements in a single direction"},
N_("Single Axis"),
N_("Scale elements in a single direction")},
{0, nullptr, 0, nullptr, nullptr},
};

View File

@@ -16,9 +16,9 @@ static EnumPropertyItem mode_items[] = {
{GEO_NODE_TRANSFORM_MODE_COMPONENTS,
"COMPONENTS",
0,
"Components",
"Provide separate location, rotation and scale"},
{GEO_NODE_TRANSFORM_MODE_MATRIX, "MATRIX", 0, "Matrix", "Use a transformation matrix"},
N_("Components"),
N_("Provide separate location, rotation and scale")},
{GEO_NODE_TRANSFORM_MODE_MATRIX, "MATRIX", 0, N_("Matrix"), N_("Use a transformation matrix")},
{0, nullptr, 0, nullptr, nullptr},
};

View File

@@ -16,28 +16,28 @@ static const EnumPropertyItem rna_node_geometry_triangulate_quad_method_items[]
{int(geometry::TriangulateQuadMode::Beauty),
"BEAUTY",
0,
"Beauty",
"Split the quads in nice triangles, slower method"},
N_("Beauty"),
N_("Split the quads in nice triangles, slower method")},
{int(geometry::TriangulateQuadMode::Fixed),
"FIXED",
0,
"Fixed",
"Split the quads on the first and third vertices"},
N_("Fixed"),
N_("Split the quads on the first and third vertices")},
{int(geometry::TriangulateQuadMode::Alternate),
"FIXED_ALTERNATE",
0,
"Fixed Alternate",
"Split the quads on the 2nd and 4th vertices"},
N_("Fixed Alternate"),
N_("Split the quads on the 2nd and 4th vertices")},
{int(geometry::TriangulateQuadMode::ShortEdge),
"SHORTEST_DIAGONAL",
0,
"Shortest Diagonal",
"Split the quads along their shortest diagonal"},
N_("Shortest Diagonal"),
N_("Split the quads along their shortest diagonal")},
{int(geometry::TriangulateQuadMode::LongEdge),
"LONGEST_DIAGONAL",
0,
"Longest Diagonal",
"Split the quads along their longest diagonal"},
N_("Longest Diagonal"),
N_("Split the quads along their longest diagonal")},
{0, nullptr, 0, nullptr, nullptr},
};
@@ -45,13 +45,13 @@ static const EnumPropertyItem rna_node_geometry_triangulate_ngon_method_items[]
{int(geometry::TriangulateNGonMode::Beauty),
"BEAUTY",
0,
"Beauty",
"Arrange the new triangles evenly (slow)"},
N_("Beauty"),
N_("Arrange the new triangles evenly (slow)")},
{int(geometry::TriangulateNGonMode::EarClip),
"CLIP",
0,
"Clip",
"Split the polygons with an ear clipping algorithm"},
N_("Clip"),
N_("Split the polygons with an ear clipping algorithm")},
{0, nullptr, 0, nullptr, nullptr},
};

View File

@@ -22,18 +22,18 @@ static const EnumPropertyItem shape_method_items[] = {
{int(ShapeMethod::Aabb),
"AABB",
0,
"Bounding Box",
"Use axis-aligned bounding boxes for packing (fastest, least space efficient)"},
N_("Bounding Box"),
N_("Use axis-aligned bounding boxes for packing (fastest, least space efficient)")},
{int(ShapeMethod::Convex),
"CONVEX",
0,
"Convex Hull",
"Use convex hull approximation of islands (good balance of speed and space efficiency)"},
N_("Convex Hull"),
N_("Use convex hull approximation of islands (good balance of speed and space efficiency)")},
{int(ShapeMethod::Concave),
"CONCAVE",
0,
"Exact Shape",
"Use exact geometry for most efficient packing (slowest)"},
N_("Exact Shape"),
N_("Use exact geometry for most efficient packing (slowest)")},
{0, nullptr, 0, nullptr, nullptr},
};

View File

@@ -20,16 +20,16 @@ static EnumPropertyItem method_items[] = {
{int(Method::Exact),
"EXACT",
0,
"Exact",
"Calculation using the MikkTSpace library, consistent with tangents used elsewhere in "
"Blender"},
N_("Exact"),
N_("Calculation using the MikkTSpace library, consistent with tangents used elsewhere in "
"Blender")},
{int(Method::Fast),
"FAST",
0,
"Fast",
"Significantly faster method that approximates tangents interpolated across face corners "
"with matching UVs. For a value actually tangential to the surface, use the cross product "
"with the normal."},
N_("Fast"),
N_("Significantly faster method that approximates tangents interpolated across face corners "
"with matching UVs. For a value actually tangential to the surface, use the cross product "
"with the normal.")},
{0, nullptr, 0, nullptr, nullptr},
};

View File

@@ -17,14 +17,14 @@ static EnumPropertyItem method_items[] = {
{GEO_NODE_UV_UNWRAP_METHOD_ANGLE_BASED,
"ANGLE_BASED",
0,
"Angle Based",
"This method gives a good 2D representation of a mesh"},
N_("Angle Based"),
N_("This method gives a good 2D representation of a mesh")},
{GEO_NODE_UV_UNWRAP_METHOD_CONFORMAL,
"CONFORMAL",
0,
"Conformal",
"Uses LSCM (Least Squares Conformal Mapping). This usually gives a less accurate UV "
"mapping than Angle Based, but works better for simpler objects"},
N_("Conformal"),
N_("Uses LSCM (Least Squares Conformal Mapping). This usually gives a less accurate UV "
"mapping than Angle Based, but works better for simpler objects")},
{0, nullptr, 0, nullptr, nullptr},
};

View File

@@ -27,13 +27,13 @@ static EnumPropertyItem resolution_mode_items[] = {
{VOLUME_TO_MESH_RESOLUTION_MODE_VOXEL_AMOUNT,
"VOXEL_AMOUNT",
0,
"Amount",
"Desired number of voxels along one axis"},
N_("Amount"),
N_("Desired number of voxels along one axis")},
{VOLUME_TO_MESH_RESOLUTION_MODE_VOXEL_SIZE,
"VOXEL_SIZE",
0,
"Size",
"Desired voxel side length"},
N_("Size"),
N_("Desired voxel side length")},
{0, nullptr, 0, nullptr, nullptr},
};