# Conflicts:
#	crates/ui-egui/src/i18n/effects.rs
#	crates/ui-egui/src/i18n/ui.rs
This commit is contained in:
Brandon Thomas committed 2026-10-31 10:55:46 -04:00
commit 83b4e36e9b
3 files changed
+1654 -3

No files matched your search

+351 -1
View File
@@ -29,6 +29,13 @@
//! `EXtractoR`, `IDentifier`, `Key Light` and `Unmult` stay in English as brand names, and
//! `Face Measurements` / `Face Track Points` are EffectCraft's own effects, so their wording is
//! ours.
//!
//! The French names are written from the meaning of the English ones, with the vocabulary of the
//! French menus; they come from no other application's interface. Brand and coined names
//! (`Cryptomatte`, `EXtractoR`, `IDentifier`, `Key Light`, `Unmult`, `Lumetri Color`, `Colorama`,
//! `Minimax`, `Tritone`, `Vibrance`, `Vegas`) and the whole `CC` series stay in English; a series
//! tag that prefixes a descriptive name (`VR`, `OCIO`, `PS`, `HDR`) stays and follows the
//! French word order (`Flou VR`, `Transformation CDL OCIO`).
use std::collections::HashMap;
use std::sync::OnceLock;
@@ -72,6 +79,7 @@ fn catalog(language: &str) -> Option<&'static Catalog> {
static JAPANESE: Catalog = Catalog { rows: JAPANESE_EFFECTS, categories: JAPANESE_CATEGORIES, index: OnceLock::new() };
static GEORGIAN_CATALOG: Catalog = Catalog { rows: GEORGIAN, categories: GEORGIAN_CATEGORIES, index: OnceLock::new() };
static SWEDISH_CATALOG: Catalog = Catalog { rows: SWEDISH, categories: SWEDISH_CATEGORIES, index: OnceLock::new() };
static FRENCH_CATALOG: Catalog = Catalog { rows: FRENCH, categories: FRENCH_CATEGORIES, index: OnceLock::new() };
match language {
"zh-hans" => Some(&SIMPLIFIED),
"zh-hant" => Some(&TRADITIONAL),
@@ -80,6 +88,7 @@ fn catalog(language: &str) -> Option<&'static Catalog> {
"ja" => Some(&JAPANESE),
"ka" => Some(&GEORGIAN_CATALOG),
"sv" => Some(&SWEDISH_CATALOG),
"fr" => Some(&FRENCH_CATALOG),
_ => None,
}
}
@@ -1153,6 +1162,346 @@ const GEORGIAN_CATEGORIES: &[(&str, &str)] = &[
("Utility", "დამხმარე"),
];
/// French (`fr`): one row per effect, ids from [`SIMPLIFIED_CHINESE`]. Written from the meaning of the
/// English names, with the terms the French menus use (calque, estampe for a matte, incrustation for
/// keying). The `CC` series and the brand names stay in English, `VR`, `OCIO`, `PS` and `HDR` keep
/// their tag after the translated name.
const FRENCH: &[Row] = &[
("ec.3d.channelextract", "3D Channel Extract", "Extraction de canal 3D"),
("ec.3d.cryptomatte", "Cryptomatte", "Cryptomatte"),
("ec.3d.depthmatte", "Depth Matte", "Estampe de profondeur"),
("ec.3d.depthoffield", "Depth of Field", "Profondeur de champ"),
("ec.3d.extractor", "EXtractoR", "EXtractoR"),
("ec.3d.fog3d", "Fog 3D", "Brouillard 3D"),
("ec.3d.identifier", "IDentifier", "IDentifier"),
("ec.3d.idmatte", "ID Matte", "Estampe par ID"),
("ec.audio.backwards", "Backwards", "À l’envers"),
("ec.audio.basstreble", "Bass & Treble", "Graves et aigus"),
("ec.audio.compressor", "Compressor", "Compresseur"),
("ec.audio.delay", "Delay", "Retard"),
("ec.audio.distortion", "Distortion", "Distorsion"),
("ec.audio.flangechorus", "Flange & Chorus", "Flanger et chorus"),
("ec.audio.gate", "Gate", "Porte de bruit"),
("ec.audio.highlowpass", "High-Low Pass", "Passe-haut/passe-bas"),
("ec.audio.modulator", "Modulator", "Modulateur"),
("ec.audio.parametriceq", "Parametric EQ", "Égaliseur paramétrique"),
("ec.audio.reverb", "Reverb", "Réverbération"),
("ec.audio.stereomixer", "Stereo Mixer", "Mixeur stéréo"),
("ec.audio.tone", "Tone", "Tonalité"),
("ec.blur.bilateral", "Bilateral Blur", "Flou bilatéral"),
("ec.blur.cameralens", "Camera Lens Blur", "Flou de l’objectif de la caméra"),
("ec.blur.camerashakedeblur", "Camera-Shake Deblur", "Correction du flou de bougé de caméra"),
("ec.blur.cccross", "CC Cross Blur", "CC Cross Blur"),
("ec.blur.ccradial", "CC Radial Blur", "CC Radial Blur"),
("ec.blur.ccradialfast", "CC Radial Fast Blur", "CC Radial Fast Blur"),
("ec.blur.ccvector", "CC Vector Blur", "CC Vector Blur"),
("ec.blur.channel", "Channel Blur", "Flou de canal"),
("ec.blur.compound", "Compound Blur", "Flou composé"),
("ec.blur.directional", "Directional Blur", "Flou directionnel"),
("ec.blur.fastbox", "Fast Box Blur", "Flou rectangulaire rapide"),
("ec.blur.gaussian", "Gaussian Blur", "Flou gaussien"),
("ec.blur.radial", "Radial Blur", "Flou radial"),
("ec.blur.reduceflicker", "Reduce Interlace Flicker", "Réduction du scintillement d’entrelacement"),
("ec.blur.sharpen", "Sharpen", "Accentuation"),
("ec.blur.smart", "Smart Blur", "Flou intelligent"),
("ec.blur.unsharp", "Unsharp Mask", "Masque flou"),
("ec.channel.arithmetic", "Arithmetic", "Arithmétique"),
("ec.channel.blend", "Blend", "Fusion"),
("ec.channel.calculations", "Calculations", "Calculs"),
("ec.channel.cccomposite", "CC Composite", "CC Composite"),
("ec.channel.combiner", "Channel Combiner", "Combinateur de canaux"),
("ec.channel.compoundarithmetic", "Compound Arithmetic", "Arithmétique composée"),
("ec.channel.invert", "Invert", "Inversion"),
("ec.channel.minimax", "Minimax", "Minimax"),
("ec.channel.removecolormatting", "Remove Color Matting", "Suppression du fond de couleur"),
("ec.channel.setchannels", "Set Channels", "Définir les canaux"),
("ec.channel.setmatte", "Set Matte", "Définir l’estampe"),
("ec.channel.shiftchannels", "Shift Channels", "Décaler les canaux"),
("ec.channel.solidcomposite", "Solid Composite", "Composite avec solide"),
("ec.color.autocolor", "Auto Color", "Couleur automatique"),
("ec.color.autocontrast", "Auto Contrast", "Contraste automatique"),
("ec.color.autolevels", "Auto Levels", "Niveaux automatiques"),
("ec.color.blackwhite", "Black & White", "Noir et blanc"),
("ec.color.brightnesscontrast", "Brightness & Contrast", "Luminosité et contraste"),
("ec.color.broadcast", "Broadcast Colors", "Couleurs de diffusion"),
("ec.color.cccolorneutralizer", "CC Color Neutralizer", "CC Color Neutralizer"),
("ec.color.cccoloroffset", "CC Color Offset", "CC Color Offset"),
("ec.color.cckernel", "CC Kernel", "CC Kernel"),
("ec.color.cctoner", "CC Toner", "CC Toner"),
("ec.color.changecolor", "Change Color", "Changer la couleur"),
("ec.color.changetocolor", "Change to Color", "Changer en couleur"),
("ec.color.channelmixer", "Channel Mixer", "Mélangeur de canaux"),
("ec.color.colorama", "Colorama", "Colorama"),
("ec.color.colorbalance", "Color Balance", "Balance des couleurs"),
("ec.color.colorbalancehls", "Color Balance (HLS)", "Balance des couleurs (TLS)"),
("ec.color.colorlink", "Color Link", "Lien de couleur"),
("ec.color.colorstabilizer", "Color Stabilizer", "Stabilisateur de couleur"),
("ec.color.curves", "Curves", "Courbes"),
("ec.color.equalize", "Equalize", "Égalisation"),
("ec.color.exposure", "Exposure", "Exposition"),
("ec.color.gammapedestalgain", "Gamma/Pedestal/Gain", "Gamma/Piédestal/Gain"),
("ec.color.huesaturation", "Hue/Saturation", "Teinte/Saturation"),
("ec.color.leavecolor", "Leave Color", "Conserver la couleur"),
("ec.color.levels", "Levels", "Niveaux"),
("ec.color.levelsic", "Levels (Individual Controls)", "Niveaux (contrôles individuels)"),
("ec.color.lumetri", "Lumetri Color", "Lumetri Color"),
("ec.color.ociocdl", "OCIO CDL Transform", "Transformation CDL OCIO"),
("ec.color.ociocolorspace", "OCIO Color Space Transform", "Transformation d’espace colorimétrique OCIO"),
("ec.color.ociodisplay", "OCIO Display Transform", "Transformation d’affichage OCIO"),
("ec.color.ociofile", "OCIO File Transform", "Transformation de fichier OCIO"),
("ec.color.ociolook", "OCIO Look Transform", "Transformation de look OCIO"),
("ec.color.photofilter", "Photo Filter", "Filtre photo"),
("ec.color.psarbitrarymap", "PS Arbitrary Map", "Carte arbitraire PS"),
("ec.color.selectivecolor", "Selective Color", "Couleur sélective"),
("ec.color.shadowhighlight", "Shadow/Highlight", "Ombres/Hautes lumières"),
("ec.color.tint", "Tint", "Coloration"),
("ec.color.tritone", "Tritone", "Tritone"),
("ec.color.vibrance", "Vibrance", "Vibrance"),
("ec.color.videolimiter", "Video Limiter", "Limiteur vidéo"),
("ec.control.angle", "Angle Control", "Contrôle d’angle"),
("ec.control.checkbox", "Checkbox Control", "Contrôle de case à cocher"),
("ec.control.color", "Color Control", "Contrôle de couleur"),
("ec.control.dropdown", "Dropdown Menu Control", "Contrôle de menu déroulant"),
("ec.control.layer", "Layer Control", "Contrôle de calque"),
("ec.control.point", "Point Control", "Contrôle de point"),
("ec.control.point3d", "3D Point Control", "Contrôle de point 3D"),
("ec.control.slider", "Slider Control", "Contrôle de curseur"),
("ec.control.stereo3d", "Stereo 3D Controls", "Contrôles stéréo 3D"),
("ec.distort.bezierwarp", "Bezier Warp", "Déformation Bézier"),
("ec.distort.bulge", "Bulge", "Renflement"),
("ec.distort.ccbender", "CC Bender", "CC Bender"),
("ec.distort.ccbendit", "CC Bend It", "CC Bend It"),
("ec.distort.ccblobbylize", "CC Blobbylize", "CC Blobbylize"),
("ec.distort.ccflomotion", "CC Flo Motion", "CC Flo Motion"),
("ec.distort.ccgriddler", "CC Griddler", "CC Griddler"),
("ec.distort.cclens", "CC Lens", "CC Lens"),
("ec.distort.ccpageturn", "CC Page Turn", "CC Page Turn"),
("ec.distort.ccpowerpin", "CC Power Pin", "CC Power Pin"),
("ec.distort.ccripplepulse", "CC Ripple Pulse", "CC Ripple Pulse"),
("ec.distort.ccslant", "CC Slant", "CC Slant"),
("ec.distort.ccsmear", "CC Smear", "CC Smear"),
("ec.distort.ccsplit", "CC Split", "CC Split"),
("ec.distort.ccsplit2", "CC Split 2", "CC Split 2"),
("ec.distort.cctiler", "CC Tiler", "CC Tiler"),
("ec.distort.cornerpin", "Corner Pin", "Épinglage d’angles"),
("ec.distort.displacementmap", "Displacement Map", "Carte de déplacement"),
("ec.distort.liquify", "Liquify", "Liquéfier"),
("ec.distort.magnify", "Magnify", "Loupe"),
("ec.distort.meshwarp", "Mesh Warp", "Déformation par maillage"),
("ec.distort.mirror", "Mirror", "Miroir"),
("ec.distort.offset", "Offset", "Décalage"),
("ec.distort.opticscompensation", "Optics Compensation", "Compensation optique"),
("ec.distort.polar", "Polar Coordinates", "Coordonnées polaires"),
("ec.distort.puppet", "Puppet", "Marionnette"),
("ec.distort.reshape", "Reshape", "Remodeler"),
("ec.distort.ripple", "Ripple", "Ondulation"),
("ec.distort.rollingshutterrepair", "Rolling Shutter Repair", "Correction de l’obturateur roulant"),
("ec.distort.smear", "Smear", "Étalement"),
("ec.distort.spherize", "Spherize", "Sphérisation"),
("ec.distort.transform", "Transform", "Transformation"),
("ec.distort.turbulentdisplace", "Turbulent Displace", "Déplacement turbulent"),
("ec.distort.twirl", "Twirl", "Tourbillon"),
("ec.distort.twirllegacy", "Twirl (Legacy)", "Tourbillon (hérité)"),
("ec.distort.upscale", "Detail-preserving Upscale", "Agrandissement avec préservation des détails"),
("ec.distort.warp", "Warp", "Déformation"),
("ec.distort.warpstabilizer", "Warp Stabilizer", "Stabilisateur de déformation"),
("ec.distort.wavewarp", "Wave Warp", "Déformation en vague"),
("ec.generate.advancedlightning", "Advanced Lightning", "Foudre avancée"),
("ec.generate.audiospectrum", "Audio Spectrum", "Spectre audio"),
("ec.generate.audiowaveform", "Audio Waveform", "Forme d’onde audio"),
("ec.generate.beam", "Beam", "Faisceau"),
("ec.generate.ccgluegun", "CC Glue Gun", "CC Glue Gun"),
("ec.generate.cclightburst", "CC Light Burst 2.5", "CC Light Burst 2.5"),
("ec.generate.cclightrays", "CC Light Rays", "CC Light Rays"),
("ec.generate.cclightsweep", "CC Light Sweep", "CC Light Sweep"),
("ec.generate.ccthreads", "CC Threads", "CC Threads"),
("ec.generate.cellpattern", "Cell Pattern", "Motif cellulaire"),
("ec.generate.checkerboard", "Checkerboard", "Damier"),
("ec.generate.circle", "Circle", "Cercle"),
("ec.generate.ellipse", "Ellipse", "Ellipse"),
("ec.generate.eyedropperfill", "Eyedropper Fill", "Remplissage par pipette"),
("ec.generate.fill", "Fill", "Remplissage"),
("ec.generate.fourcolor", "4-Color Gradient", "Dégradé à 4 couleurs"),
("ec.generate.fractal", "Fractal", "Fractale"),
("ec.generate.gradientramp", "Gradient Ramp", "Rampe de dégradé"),
("ec.generate.grid", "Grid", "Grille"),
("ec.generate.lensflare", "Lens Flare", "Reflet d’objectif"),
("ec.generate.paintbucket", "Paint Bucket", "Pot de peinture"),
("ec.generate.radiowaves", "Radio Waves", "Ondes radio"),
("ec.generate.scribble", "Scribble", "Gribouillis"),
("ec.generate.stroke", "Stroke", "Contour"),
("ec.generate.vegas", "Vegas", "Vegas"),
("ec.generate.writeon", "Write-on", "Écriture progressive"),
("ec.key.advancedspill", "Advanced Spill Suppressor", "Suppresseur de débordement avancé"),
("ec.key.ccsimplewireremoval", "CC Simple Wire Removal", "CC Simple Wire Removal"),
("ec.key.colordifference", "Color Difference Key", "Incrustation par différence de couleur"),
("ec.key.colorkey", "Color Key", "Incrustation couleur"),
("ec.key.colorrange", "Color Range", "Plage de couleurs"),
("ec.key.differencematte", "Difference Matte", "Estampe de différence"),
("ec.key.extract", "Extract", "Extraction"),
("ec.key.innerouter", "Inner/Outer Key", "Incrustation intérieure/extérieure"),
("ec.key.keycleaner", "Key Cleaner", "Nettoyeur d’incrustation"),
("ec.key.linearcolor", "Linear Color Key", "Incrustation couleur linéaire"),
("ec.key.luma", "Luma Key", "Incrustation de luminance"),
("ec.key.screen", "Screen Key", "Incrustation d’écran"),
("ec.key.spill", "Spill Suppressor", "Suppresseur de débordement"),
("ec.key.unmult", "Unmult", "Unmult"),
("ec.keying.keylight", "Key Light", "Key Light"),
("ec.matte.mattechoker", "Matte Choker", "Réducteur d’estampe"),
("ec.matte.objectmatte", "Object Matte", "Estampe d’objet"),
("ec.matte.refinehard", "Refine Hard Matte", "Affiner l’estampe nette"),
("ec.matte.refinesoft", "Refine Soft Matte", "Affiner l’estampe douce"),
("ec.matte.rotobrush", "Roto Brush & Refine Edge", "Roto Brush et affinage des bords"),
("ec.matte.simplechoker", "Simple Choker", "Réducteur simple"),
("ec.noise.addgrain", "Add Grain", "Ajouter du grain"),
("ec.noise.curlnoise", "Curl Noise", "Bruit curl"),
("ec.noise.dustscratches", "Dust & Scratches", "Poussières et rayures"),
("ec.noise.fractal", "Fractal Noise", "Bruit fractal"),
("ec.noise.matchgrain", "Match Grain", "Assortir le grain"),
("ec.noise.median", "Median", "Médian"),
("ec.noise.medianlegacy", "Median (Legacy)", "Médian (hérité)"),
("ec.noise.noise", "Noise", "Bruit"),
("ec.noise.noisealpha", "Noise Alpha", "Bruit alpha"),
("ec.noise.noisehls", "Noise HLS", "Bruit TLS"),
("ec.noise.noisehlsauto", "Noise HLS Auto", "Bruit TLS automatique"),
("ec.noise.removegrain", "Remove Grain", "Supprimer le grain"),
("ec.noise.turbulent", "Turbulent Noise", "Bruit turbulent"),
("ec.obsolete.basic3d", "Basic 3D", "3D de base"),
("ec.obsolete.basictext", "Basic Text", "Texte de base"),
("ec.obsolete.gaussianlegacy", "Gaussian Blur (Legacy)", "Flou gaussien (hérité)"),
("ec.obsolete.lightning", "Lightning", "Foudre"),
("ec.obsolete.mochashape", "Mocha shape", "Forme Mocha"),
("ec.obsolete.pathtext", "Path Text", "Texte sur tracé"),
("ec.paint.paint", "Paint", "Peinture"),
("ec.perspective.3dglasses", "3D Glasses", "Lunettes 3D"),
("ec.perspective.bevelalpha", "Bevel Alpha", "Biseau alpha"),
("ec.perspective.beveledges", "Bevel Edges", "Biseau des bords"),
("ec.perspective.cameratracker", "3D Camera Tracker", "Suivi de caméra 3D"),
("ec.perspective.cccylinder", "CC Cylinder", "CC Cylinder"),
("ec.perspective.ccenvironment", "CC Environment", "CC Environment"),
("ec.perspective.ccsphere", "CC Sphere", "CC Sphere"),
("ec.perspective.ccspotlight", "CC Spotlight", "CC Spotlight"),
("ec.perspective.dropshadow", "Drop Shadow", "Ombre portée"),
("ec.perspective.radialshadow", "Radial Shadow", "Ombre radiale"),
("ec.sim.carddance", "Card Dance", "Danse de cartes"),
("ec.sim.caustics", "Caustics", "Caustiques"),
("ec.sim.ccballaction", "CC Ball Action", "CC Ball Action"),
("ec.sim.ccbubbles", "CC Bubbles", "CC Bubbles"),
("ec.sim.ccdrizzle", "CC Drizzle", "CC Drizzle"),
("ec.sim.cchair", "CC Hair", "CC Hair"),
("ec.sim.ccmrmercury", "CC Mr. Mercury", "CC Mr. Mercury"),
("ec.sim.ccparticlesystems2", "CC Particle Systems II", "CC Particle Systems II"),
("ec.sim.ccparticleworld", "CC Particle World", "CC Particle World"),
("ec.sim.ccpixelpolly", "CC Pixel Polly", "CC Pixel Polly"),
("ec.sim.ccrainfall", "CC Rainfall", "CC Rainfall"),
("ec.sim.ccscatterize", "CC Scatterize", "CC Scatterize"),
("ec.sim.ccsnowfall", "CC Snowfall", "CC Snowfall"),
("ec.sim.ccstarburst", "CC Star Burst", "CC Star Burst"),
("ec.sim.foam", "Foam", "Mousse"),
("ec.sim.particleplayground", "Particle Playground", "Terrain de jeu de particules"),
("ec.sim.shatter", "Shatter", "Éclatement"),
("ec.sim.waveworld", "Wave World", "Monde des vagues"),
("ec.stylize.brushstrokes", "Brush Strokes", "Coups de pinceau"),
("ec.stylize.cartoon", "Cartoon", "Dessin animé"),
("ec.stylize.ccblockload", "CC Block Load", "CC Block Load"),
("ec.stylize.ccburnfilm", "CC Burn Film", "CC Burn Film"),
("ec.stylize.ccglass", "CC Glass", "CC Glass"),
("ec.stylize.cchextile", "CC HexTile", "CC HexTile"),
("ec.stylize.cckaleida", "CC Kaleida", "CC Kaleida"),
("ec.stylize.ccmrsmoothie", "CC Mr. Smoothie", "CC Mr. Smoothie"),
("ec.stylize.ccplastic", "CC Plastic", "CC Plastic"),
("ec.stylize.ccrepetile", "CC RepeTile", "CC RepeTile"),
("ec.stylize.ccthreshold", "CC Threshold", "CC Threshold"),
("ec.stylize.ccthresholdrgb", "CC Threshold RGB", "CC Threshold RGB"),
("ec.stylize.ccvignette", "CC Vignette", "CC Vignette"),
("ec.stylize.coloremboss", "Color Emboss", "Estampage couleur"),
("ec.stylize.emboss", "Emboss", "Estampage"),
("ec.stylize.findedges", "Find Edges", "Détection des contours"),
("ec.stylize.glow", "Glow", "Lueur"),
("ec.stylize.mosaic", "Mosaic", "Mosaïque"),
("ec.stylize.motiontile", "Motion Tile", "Mosaïque de mouvement"),
("ec.stylize.posterize", "Posterize", "Postérisation"),
("ec.stylize.roughenedges", "Roughen Edges", "Bords irréguliers"),
("ec.stylize.scatter", "Scatter", "Dispersion"),
("ec.stylize.strobe", "Strobe Light", "Lumière stroboscopique"),
("ec.stylize.texturize", "Texturize", "Texturisation"),
("ec.stylize.threshold", "Threshold", "Seuil"),
("ec.text.numbers", "Numbers", "Nombres"),
("ec.text.timecode", "Timecode", "Timecode"),
("ec.time.ccforcemotionblur", "CC Force Motion Blur", "CC Force Motion Blur"),
("ec.time.ccwidetime", "CC Wide Time", "CC Wide Time"),
("ec.time.echo", "Echo", "Écho"),
("ec.time.pixelmotionblur", "Pixel Motion Blur", "Flou de mouvement des pixels"),
("ec.time.posterizetime", "Posterize Time", "Postérisation temporelle"),
("ec.time.timedifference", "Time Difference", "Différence temporelle"),
("ec.time.timedisplacement", "Time Displacement", "Déplacement temporel"),
("ec.time.timewarp", "Timewarp", "Déformation temporelle"),
("ec.transition.blockdissolve", "Block Dissolve", "Fondu par blocs"),
("ec.transition.cardwipe", "Card Wipe", "Volet de cartes"),
("ec.transition.ccglasswipe", "CC Glass Wipe", "CC Glass Wipe"),
("ec.transition.ccgridwipe", "CC Grid Wipe", "CC Grid Wipe"),
("ec.transition.ccimagewipe", "CC Image Wipe", "CC Image Wipe"),
("ec.transition.ccjaws", "CC Jaws", "CC Jaws"),
("ec.transition.cclightwipe", "CC Light Wipe", "CC Light Wipe"),
("ec.transition.cclinesweep", "CC Line Sweep", "CC Line Sweep"),
("ec.transition.ccradialscalewipe", "CC Radial ScaleWipe", "CC Radial ScaleWipe"),
("ec.transition.ccscalewipe", "CC Scale Wipe", "CC Scale Wipe"),
("ec.transition.cctwister", "CC Twister", "CC Twister"),
("ec.transition.ccwarpomatic", "CC WarpoMatic", "CC WarpoMatic"),
("ec.transition.gradientwipe", "Gradient Wipe", "Volet en dégradé"),
("ec.transition.iriswipe", "Iris Wipe", "Volet en iris"),
("ec.transition.linearwipe", "Linear Wipe", "Volet linéaire"),
("ec.transition.radialwipe", "Radial Wipe", "Volet radial"),
("ec.transition.venetian", "Venetian Blinds", "Stores vénitiens"),
("ec.utility.applylut", "Apply Color LUT", "Appliquer une LUT de couleur"),
("ec.utility.ccoverbrights", "CC Overbrights", "CC Overbrights"),
("ec.utility.cineon", "Cineon Converter", "Convertisseur Cineon"),
("ec.utility.colorprofileconverter", "Color Profile Converter", "Convertisseur de profil colorimétrique"),
("ec.utility.facemeasurements", "Face Measurements", "Mesures du visage"),
("ec.utility.facetrackpoints", "Face Track Points", "Points de suivi du visage"),
("ec.utility.growbounds", "Grow Bounds", "Extension des limites"),
("ec.utility.hdrcompander", "HDR Compander", "Compandeur HDR"),
("ec.utility.hdrcompression", "HDR Highlight Compression", "Compression des hautes lumières HDR"),
("ec.vr.blur", "VR Blur", "Flou VR"),
("ec.vr.chromaticaberrations", "VR Chromatic Aberrations", "Aberrations chromatiques VR"),
("ec.vr.colorgradients", "VR Color Gradients", "Dégradés de couleur VR"),
("ec.vr.converter", "VR Converter", "Convertisseur VR"),
("ec.vr.denoise", "VR De-Noise", "Réduction du bruit VR"),
("ec.vr.digitalglitch", "VR Digital Glitch", "Glitch numérique VR"),
("ec.vr.fractalnoise", "VR Fractal Noise", "Bruit fractal VR"),
("ec.vr.glow", "VR Glow", "Lueur VR"),
("ec.vr.planetosphere", "VR Plane to Sphere", "Plan vers sphère VR"),
("ec.vr.rotatesphere", "VR Rotate Sphere", "Rotation de sphère VR"),
("ec.vr.sharpen", "VR Sharpen", "Accentuation VR"),
("ec.vr.spheretoplane", "VR Sphere to Plane", "Sphère vers plan VR"),
("ec.3d.instance3d", "3D Layer Instance", "Instance de calque 3D"),
];
/// French (`fr`) category labels, keyed by the registry's English category.
const FRENCH_CATEGORIES: &[(&str, &str)] = &[
("3D Channel", "Canal 3D"),
("Audio", "Audio"),
("Blur & Sharpen", "Flou et netteté"),
("Channel", "Canal"),
("Color Correction", "Correction colorimétrique"),
("Distort", "Déformation"),
("Expression Controls", "Contrôles d’expression"),
("Generate", "Génération"),
("Immersive Video", "Vidéo immersive"),
("Keying", "Incrustation"),
("Matte", "Estampe"),
("Noise & Grain", "Bruit et grain"),
("Obsolete", "Obsolète"),
("Paint", "Peinture"),
("Perspective", "Perspective"),
("Simulation", "Simulation"),
("Stylize", "Stylisation"),
("Text", "Texte"),
("Time", "Temps"),
("Transition", "Transition"),
("Utility", "Utilitaire"),
];
/// The 21 category folder names the generated Effect menu and Effects & Presets draw, in
/// Simplified Chinese. Read from the installed After Effects 2026 (26.5.0.89) Simplified Chinese
/// interface (the checklist's `07-类别` sheet); two of them are the interface's own wording where
@@ -1553,7 +1902,7 @@ mod tests {
const PENDING: &[(&str, &[Row])] = &[("zh-hant", TRADITIONAL_CHINESE)];
/// The languages whose tables are being filled in: guarded like [`PENDING`] row by row.
const PARTIAL: &[(&str, &[Row])] = &[("ja", JAPANESE_EFFECTS), ("ka", GEORGIAN), ("sv", SWEDISH)];
const PARTIAL: &[(&str, &[Row])] = &[("ja", JAPANESE_EFFECTS), ("ka", GEORGIAN), ("sv", SWEDISH), ("fr", FRENCH)];
/// A pending language may lag Simplified Chinese but may not invent ids or disagree about
/// which effect an id names: a translator fills these tables row by row. While they are
@@ -1588,6 +1937,7 @@ mod tests {
("ja", JAPANESE_CATEGORIES),
("ka", GEORGIAN_CATEGORIES),
("sv", SWEDISH_CATEGORIES),
("fr", FRENCH_CATEGORIES),
] {
for (english, translated) in rows {
assert!(categories.contains(english), "{language} lists {english}, which is not a category");
File diff suppressed because it is too large. Load diff
+1 -1
View File
@@ -80,7 +80,7 @@ counted, so the true percentages are slightly lower.
| Spanish | `es` | 1,142 (≈ 29%): menus 629 rows, panels 513 | Menus only; the panel catalog from #996 | Latin, fine | no | partial | 9–12 h + review |
| Hindi | `hi` | 0 | — | UI: Devanagari fallback font but no shaping; text layers shape Devanagari | no | none (After Effects: none) | 9–13 h + shaping in the UI |
| Arabic | `ar` | 0 | — | UI: Arabic fallback font but no shaping and no RTL layout; text layers: bidi + shaping | no | none (After Effects: none) | 9–13 h + 15–25 h RTL UI |
| French | `fr` | 624 (≈ 16%) | Menus only | Latin, fine | no | menus only | 7–10 h + review |
| French | `fr` | 2,124 (≈ 51%): menus 632 rows, panels 1,184, effect names 308 | Panels and dialogs at the source list of the other panel catalogs; effect names and their 21 categories; no help; machine-translated from the English, not yet native-speaker proofread | Latin, fine | no | partial | 2–4 h + review |
| Portuguese (Brazil) | `pt-br` | 1,324 (≈ 34%): menus 629 rows, panels 695 | Panels and dialogs at the Chinese catalogs' source list; the six keys main added after that count are translated too; AI-assisted, not yet native-speaker proofread | Latin, fine | no | partial | independent native review |
| Indonesian | `id` | 0 | — | Latin, fine | no | none (After Effects: none) | 8–12 h + review |
| Japanese | `ja` | 1,923 (≈ 46%): menus 630 rows, panels 996, effect names 297 | Panels and dialogs partly; no help, effect names translated for 297 of the 307 ids and their parameter names not; Home screen literals unwrapped (#574, closed) | Japanese system fallback; vertical text and Tate-Chu-Yoko in text layers; IME | no | partial | 6–9 h + review |