diff --git a/services/web/app/views/general/404.jade b/services/web/app/views/general/404.jade
index 425e056c61..018a11c2ac 100644
--- a/services/web/app/views/general/404.jade
+++ b/services/web/app/views/general/404.jade
@@ -6,8 +6,8 @@ block content
.row
.col-md-8.col-md-offset-2.text-center
.page-header
- h2 Sorry, we can't find the page you are looking for.
+ h2 #{translate("cant_find_page")}
p
a(href="/")
i.fa.fa-arrow-circle-o-left
- | Take me home!
+ | #{translate("take_me_home")}
diff --git a/services/web/app/views/project/editor.jade b/services/web/app/views/project/editor.jade
index b362a2d806..100610aa15 100644
--- a/services/web/app/views/project/editor.jade
+++ b/services/web/app/views/project/editor.jade
@@ -10,30 +10,28 @@ block content
.editor(ng-controller="IdeController").full-size
.loading-screen(ng-show="state.loading")
.container
- h3 Loading...
+ h3 #{translate("loading")}...
.progress
.progress-bar(style="width: 20%", ng-style="{'width': state.load_progress + '%'}")
.global-alerts(ng-cloak)
.alert.alert-danger.small(ng-if="connection.forced_disconnect")
- strong Disconnected
- | Please refresh the page to continue.
+ strong #{translate("disconnected")}
+ | #{translate("please_refresh")}
.alert.alert-warning.small(ng-if="connection.reconnection_countdown")
- strong Lost Connection.
- | Reconnecting in {{ connection.reconnection_countdown }} secs.
- a.pull-right(href, ng-click="tryReconnectNow()") Try Now
+ strong #{translate("lost_connection")}.
+ | #{translate("reconnecting_in_x_secs", {seconds:"{{ connection.reconnection_countdown }}"})}.
+ a.pull-right(href, ng-click="tryReconnectNow()") #{translate("try_now")}
.alert.alert-warning.small(ng-if="connection.reconnecting")
- strong Reconnecting...
+ strong #{translate("reconnecting")}...
.div(ng-controller="SavingNotificationController")
.alert.alert-warning.small(
ng-repeat="(doc_id, state) in docSavingStatus"
ng-if="state.unsavedSeconds > 3"
- )
- | Saving {{ state.doc.name }}... ({{ state.unsavedSeconds }} seconds of unsaved changes)
-
+ ) #{translate("saving_notification_with_seconds", {docname:"{{ state.doc.name }}", seconds:"{{ state.unsavedSeconds }}"})}
include ./editor/left-menu
@@ -78,7 +76,7 @@ block content
h3 {{ title }}
.modal-body {{ message }}
.modal-footer
- button.btn.btn-info(ng-click="done()") OK
+ button.btn.btn-info(ng-click="done()") #{translate("ok")}
script(src='/socket.io/socket.io.js')
diff --git a/services/web/app/views/project/editor/binary-file.jade b/services/web/app/views/project/editor/binary-file.jade
index 015724288f..ca25a6d806 100644
--- a/services/web/app/views/project/editor/binary-file.jade
+++ b/services/web/app/views/project/editor/binary-file.jade
@@ -13,7 +13,7 @@ div.binary-file.full-size(
)
p.no-preview(
ng-if="['png', 'jpg', 'jpeg', 'gif', 'pdf', 'eps'].indexOf(extension(openFile)) == -1"
- ) Sorry, no preview is available.
+ ) #{translate("no_preview_available")}
a.btn.btn-info(
ng-href="/project/{{ project_id }}/file/{{ openFile.id }}"
- ) Download {{ openFile.name }}
+ ) #{translate("download")} {{ openFile.name }}
diff --git a/services/web/app/views/project/editor/chat.jade b/services/web/app/views/project/editor/chat.jade
index 85d08d147a..64e6a1a132 100644
--- a/services/web/app/views/project/editor/chat.jade
+++ b/services/web/app/views/project/editor/chat.jade
@@ -12,11 +12,11 @@ aside.chat(
.infinite-scroll-inner
.loading(ng-show="chat.loading")
i.fa.fa-fw.fa-spin.fa-refresh
- | Loading...
+ | #{translate("loading")}...
.no-messages.text-center.small(ng-show='!chat.loading && chat.messages.length == 0')
- | No messages
+ | #{translate("no_messages")}
.first-message.text-center(ng-show='!chat.loading && chat.messages.length == 0')
- | Send your first message
+ | #{translate("send_first_message")}
br
i.fa.fa-arrow-down
ul.list-unstyled(
diff --git a/services/web/app/views/project/editor/dropbox.jade b/services/web/app/views/project/editor/dropbox.jade
index 40d2cce851..362fc66112 100644
--- a/services/web/app/views/project/editor/dropbox.jade
+++ b/services/web/app/views/project/editor/dropbox.jade
@@ -5,41 +5,39 @@ script(type="text/ng-template", id="dropboxModalTemplate")
data-dismiss="modal"
ng-click="cancel()"
) ×
- h3 Dropbox link
+ h3 #{translate("dropbox_link")}
.modal-body.modal-body-share
div(ng-show="dbState.gotLinkStatus")
div(ng-hide="dbState.userIsLinkedToDropbox || !dbState.hasDropboxFeature")
- span(ng-hide="dbState.startedLinkProcess") Your account is not linked to dropbox
+ span(ng-hide="dbState.startedLinkProcess") #{translate("account_not_linked_to_dropbox")}
|
- a(ng-click="linkToDropbox()").btn.btn-info Update Dropbox Settings
+ a(ng-click="linkToDropbox()").btn.btn-info #{translate("update_dropbox_settings")}
p.small.text-center(ng-show="dbState.startedLinkProcess")
- | Please refresh this page after starting your free trial.
+ | #{translate("refresh_page_after_starting_free_trial")}
div(ng-show="dbState.hasDropboxFeature && dbState.userIsLinkedToDropbox")
progressbar.progress-striped.active(value='dbState.percentageLeftTillNextPoll', type="info")
span
- strong {{dbState.minsTillNextPoll}} minutes
- span until dropbox is next checked for changes.
+ strong {{dbState.minsTillNextPoll}} #{translate("minutes")}
+ span #{translate("until_db_checked_for_changes")}
div.text-center(ng-hide="dbState.hasDropboxFeature")
- p You need to upgrade your account to link to dropbox.
+ p #{translate("need_to_upgrade_for_dropbox")}
p
- a.btn.btn-info(ng-click="startFreeTrial('dropbox')") Start Free Trial
+ a.btn.btn-info(ng-click="startFreeTrial('dropbox')") #{translate("start_free_trial")}
p.small(ng-show="startedFreeTrial")
- | Please refresh this page after starting your free trial.
+ | #{translate("refresh_page_after_starting_free_trial")}
div(ng-hide="dbState.gotLinkStatus")
- span.small checking dropbox status
+ span.small #{translate("checking_dropbox_status")}
i.fa.fa-refresh.fa-spin
-
-
.modal-footer()
button.btn.btn-default(
ng-click="cancel()",
)
- span Dismiss
+ span #{translate("dismiss")}
diff --git a/services/web/app/views/project/editor/editor.jade b/services/web/app/views/project/editor/editor.jade
index 4a327dc40a..ffa0fbfb57 100644
--- a/services/web/app/views/project/editor/editor.jade
+++ b/services/web/app/views/project/editor/editor.jade
@@ -9,7 +9,7 @@ div.full-size(
.ui-layout-center
.loading-panel(ng-show="!editor.sharejs_doc || editor.opening")
i.fa.fa-spin.fa-refresh
- | Loading...
+ | #{translate("loading")}...
#editor(
ace-editor="editor",
diff --git a/services/web/app/views/project/editor/file-tree.jade b/services/web/app/views/project/editor/file-tree.jade
index 8753bc82d7..1459af4b59 100644
--- a/services/web/app/views/project/editor/file-tree.jade
+++ b/services/web/app/views/project/editor/file-tree.jade
@@ -71,7 +71,7 @@ aside#file-tree(ng-controller="FileTreeController").full-size
)
div(ng-show="deletedDocs.length > 0 && ui.view == 'track-changes'")
- h3 Deleted Files
+ h3 #{translate("deleted_files")}
ul.list-unstyled.file-tree-list.deleted-docs
li(
ng-class="{ 'selected': entity.selected }",
@@ -137,13 +137,13 @@ script(type='text/ng-template', id='entityListItemTemplate')
href="#"
prevent-default="click"
ng-click="startRenaming()"
- ) Rename
+ ) #{translate("rename")}
li
a(
href="#"
prevent-default="click"
ng-click="openDeleteModal()"
- ) Delete
+ ) #{translate("delete")}
div.dropdown.context-menu(
id="context-menu-{{ entity.id }}",
@@ -156,14 +156,14 @@ script(type='text/ng-template', id='entityListItemTemplate')
prevent-default="click"
stop-propagation="click"
ng-click="startRenaming()"
- ) Rename
+ ) #{translate("rename")}
li
a(
href="#"
prevent-default="click"
stop-propagation="click"
ng-click="openDeleteModal()"
- ) Delete
+ ) #{translate("delete")}
.entity(ng-if="entity.type == 'folder'", ng-controller="FileTreeFolderController")
@@ -221,32 +221,32 @@ script(type='text/ng-template', id='entityListItemTemplate')
href="#"
prevent-default="click"
ng-click="startRenaming()"
- ) Rename
+ ) #{translate("rename")}
li
a(
href="#"
prevent-default="click"
ng-click="openDeleteModal()"
- ) Delete
+ ) #{translate("delete")}
li.divider
li
a(
href="#"
prevent-default="click"
ng-click="openNewDocModal()"
- ) New File
+ ) #{translate("new_file")}
li
a(
href="#"
prevent-default="click"
ng-click="openNewFolderModal()"
- ) New Folder
+ ) #{translate("new_folder")}
li
a(
href="#"
prevent-default="click"
ng-click="openUploadFileModal()"
- ) Upload File
+ ) #{translate("upload_file")}
.dropdown.context-menu(
ng-if="permissions.write"
@@ -259,14 +259,14 @@ script(type='text/ng-template', id='entityListItemTemplate')
prevent-default="click"
stop-propagation="click"
ng-click="startRenaming()"
- ) Rename
+ ) #{translate("rename")}
li
a(
href="#"
prevent-default="click"
stop-propagation="click"
ng-click="openDeleteModal()"
- ) Delete
+ ) #{translate("delete")}
li.divider
li
a(
@@ -274,21 +274,21 @@ script(type='text/ng-template', id='entityListItemTemplate')
prevent-default="click"
stop-propagation="click"
ng-click="openNewDocModal()"
- ) New File
+ ) #{translate("new_file")}
li
a(
href="#"
prevent-default="click"
stop-propagation="click"
ng-click="openNewFolderModal()"
- ) New Folder
+ ) #{translate("new_folder")}
li
a(
href="#"
prevent-default="click"
stop-propagation="click"
ng-click="openUploadFileModal()"
- ) Upload File
+ ) #{translate("upload_file")}
ul.list-unstyled(
ng-if="entity.type == 'folder'"
@@ -305,7 +305,7 @@ script(type='text/ng-template', id='entityListItemTemplate')
script(type='text/ng-template', id='newDocModalTemplate')
.modal-header
- h3 New File
+ h3 #{translate("new_file")}
.modal-body
form(novalidate, name="newDocForm")
input.form-control(
@@ -320,17 +320,17 @@ script(type='text/ng-template', id='newDocModalTemplate')
button.btn.btn-default(
ng-disabled="state.inflight"
ng-click="cancel()"
- ) Cancel
+ ) #{translate("cancel")}
button.btn.btn-primary(
ng-disabled="newDocForm.$invalid || state.inflight"
ng-click="create()"
)
- span(ng-hide="state.inflight") Create
- span(ng-show="state.inflight") Creating...
+ span(ng-hide="state.inflight") #{translate("create")}
+ span(ng-show="state.inflight") #{translate("creating")}...
script(type='text/ng-template', id='newFolderModalTemplate')
.modal-header
- h3 New Folder
+ h3 #{translate("new_folder")}
.modal-body
form(novalidate, name="newFolderForm")
input.form-control(
@@ -345,17 +345,17 @@ script(type='text/ng-template', id='newFolderModalTemplate')
button.btn.btn-default(
ng-disabled="state.inflight"
ng-click="cancel()"
- ) Cancel
+ ) #{translate("cancel")}
button.btn.btn-primary(
ng-disabled="newFolderForm.$invalid || state.inflight"
ng-click="create()"
)
- span(ng-hide="state.inflight") Create
- span(ng-show="state.inflight") Creating...
+ span(ng-hide="state.inflight") #{translate("create")}
+ span(ng-show="state.inflight") #{translate("creating")}...
script(type="text/ng-template", id="uploadFileModalTemplate")
.modal-header
- h3 Upload File(s)
+ h3 #{translate("upload_files")}
.modal-body(
fine-upload
endpoint="/project/{{ project_id }}/upload"
@@ -369,23 +369,23 @@ script(type="text/ng-template", id="uploadFileModalTemplate")
on-upload-callback="onUpload"
params="{'folder_id': parent_folder_id}"
)
- span Upload file(s)
+ span #{translate("upload_files")}
.modal-footer
- button.btn.btn-default(ng-click="cancel()") Cancel
+ button.btn.btn-default(ng-click="cancel()") #{translate("cancel")}
script(type='text/ng-template', id='deleteEntityModalTemplate')
.modal-header
- h3 Delete {{ entity.name }}
+ h3 #{translate("delete")} {{ entity.name }}
.modal-body
- p Are you sure you want to permanently delete {{ entity.name }}?
+ p #{translate("sure_you_want_to_delete")}
.modal-footer
button.btn.btn-default(
ng-disabled="state.inflight"
ng-click="cancel()"
- ) Cancel
+ ) #{translate("cancel")}
button.btn.btn-danger(
ng-disabled="state.inflight"
ng-click="delete()"
)
- span(ng-hide="state.inflight") Delete
- span(ng-show="state.inflight") Deleting...
+ span(ng-hide="state.inflight") #{translate("delete")}
+ span(ng-show="state.inflight") #{translate("deleting")}...
diff --git a/services/web/app/views/project/editor/hotkeys.jade b/services/web/app/views/project/editor/hotkeys.jade
index e1f76039ef..c584e5eb28 100644
--- a/services/web/app/views/project/editor/hotkeys.jade
+++ b/services/web/app/views/project/editor/hotkeys.jade
@@ -5,9 +5,9 @@ script(type="text/ng-template", id="hotkeysModalTemplate")
data-dismiss="modal"
ng-click="cancel()"
) ×
- h3 Hotkeys
+ h3 #{translate("hotkeys")}
.modal-body.modal-hotkeys
- h3 Common
+ h3 #{translate("common")}
.row
.col-xs-6
.hotkey
@@ -24,7 +24,7 @@ script(type="text/ng-template", id="hotkeysModalTemplate")
span.combination {{ctrl}} + Y
span.description Redo
- h3 Navigation
+ h3 #{translate("navigation")}
.row
.col-xs-6
.hotkey
@@ -38,7 +38,7 @@ script(type="text/ng-template", id="hotkeysModalTemplate")
span.combination {{ctrl}} + L
span.description Go To Line
- h3 Editing
+ h3 #{translate("editing")}
.row
.col-xs-6
.hotkey
@@ -63,4 +63,4 @@ script(type="text/ng-template", id="hotkeysModalTemplate")
.modal-footer
button.btn.btn-default(
ng-click="cancel()"
- ) OK
\ No newline at end of file
+ ) #{translate("ok")}
\ No newline at end of file
diff --git a/services/web/app/views/project/editor/left-menu.jade b/services/web/app/views/project/editor/left-menu.jade
index 1bba98a4b7..283a5fdc68 100644
--- a/services/web/app/views/project/editor/left-menu.jade
+++ b/services/web/app/views/project/editor/left-menu.jade
@@ -2,7 +2,7 @@ aside#left-menu.full-size(
ng-class="{ 'shown': ui.leftMenuShown }"
ng-cloak
)
- h4 Download
+ h4 #{translate("download")}
ul.list-unstyled.nav.nav-downloads.text-center
li
@@ -12,7 +12,7 @@ aside#left-menu.full-size(
)
i.fa.fa-file-archive-o.fa-2x
br
- | Source
+ | #{translate("source")}
li
a(
ng-href="{{pdf.url}}"
@@ -32,7 +32,7 @@ aside#left-menu.full-size(
| PDF
span(ng-show="!anonymous")
- h4 Actions
+ h4 #{translate("Actions")}
ul.list-unstyled.nav
li(ng-controller="CloneProjectController")
a(
@@ -40,26 +40,26 @@ aside#left-menu.full-size(
ng-click="openCloneProjectModal()"
)
i.fa.fa-fw.fa-copy
- | Copy Project
+ | #{translate("copy_project")}
li(ng-controller="TemplatesController", ng-show="permissions.admin")
a(ng-click="openPublishTemplateModal()")
i.fa.fa-external-link.fa-fw
- | Publish as Template
+ | #{translate("publish_as_template")}
span(ng-controller="DropboxController", ng-show="permissions.admin")
- h4() Sync
+ h4() #{translate("sync")}
ul.list-unstyled.nav()
li
a(ng-click="openDropboxModal()")
i.fa.fa-dropbox.fa-fw
| Dropbox
- h4(ng-show="!anonymous") Settings
+ h4(ng-show="!anonymous") #{translate("settings")}
form.settings(ng-controller="SettingsController", ng-show="!anonymous")
.containter-fluid
.form-controls(ng-show="permissions.write")
- label(for="compiler") Compiler
+ label(for="compiler") #{translate("compiler")}
select(
name="compiler"
ng-model="project.compiler"
@@ -70,7 +70,7 @@ aside#left-menu.full-size(
option(value='lualatex') LuaLaTeX
.form-controls(ng-show="permissions.write")
- label(for="rootDoc_id") Main document
+ label(for="rootDoc_id") #{translate("main_document")}
select(
name="rootDoc_id",
ng-model="project.rootDoc_id",
@@ -78,12 +78,12 @@ aside#left-menu.full-size(
)
.form-controls
- label(for="spellCheckLanguage") Spell Check
+ label(for="spellCheckLanguage") #{translate("spell_check")}
select(
name="spellCheckLanguage"
ng-model="project.spellCheckLanguage"
)
- option(value="") Off
+ option(value="") #{translate("off")}
optgroup(label="Language")
for language in languages
option(
@@ -91,7 +91,7 @@ aside#left-menu.full-size(
)= language.name
.form-controls
- label(for="autoComplete") Auto-Complete
+ label(for="autoComplete") #{translate("auto_complete")}
select(
name="autoComplete"
ng-model="settings.autoComplete"
@@ -99,7 +99,7 @@ aside#left-menu.full-size(
)
.form-controls
- label(for="theme") Theme
+ label(for="theme") #{translate("theme")}
select(
name="theme"
ng-model="settings.theme"
@@ -108,7 +108,7 @@ aside#left-menu.full-size(
option(value=theme) #{theme.replace(/_/g, ' ')}
.form-controls(ng-show="!anonymous")
- label(for="mode") Keybindings
+ label(for="mode") #{translate("keybindings")}
select(
name="mode"
ng-model="settings.mode"
@@ -118,7 +118,7 @@ aside#left-menu.full-size(
option(value='emacs') Emacs
.form-controls
- label(for="fontSize") Font Size
+ label(for="fontSize") #{translate("font_size")}
select(
name="fontSize"
ng-model="settings.fontSize"
@@ -127,20 +127,20 @@ aside#left-menu.full-size(
option(value=size) #{size}px
.form-controls
- label(for="pdfViewer") PDF Viewer
+ label(for="pdfViewer")
select(
name="pdfViewer"
ng-model="settings.pdfViewer"
)
- option(value="pdfjs") Built-In
- option(value="native") Native
+ option(value="pdfjs") #{translate("built_in")}
+ option(value="native") #{translate("native")}
- h4 Hotkeys
+ h4 #{translate("hotkeys")}
ul.list-unstyled.nav
li(ng-controller="HotkeysController")
a(ng-click="openHotkeysModal()")
i.fa.fa-keyboard-o.fa-fw
- | Show Hotkeys
+ | #{translate("show_hotkeys")}
#left-menu-mask(
ng-show="ui.leftMenuShown",
@@ -150,11 +150,11 @@ aside#left-menu.full-size(
script(type='text/ng-template', id='cloneProjectModalTemplate')
.modal-header
- h3 Copy Project
+ h3 #{translate("copy_project")}
.modal-body
form(name="cloneProjectForm", novalidate)
.form-group
- label New Name
+ label #{translate("new_name")}
input.form-control(
type="text",
placeholder="New Project Name",
@@ -167,10 +167,10 @@ script(type='text/ng-template', id='cloneProjectModalTemplate')
button.btn.btn-default(
ng-disabled="state.inflight"
ng-click="cancel()"
- ) Cancel
+ ) #{translate("cancel")}
button.btn.btn-primary(
ng-disabled="cloneProjectForm.$invalid || state.inflight"
ng-click="clone()"
)
- span(ng-hide="state.inflight") Copy
- span(ng-show="state.inflight") Copying...
+ span(ng-hide="state.inflight") #{translate("copy")}
+ span(ng-show="state.inflight") #{translate("copying")}...
diff --git a/services/web/app/views/project/editor/pdf.jade b/services/web/app/views/project/editor/pdf.jade
index 0af9b60425..16f3c84a54 100644
--- a/services/web/app/views/project/editor/pdf.jade
+++ b/services/web/app/views/project/editor/pdf.jade
@@ -9,8 +9,8 @@ div.full-size.pdf(ng-controller="PdfController")
ng-class="{'fa-spin': pdf.compiling }"
)
|
- span(ng-show="!pdf.compiling") Recompile
- span(ng-show="pdf.compiling") Compiling...
+ span(ng-show="!pdf.compiling") #{translate("recompile")}
+ span(ng-show="pdf.compiling") #{translate("compiling")}...
a.log-btn(
href
ng-click="toggleLogs()"
@@ -76,26 +76,24 @@ div.full-size.pdf(ng-controller="PdfController")
.pdf-uncompiled(ng-show="pdf.uncompiled && !pdf.compiling")
|
i.fa.fa-level-up.fa-flip-horizontal.fa-2x
- | Click here to preview your work as a PDF.
+ | #{translate("click_here_to_preview_pdf")}
.pdf-errors(ng-show="pdf.timedout || pdf.error")
.alert.alert-danger(ng-show="pdf.error")
- strong Server Error.
- span Sorry, something went wrong and your project could not be compiled. Please try again in a few moments.
+ strong #{translate("server_error")}
+ span #{translate("somthing_went_wrong_compiling")}
.alert.alert-danger(ng-show="pdf.timedout")
- strong Timed out.
- span Sorry, your compile was taking too long and timed out.
- | This may be due to a large number of high-res images, or lots of complicated diagrams.
- | Please try to make your document simpler, or contact support for help.
+ strong #{translate("timedout")}.
+ span #{translate("proj_timed_out_reason")}
.pdf-logs(ng-show="(pdf.view == 'logs' || pdf.failure) && !pdf.error && !pdf.timeout && !pdf.uncompiled")
.alert.alert-success(ng-show="pdf.logEntries.all.length == 0")
- | No errors, good job!
+ | #{translate("no_errors_good_job")}
.alert.alert-danger(ng-show="pdf.failure")
- strong Compile Error.
- span Sorry, your LaTeX code couldn't compile for some reason. Please check the errors below for details, or view the raw log.
+ strong #{translate("compile_error")}.
+ span #{translate("generic_failed_compile_message")}.
div(ng-repeat="entry in pdf.logEntries.all", ng-controller="PdfLogEntryController")
.alert(
@@ -128,7 +126,7 @@ div.full-size.pdf(ng-controller="PdfController")
href
dropdown-toggle
)
- | Other logs & files
+ | #{translate("other_logs_and_files")}
span.caret
ul.dropdown-menu.dropdown-menu-right
li(ng-repeat="file in pdf.outputFiles")
@@ -138,26 +136,25 @@ div.full-size.pdf(ng-controller="PdfController")
ng-click="openOutputFile(file)"
) {{ file.name }}
a.btn.btn-info.btn-sm(href, ng-click="toggleRawLog()")
- span(ng-show="!pdf.showRawLog") View Raw Logs
- span(ng-show="pdf.showRawLog") Hide Raw Logs
+ span(ng-show="!pdf.showRawLog") #{translate("view_raw_logs")}
+ span(ng-show="pdf.showRawLog") #{translate("hide_raw_logs")}
pre(ng-bind="pdf.rawLog", ng-show="pdf.showRawLog")
script(type='text/ng-template', id='clearCacheModalTemplate')
.modal-header
- h3 Clear cache?
+ h3 #{translate("clear_cache")}?
.modal-body
- p This will clear all hidden LaTeX files (.aux, .bbl, etc) from our compile server.
- | You generally don't need to do this unless you're having trouble with references.
- p Your project files will not be deleted or changed.
+ p #{translate("clear_cache_explanation")}
+ p #{translate("clear_cache_is_safe")}
.modal-footer
button.btn.btn-default(
ng-click="cancel()"
ng-disabled="state.inflight"
- ) Cancel
+ ) #{translate("cancel")}
button.btn.btn-info(
ng-click="clear()"
ng-disabled="state.inflight"
)
- span(ng-show="!state.inflight") Clear cache
- span(ng-show="state.inflight") Clearing...
+ span(ng-show="!state.inflight") #{translate("clear_cache")}
+ span(ng-show="state.inflight") #{translate("clearing")}...
diff --git a/services/web/app/views/project/editor/publish-template.jade b/services/web/app/views/project/editor/publish-template.jade
index f7ff01694b..69c50fd52c 100644
--- a/services/web/app/views/project/editor/publish-template.jade
+++ b/services/web/app/views/project/editor/publish-template.jade
@@ -5,11 +5,11 @@ script(type="text/ng-template", id="publishProjectAsTemplateModalTemplate")
data-dismiss="modal"
ng-click="cancel()"
) ×
- h3 Publish as Template
+ h3 #{translate("publish_as_template")}
.modal-body.modal-body-share
span(ng-hide="problemTalkingToTemplateApi")
form()
- label(for='Description') Template Description
+ label(for='Description') #{translate("template_description")}
.form-group
textarea.form-control(
rows=5,
@@ -19,11 +19,11 @@ script(type="text/ng-template", id="publishProjectAsTemplateModalTemplate")
value=""
)
div(ng-show="templateDetails.exists").text-center.templateDetails
- | Your project was last published at
+ | #{translate("project_last_published_at")}
strong {{templateDetails.publishedDate}}.
- a(ng-href="{{templateDetails.canonicalUrl}}") View it in template gallery.
+ a(ng-href="{{templateDetails.canonicalUrl}}") #{translate("view_in_template_gallery")}.
- span(ng-show="problemTalkingToTemplateApi") There is a problem with our publishing service, please try again in a few minutes.
+ span(ng-show="problemTalkingToTemplateApi") #{translate("problem_talking_to_publishing_service")}.
@@ -33,20 +33,20 @@ script(type="text/ng-template", id="publishProjectAsTemplateModalTemplate")
ng-click="cancel()",
ng-disabled="state.publishInflight || state.unpublishInflight"
)
- span Cancel
+ span #{translate("cancel")}
button.btn.btn-info(
ng-click="unpublishTemplate()",
ng-disabled="state.publishInflight || state.unpublishInflight"
ng-show="templateDetails.exists"
)
- span(ng-show="!state.unpublishInflight") Unpublish
- span(ng-show="state.unpublishInflight") Unpublishing...
+ span(ng-show="!state.unpublishInflight") #{translate("unpublish")}
+ span(ng-show="state.unpublishInflight") #{translate("unpublishing")}...
button.btn.btn-primary(
ng-click="publishTemplate()",
ng-disabled="state.publishInflight || state.unpublishInflight"
)
- span(ng-show="!state.publishInflight && !templateDetails.exists") Publish
- span(ng-show="!state.publishInflight && templateDetails.exists") Republish
- span(ng-show="state.publishInflight") Publishing...
\ No newline at end of file
+ span(ng-show="!state.publishInflight && !templateDetails.exists") #{translate("publish")}
+ span(ng-show="!state.publishInflight && templateDetails.exists") #{translate("republish")}
+ span(ng-show="state.publishInflight") #{translate("publishing")}...
\ No newline at end of file
diff --git a/services/web/app/views/project/editor/share.jade b/services/web/app/views/project/editor/share.jade
index fb47236cc8..8dddb51a3a 100644
--- a/services/web/app/views/project/editor/share.jade
+++ b/services/web/app/views/project/editor/share.jade
@@ -5,26 +5,26 @@ script(type='text/ng-template', id='shareProjectModalTemplate')
data-dismiss="modal"
ng-click="cancel()"
) ×
- h3 Share Project
+ h3 #{translate("share_project")}
.modal-body.modal-body-share
.container-fluid
.row.public-access-level(ng-show="project.publicAccesLevel == 'private'")
.col-xs-12.text-center
- | This project is private and can only be accessed by the people below.
+ | #{translate("this_project_is_private")}
|
a(
href
ng-click="openMakePublicModal()"
- ) Make Public
+ ) #{translate("make_public")}
.row.public-access-level(ng-show="project.publicAccesLevel != 'private'")
.col-xs-12.text-center
- strong(ng-if="project.publicAccesLevel == 'readAndWrite'") This project is public and can be edited by anyone with the URL.
- strong(ng-if="project.publicAccesLevel == 'readOnly'") This project is public and can be viewed by anyone with the URL.
+ strong(ng-if="project.publicAccesLevel == 'readAndWrite'") #{translate("this_project_is_public")}
+ strong(ng-if="project.publicAccesLevel == 'readOnly'") #{translate("this_project_is_public")}
|
a(
href
ng-click="openMakePrivateModal()"
- ) Make Private
+ ) #{translate("make_private")}
.row.project-member
.col-xs-8 {{ project.owner.email }}
.text-right(
@@ -33,8 +33,8 @@ script(type='text/ng-template', id='shareProjectModalTemplate')
.row.project-member(ng-repeat="member in project.members")
.col-xs-8 {{ member.email }}
.col-xs-3.text-right
- span(ng-show="member.privileges == 'readAndWrite'") Can Edit
- span(ng-show="member.privileges == 'readOnly'") Read Only
+ span(ng-show="member.privileges == 'readAndWrite'") #{translate("can_edit")}
+ span(ng-show="member.privileges == 'readOnly'") #{translate("read_only")}
.col-xs-1
a(
href
@@ -45,7 +45,7 @@ script(type='text/ng-template', id='shareProjectModalTemplate')
i.fa.fa-times
.row.invite-controls
form(ng-show="canAddCollaborators")
- .small Share with your collaborators
+ .small #{translate("share_with_your_collabs")}
.form-group
input.form-control(
type="email"
@@ -59,19 +59,19 @@ script(type='text/ng-template', id='shareProjectModalTemplate')
ng-model="inputs.privileges"
name="privileges"
)
- option(value="readAndWrite") Can Edit
- option(value="readOnly") Read Only
+ option(value="readAndWrite") #{translate("can_edit")}
+ option(value="readOnly") #{translate("read_only")}
|
button.btn.btn-info(
type="submit"
ng-click="addMember()"
- ) Share
+ ) #{translate("share")}
div.text-center(ng-hide="canAddCollaborators")
- p You need to upgrade your account to add more collaborators.
+ p #{translate("need_to_upgrade_for_more_collabs")}.
p
- a.btn.btn-info(href, ng-click="startFreeTrial('projectMembers')") Start Free Trial
+ a.btn.btn-info(href, ng-click="startFreeTrial('projectMembers')") #{translate("start_free_trial")}
p.small(ng-show="startedFreeTrial")
- | Please refresh this page after starting your free trial.
+ | #{translate("refresh_page_after_starting_free_trial")}.
.modal-footer
.modal-footer-left
@@ -79,7 +79,7 @@ script(type='text/ng-template', id='shareProjectModalTemplate')
span.text-danger.error(ng-show="state.error") {{ state.error }}
button.btn.btn-primary(
ng-click="done()"
- ) Done
+ ) #{translate("done")}
script(type="text/ng-template", id="makePublicModalTemplate")
.modal-header
@@ -88,23 +88,23 @@ script(type="text/ng-template", id="makePublicModalTemplate")
data-dismiss="modal"
ng-click="cancel()"
) ×
- h3 Make project public?
+ h3 #{translate("make_project_public")}?
.modal-body.modal-body-share
- p If you make your project public then anyone with the URL will be able to access it.
+ p #{translate("make_project_public_consequences")}
p
select.form-control(
ng-model="inputs.privileges"
name="privileges"
)
- option(value="readAndWrite") Allow public editing
- option(value="readOnly") Allow public read only access
+ option(value="readAndWrite") #{translate("allow_public_editing")}
+ option(value="readOnly") #{translate("allow_public_read_only")}
.modal-footer
button.btn.btn-default(
ng-click="cancel()"
- ) Cancel
+ ) #{translate("cancel")}
button.btn.btn-info(
ng-click="makePublic()"
- ) Make public
+ ) #{translate("make_public")}
script(type="text/ng-template", id="makePrivateModalTemplate")
.modal-header
@@ -113,13 +113,13 @@ script(type="text/ng-template", id="makePrivateModalTemplate")
data-dismiss="modal"
ng-click="cancel()"
) ×
- h3 Make project private?
+ h3 #{translate("make_project_private")}?
.modal-body.modal-body-share
- p If you make your project private then only the people you choose to share it with will have access.
+ p #{translate("make_project_private_consequences")}
.modal-footer
button.btn.btn-default(
ng-click="cancel()"
- ) Cancel
+ ) #{translate("cancel")}
button.btn.btn-info(
ng-click="makePrivate()"
- ) Make private
+ ) #{translate("make_private")}
diff --git a/services/web/app/views/project/editor/track-changes.jade b/services/web/app/views/project/editor/track-changes.jade
index 92bc4228f1..0fe6b3ea42 100644
--- a/services/web/app/views/project/editor/track-changes.jade
+++ b/services/web/app/views/project/editor/track-changes.jade
@@ -1,15 +1,15 @@
div#trackChanges(ng-show="ui.view == 'track-changes'")
.upgrade-prompt(ng-show="!project.features.versioning")
.message(ng-show="project.owner._id == user.id")
- p You need to upgrade your account to use the History feature.
+ p #{translate("need_to_upgrade_for_history")}
p
a.btn.btn-info(
href
ng-click="startFreeTrial('track-changes')"
- ) Start Free Trial
- p.small(ng-show="startedFreeTrial") Please refresh the page after starting your free trial.
+ ) #{translate("start_free_trial")}
+ p.small(ng-show="startedFreeTrial") #{translate("refresh_page_after_starting_free_trial")}
.message(ng-show="project.owner._id != user.id")
- p Please ask the project owner to upgrade to use the History feature.
+ p #{translate("ask_proj_owner_to_upgrade_for_history")}
aside.change-list(
ng-controller="TrackChangesListController"
@@ -73,11 +73,11 @@ div#trackChanges(ng-show="ui.view == 'track-changes'")
.name(ng-if="update_user.id == user.id") You
div.user(ng-if="update.meta.users.length == 0")
.color-square(style="background-color: hsl(100, 100%, 50%)")
- span Anonymous
+ span #{translate("anonymous")}
.loading(ng-show="trackChanges.loading")
i.fa.fa-spin.fa-refresh
- | Loading...
+ | #{translate("loading")}...
.diff-panel.full-size(ng-controller="TrackChangesDiffController")
.diff(
@@ -98,7 +98,7 @@ div#trackChanges(ng-show="ui.view == 'track-changes'")
a.btn.btn-danger.btn-sm(
href,
ng-click="openRestoreDiffModal()"
- ) Restore to before these changes
+ ) #{translate("restore_to_before_these_changes")}
.diff-editor.hide-ace-cursor(
ace-editor="track-changes",
theme="settings.theme",
@@ -112,17 +112,18 @@ div#trackChanges(ng-show="ui.view == 'track-changes'")
.diff-deleted.text-centered(
ng-show="trackChanges.diff.deleted"
)
- p.text-serif {{ trackChanges.diff.doc.name }} has been deleted.
+ p.text-serif #{translate("file_has_been_deleted", filename:"{{ trackChanges.diff.doc.name }} ")}
+
p
a.btn.btn-primary.btn-lg(
href,
ng-click="restoreDeletedDoc()"
- ) Restore
+ ) #{translate("restore")}
.loading-panel(ng-show="trackChanges.diff.loading")
i.fa.fa-spin.fa-refresh
- | Loading...
+ | #{translate("loading")}...
.error-panel(ng-show="trackChanges.diff.error")
- .alert.alert-danger Sorry, something went wrong :(
+ .alert.alert-danger #{translate("generic_something_went_wrong")}
script(type="text/ng-template", id="trackChangesRestoreDiffModalTemplate")
.modal-header
@@ -131,17 +132,17 @@ script(type="text/ng-template", id="trackChangesRestoreDiffModalTemplate")
data-dismiss="modal"
ng-click="cancel()"
) ×
- h3 Restore {{diff.doc.name}}
+ h3 #{translate("restore")} {{diff.doc.name}}
.modal-body.modal-body-share
- p Are you sure you want to restore {{diff.doc.name}} to before the changes on {{diff.start_ts | formatDate}}?
+ p #{translate("sure_you_want_to_restore_before", {filename:"{{diff.doc.name}}", date:"{{diff.start_ts | formatDate}}"})}
.modal-footer
button.btn.btn-default(
ng-click="cancel()",
ng-disabled="state.inflight"
- ) Cancel
+ ) #{translate("cancel")}
button.btn.btn-danger(
ng-click="restore()",
ng-disabled="state.inflight"
)
- span(ng-show="!state.inflight") Restore
- span(ng-show="state.inflight") Restoring...
+ span(ng-show="!state.inflight") #{translate("restore")}
+ span(ng-show="state.inflight") #{translate("restoring")} ...
diff --git a/services/web/app/views/project/list/modals.jade b/services/web/app/views/project/list/modals.jade
index ca5f6fbbe3..e4ea1e2542 100644
--- a/services/web/app/views/project/list/modals.jade
+++ b/services/web/app/views/project/list/modals.jade
@@ -5,7 +5,7 @@ script(type='text/ng-template', id='newTagModalTemplate')
data-dismiss="modal"
ng-click="cancel()"
) ×
- h3 Create New Folder
+ h3 #{translate("create_new_folder")}
.modal-body
form(name="newTagForm", novalidate)
input.form-control(
@@ -23,12 +23,12 @@ script(type='text/ng-template', id='newTagModalTemplate')
button.btn.btn-default(
ng-click="cancel()"
stop-propagation="click"
- ) Cancel
+ ) #{translate("cancel")}
button.btn.btn-primary(
ng-disabled="newTagForm.$invalid"
ng-click="create()"
stop-propagation="click"
- ) Create
+ ) #{translate("create")}
script(type='text/ng-template', id='renameProjectModalTemplate')
.modal-header
@@ -37,7 +37,7 @@ script(type='text/ng-template', id='renameProjectModalTemplate')
data-dismiss="modal"
ng-click="cancel()"
) ×
- h3 Rename Project
+ h3 #{translate("rename_project")}
.modal-body
form(name="renameProjectForm", novalidate)
input.form-control(
@@ -49,11 +49,11 @@ script(type='text/ng-template', id='renameProjectModalTemplate')
focus-on="open"
)
.modal-footer
- button.btn.btn-default(ng-click="cancel()") Cancel
+ button.btn.btn-default(ng-click="cancel()") #{translate("cancel")}
button.btn.btn-primary(
ng-click="rename()",
ng-disabled="renameProjectForm.$invalid"
- ) Rename
+ ) #{translate("rename")}
script(type='text/ng-template', id='cloneProjectModalTemplate')
.modal-header
@@ -62,11 +62,11 @@ script(type='text/ng-template', id='cloneProjectModalTemplate')
data-dismiss="modal"
ng-click="cancel()"
) ×
- h3 Copy Project
+ h3 #{translate("copy_project")}
.modal-body
form(name="cloneProjectForm", novalidate)
.form-group
- label New Name
+ label #{translate("new_name")}
input.form-control(
type="text",
placeholder="New Project Name",
@@ -79,13 +79,13 @@ script(type='text/ng-template', id='cloneProjectModalTemplate')
button.btn.btn-default(
ng-disabled="state.inflight"
ng-click="cancel()"
- ) Cancel
+ ) #{translate("cancel")}
button.btn.btn-primary(
ng-disabled="cloneProjectForm.$invalid || state.inflight"
ng-click="clone()"
)
- span(ng-hide="state.inflight") Copy
- span(ng-show="state.inflight") Copying...
+ span(ng-hide="state.inflight") #{translate("copy")}
+ span(ng-show="state.inflight") #{translate("coping")} ...
script(type='text/ng-template', id='newProjectModalTemplate')
.modal-header
@@ -94,7 +94,7 @@ script(type='text/ng-template', id='newProjectModalTemplate')
data-dismiss="modal"
ng-click="cancel()"
) ×
- h3 New Project
+ h3 #{translate("new_project")}
.modal-body
form(novalidate, name="newProjectForm")
input.form-control(
@@ -109,13 +109,13 @@ script(type='text/ng-template', id='newProjectModalTemplate')
button.btn.btn-default(
ng-disabled="state.inflight"
ng-click="cancel()"
- ) Cancel
+ ) #{translate("cancel")}
button.btn.btn-primary(
ng-disabled="newProjectForm.$invalid || state.inflight"
ng-click="create()"
)
- span(ng-hide="state.inflight") Create
- span(ng-show="state.inflight") Creating...
+ span(ng-hide="state.inflight") #{translate("create")}
+ span(ng-show="state.inflight") #{translate("creating")} ...
script(type='text/ng-template', id='deleteProjectsModalTemplate')
.modal-header
@@ -124,22 +124,22 @@ script(type='text/ng-template', id='deleteProjectsModalTemplate')
data-dismiss="modal"
ng-click="cancel()"
) ×
- h3 {{action}} Projects
+ h3 {{action}} #{translate("projects")}
.modal-body
div(ng-show="projectsToDelete.length > 0")
- p You are about to delete the following projects:
+ p #{translate("about_to_delete_projects")}
ul
li(ng-repeat="project in projectsToDelete | orderBy:'name'")
strong {{project.name}}
div(ng-show="projectsToLeave.length > 0")
- p You are about to leave the following projects:
+ p #{translate("about_to_leave_projects")}
ul
li(ng-repeat="project in projectsToLeave | orderBy:'name'")
strong {{project.name}}
.modal-footer
button.btn.btn-default(
ng-click="cancel()"
- ) Cancel
+ ) #{translate("cancel")}
button.btn.btn-danger(
ng-click="delete()"
) {{action}}
@@ -151,7 +151,7 @@ script(type="text/ng-template", id="uploadProjectModalTemplate")
data-dismiss="modal"
ng-click="cancel()"
) ×
- h3 Upload Zipped Project
+ h3 #{translate("upload_zipped_project")}
.modal-body(
fine-upload
endpoint="/project/new/upload"
@@ -163,9 +163,9 @@ script(type="text/ng-template", id="uploadProjectModalTemplate")
allowed-extensions="['zip']"
on-complete-callback="onComplete"
)
- span Upload a zipped project
+ span #{translate("upload_a_zipped_project")}
.modal-footer
- button.btn.btn-default(ng-click="cancel()") Cancel
+ button.btn.btn-default(ng-click="cancel()") #{translate("cancel")}
script(type="text/ng-template", id="userProfileModalTemplate")
.modal-header
@@ -174,12 +174,12 @@ script(type="text/ng-template", id="userProfileModalTemplate")
data-dismiss="modal"
ng-click="done()"
) ×
- h3 Your Profile
+ h3 #{translate("your_profile")}
.modal-body
form(enctype='multipart/form-data', method='post')
.form-group
- label(for="first_name") First Name
+ label(for="first_name") #{translate("first_name")}
input.form-control(
type='text',
name='first_name',
@@ -189,7 +189,7 @@ script(type="text/ng-template", id="userProfileModalTemplate")
)
.form-group
- label(for="last_name") Last Name
+ label(for="last_name") #{translate("last_name")}
input.form-control(
type='text',
name='last_name',
@@ -198,7 +198,7 @@ script(type="text/ng-template", id="userProfileModalTemplate")
)
.form-group.user_details_auto_complete
- label(for="institution") Institution
+ label(for="institution") #{translate("institution")}
autocomplete(
ng-model="userInfoForm.institution",
name="institution",
@@ -209,7 +209,7 @@ script(type="text/ng-template", id="userProfileModalTemplate")
)
.form-group.user_details_auto_complete
- label(for="role") Role
+ label(for="role") #{translate("role")}
autocomplete(
ng-model="userInfoForm.role",
name="role",
@@ -220,4 +220,4 @@ script(type="text/ng-template", id="userProfileModalTemplate")
.modal-footer
- button.btn.btn-info(ng-click="done()") Done
+ button.btn.btn-info(ng-click="done()") #{translate("done")}
diff --git a/services/web/app/views/project/list/side-bar.jade b/services/web/app/views/project/list/side-bar.jade
index cf3d95dbb5..c560ebc3c3 100644
--- a/services/web/app/views/project/list/side-bar.jade
+++ b/services/web/app/views/project/list/side-bar.jade
@@ -51,7 +51,7 @@
li(ng-class="{active: (filter == 'archived')}")
a(href, ng-click="filterProjects('archived')") #{translate("deleted_projects")}
li
- h2 Folders
+ h2 #{translate("folders")}
li(
ng-repeat="tag in tags | filter:nonEmpty",
ng-class="{active: tag.selected}",
@@ -86,7 +86,7 @@
.progress
.progress-bar.progress-bar-info(ng-style="{'width' : (percentComplete+'%')}")
- p.small #{translate("profile_complete_percentage")}
+ p.small #{translate("profile_complete_percentage_test", {percentval:"{{percentComplete}}"})}
button#completeUserProfileInformation.btn.btn-info(
ng-hide="formVisable",
diff --git a/services/web/app/views/user/register.jade b/services/web/app/views/user/register.jade
index a2faf4fe25..0b9010d0cc 100644
--- a/services/web/app/views/user/register.jade
+++ b/services/web/app/views/user/register.jade
@@ -6,24 +6,25 @@ block content
.row
.registration_message
if sharedProjectData.user_first_name !== undefined
- h1 #{sharedProjectData.user_first_name} would like you to view '#{sharedProjectData.project_name}'
- div Join ShareLaTeX to view this project
+ h1 #{translate("user_wants_you_to_see_project", {username:sharedProjectData.user_first_name, projectname:sharedProjectData.project_name})}
+ div #{translate("join_sl_to_view_project")}
else if newTemplateData.templateName !== undefined
- h1 Please register to edit the '#{newTemplateData.templateName}' template
- div Already have a ShareLaTeX account?
- a(href="/login") Login here
+ h1 #{translate("register_to_edit_template", {templatename:newTemplateData.templateName})}
+
+ div #{translate("already_have_sl_account")}
+ a(href="/login") #{translate("login_here")}
.row
.col-md-6.col-md-offset-3.col-lg-4.col-lg-offset-4
.card
.page-header
- h1 Register
+ h1 #{translate("register")}
form(async-form="register", name="registerForm", action="/register", ng-cloak)
input(name='_csrf', type='hidden', value=csrfToken)
input(name='redir', type='hidden', value=redir)
form-messages(for="registerForm")
.form-group
- label(for='email') Email
+ label(for='email') #{translate("email")}
input.form-control(
type='email',
name='email',
@@ -35,9 +36,9 @@ block content
focus="true"
)
span.small.text-primary(ng-show="registerForm.email.$invalid && registerForm.email.$dirty")
- | Must be an email address
+ | #{translate("must_be_email_address")}
.form-group
- label(for='password') Password
+ label(for='password') #{translate("password")}
input.form-control(
type='password',
name='password',
@@ -46,11 +47,11 @@ block content
ng-model="password"
)
span.small.text-primary(ng-show="registerForm.password.$invalid && registerForm.password.$dirty")
- | Required
+ | #{translate("required")}
.actions
button.btn-primary.btn(
type='submit'
ng-disabled="registerForm.inflight"
)
- span(ng-show="!registerForm.inflight") Register
- span(ng-show="registerForm.inflight") Registering...
+ span(ng-show="!registerForm.inflight") #{translate("register")}
+ span(ng-show="registerForm.inflight") #{translate("registering")}...