diff --git a/docker/docker-compose.yml b/docker/docker-compose.yml index 99652570e..34d87123d 100644 --- a/docker/docker-compose.yml +++ b/docker/docker-compose.yml @@ -41,10 +41,10 @@ services: - backend_m2:/root/.m2 # - /etc/localtime:/etc/localtime:ro # - /etc/timezone:/etc/timezone:ro - environment: # HTTP setup - UXBOX_HTTP_SERVER_DEBUG=false + - UXBOX_HTTP_SERVER_CORS=* - UXBOX_MEDIA_URI="/media/" - UXBOX_ASSETS_URI="/static/" - UXBOX_MEDIA_DIRECTORY="data/media" diff --git a/frontend/src/uxbox/main/locales/en.cljs b/frontend/src/uxbox/main/locales/en.cljs index 5dbcf720d..7968c7eb9 100644 --- a/frontend/src/uxbox/main/locales/en.cljs +++ b/frontend/src/uxbox/main/locales/en.cljs @@ -14,6 +14,7 @@ "%s projects"] "ds.project-title" "Your projects" "ds.project-new" "+ New project" + "ds.project-thumbnail.alt" "Project title" "ds.ordering" "Sort by" "ds.ordering.by-name" "name" @@ -21,6 +22,7 @@ "ds.ordering.by-creation-date" "creation date" "ds.search.placeholder" "Search..." "ds.uploaded-at" "Uploaded at %s" + "ds.updated-at" "Updated %s" "ds.confirm-title" "Are you sure?" "ds.confirm-ok" "Ok" @@ -71,10 +73,50 @@ "ds.your-libraries-title" "YOUR LIBRARIES" "ds.default-library-title" "Unnamed Collection (%s)" - "ds.element-options" "Element options" - "ds.draw-tools" "Draw tools" - "ds.sitemap" "Sitemap" - "ds.document-history" "Document history" + "ds.project.placeholder" "New project name" + "ds.project.new" "New project" + + "ds.radius" "Radius" + "ds.size" "Size" + "ds.width" "Width" + "ds.height" "Height" + "ds.style" "Style" + "ds.none" "None" + "ds.solid" "Solid" + "ds.dotted" "Dotted" + "ds.dashed" "Dashed" + "ds.mixed" "Mixed" + "ds.position" "Position" + "ds.rotation" "Rotation" + "ds.opacity" "Opacity" + "ds.color" "Color" + "ds.background-color" "Background color" + "ds.font-family" "Font family" + "ds.size-weight" "Size and Weight" + "ds.font-size" "Font Size" + "ds.line-height-letter-spacing" "Line height and Letter spacing" + "ds.line-height" "Line height" + "ds.letter-spacing" "Letter spacing" + "ds.text-align" "Text align" + "ds.name" "Name" + "ds.go" "Go go go!" + + "ds.accept" "Accept" + "ds.cancel" "Cancel" + + "ds.settings.icons" "Icons" + "ds.settings.element-options" "Element options" + "ds.settings.draw-tools" "Draw tools" + "ds.settings.sitemap" "Sitemap" + "ds.settings.layers" "Layers" + "ds.settings.document-history" "Document history" + + "ds.page.placeholder" "Page name" + "ds.page.new" "New page" + "ds.page.edit" "Edit page" + + "ds.history.versions" "History" + "ds.history.pinned" "Pinned" "ds.help.rect" "Box (Ctrl + B)" "ds.help.circle" "Circle (Ctrl + E)" @@ -83,12 +125,43 @@ "ds.help.path" "Path" "ds.help.curve" "Curve" "ds.help.ruler" "Ruler" + "ds.help.canvas" "Canvas" "ds.user.profile" "Profile" "ds.user.password" "Password" "ds.user.notifications" "Notifications" "ds.user.exit" "Exit" + "header.sitemap" "Sitemap (Ctrl + Shift + M)" + "header.draw-tools" "Draw tools (Ctrl + Shift + S)" + "header.color-palette" "Color Palette (---)" + "header.icons" "Icons (Ctrl + Shift + I)" + "header.layers" "Layers (Ctrl + Shift + L)" + "header.element-options" "Element options (Ctrl + Shift + O)" + "header.document-history" "History (Ctrl + Shift + H)" + "header.undo" "Undo (Ctrl + Z)" + "header.redo" "Redo (Ctrl + Shift + Z)" + "header.download" "Download (Ctrl + E)" + "header.image" "Image (Ctrl + I)" + "header.rules" "Rules" + "header.grid" "Grid (Ctrl + G)" + "header.grid-snap" "Snap to grid" + "header.align" "Align (Ctrl + A)" + "header.view-mode" "View mode (Ctrl + P)" + + "element.measures" "Size, position & rotation" + "element.fill" "Fill" + "element.stroke" "Stroke" + "element.text" "Text" + "element.interactions" "Interactions" + "element.page-measures" "Page settings" + "element.page-grid-options" "Grid settings" + + "image.new" "New image" + "image.select" "Select from library" + "image.upload" "Upload file" + "image.import-library" "Import image from library" + "auth.email-or-username" "Email or Username" "auth.password" "Password" "auth.signin" "Sign in" @@ -147,6 +220,7 @@ "settings.update-settings" "Update settings" "history.alert-message" "You are seeing version %s" + "errors.api.form.old-password-not-match" "Incorrect old password" "errors.api.form.registration-disabled" "The registration is currently disabled." "errors.api.form.email-already-exists" "The email is already in use by another user." diff --git a/frontend/src/uxbox/main/locales/fr.cljs b/frontend/src/uxbox/main/locales/fr.cljs index 8c9120797..f8c37c20b 100644 --- a/frontend/src/uxbox/main/locales/fr.cljs +++ b/frontend/src/uxbox/main/locales/fr.cljs @@ -14,6 +14,7 @@ "%s projets"] "ds.project-title" "Vos projets" "ds.project-new" "+ Nouveau projet" + "ds.project-thumbnail.alt" "Titre du projet" "ds.ordering" "Trier par" "ds.ordering.by-name" "nom" @@ -21,6 +22,7 @@ "ds.ordering.by-creation-date" "date de création" "ds.search.placeholder" "Rechercher..." "ds.uploaded-at" "Mise en ligne : %s" + "ds.updated-at" "Mis à jour %s" "ds.confirm-title" "Êtes-vous sûr ?" "ds.confirm-ok" "Ok" @@ -71,10 +73,50 @@ "ds.your-libraries-title" "VOS LIBRAIRIES" "ds.default-library-title" "Collection sans nom (%s)" - "ds.element-options" "Options d'élément" - "ds.draw-tools" "Outils de dessin" - "ds.sitemap" "Plan du site" - "ds.document-history" "Historique du document" + "ds.project.placeholder" "Nom du nouveau projet" + "ds.project.new" "Nouveau projet" + + "ds.radius" "Rayon" + "ds.size" "Taille" + "ds.width" "Largeur" + "ds.height" "Hauteur" + "ds.style" "Style" + "ds.none" "Aucun" + "ds.solid" "Solide" + "ds.dotted" "Pointillé" + "ds.dashed" "Tiré" + "ds.mixed" "Mixte" + "ds.position" "Position" + "ds.rotation" "Rotation" + "ds.opacity" "Opacité" + "ds.color" "Couleur" + "ds.background-color" "Couleur d'arrière-plan" + "ds.font-family" "Police de caractères" + "ds.size-weight" "Taille et graisse" + "ds.font-size" "Taille de police" + "ds.line-height-letter-spacing" "Hauteur de ligne et Espacement de caractères" + "ds.line-height" "Hauteur de ligne" + "ds.letter-spacing" "Espacement de caractères" + "ds.text-align" "Alignement de texte" + "ds.name" "Nom" + "ds.go" "C'est parti !" + + "ds.accept" "Accepter" + "ds.cancel" "Annuler" + + "ds.settings.icons" "Icônes" + "ds.settings.element-options" "Options d'élément" + "ds.settings.draw-tools" "Outils de dessin" + "ds.settings.sitemap" "Plan du site" + "ds.settings.layers" "Couches" + "ds.settings.document-history" "Historique du document" + + "ds.page.placeholder" "Nom de la page" + "ds.page.new" "Nouvelle page" + "ds.page.edit" "Éditer la page" + + "ds.history.versions" "Historique" + "ds.history.pinned" "Épinglés" "ds.help.rect" "Boîte (Ctrl + B)" "ds.help.circle" "Cercle (Ctrl + E)" @@ -83,12 +125,43 @@ "ds.help.path" "Chemin" "ds.help.curve" "Courbe" "ds.help.ruler" "Règle" + "ds.help.canvas" "Calque" "ds.user.profile" "Profil" "ds.user.password" "Mot de passe" "ds.user.notifications" "Notifications" "ds.user.exit" "Quitter" + "header.sitemap" "Plan du site (Ctrl + Maj + M)" + "header.draw-tools" "Outils de dessin (Ctrl + Maj + S)" + "header.color-palette" "Palette de couleurs (---)" + "header.icons" "Icônes (Ctrl + Maj + I)" + "header.layers" "Couches (Ctrl + Maj + L)" + "header.element-options" "Options d'élément (Ctrl + Maj + O)" + "header.document-history" "Historique du document (Ctrl + Maj + H)" + "header.undo" "Annuler (Ctrl + Z)" + "header.redo" "Rétablir (Ctrl + Maj + Z)" + "header.download" "Télécharger (Ctrl + E)" + "header.image" "Image (Ctrl + I)" + "header.rules" "Règles" + "header.grid" "Grille (Ctrl + G)" + "header.grid-snap" "Coller à la grille" + "header.align" "Aligner (Ctrl + A)" + "header.view-mode" "Mode visualisation (Ctrl + P)" + + "element.measures" "Taille, position et rotation" + "element.fill" "Fond" + "element.stroke" "Contour" + "element.text" "Texte" + "element.interactions" "Interactions" + "element.page-measures" "Paramètres de la page" + "element.page-grid-options" "Paramètres de la grille" + + "image.new" "Nouvelle image" + "image.select" "Choisir depuis une librairie" + "image.upload" "Envoyer un fichier" + "image.import-library" "Importer une image depuis une librairie" + "auth.email-or-username" "adresse email ou nom d'utilisateur" "auth.password" "Mot de passe" "auth.signin" "Se connecter" @@ -147,6 +220,7 @@ "settings.update-settings" "Mettre à jour les paramètres" "history.alert-message" "Vous voyez la version %s" + "errors.api.form.old-password-not-match" "Ancien mot de passe incorrect" "errors.api.form.registration-disabled" "L'enregistrement est actuellement désactivé." "errors.api.form.email-already-exists" "L'email est déjà utilisé par un autre utilisateur." @@ -169,4 +243,4 @@ "errors.generic" "Quelque chose c'est mal passé." "errors.conflict" "Conflit sur la sauvegarde des données, actualisez et réessayez." -}) + }) diff --git a/frontend/src/uxbox/main/ui/dashboard/projects.cljs b/frontend/src/uxbox/main/ui/dashboard/projects.cljs index f17f5badb..4d5d99c49 100644 --- a/frontend/src/uxbox/main/ui/dashboard/projects.cljs +++ b/frontend/src/uxbox/main/ui/dashboard/projects.cljs @@ -116,7 +116,7 @@ [{:keys [project] :as props}] [:div.grid-item-th [:img.img-th {:src "/images/project-placeholder.svg" - :alt "Project title"}]]) + :alt (tr "ds.project-thumbnail.alt")}]]) ;; --- Grid Item @@ -152,7 +152,7 @@ :default-value (:name project)}] [:h3 (:name project)]) [:span.date - (str "Updated " (dt/timeago (:modified-at project)))]] + (str (tr "ds.updated-at" (dt/timeago (:modified-at project))))]] [:div.project-th-actions [:div.project-th-icon.pages i/page diff --git a/frontend/src/uxbox/main/ui/dashboard/projects_forms.cljs b/frontend/src/uxbox/main/ui/dashboard/projects_forms.cljs index d6695623b..9cd2b8540 100644 --- a/frontend/src/uxbox/main/ui/dashboard/projects_forms.cljs +++ b/frontend/src/uxbox/main/ui/dashboard/projects_forms.cljs @@ -49,7 +49,7 @@ (let [{:keys [data] :as form} (fm/use-form ::project-form defaults)] [:form {:on-submit #(on-submit % form)} [:input.input-text - {:placeholder "New project name" + {:placeholder (tr "ds.project.placeholder") :type "text" :name "name" :value (:name data) @@ -59,9 +59,9 @@ :auto-focus true}] [:div.project-size [:div.input-element.pixels - [:span "Width"] + [:span (tr "ds.width")] [:input#project-witdh.input-text - {:placeholder "Width" + {:placeholder (tr "ds.width") :name "width" :type "number" :min 0 @@ -72,9 +72,9 @@ :value (:width data)}]] [:a.toggle-layout {:on-click #(swap-size % form)} i/toggle] [:div.input-element.pixels - [:span "Height"] + [:span (tr "ds.height")] [:input#project-height.input-text - {:placeholder "Height" + {:placeholder (tr "ds.height") :type "number" :name "height" :min 0 @@ -86,7 +86,7 @@ ;; Submit [:input#project-btn.btn-primary - {:value "Go go go!" + {:value (tr "ds.go") :class (when-not (:valid form) "btn-disabled") :disabled (not (:valid form)) :type "submit"}]])) @@ -96,7 +96,7 @@ (mf/defc create-project-dialog [props] [:div.lightbox-body - [:h3 "New project"] + [:h3 (tr "ds.project.new")] [:& create-project-form] [:a.close {:on-click modal/hide!} i/close]]) diff --git a/frontend/src/uxbox/main/ui/workspace/header.cljs b/frontend/src/uxbox/main/ui/workspace/header.cljs index 216e56cd4..be1758205 100644 --- a/frontend/src/uxbox/main/ui/workspace/header.cljs +++ b/frontend/src/uxbox/main/ui/workspace/header.cljs @@ -22,6 +22,7 @@ [uxbox.main.ui.users :refer [user]] [uxbox.main.ui.workspace.clipboard] [uxbox.util.data :refer [index-of]] + [uxbox.util.i18n :refer (tr)] [uxbox.util.geom.point :as gpt] [uxbox.util.math :as mth] [uxbox.util.router :as rt])) @@ -53,7 +54,7 @@ [:div.main-icon [:a {:on-click #(st/emit! (rt/nav :dashboard/projects))} i/logo-icon]] [:div.project-tree-btn - {:alt "Sitemap (Ctrl + Shift + M)" + {:alt (tr "header.sitemap") :class (when (contains? flags :sitemap) "selected") :on-click (partial toggle :sitemap)} i/project-tree @@ -61,76 +62,76 @@ [:div.workspace-options [:ul.options-btn [:li.tooltip.tooltip-bottom - {:alt "Draw tools (Ctrl + Shift + S)" + {:alt (tr "header.draw-tools") :class (when (contains? flags :drawtools) "selected") :on-click (partial toggle :drawtools)} i/shapes] [:li.tooltip.tooltip-bottom - {:alt "Color Palette (---)" + {:alt (tr "header.color-palette") :class (when (contains? flags :colorpalette) "selected") :on-click (partial toggle :colorpalette)} i/palette] [:li.tooltip.tooltip-bottom - {:alt "Icons (Ctrl + Shift + I)" + {:alt (tr "header.icons") :class (when (contains? flags :icons) "selected") :on-click (partial toggle :icons)} i/icon-set] [:li.tooltip.tooltip-bottom - {:alt "Layers (Ctrl + Shift + L)" + {:alt (tr "header.layers") :class (when (contains? flags :layers) "selected") :on-click (partial toggle :layers)} i/layers] [:li.tooltip.tooltip-bottom - {:alt "Element options (Ctrl + Shift + O)" + {:alt (tr "header.element-options") :class (when (contains? flags :element-options) "selected") :on-click (partial toggle :element-options)} i/options] [:li.tooltip.tooltip-bottom - {:alt "History (Ctrl + Shift + H)" + {:alt (tr "header.document-history") :class (when (contains? flags :document-history) "selected") :on-click (partial toggle :document-history)} i/undo-history]] [:ul.options-btn [:li.tooltip.tooltip-bottom - {:alt "Undo (Ctrl + Z)" + {:alt (tr "header.undo") :on-click on-undo} i/undo] [:li.tooltip.tooltip-bottom - {:alt "Redo (Ctrl + Shift + Z)" + {:alt (tr "header.redo") :on-click on-redo} i/redo]] [:ul.options-btn [:li.tooltip.tooltip-bottom - {:alt "Download (Ctrl + E)" + {:alt (tr "header.download") ;; :on-click on-download } i/download] [:li.tooltip.tooltip-bottom - {:alt "Image (Ctrl + I)" + {:alt (tr "header.image") :on-click on-image} i/image]] [:ul.options-btn [:li.tooltip.tooltip-bottom - {:alt "Rules" + {:alt (tr "header.rules") :class (when (contains? flags :rules) "selected") :on-click (partial toggle :rules)} i/ruler] [:li.tooltip.tooltip-bottom - {:alt "Grid (Ctrl + G)" + {:alt (tr "header.grid") :class (when (contains? flags :grid) "selected") :on-click (partial toggle :grid)} i/grid] [:li.tooltip.tooltip-bottom - {:alt "Snap to grid" + {:alt (tr "header.grid-snap") :class (when (contains? flags :grid-snap) "selected") :on-click (partial toggle :grid-snap)} i/grid-snap]] ;; [:li.tooltip.tooltip-bottom - ;; {:alt "Align (Ctrl + A)"} + ;; {:alt (tr "header.align")} ;; i/alignment]] [:ul.options-btn [:li.tooltip.tooltip-bottom.view-mode - {:alt "View mode (Ctrl + P)" + {:alt (tr "header.view-mode") :on-click #(st/emit! (dw/->OpenView (:id page))) } i/play]] diff --git a/frontend/src/uxbox/main/ui/workspace/images.cljs b/frontend/src/uxbox/main/ui/workspace/images.cljs index fdab5ec96..c080f2ecb 100644 --- a/frontend/src/uxbox/main/ui/workspace/images.cljs +++ b/frontend/src/uxbox/main/ui/workspace/images.cljs @@ -68,16 +68,16 @@ (dom/prevent-default event) (modal/hide!))] [:div.lightbox-body - [:h3 "New image"] + [:h3 (tr "image.new")] [:div.row-flex [:div.lightbox-big-btn {:on-click on-select-from-library} [:span.big-svg i/image] - [:span.text "Select from library"]] + [:span.text (tr "image.select")]] [:div.lightbox-big-btn {:on-click on-upload-click} (if uploading? [:span.big-svg.upload i/loader-pencil] [:span.big-svg.upload i/exit]) - [:span.text "Upload file"] + [:span.text (tr "image.upload")] [:input.upload-image-input {:style {:display "none"} :accept "image/jpeg,image/png" @@ -138,16 +138,16 @@ :fn #(st/emit! (udi/fetch-images id))}) [:div.lightbox-body.big-lightbox - [:h3 "Import image from library"] + [:h3 (tr "image.import-library")] [:div.import-img-library [:div.library-actions [:ul.toggle-library [:li.your-images {:class (when own? "current") :on-click #(select-type :own)} - "YOUR IMAGES"] + (tr "ds.your-images-title")] [:li.standard {:class (when builtin? "current") :on-click #(select-type :builtin)} - "IMAGES STORE"]] + (tr "ds.store-images-title")]] [:select.input-select {:on-change on-change} (when own? [:option {:value (pr-str nil)} "Storage"]) diff --git a/frontend/src/uxbox/main/ui/workspace/sidebar/drawtools.cljs b/frontend/src/uxbox/main/ui/workspace/sidebar/drawtools.cljs index 191a0d390..6dcb82d35 100644 --- a/frontend/src/uxbox/main/ui/workspace/sidebar/drawtools.cljs +++ b/frontend/src/uxbox/main/ui/workspace/sidebar/drawtools.cljs @@ -65,7 +65,7 @@ [:div.tool-window.drawing-tools [:div.tool-window-bar [:div.tool-window-icon i/window] - [:span (tr "ds.draw-tools")] + [:span (tr "ds.settings.draw-tools")] [:div.tool-window-close {:on-click close} i/close]] [:div.tool-window-content (for [item tools] diff --git a/frontend/src/uxbox/main/ui/workspace/sidebar/history.cljs b/frontend/src/uxbox/main/ui/workspace/sidebar/history.cljs index c5d359e92..b87c37e40 100644 --- a/frontend/src/uxbox/main/ui/workspace/sidebar/history.cljs +++ b/frontend/src/uxbox/main/ui/workspace/sidebar/history.cljs @@ -14,7 +14,7 @@ [uxbox.main.data.workspace :as dw] [uxbox.util.data :refer [read-string]] [uxbox.util.dom :as dom] - [uxbox.util.i18n :refer [tr]] + [uxbox.util.i18n :refer (tr)] [rumext.alpha :as mf] [uxbox.util.router :as r] [uxbox.util.time :as dt])) @@ -102,16 +102,16 @@ [:div.document-history.tool-window {} [:div.tool-window-bar {} [:div.tool-window-icon {} i/undo-history] - [:span {} (tr "ds.document-history")] + [:span {} (tr "ds.settings.document-history")] [:div.tool-window-close {:on-click close} i/close]] [:div.tool-window-content {} [:ul.history-tabs {} [:li {:on-click show-main :class (when main? "selected")} - "History"] + (tr "ds.history.versions")] [:li {:on-click show-pinned :class (when pinned? "selected")} - "Pinned"]] + (tr "ds.history.pinned")]] (if (= section :pinned) (history-pinned-list history) (history-list history))]]))) @@ -131,5 +131,5 @@ {:class (when (:deselecting history) "hide-message")} [:span {} (tr "history.alert-message" (or version "00")) [:div.message-action {} - [:a.btn-transparent {:on-click on-accept} "Accept"] - [:a.btn-transparent {:on-click on-cancel} "Cancel"]]]])))) + [:a.btn-transparent {:on-click on-accept} (tr "ds.accept")] + [:a.btn-transparent {:on-click on-cancel} (tr "ds.cancel")]]]])))) diff --git a/frontend/src/uxbox/main/ui/workspace/sidebar/icons.cljs b/frontend/src/uxbox/main/ui/workspace/sidebar/icons.cljs index a23a434a9..7faeec7d7 100644 --- a/frontend/src/uxbox/main/ui/workspace/sidebar/icons.cljs +++ b/frontend/src/uxbox/main/ui/workspace/sidebar/icons.cljs @@ -17,7 +17,8 @@ [uxbox.main.ui.shapes.icon :as icon] [uxbox.util.data :refer (read-string)] [uxbox.util.dom :as dom] - [uxbox.util.router :as r])) + [uxbox.util.router :as r] + [uxbox.util.i18n :refer (tr)])) ;; --- Refs @@ -68,7 +69,7 @@ [:div#form-figures.tool-window [:div.tool-window-bar [:div.tool-window-icon i/icon-set] - [:span "Icons"] + [:span (tr "ds.settings.icons")] [:div.tool-window-close {:on-click on-close} i/close]] [:div.tool-window-content [:div.figures-catalog diff --git a/frontend/src/uxbox/main/ui/workspace/sidebar/layers.cljs b/frontend/src/uxbox/main/ui/workspace/sidebar/layers.cljs index 049d42798..b630d1354 100644 --- a/frontend/src/uxbox/main/ui/workspace/sidebar/layers.cljs +++ b/frontend/src/uxbox/main/ui/workspace/sidebar/layers.cljs @@ -18,7 +18,8 @@ [uxbox.main.ui.shapes.icon :as icon] [uxbox.main.ui.workspace.sortable :refer [use-sortable]] [uxbox.util.data :refer [classnames]] - [uxbox.util.dom :as dom])) + [uxbox.util.dom :as dom] + [uxbox.util.i18n :refer (tr)])) ;; --- Helpers @@ -198,7 +199,7 @@ [:div#layers.tool-window [:div.tool-window-bar [:div.tool-window-icon i/layers] - [:span "Layers"] + [:span (tr "ds.settings.layers")] [:div.tool-window-close {:on-click on-click} i/close]] [:& layers-list {:shapes (:shapes page) :selected selected}]])) diff --git a/frontend/src/uxbox/main/ui/workspace/sidebar/options.cljs b/frontend/src/uxbox/main/ui/workspace/sidebar/options.cljs index cd19ec4a4..361ff2dfc 100644 --- a/frontend/src/uxbox/main/ui/workspace/sidebar/options.cljs +++ b/frontend/src/uxbox/main/ui/workspace/sidebar/options.cljs @@ -42,43 +42,43 @@ ::page [::page-measures ::page-grid-options]}) (def ^:private +menus+ - [{:name "Size, position & rotation" + [{:name "element.measures" :id ::icon-measures :icon i/infocard :comp options-iconm/icon-measures-menu} - {:name "Size, position & rotation" + {:name "element.measures" :id ::image-measures :icon i/infocard :comp options-imagem/image-measures-menu} - {:name "Size, position & rotation" + {:name "element.measures" :id ::rect-measures :icon i/infocard :comp options-rectm/rect-measures-menu} - {:name "Size, position & rotation" + {:name "element.measures" :id ::circle-measures :icon i/infocard :comp options-circlem/circle-measures-menu} - {:name "Fill" + {:name "element.fill" :id ::fill :icon i/fill :comp options-fill/fill-menu} - {:name "Stroke" + {:name "element.stroke" :id ::stroke :icon i/stroke :comp options-stroke/stroke-menu} - {:name "Text" + {:name "element.text" :id ::text :icon i/text :comp options-text/text-menu} - {:name "Interactions" + {:name "element.interactions" :id ::interactions :icon i/action :comp options-interactions/interactions-menu} - {:name "Page settings" + {:name "element.page-measures" :id ::page-measures :icon i/page :comp options-page/measures-menu} - {:name "Grid settings" + {:name "element.page-grid-options" :id ::page-grid-options :icon i/grid :comp options-page/grid-options-menu}]) @@ -116,7 +116,7 @@ [:div.elementa-options.tool-window [:div.tool-window-bar [:div.tool-window-icon i/options] - [:span (tr "ds.element-options")] + [:span (tr "ds.settings.element-options")] [:div.tool-window-close {:on-click close} i/close]] [:div.tool-window-content [:div.element-options diff --git a/frontend/src/uxbox/main/ui/workspace/sidebar/options/circle_measures.cljs b/frontend/src/uxbox/main/ui/workspace/sidebar/options/circle_measures.cljs index d402fe303..566a2c590 100644 --- a/frontend/src/uxbox/main/ui/workspace/sidebar/options/circle_measures.cljs +++ b/frontend/src/uxbox/main/ui/workspace/sidebar/options/circle_measures.cljs @@ -30,11 +30,11 @@ [:div.element-set-title (:name menu)] [:div.element-set-content ;; SLIDEBAR FOR ROTATION AND OPACITY - [:span "Size"] + [:span (tr "ds.size")] [:div.row-flex [:div.input-element.pixels [:input.input-text - {:placeholder "Width" + {:placeholder (tr "ds.width") :type "number" :min "0" :value (precision-or-0 (:rx shape 0) 2) @@ -45,13 +45,13 @@ [:div.input-element.pixels [:input.input-text - {:placeholder "Height" + {:placeholder (tr "ds.height") :type "number" :min "0" :value (precision-or-0 (:ry shape 0) 2) :on-change #(on-size-change % shape :ry)}]]] - [:span "Position"] + [:span (tr "ds.position")] [:div.row-flex [:div.input-element.pixels [:input.input-text @@ -66,7 +66,7 @@ :value (precision-or-0 (:cy shape 0) 2) :on-change #(on-position-change % shape :y)}]]] - [:span "Rotation"] + [:span (tr "ds.rotation")] [:div.row-flex [:input.slidebar {:type "range" diff --git a/frontend/src/uxbox/main/ui/workspace/sidebar/options/fill.cljs b/frontend/src/uxbox/main/ui/workspace/sidebar/options/fill.cljs index 16836fa82..488302d4a 100644 --- a/frontend/src/uxbox/main/ui/workspace/sidebar/options/fill.cljs +++ b/frontend/src/uxbox/main/ui/workspace/sidebar/options/fill.cljs @@ -42,7 +42,7 @@ [:div.element-set-title (:name menu)] [:div.element-set-content - [:span "Color"] + [:span (tr "ds.color")] [:div.row-flex.color-data [:span.color-th {:style {:background-color (:fill-color shape)} @@ -53,7 +53,7 @@ :value (:fill-color shape "")}]]] ;; SLIDEBAR FOR ROTATION AND OPACITY - [:span "Opacity"] + [:span (tr "ds.opacity")] [:div.row-flex [:input.slidebar {:type "range" diff --git a/frontend/src/uxbox/main/ui/workspace/sidebar/options/icon_measures.cljs b/frontend/src/uxbox/main/ui/workspace/sidebar/options/icon_measures.cljs index 6b406b804..08f61bfd8 100644 --- a/frontend/src/uxbox/main/ui/workspace/sidebar/options/icon_measures.cljs +++ b/frontend/src/uxbox/main/ui/workspace/sidebar/options/icon_measures.cljs @@ -31,10 +31,10 @@ [:div.element-set-title (:name menu)] [:div.element-set-content ;; SLIDEBAR FOR ROTATION AND OPACITY - [:span "Size"] + [:span (tr "ds.size")] [:div.row-flex [:div.input-element.pixels - [:input.input-text {:placeholder "Width" + [:input.input-text {:placeholder (tr "ds.width") :type "number" :min "0" :value (precision-or-0 (:width size) 2) @@ -44,13 +44,13 @@ (if (:proportion-lock shape) i/lock i/unlock)] [:div.input-element.pixels - [:input.input-text {:placeholder "Height" + [:input.input-text {:placeholder (tr "ds.height") :type "number" :min "0" :value (precision-or-0 (:height size) 2) :on-change #(on-size-change % shape :height)}]]] - [:span "Position"] + [:span (tr "ds.position")] [:div.row-flex [:div.input-element.pixels [:input.input-text @@ -65,7 +65,7 @@ :value (precision-or-0 (:y1 shape 0) 2) :on-change #(on-position-change % shape :y)}]]] - [:span "Rotation"] + [:span (tr "ds.rotation")] [:div.row-flex [:input.slidebar {:type "range" diff --git a/frontend/src/uxbox/main/ui/workspace/sidebar/options/image_measures.cljs b/frontend/src/uxbox/main/ui/workspace/sidebar/options/image_measures.cljs index 963571840..4f75f4bc6 100644 --- a/frontend/src/uxbox/main/ui/workspace/sidebar/options/image_measures.cljs +++ b/frontend/src/uxbox/main/ui/workspace/sidebar/options/image_measures.cljs @@ -31,11 +31,11 @@ [:div.element-set-title (:name menu)] [:div.element-set-content ;; SLIDEBAR FOR ROTATION AND OPACITY - [:span "Size"] + [:span (tr "ds.size")] [:div.row-flex [:div.input-element.pixels [:input.input-text - {:placeholder "Width" + {:placeholder (tr "ds.width") :type "number" :min "0" :value (precision-or-0 (:width size) 2) @@ -46,13 +46,13 @@ (if (:proportion-lock shape) i/lock i/unlock)] [:div.input-element.pixels [:input.input-text - {:placeholder "Height" + {:placeholder (tr "ds.height") :type "number" :min "0" :value (precision-or-0 (:height size) 2) :on-change #(on-size-change % shape :height)}]]] - [:span "Position"] + [:span (tr "ds.position")] [:div.row-flex [:div.input-element.pixels [:input.input-text @@ -67,7 +67,7 @@ :value (precision-or-0 (:y1 shape 0) 2) :on-change #(on-position-change % shape :y)}]]] - ;; [:span "Rotation"] + ;; [:span (tr "ds.rotation")] ;; [:div.row-flex ;; [:input.slidebar ;; {:type "range" @@ -90,7 +90,7 @@ ;; {:style {:visibility "hidden"}}]] - [:span "Opacity"] + [:span (tr "ds.opacity")] [:div.row-flex [:input.slidebar {:type "range" diff --git a/frontend/src/uxbox/main/ui/workspace/sidebar/options/page.cljs b/frontend/src/uxbox/main/ui/workspace/sidebar/options/page.cljs index 861f3c3d0..3914db58b 100644 --- a/frontend/src/uxbox/main/ui/workspace/sidebar/options/page.cljs +++ b/frontend/src/uxbox/main/ui/workspace/sidebar/options/page.cljs @@ -20,6 +20,7 @@ [uxbox.main.ui.workspace.colorpicker :refer [colorpicker-modal]] [uxbox.util.data :refer [parse-int]] [uxbox.util.dom :as dom] + [uxbox.util.i18n :refer [tr]] [uxbox.util.spec :refer [color?]])) (mf/defc measures-menu @@ -57,9 +58,9 @@ (modal/show! colorpicker-modal props)))] [:div.element-set - [:div.element-set-title (:name menu)] + [:div.element-set-title (tr (:name menu))] [:div.element-set-content - [:span "Name"] + [:span (tr "ds.name")] [:div.row-flex [:div.input-element [:input.input-text @@ -68,22 +69,22 @@ :value (str (:name page)) :placeholder "page name"}]]] - [:span "Size"] + [:span (tr "ds.size")] [:div.row-flex [:div.input-element.pixels [:input.input-text {:type "number" :on-change #(on-size-change % :width) :value (str (:width metadata)) - :placeholder "width"}]] + :placeholder (tr "ds.width")}]] [:div.input-element.pixels [:input.input-text {:type "number" :on-change #(on-size-change % :height) :value (str (:height metadata)) - :placeholder "height"}]]] + :placeholder (tr "ds.height")}]]] - [:span "Background color"] + [:span (tr "ds.background-color")] [:div.row-flex.color-data [:span.color-th {:style {:background-color (:background metadata)} @@ -125,9 +126,9 @@ :on-change change-color}] (modal/show! colorpicker-modal props)))] [:div.element-set - [:div.element-set-title (:name menu)] + [:div.element-set-title (tr (:name menu))] [:div.element-set-content - [:span "Size"] + [:span (tr "ds.size")] [:div.row-flex [:div.input-element.pixels [:input.input-text @@ -141,7 +142,7 @@ :value (:grid-y-axis metadata) :on-change on-y-change :placeholder "y"}]]] - [:span "Color"] + [:span (tr "ds.color")] [:div.row-flex.color-data [:span.color-th {:style {:background-color (:grid-color metadata)} diff --git a/frontend/src/uxbox/main/ui/workspace/sidebar/options/rect_measures.cljs b/frontend/src/uxbox/main/ui/workspace/sidebar/options/rect_measures.cljs index f8c47f3c0..8a691b42f 100644 --- a/frontend/src/uxbox/main/ui/workspace/sidebar/options/rect_measures.cljs +++ b/frontend/src/uxbox/main/ui/workspace/sidebar/options/rect_measures.cljs @@ -31,10 +31,10 @@ [:div.element-set-title (:name menu)] [:div.element-set-content ;; SLIDEBAR FOR ROTATION AND OPACITY - [:span "Size"] + [:span (tr "ds.size")] [:div.row-flex [:div.input-element.pixels - [:input.input-text {:placeholder "Width" + [:input.input-text {:placeholder (tr "ds.width") :type "number" :min "0" :value (precision-or-0 (:width size) 2) @@ -45,13 +45,13 @@ (if (:proportion-lock shape) i/lock i/unlock)] [:div.input-element.pixels - [:input.input-text {:placeholder "Height" + [:input.input-text {:placeholder (tr "ds.height") :type "number" :min "0" :value (precision-or-0 (:height size) 2) :on-change #(on-size-change % shape :height)}]]] - [:span "Position"] + [:span (tr "ds.position")] [:div.row-flex [:div.input-element.pixels [:input.input-text {:placeholder "x" @@ -64,7 +64,7 @@ :value (precision-or-0 (:y1 shape 0) 2) :on-change #(on-position-change % shape :y)}]]] - [:span "Rotation"] + [:span (tr "ds.rotation")] [:div.row-flex [:input.slidebar {:type "range" :min 0 diff --git a/frontend/src/uxbox/main/ui/workspace/sidebar/options/stroke.cljs b/frontend/src/uxbox/main/ui/workspace/sidebar/options/stroke.cljs index 410422631..d957dd15b 100644 --- a/frontend/src/uxbox/main/ui/workspace/sidebar/options/stroke.cljs +++ b/frontend/src/uxbox/main/ui/workspace/sidebar/options/stroke.cljs @@ -39,25 +39,25 @@ [:div.element-set [:div.element-set-title (:name menu)] [:div.element-set-content - [:span "Style"] + [:span (tr "ds.style")] [:div.row-flex - [:select#style.input-select {:placeholder "Style" + [:select#style.input-select {:placeholder (tr "ds.style") :value (pr-str (:stroke-style shape)) :on-change on-stroke-style-change} - [:option {:value ":none"} "None"] - [:option {:value ":solid"} "Solid"] - [:option {:value ":dotted"} "Dotted"] - [:option {:value ":dashed"} "Dashed"] - [:option {:value ":mixed"} "Mixed"]] + [:option {:value ":none"} (tr "ds.none")] + [:option {:value ":solid"} (tr "ds.solid")] + [:option {:value ":dotted"} (tr "ds.dotted")] + [:option {:value ":dashed"} (tr "ds.dashed")] + [:option {:value ":mixed"} (tr "ds.mixed")]] [:div.input-element.pixels [:input.input-text - {:placeholder "Width" + {:placeholder (tr "ds.width") :type "number" :min "0" :value (precision-or-0 (:stroke-width shape 1) 2) :on-change on-width-change}]]] - [:span "Color"] + [:span (tr "ds.color")] [:div.row-flex.color-data [:span.color-th {:style {:background-color (:stroke-color shape)} @@ -67,7 +67,7 @@ {:on-change on-stroke-color-change :value (:stroke-color shape "")}]]] - [:span "Radius"] + [:span (tr "ds.radius")] [:div.row-flex [:div.input-element.pixels [:input.input-text @@ -86,7 +86,7 @@ :value (precision-or-0 (:ry shape 0) 2) :on-change on-border-change-ry}]]] - [:span "Opacity"] + [:span (tr "ds.opacity")] [:div.row-flex [:input.slidebar {:type "range" diff --git a/frontend/src/uxbox/main/ui/workspace/sidebar/options/text.cljs b/frontend/src/uxbox/main/ui/workspace/sidebar/options/text.cljs index 962b96f56..c4aa179b0 100644 --- a/frontend/src/uxbox/main/ui/workspace/sidebar/options/text.cljs +++ b/frontend/src/uxbox/main/ui/workspace/sidebar/options/text.cljs @@ -75,7 +75,7 @@ [:div.element-set-title (:name menu)] [:div.element-set-content - [:span "Font family"] + [:span (tr "ds.font-family")] [:div.row-flex [:select.input-select {:value (pr-str font-family) :on-change on-font-family-change} @@ -83,7 +83,7 @@ [:option {:value (pr-str (:id font)) :key (:id font)} (:name font)])]] - [:span "Size and Weight"] + [:span (tr "ds.size-weight")] [:div.row-flex [:div.editable-select [:select.input-select @@ -102,7 +102,7 @@ [:option {:value "48"} "48"] [:option {:value "72"} "72"]] [:input.input-text - {:placeholder "Font Size" + {:placeholder (tr "ds.font-size") :type "number" :min "0" :max "200" @@ -115,10 +115,10 @@ [:option {:value (pr-str data) :key (:name style)} (:name style)])]] - [:span "Line height and Letter spacing"] + [:span (tr "ds.line-height-letter-spacing")] [:div.row-flex [:input.input-text - {:placeholder "Line height" + {:placeholder (tr "ds.line-height") :type "number" :step "0.1" :min "0" @@ -126,7 +126,7 @@ :value (precision-or-0 line-height 2) :on-change on-font-line-height-change}] [:input.input-text - {:placeholder "Letter spacing" + {:placeholder (tr "ds.letter-spacing") :type "number" :step "0.1" :min "0" @@ -134,7 +134,7 @@ :value (precision-or-0 letter-spacing 2) :on-change on-font-letter-spacing-change}]] - [:span "Text align"] + [:span (tr "ds.text-align")] [:div.row-flex.align-icons [:span {:class (when (= text-align "left") "current") :on-click #(on-font-align-change % "left")} diff --git a/frontend/src/uxbox/main/ui/workspace/sidebar/sitemap.cljs b/frontend/src/uxbox/main/ui/workspace/sidebar/sitemap.cljs index 5b73e6b62..a8e8ea3b0 100644 --- a/frontend/src/uxbox/main/ui/workspace/sidebar/sitemap.cljs +++ b/frontend/src/uxbox/main/ui/workspace/sidebar/sitemap.cljs @@ -101,7 +101,7 @@ [:div.sitemap.tool-window [:div.tool-window-bar [:div.tool-window-icon i/project-tree] - [:span (tr "ds.sitemap")] + [:span (tr "ds.settings.sitemap")] [:div.tool-window-close {:on-click close} i/close]] [:div.tool-window-content [:div.project-title diff --git a/frontend/src/uxbox/main/ui/workspace/sidebar/sitemap_forms.cljs b/frontend/src/uxbox/main/ui/workspace/sidebar/sitemap_forms.cljs index 15c16e69e..5919e86c0 100644 --- a/frontend/src/uxbox/main/ui/workspace/sidebar/sitemap_forms.cljs +++ b/frontend/src/uxbox/main/ui/workspace/sidebar/sitemap_forms.cljs @@ -63,7 +63,7 @@ (let [{:keys [data] :as form} (fm/use-form ::page-form #(initial-data page))] [:form {:on-submit #(on-submit % form)} [:input.input-text - {:placeholder "Page name" + {:placeholder (tr "ds.page.placeholder") :type "text" :name "name" :class (fm/error-class form :name) @@ -73,9 +73,9 @@ :auto-focus true}] [:div.project-size [:div.input-element.pixels - [:span "Width"] + [:span (tr "ds.width")] [:input#project-witdh.input-text - {:placeholder "Width" + {:placeholder (tr "ds.width") :name "width" :type "number" :min 0 @@ -86,9 +86,9 @@ :value (:width data)}]] [:a.toggle-layout {:on-click #(swap-size % form)} i/toggle] [:div.input-element.pixels - [:span "Height"] + [:span (tr "ds.height")] [:input#project-height.input-text - {:placeholder "Height" + {:placeholder (tr "ds.height") :name "height" :type "number" :min 0 @@ -98,7 +98,7 @@ :on-change (fm/on-input-change form :height) :value (:height data)}]]] [:input.btn-primary - {:value "Go go go!" + {:value (tr "ds.go") :type "submit" :class (when-not (:valid form) "btn-disabled") :disabled (not (:valid form))}]])) @@ -107,8 +107,8 @@ [{:keys [page] :as props}] [:div.lightbox-body (if (nil? (:id page)) - [:h3 "New page"] - [:h3 "Edit page"]) + [:h3 (tr "ds.page.new")] + [:h3 (tr "ds.page.edit")]) [:& page-form {:page page}] [:a.close {:on-click modal/hide!} i/close]]) diff --git a/frontend/src/uxbox/util/messages.cljs b/frontend/src/uxbox/util/messages.cljs index 184725616..ff2611f5f 100644 --- a/frontend/src/uxbox/util/messages.cljs +++ b/frontend/src/uxbox/util/messages.cljs @@ -15,7 +15,8 @@ [uxbox.builtins.icons :as i] [uxbox.util.data :refer [classnames]] [uxbox.util.dom :as dom] - [uxbox.util.timers :as ts])) + [uxbox.util.timers :as ts] + [uxbox.util.i18n :refer [tr]])) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; Data Events @@ -131,10 +132,10 @@ [:div.message-action [:a.btn-transparent.btn-small {:on-click accept} - "Accept"] + (tr "ds.accept")] [:a.btn-transparent.btn-small {:on-click cancel} - "Cancel"]]]]))) + (tr "ds.cancel")]]]]))) ;; --- Main Component (entry point)