mirror of
https://github.com/penpot/penpot.git
synced 2025-03-09 22:31:50 -05:00
Merge remote-tracking branch 'origin/staging' into develop
This commit is contained in:
commit
f507722f43
9 changed files with 2576 additions and 13 deletions
|
@ -33,7 +33,7 @@ paths.dist = "./target/dist/";
|
||||||
// Templates
|
// Templates
|
||||||
|
|
||||||
function readLocales() {
|
function readLocales() {
|
||||||
const langs = ["ca", "el", "en", "es", "fr", "tr", "ru", "zh_cn"];
|
const langs = ["ca", "de", "el", "en", "es", "fr", "tr", "ru", "zh_cn"];
|
||||||
const result = {};
|
const result = {};
|
||||||
|
|
||||||
for (let lang of langs) {
|
for (let lang of langs) {
|
||||||
|
|
BIN
frontend/resources/images/features/assets-organiz.gif
Normal file
BIN
frontend/resources/images/features/assets-organiz.gif
Normal file
Binary file not shown.
After Width: | Height: | Size: 1,009 KiB |
BIN
frontend/resources/images/features/path-tool.gif
Normal file
BIN
frontend/resources/images/features/path-tool.gif
Normal file
Binary file not shown.
After Width: | Height: | Size: 833 KiB |
BIN
frontend/resources/images/features/smart-inputs.gif
Normal file
BIN
frontend/resources/images/features/smart-inputs.gif
Normal file
Binary file not shown.
After Width: | Height: | Size: 129 KiB |
73
frontend/scripts/convert-to-po.js
Normal file
73
frontend/scripts/convert-to-po.js
Normal file
|
@ -0,0 +1,73 @@
|
||||||
|
const l = require("lodash");
|
||||||
|
const fs = require("fs");
|
||||||
|
const gt = require("gettext-parser");
|
||||||
|
|
||||||
|
function generateLang(data, lang) {
|
||||||
|
let output = {};
|
||||||
|
|
||||||
|
for (let key of Object.keys(data)) {
|
||||||
|
const trObj = data[key];
|
||||||
|
const trRef = trObj["used-in"];
|
||||||
|
|
||||||
|
let content = trObj.translations[lang];
|
||||||
|
let comments = {};
|
||||||
|
|
||||||
|
if (l.isNil(content)) {
|
||||||
|
continue;
|
||||||
|
} else {
|
||||||
|
let result = {
|
||||||
|
msgid: key,
|
||||||
|
comments: {}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (l.isArray(trRef)) {
|
||||||
|
result.comments.reference = trRef.join(", ");
|
||||||
|
}
|
||||||
|
|
||||||
|
if (trObj.permanent) {
|
||||||
|
result.comments.flag = "permanent";
|
||||||
|
}
|
||||||
|
|
||||||
|
if (l.isArray(content)) {
|
||||||
|
result.msgid_plural = key;
|
||||||
|
result.msgstr = content;
|
||||||
|
} else if (l.isString(content)) {
|
||||||
|
result.msgstr = [content];
|
||||||
|
} else {
|
||||||
|
throw new Error("unexpected");
|
||||||
|
}
|
||||||
|
|
||||||
|
output[key] = result;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (lang.includes("_")) {
|
||||||
|
const [a, b] = lang.split("_");
|
||||||
|
lang = `${a}_${b.toUpperCase()}`;
|
||||||
|
}
|
||||||
|
|
||||||
|
const poData = {
|
||||||
|
charset: "utf-8",
|
||||||
|
headers: {
|
||||||
|
"Language": lang,
|
||||||
|
"MIME-Version": "1.0",
|
||||||
|
"Content-Type": "text/plain; charset=UTF-8",
|
||||||
|
"Content-Transfer-Encoding": "8bit",
|
||||||
|
"Plural-Forms": "nplurals=2; plural=(n != 1);"
|
||||||
|
},
|
||||||
|
"translations": {
|
||||||
|
"": output
|
||||||
|
}
|
||||||
|
}
|
||||||
|
const buff = gt.po.compile(poData, {sort: true});
|
||||||
|
fs.writeFileSync(`./translations/${lang}.po`, buff);
|
||||||
|
}
|
||||||
|
|
||||||
|
const content = fs.readFileSync("./resources/locales.json");
|
||||||
|
const data = JSON.parse(content);
|
||||||
|
const langs = ["de"];
|
||||||
|
|
||||||
|
for (let lang of langs) {
|
||||||
|
generateLang(data, lang);
|
||||||
|
}
|
||||||
|
|
|
@ -39,7 +39,7 @@
|
||||||
(make-corner nil))
|
(make-corner nil))
|
||||||
([point]
|
([point]
|
||||||
(process-path-tool
|
(process-path-tool
|
||||||
#{point}
|
(when point #{point})
|
||||||
(fn [content points]
|
(fn [content points]
|
||||||
(reduce upt/make-corner-point content points)))))
|
(reduce upt/make-corner-point content points)))))
|
||||||
|
|
||||||
|
@ -48,7 +48,7 @@
|
||||||
(make-curve nil))
|
(make-curve nil))
|
||||||
([point]
|
([point]
|
||||||
(process-path-tool
|
(process-path-tool
|
||||||
#{point}
|
(when point #{point})
|
||||||
(fn [content points]
|
(fn [content points]
|
||||||
(reduce upt/make-curve-point content points)))))
|
(reduce upt/make-curve-point content points)))))
|
||||||
|
|
||||||
|
|
|
@ -141,7 +141,10 @@
|
||||||
:dashboard-font-providers
|
:dashboard-font-providers
|
||||||
:dashboard-team-members
|
:dashboard-team-members
|
||||||
:dashboard-team-settings)
|
:dashboard-team-settings)
|
||||||
[:& dashboard {:route route}]
|
[:*
|
||||||
|
#_[:div.modal-wrapper
|
||||||
|
[:& app.main.ui.onboarding/release-notes-modal {:version "1.5"}]]
|
||||||
|
[:& dashboard {:route route}]]
|
||||||
|
|
||||||
:viewer
|
:viewer
|
||||||
(let [index (get-in route [:query-params :index])
|
(let [index (get-in route [:query-params :index])
|
||||||
|
|
|
@ -238,9 +238,7 @@
|
||||||
|
|
||||||
(defmulti render-release-notes :version)
|
(defmulti render-release-notes :version)
|
||||||
|
|
||||||
(mf/defc release-notes-modal
|
(mf/defc release-notes
|
||||||
{::mf/register modal/components
|
|
||||||
::mf/register-as :release-notes}
|
|
||||||
[{:keys [version] :as props}]
|
[{:keys [version] :as props}]
|
||||||
(let [slide (mf/use-state :start)
|
(let [slide (mf/use-state :start)
|
||||||
klass (mf/use-state "fadeInDown")
|
klass (mf/use-state "fadeInDown")
|
||||||
|
@ -285,16 +283,19 @@
|
||||||
:slide slide
|
:slide slide
|
||||||
:version version})))
|
:version version})))
|
||||||
|
|
||||||
;; This case should never happen; but if happen just hide inmediatelly
|
(mf/defc release-notes-modal
|
||||||
;; the modal.
|
{::mf/wrap-props false
|
||||||
(defmethod render-release-notes :default
|
::mf/register modal/components
|
||||||
|
::mf/register-as :release-notes}
|
||||||
[props]
|
[props]
|
||||||
(tm/schedule 0 #(st/emit! (modal/hide)))
|
(let [versions (methods render-release-notes)
|
||||||
(mf/html [:span ""]))
|
version (obj/get props "version")]
|
||||||
|
(when (contains? versions version)
|
||||||
|
[:> release-notes props])))
|
||||||
|
|
||||||
(defmethod render-release-notes "0.0"
|
(defmethod render-release-notes "0.0"
|
||||||
[params]
|
[params]
|
||||||
(render-release-notes (assoc params :version "1.4")))
|
(render-release-notes (assoc params :version "1.5")))
|
||||||
|
|
||||||
(defmethod render-release-notes "1.4"
|
(defmethod render-release-notes "1.4"
|
||||||
[{:keys [slide klass next finish navigate version]}]
|
[{:keys [slide klass next finish navigate version]}]
|
||||||
|
@ -393,3 +394,82 @@
|
||||||
{:slide @slide
|
{:slide @slide
|
||||||
:navigate navigate
|
:navigate navigate
|
||||||
:total 4}]]]]]])))
|
:total 4}]]]]]])))
|
||||||
|
|
||||||
|
(defmethod render-release-notes "1.5"
|
||||||
|
[{:keys [slide klass next finish navigate version]}]
|
||||||
|
(mf/html
|
||||||
|
(case @slide
|
||||||
|
:start
|
||||||
|
[:div.modal-overlay
|
||||||
|
[:div.animated {:class @klass}
|
||||||
|
[:div.modal-container.onboarding.feature
|
||||||
|
[:div.modal-left
|
||||||
|
[:img {:src "images/login-on.jpg" :border "0" :alt "What's new Alpha release 1.5.0"}]]
|
||||||
|
[:div.modal-right
|
||||||
|
[:div.modal-title
|
||||||
|
[:h2 "What's new?"]]
|
||||||
|
[:span.release "Alpha version " version]
|
||||||
|
[:div.modal-content
|
||||||
|
[:p "Penpot continues growing with new features that improve performance, user experience and visual design."]
|
||||||
|
[:p "We are happy to show you a sneak peak of the most important stuff that the Alpha 1.5.0 version brings."]]
|
||||||
|
[:div.modal-navigation
|
||||||
|
[:button.btn-secondary {:on-click next} "Continue"]]]
|
||||||
|
[:img.deco {:src "images/deco-left.png" :border "0"}]
|
||||||
|
[:img.deco.right {:src "images/deco-right.png" :border "0"}]]]]
|
||||||
|
|
||||||
|
0
|
||||||
|
[:div.modal-overlay
|
||||||
|
[:div.animated {:class @klass}
|
||||||
|
[:div.modal-container.onboarding.feature
|
||||||
|
[:div.modal-left
|
||||||
|
[:img {:src "images/features/path-tool.gif" :border "0" :alt "New path tool"}]]
|
||||||
|
[:div.modal-right
|
||||||
|
[:div.modal-title
|
||||||
|
[:h2 "New features for paths"]]
|
||||||
|
[:div.modal-content
|
||||||
|
[:p "Now you can select snap points on edition, add/remove nodes, merge/join/split nodes."]
|
||||||
|
[:p "The usability and performance of the paths tool has been improved too."]]
|
||||||
|
[:div.modal-navigation
|
||||||
|
[:button.btn-secondary {:on-click next} "Continue"]
|
||||||
|
[:& navigation-bullets
|
||||||
|
{:slide @slide
|
||||||
|
:navigate navigate
|
||||||
|
:total 3}]]]]]]
|
||||||
|
|
||||||
|
1
|
||||||
|
[:div.modal-overlay
|
||||||
|
[:div.animated {:class @klass}
|
||||||
|
[:div.modal-container.onboarding.feature
|
||||||
|
[:div.modal-left
|
||||||
|
[:img {:src "images/features/assets-organiz.gif" :border "0" :alt "Manage libraries"}]]
|
||||||
|
[:div.modal-right
|
||||||
|
[:div.modal-title
|
||||||
|
[:h2 "New libraries organization"]]
|
||||||
|
[:div.modal-content
|
||||||
|
[:p "Penpot now allows to group, multiselect and bulk edition of assets (components and graphics)."]
|
||||||
|
[:p "It is time to have all the libraries well organized and work more efficiently."]]
|
||||||
|
[:div.modal-navigation
|
||||||
|
[:button.btn-secondary {:on-click next} "Continue"]
|
||||||
|
[:& navigation-bullets
|
||||||
|
{:slide @slide
|
||||||
|
:navigate navigate
|
||||||
|
:total 3}]]]]]]
|
||||||
|
|
||||||
|
2
|
||||||
|
[:div.modal-overlay
|
||||||
|
[:div.animated {:class @klass}
|
||||||
|
[:div.modal-container.onboarding.feature
|
||||||
|
[:div.modal-left
|
||||||
|
[:img {:src "images/features/smart-inputs.gif" :border "0" :alt "Smart inputs"}]]
|
||||||
|
[:div.modal-right
|
||||||
|
[:div.modal-title
|
||||||
|
[:h2 "Smart inputs"]]
|
||||||
|
[:div.modal-content
|
||||||
|
[:p "Now you can have more precision in your designs with basic math operations in inputs."]
|
||||||
|
[:p "It's easier to specify by how much you want to change a value and work with measures and distances."]]
|
||||||
|
[:div.modal-navigation
|
||||||
|
[:button.btn-secondary {:on-click finish} "Start!"]
|
||||||
|
[:& navigation-bullets
|
||||||
|
{:slide @slide
|
||||||
|
:navigate navigate
|
||||||
|
:total 3}]]]]]])))
|
||||||
|
|
2407
frontend/translations/de.po
Normal file
2407
frontend/translations/de.po
Normal file
File diff suppressed because it is too large
Load diff
Loading…
Add table
Reference in a new issue