diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 4b3e8fe31..32df75dcf 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -103,6 +103,9 @@ jobs: - name: Carve lint for unused vars run: scripts/carve.clj + - name: Lint invalid dictionary keys + run: bb lang:invalid-dicts + e2e-test: runs-on: ubuntu-latest diff --git a/bb.edn b/bb.edn new file mode 100644 index 000000000..732a6f7ed --- /dev/null +++ b/bb.edn @@ -0,0 +1,27 @@ +{:paths ["scripts/src"] + :tasks + {dev:watch + logseq.tasks.dev/watch + + dev:open-dev-electron-app + logseq.tasks.dev/open-dev-electron-app + + -dev:electron-start + {:depends [dev:watch dev:open-dev-electron-app]} + + dev:electron-start + {:doc "Start electron dev by watching assets and opening dev app" + ;; Parallel execution - https://book.babashka.org/#parallel + :task (run '-dev:electron-start {:parallel true})} + + lang:list + logseq.tasks.lang/list-langs + + lang:missing + logseq.tasks.lang/list-missing + + lang:duplicates + logseq.tasks.lang/list-duplicates + + lang:invalid-dicts + logseq.tasks.lang/invalid-dicts}} diff --git a/docs/contributing-to-translations.md b/docs/contributing-to-translations.md new file mode 100644 index 000000000..c12b4f9f9 --- /dev/null +++ b/docs/contributing-to-translations.md @@ -0,0 +1,94 @@ +## Intro + +Thanks for your interest in improving our translations! This document provides +details on how to contribute to a translation. This document assumes you can run +commandline tools, know how to switch languages within Logseq and basic +Clojurescript familiarity. We use [tongue](https://github.com/tonsky/tongue), a +most excellent library, for our translations. + +## Setup + +In order to run the commands in this doc, you will need to install +[Babashka](https://github.com/babashka/babashka#installation). + +## Where to Contribute + +Language translations are in two files, +[frontend/dicts.cljs](https://github.com/logseq/logseq/blob/feature/lang-tasks-and-ci/src/main/frontend/dicts.cljs) +and +[shortcut/dict.cljs](https://github.com/logseq/logseq/blob/feature/lang-tasks-and-ci/src/main/frontend/modules/shortcut/dict.cljs). +When translating `shortcut/dict.cljs` you will want to refer to +https://github.com/logseq/logseq/blob/feature/lang-tasks-and-ci/src/main/frontend/modules/shortcut/config.cljs +for the English equivalent. + +## Language Overview + +First, let's get an overview of Logseq's languages and how many translations your +language has compared to others: + +```sh +$ bb lang:list + +| :locale | :percent-translated | :translation-count | :language | +|----------+---------------------+--------------------+------------------------| +| :en | 100 | 383 | English | +| :nb-NO | 99 | 381 | Norsk (bokmål) | +| :zh-CN | 96 | 367 | 简体中文 | +| :ru | 94 | 359 | Русский | +| :pt-BR | 83 | 319 | Português (Brasileiro) | +| :pt-PT | 81 | 310 | Português (Europeu) | +| :es | 75 | 286 | Español | +| :zh-Hant | 65 | 250 | 繁體中文 | +| :af | 60 | 230 | Afrikaans | +| :de | 56 | 215 | Deutsch | +| :fr | 45 | 172 | Français | +Total: 11 +``` + +_Note_: This is only showing `frontend/dicts.cljs` translations for now. + +Let's try to get your language translated as close to 100% as you can! + +## Edit a Language + +To see what translations are missing: + +``` +$ bb lang:missing +| :translation-key | :string-to-translate | +|----------------------------------------+-------------------------------------------------------| +| :cards-view | View cards | +| :delete | Delete | +| :export-graph | Export graph | +| :export-page | Export page | +| :graph-search | Search graph | +| :open-new-window | New window | +... +``` + +_Note_: This is only showing `frontend/dicts.cljs` translations for now. + +Now, add keys for your language, save and rerun the above command. Over time +you're hoping to have this list drop to zero. + +There is a lot to translate and sometimes we make mistakes. For example, we may leave a string untranslated. To see what translation keys are still left in English: + +``` +$ bb lang:duplicates +Keys with duplicate values found: + +| :translation-key | :duplicate-value | +|-----------------------------------+------------------| +| :general | General | +| :logseq | Logseq | +| :no | No | +``` + +Sometimes, we typo the translation key. If that happens, the github CI job will +detect this error and helpfully show you what was typoed. + +## Add a Language + +To add a new language, add an entry to `frontend.dicts/languages`. Then add a +new locale keyword to `frontend.dicts/dicts` and to +`frontend.modules.shortcut.dict/dict` and start translating as described above. diff --git a/scripts/src/logseq/rewrite_clj.clj b/scripts/src/logseq/rewrite_clj.clj new file mode 100644 index 000000000..a10f90428 --- /dev/null +++ b/scripts/src/logseq/rewrite_clj.clj @@ -0,0 +1,15 @@ +(ns logseq.rewrite-clj + "Rewrite-clj fns" + (:require [rewrite-clj.zip :as z])) + +(defn- find-symbol-first-right-sexpr + [zloc sym] + ;; Returns first symbol found + (-> (z/find-value zloc z/next sym) + z/right + z/sexpr)) + +(defn var-sexp + [[string-var file]] + (let [zloc (z/of-string (slurp file))] + (find-symbol-first-right-sexpr zloc (symbol string-var)))) diff --git a/scripts/src/logseq/tasks/dev.clj b/scripts/src/logseq/tasks/dev.clj new file mode 100644 index 000000000..d40135ee3 --- /dev/null +++ b/scripts/src/logseq/tasks/dev.clj @@ -0,0 +1,26 @@ +(ns logseq.tasks.dev + "Tasks for development" + (:require [babashka.fs :as fs] + [babashka.tasks :refer [shell]])) + +(defn watch + "Watches environment to reload cljs, css and other assets" + [] + (shell "yarn watch")) + +(defn- file-modified-later-than? + [file comparison-instant] + (pos? (.compareTo (fs/file-time->instant (fs/last-modified-time file)) + comparison-instant))) + +;; Works whether yarn clean has been run before or not +(defn open-dev-electron-app + "Opens dev-electron-app when watch process has built main.js" + [] + (let [start-time (java.time.Instant/now)] + (dotimes [_n 1000] + (if (and (fs/exists? "static/js/main.js") + (file-modified-later-than? "static/js/main.js" start-time)) + (shell "yarn dev-electron-app") + (println "Waiting for app to build...")) + (Thread/sleep 1000)))) diff --git a/scripts/src/logseq/tasks/lang.clj b/scripts/src/logseq/tasks/lang.clj new file mode 100644 index 000000000..7995041a1 --- /dev/null +++ b/scripts/src/logseq/tasks/lang.clj @@ -0,0 +1,100 @@ +(ns logseq.tasks.lang + "Tasks related to language translations" + (:require [logseq.rewrite-clj :as rewrite-clj] + [clojure.set :as set] + [logseq.tasks.util :as task-util])) + +(defn- get-dicts + [] + (dissoc (rewrite-clj/var-sexp ["dicts" "src/main/frontend/dicts.cljs"]) + :tongue/fallback)) + +(defn- get-languages + [] + (rewrite-clj/var-sexp ["languages" "src/main/frontend/dicts.cljs"])) + +(defn list-langs + "List translated langagues with their number of translations" + [] + (let [dicts (get-dicts) + en-count (count (dicts :en)) + langs (into {} (map (juxt :value :label) (get-languages)))] + (->> dicts + (map (fn [[locale dicts]] + [locale + (Math/round (* 100.0 (/ (count dicts) en-count))) + (count dicts) + (langs locale)])) + (sort-by #(nth % 2) >) + (map #(zipmap [:locale :percent-translated :translation-count :language] %)) + task-util/print-table))) + +(defn- shorten [s length] + (if (< (count s) length) + s + (str (subs s 0 length) "..."))) + +(defn list-missing + "List missing translations for a given language" + [& args] + (let [lang (or (keyword (first args)) + (task-util/print-usage "LOCALE")) + dicts (get-dicts) + translated-language (dicts lang) + _ (when-not translated-language + (println "Language" lang "does not have an entry in dicts.cljs") + (System/exit 1)) + missing (set/difference (set (keys (dicts :en))) + (set (keys translated-language)))] + (if (zero? (count missing)) + (println "Language" lang "is fully translated!") + (->> (select-keys (dicts :en) missing) + (map (fn [[k v]] + {:translation-key k + ;; Shorten values + :string-to-translate (shorten v 50)})) + (sort-by :translation-key) + task-util/print-table)))) + +(defn invalid-dicts + "Lists translation keys that don't exist in English" + [] + (let [dicts (get-dicts) + ;; For now defined as :en but clj-kondo analysis could be more thorough + valid-keys (set (keys (dicts :en))) + invalid-dicts + (->> (dissoc dicts :en) + (mapcat (fn [[lang get-dicts]] + (map + #(hash-map :language lang :invalid-key %) + (set/difference (set (keys get-dicts)) + valid-keys)))))] + (if (empty? invalid-dicts) + (println "All dicts have valid keys!") + (do + (println "Invalid dict keys found:") + (task-util/print-table invalid-dicts) + (System/exit 1))))) + +(defn list-duplicates + "Lists translations that are the same as the one in English" + [& args] + (let [dicts (get-dicts) + en-dicts (dicts :en) + lang (or (keyword (first args)) + (task-util/print-usage "LOCALE")) + lang-dicts (dicts lang) + invalid-dicts + (sort-by + :translation-key + (keep + #(when (= (en-dicts %) (lang-dicts %)) + {:translation-key % + :duplicate-value (shorten (lang-dicts %) 70)}) + (keys lang-dicts)))] + (if (empty? invalid-dicts) + (println "No duplicated keys found!") + (do + (println "Keys with duplicate values found:") + (task-util/print-table invalid-dicts) + (System/exit 1))))) diff --git a/scripts/src/logseq/tasks/util.clj b/scripts/src/logseq/tasks/util.clj new file mode 100644 index 000000000..720af8a4a --- /dev/null +++ b/scripts/src/logseq/tasks/util.clj @@ -0,0 +1,15 @@ +(ns logseq.tasks.util + "Utils for tasks" + (:require [clojure.pprint :as pprint])) + +(defn print-usage [arg-str] + (println (format + "Usage: bb %s %s" + (System/getProperty "babashka.task") + arg-str)) + (System/exit 1)) + +(defn print-table + [rows] + (pprint/print-table rows) + (println "Total:" (count rows))) diff --git a/src/main/frontend/components/header.cljs b/src/main/frontend/components/header.cljs index 08b613db4..7deb28856 100644 --- a/src/main/frontend/components/header.cljs +++ b/src/main/frontend/components/header.cljs @@ -42,9 +42,7 @@ (fn [{:keys [toggle-fn]}] [:a.button.text-sm.font-medium.block {:on-click toggle-fn} [:span (t :login)]]) - (let [list [;; {:title (t :login-google) - ;; :url (str config/website "/login/google")} - {:title (t :login-github) + (let [list [{:title (t :login-github) :url (str config/website "/login/github")}]] (mapv (fn [{:keys [title url]}] diff --git a/src/main/frontend/dicts.cljs b/src/main/frontend/dicts.cljs index 9a54cfc6b..54311e5e4 100644 --- a/src/main/frontend/dicts.cljs +++ b/src/main/frontend/dicts.cljs @@ -329,7 +329,6 @@ :parsing-files "Parsing files" :loading-files "Loading files" :login-github "Login with GitHub" - ;; :login-google "Login with Google" :login "Login" :go-to "Go to " :or "or" @@ -432,6 +431,7 @@ :help/fold-unfold "Blöcke ein-/ausklappen (wenn nicht im Bearbeitungsmodus)" :help/markdown-syntax "Markdown-Syntax" :help/org-mode-syntax "Org-Mode-Syntax" + :new-graph "Add new graph" :bold "Fett" :italics "Kursiv" :html-link "Html-Link" @@ -603,7 +603,6 @@ :parsing-files "Dateien analysieren" :loading-files "Dateien laden" :login-github "Einloggen mit GitHub" - :login-google "Einloggen mit Google" :login "Einloggen" :go-to "Gehe zu " :or "oder" @@ -617,14 +616,6 @@ :open-a-directory "Öffne ein lokales Verzeichnis"} :fr {:help/about "A propos de Logseq" - :on-boarding/demo-graph "This is a demo graph, changes will not be saved until you open a local folder." - :on-boarding/add-graph "Add a graph" - :on-boarding/open-local-dir "Open a local directory" - :on-boarding/new-graph-desc-1 "Logseq supports both Markdown and Org-mode. You can open an existing directory or create a new one on your device, a directory is also known simply as a folder. Your data will be stored only on this device." - :on-boarding/new-graph-desc-2 "After you have opened your directory, it will create three folders in that directory:" - :on-boarding/new-graph-desc-3 "/journals - store your journal pages" - :on-boarding/new-graph-desc-4 "/pages - store the other pages" - :on-boarding/new-graph-desc-5 "/logseq - store configuration, custom.css, and some metadata." :help/bug "Signaler une anomalie" :help/feature "Demander une fonctionnalité" :help/changelog "Journal des modifications" @@ -641,8 +632,6 @@ :help/reference-autocomplete "Autocomplétion des références à une Page" :help/block-reference "Référence à un Bloc" :help/key-commands "Key Commands" - :help/working-with-lists " (working with lists)" - :help/select-nfs-browser "Please use another browser (like latest chrome) which support NFS features to open local directory." :undo "Annuler" :redo "Redo" :general "Général" @@ -665,9 +654,9 @@ :right-side-bar/block-ref "Référence des blocs" :right-side-bar/journals "Journals" :right-side-bar/graph-view "Graph view" - :right-side-bar/all-pages "All pages" + :right-side-bar/all-pages "Toutes les pages" :right-side-bar/flashcards "Flashcards" - :right-side-bar/new-page "New page" + :right-side-bar/new-page "Nouvelle page" :git/set-access-token "Définir un jeton d'accès personnel GitHub" :git/token-is-encrypted "Le jeton sera chiffré et gardé dans le stockage local du navigateur (local storage)" :git/token-server "Le serveur ne le stockera jamais" @@ -714,7 +703,6 @@ :page/make-private "Rendre la page privée" :page/delete "Supprimer la page (supprime le fichier)" :page/publish "Publier cette page sur Logseq" - :page/cancel-publishing "Cancel publishing on Logseq" :page/publish-as-slide "Publier cette page en présentation sur Logseq" :page/unpublish "Dépublier cette page de Logseq" :page/show-journals "Afficher le Journal" @@ -724,13 +712,6 @@ :page/last-modified "Dernières modifications à" :page/new-title "Quel est le nouveau titre de la page ?" :publishing/pages "Pages" - :publishing/page-name "Page name" - :publishing/current-project "Current Project" - :publishing/delete-from-logseq "Delete From Logseq Server" - :publishing/edit "Edit" - :publishing/save "Save" - :publishing/cancel "Cancel" - :publishing/delete "Delete" :journal/multiple-files-with-different-formats "Il semble que vous avez plusieurs fichier de journal (sous différents formats) pour le même mois, veuillez ne conserver qu'un fichier par mois." :journal/go-to "Voir les fichiers" :file/name "Nom de fichier" @@ -761,16 +742,12 @@ :content/copy-as-json "Copier au format JSON" :content/click-to-edit "Cliquer pour éditer" :settings-page/edit-config-edn "Editer config.edn (pour le repo actuel)" - :settings-page/git-desc "is used for pages version control, you can click the vertical three dots menu to check the page's history." - :settings-page/git-confirm "You need to restart the app after updating the Git settings." - :settings-page/git-switcher-label "Enable Git auto commit" - :settings-page/git-commit-delay "Git auto commit seconds" :settings-page/preferred-file-format "Format de fichier préféré" :settings-page/preferred-workflow "Workflow préféré" :settings-page/enable-timetracking "Activer le suivi de temps des tâches" :settings-page/dont-use-other-peoples-proxy-servers "N'utilisez pas de serveurs proxy que vous ne maîtrisez pas. Cela est très dangereux, vous pourriez vous faire voler vos jetons d'accès et vos notes. Logseq ne pourra être tenu responsable pour toute perte ou vol de données si vous utilisez des serveurs proxy. Vous pouvez également déployer Logseq vous-même, regardez " :settings-page/custom-cors-proxy-server "CORS personnalisé pour Serveur Proxy" - :settings-page/developer-mode "Developer mode" + :settings-page/developer-mode "Le mode développeur" :settings-page/enable-developer-mode "Activer le mode développeur" :settings-page/disable-developer-mode "Désactiver le mode développeur" :settings-page/developer-mode-desc "Le mode développeur aide les contributeurs et les développeurs d'extension à tester leur intégration avec Logseq." @@ -800,13 +777,11 @@ :join-community "Rejoindre la communauté" :discord-title "Notre groupe Discord !" :sign-out "Se déconnecter" - :help-shortcut-title "Click to check shortcuts and other tips" :loading "Chargement en cours" :cloning "Clonage en cours" :parsing-files "Analyse des fichiers" :loading-files "Chargement des fichiers" :login-github "S'authentifier avec GitHub" - :login-google "S'authentifier avec Google" :go-to "Aller à " :or "ou" :download "Télécharger" @@ -1130,7 +1105,6 @@ :parsing-files "正在解析文件" :loading-files "正在加载文件" :login-github "用 GitHub 登录" - :login-google "用 Google 登录" :login "登录" :go-to "转到" :or "或" @@ -1345,7 +1319,7 @@ :block/name "頁面名稱:" :page/last-modified "最後更改於" :page/new-title "請輸入新頁面的名字:" - :page/load-more-journals "載入更多" + :page/earlier "之前" :page/no-more-journals "沒有更多了" :publishing/pages "頁面" :publishing/page-name "頁面名稱" @@ -1434,7 +1408,6 @@ :parsing-files "正在解析文件" :loading-files "正在加載文件" :login-github "用 GitHub 登錄" - :login-google "用 Google 登錄" :go-to "轉到" :or "或" :download "下載" @@ -1671,7 +1644,6 @@ :parsing-files "Lêer ontleding" :loading-files "Laai lêers" :login-github "Aantekening deur GitHub" - :login-google "Aantekening deur Google" :go-to "Gaan na " :or "of" :download "Laai af" @@ -1724,14 +1696,7 @@ :on-boarding/cuekeeper-desc " - Sistema de GTD (lista de tareas) basado en el navegador" :on-boarding/sci-desc " - Intérprete compacto de Clojure" :on-boarding/isomorphic-git-desc " - ¡Una implementación de git en JavaScript puro para node y navegadores!" - :on-boarding/demo-graph "This is a demo graph, changes will not be saved until you open a local folder." - :on-boarding/add-graph "Add a graph" - :on-boarding/open-local-dir "Open a local directory" - :on-boarding/new-graph-desc-1 "Logseq supports both Markdown and Org-mode. You can open an existing directory or create a new one on your device, a directory is also known simply as a folder. Your data will be stored only on this device." - :on-boarding/new-graph-desc-2 "After you have opened your directory, it will create three folders in that directory:" - :on-boarding/new-graph-desc-3 "/journals - store your journal pages" - :on-boarding/new-graph-desc-4 "/pages - store the other pages" - :on-boarding/new-graph-desc-5 "/logseq - store configuration, custom.css, and some metadata." + :on-boarding/add-graph "Añade un grafo" :help/about "Acerca de Logseq" :help/roadmap "Hoja de ruta" :help/bug "Reportar un error" @@ -1776,11 +1741,11 @@ :right-side-bar/favorites "Favoritos" :right-side-bar/page-graph "Vista gráfica" :right-side-bar/block-ref "Referencia de bloque" - :right-side-bar/journals "Journals" + :right-side-bar/journals "Diarios" :right-side-bar/graph-view "Graph view" - :right-side-bar/all-pages "All pages" + :right-side-bar/all-pages "Lista de páginas" :right-side-bar/flashcards "Flashcards" - :right-side-bar/new-page "New page" + :right-side-bar/new-page "Nueva pagina" :git/set-access-token "Establece el token de acceso personal de GitHub" :git/token-is-encrypted "El token será encriptado y guardado en el almacenamiento local del navegador" :git/token-server "El servidor nunca lo guardará" @@ -1884,14 +1849,10 @@ :content/copy-as-json "Copiar como JSON" :content/click-to-edit "Clic para editar" :settings-page/edit-config-edn "Editar config.edn (para este repositorio)" - :settings-page/git-desc "is used for pages version control, you can click the vertical three dots menu to check the page's history." - :settings-page/git-confirm "You need to restart the app after updating the Git settings." - :settings-page/git-switcher-label "Enable Git auto commit" - :settings-page/git-commit-delay "Git auto commit seconds" :settings-page/show-brackets "Mostrar corchetes" :settings-page/disable-sentry "Enviar datos de uso y diagnósticos a Logseq" :settings-page/preferred-outdenting "Disminución lógica de sangría" - :settings-page/custom-d+ate-format "Formato de diario preferido" + :settings-page/custom-date-format "Formato de diario preferido" :settings-page/preferred-file-format "Formato de archivo preferido" :settings-page/preferred-workflow "Flujo de trabajo preferido" :settings-page/enable-timetracking "Habilitar rastreo de tiempo" @@ -1959,7 +1920,6 @@ :parsing-files "Analizando archivos" :loading-files "Cargando archivos" :login-github "Iniciar sesión con GitHub" - :login-google "Iniciar sesión con Google" :login "Iniciar sesión" :go-to "Ir a " :or "o" @@ -1977,7 +1937,7 @@ :help/shortcut-page-title "Atajos personalizados" - :select/prompt "Seleccione uno" + :select/default-prompt "Seleccione uno" :select.graph/prompt "Seleccione un grafo" :select.graph/empty-placeholder-description "No encontramos un grafo. Queries añadir otro?" :select.graph/add-graph "Si, añadame otro grafo"} @@ -2305,7 +2265,6 @@ :parsing-files "Analyserer filer" :loading-files "Laster filer" :login-github "Logg inn med GitHub" - ;; :login-google "Logg inn med Google" :login "Logg inn" :go-to "Gå til " :or "eller" @@ -2478,11 +2437,9 @@ :right-side-bar/favorites "Favoritos" :right-side-bar/page-graph "Grafo da página" :right-side-bar/block-ref "Referência de bloco" - :right-side-bar/journals "Journals" - :right-side-bar/graph-view "Graph view" - :right-side-bar/all-pages "All pages" + :right-side-bar/journals "Diários" :right-side-bar/flashcards "Flashcards" - :right-side-bar/new-page "New page" + :right-side-bar/new-page "Nova página" :git/set-access-token "Definir token de acesso pessoal do GitHub" :git/token-is-encrypted "O token será criptografado e guardado no armazenamento local do navegador" :git/token-server "Nunca será armazenado pelo servidor" @@ -2679,7 +2636,6 @@ :parsing-files "Analisando arquivos" :loading-files "Carregando arquivos" :login-github "Iniciar sessão com GitHub" - ;; :login-google "Iniciar sessão com Google" :login "Iniciar sessão" :go-to "Ir para " :or "ou" @@ -2751,14 +2707,7 @@ :on-boarding/cuekeeper-desc " - Sistema de GTD (lista de tarefas) baseado no navegador." :on-boarding/sci-desc " - Interpretador Compacto de Clojure" :on-boarding/isomorphic-git-desc " - Uma implementação de git em JavaScript puro para node e navegadores!" - :on-boarding/demo-graph "This is a demo graph, changes will not be saved until you open a local folder." - :on-boarding/add-graph "Add a graph" - :on-boarding/open-local-dir "Open a local directory" - :on-boarding/new-graph-desc-1 "Logseq supports both Markdown and Org-mode. You can open an existing directory or create a new one on your device, a directory is also known simply as a folder. Your data will be stored only on this device." - :on-boarding/new-graph-desc-2 "After you have opened your directory, it will create three folders in that directory:" - :on-boarding/new-graph-desc-3 "/journals - store your journal pages" - :on-boarding/new-graph-desc-4 "/pages - store the other pages" - :on-boarding/new-graph-desc-5 "/logseq - store configuration, custom.css, and some metadata." + :on-boarding/add-graph "Adicionar grafo" :help/start "Começar a usar" :help/about "Sobre o Logseq" :help/roadmap "Plano de implementação" @@ -2918,10 +2867,6 @@ :content/copy-as-json "Copiar como JSON" :content/click-to-edit "Clicar para editar" :settings-page/edit-config-edn "Editar config.edn para o repositório atual" - :settings-page/git-desc "is used for pages version control, you can click the vertical three dots menu to check the page's history." - :settings-page/git-confirm "You need to restart the app after updating the Git settings." - :settings-page/git-switcher-label "Enable Git auto commit" - :settings-page/git-commit-delay "Git auto commit seconds" :settings-page/show-brackets "Mostrar parênteses rectos" :settings-page/spell-checker "Verificador ortográfico" :settings-page/disable-sentry "Enviar dados de utilização e diagnósticos para Logseq" @@ -3007,7 +2952,6 @@ :parsing-files "A analisar ficheiros" :loading-files "A carregar ficheiros" :login-github "Iniciar sessão com GitHub" - ;; :login-google "Iniciar sessão com Google" :login "Iniciar sessão" :go-to "Ir para " :or "ou" @@ -3347,7 +3291,6 @@ :parsing-files "Парсинг файлов" :loading-files "Загрузка файлов" :login-github "Логин через GitHub" - ;; :login-google "Login with Google" :login "Логин" :go-to "Go to " :or "или"