messages.js 38 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520
  1. /*
  2. Copyright (C) 2014-2015 H3XL, Inc
  3. This program is free software: you can redistribute it and/or modify
  4. it under the terms of the GNU General Public License as published by
  5. the Free Software Foundation, either version 3 of the License, or
  6. (at your option) any later version.
  7. This program is distributed in the hope that it will be useful,
  8. but WITHOUT ANY WARRANTY; without even the implied warranty of
  9. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  10. GNU General Public License for more details.
  11. You should have received a copy of the GNU General Public License
  12. along with this program. If not, see <http://www.gnu.org/licenses/>.
  13. */
  14. /**
  15. * @fileoverview English strings.
  16. * @author J. Yoder
  17. *
  18. * After modifying this file, either run (from this directory):
  19. * js_to_json.py
  20. * to regenerate json/{en,qqq,synonyms}.json.
  21. *
  22. * To convert all of the json files to .js files, run:
  23. * create_messages.py json/*.json
  24. */
  25. 'use strict';
  26. goog.provide('Blockscad.Msg.en');
  27. // User Interface
  28. /// Project Menu title
  29. Blockscad.Msg.PROJECT_MENU = 'Project';
  30. /// Menu title to bring up a list of saved projects the user has created
  31. Blockscad.Msg.MY_PROJECTS = 'My projects';
  32. /// Menu title to create a new project
  33. Blockscad.Msg.NEW = 'New';
  34. /// Menu title to save xml block file to the local machine
  35. Blockscad.Msg.SAVE_BLOCKS_LOCAL = 'Save Blocks to your Computer';
  36. /// Menu title to save xml blocks to cloud account as a copy (not overwrite the current project, but save as a new project)
  37. Blockscad.Msg.SAVE_BLOCKS_AS_COPY = 'Save as a Copy';
  38. /// Menu title to load xml blocks from the local machine and put them in a new project
  39. Blockscad.Msg.LOAD_BLOCKS_LOCAL = 'Load Blocks from your Computer';
  40. /// Menu title to import xml blocks into the current project (keeping any current blocks)
  41. Blockscad.Msg.IMPORT_BLOCKS_LOCAL = 'Import Blocks into Current Project';
  42. /// Menu title to import an .stl file from the local machine into the current project
  43. Blockscad.Msg.IMPORT_STL_MENU = 'Import STL file into Current Project';
  44. /// Menu title to export Openscad code (.scad file) to the local machine
  45. Blockscad.Msg.SAVE_SCAD_LOCAL = 'Save OpenSCAD code to your Computer';
  46. /// Options Menu Title
  47. Blockscad.Msg.OPTIONS_MENU = 'Options';
  48. /// Menu option Simple Toolbox, a toolbox with only the most-used blocks
  49. Blockscad.Msg.SIMPLE_TOOLBOX = 'Simple Toolbox';
  50. /// Menu option Advanced Toolbox, a toolbox with all blocks available (this is the default)
  51. Blockscad.Msg.ADVANCED_TOOLBOX = 'Advanced Toolbox';
  52. /// Menu option Block Color Scheme, allowing the user to switch the colors of the block categories
  53. Blockscad.Msg.BLOCK_COLORS = 'Block Color Scheme';
  54. /// Menu option for original color scheme for blocks - the 'classic' or default option
  55. Blockscad.Msg.CLASSIC_COLORS = 'Classic';
  56. /// Menu option for pale color scheme for blocks
  57. Blockscad.Msg.PALE_COLORS = 'Pale';
  58. /// Help Menu Title
  59. Blockscad.Msg.HELP_MENU = 'Help';
  60. /// Menu link to tool documentation
  61. Blockscad.Msg.DOCUMENTATION_LINK = 'Documentation';
  62. /// Menu title for About page
  63. Blockscad.Msg.ABOUT_LINK = 'About';
  64. /// Examples Menu Title
  65. Blockscad.Msg.EXAMPLES_MENU = 'Examples';
  66. /// Project Name input area - text to indicate where the user can give a name to their project
  67. Blockscad.Msg.PROJECT_NAME = 'Project Name';
  68. /// Project name default value - the name given to every new project to indicate that it doesn't have a title yet
  69. Blockscad.Msg.PROJECT_NAME_DEFAULT = 'Untitled';
  70. /// Blocks Tab text - tab text for switching to the view of the block form of the program
  71. Blockscad.Msg.BLOCKS_TAB = 'Blocks';
  72. /// Code Tab text - tab text for switching to the text view of the program code
  73. Blockscad.Msg.CODE_TAB = 'Code';
  74. /// Save button
  75. Blockscad.Msg.SAVE_BUTTON = 'Save';
  76. /// Message to the user showing that a save is in progress
  77. Blockscad.Msg.SAVE_IN_PROGRESS = 'Saving...';
  78. /// Message to the user showing that a save completed without error
  79. Blockscad.Msg.SAVE_COMPLETE = 'Saved!';
  80. /// Message showing that a save failed
  81. Blockscad.Msg.SAVE_FAILED = 'Save Failed.';
  82. /// message prompting user to enter a name for their project.
  83. Blockscad.Msg.SAVE_FAILED_PROJECT_NAME = 'Please give your project a name, then try again.';
  84. /// Button to register/sign up for a Blockscad account
  85. Blockscad.Msg.REGISTER_BUTTON = 'Register';
  86. /// message to indicate that the system is processing the registration request
  87. Blockscad.Msg.REGISTER_IN_PROGRESS = 'Registering...';
  88. /// Registration pop-up window title that indicates that a new account is being created
  89. Blockscad.Msg.REGISTER_NEW_USER = 'Register New User';
  90. /// username: Registration/Login windows to indicate the user should type in their username, their account identifier
  91. Blockscad.Msg.USERNAME_FIELD = 'Username';
  92. /// password: label for where the user types in their password
  93. Blockscad.Msg.PASSWORD_FIELD = 'Password';
  94. /// retype password: in registration , the user must enter their password twice. This label is for the second time they type it in.
  95. Blockscad.Msg.PASSWORD_RETYPE_FIELD = 'Retype Password';
  96. /// email: in registration, user must enter their email address.
  97. Blockscad.Msg.EMAIL_FIELD = 'Email';
  98. /// forgot password?: link for a user to click to get help recovering their password
  99. Blockscad.Msg.PASSWORD_FORGOT_FIELD = 'Forgot Password?';
  100. /// password reset email sent: inform the user that an email has been sent to their email address with instructions on how to reset their password.
  101. Blockscad.Msg.PASSWORD_RESET_EMAIL_SENT = 'Password Reset Email has been Sent';
  102. /// text explaning next steps after password recovery email has been sent to the user.
  103. Blockscad.Msg.PASSWORD_RESET_EMAIL_INSTRUCTIONS = 'We"ve sent an email to the address associated with your account with a link to reset your password. If you don"t see it, check your spam folder';
  104. /// Button to sign in or log in to an already created Blockscad account
  105. Blockscad.Msg.LOGIN_BUTTON = 'Sign in';
  106. /// message to indicate that the system is processing the login request
  107. Blockscad.Msg.LOGIN_IN_PROGRESS = 'Signing in...';
  108. /// Button to log out of an account
  109. Blockscad.Msg.LOGOUT_BUTTON = 'Logout';
  110. /// link to change user's password
  111. Blockscad.Msg.CHANGE_PASSWORD = 'Change Password';
  112. /// instructions to change user's password: inform the user that when they have finished changing their password, they will need to log in again.
  113. Blockscad.Msg.CHANGE_PASSWORD_INSTRUCTIONS = 'After changing your password, BlocksCAD will prompt you to login again.';
  114. /// old password: when changing password, user must enter their old (current) password
  115. Blockscad.Msg.OLD_PASSWORD = 'Old Password';
  116. /// new password: when changing password, user must type in the new password they want
  117. Blockscad.Msg.NEW_PASSWORD = 'New Password';
  118. /// confirm new password: when changing password, user must re-type the new password they want to confirm that they didn't mistype it
  119. Blockscad.Msg.CONFIRM_NEW_PASSWORD = 'Confirm New Password';
  120. /// link to change the email attached to a user's account
  121. Blockscad.Msg.CHANGE_EMAIL = 'Change Email';
  122. /// current email: list the current email attached to a user's account
  123. Blockscad.Msg.CHANGE_EMAIL_CURRENT = 'Current Email';
  124. /// new email: user must type in the new email address they want associated with their account
  125. Blockscad.Msg.CHANGE_EMAIL_NEW = 'New Email';
  126. /// link to delete a users account
  127. Blockscad.Msg.DELETE_ACCOUNT = 'Delete My Account';
  128. /// message asking if the user is sure they want to delete their account
  129. Blockscad.Msg.DELETE_ACCOUNT_CONFIRM = 'Are you sure you want to delete your BlocksCAD account?';
  130. /// instructions for deleting an account. inform the user that the account will be deleted in 48 hours.
  131. Blockscad.Msg.DELETE_ACCOUNT_INSTRUCTIONS_ONE = 'In about 48 hours your account will be permanently deleted.';
  132. /// instructions for deleting an account. inform the user that they can prevent account deletion by logging in within the next two days.
  133. Blockscad.Msg.DELETE_ACCOUNT_INSTRUCTIONS_TWO = 'If you change your mind, just sign in to your account within the next 48 hours.';
  134. /// ask user to confirm account deletion by entering their password
  135. Blockscad.Msg.DELETE_ACCOUNT_CONFIRM_PASSWORD = 'Enter password to confirm';
  136. /// button which deletes the account and signs the user out.
  137. Blockscad.Msg.DELETE_ACCOUNT_BUTTON = 'Delete Account and Sign Out';
  138. /// reactivate account title - if the user logs into their account to prevent deletion, inform them that "Your account will not be deleted"
  139. Blockscad.Msg.REACTIVATE_ACCOUNT_TITLE = 'Your account will not be deleted';
  140. /// reactivate account explanation: explain to the user that their account will not be deleted, and if they hadn't requested deletion, they should change their password.
  141. Blockscad.Msg.REACTIVATE_ACCOUNT_EXPLAINED = 'Your account has been reactivated - it is no longer scheduled to be deleted. If you didn"t send a delete account request, you should change your password to make sure your account is secure.';
  142. /// reactivate button: this button closes the reactivation dialog. It doesn't do anything.
  143. Blockscad.Msg.REACTIVATE_BUTTON = 'Okay';
  144. /// message asking if the user is sure they want to delete a project. the text *Project_name* will be replaced with the actual name of the project being deleted. Please do not change the text "*Project_name*", though you may move it around in the phrase as needed.
  145. Blockscad.Msg.DELETE_PROJECT_CONFIRM = 'Are you sure you want to delete *Project_name*?';
  146. /// yes: for confirmation dialogs ("are you sure you want to do xxxxxxx"), this button indicates YES, they want to perform that action.
  147. Blockscad.Msg.CONFIRM_DIALOG_YES = 'Sure';
  148. /// no: for confirmation dialogs ("are you sure you want to do xxxxxxx"), this button indicates NO, they DO NOT want to perform that action, and instead want to cancel the operation.
  149. Blockscad.Msg.CONFIRM_DIALOG_NO = 'Cancel';
  150. /// save prompt: ask the user if they want to save their project
  151. Blockscad.Msg.SAVE_PROMPT = 'Do you want to save your project?';
  152. /// save prompt button SAVE: button the user presses to indicate that yes, they want to save their project
  153. Blockscad.Msg.SAVE_PROMPT_YES = 'Save';
  154. /// save prompt button Don't Save: button the user presses to indicate that they do not want to save their project
  155. Blockscad.Msg.SAVE_PROMPT_NO = 'Don"t Save';
  156. /// Reset Password: The Reset Password dialog title and button to reset the user's password if they forgot it.
  157. Blockscad.Msg.RESET_PASSWORD = 'Reset Password';
  158. /// Or: when resetting a password, the user needs to provide a username OR password, but not both.
  159. Blockscad.Msg.DIALOG_OR = 'or';
  160. /// Reset Password Instructions: instruct the user to enter their username or email and they will be sent an email with instructions for resetting their password.
  161. Blockscad.Msg.RESET_PASSWORD_INSTRUCTIONS = 'Enter your username or your email and we will send you an email with instructions to reset your password.';
  162. /// Reset Password send link: this button will send a link to the user's email that will allow them to reset their password.
  163. Blockscad.Msg.RESET_PASSWORD_LINK_BUTTON = 'Send me a link to reset my password!';
  164. // Render Window Text
  165. /// Render button text
  166. Blockscad.Msg.RENDER_BUTTON = 'Render';
  167. /// Abort button text - button used to cancel rendering
  168. Blockscad.Msg.ABORT_BUTTON = 'Abort!';
  169. /// Generate button text for exporting mesh files (.stl, .x3d, .amf)
  170. Blockscad.Msg.GENERATE_STL = 'Generate';
  171. /// Rendering in progress informational text
  172. Blockscad.Msg.RENDER_IN_PROGRESS = 'Rendering...';
  173. Blockscad.Msg.PARSE_IN_PROGRESS = 'Parsing...';
  174. // need to add in error messages
  175. // switch the reset view to pictures?
  176. // text found on Blocks
  177. // Shapes (2D and 3D)
  178. /// Sphere Block - block that produces a sphere
  179. Blockscad.Msg.SPHERE = 'sphere';
  180. /// Radius - the distance from the center of a circle or sphere to its edge
  181. Blockscad.Msg.RADIUS = 'radius';
  182. /// Centered - property of a shape which makes it centered at the origin (where X, Y, Z axes intersect)
  183. Blockscad.Msg.CENTERED = 'centered';
  184. /// Not Centered - property of a shape which is not centered along one or more axes
  185. Blockscad.Msg.NOT_CENTERED = 'not centered';
  186. /// Cube block - block that produces a cube
  187. Blockscad.Msg.CUBE = 'cube';
  188. /// Cylinder block - block that produces a cylinder or cone
  189. Blockscad.Msg.CYLINDER = 'cylinder';
  190. /// Torus block - block that produces a torus
  191. Blockscad.Msg.TORUS = 'torus';
  192. /// Circle block - block that produces a 2D circle
  193. Blockscad.Msg.CIRCLE = 'circle';
  194. /// Square block - block that produces a 2D square
  195. Blockscad.Msg.SQUARE = 'square';
  196. // Transformations
  197. /// Translate - move a shape around in space
  198. Blockscad.Msg.TRANSLATE = 'translate';
  199. /// Rotate - rotate a shape in space
  200. Blockscad.Msg.ROTATE = 'rotate';
  201. /// Mirror - mirror or reflect a shape across a plane
  202. Blockscad.Msg.MIRROR = 'mirror';
  203. /// Scale - scale the size of a shape up or down
  204. Blockscad.Msg.SCALE = 'scale';
  205. /// Color - change the color of a shape
  206. Blockscad.Msg.COLOR = 'color';
  207. /// Sides - change the smoothness, or resolution, of a shape by changing how many sides are used to approximate a curve
  208. Blockscad.Msg.SIDES = 'sides';
  209. /// Taper - taper a shape along an axis
  210. Blockscad.Msg.TAPER = 'taper';
  211. /// Linear Extrude - extrude a 2D shape upwards to form a 3D shape
  212. Blockscad.Msg.LINEAR_EXTRUDE = 'linear extrude';
  213. /// Rotate Extrude - extrue a 2D shape around in a ring to form a torus
  214. Blockscad.Msg.ROTATE_EXTRUDE = 'rotate extrude';
  215. /// Height - a parameter of a shape to control how high or tall it is
  216. Blockscad.Msg.HEIGHT = 'height';
  217. /// Faces - a torus parameter to control how many segments are used to approximate the curve of the cross-section
  218. Blockscad.Msg.FACES = 'faces';
  219. /// Across - for mirroring a shape 'across' a plane
  220. Blockscad.Msg.ACROSS = 'across';
  221. /// Along - for tapering a shape 'along' an axis
  222. Blockscad.Msg.ALONG = 'along';
  223. /// Axis - line of rotation in 3D space
  224. Blockscad.Msg.AXIS = 'axis';
  225. /// Advanced rotation: applies a rotation around a vector specified by the user. Needs to differentiate the block from the basic rotation block.
  226. Blockscad.Msg.ROTATE_ADVANCED = 'fancy rotate';
  227. /// Advanced mirror: applies a reflection across a plane whose normal vector is specified by the user. Needs to differentiate the block from the basic mirror block.
  228. Blockscad.Msg.MIRROR_ADVANCED = 'fancy mirror';
  229. /// Around: for rotation 'around' a specified axis
  230. Blockscad.Msg.AROUND = 'around';
  231. /// RGB - a color model with the parameters red, green, blue
  232. Blockscad.Msg.RGB_COLOR_MODEL = 'RGB';
  233. /// HSV - a color model with the parameters hue, saturation, and value.
  234. Blockscad.Msg.HSV_COLOR_MODEL = 'HSV';
  235. /// Hue: the first parameter in the HSV (hue, saturation, value) color scheme
  236. Blockscad.Msg.COLOR_HUE = 'hue';
  237. /// Saturation: the second parameter in the HSV (hue, saturation, value) color scheme
  238. Blockscad.Msg.COLOR_SATURATION = 'saturation';
  239. /// Value: the third parameter in the HSV (hue, saturation, value) color scheme
  240. Blockscad.Msg.COLOR_VALUE = 'value';
  241. /// Twist: as a shape is rotated upward, it can be gradually 'twist'ed (turned, rotated) ending up with a partial corkscrew or helix type of shape.
  242. Blockscad.Msg.TWIST = 'twist';
  243. /// STL Import: this is a block that, when clicked, allows the user to upload an STL file (a 3D shape) from their local computer into their project.
  244. Blockscad.Msg.IMPORT_STL = 'STL import';
  245. /// Browse: button that, when pressed, allows the user to pick out the file they want to upload from all the choices in a directory.
  246. Blockscad.Msg.BROWSE = 'browse';
  247. /// Center: indicates where the center coordinates of an imported .stl file are
  248. Blockscad.Msg.CENTER = 'center';
  249. /// Text 2D: title for a block that models text two-dimensionally (flat letters, numbers, etc.)
  250. Blockscad.Msg.BLOCK_TEXT_2D = '2D text';
  251. /// Text 3D: title for a block that models text three-dimensionally (solid letters, numbers, etc.)
  252. Blockscad.Msg.BLOCK_TEXT_3D = '3D text';
  253. /// Font size: word to indicate how large or small the letters should be printed
  254. Blockscad.Msg.FONT_SIZE = 'size';
  255. /// Font: the style that the letters are written in
  256. Blockscad.Msg.FONT_NAME = 'font';
  257. /// Thickness: when letters are printed on the XY plane, 'thickness' is how high the letter model is in the Z direction.
  258. Blockscad.Msg.TEXT_THICKNESS = 'thickness';
  259. /// Default Text: the default text in a text block. English uses the first three letters of the alphabet.
  260. Blockscad.Msg.TEXT_DEFAULT_VALUE = 'abc';
  261. /// Convex Hull: this block computes the convex hull of the set of points of all the shapes given to it. The effect is to wrap the objects together into a single convex object (with no parts that dip inward). This is a mathematical term.
  262. Blockscad.Msg.CONVEX_HULL = 'hull';
  263. /// Difference: takes one object and subtracts away another. This is a term from set theory in mathematics.
  264. Blockscad.Msg.DIFFERENCE = 'difference';
  265. /// Union: groups objects into a single object. This is a term from set theory in mathematics.
  266. Blockscad.Msg.UNION = 'union';
  267. /// Intersection: returns the overlapping parts of two or more objects. This is a term from set theory in mathematics.
  268. Blockscad.Msg.INTERSECTION = 'intersection';
  269. /// Plus: a word used when adding numbers together: A 'plus' B is A + B
  270. Blockscad.Msg.PLUS = 'plus';
  271. /// Minus: the word used when subtracting numbers: A 'minus' B is A - B
  272. Blockscad.Msg.MINUS = 'minus';
  273. /// With: preposition to indicate that two things are together: combine A 'with' B
  274. Blockscad.Msg.WITH = 'with';
  275. // Block category labels
  276. /// 3D Shapes: these blocks model three dimensional shapes like spheres, cubes, and cylinders
  277. Blockscad.Msg.CATEGORY_3D_SHAPES = '3D Shapes';
  278. /// 2D Shapes: these blocks model flat shapes like circles and spheres
  279. Blockscad.Msg.CATEGORY_2D_SHAPES = '2D Shapes';
  280. /// Transforms: These blocks apply mathematical transformations to their child shapes, such as moving them, rotating them, scaling them, etc.
  281. Blockscad.Msg.CATEGORY_TRANSFORMATIONS = 'Transforms';
  282. /// Set Operations: These blocks combine multiple child shapes with mathematical set theory operations like union, difference, and intersection.
  283. Blockscad.Msg.CATEGORY_SET_OPERATIONS = 'Set Ops';
  284. /// Math: these blocks are used to make mathematical calculations
  285. Blockscad.Msg.CATEGORY_MATH = 'Math';
  286. /// Logic: these blocks perform logical operations that return true/false values like (if A > B), or (if C is true then do something), or (does A equal B?)
  287. Blockscad.Msg.CATEGORY_LOGIC = 'Logic';
  288. /// Loops: loops are a programming concept that allow actions to be repeated a number of times (specified by the programmer)
  289. Blockscad.Msg.CATEGORY_LOOPS = 'Loops';
  290. /// Text: these blocks allow the modeling of text as a 3D or 2D mesh
  291. Blockscad.Msg.CATEGORY_TEXT = 'Text';
  292. /// Variables: variables are used to store data in memory (in computer programming).
  293. Blockscad.Msg.CATEGORY_VARIBLES = 'Variables';
  294. /// Procedures: Blocks for defining [https://en.wikipedia.org/wiki/Procedure_(computer_science) functions]. OpenSCAD refers to their functions/procedures as 'modules', so that is the choice in English.
  295. Blockscad.Msg.CATEGORY_PROCEDURES = 'Modules';
  296. // reset view directions in render window
  297. // I hope to have icons for these soon but until then...
  298. /// button to reset the view in the render window
  299. Blockscad.Msg.RESET_VIEW_BUTTON = 'Reset View';
  300. /// view direction: diagonal
  301. Blockscad.Msg.DIRECTION_DIAGONAL = 'diagonal';
  302. /// view direction: front
  303. Blockscad.Msg.DIRECTION_FRONT = 'front';
  304. /// view direction: top
  305. Blockscad.Msg.DIRECTION_TOP = 'top';
  306. /// view direction: right
  307. Blockscad.Msg.DIRECTION_RIGHT = 'right';
  308. /// view direction: left
  309. Blockscad.Msg.DIRECTION_LEFT = 'left';
  310. /// view direction: back
  311. Blockscad.Msg.DIRECTION_BACK = 'back';
  312. /// view direction: bottom
  313. Blockscad.Msg.DIRECTION_BOTTOM = 'bottom';
  314. // Errors in login and registration forms
  315. /// Error message: user has tried to change their password to match their username, which is not allowed.
  316. Blockscad.Msg.ERROR_PASSWORD_IS_USERNAME = 'Your password cannot match your username!';
  317. /// Error message: password is too short. it must be at least six characters long.
  318. Blockscad.Msg.ERROR_PASSWORD_LENGTH = 'Your password must be at least 6 characters long.';
  319. /// Error message: password is not allowed to be the word 'password'
  320. Blockscad.Msg.ERROR_PASSWORD_IS_PASSWORD = 'Your password cannot be the word "password".';
  321. /// Error message: password field was left empty. Indicate to the user that they should choose a password that is at least six characters long.
  322. Blockscad.Msg.ERROR_PASSWORD_IS_EMPTY = 'Please choose a password at least 6 characters long.';
  323. /// Error message: user has entered two passwords to register and they don't match. Tell them to make their second password match the first.
  324. Blockscad.Msg.ERROR_PASSWORD_CONFIRM = 'Your second password must match the first password.';
  325. /// Error message: user has not provided a legal email address (must be of the form x@y.z)
  326. Blockscad.Msg.ERROR_EMAIL_IS_INVALID = 'You must provide a valid email address.';
  327. /// Error message: user has left the email field blank, but it is required. Ask them to enter their email address.
  328. Blockscad.Msg.ERROR_EMAIL_IS_EMPTY = 'Please enter an email address.';
  329. /// Error message: user has left the username field blank during registration. Ask them to choose a username.
  330. Blockscad.Msg.ERROR_USERNAME_IS_EMPTY = 'Please choose a username.';
  331. /// Error message: user has chosen a username that is too short. Tell them that their username must be between 3 and 30 characters.
  332. Blockscad.Msg.ERROR_USERNAME_LENGTH = 'Username must be between 3 and 30 characters.';
  333. /// Error message: username is only allowed to contain letters, numbers, the '-' and '_' symbols.
  334. Blockscad.Msg.ERROR_USERNAME_CHARACTERS = 'Your username may only contain letters, numbers, -, and _';
  335. /// Error message: user has chosen a username that is already in use. Inform them of this.
  336. Blockscad.Msg.ERROR_USERNAME_EXISTS = 'Sorry, that username already exists.';
  337. /// Error message: login failed. Let the user know that either their username or their password was incorrect.
  338. Blockscad.Msg.ERROR_LOGIN_FAILED = 'Incorrect username or password.';
  339. /// Error message: when changing their password, the user has incorrectly typed in their original password. Tell them to try again.
  340. Blockscad.Msg.ERROR_BAD_PASSWORD = 'Incorrect password - please retype your original password.';
  341. /// Error message: when resetting a password, if a user enters a username that the system cannot find, it sends this message:
  342. Blockscad.Msg.ERROR_MISSING_USERNAME = 'We can"t find this username.';
  343. /// Error message: when resetting a password, if a user enters an email that the system cannot find, it sends this message:
  344. Blockscad.Msg.ERROR_MISSING_EMAIL = 'We can"t find this email address.';
  345. // Text on the "My Projects" page of the backend.
  346. /// New Project Button: button to create a new project
  347. Blockscad.Msg.NEW_PROJECT_BUTTON = 'New Project';
  348. /// Back to Workspace button: this button returns the user to the editing view, where they can edit the project they were editing before they pulled up the project list
  349. Blockscad.Msg.PROJECT_LIST_EXIT = 'Exit List';
  350. /// Filter: text in the search box that allows the user to filter their listed projects by name. This text should be short because it needs to fit in the search box.
  351. Blockscad.Msg.PROJECT_LIST_FILTER = 'Filter';
  352. /// Last Modified: column header in the project list indicating the last time the project was saved by the user
  353. Blockscad.Msg.PROJECT_LIST_LAST_MODIFIED = 'Last Modified';
  354. /// Delete Project: Button next to each project in the project list that allows the user to delete that project.
  355. Blockscad.Msg.PROJECT_LIST_DELETE_BUTTON = 'Delete';
  356. /// More: the project list fetches saved projects from the server in batches. If there are more projects that haven't been retrieved, the "more" button appears to indicate that more projects are available from the server
  357. Blockscad.Msg.PROJECT_LIST_MORE_BUTTON = 'More';
  358. //Mouseover text
  359. /// Undo: mouseover text for undo button
  360. Blockscad.Msg.MOUSEOVER_UNDO = 'Undo';
  361. /// Redo: mouseover text for Redo button
  362. Blockscad.Msg.MOUSEOVER_REDO = 'Redo';
  363. /// Delete all blocks: mouseover text for trash can icon, which deletes all blocks on the workspace.
  364. Blockscad.Msg.MOUSEOVER_TRASHCAN = 'Delete all blocks';
  365. /// Delete all blocks message box: ask user if they want to delete some number of blocks
  366. Blockscad.Msg.DISCARD_ALL = 'Delete all %1 blocks?';
  367. /// Toggle display of X, Y, Z axes in the render window
  368. Blockscad.Msg.AXES_BUTTON = 'Toggle axes display';
  369. /// Set default color of rendered meshes button
  370. Blockscad.Msg.DEFAULT_COLOR_BUTTON = 'Set default render color';
  371. /// Zoom in button for render window
  372. Blockscad.Msg.ZOOM_IN_BUTTON = 'Zoom in';
  373. /// Zoom out button for render window
  374. Blockscad.Msg.ZOOM_OUT_BUTTON = 'Zoom out';
  375. /// Reset zoom and view to default diagonal view
  376. Blockscad.Msg.ZOOM_RESET_BUTTON = 'Reset view';
  377. // Parsing/Rendering error messages
  378. /// Warning: STL file block needs to re-load. Blockscad doesn't store STL files along with projects. When a project is loaded that had an STL file, BlocksCAD prompts the user to re-load the STL file.
  379. Blockscad.Msg.WARNING_RELOAD_STL = 'Warning: re-load your STL file block';
  380. /// Rendering error heading: this message precedes all other error messages and indicates that an error was found.
  381. Blockscad.Msg.ERROR_MESSAGE = 'Error';
  382. /// Rendering error: there are no shapes in the code to render.
  383. Blockscad.Msg.RENDER_ERROR_EMPTY = 'Nothing to Render';
  384. /// Rendering error: user has both 2-dimensional shapes (that have not been extruded) and 3-dimensional shapes in the same code, which the rendering engine cannot handle.
  385. Blockscad.Msg.RENDER_ERROR_MIXED = 'Both 2D and 3D objects are present. There can be only one.';
  386. /// Parsing error: blocks are missing fields. Some fields are required (you must have a value for the radius of a sphere, for example): this error alerts the user that some number of blocks are missing fields. %1 will be replaced by the actual number.
  387. Blockscad.Msg.PARSING_ERROR_MISSING_FIELDS = '%1 blocks are missing fields.';
  388. /// Parsing error: a block has an illegal value - for example, giving a negative radius to a sphere. The %1 will be replaced by the actual number.
  389. Blockscad.Msg.PARSING_ERROR_ILLEGAL_VALUE = '%1 blocks have an illegal value (negative or zero)';
  390. // Block tooltips
  391. /// Tooltip for the sphere block: Creates a sphere with the specified radius.
  392. /// to translate the image, make a folder for it in the imgs folder an copy the english images there. Then either edit the images with an SVG editor like Inkscape, or (not as good) you can use a text editor and search for the "text" tags and replace it.
  393. Blockscad.Msg.SPHERE_TOOLTIP = '<img src="imgs/en/sphere.svg" width="65">';
  394. /// Tooltip for the cube block: Creates a rectangular prism with specified dimensions x, y, and z. A non-centered cube has one corner at the origin.
  395. /// to translate the image, make a folder for it in the imgs folder an copy the english images there. Then either edit the images with an SVG editor like Inkscape, or (not as good) you can use a text editor and search for the "text" tags and replace it.
  396. Blockscad.Msg.CUBE_TOOLTIP = '<img src="imgs/en/cube.svg" width="100px">';
  397. /// Tooltip for the cylinder block. Creates a cylinder with a specified bottom radius, top radius, and height. It may optionally be centered along the Z-axis.
  398. /// to translate the image, make a folder for it in the imgs folder an copy the english images there. Then either edit the images with an SVG editor like Inkscape, or (not as good) you can use a text editor and search for the "text" tags and replace it.
  399. // Blockscad.Msg.CYLINDER_TOOLTIP = '<object type="image/svg+xml" data="imgs/en/cylinder.svg" width="90px"></object>';
  400. Blockscad.Msg.CYLINDER_TOOLTIP = '<img src="imgs/en/cylinder.svg" width="90px">';
  401. /// Tooltip for the torus block. Creates a torus with a ring of specified distance on-center from the origin (radius1), with a specified radius (radius2), a specified number of sides and faces.
  402. /// to translate the image, make a folder for it in the imgs folder an copy the english images there. Then either edit the images with an SVG editor like Inkscape, or (not as good) you can use a text editor and search for the "text" tags and replace it.
  403. Blockscad.Msg.TORUS_TOOLTIP = '<img src="imgs/en/torus.svg" width="250px">';
  404. /// tooltip for the 2D circle block: Creates a circle with the specified radius.
  405. /// to translate the image, make a folder for it in the imgs folder an copy the english images there. Then either edit the images with an SVG editor like Inkscape, or (not as good) you can use a text editor and search for the "text" tags and replace it.
  406. Blockscad.Msg.CIRCLE_TOOLTIP = '<img src="imgs/en/circle.svg" width="65">';
  407. /// tooltip for the 2D square block: Creates a rectangle of specified dimensions x and y. It may optionally be centered around the origin.
  408. /// to translate the image, make a folder for it in the imgs folder an copy the english images there. Then either edit the images with an SVG editor like Inkscape, or (not as good) you can use a text editor and search for the "text" tags and replace it.
  409. Blockscad.Msg.SQUARE_TOOLTIP = '<img src="imgs/en/square.svg" width="65">';
  410. /// tooltip for transform: translate. 'Translates (moves) one or more objects in specified dimensions x, y, and z.'
  411. Blockscad.Msg.TRANSLATE_TOOLTIP = 'Translates (moves) one or more objects in specified dimensions x, y, and z.';
  412. /// tooltip for transform: rotate (simple). 'Rotates one or more objects around specified axes x, y, and z.
  413. Blockscad.Msg.SIMPLEROTATE_TOOLTIP = 'Rotates one or more objects around specified axes x, y, and z.';
  414. /// tooltip for mirror (choice of three planes): 'Mirrors one or more objects across a specified plane.''
  415. Blockscad.Msg.SIMPLEMIRROR_TOOLTIP = 'Mirrors one or more objects across a specified plane.';
  416. /// tooltip for transform: scale. 'Scales one or more objects by a specified amount in dimensions x, y, and z.'
  417. Blockscad.Msg.SCALE_TOOLTIP = 'Scales one or more objects by a specified amount in dimensions x, y, and z.';
  418. /// tooltip for transform: color (pick from list). 'Applies the color to the child object, which must be 3D.''
  419. Blockscad.Msg.COLOR_TOOLTIP = 'Applies the color to the child object, which must be 3D.';
  420. /// tooltip for transform 'color_rgb': 'Apply a color by specifying the red, blue, and green components. Each value should be between 0 and 100.'
  421. Blockscad.Msg.COLOR_RGB_TOOLTIP = 'Apply a color by specifying the red, blue, and green components. Each value should be between 0 and 100.';
  422. /// tooltip for transform 'color_hsv': 'Apply a color by specifying the hue, saturation, and value components. Each value should be between 0 and 100.'
  423. Blockscad.Msg.COLOR_HSV_TOOLTIP = 'Apply a color by specifying the hue, saturation, and value components. Each value should be between 0 and 100.';
  424. /// tooltip for transform 'sides': 'Sets the number of sides used for approximating arcs (in the sphere, cylinder, circle, and torus).'
  425. Blockscad.Msg.FN_TOOLTIP = 'Sets the number of sides used for approximating arcs (in the sphere, cylinder, circle, and torus).';
  426. /// tooltip for transform 'taper': 'Scales shape along an axis. The smallest value along the select axis is scaled at one, and the largest value is scaled at user input scale value.'
  427. Blockscad.Msg.TAPER_TOOLTIP = 'Scales shape along an axis. The smallest value along the select axis is scaled at one, and the largest value is scaled at user input scale value.';
  428. /// tooltip for transform 'linear extrude': 'Extrudes one or more 2-dimensional objects by a specified height with a specified twist. Shape can be scaled as it extrudes in both x and y. It may optionally be centered around the origin.'
  429. Blockscad.Msg.LINEAREXTRUDE_TOOLTIP = 'Extrudes one or more 2-dimensional objects by a specified height with a specified twist. Shape can be scaled as it extrudes in both x and y. It may optionally be centered around the origin.';
  430. /// tooltip for transform 'rotate extrude': 'Rotate extrudes one or more 2-dimensional objects around the Z axis with a specified number of sides.'
  431. Blockscad.Msg.ROTATEEXTRUDE_TOOLTIP = 'Rotate extrudes one or more 2-dimensional objects around the Z axis with a specified number of sides.';
  432. /// tooltip for transform 'fancy rotate': 'Rotates one or more objects around a vector from the origin (0,0,0) to the point (x,y,z)'
  433. Blockscad.Msg.FANCYROTATE_TOOLTIP = 'Rotates one or more objects around a vector from the origin (0,0,0) to the point (x,y,z)';
  434. /// tooltip for transform 'fancy mirror': 'Mirrors one or more objects across specified plane whose normal vector is from (0,0,0) to the point (x,y,z).'
  435. Blockscad.Msg.FANCYMIRROR_TOOLTIP = 'Mirrors one or more objects across specified plane whose normal vector is from (0,0,0) to the point (x,y,z).';
  436. /// tooltip for set operation 'union': 'Combines two or more objects into one.'
  437. Blockscad.Msg.UNION_TOOLTIP = 'Combines two or more objects into one.';
  438. /// tooltip for set operation 'difference': 'Subtracts one or more objects from the first object in the list.'
  439. Blockscad.Msg.DIFFERENCE_TOOLTIP = 'Subtracts one or more objects from the first object in the list.';
  440. /// tooltip for set operation 'intersection': Returns the intersection (area that overlaps) of two or more objects.
  441. Blockscad.Msg.INTERSECTION_TOOLTIP = 'Returns the intersection (area that overlaps) of two or more objects.';
  442. /// tooltip for set operation 'convex hull': 'Combines one or more objects by "wrapping" them together in a hull.'
  443. Blockscad.Msg.HULL_TOOLTIP = 'Combines one or more objects by "wrapping" them together in a hull.';
  444. /// tooltip for 2D Text: 'A 2D rendering of text with a given size and font'
  445. Blockscad.Msg.BS_TEXT_TOOLTIP = 'A 2D rendering of text with a given size and font';
  446. /// tooltip for 3D Text: 'A 3D rendering of text with a given size and font, and thickness'
  447. Blockscad.Msg.BS_3DTEXT_TOOLTIP = 'A 3D rendering of text with a given size and font, and thickness';
  448. /// tooltip for chain-hulling within a loop: 'Return the convex hull of each shape in the loop with the next shape'
  449. Blockscad.Msg.CONTROLS_FOR_TOOLTIP_CHAINHULL = 'Return the convex hull of each shape in the loop with the next shape';
  450. /// warning for blocks that do not produce compatible openSCAD code: 'Not compatible with OpenSCAD'
  451. Blockscad.Msg.NOT_COMPATIBLE_WITH_OPENSCAD = 'Not compatible with OpenSCAD';
  452. /// warning that the contents of .stl files are not saved with the rest of a project - don't delete the .stl! : 'STL files are not saved with your blocks.'
  453. Blockscad.Msg.STL_IMPORT_WARNING = 'STL files are not saved with your blocks.';
  454. /// context menu on main workspace: 'Disable All Blocks' to prevent all blocks from rendering (this is the inverse to ENABLE_ALL)
  455. Blockscad.Msg.DISABLE_ALL = 'Disable All Blocks';
  456. /// context menu on main workspace: 'Enable All Blocks' to make blocks able to render again - (this is the inverse to DISABLE_ALL)
  457. Blockscad.Msg.ENABLE_ALL = 'Enable All Blocks';
  458. /// context menu for variables and procedures: user can highlight all instances of a function (both definition and calling instance).
  459. /// "%1" will be replaced with the user-created name of the variable or module.
  460. Blockscad.Msg.HIGHLIGHT_INSTANCES = 'Highlight "%1" Instances';
  461. /// context menu for main workspace: 'Remove highlighting' of all blocks that were highlighted due to error checking or user highlighting
  462. Blockscad.Msg.REMOVE_HIGHLIGHTING_INSTANCES = 'Remove highlighting';
  463. /// context menu for a single block: 'Remove block highlighting' for that particular block.
  464. Blockscad.Msg.REMOVE_BLOCK_HIGHLIGHTING = 'Remove block highlighting';
  465. /// error message: you cannot mix 2D and 3D shapes in the same model. If you create a module that is 3D, and use it in code combined with other 3D shapes,
  466. /// and then change the module definition to be a 2D shape, the module instances will be disconnected from other places in the code where they exist (as well as highlighted).
  467. /// this is the warning message put on the module definition block. 'calling blocks were displaced: 2D and 3D shapes cannot be together'
  468. Blockscad.Msg.BLOCKS_BUMPED_OUT_DIMENSIONS = '%1 calling blocks were displaced: 2D and 3D shapes cannot be together';
  469. /// error message: if a function which returns a value has that value in a place where one type is expected (numbers vs booleans),
  470. /// the function caller will get bumped out and the function block will display a warning message:
  471. /// '%1 calling blocks were displaced: type mismatch between numbers and Booleans'
  472. Blockscad.Msg.BLOCKS_BUMPED_OUT_TYPES = '%1 calling blocks were displaced: type mismatch between %2 and %3';
  473. /// error message: if a variable definition changes type (from a number to a true/false to a string), there may be instances of that variable that now have
  474. /// an illegal type. They are disconnected from their positions in the code and highlighted, and the variable definition displays a warning message:
  475. /// %1 variable blocks were displaced due to type mismatches
  476. Blockscad.Msg.VARIABLES_BUMPED_ONE = '%1 variable blocks were displaced due to type mismatches';
  477. /// error message: the second half of VARIABLES_BUMPED_ONE, this message notifies the user how the type of the variable changed.
  478. /// "%1" is replaced by the user's name for the variable, "%2" is replaced with the old variable type, and "%3" is replaced with the new variable type
  479. Blockscad.Msg.VARIABLES_BUMPED_TWO = 'variable "%1": type changed from %2 to %3';
  480. // example project names
  481. /// example project which is a cube "frame" - the centers of all the faces are cut away.
  482. Blockscad.Msg.EXAMPLE_CUBE_WITH_CUTOUTS = 'cube with cutouts';
  483. /// example project that is a model of an anthias fish (a small tropical reef fish)
  484. Blockscad.Msg.EXAMPLE_ANTHIAS_FISH = 'anthias fish';
  485. /// example project that uses variables to set the length, height, depth, and wall thickness. By changing the variables any sized box can be made.
  486. Blockscad.Msg.EXAMPLE_PARAMETRIC_BOX = 'any size box';
  487. /// example project that creates a 'star shape' or 'sun shape' by using a loop block
  488. Blockscad.Msg.EXAMPLE_LOOP_SUN = 'sun made with loop';
  489. /// example project that creates a sine wave using a loop block
  490. Blockscad.Msg.EXAMPLE_LOOP_SINE = 'sine function with loop';
  491. /// example project that creates a trefoil knot (3-lobed knot) by plotting parametric equations
  492. Blockscad.Msg.EXAMPLE_PARAMETRIC_EQ_KNOT = 'knot from parametric equations';
  493. /// Button or link to the Blockscad Get Started Video
  494. Blockscad.Msg.GET_STARTED_VIDEO = 'Get Started!';