diff --git a/customize.dist/messages.js b/customize.dist/messages.js
index 813978b52..2dac5b6c9 100644
--- a/customize.dist/messages.js
+++ b/customize.dist/messages.js
@@ -7,7 +7,8 @@ var map = {
'es': 'Español',
'pl': 'Polski',
'de': 'Deutsch',
- 'pt-br': 'Português do Brasil'
+ 'pt-br': 'Português do Brasil',
+ 'ro': 'Română',
};
var getStoredLanguage = function () { return localStorage.getItem(LS_LANG); };
diff --git a/customize.dist/translations/messages.ro.js b/customize.dist/translations/messages.ro.js
new file mode 100644
index 000000000..4e2134c7c
--- /dev/null
+++ b/customize.dist/translations/messages.ro.js
@@ -0,0 +1,357 @@
+define(function () {
+ var out = {};
+
+ /*
+ *
+ * ro
+ *
+ */
+
+ out.main_title = ""; // "CryptPad: Zero Knowledge, Collaborative Real Time Editing"
+ out.main_slogan = ""; // "Unity is Strength - Collaboration is Key"
+ out.type = ""; // {"pad":"Rich text","code":"Code","poll":"Poll","slide":"Presentation","drive":"Drive","whiteboard":"Whiteboard","file":"File","media":"Media"}
+ out.button_newpad = ""; // "New Rich Text pad"
+ out.button_newcode = ""; // "New Code pad"
+ out.button_newpoll = ""; // "New Poll"
+ out.button_newslide = ""; // "New Presentation"
+ out.button_newwhiteboard = ""; // "New Whiteboard"
+ out.updated_0_common_connectionLost = ""; // "Server Connection Lost
You're now in read-only mode until the connection is back."
+ out.common_connectionLost = out.updated_0_common_connectionLost; // TODO: Key updated --> make sure the updated key "out.updated_0_common_connectionLost" exists and is translated before that one.
+ out.websocketError = ""; // "Unable to connect to the websocket server..."
+ out.typeError = ""; // "This pad is not compatible with the selected application"
+ out.onLogout = ""; // "You are logged out, click here to log in
or press Escape to access your pad in read-only mode."
+ out.wrongApp = ""; // "Unable to display the content of that realtime session in your browser. Please try to reload that page."
+ out.loading = ""; // "Loading..."
+ out.error = ""; // "Error"
+ out.saved = ""; // "Saved"
+ out.synced = ""; // "Everything is saved"
+ out.deleted = ""; // "Pad deleted from your CryptDrive"
+ out.disconnected = ""; // "Disconnected"
+ out.synchronizing = ""; // "Synchronizing"
+ out.reconnecting = ""; // "Reconnecting..."
+ out.lag = ""; // "Lag"
+ out.readonly = ""; // "Read only"
+ out.anonymous = ""; // "Anonymous"
+ out.yourself = ""; // "Yourself"
+ out.anonymousUsers = ""; // "anonymous editors"
+ out.anonymousUser = ""; // "anonymous editor"
+ out.users = ""; // "Users"
+ out.and = ""; // "And"
+ out.viewer = ""; // "viewer"
+ out.viewers = ""; // "viewers"
+ out.editor = ""; // "editor"
+ out.editors = ""; // "editors"
+ out.language = ""; // "Language"
+ out.upgrade = ""; // "Upgrade"
+ out.upgradeTitle = ""; // "Upgrade your account to increase the storage limit"
+ out.MB = ""; // "MB"
+ out.greenLight = ""; // "Everything is working fine"
+ out.orangeLight = ""; // "Your slow connection may impact your experience"
+ out.redLight = ""; // "You are disconnected from the session"
+ out.pinLimitReached = ""; // "You've reached your storage limit"
+ out.pinLimitReachedAlert = ""; // "You've reached your storage limit. New pads won't be stored in your CryptDrive.
To fix this problem, you can either remove pads from your CryptDrive (including the trash) or subscribe to a premium offer to increase your limit."
+ out.pinLimitNotPinned = ""; // "You've reached your storage limit.
This pad is not stored in your CryptDrive."
+ out.pinLimitDrive = ""; // "You've reached your storage limit.
You can't create new pads."
+ out.importButtonTitle = ""; // "Import a pad from a local file"
+ out.exportButtonTitle = ""; // "Export this pad to a local file"
+ out.exportPrompt = ""; // "What would you like to name your file?"
+ out.changeNamePrompt = ""; // "Change your name (leave empty to be anonymous): "
+ out.user_rename = ""; // "Change display name"
+ out.user_displayName = ""; // "Display name"
+ out.user_accountName = ""; // "Account name"
+ out.clickToEdit = ""; // "Click to edit"
+ out.forgetButtonTitle = ""; // "Move this pad to the trash"
+ out.forgetPrompt = ""; // "Clicking OK will move this pad to your trash. Are you sure?"
+ out.movedToTrash = ""; // "That pad has been moved to the trash.
Access my Drive"
+ out.shareButton = ""; // "Share"
+ out.shareSuccess = ""; // "Copied link to clipboard"
+ out.newButton = ""; // "New"
+ out.newButtonTitle = ""; // "Create a new pad"
+ out.saveTemplateButton = ""; // "Save as template"
+ out.saveTemplatePrompt = ""; // "Choose a title for the template"
+ out.templateSaved = ""; // "Template saved!"
+ out.selectTemplate = ""; // "Select a template or press escape"
+ out.presentButtonTitle = ""; // "Enter presentation mode"
+ out.presentSuccess = ""; // "Hit ESC to exit presentation mode"
+ out.backgroundButtonTitle = ""; // "Change the background color in the presentation"
+ out.colorButtonTitle = ""; // "Change the text color in presentation mode"
+ out.printButton = ""; // "Print (enter)"
+ out.printButtonTitle = ""; // "Print your slides or export them as a PDF file"
+ out.printOptions = ""; // "Layout options"
+ out.printSlideNumber = ""; // "Display the slide number"
+ out.printDate = ""; // "Display the date"
+ out.printTitle = ""; // "Display the pad title"
+ out.printCSS = ""; // "Custom style rules (CSS):"
+ out.printTransition = ""; // "Enable transition animations"
+ out.slideOptionsTitle = ""; // "Customize your slides"
+ out.slideOptionsButton = ""; // "Save (enter)"
+ out.editShare = ""; // "Editing link"
+ out.editShareTitle = ""; // "Copy the editing link to clipboard"
+ out.editOpen = ""; // "Open editing link in a new tab"
+ out.editOpenTitle = ""; // "Open this pad in editing mode in a new tab"
+ out.viewShare = ""; // "Read-only link"
+ out.viewShareTitle = ""; // "Copy the read-only link to clipboard"
+ out.viewOpen = ""; // "Open read-only link in a new tab"
+ out.viewOpenTitle = ""; // "Open this pad in read-only mode in a new tab"
+ out.notifyJoined = ""; // "{0} has joined the collaborative session"
+ out.notifyRenamed = ""; // "{0} is now known as {1}"
+ out.notifyLeft = ""; // "{0} has left the collaborative session"
+ out.okButton = ""; // "OK (enter)"
+ out.cancel = ""; // "Cancel"
+ out.cancelButton = ""; // "Cancel (esc)"
+ out.historyButton = ""; // "Display the document history"
+ out.history_next = ""; // "Go to the next version"
+ out.history_prev = ""; // "Go to the previous version"
+ out.history_goTo = ""; // "Go to the selected version"
+ out.history_close = ""; // "Back"
+ out.history_closeTitle = ""; // "Close the history"
+ out.history_restore = ""; // "Restore"
+ out.history_restoreTitle = ""; // "Restore the selected version of the document"
+ out.history_restorePrompt = ""; // "Are you sure you want to replace the current version of the document by the displayed one?"
+ out.history_restoreDone = ""; // "Document restored"
+ out.history_version = ""; // "Version:"
+ out.poll_title = ""; // "Zero Knowledge Date Picker"
+ out.poll_subtitle = ""; // "Zero Knowledge, realtime scheduling"
+ out.poll_p_save = ""; // "Your settings are updated instantly, so you never need to save."
+ out.poll_p_encryption = ""; // "All your input is encrypted so only people who have the link can access it. Even the server cannot see what you change."
+ out.wizardLog = ""; // "Click the button in the top left to return to your poll"
+ out.wizardTitle = ""; // "Use the wizard to create your poll"
+ out.wizardConfirm = ""; // "Are you really ready to add these options to your poll?"
+ out.poll_publish_button = ""; // "Publish"
+ out.poll_admin_button = ""; // "Admin"
+ out.poll_create_user = ""; // "Add a new user"
+ out.poll_create_option = ""; // "Add a new option"
+ out.poll_commit = ""; // "Commit"
+ out.poll_closeWizardButton = ""; // "Close wizard"
+ out.poll_closeWizardButtonTitle = ""; // "Close wizard"
+ out.poll_wizardComputeButton = ""; // "Compute Options"
+ out.poll_wizardClearButton = ""; // "Clear Table"
+ out.poll_wizardDescription = ""; // "Automatically create a number of options by entering any number of dates and times segments"
+ out.poll_wizardAddDateButton = ""; // "+ Dates"
+ out.poll_wizardAddTimeButton = ""; // "+ Times"
+ out.poll_optionPlaceholder = ""; // "Option"
+ out.poll_userPlaceholder = ""; // "Your name"
+ out.poll_removeOption = ""; // "Are you sure you'd like to remove this option?"
+ out.poll_removeUser = ""; // "Are you sure you'd like to remove this user?"
+ out.poll_titleHint = ""; // "Title"
+ out.poll_descriptionHint = ""; // "Describe your poll, and use the 'publish' button when you're done. Anyone with the link can change the description, but this is discouraged."
+ out.canvas_clear = ""; // "Clear"
+ out.canvas_delete = ""; // "Delete selection"
+ out.canvas_disable = ""; // "Disable draw"
+ out.canvas_enable = ""; // "Enable draw"
+ out.canvas_width = ""; // "Width"
+ out.canvas_opacity = ""; // "Opacity"
+ out.fm_rootName = ""; // "Documents"
+ out.fm_trashName = ""; // "Trash"
+ out.fm_unsortedName = ""; // "Unsorted files"
+ out.fm_filesDataName = ""; // "All files"
+ out.fm_templateName = ""; // "Templates"
+ out.fm_searchName = ""; // "Search"
+ out.fm_searchPlaceholder = ""; // "Search..."
+ out.fm_newButton = ""; // "New"
+ out.fm_newButtonTitle = ""; // "Create a new pad or folder"
+ out.fm_newFolder = ""; // "New folder"
+ out.fm_newFile = ""; // "New pad"
+ out.fm_folder = ""; // "Folder"
+ out.fm_folderName = ""; // "Folder name"
+ out.fm_numberOfFolders = ""; // "# of folders"
+ out.fm_numberOfFiles = ""; // "# of files"
+ out.fm_fileName = ""; // "File name"
+ out.fm_title = ""; // "Title"
+ out.fm_type = ""; // "Type"
+ out.fm_lastAccess = ""; // "Last access"
+ out.fm_creation = ""; // "Creation"
+ out.fm_forbidden = ""; // "Forbidden action"
+ out.fm_originalPath = ""; // "Original path"
+ out.fm_openParent = ""; // "Show in folder"
+ out.fm_noname = ""; // "Untitled Document"
+ out.fm_emptyTrashDialog = ""; // "Are you sure you want to empty the trash?"
+ out.fm_removeSeveralPermanentlyDialog = ""; // "Are you sure you want to remove these {0} elements from the trash permanently?"
+ out.fm_removePermanentlyDialog = ""; // "Are you sure you want to remove that element permanently?"
+ out.fm_removeSeveralDialog = ""; // "Are you sure you want to move these {0} elements to the trash?"
+ out.fm_removeDialog = ""; // "Are you sure you want to move {0} to the trash?"
+ out.fm_restoreDialog = ""; // "Are you sure you want to restore {0} to its previous location?"
+ out.fm_unknownFolderError = ""; // "The selected or last visited directory no longer exist. Opening the parent folder..."
+ out.fm_contextMenuError = ""; // "Unable to open the context menu for that element. If the problem persist, try to reload the page."
+ out.fm_selectError = ""; // "Unable to select the targetted element. If the problem persist, try to reload the page."
+ out.fm_categoryError = ""; // "Unable to open the selected category, displaying root."
+ out.fm_info_root = ""; // "Create as many nested folders here as you want to sort your files."
+ out.fm_info_unsorted = ""; // "Contains all the files you've visited that are not yet sorted in \"Documents\" or moved to the \"Trash\"."
+ out.fm_info_template = ""; // "Contains all the pads stored as templates and that you can re-use when you create a new pad."
+ out.fm_info_trash = ""; // "Files deleted from the trash are also removed from \"All files\" and it is impossible to recover them from the file manager."
+ out.fm_info_allFiles = ""; // "Contains all the files from \"Documents\", \"Unsorted\" and \"Trash\". You can't move or remove files from here."
+ out.fm_info_login = ""; // "Log in"
+ out.fm_info_register = ""; // "Sign up"
+ out.fm_info_anonymous = ""; // "You are not logged in so these pads may be deleted (find out why). Sign up or Log in to keep them alive."
+ out.fm_alert_backupUrl = ""; // "Backup link for this drive.
It is highly recommended that you keep ip for yourself only.
You can use it to retrieve all your files in case your browser memory got erased.
Anybody with that link can edit or remove all the files in your file manager.
"
+ out.fm_alert_anonymous = ""; // "Hello there, you are currently using CryptPad anonymously, that's ok but your pads may be deleted after a period of inactivity. We have disabled advanced features of the drive for anonymous users because we want to be clear that it is not a safe place to store things. You can read more about why we are doing this and why you really should Sign up and Log in."
+ out.fm_backup_title = ""; // "Backup link"
+ out.fm_nameFile = ""; // "How would you like to name that file?"
+ out.fc_newfolder = ""; // "New folder"
+ out.fc_rename = ""; // "Rename"
+ out.fc_open = ""; // "Open"
+ out.fc_open_ro = ""; // "Open (read-only)"
+ out.fc_delete = ""; // "Delete"
+ out.fc_restore = ""; // "Restore"
+ out.fc_remove = ""; // "Delete permanently"
+ out.fc_empty = ""; // "Empty the trash"
+ out.fc_prop = ""; // "Properties"
+ out.fc_sizeInKilobytes = ""; // "Size in Kilobytes"
+ out.fo_moveUnsortedError = ""; // "You can't move a folder to the list of unsorted pads"
+ out.fo_existingNameError = ""; // "Name already used in that directory. Please choose another one."
+ out.fo_moveFolderToChildError = ""; // "You can't move a folder into one of its descendants"
+ out.fo_unableToRestore = ""; // "Unable to restore that file to its original location. You can try to move it to a new location."
+ out.fo_unavailableName = ""; // "A file or a folder with the same name already exist at the new location. Rename the element and try again."
+ out.login_login = ""; // "Log in"
+ out.login_makeAPad = ""; // "Create a pad anonymously"
+ out.login_nologin = ""; // "Browse local pads"
+ out.login_register = ""; // "Sign up"
+ out.logoutButton = ""; // "Log out"
+ out.settingsButton = ""; // "Settings"
+ out.login_username = ""; // "Username"
+ out.login_password = ""; // "Password"
+ out.login_confirm = ""; // "Confirm your password"
+ out.login_remember = ""; // "Remember me"
+ out.login_hashing = ""; // "Hashing your password, this might take some time."
+ out.login_hello = ""; // "Hello {0},"
+ out.login_helloNoName = ""; // "Hello,"
+ out.login_accessDrive = ""; // "Access your drive"
+ out.login_orNoLogin = ""; // "or"
+ out.login_noSuchUser = ""; // "Invalid username or password. Try again, or sign up"
+ out.login_invalUser = ""; // "Username required"
+ out.login_invalPass = ""; // "Password required"
+ out.login_unhandledError = ""; // "An unexpected error occurred :("
+ out.register_importRecent = ""; // "Import pad history (Recommended)"
+ out.register_acceptTerms = ""; // "I accept the terms of service"
+ out.register_passwordsDontMatch = ""; // "Passwords do not match!"
+ out.register_mustAcceptTerms = ""; // "You must accept the terms of service."
+ out.register_mustRememberPass = ""; // "We cannot reset your password if you forget it. It's very important that you remember it! Please check the checkbox to confirm."
+ out.register_header = ""; // "Welcome to CryptPad"
+ out.register_explanation = ""; // "
Lets go over a couple things first
This is CryptPad, the Zero Knowledge realtime collaborative editor. Everything is saved as you type.
Share the link to this pad to edit with friends or use the Share button to share a read-only link which allows viewing but not editing.
Go ahead, just start typing...