2022-03-08 12:25:51 -05:00
{
2022-06-23 06:22:32 -04:00
Apophysis "7X" Copyright ( C) 2 0 0 9 - 2 0 1 3 Georg Kiehne
Apophysis AV "Phoenix Edition" Copyright ( C) 2 0 2 1 - 2 0 2 2 Alice V. Koryagina
2022-03-08 12:25:51 -05:00
}
unit Translation;
interface
uses Global, Classes, Forms, LibXmlParser, LibXmlComps, SysUtils, RegexHelper;
procedure ListLanguages;
procedure LanguageInfo( path: string ; var name , localName: string ) ;
function LanguageAuthor( path: string ) : string ;
procedure Add( key, value: string ) ;
2022-06-23 06:22:32 -04:00
procedure LoadLanguage( path: string ) ;
2022-03-08 12:25:51 -05:00
procedure LoadEnglish( ) ;
2022-06-23 06:22:32 -04:00
function TextByKey( key: string ) : string ;
2022-03-08 12:25:51 -05:00
type
TParser = class
public
constructor Create;
destructor Destroy; override ; // AV: added to clean up the memory
procedure ListXmlScannerStartTag( Sender: TObject; TagName: string ; Attributes: TAttrList) ;
procedure ListXmlScannerEndTag( Sender: TObject; TagName: string ) ;
procedure ListXmlScannerEmptyTag( Sender: TObject; TagName: string ; Attributes: TAttrList) ;
procedure ListXmlScannerContent( Sender: TObject; Content: string ) ;
private
currentTagname: string ;
parentTagnames: TStringList;
end ;
TKeyValuePair = class
public
key: string ;
value: string ;
end ;
TDictionary = array of TKeyValuePair;
var
language: TDictionary;
defaultlanguage: TDictionary;
tokenCount: integer ;
ListXmlScanner: TEasyXmlScanner;
parser: TParser;
implementation
procedure ListLanguages;
var
searchResult: TSearchRec;
langpath: string ;
begin
if FindFirst( ExtractFilePath( Application. ExeName) + 'Languages\*.xml' , faAnyFile, searchResult) = 0 then
begin
repeat
AvailableLanguages. Add( ExtractFilePath( Application. ExeName) + 'Languages\' + searchResult. Name ) ;
until ( FindNext( searchResult) < > 0 ) ;
SysUtils. FindClose( searchResult) ;
end ;
end ;
procedure LanguageInfo( path: string ; var name , localName: string ) ;
const
exp1 = '\stitle="([^"]*)"' ;
exp2 = '\slocalized-title="([^"]*)"' ;
var
langxml : string ;
sl: TStringList;
begin
sl : = TStringList. Create;
sl. LoadFromFile( path) ;
langxml : = sl. Text ;
sl. Destroy;
name : = GetStringPart( langxml, exp1, 1 , '' ) ;
localname : = GetStringPart( langxml, exp2, 1 , '' ) ;
end ;
function LanguageAuthor( path: string ) : string ;
const
exp = '\sauthor="([^"]*)"' ;
var
langxml : string ;
sl: TStringList;
begin
sl : = TStringList. Create;
sl. LoadFromFile( path) ;
langxml : = sl. Text ;
sl. Destroy;
Result : = GetStringPart( langxml, exp, 1 , '' ) ;
end ;
procedure LoadEnglish( ) ;
begin
//TODO:
//render-status-renderhibernated
Add( 'common-ok' , 'OK' ) ;
Add( 'common-cancel' , 'Cancel' ) ;
Add( 'common-apply' , 'Apply' ) ;
Add( 'common-yes' , 'Yes' ) ;
Add( 'common-no' , 'No' ) ;
Add( 'common-lowquality' , 'Low Quality' ) ;
Add( 'common-mediumquality' , 'Medium Quality' ) ;
Add( 'common-highquality' , 'High Quality' ) ;
Add( 'common-copy' , 'Copy' ) ;
Add( 'common-paste' , 'Paste' ) ;
Add( 'common-cut' , 'Cut' ) ;
Add( 'common-delete' , 'Delete' ) ;
Add( 'common-rename' , 'Rename' ) ;
Add( 'common-undo' , 'Undo' ) ;
Add( 'common-redo' , 'Redo' ) ;
Add( 'common-width' , 'Width' ) ;
Add( 'common-height' , 'Height' ) ;
Add( 'common-size' , 'Size' ) ;
Add( 'common-pixels' , 'Pixels' ) ;
Add( 'common-keepaspect' , 'Maintain aspect ratio' ) ;
Add( 'common-destination' , 'Destination' ) ;
Add( 'common-filename' , 'File name' ) ;
2022-06-23 06:22:32 -04:00
Add( 'common-comment' , 'Comment' ) ;
2022-03-08 12:25:51 -05:00
Add( 'common-browse' , 'Browse...' ) ;
Add( 'common-quality' , 'Quality' ) ;
Add( 'common-filterradius' , 'Filter Radius' ) ;
Add( 'common-density' , 'Density' ) ;
Add( 'common-oversample' , 'Oversample' ) ;
Add( 'common-gamma' , 'Gamma' ) ;
Add( 'common-brightness' , 'Brightness' ) ;
Add( 'common-contrast' , 'Contrast' ) ;
Add( 'common-vibrancy' , 'Vibrancy' ) ;
Add( 'common-background' , 'Background' ) ;
Add( 'common-gammathreshold' , 'Gamma Threshold' ) ;
Add( 'common-start' , 'Start' ) ;
Add( 'common-pause' , 'Pause' ) ;
Add( 'common-resume' , 'Resume' ) ;
Add( 'common-close' , 'Close' ) ;
Add( 'common-clear' , 'Clear' ) ;
Add( 'common-enabled' , 'Enabled' ) ;
Add( 'common-disabled' , 'Disabled' ) ;
Add( 'common-minimum' , 'Minimum' ) ;
Add( 'common-maximum' , 'Maximum' ) ;
Add( 'common-resetlocation' , 'Reset location' ) ;
Add( 'common-openwav' , 'Open the audiofile...' ) ;
Add( 'common-genericopenfailure' , 'Unable to open "%s".' ) ;
Add( 'common-genericsavefailure' , 'Unable to save "%s".' ) ;
Add( 'common-genericcopyfailure' , 'Cannot copy file.' ) ;
Add( 'common-openpngerror1' , 'Error loading flame parameters from the "%s" image.' ) ;
Add( 'common-openpngerror2' , 'Could not find flame parameters in the "%s" image.' ) ;
Add( 'common-openpngerror3' , 'Error reading flame parameters from the "%s" image.' ) ;
Add( 'common-loaderror' , 'Cannot load plugin from %s: variation "%s" already exists!' ) ;
Add( 'common-loaderror1' , 'There were problems with some of the plugins:' ) ;
Add( 'common-noparamfile' , 'The file does not exists.' ) ;
Add( 'common-invalidformat' , 'Invalid format.' ) ;
Add( 'common-confirmexit' , 'Do you really want to exit? All unsaved data will be lost!' ) ;
Add( 'common-confirmdelete' , 'Are you sure you want to permanently delete "%s"? ' ) ;
2022-06-23 06:22:32 -04:00
Add( 'common-confirmselect' , 'After new selection, all changes made to the current flame will be lost. Do you want to save its editing history?' ) ;
2022-03-08 12:25:51 -05:00
Add( 'common-deletecurrent' , 'All changes made to the current flame will be lost!' ) ;
Add( 'common-dragpanelhint' , 'Click and drag to change value' ) ;
Add( 'common-trace-title' , 'Trace log' ) ;
Add( 'common-trace-main' , 'Main' ) ;
Add( 'common-trace-fullscreen' , 'Fullscreen' ) ;
Add( 'common-trace-notrace' , 'No trace' ) ;
Add( 'common-trace-minimal' , 'Minimal trace' ) ;
Add( 'common-trace-fulltrace' , 'Full trace' ) ;
Add( 'common-trace-pausing' , 'Pausing render' ) ;
Add( 'common-trace-resuming' , 'Resuming render' ) ;
Add( 'common-trace-terminating' , 'Terminating render' ) ;
Add( 'common-trace-stopping' , 'Stopping render' ) ;
Add( 'common-trace-saving' , 'Saving image...' ) ;
Add( 'common-trace-creating-simple' , 'Creating image...' ) ;
Add( 'common-trace-creating-detailed' , 'Creating image with quality: %f...' ) ;
Add( 'common-trace-rendering-oneslice' , 'Rendering...' ) ;
Add( 'common-trace-rendering-multipleslices' , 'Rendering slice %d of %d...' ) ;
Add( 'common-trace-allocating' , 'Allocating %n Mb of memory...' ) ;
Add( 'common-trace-notenoughmemory' , 'ERROR: Not enough memory for this render!' ) ;
Add( 'common-statistics-title-oneslice' , 'Render Statistics:' ) ;
Add( 'common-statistics-title-multipleslices' , 'Render Statistics for the last slice:' ) ;
Add( 'common-statistics-maxpossiblebits' , 'Max possible bits: %2.3f' ) ;
Add( 'common-statistics-maxred' , 'Max Red: %2.3f bits' ) ;
Add( 'common-statistics-maxgreen' , 'Max Green: %2.3f bits' ) ;
Add( 'common-statistics-maxblue' , 'Max Blue: %2.3f bits' ) ;
Add( 'common-statistics-maxcounter' , 'Max Count: %2.3f bits' ) ;
Add( 'common-statistics-pointhitratio' , 'Point hit ratio: %2.2f%%' ) ;
Add( 'common-statistics-averagespeed' , 'Average speed: %n iterations per second' ) ;
Add( 'common-statistics-purerenderingtime' , 'Pure rendering time:' ) ;
Add( 'common-seconds' , 'second(s)' ) ;
Add( 'common-minutes' , 'minute(s)' ) ;
Add( 'common-hours' , 'hour(s)' ) ;
Add( 'common-days' , 'day(s)' ) ;
Add( 'common-suspendtodisk' , 'Suspend to disk' ) ;
Add( 'common-resumefromdisk' , 'Resume from disk' ) ;
Add( 'common-filter-flamefiles' , 'Apophysis Flame Library (*.flame;*.xml)' ) ;
Add( 'common-filter-gradientfiles' , 'Gradient files (*.gradient;*.ugr)' ) ;
Add( 'common-filter-fractintfiles' , 'Fractint maps (*.map)' ) ;
Add( 'common-filter-uprfiles' , 'UltraFractal parameters (*.upr)' ) ;
Add( 'common-filter-templatefiles' , 'Apophysis Template Library (*.template;*.flame)' ) ;
Add( 'common-filter-undofiles' , 'Apophysis Undo Parameters (*.undo;*.apo)' ) ;
Add( 'common-filter-scriptfiles' , 'Apophysis Script (*.aposcript;*.asc)' ) ;
2022-06-23 06:22:32 -04:00
Add( 'common-filter-allimages' , 'All images (*.bmp;*.dib;*.jpg;*.jpeg;*.png)' ) ;
2022-03-08 12:25:51 -05:00
Add( 'common-filter-bitmap' , 'Windows Bitmap (*.bmp;*.dib)' ) ;
Add( 'common-filter-jpeg' , 'JPEG (*.jpg;*.jpeg)' ) ;
Add( 'common-filter-png' , 'Portable Network Graphics (*.png)' ) ;
Add( 'common-filter-allfiles' , 'All files (*.*)' ) ;
Add( 'common-open-apoimage' , 'Import Apophysis parameters from the image...' ) ;
2022-06-23 06:22:32 -04:00
Add( 'common-selectimage' , 'Select an image file...' ) ;
2022-03-08 12:25:51 -05:00
Add( 'common-favscriptadded' , 'The script "%s" was added to your favourites list.' ) ;
Add( 'common-favscriptexists' , 'The script "%s" already exists in your favourites list.' ) ;
Add( 'common-screenshot-saved' , 'The screenshot "%s" was successfully saved in "%s" directory.' ) ;
Add( 'common-screenshot-error' , 'Cannot save the screenshot.' ) ;
Add( 'common-translation' , 'translation contributed by:' ) ;
Add( 'common-pluginlink' , 'Apophysis Plugins (download)' ) ;
Add( 'common-thirdparty' , 'This application was created using:' ) ;
Add( 'common-donate' , 'Donate' ) ;
Add( 'common-donatehint' , 'If you really like Apophysis, please, donate a dime for its future development' ) ;
Add( 'splash-loadingui' , 'Loading user interface...' ) ;
Add( 'splash-loadingsettings' , 'Loading settings...' ) ;
Add( 'splash-loadingplugins' , 'Loading plugins...' ) ;
Add( 'splash-initrenderer' , 'Initializing renderer...' ) ;
Add( 'splash-initcolormap' , 'Initializing gradients...' ) ;
Add( 'splash-initbatch' , 'Creating fractal batch...' ) ;
Add( 'splash-execstartupscript' , 'Executing "autoexec.asc"...' ) ;
Add( 'transitions-title' , 'Transform Transitions' ) ;
Add( 'transitions-matrix' , 'Probability matrix' ) ;
Add( 'transitions-transform' , 'Transform:' ) ;
Add( 'transitions-inpercents' , ' Show probabilities in percents' ) ;
Add( 'adjustment-title' , 'Adjustment' ) ;
Add( 'adjustment-common-depthblur' , 'Depth Blur' ) ;
Add( 'adjustment-common-pitch' , 'Pitch' ) ;
Add( 'adjustment-common-yaw' , 'Yaw' ) ;
Add( 'adjustment-common-roll' , 'Roll' ) ;
Add( 'adjustment-common-height' , 'Height' ) ;
Add( 'adjustment-common-perspective' , 'Perspective' ) ;
Add( 'adjustment-common-scale' , 'Scale' ) ;
Add( 'adjustment-hint-depthblur' , 'Strength of blurring from edges' ) ;
Add( 'adjustment-hint-pitch' , 'Angle (in degrees) of rotation around X-axis' ) ;
Add( 'adjustment-hint-yaw' , 'Angle (in degrees) of rotation around Z-axis' ) ;
Add( 'adjustment-hint-roll' , 'Angle (in degrees) of rotation around Y-axis' ) ;
Add( 'adjustment-hint-height' , 'Height of the 3D-camera' ) ;
Add( 'adjustment-hint-perspective' , 'Strength of a perspective distortion' ) ;
Add( 'adjustment-hint-scale' , 'Scale factor for the flame' ) ;
Add( 'adjustment-hint-resetzoom' , 'Reset camera zooming without changing flame size and position' ) ; // AV
Add( 'adjustment-tab-camera-title' , 'Camera' ) ;
Add( 'adjustment-tab-camera-zoom' , 'Zoom' ) ;
Add( 'adjustment-tab-camera-xpos' , 'X-Position' ) ;
Add( 'adjustment-tab-camera-ypos' , 'Y-Position' ) ;
Add( 'adjustment-tab-camera-rotation' , 'Rotation' ) ;
Add( 'adjustment-tab-camera-resetzoom' , 'Reset zoom' ) ; // AV
2022-06-23 06:22:32 -04:00
Add( 'adjustment-tab-camera-draw3daxes' , 'Display coordinate axes in 3D-space' ) ; // AV
2022-03-08 12:25:51 -05:00
Add( 'adjustment-tab-rendering-title' , 'Rendering' ) ;
Add( 'adjustment-tab-rendering-istransparent' , 'Transparent' ) ;
Add( 'adjustment-tab-gradient-title' , 'Gradient' ) ;
Add( 'adjustment-tab-gradient-palettehint' , 'Right-click for context menu, Double click to randomize, Drag to rotate gradient, Alt + Drag to choose the fragment, Ctrl + Drag to stretch the palette' ) ;
Add( 'adjustment-tab-gradient-moderotate' , 'Rotate' ) ;
Add( 'adjustment-tab-gradient-modehue' , 'Hue' ) ;
Add( 'adjustment-tab-gradient-modesaturation' , 'Saturation' ) ;
Add( 'adjustment-tab-gradient-modeluminance' , 'Luminance' ) ; // AV
Add( 'adjustment-tab-gradient-modebrightness' , 'Brightness' ) ;
Add( 'adjustment-tab-gradient-modecontrast' , 'Contrast' ) ;
Add( 'adjustment-tab-gradient-modeblur' , 'Blur' ) ;
Add( 'adjustment-tab-gradient-modefrequency' , 'Frequency' ) ;
Add( 'adjustment-tab-gradient-preset' , 'Preset' ) ;
Add( 'adjustment-tab-gradient-reset' , 'Reset' ) ;
Add( 'adjustment-tab-gradient-current' , 'Current' ) ;
Add( 'adjustment-tab-gradient-start' , 'Start' ) ;
Add( 'adjustment-tab-gradient-last' , 'Last' ) ;
Add( 'adjustment-tab-gradient-modehint' , 'Click for menu' ) ;
Add( 'adjustment-tab-gradient-copyhint' , 'Copy gradient to clipboard' ) ;
Add( 'adjustment-tab-gradient-selectedhint' , 'Change the selected color area' ) ;
Add( 'adjustment-tab-gradient-pastehint' , 'Paste gradient from clipboard' ) ;
Add( 'adjustment-tab-gradient-presethint' , 'Click to choose random preset' ) ;
Add( 'adjustment-tab-size-title' , 'Image size' ) ;
Add( 'adjustment-tab-size-preset' , 'Change the image size according to the preset' ) ;
Add( 'adjustment-tab-size-savepreset' , 'Save current size as a preset' ) ;
Add( 'adjustment-tab-size-presets' , 'Size presets' ) ;
Add( 'adjustment-tab-size-resizemain' , 'Resize main window' ) ;
Add( 'adjustment-tab-size-custom' , 'Custom' ) ;
Add( 'adjustment-tab-size-ratio' , 'Aspect ratio' ) ; //AV
Add( 'adjustment-tab-size-output' , 'Settings' ) ;
Add( 'adjustment-tab-curves-title' , 'Curves' ) ;
Add( 'adjustment-tab-curves-reset' , 'Reset' ) ;
Add( 'adjustment-tab-curves-selected' , 'Selected curve:' ) ;
Add( 'adjustment-tab-curves-overall' , 'Overall' ) ;
Add( 'adjustment-tab-curves-red' , 'Red' ) ;
Add( 'adjustment-tab-curves-green' , 'Green' ) ;
Add( 'adjustment-tab-curves-blue' , 'Blue' ) ;
Add( 'adjustment-popup-quality-instantpreview' , 'Instant preview' ) ;
Add( 'adjustment-popup-gradient-randomize' , 'Randomize' ) ;
Add( 'adjustment-popup-gradient-adjustbyslider' , 'Adjust colors using slider' ) ;
Add( 'adjustment-popup-gradient-invert' , 'Invert' ) ;
Add( 'adjustment-popup-gradient-reverse' , 'Reverse' ) ;
Add( 'adjustment-popup-gradient-invertsel' , 'Invert selected colors' ) ;
Add( 'adjustment-popup-gradient-reversesel' , 'Reverse fragment' ) ;
Add( 'adjustment-popup-gradient-interprgb' , 'Interpolate RGB values between end points' ) ;
Add( 'adjustment-popup-gradient-interphsv' , 'Interpolate HSV values between end points' ) ;
Add( 'adjustment-popup-gradient-randomizesel' , 'Randomize the selected color area' ) ;
Add( 'adjustment-popup-gradient-setcolor' , 'Set the color for the selected area...' ) ;
Add( 'adjustment-popup-gradient-swaprgb' , 'Swap RGB values...' ) ;
Add( 'adjustment-popup-gradient-copysel' , 'Copy color fragment' ) ;
Add( 'adjustment-popup-gradient-pastesel' , 'Paste color fragment' ) ;
Add( 'adjustment-popup-gradient-mixcolors' , 'Mix colors of copied and selected fragments ' ) ;
Add( 'adjustment-popup-gradient-grayscale' , 'Greyscale' ) ;
Add( 'adjustment-popup-gradient-sepia' , 'Sepia' ) ;
Add( 'adjustment-popup-gradient-removedark' , 'Brighten dark areas' ) ;
Add( 'adjustment-popup-gradient-symmetry' , 'Add symmetry...' ) ;
Add( 'adjustment-popup-gradient-flipleft' , 'Flip the left half to the right' ) ;
Add( 'adjustment-popup-gradient-flipright' , 'Flip the right half to the left' ) ;
Add( 'adjustment-popup-gradient-smoothize' , 'Smoothize' ) ;
Add( 'adjustment-popup-gradient-smoothizesel' , 'Smoothize the selected color area' ) ;
Add( 'adjustment-popup-gradient-smooth' , 'Smooth Palette...' ) ;
Add( 'adjustment-popup-gradient-browser' , 'Gradient Browser...' ) ;
Add( 'adjustment-popup-gradient-saveasugr' , 'Save Gradient...' ) ;
2022-06-23 06:22:32 -04:00
Add( 'adjustment-popup-gradient-saveasmap' , 'Save as Map file...' ) ;
2022-03-08 12:25:51 -05:00
Add( 'adjustment-popup-gradient-saveasdefault' , 'Save as default' ) ;
2022-06-23 06:22:32 -04:00
Add( 'adjustment-popup-gradient-saveasscript' , 'Save as script file...' ) ;
2022-03-08 12:25:51 -05:00
Add( 'adjustment-popup-gradient-adjustfragment' , 'Adjust color fragment...' ) ;
Add( 'editor-title' , 'Transform Editor' ) ;
Add( 'editor-common-transform' , 'Transform:' ) ;
Add( 'editor-common-name' , 'Name:' ) ;
Add( 'editor-common-weight' , 'Weight:' ) ;
Add( 'editor-common-finalxformlistitem' , 'Final' ) ;
Add( 'editor-common-fromprefix' , 'from %d' ) ;
Add( 'editor-common-toprefix' , 'to %d' ) ;
2022-06-23 06:22:32 -04:00
Add( 'editor-common-editcomment' , 'Edit flame comment...' ) ;
2022-03-08 12:25:51 -05:00
Add( 'editor-tab-variations-title' , 'Variations' ) ;
Add( 'editor-tab-variations-name' , 'Name' ) ;
Add( 'editor-tab-variations-value' , 'Value' ) ;
Add( 'editor-tab-variations-search' , 'Search:' ) ; // AV
2022-06-23 06:22:32 -04:00
Add( 'editor-tab-variations-searchhint' , 'Type a variation name...' ) ; // AV
2022-03-08 12:25:51 -05:00
Add( 'editor-tab-variations-order' , 'Edit the Order...' ) ; // AV
Add( 'editor-tab-variations-orderhint' , 'Adjust the order of variations for the chosen transform' ) ; // AV
Add( 'editor-tab-variations-togglehideunused' , ' Hide unused variations' ) ;
Add( 'editor-tab-variations-toggleshowall' , ' Show all variations' ) ; // AV
Add( 'editor-tab-variations-togglefavourites' , ' Favourite variations' ) ; // AV
2022-06-23 06:22:32 -04:00
Add( 'editor-tab-variations-toggle3d' , ' 3D-aware variations' ) ; // AV
Add( 'editor-tab-variations-toggledc' , ' Direct coloring variations' ) ; // AV
2022-03-08 12:25:51 -05:00
Add( 'editor-tab-variables-title' , 'Variables' ) ;
Add( 'editor-tab-variables-name' , 'Name' ) ;
Add( 'editor-tab-variables-value' , 'Value' ) ;
Add( 'editor-tab-variables-toggleshowall' , 'Show all variables' ) ;
Add( 'editor-tab-variables-reset' , 'Reset' ) ;
Add( 'editor-tab-chaos-title' , 'Xaos' ) ;
Add( 'editor-tab-chaos-path' , 'Path' ) ;
Add( 'editor-tab-chaos-modifier' , 'Weight modifier' ) ;
Add( 'editor-tab-chaos-viewasto' , 'View links as "to"' ) ;
Add( 'editor-tab-chaos-viewasfrom' , 'View links as "from"' ) ;
Add( 'editor-tab-triangle-title' , 'Triangle' ) ;
Add( 'editor-tab-triangle-pivot' , 'Pivot Point' ) ;
Add( 'editor-tab-triangle-modelocal' , 'Local' ) ;
Add( 'editor-tab-triangle-modeworld' , 'World' ) ;
Add( 'editor-tab-triangle-tolocal' , 'Toggle local (affine) pivot cooordinates' ) ;
Add( 'editor-tab-triangle-toworld' , 'Toggle world (cartesian) pivot cooordinates' ) ;
Add( 'editor-tab-triangle-resetpivot' , 'Reset pivot point' ) ;
Add( 'editor-tab-triangle-pickpivot' , 'Pick pivot point using mouse' ) ;
Add( 'editor-tab-triangle-rotateleft' , 'Rotate triangle counter-clockwise' ) ;
Add( 'editor-tab-triangle-rotateright' , 'Rotate triangle clockwise' ) ;
Add( 'editor-tab-triangle-moveup' , 'Move triangle up' ) ;
Add( 'editor-tab-triangle-movedown' , 'Move triangle down' ) ;
Add( 'editor-tab-triangle-moveleft' , 'Move triangle left' ) ;
Add( 'editor-tab-triangle-moveright' , 'Move triangle right' ) ;
Add( 'editor-tab-triangle-scaledown' , 'Scale triangle down' ) ;
Add( 'editor-tab-triangle-scaleup' , 'Scale triangle up' ) ;
Add( 'editor-tab-triangle-autoweight' , 'Auto-balance weights' ) ;
Add( 'editor-tab-triangle-reflection' , 'Reflection Axis' ) ;
Add( 'editor-tab-triangle-fliptriangle' , 'Flip triangle' ) ;
Add( 'editor-tab-triangle-flipx' , 'Set the X-axis as a reflection line' ) ;
Add( 'editor-tab-triangle-flipy' , 'Set the Y-axis as a reflection line' ) ;
Add( 'editor-tab-triangle-flipxy' , 'Set the main XY-diagonal as a reflection line' ) ;
Add( 'editor-tab-triangle-hideline' , 'Hide line' ) ;
Add( 'editor-tab-triangle-showline' , 'Show line' ) ;
Add( 'editor-tab-triangle-showlinehint' , 'Draw or hide the reflection axis for the selected triangle' ) ;
Add( 'editor-tab-triangle-fliptrianglehint' , 'Flip triangle through a line' ) ;
Add( 'editor-tab-triangle-resetflip' , 'Reset point coordinates to (0,0)' ) ;
Add( 'editor-tab-triangle-transforms' , 'Geometric Operations' ) ;
Add( 'editor-tab-triangle-transformshint' , ' Hotkey A - apply to all vectors, hotkey X - apply to OX-vector only, hotkey Y - apply to OY-vector only, hotkey O - apply to O-vector only' ) ;
Add( 'editor-tab-triangle-coordinates' , 'Coordinates' ) ;
Add( 'editor-tab-triangle-menuhint' , 'Adjust the transformation tools...' ) ;
2022-06-23 06:22:32 -04:00
Add( 'editor-tab-triangle-syncall' , 'Apply operations to all triangles' ) ;
2022-03-08 12:25:51 -05:00
Add( 'editor-tab-triangle-pivot1x' , 'Pivot point abscissa in the chosen coordinate system' ) ;
Add( 'editor-tab-triangle-pivot1y' , 'Pivot point ordinate in the chosen coordinate system' ) ;
Add( 'editor-tab-triangle-pivot2x' , 'Second point abscissa in the chosen coordinate system' ) ;
Add( 'editor-tab-triangle-pivot2y' , 'Second point ordinate in the chosen coordinate system' ) ;
2022-06-23 06:22:32 -04:00
Add( 'editor-tab-triangle-enablesync' , 'Synchronize operations for selected triangles' ) ;
Add( 'editor-tab-triangle-disablesync' , 'Synchronization for triangles disabled' ) ;
2022-03-08 12:25:51 -05:00
Add( 'editor-tab-transform-title' , 'Transform' ) ;
Add( 'editor-tab-transform-reset' , 'Reset transform' ) ;
Add( 'editor-tab-transform-resethint' , 'Reset all vectors to default position' ) ;
Add( 'editor-tab-transform-affine' , 'Affine coefficients' ) ;
Add( 'editor-tab-transform-postaffine' , 'Post-affine coefficients' ) ;
Add( 'editor-tab-transform-swapaffine' , 'Swap matrices' ) ;
Add( 'editor-tab-transform-swapaffinehint' , 'Swap pre- and post-affine coefficients' ) ;
Add( 'editor-tab-transform-conjugate' , 'Conjugate' ) ;
Add( 'editor-tab-transform-conjugatehint' , 'Calculate the invert matrix and write the result into the second matrix' ) ;
Add( 'editor-tab-transform-coordsystem' , 'Coordinate system' ) ;
Add( 'editor-tab-transform-rectangular' , 'Rectangular' ) ;
Add( 'editor-tab-transform-rectangularhint' , 'Show vectors in rectangular (cartesian) coordinates' ) ;
Add( 'editor-tab-transform-polar' , 'Polar (deg)' ) ;
Add( 'editor-tab-transform-polarhint' , 'Show vector in polar coordinates' ) ;
Add( 'editor-tab-transform-resetpost' , 'Reset post transform' ) ;
Add( 'editor-tab-transform-resetposthint' , 'Reset all post-transform vectors to default position' ) ;
Add( 'editor-tab-transform-autozscale' , 'Auto-calculate pre_zscale' ) ;
Add( 'editor-tab-transform-resetxhint' , 'Reset vector X' ) ;
Add( 'editor-tab-transform-resetyhint' , 'Reset vector Y' ) ;
Add( 'editor-tab-transform-resetohint' , 'Reset vector O' ) ;
Add( 'editor-tab-color-title' , 'Colors' ) ;
Add( 'editor-tab-color-transformcolor' , 'Transform color' ) ;
Add( 'editor-tab-color-colorspeed' , 'Color speed' ) ;
Add( 'editor-tab-color-opacity' , 'Opacity' ) ;
Add( 'editor-tab-color-directcolor' , 'Direct color' ) ;
Add( 'editor-tab-color-togglesolo' , 'Solo' ) ;
Add( 'editor-tab-color-togglesoloformat' , 'Solo transform #%d' ) ;
Add( 'editor-tab-color-varpreview' , 'Variation preview' ) ;
Add( 'editor-tab-color-previewrange' , 'Range' ) ;
Add( 'editor-tab-color-previewdepth' , 'Depth' ) ;
Add( 'editor-tab-color-previewdensity' , 'Density' ) ;
Add( 'editor-tab-color-previewrangehint' , 'Area to which variations are applied' ) ;
Add( 'editor-tab-color-previewdepthhint' , 'Number of recursive calculations' ) ;
Add( 'editor-tab-color-previewdensityhint' , 'Frequency of the grid nodes' ) ;
Add( 'editor-tab-color-preview' , 'Preview' ) ;
Add( 'editor-grid-type' , 'Grid Type' ) ;
Add( 'editor-grid-typehint' , 'Coordinate system for the grid' ) ;
Add( 'editor-grid-polar' , 'Polar' ) ;
Add( 'editor-grid-bipolar' , 'Bipolar' ) ;
Add( 'editor-grid-elliptic' , 'Elliptic' ) ;
Add( 'editor-grid-rectangular' , 'Rectangular' ) ;
Add( 'editor-toolbar-newflame' , 'New blank flame' ) ;
Add( 'editor-toolbar-newtransform' , 'Add a new transform' ) ;
Add( 'editor-toolbar-addlinkedtransform' , 'Add linked post-transform' ) ;
Add( 'editor-toolbar-addlinkedpretransform' , 'Add linked pre-transform' ) ;
Add( 'editor-toolbar-duplicatetransform' , 'Duplicate transform' ) ;
Add( 'editor-toolbar-removetransform' , 'Remove the selected transform' ) ;
Add( 'editor-toolbar-modeselect' , 'Selection mode' ) ;
Add( 'editor-toolbar-modemove' , 'Movement mode' ) ;
Add( 'editor-toolbar-moderotate' , 'Rotation mode' ) ;
Add( 'editor-toolbar-modescale' , 'Scale mode' ) ;
Add( 'editor-toolbar-toggleworldpivot' , 'Toggle world pivot' ) ;
Add( 'editor-toolbar-rotate90ccw' , 'Rotate 90° counter-clockwise' ) ;
Add( 'editor-toolbar-rotate90cw' , 'Rotate 90° clockwise' ) ;
Add( 'editor-toolbar-fliph' , 'Flip transform horizontal' ) ;
Add( 'editor-toolbar-flipv' , 'Flip transform vertical' ) ;
Add( 'editor-toolbar-togglevarpreview' , 'Show variation preview' ) ;
Add( 'editor-toolbar-toggleposttransform' , 'Enable/edit affine post-transform' ) ;
Add( 'editor-toolbar-togglefinaltransform' , 'Enable final transform' ) ;
Add( 'editor-toolbar-pihint' , 'Insert math constant into the selected text field' ) ;
Add( 'editor-toolbar-pimenu' , 'Insert fraction of' ) ;
Add( 'editor-toolbar-squareroots' , 'Insert square root...' ) ;
Add( 'editor-toolbar-squareroot' , 'Square root of the number' ) ;
Add( 'editor-toolbar-goldenratio' , 'Insert Golden ratio' ) ;
Add( 'editor-toolbar-invert' , 'Invert the number' ) ;
Add( 'editor-toolbar-square' , 'Square the number' ) ;
Add( 'editor-toolbar-multiply' , 'Multiply by 2' ) ;
Add( 'editor-toolbar-divide' , 'Divide by 2' ) ;
Add( 'editor-toolbar-calccos' , 'Calculate cosine of the value' ) ;
Add( 'editor-toolbar-calcsin' , 'Calculate sine of the value' ) ;
Add( 'editor-toolbar-calctan' , 'Calculate tangent of the value' ) ;
Add( 'editor-toolbar-usedegrees' , 'Use degrees' ) ;
2022-06-23 06:22:32 -04:00
Add( 'editor-toolbar-calcexpression' , 'Calculate math expression...' ) ;
2022-03-08 12:25:51 -05:00
Add( 'editor-toolbar-showchaos' , 'Show chaotic transitions structure...' ) ;
2022-06-23 06:22:32 -04:00
Add( 'editor-toolbar-savestate' , 'Save current flame into the opened file' ) ;
2022-03-08 12:25:51 -05:00
Add( 'editor-popup-panel-autozoom' , 'Zoom automatically' ) ;
Add( 'editor-popup-panel-toggleextendededit' , 'Toggle extended edit mode' ) ;
Add( 'editor-popup-panel-locktransformaxes' , 'Lock transform axes' ) ;
Add( 'editor-popup-panel-allfliph' , 'Flip all horizontally' ) ;
Add( 'editor-popup-panel-allflipv' , 'Flip all vertically' ) ;
Add( 'editor-popup-panel-allflipline' , 'Flip all through a line' ) ;
Add( 'editor-popup-quality-autoreset' , 'Auto-reset location' ) ;
Add( 'editor-popup-transform-resetposition' , 'Reset position' ) ;
Add( 'editor-popup-transform-resetrotation' , 'Reset rotation' ) ;
Add( 'editor-popup-transform-resetscale' , 'Reset scale' ) ;
Add( 'editor-popup-transform-resetflip' , 'Reset reflection' ) ;
Add( 'editor-popup-transform-copycoords' , 'Copy triangle coordinates' ) ;
Add( 'editor-popup-transform-pastecoords' , 'Paste triangle coordinates' ) ;
2022-06-23 06:22:32 -04:00
Add( 'editor-popup-transform-copywhole' , 'Copy selected transform(s)' ) ;
2022-03-08 12:25:51 -05:00
Add( 'editor-popup-transform-pastewhole' , 'Paste transform(s)' ) ;
2022-06-23 06:22:32 -04:00
Add( 'editor-popup-transform-copyvars' , 'Copy variations with parameters' ) ;
Add( 'editor-popup-transform-pastevars' , 'Paste variations and parameters' ) ;
2022-03-08 12:25:51 -05:00
Add( 'editor-popup-transform-resetentiretriangle' , 'Reset triangle' ) ;
Add( 'editor-popup-chaos-rebuildlinks' , 'Rebuild chaos links' ) ;
Add( 'editor-popup-chaos-clearall' , 'Clear all current modifiers (reset to zero)' ) ;
Add( 'editor-popup-chaos-setall' , 'Set all current modifiers to 1' ) ;
Add( 'editor-popup-chaos-showmenu' , 'More...' ) ;
Add( 'editor-popup-chaos-random' , 'Randomize all current modifiers' ) ;
Add( 'editor-popup-chaos-normalize' , 'Normalize transition matrix' ) ;
Add( 'editor-popup-chaos-randomize' , 'Randomize transition matrix' ) ;
Add( 'editor-popup-chaos-reset' , 'Reset transition matrix' ) ;
Add( 'editor-popup-chaos-clearabove' , 'Clear modifiers above selected' ) ;
Add( 'editor-popup-chaos-clearbelow' , 'Clear modifiers below selected' ) ;
Add( 'editor-popup-chaos-container' , 'Add container transform' ) ;
Add( 'editor-popup-chaos-keepweight' , 'Inherit original weights' ) ;
Add( 'editor-popup-chaos-invert' , 'Invert current settings' ) ;
2022-06-23 06:22:32 -04:00
Add( 'editor-popup-chaos-copy' , 'Copy current weight modifiers' ) ;
Add( 'editor-popup-chaos-paste' , 'Apply saved modifiers to transform(s)' ) ;
2022-03-08 12:25:51 -05:00
Add( 'editor-popup-triangle-rotateall' , 'Rotate all vectors' ) ;
Add( 'editor-popup-triangle-rotatex' , 'Rotate only X-axis' ) ;
Add( 'editor-popup-triangle-rotatey' , 'Rotate only Y-axis' ) ;
Add( 'editor-popup-triangle-rotateo' , 'Rotate only O-vector' ) ;
Add( 'editor-popup-triangle-scaleall' , 'Scale all vectors' ) ;
Add( 'editor-popup-triangle-scalex' , 'Scale only X-axis' ) ;
Add( 'editor-popup-triangle-scaley' , 'Scale only Y-axis' ) ;
Add( 'editor-popup-triangle-scaleo' , 'Scale only O-vector' ) ;
Add( 'editor-popup-triangle-squaregrid' , 'Move along a square lattice' ) ;
Add( 'editor-popup-triangle-hexgrid' , 'Move along a triangular lattice' ) ;
Add( 'editor-popup-triangle-invertstep' , 'Invert current Move step' ) ;
Add( 'editor-popup-triangle-arcsin' , 'Calculate arcsin of the scale factor' ) ;
Add( 'editor-popup-triangle-display' , 'Display internally modified values' ) ;
Add( 'editor-status-xformat' , 'X: %f' ) ;
Add( 'editor-status-yformat' , 'Y: %f' ) ;
Add( 'editor-status-rotateformat' , 'Rotate: %3.2f° Inner angle: %3.2f°' ) ;
Add( 'editor-status-rotateformat2' , 'Rotate: %3.2f° Local axis: %3.2f°' ) ;
Add( 'editor-status-rotateformat3' , 'Rotate: %3.2f°' ) ;
Add( 'editor-status-scaleformat' , 'Distance: %3.3f Scale: %3.2f%%' ) ;
Add( 'editor-status-scaleformat2' , 'Scale: %3.2f%%' ) ;
Add( 'editor-status-moveformat' , 'Move: %3.3f ; %3.3f' ) ;
Add( 'editor-status-moveformat2' , 'Move: %3.3f ; %3.3f' ) ;
Add( 'editor-status-transformformat' , 'Transform #%d' ) ;
Add( 'editor-status-zoomformat' , 'Zoom: %f' ) ;
Add( 'editor-status-angle' , 'Current angle' ) ; // AV
Add( 'editor-status-selecton' , 'Select ON' ) ;
Add( 'editor-status-selectoff' , 'Select OFF' ) ;
Add( 'editor-status-warnscale' , 'Current scale factor is out of range! The value inserted into the "Scale" field must be less than 100 percents.' ) ;
Add( 'editor-status-warninvert' , 'The affine determinant is too small for this operation.' ) ;
Add( 'editor-status-nonumfield' , 'No active numeric field found. Please select a numeric field before opening the menu.' ) ;
2022-06-23 06:22:32 -04:00
Add( 'editor-status-formula' , 'Type the math formula: ' ) ;
2022-03-08 12:25:51 -05:00
Add( 'export-title' , 'Export to flam3' ) ;
Add( 'export-paramoptions-title' , 'Parameter options' ) ;
Add( 'export-paramoptions-bufferdepth' , 'Buffer depth' ) ;
Add( 'export-paramoptions-strips' , 'Strips' ) ;
Add( 'export-paramoptions-estimatorradius' , 'DE radius' ) ;
Add( 'export-paramoptions-estimatorcurve' , 'DE curve' ) ;
Add( 'export-paramoptions-estimatormin' , 'DE minimum' ) ;
Add( 'export-paramoptions-dorender' , 'Render' ) ;
Add( 'export-paramoptions-warningtitle' , 'WARNING' ) ;
Add( 'export-paramoptions-warningtext' , 'Fractals created with this version of Apophysis are not supported by flam3! To render 2D-only fractals, download the latest version of flam3 from' ) ;
Add( 'favscripts-title' , 'Favourite scripts' ) ;
Add( 'favscripts-hint' , 'User' 's Favourite scripts list' ) ;
Add( 'favscripts-add' , 'Add' ) ;
Add( 'favscripts-remove' , 'Remove' ) ;
Add( 'favscripts-moveup' , 'Move up' ) ;
Add( 'favscripts-movedown' , 'Move down' ) ;
Add( 'fullscreen-popup-rendermore' , 'Render more' ) ;
Add( 'fullscreen-popup-stoprender' , 'Stop render' ) ;
Add( 'gradientbrowser-title' , 'Gradient Browser' ) ;
Add( 'selectcolors-title' , 'Palette Interval Selection' ) ;
Add( 'selectcolors-start' , 'Start palette index:' ) ;
Add( 'selectcolors-last' , 'Last palette index:' ) ;
Add( 'postprocess-title' , 'Post-process render' ) ;
Add( 'postprocess-save' , 'Save' ) ;
Add( 'postprocess-fittowindow' , 'Fit to window' ) ;
2022-06-23 06:22:32 -04:00
Add( 'render-title' , 'Render flame to disk' ) ;
2022-03-08 12:25:51 -05:00
Add( 'render-common-gotofolder' , 'Open target folder...' ) ;
Add( 'render-tab-settings-title' , 'Settings' ) ;
Add( 'render-tab-output-title' , 'Output' ) ;
Add( 'render-presets-title' , 'Presets' ) ;
Add( 'render-presets-save' , 'Save current preset' ) ;
Add( 'render-presets-delete' , 'Delete the selected preset' ) ;
Add( 'render-prestatus-saveerror-preset' , 'Cannot save preset settings.' ) ;
Add( 'render-resourceusage-title' , 'Resource usage' ) ;
Add( 'render-resourceusage-infotext' , 'The render process will use %u MB of %u MB available physical memory' ) ;
Add( 'render-resourceusage-infotext2' , 'Apophysis will try to use %u processor cores (%u available) - change this in the options' ) ;
Add( 'render-resourceusage-limit' , 'Memory limit' ) ;
Add( 'render-resourceusage-nolimit' , 'No limit' ) ;
Add( 'render-resourceusage-bufferdepth' , 'Buffer depth' ) ;
Add( 'render-output-title' , 'Output options' ) ;
Add( 'render-output-saveparams1' , 'Save parameters in the flame-file' ) ;
Add( 'render-output-saveparams2' , 'Save parameters in the PNG-image' ) ;
Add( 'render-completion-title' , 'Completion options' ) ;
Add( 'render-completion-postprocess' , 'Post-process after rendering' ) ;
Add( 'render-completion-shutdown' , 'Shut down the computer after rendering' ) ;
Add( 'render-completion-playsound' , 'Play sound after rendering' ) ;
Add( 'render-completion-saveincomplete' , 'Save incomplete renders' ) ;
Add( 'render-status-rendererror-log' , 'Rendering failed!' ) ;
Add( 'render-status-rendererror-message' , 'Error while rendering!' ) ;
Add( 'render-status-saveerror-log' , 'Error saving image!' ) ;
Add( 'render-status-saveerror-message1' , 'An error occured while saving the image:' ) ;
Add( 'render-status-saveerror-message2' , 'Check your free disk space and try again.' ) ;
Add( 'render-status-totaltime' , 'Total time:' ) ;
Add( 'render-status-renderterminated' , 'Rendering terminated!' ) ;
Add( 'render-status-renderhibernated' , 'Rendering paused and progress saved!' ) ;
Add( 'render-status-elapsed' , 'Elapsed' ) ;
Add( 'render-status-remaining' , 'Remaining' ) ;
Add( 'render-status-slicestatus' , 'Slice %d of %d' ) ;
Add( 'render-status-notenoughmemory1' , 'You do not have enough memory for this render. Do you want to continue anyway?' ) ;
Add( 'render-status-notenoughmemory2' , 'You do not have enough memory for this render. Please use a lower Maximum memory setting. Do you want to ignore this problem and continue?' ) ;
Add( 'render-status-nofilename' , 'Please enter a file name.' ) ;
Add( 'render-status-fileexists-message1' , '"%s" already exists' ) ;
Add( 'render-status-fileexists-message2' , 'Do you want to replace it?' ) ;
Add( 'render-status-pathdoesnotexist' , 'The directory does not exist.' ) ;
Add( 'render-status-invaliddensity' , 'Invalid Sample Density value' ) ;
Add( 'render-status-invalidfilterradius' , 'Invalid Filter Radius value' ) ;
Add( 'render-status-invalidoversample' , 'Invalid Oversample value' ) ;
Add( 'render-status-invalidwidth' , 'Invalid image width' ) ;
Add( 'render-status-invalidheight' , 'Invalid image height' ) ;
Add( 'render-status-maxmemorytoosmall' , 'Maximum memory value is too small. Do you want to continue anyway?' ) ;
Add( 'render-status-shuttingdownrender' , 'Shutting down previous render...' ) ;
Add( 'render-status-log-title' , 'Rendering "%s"' ) ;
Add( 'render-status-log-size' , 'Size: %dx%d' ) ;
Add( 'render-status-log-quality' , 'Quality: %g' ) ;
Add( 'render-status-log-oversampling' , 'Oversample: %d, Filter: %g' ) ;
Add( 'render-status-log-bufferdepth' , 'Buffer depth: %s' ) ;
Add( 'render-status-log-memorylimit' , 'Memory limit: %d MB' ) ;
Add( 'render-status-log-largepng-message1' , '*** WARNING *** You have selected PNG format and an image size which exceeds 20 megapixels' ) ;
Add( 'render-status-log-largepng-message2' , 'PNG format with extreme high-resolution images is not recommended!' ) ;
Add( 'render-status-log-largepng-message3' , 'To avoid slowdown (and possible memory problems) use BMP file format instead.' ) ;
Add( 'render-status-confirmstop' , 'Do you want to stop the current render?' ) ;
2022-06-23 06:22:32 -04:00
Add( 'render-status-stop' , 'Cancel current rendering' ) ;
2022-03-08 12:25:51 -05:00
Add( 'render-status-dosnapshot' , 'Do snapshot' ) ;
Add( 'render-status-dosnapshothint' , 'Save current state as a picture' ) ;
2022-06-23 06:22:32 -04:00
Add( 'render-status-showimage' , 'Show the image state...' ) ;
2022-03-08 12:25:51 -05:00
Add( 'messages-title' , 'Messages' ) ;
Add( 'messages-openautomatically' , 'Automatically open this window' ) ;
Add( 'mutation-title' , 'Mutation' ) ;
Add( 'mutation-directions' , 'Directions' ) ;
Add( 'mutation-speed' , 'Speed' ) ;
Add( 'mutation-trend' , 'Trend' ) ;
Add( 'mutation-keepnumberoftransforms' , 'Keep transform count' ) ;
Add( 'mutation-randomtrend' , 'Random' ) ;
Add( 'mutation-maintainsymmetry' , 'Maintain symmetry' ) ;
Add( 'mutation-previous' , 'Previous' ) ;
Add( 'options-title' , 'Settings ' ) ;
Add( 'options-selectplugins' , 'Please, specify the plugin folder' ) ;
Add( 'options-restartnotice' , 'You must restart Apophysis AV to make your changes have effect.' ) ;
Add( 'options-tab-general-title' , 'General ' ) ;
Add( 'options-tab-general-language' , 'Language file' ) ;
Add( 'options-tab-general-multithreading' , 'Multithreading ' ) ;
Add( 'options-tab-general-multithreading-off' , 'Off ' ) ;
Add( 'options-tab-general-bufferdepth' , 'Buffer depth ' ) ;
Add( 'options-tab-general-jpegquality' , 'JPEG quality ' ) ;
Add( 'options-tab-general-pngtransparency' , 'PNG transparency ' ) ;
2022-06-23 06:22:32 -04:00
Add( 'options-tab-general-notifications' , 'Notifications' ) ;
Add( 'options-tab-general-defaults' , 'Defaults' ) ;
2022-03-08 12:25:51 -05:00
Add( 'options-tab-general-showextendedstatistics' , 'Show extended render statistics ' ) ;
Add( 'options-tab-general-showrenderimage' , 'Show the rendered image ' ) ;
Add( 'options-tab-general-confirmdelete' , 'Confirm deleting flames ' ) ;
Add( 'options-tab-general-confirmexit' , 'Confirm exit ' ) ;
Add( 'options-tab-general-confirmrenderstop' , 'Confirm stop rendering ' ) ;
Add( 'options-tab-general-confirmclearscript' , 'Confirm clear script ' ) ;
2022-06-23 06:22:32 -04:00
Add( 'options-tab-general-confirmresetundo' , 'Confirm reset editing history ' ) ;
2022-03-08 12:25:51 -05:00
Add( 'options-tab-general-oldgradientformat' , 'Use old gradient format ' ) ;
Add( 'options-tab-general-templaterandcolor' , 'Randomize gradient for templates ' ) ;
Add( 'options-tab-general-alwaysblankflame' , 'Disable templates ' ) ;
Add( 'options-tab-general-autosavepasted' , 'Automatically save new and pasted flames ' ) ;
Add( 'options-tab-general-enablemissingpluginswarning' , 'Warn on missing plugins ' ) ;
Add( 'options-tab-general-enablethumbnailembedding' , 'Enable thumbnail embedding ' ) ;
Add( 'options-tab-general-setenglayout' , 'Set English keyboard layout' ) ;
Add( 'options-tab-general-rotatemode' , 'Rotation mode ' ) ;
Add( 'options-tab-general-rotateimage' , 'Rotate image ' ) ;
Add( 'options-tab-general-rotateframe' , 'Rotate frame ' ) ;
Add( 'options-tab-general-zoommode' , 'Zooming mode ' ) ;
Add( 'options-tab-general-preservequality' , 'Preserve quality ' ) ;
Add( 'options-tab-general-preservespeed' , 'Preserve speed ' ) ;
Add( 'options-tab-general-enummode' , 'Enumerating mode ' ) ;
Add( 'options-tab-general-enum0' , 'Script-compatible (zero-based) ' ) ;
Add( 'options-tab-general-enum1' , 'Standart (start from 1) ' ) ;
Add( 'options-tab-general-guides' , 'Guidelines ' ) ;
Add( 'options-tab-general-enableguides' , 'Enable guides ' ) ;
Add( 'options-tab-general-guidecentercolor' , 'Center ' ) ;
Add( 'options-tab-general-guidethirdscolor' , 'Thirds ' ) ;
Add( 'options-tab-general-guidegoldenratiocolor' , 'Golden ratio ' ) ;
//Add('options-tab-general-singleprecision', 'Use single-precision buffers ');
Add( 'options-tab-general-onrendercomplete' , 'On render complete ' ) ;
Add( 'options-tab-general-playsound' , 'Play sound ' ) ;
Add( 'options-tab-general-soundfile' , 'Sound file: ' ) ;
Add( 'options-tab-general-playhint' , 'Play' ) ;
2022-06-23 06:22:32 -04:00
Add( 'options-tab-general-createanimdir' , 'Create a new folder for frames' ) ;
2022-03-08 12:25:51 -05:00
Add( 'options-tab-general-autoflatten' , 'Apply flattening to old flames' ) ;
Add( 'options-tab-general-pluginpath' , 'Plugin folder ' ) ;
Add( 'options-tab-editor-title' , 'Editor ' ) ;
Add( 'options-tab-editor-editorgraph' , 'Graph ' ) ;
Add( 'options-tab-editor-editordefaults' , 'Defaults ' ) ;
Add( 'options-tab-editor-usetransformcolor' , 'Use transform color ' ) ;
Add( 'options-tab-editor-helperlines' , 'Show helper lines ' ) ;
Add( 'options-tab-editor-alwaysshowbothtransformtypes' , 'Always show both transform types ' ) ;
Add( 'options-tab-editor-backgroundcolor' , 'Background ' ) ;
Add( 'options-tab-editor-gridcolors' , 'Grid ' ) ;
Add( 'options-tab-editor-referencecolor' , 'Reference ' ) ;
Add( 'options-tab-editor-helpercolors' , 'Helpers ' ) ;
Add( 'options-tab-editor-extendededit' , 'Extended edit mode ' ) ;
Add( 'options-tab-editor-locktransformaxes' , 'Lock transform axes ' ) ;
Add( 'options-tab-editor-rebuildxaoslinks' , 'Rebuild links after deleting' ) ;
Add( 'options-tab-editor-enablepreview' , 'Enable background preview' ) ;
Add( 'options-tab-editor-previewtransparency' , 'Transparency' ) ;
Add( 'options-tab-editor-resetcoefs' , 'Reset affine values by double-click' ) ;
Add( 'options-tab-editor-resetlinear' , 'Reset linear when other variation is set' ) ;
2022-06-23 06:22:32 -04:00
Add( 'options-tab-editor-synctriangles' , 'Allow synchronize triangles' ) ;
2022-03-08 12:25:51 -05:00
Add( 'options-tab-display-title' , 'Display ' ) ;
Add( 'options-tab-display-rendering' , 'Rendering ' ) ;
Add( 'options-tab-display-previewdensity' , 'Preview density ' ) ;
Add( 'options-tab-display-mainpreview' , 'Main window preview ' ) ;
Add( 'options-tab-display-extendpreviewbuffer' , 'Extend preview buffer ' ) ;
Add( 'options-tab-display-extenspreviewbufferlabel' , 'Buffer extension ' ) ;
Add( 'options-tab-display-showtransparency' , 'Show transparency ' ) ;
Add( 'options-tab-display-usesmallthumbs' , 'Use small thumbnails (like Apophysis 2.09) ' ) ;
Add( 'options-tab-display-fuse' , 'Skipped iterations' ) ;
Add( 'options-tab-display-tileradius' , 'Tile radius' ) ;
Add( 'options-tab-random-title' , 'Random ' ) ;
Add( 'options-tab-random-numberoftransforms' , 'Number of transforms ' ) ;
Add( 'options-tab-random-mutationtransforms' , 'Mutation transforms ' ) ;
Add( 'options-tab-random-randombatch' , 'Random batch ' ) ;
Add( 'options-tab-random-forcedsymmetry' , 'Forced symmetry ' ) ;
Add( 'options-tab-random-batchsize' , 'Batch size ' ) ;
Add( 'options-tab-random-titleprefix' , 'Title prefix ' ) ;
Add( 'options-tab-random-keepbackground' , ' Keep the current background color' ) ;
Add( 'options-tab-random-symtype' , 'Type' ) ;
Add( 'options-tab-random-symorder' , 'Order' ) ;
Add( 'options-tab-random-symlimit' , 'Limit' ) ;
Add( 'options-tab-random-type-none' , 'None' ) ;
Add( 'options-tab-random-type-bilateral' , 'Bilateral' ) ;
Add( 'options-tab-random-type-rotational' , 'Rotational' ) ;
Add( 'options-tab-random-type-dihedral' , 'Dihedral' ) ;
Add( 'options-tab-random-onrandom' , 'On random flame use... ' ) ;
Add( 'options-tab-random-userandom' , 'Random preset gradient' ) ;
Add( 'options-tab-random-usedefault' , 'Default gradient ' ) ;
Add( 'options-tab-random-usecurrent' , 'Current gradient ' ) ;
Add( 'options-tab-random-randomcalculated' , 'Random gradient ' ) ;
Add( 'options-tab-random-randomfromfile' , 'Random from file ' ) ;
Add( 'options-tab-random-filetouse' , 'Gradient file to use ' ) ;
Add( 'options-tab-variations-title' , 'Variations ' ) ;
Add( 'options-tab-variations-random' , 'Random choise ' ) ;
Add( 'options-tab-variations-faves' , 'Favourites ' ) ;
Add( 'options-tab-variations-setall' , 'Set all ' ) ;
Add( 'options-tab-variations-clearall' , 'Clear all ' ) ;
Add( 'options-tab-variations-invert' , 'Invert selection' ) ;
Add( 'options-tab-gradient-title' , 'Gradient ' ) ;
Add( 'options-tab-gradient-numberofnodes' , 'Number of nodes ' ) ;
Add( 'options-tab-gradient-smoothpalette' , 'Smooth palette ' ) ;
Add( 'options-tab-gradient-huebetween' , 'Hue range ' ) ;
Add( 'options-tab-gradient-satbetween' , 'Saturation range ' ) ;
Add( 'options-tab-gradient-lumbetween' , 'Luminance range ' ) ;
Add( 'options-tab-gradient-numtries' , 'Number of tries ' ) ;
Add( 'options-tab-gradient-trylength' , 'Try length ' ) ;
Add( 'options-tab-gradient-colorblend' , 'Color blending type ' ) ;
Add( 'options-tab-gradient-rgbblend' , 'RGB blend ' ) ;
Add( 'options-tab-gradient-hsvblend' , 'HSV blend ' ) ;
Add( 'options-tab-gradient-noblend' , 'No blending ' ) ;
Add( 'options-tab-gradient-equalstripes' , 'Use equal width of gradient color stripes' ) ;
Add( 'options-tab-upr-title' , 'UltraFractal ' ) ;
Add( 'options-tab-upr-paramdefaults' , 'Parameter defaults ' ) ;
Add( 'options-tab-upr-coloralgorithm' , 'Coloring algorithm ' ) ;
Add( 'options-tab-upr-uprsize' , 'Image size ' ) ;
Add( 'options-tab-upr-formula' , 'Formula ' ) ;
Add( 'options-tab-upr-identifier' , 'Identifier ' ) ;
Add( 'options-tab-upr-adjustdensity' , 'Adjust sample density ' ) ;
Add( 'options-tab-environment-title' , 'Environment' ) ;
Add( 'options-tab-environment-defaultparams' , 'Default parameters ' ) ;
Add( 'options-tab-environment-smoothpalette' , 'Smooth palette ' ) ;
Add( 'options-tab-environment-functionlib' , 'Scripting function library ' ) ;
Add( 'options-tab-environment-exportrenderer' , 'Export renderer ' ) ;
Add( 'options-tab-environment-helpfile' , 'Help file ' ) ;
Add( 'options-tab-environment-screenshots' , 'Screenshot folder ' ) ;
Add( 'options-tab-environment-defaultscript' , 'Default script file ' ) ;
Add( 'options-tab-environment-screenshotshint' , 'Select a folder for Apophysis screenshots: ' ) ;
Add( 'options-tab-environment-rememberlastopen' , 'Remember last open parameters ' ) ;
Add( 'options-tab-environment-autosave' , 'Enable autosave ' ) ;
Add( 'options-tab-environment-savefrequency' , 'Save frequency ' ) ;
Add( 'options-tab-environment-usex64chaotica' , 'Use 64-bit version if possible' ) ;
Add( 'preview-title' , 'Preview' ) ;
Add( 'preview-keepframe' , 'Saving images with boarders' ) ;
Add( 'preview-pause' , 'Pause the animation' ) ;
Add( 'preview-resume' , 'Resume the animation' ) ;
Add( 'save-title' , 'Save' ) ;
Add( 'save-name' , 'Fractal name' ) ;
Add( 'save-namepal' , 'Palette name' ) ;
Add( 'save-oldformat' , 'Use old format' ) ;
Add( 'save-newformat' , 'Use new format' ) ;
Add( 'save-type-parameters' , 'Save Parameters' ) ;
Add( 'save-type-allparameters' , 'Save All Parameters' ) ;
Add( 'save-type-template' , 'Save Template' ) ;
Add( 'save-type-gradient' , 'Save Gradient' ) ;
Add( 'save-type-exportupr' , 'Export UPR' ) ;
Add( 'save-status-notitle' , 'No item name given.' ) ;
Add( 'save-status-invalidfilename' , 'Invalid file name.' ) ;
Add( 'save-status-alreadyexists' , '"%s" in "%s" already exists. Do you want to replace it?' ) ;
Add( 'save-status-alreadyexists2' , '"%s" already exists. Do you want to replace it?' ) ;
Add( 'save-status-alreadyexists3' , 'The flame "%s" already exists. Please, select another name.' ) ;
Add( 'savepreset-title' , 'Save preset' ) ;
Add( 'savepreset-name' , 'Name' ) ;
Add( 'savepreset-notitle' , 'No preset name given.' ) ;
Add( 'script-title' , 'Script Editor' ) ;
Add( 'script-rendering' , 'Rendering image "%s"...' ) ;
Add( 'script-break' , 'Break' ) ;
Add( 'script-new' , 'New script' ) ;
Add( 'script-open' , 'Open' ) ;
Add( 'script-save' , 'Save' ) ;
Add( 'script-run' , 'Run' ) ;
Add( 'script-pause' , 'Pause' ) ;
Add( 'script-stop' , 'Stop' ) ;
Add( 'script-faves' , 'Add to favourites' ) ;
Add( 'script-line' , 'Line' ) ;
Add( 'script-position' , 'Position' ) ;
Add( 'script-confirmclear' , 'Are you really want to delete the script? All unsaved changes will be lost!' ) ;
Add( 'script-codeblocks' , 'Show code blocks' ) ;
Add( 'script-codeblock' , 'Active code block renaming' ) ;
Add( 'script-codeblockrename' , 'Insert new caption: ' ) ;
Add( 'script-codeblockhints' , 'Show code blocks in hints' ) ;
Add( 'script-commentout' , 'Comment out the selection by...' ) ;
Add( 'script-surround' , 'Surround the selection by...' ) ;
Add( 'script-clipboardview' , 'Add code blocks from the clipboard' ) ;
Add( 'script-codeblockhint' , 'Select a block and drag it into the Script editor' ) ;
Add( 'script-findreplace' , 'Find and replace...' ) ;
Add( 'script-textnotfound' , 'The search is finished. The text is not found at the script.' ) ;
Add( 'script-collapsecode' , 'Collapse all blocks of code' ) ;
Add( 'script-expandcode' , 'Expand all blocks of code' ) ;
Add( 'script-compileerror' , 'Script: COMPILE ERROR' ) ;
Add( 'script-runtimeerror' , 'Script: RUNTIME ERROR' ) ;
Add( 'script-status-default' , 'Press Ctrl + "Space" for automathic code completion ' ) ;
Add( 'script-status-compileerror' , 'Fail to run the script' ) ;
Add( 'script-status-runtimeerror' , 'Script execution failed' ) ;
Add( 'script-status-break' , 'Execution stopped by user.' ) ;
Add( 'script-status-executing' , 'Executing current script...' ) ;
Add( 'script-status-stopped' , 'Infinite loop was stopped' ) ;
Add( 'script-status-syntaxerror' , 'Syntax error' ) ;
Add( 'script-status-noclassmember' , 'Unknown member identifier' ) ;
Add( 'script-status-noidentifier' , 'Unknown identifier or variable is not declared' ) ;
Add( 'script-status-constassign' , 'Cannot assign a value to constant' ) ;
Add( 'script-status-varnotarray' , 'Variable is not an array' ) ;
Add( 'script-status-noformfile' , 'Cannot find form file' ) ;
Add( 'script-status-unknownmethod' , 'Unknown method or routine' ) ;
Add( 'script-status-toomanyparams' , 'Too many parameters for method' ) ;
Add( 'script-status-notenoughparams' , 'Not enough actual parameters for method' ) ;
Add( 'script-status-expectparams' , 'Expected # parameters' ) ;
Add( 'script-status-expectvar' , 'Method # expects variable reference' ) ;
Add( 'script-status-notassign' , 'Assign to method # is not allowed' ) ;
Add( 'script-status-propnotfunc' , 'Property # cannot be called as a method' ) ;
Add( 'script-status-outofrange' , 'Transform index is out of range!' ) ;
Add( 'script-status-varoutofrange' , 'The index or parameter value is out of range.' ) ;
Add( 'script-status-notransforms' , 'Not enough transforms to perform the operation.' ) ;
Add( 'script-status-toomanytransforms' , 'Too many transforms to perform the operation.' ) ;
Add( 'script-status-paused' , 'Script execution is paused' ) ;
Add( 'script-status-cancelrender' , 'Render was cancelled by user.' ) ;
Add( 'splash-loadingtext' , 'Loading' ) ;
Add( 'template-title' , 'Templates' ) ;
Add( 'template-filename' , 'Source template file: ' ) ;
Add( 'main-common-title-lite' , 'Lite Version' ) ;
Add( 'main-common-title-t500' , 'High-Memory Version' ) ;
Add( 'main-common-randombatch' , 'Random Batch' ) ;
Add( 'main-menu-file-title' , 'File' ) ;
Add( 'main-menu-file-new' , 'New' ) ;
Add( 'main-menu-file-open' , 'Open the flame...' ) ;
Add( 'main-menu-file-loadpng' , 'Load parameters from PNG...' ) ;
Add( 'main-menu-file-loadpnghint' , 'Open the PNG-image that containing flame parameters' ) ;
Add( 'main-menu-file-restoreautosave' , 'Restore last autosave' ) ;
Add( 'main-menu-file-autosavehint' , 'Open the last automatically saved fractal project' ) ;
Add( 'main-menu-file-saveparams' , 'Save parameters...' ) ;
Add( 'main-menu-file-saveallparams' , 'Save all parameters...' ) ;
Add( 'main-menu-file-saveallhint' , 'Save parameters of all fractals to a file' ) ;
Add( 'main-menu-file-smoothpalette' , 'Smooth palette...' ) ;
Add( 'main-menu-file-smoothpalettehint' , 'Create a smooth color gradient from an image' ) ;
Add( 'main-menu-file-gradientbrowser' , 'Gradient browser...' ) ;
Add( 'main-menu-file-gradientbrowserhint' , 'Browse saved fractal palettes libraries...' ) ;
Add( 'main-menu-file-exportupr' , 'Export UPR...' ) ;
Add( 'main-menu-file-exportflame' , 'Export to flam3...' ) ;
Add( 'main-menu-file-exportchaotica' , 'Export to Chaotica...' ) ;
Add( 'main-menu-file-importgimp' , 'Import GIMP parameters...' ) ;
Add( 'main-menu-file-exportuprhint' , '*** OUTDATED *** Save the flame in UltraFractal' 's parameters format. 3D-properties are not supported!' ) ;
Add( 'main-menu-file-exportflamehint' , '*** OUTDATED *** Export the current flame parameters in a FLAM3 format. 3D-properties are not supported!' ) ;
Add( 'main-menu-file-exportchaoticahint' , 'Export the current fractal to Chaotica software. 3D-properties are not supported!' ) ;
Add( 'main-menu-file-importgimphint' , '*** OUTDATED *** Import GIMP parameters, which were created using the Flame filter' ) ;
Add( 'main-menu-file-randombatch' , 'Random batch' ) ;
Add( 'main-menu-file-exit' , 'Exit' ) ;
Add( 'main-menu-file-randombatchhint' , 'Create and load a file consist of random fractal parameters' ) ;
Add( 'main-menu-file-exithint' , 'Quit and close Apophysis' ) ;
Add( 'main-menu-edit-title' , 'Edit' ) ;
Add( 'main-menu-edit-saveundo' , 'Save undo stack...' ) ;
Add( 'main-menu-edit-copyasupr' , 'Copy as UPR' ) ;
Add( 'main-menu-edit-copy' , 'Copy the flame XML-parameters to the clipboard' ) ;
Add( 'main-menu-edit-paste' , 'Paste the flame XML-parameters from cripboard' ) ;
Add( 'main-menu-edit-copyuprhint' , 'Copy the UltraFractal-parameters of the flame to the clipboard ' ) ;
Add( 'main-menu-view-title' , 'View' ) ;
Add( 'main-menu-view-fullscreen' , 'Full screen' ) ;
Add( 'main-menu-view-editor' , 'Editor' ) ;
Add( 'main-menu-view-adjustment' , 'Adjustment' ) ;
Add( 'main-menu-view-gradient' , 'Gradient' ) ;
Add( 'main-menu-view-mutation' , 'Mutation' ) ;
Add( 'main-menu-view-imagesize' , 'Image size' ) ;
Add( 'main-menu-view-messages' , 'Messages' ) ;
Add( 'main-menu-view-curves' , 'Curves' ) ;
2022-06-23 06:22:32 -04:00
Add( 'main-menu-view-animator' , 'Animator' ) ;
2022-03-08 12:25:51 -05:00
Add( 'main-menu-flame-title' , 'Flame' ) ;
Add( 'main-menu-flame-reset' , 'Reset location' ) ;
Add( 'main-menu-flame-randomize' , 'Randomize all parameters' ) ;
Add( 'main-menu-flame-randomizehint' , 'Randomize all parameters of the current fractal flame' ) ;
Add( 'main-menu-flame-changeweights' , 'Change weight distribution...' ) ;
Add( 'main-menu-flame-changecolors' , 'Change color distribution...' ) ;
Add( 'main-menu-flame-randomweights' , 'Randomize weights' ) ;
Add( 'main-menu-flame-equalweights' , 'Equalize weights' ) ;
Add( 'main-menu-flame-randomweightshint' , 'Randomize transform weights (probabilities)' ) ;
Add( 'main-menu-flame-equalweightshint' , 'Set all weights (transform probabilities) to the same value' ) ;
//Add('main-menu-flame-computeweights', 'Compute weights');
Add( 'main-menu-flame-calculateweights' , 'Calculate weights' ) ;
Add( 'main-menu-flame-normweights' , 'Normalize weights' ) ;
Add( 'main-menu-flame-calculateweightshint' , 'Compute transform weights in accordance to their scale factors' ) ;
Add( 'main-menu-flame-normweightshint' , 'Set transform weights to their total sum equals to 1.0' ) ;
Add( 'main-menu-flame-calculatecolors' , 'Calculate color values' ) ;
Add( 'main-menu-flame-randomizecolors' , 'Randomize color values' ) ;
Add( 'main-menu-flame-resetcolors' , 'Reset color values' ) ;
Add( 'main-menu-flame-calculatecolorspeed' , 'Calculate color speed' ) ;
Add( 'main-menu-flame-randomizecolorspeed' , 'Randomize color speed' ) ;
Add( 'main-menu-flame-resetcolorspeed' , 'Reset color speed' ) ;
Add( 'main-menu-flame-calccolorshint' , 'Distribute transform color parameters evenly' ) ;
Add( 'main-menu-flame-randcolorshint' , 'Randomize transform color parameters, but keep the existing color palette' ) ;
Add( 'main-menu-flame-calccolorspeedhint' , 'Calculate color speed values based on transform weights and contraction factors' ) ;
Add( 'main-menu-flame-randcolorspeedhint' , 'Randomize a speed of changing colors from the current palette' ) ;
Add( 'main-menu-flame-resetcolorspeedhint' , 'Reset all color speed values to zero' ) ;
Add( 'main-menu-flame-resetcolorshint' , 'Reset all color values to zero (make the fractal monochrome)' ) ;
Add( 'main-menu-flame-flatten' , 'Apply flatten' ) ;
Add( 'main-menu-flame-flattenhint' , 'Apply "flatten" variation for all pseudo-3D transforms' ) ;
Add( 'main-menu-flame-unflatten' , 'Unflatten' ) ;
Add( 'main-menu-flame-unflattenhint' , 'Reset "flatten" variation for all transforms' ) ;
Add( 'main-menu-flame-rendertodisk' , 'Render flame...' ) ;
Add( 'main-menu-flame-renderallflames' , 'Render all flames...' ) ;
Add( 'main-menu-flame-resumeunfinished' , 'Resume unfinished render process...' ) ;
Add( 'main-menu-flame-generatereport' , 'Summarize flame...' ) ;
Add( 'main-menu-flame-reporthint' , 'Show some basic information about the current fractal' ) ;
Add( 'main-menu-flame-addtile' , 'Add equiaffine tile...' ) ;
Add( 'main-menu-flame-addsymmetry' , 'Add equiaffine symmetry...' ) ;
Add( 'main-menu-flame-rhombustile' , 'Rhombus' ) ;
Add( 'main-menu-flame-squaretile' , 'Square' ) ;
Add( 'main-menu-flame-hextile' , 'Hexagonal' ) ;
Add( 'main-menu-flame-symorder' , ', order...' ) ;
Add( 'main-menu-flame-template' , 'Save as template...' ) ;
Add( 'main-menu-flame-templatehint' , 'Save the fractal as a template for future flames' ) ;
Add( 'main-menu-variation-title' , 'Variation' ) ;
Add( 'main-menu-variation-random' , 'Random' ) ;
Add( 'main-menu-variation-builtin' , 'Built-in' ) ;
Add( 'main-menu-variation-plugins' , 'Plugins' ) ;
Add( 'main-menu-variation-randomhint' , 'Randomly selected variation' ) ;
Add( 'main-menu-variation-builtinhint' , 'The list of built-in variations' ) ;
Add( 'main-menu-variation-pluginshint' , 'The list of dinamically loaded variations' ) ;
Add( 'main-menu-script-title' , 'Script' ) ;
Add( 'main-menu-script-run' , 'Run script' ) ;
Add( 'main-menu-script-run2' , 'Run "%s"' ) ;
Add( 'main-menu-script-run3' , 'Load and run the "%s" script.' ) ;
Add( 'main-menu-script-directory' , 'Directory' ) ;
Add( 'main-menu-script-directoryhint' , 'Scripts from default directory' ) ;
Add( 'main-menu-script-more' , 'More' ) ;
Add( 'main-menu-script-stop' , 'Stop script' ) ;
Add( 'main-menu-script-open' , 'Open...' ) ;
Add( 'main-menu-script-openhint' , 'Open a saved script file' ) ;
Add( 'main-menu-script-edit' , 'Edit script' ) ;
Add( 'main-menu-script-managefaves' , 'Manage favourites...' ) ;
Add( 'main-menu-script-flametoscript' , 'Generate script from flame' ) ;
Add( 'main-menu-script-managefaveshint' , 'Show the Favourite Scripts Manager' ) ;
Add( 'main-menu-script-flametoscripthint' , 'Translate visual flame properties into a programming language' ) ;
Add( 'main-menu-options-title' , 'Tools' ) ;
Add( 'main-menu-options-togglemaintoolbar' , 'Show the toolbar' ) ;
Add( 'main-menu-options-togglestatusbar' , 'Show the status bar' ) ;
Add( 'main-menu-options-togglefilelist' , 'Show the parameter list' ) ;
Add( 'main-menu-options-resetfilelistwidth' , 'Reset the content list width' ) ; // Reset layout
Add( 'main-menu-options-resetwidthhint' , 'Set default width for the left panel' ) ;
Add( 'main-menu-options-sortflames' , 'Sort flames alphabetically' ) ;
Add( 'main-menu-options-enumflames' , 'Display flame indices' ) ;
Add( 'main-menu-options-tracelog' , 'Trace log...' ) ;
Add( 'main-menu-options-traceloghint' , 'Show trace log (system processes connected with Apophysis)' ) ;
Add( 'main-menu-options-showoptions' , 'Settings...' ) ;
Add( 'main-menu-options-apouistyle' , 'Apophysis GUI style...' ) ;
Add( 'main-menu-options-apouistylehint' , 'Change the Apophysis visual appearance' ) ;
Add( 'main-menu-help-title' , 'Help' ) ;
Add( 'main-menu-help-contents' , 'Contents' ) ;
Add( 'main-menu-help-aboutalgorithm' , 'About fractal flames...' ) ;
Add( 'main-menu-help-aboutapophysis' , 'About Apophysis ...' ) ;
Add( 'main-menu-help-contentshint' , 'Open the Apophysis help file' ) ;
Add( 'main-menu-help-aboutalgorithmhint' , 'Open the corresponding documentation in your internet browser' ) ;
Add( 'main-menu-help-aboutapophysishint' , 'Show copyright and version information' ) ;
Add( 'main-menu-help-ifstheory' , 'Theory of IFS fractals...' ) ;
Add( 'main-menu-help-ifstheoryhint' , 'Open the link to M.Barnsley' 's "Fractal Everywhere" book in your internet browser' ) ;
Add( 'main-menu-help-pluginlink' , 'Download Apophysis plugins....' ) ;
Add( 'main-menu-renamehint' , 'Rename the selected fractal' ) ;
Add( 'main-menu-deletehint' , 'Delete the selected fractal from the file' ) ;
Add( 'main-menu-screenshot' , 'Make a sreenshot of the active window' ) ;
Add( 'main-menu-saveimage' , 'Save the preview image with parameters' ) ;
Add( 'main-menu-updatethumb' , 'Update thumbnail' ) ;
Add( 'main-menu-updateallthumbs' , 'Update all thumbnails' ) ;
Add( 'main-toolbar-listviewmode-classic' , 'Classic view | Change the flame list view to a report (single text)' ) ;
Add( 'main-toolbar-listviewmode-icons' , 'Thumbnail view | Change a flame list view to icons' ) ;
Add( 'main-toolbar-togglealpha' , 'Show transparency | Show the flame on a transparent background' ) ;
Add( 'main-toolbar-toggleguides' , 'Show guidelines | Show flame thirds, center and golden ratio' ) ;
Add( 'main-toolbar-modemove' , 'Translate the camera | Translate the fractal image using mouse' ) ;
Add( 'main-toolbar-moderotate' , 'Rotate the camera | Rotate the fractal image using mouse' ) ;
Add( 'main-toolbar-modezoomin' , 'Zoom in | Scale up the fractal image using mouse' ) ;
Add( 'main-toolbar-modezoomout' , 'Zoom out | Scale down the fractal image using mouse' ) ;
// AV: added a bunch of missing hints
Add( 'main-toolbar-new' , 'New Flame | Create a new fractal project' ) ;
Add( 'main-toolbar-open' , 'Open (Ctrl+O) | Open a parameter file for browsing' ) ;
Add( 'main-toolbar-saveparams' , 'Save fractal parameters (Ctrl+S)| Save fractal parameters to a flame file' ) ;
Add( 'main-toolbar-render' , 'Render flame(Ctrl+R) | Save the current flame to disk as a picture' ) ;
Add( 'main-toolbar-renderall' , 'Render all flames| Save all fractals as pictures' ) ;
Add( 'main-toolbar-undo' , 'Undo (Ctrl+Z)| Undo the last action' ) ;
Add( 'main-toolbar-redo' , 'Redo (Ctrl+Y) | Redo the last cancelled action' ) ;
Add( 'main-toolbar-reset' , 'Reset Location (F12) | Recalculate the flame size and position' ) ;
Add( 'main-toolbar-fullscreen' , 'Fullscreen (F3) | Show full-screen view of the flame' ) ;
Add( 'main-toolbar-editor' , 'Editor | Open transform editor' ) ;
Add( 'main-toolbar-adjustment' , 'Adjustment | Adjust the position, size and colors of the flame' ) ;
Add( 'main-toolbar-gradient' , 'Gradient | Change a color palette of the flame' ) ;
Add( 'main-toolbar-curves' , 'Curves | Edit color curves of the fractal image' ) ;
Add( 'main-toolbar-mutation' , 'Mutation | Show randomly generated modifications of the current flame' ) ;
Add( 'main-toolbar-quality' , 'Rendering quality | Set flame quality (density) for the main preview window' ) ;
Add( 'main-toolbar-imagesize' , 'Image size | Change the image size' ) ;
2022-06-23 06:22:32 -04:00
Add( 'main-toolbar-animator' , 'Animator | Show animation editor' ) ;
2022-03-08 12:25:51 -05:00
Add( 'main-toolbar-messages' , 'Messages | Show error messages' ) ;
Add( 'main-toolbar-options' , 'Settings | Change Apophysis default settings' ) ;
Add( 'main-toolbar-editscript' , 'Edit script | Edit the script code' ) ;
Add( 'main-toolbar-runscript' , 'Run script | Execute the current script' ) ;
Add( 'main-toolbar-stopscript' , 'Stop script | To stop an animation script, you can press any key on your keyboard' ) ;
Add( 'main-status-batchgenerate' , 'Generating %d of %s...' ) ;
Add( 'main-status-batcherror' , 'Error creating batch.' ) ;
Add( 'main-status-calculatingpalette' , 'Calculating the palette, (%d%%)...' ) ; // AV: doesn't work...
Add( 'main-status-noflam3' , 'Unable to find flam3 executable. Please verify your settings.' ) ;
Add( 'main-status-nohelpfile' , 'Please specify a help file path in the options dialog first.' ) ;
Add( 'main-status-variationsorvariables' , 'variations or variables' ) ;
Add( 'main-status-plugins' , 'plugins' ) ;
Add( 'main-status-pluginpath-ioerror' , 'Failed to write the setting for the plugin directory. Apophysis will use the default setting.' ) ;
Add( 'main-status-noloadingerrors' , 'Flame loaded without errors' ) ;
Add( 'main-status-loadingerrorcount' , '%d errors in flame' ) ;
Add( 'main-status-morepluginsneeded' , 'The flame "%s" requires the following additional %s:' ) ;
Add( 'main-status-noautosave' , 'No autosave present.' ) ;
Add( 'main-status-chaoticacompatmissing' , 'The variation compatibility data file can not be found at the configured location of Chaotica. The rendering result may look different from the preview. Do you want to proceed?' ) ;
Add( 'main-status-nochaotica' , 'The executable file of Chaotica could not be found. Please check your settings.' ) ;
Add( 'main-status-oldchaotica' , 'The rendering result may look different from the preview. Do you want to proceed?' ) ;
Add( 'main-report-transformcount' , 'Transform count: %d' ) ;
Add( 'main-report-finaltransform' , 'Has final transform: %s' ) ;
Add( 'main-report-directcoloring' , 'Has direct coloring: ' ) ;
Add( 'main-report-flame3d' , 'Has 3D view: ' ) ;
Add( 'main-report-usedplugins' , 'Used plugins:' ) ;
Add( 'main-report-noplugins' , '(none)' ) ;
Add( 'varorder-title' , 'Variation Execution Order' ) ;
Add( 'varorder-totop' , 'To Top' ) ;
Add( 'varorder-tobottom' , 'To Bottom' ) ;
Add( 'varorder-byname' , 'Sort by name' ) ;
Add( 'varorder-bynamehint' , 'Sort variations in alphabetical order' ) ;
Add( 'varorder-byindex' , 'Default order' ) ;
Add( 'varorder-byindexhint' , 'Restore the default variation order in Transform Editor' ) ;
Add( 'varorder-noselected' , 'Active variation not found. Please, select the variation to move.' ) ;
2022-06-23 06:22:32 -04:00
Add( 'formula-wrongargscount' , 'Invalid number of arguments to %s: expected %d, received %d.' ) ;
Add( 'formula-wrongdatatype' , 'The parameter must be a number.' ) ;
Add( 'formula-outofrange' , 'The value must be in range [-1, 1].' ) ;
Add( 'formula-unsigned' , 'The value must be positive.' ) ;
Add( 'formula-cannotevaluate' , 'Cannot evaluate the mathematical expression.' ) ;
Add( 'animate-title' , 'Animate flame' ) ;
Add( 'animate-general' , 'General' ) ;
Add( 'animate-animation' , 'Animation' ) ;
Add( 'animate-output' , 'Output settings' ) ;
Add( 'animate-duration' , 'Duration' ) ;
Add( 'animate-fps' , 'Frames per second' ) ;
Add( 'animate-parameters' , 'Animation parameters' ) ;
Add( 'animate-outflame' , 'Output flame file' ) ;
Add( 'animate-prefix' , 'Name prefix' ) ;
Add( 'animate-frame' , 'Frame' ) ;
Add( 'animate-preview' , 'Animation preview' ) ;
Add( 'animate-save' , 'Save' ) ;
Add( 'animate-stop' , 'Stop' ) ;
Add( 'animate-playhint' , 'Play animation' ) ;
Add( 'animate-stophint' , 'Stop current animation' ) ;
Add( 'animate-type' , 'Animation type' ) ;
Add( 'animate-showframes' , 'Show generated frames' ) ;
Add( 'animate-currentflame' , ' (Current flame)' ) ;
Add( 'animate-status-generating' , 'Generating frame %d of %d...' ) ;
Add( 'animate-status-finished' , 'Frame generation finished.' ) ;
Add( 'animate-status-changeflame' , 'Initial and final frames must be different.' ) ;
Add( 'animate-status-stopped' , 'Frame generation is interrupted.' ) ;
Add( 'animate-kind-rotateflame' , 'Rotate flame' ) ;
Add( 'animate-kind-rotatereference' , 'Rotate reference triangle' ) ;
Add( 'animate-kind-rotatehue' , 'Change gradient hue' ) ;
Add( 'animate-kind-rotatepalette' , 'Rotate color gradient' ) ;
Add( 'animate-kind-rotatecamera' , 'Rotate 3D camera' ) ;
Add( 'animate-kind-morph1' , 'Morphing (interpolation: cosine, RGB)' ) ;
Add( 'animate-kind-morph2' , 'Morphing (interpolation: cosine, HSV)' ) ;
Add( 'animate-kind-morph3' , 'Morphing (interpolation: linear, RGB)' ) ;
Add( 'animate-kind-morph4' , 'Morphing (interpolation: linear, HSV)' ) ;
Add( 'animate-render' , 'Render all frames after generation' ) ;
Add( 'animate-resetlocation' , 'Calculate flame location for each frame' ) ;
Add( 'animate-graphicext' , 'Graphic extension' ) ;
Add( 'animate-initflame' , 'Initial flame' ) ;
Add( 'animate-finalflame' , 'Initial flame' ) ;
Add( 'animate-savehint' , 'Save all animated frames to hard disk' ) ;
Add( 'animate-invertbg' , 'Invert background color' ) ;
2022-03-08 12:25:51 -05:00
end ;
procedure Add( key, value: string ) ;
var entry : TKeyValuePair;
begin
Inc( tokenCount) ;
SetLength( language, tokenCount) ;
SetLength( defaultlanguage, tokenCount) ;
entry : = TKeyValuePair. Create;
entry. key : = key;
entry. value : = value;
language[ tokenCount - 1 ] : = entry;
defaultlanguage[ tokenCount - 1 ] : = entry;
end ;
procedure AddNoDefault( key, value: string ) ;
var entry : TKeyValuePair;
begin
Inc( tokenCount) ;
SetLength( language, tokenCount) ;
entry : = TKeyValuePair. Create;
entry. key : = key;
entry. value : = value;
language[ tokenCount - 1 ] : = entry;
end ;
procedure LoadLanguage( path: string ) ;
begin
if ( path = '' ) or ( not FileExists( path) ) then LoadEnglish( )
else begin
tokenCount : = 0 ;
if true then begin
parser : = TParser. Create;
ListXmlScanner : = TEasyXmlScanner. Create( nil ) ;
ListXmlScanner. OnStartTag : = parser. ListXmlScannerStartTag;
ListXmlScanner. OnEndTag : = parser. ListXmlScannerEndTag;
ListXmlScanner. OnEmptyTag : = parser. ListXmlScannerEmptyTag;
ListXmlScanner. OnContent : = parser. ListXmlScannerContent;
ListXmlScanner. Filename : = path;
ListXmlScanner. Execute;
ListXmlScanner. Destroy;
parser. Destroy;
end ;
end ;
end ;
function TextByKey( key: string ) : string ;
var i: integer ;
begin
Result : = '#ERR_NO_TEXT#' ;
for i: = 0 to tokenCount - 1 do begin
if LowerCase( language[ i] . key) = LowerCase( key) then begin
Result : = language[ i] . value;
exit;
end ;
end ;
// maybe try default language?
for i: = 0 to tokenCount - 1 do begin
if LowerCase( defaultlanguage[ i] . key) = LowerCase( key) then begin
Result : = defaultlanguage[ i] . value;
exit;
end ;
end ;
end ;
constructor TParser. Create;
begin
self. parentTagnames : = TStringList. Create;
end ;
procedure TParser. ListXmlScannerStartTag( Sender: TObject; TagName: string ; Attributes: TAttrList) ;
begin
self. parentTagnames. Add( self. currentTagname) ;
self. currentTagname : = TagName;
end ;
2022-06-23 06:22:32 -04:00
2022-03-08 12:25:51 -05:00
procedure TParser. ListXmlScannerEndTag( Sender: TObject; TagName: string ) ;
var lastIndex : integer ;
begin
lastIndex : = self. parentTagnames. Count - 1 ;
self. currentTagname : = self. parentTagnames. Strings[ lastIndex] ;
self. parentTagnames. Delete( lastIndex) ;
end ;
procedure TParser. ListXmlScannerEmptyTag( Sender: TObject; TagName: string ; Attributes: TAttrList) ;
var lastIndex : integer ;
begin
self. parentTagnames. Add( self. currentTagname) ;
self. currentTagname : = TagName;
self. ListXmlScannerContent( Sender, '' ) ;
lastIndex : = self. parentTagnames. Count - 1 ;
self. currentTagname : = self. parentTagnames. Strings[ lastIndex] ;
self. parentTagnames. Delete( lastIndex) ;
end ;
destructor TParser. Destroy;
begin
self. parentTagnames. Free; // AV: fixed memory leak
inherited ;
end ;
procedure TParser. ListXmlScannerContent( Sender: TObject; Content: string ) ;
const root: string = 'stringtable' ;
var key, tn: string ; i: integer ;
begin
2022-06-23 06:22:32 -04:00
for i : = 0 to self. parentTagnames. Count - 1 do begin
2022-03-08 12:25:51 -05:00
tn : = self. parentTagnames. Strings[ i] ;
if not ( tn = '' ) and not ( tn = root) then key : = key + tn + '-' ;
end ;
key : = key + self. currentTagname;
Add( key, Content) ;
end ;
end .