From 4cd873fecb2df4ea06ea97108fe5c391bc280605 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Sat, 11 Mar 2023 17:57:56 +1100 Subject: [PATCH] docs: sync documents (#2443) Co-authored-by: misitebao --- website/i18n/fr/code.json | 8 + .../2021-09-27-v2-beta1-release-notes.mdx | 38 +- .../2021-11-08-v2-beta2-release-notes.mdx | 84 ++-- .../2022-02-22-v2-beta3-release-notes.mdx | 60 +-- .../2022-09-22-v2-release-notes.mdx | 66 +-- .../2023-01-17-v3-roadmap.mdx | 184 ++++++++ .../current/community/links.mdx | 1 + .../community/showcase/bulletinboard.mdx | 10 + .../current/community/showcase/emailit.mdx | 2 +- .../current/community/showcase/hiposter.mdx | 10 + .../community/showcase/modalfilemanager.mdx | 4 +- .../current/community/showcase/scriptbar.mdx | 2 +- .../current/community/showcase/warmine.mdx | 19 + .../current/community/templates.mdx | 1 + .../current/gettingstarted/installation.mdx | 2 +- .../guides/application-development.mdx | 56 +-- .../current/guides/dynamic-assets.mdx | 30 +- .../current/guides/frameless.mdx | 12 +- .../current/guides/frontend.mdx | 26 +- .../current/guides/ides.mdx | 16 +- .../current/guides/linux-distro-support.mdx | 38 +- .../current/guides/linux.mdx | 8 +- .../current/guides/local-development.mdx | 34 +- .../current/guides/mac-appstore.mdx | 74 ++-- .../current/guides/manual-builds.mdx | 40 +- .../current/guides/troubleshooting.mdx | 6 +- .../current/guides/windows-installer.mdx | 24 +- .../current/howdoesitwork.mdx | 84 ++-- .../current/reference/cli.mdx | 108 ++--- .../current/reference/menus.mdx | 114 ++--- .../current/reference/options.mdx | 417 ++++++++++-------- .../current/reference/project-config.mdx | 36 +- .../current/reference/runtime/clipboard.mdx | 23 + .../current/reference/runtime/dialog.mdx | 36 +- .../current/reference/runtime/events.mdx | 16 +- .../current/reference/runtime/intro.mdx | 19 +- .../current/reference/runtime/log.mdx | 4 +- .../current/reference/runtime/window.mdx | 2 +- ...ersion-v2.0.0.json => version-v2.3.0.json} | 4 +- ...ersion-v2.1.0.json => version-v2.3.1.json} | 4 +- ...ersion-v2.2.0.json => version-v2.4.0.json} | 4 +- .../changelog.mdx | 378 +++++++++------- .../community-guide.mdx | 9 +- .../credits.mdx | 408 ++++++++++------- .../fr/docusaurus-theme-classic/footer.json | 4 + website/i18n/ja/code.json | 8 + .../2023-01-17-v3-roadmap.mdx | 184 ++++++++ .../current/community/links.mdx | 3 +- .../community/showcase/bulletinboard.mdx | 10 + .../current/community/showcase/emailit.mdx | 2 +- .../current/community/showcase/hiposter.mdx | 10 + .../community/showcase/modalfilemanager.mdx | 4 +- .../current/community/showcase/scriptbar.mdx | 2 +- .../current/community/showcase/warmine.mdx | 19 + .../current/community/templates.mdx | 1 + .../current/gettingstarted/installation.mdx | 2 +- .../current/guides/dynamic-assets.mdx | 2 +- .../current/guides/mac-appstore.mdx | 18 +- .../current/guides/manual-builds.mdx | 126 +++--- .../current/guides/migrating.mdx | 98 ++-- .../current/guides/mouse-buttons.mdx | 6 +- .../current/guides/obfuscated.mdx | 20 +- .../current/guides/overscroll.mdx | 4 +- .../current/guides/routing.mdx | 10 +- .../current/guides/signing.mdx | 84 ++-- .../current/guides/templates.mdx | 76 ++-- .../current/guides/troubleshooting.mdx | 72 +-- .../current/guides/vscode.mdx | 14 +- .../current/guides/windows-installer.mdx | 24 +- .../current/guides/windows.mdx | 30 +- .../current/howdoesitwork.mdx | 6 +- .../current/reference/cli.mdx | 10 +- .../current/reference/options.mdx | 35 +- .../current/reference/runtime/clipboard.mdx | 23 + .../current/reference/runtime/events.mdx | 2 +- .../current/reference/runtime/intro.mdx | 1 + .../current/reference/runtime/window.mdx | 2 +- .../current/tutorials/dogsapi.mdx | 34 +- .../current/tutorials/helloworld.mdx | 40 +- .../version-v2.0.0-rc.1.json | 38 -- ...ersion-v2.0.0.json => version-v2.3.0.json} | 4 +- ...ersion-v2.1.0.json => version-v2.3.1.json} | 4 +- ...ersion-v2.2.0.json => version-v2.4.0.json} | 4 +- .../changelog.mdx | 52 +++ .../docusaurus-plugin-content-pages/coc.mdx | 2 +- .../community-guide.mdx | 6 +- .../credits.mdx | 408 ++++++++++------- .../ja/docusaurus-theme-classic/footer.json | 4 + website/i18n/ko/code.json | 8 + .../2023-01-17-v3-roadmap.mdx | 184 ++++++++ .../current/community/links.mdx | 3 +- .../community/showcase/bulletinboard.mdx | 10 + .../current/community/showcase/emailit.mdx | 2 +- .../current/community/showcase/filehound.mdx | 2 +- .../current/community/showcase/hiposter.mdx | 10 + .../community/showcase/modalfilemanager.mdx | 4 +- .../community/showcase/mollywallet.mdx | 2 +- .../current/community/showcase/scriptbar.mdx | 2 +- .../current/community/showcase/warmine.mdx | 19 + .../current/community/templates.mdx | 1 + .../current/gettingstarted/development.mdx | 2 +- .../current/gettingstarted/installation.mdx | 8 +- .../guides/application-development.mdx | 30 +- .../current/guides/dynamic-assets.mdx | 2 +- .../current/guides/mac-appstore.mdx | 18 +- .../current/guides/troubleshooting.mdx | 6 +- .../current/howdoesitwork.mdx | 6 +- .../current/reference/cli.mdx | 8 +- .../current/reference/options.mdx | 35 +- .../current/reference/runtime/clipboard.mdx | 23 + .../current/reference/runtime/events.mdx | 2 +- .../current/reference/runtime/intro.mdx | 1 + .../version-v2.0.0-rc.1.json | 38 -- .../version-v2.0.0.json | 38 -- .../version-v2.1.0.json | 38 -- .../version-v2.2.0.json | 38 -- .../version-v2.3.0.json} | 4 +- .../version-v2.3.1.json} | 4 +- .../version-v2.4.0.json} | 20 +- .../changelog.mdx | 52 +++ .../community-guide.mdx | 8 +- .../credits.mdx | 408 ++++++++++------- .../ko/docusaurus-theme-classic/footer.json | 4 + website/i18n/pt/code.json | 8 + .../2023-01-17-v3-roadmap.mdx | 184 ++++++++ .../current/community/links.mdx | 3 +- .../community/showcase/bulletinboard.mdx | 10 + .../current/community/showcase/emailit.mdx | 2 +- .../current/community/showcase/hiposter.mdx | 10 + .../community/showcase/modalfilemanager.mdx | 4 +- .../current/community/showcase/scriptbar.mdx | 2 +- .../current/community/showcase/warmine.mdx | 19 + .../current/community/templates.mdx | 1 + .../current/gettingstarted/installation.mdx | 2 +- .../current/guides/dynamic-assets.mdx | 2 +- .../current/guides/mac-appstore.mdx | 18 +- .../current/guides/troubleshooting.mdx | 6 +- .../current/howdoesitwork.mdx | 6 +- .../current/reference/cli.mdx | 8 +- .../current/reference/options.mdx | 35 +- .../current/reference/runtime/clipboard.mdx | 23 + .../current/reference/runtime/events.mdx | 2 +- .../current/reference/runtime/intro.mdx | 1 + .../version-v2.0.0-rc.1.json | 38 -- ...ersion-v2.1.0.json => version-v2.3.0.json} | 4 +- ...ersion-v2.2.0.json => version-v2.3.1.json} | 4 +- .../version-v2.4.0.json | 38 ++ .../changelog.mdx | 52 +++ .../community-guide.mdx | 6 +- .../credits.mdx | 408 ++++++++++------- .../pt/docusaurus-theme-classic/footer.json | 4 + website/i18n/ru/code.json | 8 + .../2023-01-17-v3-roadmap.mdx | 184 ++++++++ .../current/community/links.mdx | 4 +- .../community/showcase/bulletinboard.mdx | 10 + .../current/community/showcase/emailit.mdx | 2 +- .../current/community/showcase/hiposter.mdx | 10 + .../community/showcase/modalfilemanager.mdx | 4 +- .../current/community/showcase/scriptbar.mdx | 2 +- .../current/community/showcase/warmine.mdx | 19 + .../current/community/templates.mdx | 1 + .../current/gettingstarted/installation.mdx | 2 +- .../current/guides/dynamic-assets.mdx | 2 +- .../current/guides/frameless.mdx | 14 +- .../current/guides/mac-appstore.mdx | 18 +- .../current/guides/troubleshooting.mdx | 6 +- .../current/howdoesitwork.mdx | 6 +- .../current/reference/cli.mdx | 8 +- .../current/reference/options.mdx | 35 +- .../current/reference/runtime/clipboard.mdx | 23 + .../current/reference/runtime/events.mdx | 2 +- .../current/reference/runtime/intro.mdx | 1 + .../version-v2.0.0-rc.1.json | 38 -- .../version-v2.1.0.json | 38 -- .../version-v2.2.0.json | 38 -- .../version-v2.3.0.json | 38 ++ .../version-v2.3.1.json | 38 ++ .../version-v2.4.0.json | 38 ++ .../changelog.mdx | 52 +++ .../community-guide.mdx | 6 +- .../credits.mdx | 408 ++++++++++------- .../ru/docusaurus-theme-classic/footer.json | 4 + website/i18n/zh-Hans/code.json | 8 + .../2023-01-17-v3-roadmap.mdx | 184 ++++++++ .../current/community/links.mdx | 4 +- .../community/showcase/bulletinboard.mdx | 10 + .../current/community/showcase/emailit.mdx | 2 +- .../current/community/showcase/hiposter.mdx | 10 + .../community/showcase/modalfilemanager.mdx | 4 +- .../current/community/showcase/scriptbar.mdx | 2 +- .../current/community/showcase/warmine.mdx | 19 + .../current/community/templates.mdx | 1 + .../current/gettingstarted/installation.mdx | 2 +- .../current/guides/dynamic-assets.mdx | 2 +- .../current/guides/mac-appstore.mdx | 18 +- .../current/guides/troubleshooting.mdx | 6 +- .../current/howdoesitwork.mdx | 6 +- .../current/reference/cli.mdx | 10 +- .../current/reference/options.mdx | 41 +- .../current/reference/runtime/browser.mdx | 4 +- .../current/reference/runtime/clipboard.mdx | 23 + .../current/reference/runtime/dialog.mdx | 12 +- .../current/reference/runtime/events.mdx | 14 +- .../current/reference/runtime/intro.mdx | 1 + .../current/reference/runtime/log.mdx | 32 +- .../current/reference/runtime/menu.mdx | 6 +- .../current/reference/runtime/window.mdx | 60 +-- .../version-v2.0.0-rc.1.json | 38 -- ...ersion-v2.0.0.json => version-v2.3.0.json} | 4 +- ...ersion-v2.1.0.json => version-v2.3.1.json} | 4 +- ...ersion-v2.2.0.json => version-v2.4.0.json} | 4 +- .../changelog.mdx | 52 +++ .../community-guide.mdx | 6 +- .../credits.mdx | 408 ++++++++++------- .../docusaurus-theme-classic/footer.json | 4 + 215 files changed, 5219 insertions(+), 2810 deletions(-) create mode 100644 website/i18n/fr/docusaurus-plugin-content-blog/2023-01-17-v3-roadmap.mdx create mode 100644 website/i18n/fr/docusaurus-plugin-content-docs/current/community/showcase/bulletinboard.mdx create mode 100644 website/i18n/fr/docusaurus-plugin-content-docs/current/community/showcase/hiposter.mdx create mode 100644 website/i18n/fr/docusaurus-plugin-content-docs/current/community/showcase/warmine.mdx create mode 100644 website/i18n/fr/docusaurus-plugin-content-docs/current/reference/runtime/clipboard.mdx rename website/i18n/fr/docusaurus-plugin-content-docs/{version-v2.0.0.json => version-v2.3.0.json} (94%) rename website/i18n/fr/docusaurus-plugin-content-docs/{version-v2.1.0.json => version-v2.3.1.json} (94%) rename website/i18n/fr/docusaurus-plugin-content-docs/{version-v2.2.0.json => version-v2.4.0.json} (94%) create mode 100644 website/i18n/ja/docusaurus-plugin-content-blog/2023-01-17-v3-roadmap.mdx create mode 100644 website/i18n/ja/docusaurus-plugin-content-docs/current/community/showcase/bulletinboard.mdx create mode 100644 website/i18n/ja/docusaurus-plugin-content-docs/current/community/showcase/hiposter.mdx create mode 100644 website/i18n/ja/docusaurus-plugin-content-docs/current/community/showcase/warmine.mdx create mode 100644 website/i18n/ja/docusaurus-plugin-content-docs/current/reference/runtime/clipboard.mdx delete mode 100644 website/i18n/ja/docusaurus-plugin-content-docs/version-v2.0.0-rc.1.json rename website/i18n/ja/docusaurus-plugin-content-docs/{version-v2.0.0.json => version-v2.3.0.json} (94%) rename website/i18n/ja/docusaurus-plugin-content-docs/{version-v2.1.0.json => version-v2.3.1.json} (94%) rename website/i18n/ja/docusaurus-plugin-content-docs/{version-v2.2.0.json => version-v2.4.0.json} (94%) create mode 100644 website/i18n/ko/docusaurus-plugin-content-blog/2023-01-17-v3-roadmap.mdx create mode 100644 website/i18n/ko/docusaurus-plugin-content-docs/current/community/showcase/bulletinboard.mdx create mode 100644 website/i18n/ko/docusaurus-plugin-content-docs/current/community/showcase/hiposter.mdx create mode 100644 website/i18n/ko/docusaurus-plugin-content-docs/current/community/showcase/warmine.mdx create mode 100644 website/i18n/ko/docusaurus-plugin-content-docs/current/reference/runtime/clipboard.mdx delete mode 100644 website/i18n/ko/docusaurus-plugin-content-docs/version-v2.0.0-rc.1.json delete mode 100644 website/i18n/ko/docusaurus-plugin-content-docs/version-v2.0.0.json delete mode 100644 website/i18n/ko/docusaurus-plugin-content-docs/version-v2.1.0.json delete mode 100644 website/i18n/ko/docusaurus-plugin-content-docs/version-v2.2.0.json rename website/i18n/{ru/docusaurus-plugin-content-docs/version-v2.0.0.json => ko/docusaurus-plugin-content-docs/version-v2.3.0.json} (94%) rename website/i18n/{pt/docusaurus-plugin-content-docs/version-v2.0.0.json => ko/docusaurus-plugin-content-docs/version-v2.3.1.json} (94%) rename website/i18n/{fr/docusaurus-plugin-content-docs/version-v2.0.0-rc.1.json => ko/docusaurus-plugin-content-docs/version-v2.4.0.json} (75%) create mode 100644 website/i18n/pt/docusaurus-plugin-content-blog/2023-01-17-v3-roadmap.mdx create mode 100644 website/i18n/pt/docusaurus-plugin-content-docs/current/community/showcase/bulletinboard.mdx create mode 100644 website/i18n/pt/docusaurus-plugin-content-docs/current/community/showcase/hiposter.mdx create mode 100644 website/i18n/pt/docusaurus-plugin-content-docs/current/community/showcase/warmine.mdx create mode 100644 website/i18n/pt/docusaurus-plugin-content-docs/current/reference/runtime/clipboard.mdx delete mode 100644 website/i18n/pt/docusaurus-plugin-content-docs/version-v2.0.0-rc.1.json rename website/i18n/pt/docusaurus-plugin-content-docs/{version-v2.1.0.json => version-v2.3.0.json} (94%) rename website/i18n/pt/docusaurus-plugin-content-docs/{version-v2.2.0.json => version-v2.3.1.json} (94%) create mode 100644 website/i18n/pt/docusaurus-plugin-content-docs/version-v2.4.0.json create mode 100644 website/i18n/ru/docusaurus-plugin-content-blog/2023-01-17-v3-roadmap.mdx create mode 100644 website/i18n/ru/docusaurus-plugin-content-docs/current/community/showcase/bulletinboard.mdx create mode 100644 website/i18n/ru/docusaurus-plugin-content-docs/current/community/showcase/hiposter.mdx create mode 100644 website/i18n/ru/docusaurus-plugin-content-docs/current/community/showcase/warmine.mdx create mode 100644 website/i18n/ru/docusaurus-plugin-content-docs/current/reference/runtime/clipboard.mdx delete mode 100644 website/i18n/ru/docusaurus-plugin-content-docs/version-v2.0.0-rc.1.json delete mode 100644 website/i18n/ru/docusaurus-plugin-content-docs/version-v2.1.0.json delete mode 100644 website/i18n/ru/docusaurus-plugin-content-docs/version-v2.2.0.json create mode 100644 website/i18n/ru/docusaurus-plugin-content-docs/version-v2.3.0.json create mode 100644 website/i18n/ru/docusaurus-plugin-content-docs/version-v2.3.1.json create mode 100644 website/i18n/ru/docusaurus-plugin-content-docs/version-v2.4.0.json create mode 100644 website/i18n/zh-Hans/docusaurus-plugin-content-blog/2023-01-17-v3-roadmap.mdx create mode 100644 website/i18n/zh-Hans/docusaurus-plugin-content-docs/current/community/showcase/bulletinboard.mdx create mode 100644 website/i18n/zh-Hans/docusaurus-plugin-content-docs/current/community/showcase/hiposter.mdx create mode 100644 website/i18n/zh-Hans/docusaurus-plugin-content-docs/current/community/showcase/warmine.mdx create mode 100644 website/i18n/zh-Hans/docusaurus-plugin-content-docs/current/reference/runtime/clipboard.mdx delete mode 100644 website/i18n/zh-Hans/docusaurus-plugin-content-docs/version-v2.0.0-rc.1.json rename website/i18n/zh-Hans/docusaurus-plugin-content-docs/{version-v2.0.0.json => version-v2.3.0.json} (94%) rename website/i18n/zh-Hans/docusaurus-plugin-content-docs/{version-v2.1.0.json => version-v2.3.1.json} (94%) rename website/i18n/zh-Hans/docusaurus-plugin-content-docs/{version-v2.2.0.json => version-v2.4.0.json} (94%) diff --git a/website/i18n/fr/code.json b/website/i18n/fr/code.json index fc3efb162..4be2ef0b0 100644 --- a/website/i18n/fr/code.json +++ b/website/i18n/fr/code.json @@ -411,5 +411,13 @@ "theme.SearchModal.placeholder": { "message": "Rechercher des docs", "description": "The placeholder of the input of the DocSearch pop-up modal" + }, + "theme.docs.sidebar.closeSidebarButtonAriaLabel": { + "message": "Fermer la barre de navigation", + "description": "The ARIA label for close button of mobile sidebar" + }, + "theme.docs.sidebar.toggleSidebarButtonAriaLabel": { + "message": "Ouvrir/fermer la barre de navigation", + "description": "The ARIA label for hamburger menu button of mobile navigation" } } diff --git a/website/i18n/fr/docusaurus-plugin-content-blog/2021-09-27-v2-beta1-release-notes.mdx b/website/i18n/fr/docusaurus-plugin-content-blog/2021-09-27-v2-beta1-release-notes.mdx index 4283535b5..57a36c15e 100644 --- a/website/i18n/fr/docusaurus-plugin-content-blog/2021-09-27-v2-beta1-release-notes.mdx +++ b/website/i18n/fr/docusaurus-plugin-content-blog/2021-09-27-v2-beta1-release-notes.mdx @@ -69,7 +69,7 @@ Il y avait beaucoup de demandes pour le support des menus natifs. Wails a enfin Il y avait un grand nombre de demandes dans la v1 pour avoir un plus grand contrôle de la fenêtre elle-même. Je suis heureux d'annoncer qu'il y a de nouvelles API runtime spécifiquement pour cela. Il est riche en fonctionnalités et supporte les configurations multi-moniteurs. Il y a aussi une API de boite de dialogues améliorée : maintenant, vous pouvez avoir des boites de dialogues modernes et natives avec une configuration enrichie pour répondre à tous vos besoins. -There is now the option to generate IDE configuration along with your project. This means that if you open your project in a supported IDE, it will already be configured for building and debugging your application. Currently VSCode is supported but we hope to support other IDEs such as Goland soon. +Il y a maintenant la possibilité de générer la configuration dee votre IDE avec votre projet. Cela signifie que si vous ouvrez votre projet dans un IDE pris en charge, il sera déjà configuré pour construire et déboguer votre application. Actuellement, VSCode est supporté mais nous espérons bientôt pouvoir prendre en charge d'autres IDE comme Goland. ```mdx-code-block
@@ -82,17 +82,17 @@ There is now the option to generate IDE configuration along with your project. T
``` -### No requirement to bundle assets +### Pas d'obligation de regrouper les ressources -A huge pain-point of v1 was the need to condense your entire application down to single JS & CSS files. I'm happy to announce that for v2, there is no requirement to bundle assets, in any way, shape or form. Want to load a local image? Use an `` tag with a local src path. Want to use a cool font? Copy it in and add the path to it in your CSS. +Un énorme point de douleur de v1 était le besoin de condenser toute votre application en un seul fichier JS & CSS. Je suis heureux d'annoncer que, pour la v2, il n'y a pas d'obligation de regrouper des actifs, de quelque manière que ce soit. Vous voulez charger une image locale? Utilisez un tag `` avec un chemin src local. Vous voulez utiliser une police de caractères cool ? Copiez-la et ajoutez le chemin d'accès dans votre CSS. -> Wow, that sounds like a webserver... +> Wow, ça ressemble à un serveur web... -Yes, it works just like a webserver, except it isn't. +Oui, il fonctionne comme un serveur web, sauf que ce n'est pas le cas. -> So how do I include my assets? +> Comment puis-je inclure mes ressources ? -You just pass a single `embed.FS` that contains all your assets into your application configuration. They don't even need to be in the top directory - Wails will just work it out for you. +Vous passez simplement un seul `embed.FS` qui contient tous vos actifs dans la configuration de votre application. Ils n'ont même pas besoin d'être dans le répertoire racine du projet - Wails s'assurera de le faire fonctionner pour vous. ### Nouvelle expérience de développement @@ -107,20 +107,20 @@ You just pass a single `embed.FS` that contains all your assets into your applic
``` -Now that assets don't need to be bundled, it's enabled a whole new development experience. The new `wails dev` command will build and run your application, but instead of using the assets in the `embed.FS`, it loads them directly from disk. +Maintenant que les actifs n'ont pas besoin d'être regroupés, cela permet de vivre une toute nouvelle expérience de développement. La nouvelle commande `wails dev` construira et exécutera votre application, mais au lieu d'utiliser les ressources embarquées dans `embed.FS`, il les charge directement à partir du disque. -It also provides the additional features: +Il fournit également les fonctionnalités supplémentaires : -- Hot reload - Any changes to frontend assets will trigger and auto reload of the application frontend -- Auto rebuild - Any changes to your Go code will rebuild and relaunch your application +- Rechargement à chaud - Toutes les modifications apportées aux ressources du frontend déclencheront le rechargement automatique du frontend de l'application +- Reconstruction automatique - Toutes les modifications apportées à votre code Go déclencheront une reconstruction automatique avant de relancer votre application -In addition to this, a webserver will start on port 34115. This will serve your application to any browser that connects to it. All connected web browsers will respond to system events like hot reload on asset change. +En plus de cela, un serveur web démarrera sur le port 34115. Cela servira votre application à n'importe quel navigateur qui s'y connecte. Tous les navigateurs Web connectés recevront les événements du système tels que le rechargement chaud en cas de modification. -In Go, we are used to dealing with structs in our applications. It's often useful to send structs to our frontend and use them as state in our application. In v1, this was a very manual process and a bit of a burden on the developer. I'm happy to announce that in v2, any application run in dev mode will automatically generate TypeScript models for all structs that are input or output parameters to bound methods. This enables seamless interchange of data models between the two worlds. +Avec Go, nous sommes habitués à traiter les structs dans nos applications. Il est souvent utile d'envoyer des structs sur notre site et de les utiliser dans notre application. Dans la v1, c'était un processus manuel et un peu lourd pour le développeur. Je suis heureux de vous annoncer qu'en v2, toute application exécutée en mode dev générera automatiquement des modèles TypeScript pour tous les structs qui sont des paramètres d'entrée ou de sortie aux méthodes Go liées au frontend. Cela permet un échange transparent de modèles de données entre les deux mondes. -In addition to this, another JS module is dynamically generated wrapping all your bound methods. This provides JSDoc for your methods, providing code completion and hinting in your IDE. It's really cool when you get data models auto-imported when hitting tab in an auto-generated module wrapping your Go code! +En plus de cela, un autre module JS est généré dynamiquement en enveloppant toutes vos méthodes liées. Cela fournit la JSDoc pour vos méthodes, en fournissant la complétion de code et des suggestions dans votre IDE. C'est vraiment cool quand vous obtenez des modèles de données auto-importés en appuyant sur la touche tab dans un module généré automatiquement à partir de votre code Go ! -### Remote Templates +### Modèles distants ```mdx-code-block
@@ -133,15 +133,15 @@ In addition to this, another JS module is dynamically generated wrapping all you
``` -Getting an application up and running quickly was always a key goal for the Wails project. When we launched, we tried to cover a lot of the modern frameworks at the time: react, vue and angular. The world of frontend development is very opinionated, fast moving and hard to keep on top of! As a result, we found our base templates getting out of date pretty quickly and this caused a maintenance headache. It also meant that we didn't have cool modern templates for the latest and greatest tech stacks. +La mise en place rapide d'une application a toujours été un objectif clé pour le projet Wails. Quand nous avons lancé le projet, nous avons essayé de couvrir beaucoup de frameworks modernes à l'époque : react, vue et angular. Le monde du développement du frontend est rapide et difficile à garder à jour ! En conséquence, nous avons trouvé que nos modèles de base étaient obsolètes rapidement et cela a causé des maux de tête de maintenance. Cela signifie également que nous n'avons pas de modèles modernes et cool pour les dernières grandes technologies. -With v2, I wanted to empower the community by giving you the ability to create and host templates yourselves, rather than rely on the Wails project. So now you can create projects using community supported templates! I hope this will inspire developers to create a vibrant ecosystem of project templates. I'm really quite excited about what our developer community can create! +Avec la v2, je voulais donner à la communauté la possibilité de créer et d'héberger des modèles vous-même, plutôt que que de compter sur le projet Wails. Maintenant vous pouvez créer des projets en utilisant des modèles supportés par la communauté! J'espère que cela inspirera les développeurs à créer un écosystème dynamique de modèles de projet. Je suis vraiment très excité par ce que notre communauté de développeurs peut créer ! ### En conclusion -Wails v2 represents a new foundation for the project. The aim of this release is to get feedback on the new approach, and to iron out any bugs before a full release. Your input would be most welcome. Please direct any feedback to the [v2 Beta](https://github.com/wailsapp/wails/discussions/828) discussion board. +Wails v2 représente une nouvelle fondation pour le projet. Le but de cette version est d'obtenir des commentaires sur la nouvelle approche et d'éliminer tout bug avant une version complète. Vos commentaires sont les bienvenus. Veuillez diriger tout commentaire vers le forum de discussion [v2 Bêta](https://github.com/wailsapp/wails/discussions/828) . -There were many twists and turns, pivots and u-turns to get to this point. This was due partly to early technical decisions that needed changing, and partly because some core problems we had spent time building workarounds for were fixed upstream: Go’s embed feature is a good example. Fortunately, everything came together at the right time, and today we have the very best solution that we can have. I believe the wait has been worth it - this would not have been possible even 2 months ago. +Il y a eu beaucoup de détours, de virages et de retournements de situation pour atteindre ce but. Cela est dû en partie à des décisions techniques précoces qui devaient être modifiées, et en partie parce que certains problèmes de base pour lesquels nous avions passé du temps à construire des solutions de contournement ont été corrigés en amont : L'intégration de Go est un bon exemple. Heureusement, tout s'est réuni au bon moment, et aujourd'hui nous avons la meilleure solution que nous puissions avoir. Je pense que l'attente en valait la peine, cela n'aurait pas été possible il y a même 2 mois . J'ai également besoin de remercier énormément les personnes suivantes :pray: parce que sans elles, cette version n'existerait tout simplement pas: diff --git a/website/i18n/fr/docusaurus-plugin-content-blog/2021-11-08-v2-beta2-release-notes.mdx b/website/i18n/fr/docusaurus-plugin-content-blog/2021-11-08-v2-beta2-release-notes.mdx index 86d44616f..6c55d700c 100644 --- a/website/i18n/fr/docusaurus-plugin-content-blog/2021-11-08-v2-beta2-release-notes.mdx +++ b/website/i18n/fr/docusaurus-plugin-content-blog/2021-11-08-v2-beta2-release-notes.mdx @@ -19,13 +19,13 @@ tags:
``` -Today marks the first beta release of Wails v2 for Mac! It's taken quite a while to get to this point and I'm hoping that today's release will give you something that's reasonably useful. There have been a number of twists and turns to get to this point and I'm hoping, with your help, to iron out the crinkles and get the Mac port polished for the final v2 release. +Aujourd'hui marque la première version bêta de Wails v2 pour Mac! Il a fallu un certain temps pour arriver à ce point et j'espère que la version d'aujourd'hui vous donnera quelque chose de raisonnablement utile. Il y a eu un certain nombre de virages et détours pour atteindre ce point et j'espère, avec votre aide, pour aplanir les croupes et faire polir le portage sur Mac pour la version définitive de la v2. -You mean this isn't ready for production? For your use case, it may well be ready, but there are still a number of known issues so keep your eye on [this project board](https://github.com/wailsapp/wails/projects/7) and if you would like to contribute, you'd be very welcome! +Vous voulez dire que ce n'est pas prêt pour la production ? Pour votre cas d'utilisation, il peut être prêt, mais il y a encore un certain nombre de problèmes connus donc gardez votre œil sur [ce tableau de projet](https://github.com/wailsapp/wails/projects/7) et si vous souhaitez contribuer, vous serez les bienvenus ! -So what's new for Wails v2 for Mac vs v1? Hint: It's pretty similar to the Windows Beta :wink: +Alors quoi de neuf pour Wails v2 pour Mac vs v1 ? Indice : C'est assez similaire à la bêta de Windows :wink: -### New Features +### Nouvelles fonctionnalités ```mdx-code-block
@@ -38,47 +38,47 @@ So what's new for Wails v2 for Mac vs v1? Hint: It's pretty similar to the Windo
``` -There were a lot of requests for native menu support. Wails has finally got you covered. Application menus are now available and include support for most native menu features. This includes standard menu items, checkboxes, radio groups, submenus and separators. +Il y avait beaucoup de demandes pour le support des menus natifs. Wails a enfin ce qu'il vous faut. Les menus des applications sont maintenant disponibles et incluent la prise en charge de la plupart des fonctions natives de menu. Cela inclut les éléments de menu standard, les cases à cocher, les groupes radio, les sous-menus et les séparateurs. -There were a huge number of requests in v1 for the ability to have greater control of the window itself. I'm happy to announce that there's new runtime APIs specifically for this. It's feature-rich and supports multi-monitor configurations. There is also an improved dialogs API: Now, you can have modern, native dialogs with rich configuration to cater for all your dialog needs. +Il y avait un grand nombre de demandes dans la v1 pour avoir un plus grand contrôle de la fenêtre elle-même. Je suis heureux d'annoncer qu'il y a de nouvelles API runtime spécifiquement pour cela. Il est riche en fonctionnalités et supporte les configurations multi-moniteurs. Il y a aussi une API de boite de dialogues améliorée : maintenant, vous pouvez avoir des boites de dialogues modernes et natives avec une configuration enrichie pour répondre à tous vos besoins. -### Mac Specific Options +### Options spécifiques à Mac -In addition to the normal application options, Wails v2 for Mac also brings some Mac extras: +En plus des options d'application normales, Wails v2 pour Mac apporte également quelques options supplémentaires pour Mac : -- Make your window all funky and translucent, like all the pretty swift apps! -- Highly customisable titlebar -- We support the NSAppearance options for the application -- Simple config to auto-create an "About" menu +- Faites de votre fenêtre une fenêtre funky et transparente, comme toutes les applications assez rapides ! +- Barre de titre hautement personnalisable +- Nous prenons en charge les options NSAppearance pour l'application +- Configuration simple pour créer automatiquement un menu "À propos" -### No requirement to bundle assets +### Pas d'obligation de regrouper les ressources -A huge pain-point of v1 was the need to condense your entire application down to single JS & CSS files. I'm happy to announce that for v2, there is no requirement to bundle assets, in any way, shape or form. Want to load a local image? Use an `` tag with a local src path. Want to use a cool font? Copy it in and add the path to it in your CSS. +Un énorme point de douleur de v1 était le besoin de condenser toute votre application en un seul fichier JS & CSS. Je suis heureux d'annoncer que, pour la v2, il n'y a pas d'obligation de regrouper des ressources, de quelque manière que ce soit. Vous voulez charger une image locale? Utilisez un tag `` avec un chemin src local. Vous voulez utiliser une police de caractères cool ? Copiez-la et ajoutez le chemin d'accès dans votre CSS. -> Wow, that sounds like a webserver... +> Wow, ça ressemble à un serveur web... -Yes, it works just like a webserver, except it isn't. +Oui, il fonctionne comme un serveur web, sauf que ce n'est pas le cas. -> So how do I include my assets? +> Comment puis-je inclure mes ressources ? -You just pass a single `embed.FS` that contains all your assets into your application configuration. They don't even need to be in the top directory - Wails will just work it out for you. +Vous passez simplement un seul `embed.FS` qui contient tous vos actifs dans la configuration de votre application. Ils n'ont même pas besoin d'être dans le répertoire racine du projet - Wails s'assurera de le faire fonctionner pour vous. -### New Development Experience +### Nouvelle expérience de développement -Now that assets don't need to be bundled, it's enabled a whole new development experience. The new `wails dev` command will build and run your application, but instead of using the assets in the `embed.FS`, it loads them directly from disk. +Maintenant que les actifs n'ont pas besoin d'être regroupés, cela permet de vivre une toute nouvelle expérience de développement. La nouvelle commande `wails dev` construira et exécutera votre application, mais au lieu d'utiliser les ressources embarquées dans `embed.FS`, il les charge directement à partir du disque. -It also provides the additional features: +Il fournit également les fonctionnalités supplémentaires : -- Hot reload - Any changes to frontend assets will trigger and auto reload of the application frontend -- Auto rebuild - Any changes to your Go code will rebuild and relaunch your application +- Rechargement à chaud - Toutes les modifications apportées aux ressources du frontend déclencheront le rechargement automatique du frontend de l'application +- Reconstruction automatique - Toutes les modifications apportées à votre code Go déclencheront une reconstruction automatique avant de relancer votre application -In addition to this, a webserver will start on port 34115. This will serve your application to any browser that connects to it. All connected web browsers will respond to system events like hot reload on asset change. +En plus de cela, un serveur web démarrera sur le port 34115. Cela servira votre application à n'importe quel navigateur qui s'y connecte. Tous les navigateurs Web connectés recevront les événements du système tels que le rechargement chaud en cas de modification. -In Go, we are used to dealing with structs in our applications. It's often useful to send structs to our frontend and use them as state in our application. In v1, this was a very manual process and a bit of a burden on the developer. I'm happy to announce that in v2, any application run in dev mode will automatically generate TypeScript models for all structs that are input or output parameters to bound methods. This enables seamless interchange of data models between the two worlds. +Avec Go, nous sommes habitués à traiter avec des structs dans nos applications. Il est souvent utile d'envoyer des structs sur notre site et de les utiliser dans notre application. Dans la v1, c'était un processus manuel et un peu lourd pour le développeur. Je suis heureux de vous annoncer qu'en v2, toute application exécutée en mode dev générera automatiquement des modèles TypeScript pour tous les structs qui sont des paramètres d'entrée ou de sortie aux méthodes Go liées au frontend. Cela permet un échange transparent de modèles de données entre les deux mondes. -In addition to this, another JS module is dynamically generated wrapping all your bound methods. This provides JSDoc for your methods, providing code completion and hinting in your IDE. It's really cool when you get data models auto-imported when hitting tab in an auto-generated module wrapping your Go code! +En plus de cela, un autre module JS est généré dynamiquement en enveloppant toutes vos méthodes liées. Cela fournit la JSDoc pour vos méthodes, en fournissant la complétion de code et des suggestions dans votre IDE. C'est vraiment cool quand vous obtenez des modèles de données auto-importés en appuyant sur la touche tab dans un module généré automatiquement à partir de votre code Go ! -### Remote Templates +### Modèles distants ```mdx-code-block
@@ -91,13 +91,13 @@ In addition to this, another JS module is dynamically generated wrapping all you
``` -Getting an application up and running quickly was always a key goal for the Wails project. When we launched, we tried to cover a lot of the modern frameworks at the time: react, vue and angular. The world of frontend development is very opinionated, fast moving and hard to keep on top of! As a result, we found our base templates getting out of date pretty quickly and this caused a maintenance headache. It also meant that we didn't have cool modern templates for the latest and greatest tech stacks. +La mise en place rapide d'une application a toujours été un objectif clé pour le projet Wails. Quand nous avons lancé le projet, nous avons essayé de couvrir beaucoup de frameworks modernes à l'époque : react, vue et angular. Le monde du développement du frontend évolue très vite et est difficile à garder à jour ! En conséquence, nous avons trouvé que nos modèles de base étaient obsolètes rapidement et cela a causé des maux de tête de maintenance. Cela signifie également que nous n'avons pas de modèles modernes et cool pour les dernières grandes technologies. -With v2, I wanted to empower the community by giving you the ability to create and host templates yourselves, rather than rely on the Wails project. So now you can create projects using community supported templates! I hope this will inspire developers to create a vibrant ecosystem of project templates. I'm really quite excited about what our developer community can create! +Avec la v2, je voulais donner à la communauté la possibilité de créer et d'héberger des modèles vous-même, plutôt que que de compter sur le projet Wails. Maintenant vous pouvez créer des projets en utilisant des modèles supportés par la communauté! J'espère que cela inspirera les développeurs à créer un écosystème de modèles de projet. Je suis vraiment très excité par ce que notre communauté de développeurs peut créer ! -### Native M1 Support +### Prise en charge native de M1 -Thanks to the amazing support of [Mat Ryer](https://github.com/matryer/), the Wails project now supports M1 native builds: +Grâce au support incroyable de [Mat Ryer](https://github.com/matryer/), le projet Wails prend maintenant en charge les versions natives de M1 : ```mdx-code-block
@@ -110,7 +110,7 @@ Thanks to the amazing support of [Mat Ryer](https://github.com/matryer/), the Wa
``` -You can also specify `darwin/amd64` as a target too: +Vous pouvez également spécifier `darwin/amd64` comme cible : ```mdx-code-block
@@ -123,7 +123,7 @@ You can also specify `darwin/amd64` as a target too:
``` -Oh, I almost forgot.... you can also do `darwin/universal`.... :wink: +Oh, j'ai presque oublié.... vous pouvez aussi faire `darwin/universal`.... :wink: ```mdx-code-block
@@ -136,9 +136,9 @@ Oh, I almost forgot.... you can also do `darwin/universal`.... :wink:
``` -### Cross Compilation to Windows +### Cross Compilation sur Windows -Because Wails v2 for Windows is pure Go, you can target Windows builds without docker. +Parce que Wails v2 pour Windows est pur Go, vous pouvez cibler les versions Windows sans docker. ```mdx-code-block
@@ -153,18 +153,18 @@ Because Wails v2 for Windows is pure Go, you can target Windows builds without d ### WKWebView Renderer -V1 relied on a (now deprecated) WebView component. V2 uses the most recent WKWebKit component so expect the latest and greatest from Apple. +V1 s'est appuyé sur un composant WebView (maintenant obsolète). V2 utilise le composant WKWebKit le plus récent, donc attendez-vous au meilleur d'Apple. -### In Conclusion +### En conclusion -As I'd said in the Windows release notes, Wails v2 represents a new foundation for the project. The aim of this release is to get feedback on the new approach, and to iron out any bugs before a full release. Your input would be most welcome! Please direct any feedback to the [v2 Beta](https://github.com/wailsapp/wails/discussions/828) discussion board. +Comme je l'ai dit dans les notes de version de Windows, Wails v2 représente une nouvelle base pour le projet. Le but de cette version est d'obtenir des commentaires sur la nouvelle approche et d'éliminer tout bug avant une version complète. Vos commentaires sont les bienvenus! Veuillez diriger tout commentaire vers le forum de discussion [v2 Bêta](https://github.com/wailsapp/wails/discussions/828) . -And finally, I'd like to give a special thank you to all the [project sponsors](/credits#sponsors), including [JetBrains](https://www.jetbrains.com?from=Wails), whose support drive the project in many ways behind the scenes. +Enfin, je voudrais remercier tout particulièrement tous les [sponsors du projet](/credits#sponsors), y compris [JetBrains](https://www.jetbrains.com?from=Wails), dont le soutien anime le projet de plusieurs manières en coulisses. -I look forward to seeing what people build with Wails in this next exciting phase of the project! +J'ai hâte de voir ce que les gens construisent avec Wails dans cette prochaine phase excitante du projet! Lea. -PS: Linux users, you're next! +PS: Les utilisateurs de Linux, vous êtes les prochains ! -PPS: If you or your company find Wails useful, please consider [sponsoring the project](https://github.com/sponsors/leaanthony). Thanks! +PPS : Si vous ou votre entreprise trouvez Wails utile, veuillez envisager [de parrainer le projet](https://github.com/sponsors/leaanthony). Merci ! diff --git a/website/i18n/fr/docusaurus-plugin-content-blog/2022-02-22-v2-beta3-release-notes.mdx b/website/i18n/fr/docusaurus-plugin-content-blog/2022-02-22-v2-beta3-release-notes.mdx index b405953cf..c067b64aa 100644 --- a/website/i18n/fr/docusaurus-plugin-content-blog/2022-02-22-v2-beta3-release-notes.mdx +++ b/website/i18n/fr/docusaurus-plugin-content-blog/2022-02-22-v2-beta3-release-notes.mdx @@ -19,9 +19,9 @@ tags:
``` -I'm pleased to finally announce that Wails v2 is now in beta for Linux! It is somewhat ironic that the very first experiments with v2 was on Linux and yet it has ended up as the last release. That being said, the v2 we have today is very different from those first experiments. So without further ado, let's go over the new features: +J'ai le plaisir d'annoncer enfin que Wails v2 est maintenant en version bêta pour Linux ! Il est quelque peu ironique que les toutes premières expériences avec v2 aient été sous Linux et pourtant elles ont fini comme la dernière version. Cela dit, la v2 que nous avons aujourd'hui est très différente de ces premières expériences. Donc, sans perdre plus de temps, passons en revue les nouvelles fonctionnalités : -### New Features +### Nouvelles fonctionnalités ```mdx-code-block
@@ -34,38 +34,38 @@ I'm pleased to finally announce that Wails v2 is now in beta for Linux! It is so
``` -There were a lot of requests for native menu support. Wails has finally got you covered. Application menus are now available and include support for most native menu features. This includes standard menu items, checkboxes, radio groups, submenus and separators. +Il y avait beaucoup de demandes pour le support des menus natifs. Wails a enfin ce qu'il vous faut. Les menus des applications sont maintenant disponibles et incluent la prise en charge de la plupart des fonctions natives de menu. Cela inclut les éléments de menu standard, les cases à cocher, les groupes radio, les sous-menus et les séparateurs. -There were a huge number of requests in v1 for the ability to have greater control of the window itself. I'm happy to announce that there's new runtime APIs specifically for this. It's feature-rich and supports multi-monitor configurations. There is also an improved dialogs API: Now, you can have modern, native dialogs with rich configuration to cater for all your dialog needs. +Il y avait un grand nombre de demandes dans la v1 pour avoir un plus grand contrôle de la fenêtre elle-même. Je suis heureux d'annoncer qu'il y a de nouvelles API runtime spécifiquement pour cela. Il est riche en fonctionnalités et supporte les configurations multi-moniteurs. Il y a aussi une API de boite de dialogues améliorée : maintenant, vous pouvez avoir des boites de dialogues modernes et natives avec une configuration enrichie pour répondre à tous vos besoins. -### No requirement to bundle assets +### Pas d'obligation de regrouper les ressources -A huge pain-point of v1 was the need to condense your entire application down to single JS & CSS files. I'm happy to announce that for v2, there is no requirement to bundle assets, in any way, shape or form. Want to load a local image? Use an `` tag with a local src path. Want to use a cool font? Copy it in and add the path to it in your CSS. +Un énorme point de douleur de v1 était le besoin de condenser toute votre application en un seul fichier JS & CSS. Je suis heureux d'annoncer que, pour la v2, il n'y a pas d'obligation de regrouper des ressources, de quelque manière que ce soit. Vous voulez charger une image locale? Utilisez un tag `` avec un chemin src local. Vous voulez utiliser une police de caractères cool ? Copiez-la et ajoutez le chemin d'accès dans votre CSS. -> Wow, that sounds like a webserver... +> Wow, ça ressemble à un serveur web... -Yes, it works just like a webserver, except it isn't. +Oui, il fonctionne comme un serveur web, sauf que ce n'est pas le cas. -> So how do I include my assets? +> Comment puis-je inclure mes ressources ? -You just pass a single `embed.FS` that contains all your assets into your application configuration. They don't even need to be in the top directory - Wails will just work it out for you. +Vous passez simplement un seul `embed.FS` qui contient tous vos actifs dans la configuration de votre application. Ils n'ont même pas besoin d'être dans le répertoire racine du projet - Wails s'assurera de le faire fonctionner pour vous. -### New Development Experience +### Nouvelle expérience de développement -Now that assets don't need to be bundled, it's enabled a whole new development experience. The new `wails dev` command will build and run your application, but instead of using the assets in the `embed.FS`, it loads them directly from disk. +Maintenant que les actifs n'ont pas besoin d'être regroupés, cela permet de vivre une toute nouvelle expérience de développement. La nouvelle commande `wails dev` construira et exécutera votre application, mais au lieu d'utiliser les ressources embarquées dans `embed.FS`, il les charge directement à partir du disque. -It also provides the additional features: +Il fournit également les fonctionnalités supplémentaires : -- Hot reload - Any changes to frontend assets will trigger and auto reload of the application frontend -- Auto rebuild - Any changes to your Go code will rebuild and relaunch your application +- Rechargement à chaud - Toutes les modifications apportées aux ressources du frontend déclencheront le rechargement automatique du frontend de l'application +- Reconstruction automatique - Toutes les modifications apportées à votre code Go déclencheront une reconstruction automatique avant de relancer votre application -In addition to this, a webserver will start on port 34115. This will serve your application to any browser that connects to it. All connected web browsers will respond to system events like hot reload on asset change. +En plus de cela, un serveur web démarrera sur le port 34115. Cela servira votre application à n'importe quel navigateur qui s'y connecte. Tous les navigateurs Web connectés recevront les événements du système tels que le rechargement chaud en cas de modification. -In Go, we are used to dealing with structs in our applications. It's often useful to send structs to our frontend and use them as state in our application. In v1, this was a very manual process and a bit of a burden on the developer. I'm happy to announce that in v2, any application run in dev mode will automatically generate TypeScript models for all structs that are input or output parameters to bound methods. This enables seamless interchange of data models between the two worlds. +Avec Go, nous sommes habitués à traiter avec des structs dans nos applications. Il est souvent utile d'envoyer des structs sur notre site et de les utiliser dans notre application. Dans la v1, c'était un processus manuel et un peu lourd pour le développeur. Je suis heureux de vous annoncer qu'en v2, toute application exécutée en mode dev générera automatiquement des modèles TypeScript pour tous les structs qui sont des paramètres d'entrée ou de sortie aux méthodes Go liées au frontend. Cela permet un échange transparent de modèles de données entre les deux mondes. -In addition to this, another JS module is dynamically generated wrapping all your bound methods. This provides JSDoc for your methods, providing code completion and hinting in your IDE. It's really cool when you get data models auto-imported when hitting tab in an auto-generated module wrapping your Go code! +En plus de cela, un autre module JS est généré dynamiquement en enveloppant toutes vos méthodes liées. Cela fournit la JSDoc pour vos méthodes, en fournissant la complétion de code et des suggestions dans votre IDE. C'est vraiment cool quand vous obtenez des modèles de données auto-importés en appuyant sur la touche tab dans un module généré automatiquement à partir de votre code Go ! -### Remote Templates +### Modèles distants ```mdx-code-block
@@ -78,13 +78,13 @@ In addition to this, another JS module is dynamically generated wrapping all you
``` -Getting an application up and running quickly was always a key goal for the Wails project. When we launched, we tried to cover a lot of the modern frameworks at the time: react, vue and angular. The world of frontend development is very opinionated, fast moving and hard to keep on top of! As a result, we found our base templates getting out of date pretty quickly and this caused a maintenance headache. It also meant that we didn't have cool modern templates for the latest and greatest tech stacks. +La mise en place rapide d'une application a toujours été un objectif clé pour le projet Wails. Quand nous avons lancé le projet, nous avons essayé de couvrir beaucoup de frameworks modernes à l'époque : react, vue et angular. Le monde du développement du frontend évolue très vite et est difficile à garder à jour ! En conséquence, nous avons trouvé que nos modèles de base étaient obsolètes rapidement et cela a causé des maux de tête de maintenance. Cela signifie également que nous n'avons pas de modèles modernes et cool pour les dernières grandes technologies. -With v2, I wanted to empower the community by giving you the ability to create and host templates yourselves, rather than rely on the Wails project. So now you can create projects using community supported templates! I hope this will inspire developers to create a vibrant ecosystem of project templates. I'm really quite excited about what our developer community can create! +Avec la v2, je voulais donner à la communauté la possibilité de créer et d'héberger des modèles vous-même, plutôt que que de compter sur le projet Wails. Maintenant vous pouvez créer des projets en utilisant des modèles supportés par la communauté! J'espère que cela inspirera les développeurs à créer un écosystème de modèles de projet. Je suis vraiment très excité par ce que notre communauté de développeurs peut créer ! -### Cross Compilation to Windows +### Cross Compilation sur Windows -Because Wails v2 for Windows is pure Go, you can target Windows builds without docker. +Parce que Wails v2 pour Windows est pur Go, vous pouvez cibler les versions Windows sans docker. ```mdx-code-block
@@ -97,18 +97,18 @@ Because Wails v2 for Windows is pure Go, you can target Windows builds without d
``` -### In Conclusion +### En conclusion -As I'd said in the Windows release notes, Wails v2 represents a new foundation for the project. The aim of this release is to get feedback on the new approach, and to iron out any bugs before a full release. Your input would be most welcome! Please direct any feedback to the [v2 Beta](https://github.com/wailsapp/wails/discussions/828) discussion board. +Comme je l'ai dit dans les notes de version de Windows, Wails v2 représente une nouvelle base pour le projet. Le but de cette version est d'obtenir des commentaires sur la nouvelle approche et d'éliminer tout bug avant une version complète. Vos commentaires sont les bienvenus! Veuillez diriger tout commentaire vers le forum de discussion [v2 Bêta](https://github.com/wailsapp/wails/discussions/828) . -Linux is **hard** to support. We expect there to be a number of quirks with the beta. Please help us to help you by filing detailed bug reports! +Linux est **difficile** à supporter. Nous espérons qu'il y aura un certain nombre de bizarreries avec la bêta. Veuillez nous aider à vous aider en remplissant des rapports de bogue détaillés ! -Finally, I'd like to give a special thank you to all the [project sponsors](/credits#sponsors) whose support drive the project in many ways behind the scenes. +Enfin J'aimerais remercier tout particulièrement tous les [sponsors du projet](/credits#sponsors) dont le soutien propulse le projet de plusieurs manières en coulisses. -I look forward to seeing what people build with Wails in this next exciting phase of the project! +J'ai hâte de voir ce que les gens construisent avec Wails dans cette prochaine phase excitante du projet! Lea. -PS: The v2 release isn't far off now! +PS: La sortie de la version v2 n'est plus pour très longtemps. -PPS: If you or your company find Wails useful, please consider [sponsoring the project](https://github.com/sponsors/leaanthony). Thanks! +PPS : Si vous ou votre entreprise trouvez Wails utile, veuillez envisager [de parrainer le projet](https://github.com/sponsors/leaanthony). Merci ! diff --git a/website/i18n/fr/docusaurus-plugin-content-blog/2022-09-22-v2-release-notes.mdx b/website/i18n/fr/docusaurus-plugin-content-blog/2022-09-22-v2-release-notes.mdx index 0e85b7cdc..1f9037d3b 100644 --- a/website/i18n/fr/docusaurus-plugin-content-blog/2022-09-22-v2-release-notes.mdx +++ b/website/i18n/fr/docusaurus-plugin-content-blog/2022-09-22-v2-release-notes.mdx @@ -20,76 +20,76 @@ tags: # C'est là! -Today marks the release of [Wails](https://wails.io) v2. It's been about 18 months since the first v2 alpha and about a year from the first beta release. I'm truly grateful to everyone involved in the evolution of the project. +Aujourd'hui marque la sortie de [Wails](https://wails.io) v2. Il y a environ 18 mois depuis la première version alpha de la v2 et environ un an depuis la première version bêta. Je suis vraiment reconnaissant à toutes les personnes impliquées dans l'évolution du projet. -Part of the reason it took that long was due to wanting to get to some definition of completeness before officially calling it v2. The truth is, there's never a perfect time to tag a release - there's always outstanding issues or "just one more" feature to squeeze in. What tagging an imperfect major release does do, however, is to provide a bit of stability for users of the project, as well as a bit of a reset for the developers. +Une partie de la raison pour laquelle il a fallu aussi longtemps était dû à la volonté d'obtenir une version bien stable et complète avant de l'appeler officiellement v2. La vérité est qu'il n'y a jamais un moment parfait pour taguer une version - il y a toujours des problèmes en suspens ou une fonctionnalité de plus pour y ajouter. Taguer une version majeure imparfaite ça arrive, cependant, ça permet de fournir un peu de stabilité pour les utilisateurs du projet, ainsi qu'un peu de réinitialisation pour les développeurs. -This release is more than I'd ever expected it to be. I hope it gives you as much pleasure as it has given us to develop it. +Cette version contient bien plus que ce à quoi je m'attendais. J'espère qu'il vous donnera autant de plaisir qu'il nous en a donné de le développer. # Qu'est-ce Wails? -If you are unfamiliar with Wails, it is a project that enables Go programmers to provide rich frontends for their Go programs using familiar web technologies. It's a lightweight, Go alternative to Electron. Much more information can be found on the [official site](https://wails.io/docs/introduction). +Si vous n'êtes pas familier avec Wails, c'est un projet qui permet aux programmeurs Go de fournir des interfaces pour leurs programmes Go en utilisant des technologies web. C'est une alternative Go à Electron. Beaucoup plus d'informations peuvent être trouvées sur le site [officiel](https://wails.io/docs/introduction). # Quelles sont les nouveautés ? -The v2 release is a huge leap forward for the project, addressing many of the pain points of v1. If you have not read any of the blog posts on the Beta releases for [macOS](/blog/wails-v2-beta-for-mac), [Windows](/blog/wails-v2-beta-for-windows) or [Linux](/blog/wails-v2-beta-for-linux), then I encourage you to do so as it covers all the major changes in more detail. In summary: +La version v2 est un énorme bond en avant pour le projet, en abordant la plupart des points douloureux de la v1. Si vous n'avez lu aucun des articles de blog sur la version bêta pour [macOS](/blog/wails-v2-beta-for-mac), [Windows](/blog/wails-v2-beta-for-windows) ou [Linux](/blog/wails-v2-beta-for-linux), alors je vous encourage à le faire car il couvre tous les changements majeurs plus en détail. En Résumé: -- Webview2 component for Windows that supports modern web standards and debugging capabilities. -- [Dark / Light theme](/docs/reference/options#theme) + [custom theming](/docs/reference/options#customtheme) on Windows. -- Windows now has no CGO requirements. -- Out-of-the-box support for Svelte, Vue, React, Preact, Lit & Vanilla project templates. -- [Vite](https://vitejs.dev/) integration providing a hot-reload development environment for your application. -- Native application [menus](/docs/guides/application-development#application-menu) and [dialogs](/docs/reference/runtime/dialog). -- Native window translucency effects for [Windows](/docs/reference/options#windowistranslucent) and [macOS](/docs/reference/options#windowistranslucent-1). Support for Mica & Acrylic backdrops. -- Easily generate an [NSIS installer](/docs/guides/windows-installer) for Windows deployments. -- A rich [runtime library](/docs/reference/runtime/intro) providing utility methods for window manipulation, eventing, dialogs, menus and logging. -- Support for [obfuscating](/docs/guides/obfuscated) your application using [garble](https://github.com/burrowers/garble). -- Support for compressing your application using [UPX](https://upx.github.io/). -- Automatic TypeScript generation of Go structs. More info [here](/docs/howdoesitwork#calling-bound-go-methods). -- No extra libraries or DLLs are required to be shipped with your application. For any platform. -- No requirement to bundle frontend assets. Just develop your application like any other web application. +- Le composant Webview2 pour Windows qui prend en charge les standards Web modernes et les capacités de débogage. +- [Thème sombre / clair](/docs/reference/options#theme) + [thème personnalisé](/docs/reference/options#customtheme) sur Windows. +- Windows n'a plus besoin de CGO. +- Prise en charge des modèles de projet Svelte, Vue, React, Preact, Lit & Vanilla. +- [Intégration de Vite](https://vitejs.dev/) fournissant un environnement de développement de rechargement à chaud pour votre application. +- Support des [menus](/docs/guides/application-development#application-menu) et [boites de dialogues](/docs/reference/runtime/dialog) natifs. +- Effets de transparence de fenêtre native pour [Windows](/docs/reference/options#windowistranslucent) et [macOS](/docs/reference/options#windowistranslucent-1). Prise en charge des fonds Mica & Acrylic. +- Générez facilement un [installateur NSIS](/docs/guides/windows-installer) pour les déploiements Windows. +- Une riche bibliothèque [runtime](/docs/reference/runtime/intro) fournissant des méthodes utilitaires pour la manipulation de fenêtres, évènements, les boites de dialogues, les menus et les logs. +- Prise en charge pour le [masquage](/docs/guides/obfuscated) de votre application en utilisant [garble](https://github.com/burrowers/garble). +- Prise en charge de la compression de votre application en utilisant [UPX](https://upx.github.io/). +- Génération automatique en TypeScript de structures Go. Plus d'infos [ici](/docs/howdoesitwork#calling-bound-go-methods). +- Aucune autre bibliothèque ou DLL ne doit être fournie avec votre application. Pour n'importe quelle plateforme. +- Pas d'obligation de regrouper les actifs en frontend. Il vous suffit de développer votre application comme toute autre application web. # Crédits & Remerciements -Getting to v2 has been a huge effort. There have been ~2.2K commits by 89 contributors between the initial alpha and the release today, and many, many more that have provided translations, testing, feedback and help on the discussion forums as well as the issue tracker. I'm so unbelievably grateful to each one of you. I'd also like to give an extra special thank you to all the project sponsors who have provided guidance, advice and feedback. Everything you do is hugely appreciated. +Le passage à la v2 a été un effort énorme. Il y a eu ~2.2K commits par 89 contributeurs entre l'alpha initial et la publication aujourd'hui, et plusieurs, beaucoup d'autres qui ont fourni des traductions, des tests, des commentaires et de l'aide sur les forums de discussion ainsi que le suivi des problèmes. Je suis si incroyablement reconnaissant de chacun de vous. Je voudrais également remercier tout particulièrement tous les commanditaires du projet qui ont fourni des conseils, des conseils et des commentaires. Tout ce que vous faites est grandement apprécié. -There are a few people I'd like to give special mention to: +Il y a quelques personnes auxquelles je voudrais donner une mention spéciale à: -Firstly, a **huge** thank you to [@stffabi](https://github.com/stffabi) who has provided so many contributions which we all benefit from, as well as providing a lot of support on many issues. He has provided some key features such as the external dev server support which transformed our dev mode offering by allowing us to hook into [Vite](https://vitejs.dev/)'s superpowers. It's fair to say that Wails v2 would be a far less exciting release without his [incredible contributions](https://github.com/wailsapp/wails/commits?author=stffabi&since=2020-01-04). Thank you so much @stffabi! +Tout d'abord, un **grand merci** à [@stffabi](https://github.com/stffabi) qui a fourni tant de contributions dont nous bénéficions tous, en plus de fournir un grand soutien sur de nombreuses questions. Il a fourni quelques fonctionnalités clés comme le support du serveur de développement externe qui a transformé notre offre de mode de développement en nous permettant de nous brancher sur les superpouvoirs de [Vite](https://vitejs.dev/). Il est juste de dire que Wails v2 serait une version beaucoup moins excitante sans ses [contributions incroyables](https://github.com/wailsapp/wails/commits?author=stffabi&since=2020-01-04). Merci beaucoup @stffabi! -I'd also like to give a huge shout-out to [@misitebao](https://github.com/misitebao) who has tirelessly been maintaining the website, as well as providing Chinese translations, managing Crowdin and helping new translators get up to speed. This is a hugely important task, and I'm extremely grateful for all the time and effort put into this! You rock! +Je voudrais également adresser un cri énorme à [@misitebao](https://github.com/misitebao) qui a inlassablement maintenu le site web en plus de fournir des traductions chinoises, de gérer Crowdin et d'aider les nouveaux traducteurs à se mettre à la hauteur. C'est une tâche extrêmement importante, et je suis extrêmement reconnaissant pour tout le temps et les efforts consentis dans cette tâche! Tu assures ! -Last, but not least, a huge thank you to Mat Ryer who has provided advice and support during the development of v2. Writing xBar together using an early Alpha of v2 was helpful in shaping the direction of v2, as well as give me an understanding of some design flaws in the early releases. I'm happy to announce that as of today, we will start to port xBar to Wails v2, and it will become the flagship application for the project. Cheers Mat! +Enfin, et surtout, un grand merci à Mat Ryer qui a fourni des conseils et du soutien pendant le développement de la v2. Écrire xBar ensemble en utilisant une Alpha de v2 était utile pour façonner la direction de v2, en plus de me donner une compréhension de certains défauts de conception dans les premières versions. Je suis heureux de vous annoncer qu'à partir d'aujourd'hui, nous allons commencer à porter xBar sur Wails v2, et il deviendra l'application phare du projet. Bravo Mat! # Leçons apprises -There are a number of lessons learnt in getting to v2 that will shape development moving forward. +Il y a un certain nombre de leçons apprises à se rendre à la version 2 qui façonneront les futurs développements. ## Des versions plus petites, plus rapides et ciblées -In the course of developing v2, there were many features and bug fixes that were developed on an ad-hoc basis. This led to longer release cycles and were harder to debug. Moving forward, we are going to create releases more often that will include a reduced number of features. A release will involve updates to documentation as well as thorough testing. Hopefully, these smaller, quicker, focussed releases will lead to fewer regressions and better quality documentation. +Au cours du développement de la version 2, de nombreuses fonctionnalités et corrections de bogues ont été développées sur une base ad-hoc. Cela a entraîné des cycles de publication plus longs et a été plus difficile à déboger. Dans le futur, nous allons créer des versions plus souvent qui incluront un nombre réduit de fonctionnalités. Une version implique des mises à jour de la documentation ainsi que des tests approfondis. Espérons que ces versions plus petites, plus rapides et ciblées conduiront à moins de régressions et à une meilleure qualité de la documentation. ## Encourager l'engagement -When starting this project, I wanted to immediately help everyone who had a problem. Issues were "personal" and I wanted them resolved as quickly as possible. This is unsustainable and ultimately works against the longevity of the project. Moving forward, I will be giving more space for people to get involved in answering questions and triaging issues. It would be good to get some tooling to help with this so if you have any suggestions, please join in the discussion [here](https://github.com/wailsapp/wails/discussions/1855). +Lors du lancement de ce projet, je voulais aider immédiatement tous ceux qui avaient un problème. Les problèmes étaient "personnels" et je voulais les résoudre le plus rapidement possible. Ceci n'est pas durable et va finalement à l'encontre de la longévité du projet. En avançant, je donnerai plus de place aux gens pour s'impliquer dans la réponse aux questions et vis à vis du triage. Il serait bon d'obtenir des outils pour aider à cela, donc si vous avez des suggestions, veuillez vous joindre à la discussion [ici](https://github.com/wailsapp/wails/discussions/1855). ## Apprendre à dire non -The more people that engage with an Open Source project, the more requests there will be for additional features that may or may not be useful to the majority of people. These features will take an initial amount of time to develop and debug, and incur an ongoing maintenance cost from that point on. I myself am the most guilty of this, often wanting to "boil the sea" rather than provide the minimum viable feature. Moving forward, we will need to say "No" a bit more to adding core features and focus our energies on a way to empower developers to provide that functionality themselves. We are looking seriously into plugins for this scenario. This will allow anyone to extend the project as they see fit, as well as providing an easy way to contribute towards the project. +Plus il y a de personnes qui s'engagent dans un projet Open Source, plus il y aura de requêtes pour des fonctionnalités supplémentaires qui peuvent ou non être utiles à la majorité des personnes. Ces fonctionnalités prendront un temps initial de développement et de débogage, et entraîneront un coût de maintenance continu à partir de ce moment. Je suis moi-même coupable de cela, souvent vouloir "remuer terre et mer" plutôt que de fournir la caractéristique minimale viable. Dorénavant, nous devrons dire "Non" un peu plus pour ajouter des fonctionnalités de base et concentrer nos énergies sur un moyen de permettre aux développeurs de fournir eux-mêmes cette fonctionnalité. Nous examinons sérieusement les plugins pour ce scénario. Cela permettra à tous de prolonger le projet comme bon leur semble, tout en fournissant un moyen facile de contribuer au projet. # Un regard tourné vers l'avenir -There are so many core features we are looking at to add to Wails in the next major development cycle already. The [roadmap](https://github.com/wailsapp/wails/discussions/1484) is full of interesting ideas, and I'm keen to start work on them. One of the big asks has been for multiple window support. It's a tricky one and to do it right, and we may need to look at providing an alternative API, as the current one was not designed with this in mind. Based on some preliminary ideas and feedback, I think you'll like where we're looking to go with it. +Il y a tant de fonctionnalités fondamentales que nous envisageons d'ajouter à Wails dans le prochain cycle de développement majeur. La [feuille de route](https://github.com/wailsapp/wails/discussions/1484) est pleine d'idées intéressantes, et je suis impatient de commencer à y travailler. Une des grandes demandes a été le support de plusieurs fenêtres. C'est délicat et pour le faire correctement, et nous pourrions avoir besoin d'envisager de fournir une API alternative, car la version courante n'a pas été conçue en gardant cela à l'esprit. Sur la base de quelques idées préliminaires et de commentaires, je pense que vous aimerez où nous allons aller. -I'm personally very excited at the prospect of getting Wails apps running on mobile. We already have a demo project showing that it is possible to run a Wails app on Android, so I'm really keen to explore where we can go with this! +Personnellement, je suis très excité à l'idée de faire fonctionner des applications Wails sur mobile. Nous avons déjà un projet de démo qui montre qu'il est possible d'exécuter une application Wails sur Android, donc je suis vraiment impatient d'explorer où nous pouvons aller avec ceci! -A final point I'd like to raise is that of feature parity. It has long been a core principle that we wouldn't add anything to the project without there being full cross-platform support for it. Whilst this has proven to be (mainly) achievable so far, it has really held the project back in releasing new features. Moving forward, we will be adopting a slightly different approach: any new feature that cannot be immediately released for all platforms will be released under an experimental configuration or API. This allows early adopters on certain platforms to try the feature and provide feedback that will feed into the final design of the feature. This, of course, means that there are no guarantees of API stability until it is fully supported by all the platforms it can be supported on, but at least it will unblock development. +Un dernier point que je voudrais soulever est celui de la parité des fonctionnalités. Cela fait longtemps que nous n'ajouterions rien au projet sans un support cross-plateforme complet. Bien que cela se soit avéré (principalement) réalisable jusqu'à présent, il a vraiment repoussé le projet dans la publication de nouvelles fonctionnalités. A présent, nous adopterons une approche légèrement différente : toute nouvelle fonctionnalité qui ne peut pas être publiée immédiatement pour toutes les plates-formes sera publiée sous une configuration expérimentale ou une API. Cela permet aux adopteurs précoces sur certaines plates-formes d'essayer la fonctionnalité et de fournir des commentaires qui alimenteront la conception finale de la fonctionnalité. Ceci, bien sûr, signifie qu'il n'y a aucune garantie de stabilité de l'API tant qu'il n'est pas entièrement supporté par toutes les plateformes sur lesquelles il peut être supporté, mais au moins cela débloquera le développement. # Derniers Mots -I'm really proud of what we've been able to achieve with the V2 release. It's amazing to see what people have already been able to build using the beta releases so far. Quality applications like [Varly](https://varly.app/), [Surge](https://getsurge.io/) and [October](https://october.utf9k.net/). I encourage you to check them out. +Je suis vraiment fier de ce que nous avons pu réaliser avec la version V2. C'est incroyable de voir ce que les gens ont déjà pu construire en utilisant les versions bêta jusqu'à présent. Applications de qualité comme [Varly](https://varly.app/), [Surge](https://getsurge.io/) et [October](https://october.utf9k.net/). Je vous encourage à aller voir ces projets. -This release was achieved through the hard work of many contributors. Whilst it is free to download and use, it has not come about through zero cost. Make no mistakes, this project has come at considerable cost. It has not only been my time and the time of each and every contributor, but also the cost of absence from friends and families of each of those people too. That's why I'm extremely grateful for every second that has been dedicated to making this project happen. The more contributors we have, the more this effort can be spread out and the more we can achieve together. I'd like to encourage you all to pick one thing that you can contribute, whether it is confirming someone's bug, suggesting a fix, making a documentation change or helping out someone who needs it. All of these small things have such a huge impact! It would be so awesome if you too were part of the story in getting to v3. +Cette version a été obtenue grâce au travail acharné de nombreux contributeurs. Bien qu'il soit gratuit à télécharger et à utiliser, il n'a pas rien coûté. Ne vous y trompez pas, ce projet a eu un coût considérable. Ce n'est pas seulement mon temps et le temps de chaque contributeur, mais aussi le coût de l'absence des amis et des familles de chacune de ces personnes aussi. C'est pourquoi je suis extrêmement reconnaissant pour chaque seconde qui a été consacré à faire de ce projet se produire. Plus nous avons de contributeurs, plus cet effort peut être réparti et le plus nous pourrons faire ensemble. Je voudrais vous encourager tous à choisir une chose que vous pouvez contribuer, si elle confirme le bogue de quelqu'un, suggérer un correctif, faire un changement de documentation ou aider quelqu'un qui en a besoin. Toutes ces petites choses ont un impact énorme! Ça serait si génial si vous aussi faisiez aussi parti de l'histoire de la v3. Profitez bien! diff --git a/website/i18n/fr/docusaurus-plugin-content-blog/2023-01-17-v3-roadmap.mdx b/website/i18n/fr/docusaurus-plugin-content-blog/2023-01-17-v3-roadmap.mdx new file mode 100644 index 000000000..9a137d09a --- /dev/null +++ b/website/i18n/fr/docusaurus-plugin-content-blog/2023-01-17-v3-roadmap.mdx @@ -0,0 +1,184 @@ +--- +slug: the-road-to-wails-v3 +title: The Road to Wails v3 +authors: + - leaanthony +tags: + - wails + - v3 +--- + +```mdx-code-block +
+ +
+
+``` + +# Introduction + +Wails is a project that simplifies the ability to write cross-platform desktop applications using Go. It uses native webview components for the frontend (not embedded browsers), bringing the power of the world's most popular UI system to Go, whilst remaining lightweight. + +Version 2 was released on the 22nd of September 2022 and brought with it a lot of enhancements including: + +- Live development, leveraging the popular Vite project +- Rich functionality for managing windows and creating menus +- Microsoft's WebView2 component +- Generation of Typescript models that mirror your Go structs +- Creating of NSIS Installer +- Obfuscated builds + +Right now, Wails v2 provides powerful tooling for creating rich, cross-platform desktop applications. + +This blog post aims to look at where the project is at right now and what we can improve on moving forward. + +# Where are we now? + +It's been incredible to see the popularity of Wails rising since the v2 release. I'm constantly amazed by the creativity of the community and the wonderful things that are being built with it. With more popularity, comes more eyes on the project. And with that, more feature requests and bug reports. + +Over time, I've been able to identify some of the most pressing issues facing the project. I've also been able to identify some of the things that are holding the project back. + +## Current issues + +I've identified the following areas that I feel are holding the project back: + +- The API +- Bindings generation +- The Build System + +### The API + +The API to build a Wails application currently consists of 2 parts: + +- The Application API +- The Runtime API + +The Application API famously has only 1 function: `Run()` which takes a heap of options which govern how the application will work. Whilst this is very simple to use, it is also very limiting. It is a "declarative" approach which hides a lot of the underlying complexity. For instance, there is no handle to the main window, so you can't interact with it directly. For that, you need to use the Runtime API. This is a problem when you start to want to do more complex things like create multiple windows. + +The Runtime API provides a lot of utility functions for the developer. This includes: + +- Window management +- Dialogs +- Menus +- Events +- Logs + +There are a number of things I am not happy with the Runtime API. The first is that it requires a "context" to be passed around. This is both frustrating and confusing for new developers who pass in a context and then get a runtime error. + +The biggest issue with the Runtime API is that it was designed for applications that only use a single window. Over time, the demand for multiple windows has grown and the API is not well suited to this. + +### Thoughts on the v3 API + +Wouldn't it be great if we could do something like this? + +```go +func main() { + app := wails.NewApplication(options.App{}) + myWindow := app.NewWindow(options.Window{}) + myWindow.SetTitle("My Window") + myWindow.On(events.Window.Close, func() { + app.Quit() + }) + app.Run() +} +``` + +This programmatic approach is far more intuitive and allows the developer to interact with the application elements directly. All current runtime methods for windows would simply be methods on the window object. For the other runtime methods, we could move them to the application object like so: + +```go +app := wails.NewApplication(options.App{}) +app.NewInfoDialog(options.InfoDialog{}) +app.Log.Info("Hello World") +``` + +This is a much more powerful API which will allow for more complex applications to be built. It also allows for the creation of multiple windows, [the most up-voted feature on GitHub](https://github.com/wailsapp/wails/issues/1480): + +```go +func main() { + app := wails.NewApplication(options.App{}) + myWindow := app.NewWindow(options.Window{}) + myWindow.SetTitle("My Window") + myWindow.On(events.Window.Close, func() { + app.Quit() + }) + myWindow2 := app.NewWindow(options.Window{}) + myWindow2.SetTitle("My Window 2") + myWindow2.On(events.Window.Close, func() { + app.Quit() + }) + app.Run() +} +``` + +### Bindings generation + +One of the key features of Wails is generating bindings for your Go methods so they may be called from Javascript. The current method for doing this is a bit of a hack. It involves building the application with a special flag and then running the resultant binary which uses reflection to determine what has been bound. This leads to a bit of a chicken and egg situation: You can't build the application without the bindings and you can't generate the bindings without building the application. There are many ways around this but the best one would be not to use this approach at all. + +There was a number of attempts at writing a static analyser for Wails projects but they didn't get very far. In more recent times, it has become slightly easier to do this with more material available on the subject. + +Compared to reflection, the AST approach is much faster however it is significantly more complicated. To start with, we may need to impose certain constraints on how to specify bindings in the code. The goal is to support the most common use cases and then expand it later on. + +### The Build System + +Like the declarative approach to the API, the build system was created to hide the complexities of building a desktop application. When you run `wails build`, it does a lot of things behind the scenes: +- Builds the backend binary for bindings and generates the bindings +- Installs the frontend dependencies +- Builds the frontend assets +- Determines if the application icon is present and if so, embeds it +- Builds the final binary +- If the build is for `darwin/universal` it builds 2 binaries, one for `darwin/amd64` and one for `darwin/arm64` and then creates a fat binary using `lipo` +- If compression is required, it compresses the binary with UPX +- Determines if this binary is to be packaged and if so: + - Ensures the icon and application manifest are compiled into the binary (Windows) + - Builds out the application bundle, generates the icon bundle and copies it, the binary and Info.plist to the application bundle (Mac) +- If an NSIS installer is required, it builds it + +This entire process, whilst very powerful, is also very opaque. It is very difficult to customise it and it is very difficult to debug. + +To address this in v3, I would like to move to a build system that exists outside of Wails. After using [Task](https://taskfile.dev/) for a while, I am a big fan of it. It is a great tool for configuring build systems and should be reasonably familiar to anyone who has used Makefiles. + +The build system would be configured using a `Taskfile.yml` file which would be generated by default with any of the supported templates. This would have all of the steps required to do all the current tasks, such as building or packaging the application, allowing for easy customisation. + +There will be no external requirement for this tooling as it would form part of the Wails CLI. This means that you can still use `wails build` and it will do all the things it does today. However, if you want to customise the build process, you can do so by editing the `Taskfile.yml` file. It also means you can easily understand the build steps and use your own build system if you wish. + +The missing piece in the build puzzle is the atomic operations in the build process, such as icon generation, compression and packaging. To require a bunch of external tooling would not be a great experience for the developer. To address this, the Wails CLI will provide all these capabilities as part of the CLI. This means that the builds still work as expected, with no extra external tooling, however you can replace any step of the build with any tool you like. + +This will be a much more transparent build system which will allow for easier customisation and address a lot of the issues that have been raised around it. + +## The Payoff + +These positive changes will be a huge benefit to the project: +- The new API will be much more intuitive and will allow for more complex applications to be built. +- Using static analysis for bindings generation will be much faster and reduce a lot of the complexity around the current process. +- Using an established, external build system will make the build process completely transparent, allowing for powerful customisation. + +Benefits to the project maintainers are: + +- The new API will be much easier to maintain and adapt to new features and platforms. +- The new build system will be much easier to maintain and extend. I hope this will lead to a new ecosystem of community driven build pipelines. +- Better separation of concerns within the project. This will make it easier to add new features and platforms. + +## The Plan + +A lot of the experimentation for this has already been done and it's looking good. There is no current timeline for this work but I'm hoping by the end of Q1 2023, there will be an alpha release for Mac to allow the community to test, experiment with and provide feedback. + +## Summary + +- The v2 API is declarative, hides a lot from the developer and not suitable for features such as multiple windows. A new API will be created which will be simpler, intuitive and more powerful. +- The build system is opaque and difficult to customise so we will move to an external build system which will open it all up. +- The bindings generation is slow and complex so we will move to static analysis which will remove a lot of the complexity the current method has. + +There has been a lot of work put into the guts of v2 and it's solid. It's now time to address the layer on top of it and make it a much better experience for the developer. + +I hope you are as excited about this as I am. I'm looking forward to hearing your thoughts and feedback. + +Regards, + +‐ Lea + +PS: If you or your company find Wails useful, please consider [sponsoring the project](https://github.com/sponsors/leaanthony). Thanks! + +PPS: Yes, that's a genuine screenshot of a multi-window application built with Wails. It's not a mockup. It's real. It's awesome. It's coming soon. \ No newline at end of file diff --git a/website/i18n/fr/docusaurus-plugin-content-docs/current/community/links.mdx b/website/i18n/fr/docusaurus-plugin-content-docs/current/community/links.mdx index 0cd36271a..d8dba1b19 100644 --- a/website/i18n/fr/docusaurus-plugin-content-docs/current/community/links.mdx +++ b/website/i18n/fr/docusaurus-plugin-content-docs/current/community/links.mdx @@ -22,4 +22,5 @@ La [liste définitive](https://github.com/wailsapp/awesome-wails) de liens relat - [Groupe QQ pour la communauté chinoise de Wails](https://qm.qq.com/cgi-bin/qm/qr?k=PmIURne5hFGNd7QWzW5qd6FV-INEjNJv&jump_from=webapi) - Numéro de groupe : 1067173054 ## Autres tutoriels et articles + - [Construction d'un Panneau d'Affichage](https://blog.customct.com/building-bulletin-board) diff --git a/website/i18n/fr/docusaurus-plugin-content-docs/current/community/showcase/bulletinboard.mdx b/website/i18n/fr/docusaurus-plugin-content-docs/current/community/showcase/bulletinboard.mdx new file mode 100644 index 000000000..37be75135 --- /dev/null +++ b/website/i18n/fr/docusaurus-plugin-content-docs/current/community/showcase/bulletinboard.mdx @@ -0,0 +1,10 @@ +# BulletinBoard + +```mdx-code-block +

+ +
+

+``` + +The [BulletinBoard](https://github.com/raguay/BulletinBoard) application is a versital message board for static messages or dialogs to get information from the user for a script. It has a TUI for creating new dialogs that can latter be used to get information from the user. It's design is to stay running on your system and show the information as needed and then hide away. I have a process for watching a file on my system and sending the contents to BulletinBoard when changed. It works great with my workflows. There is also an [Alfred workflow](https://github.com/raguay/MyAlfred/blob/master/Alfred%205/EmailIt.alfredworkflow) for sending information to the program. The workflow is also for working with [EmailIt](https://github.com/raguay/EmailIt). diff --git a/website/i18n/fr/docusaurus-plugin-content-docs/current/community/showcase/emailit.mdx b/website/i18n/fr/docusaurus-plugin-content-docs/current/community/showcase/emailit.mdx index 04150ba28..c1817b70f 100644 --- a/website/i18n/fr/docusaurus-plugin-content-docs/current/community/showcase/emailit.mdx +++ b/website/i18n/fr/docusaurus-plugin-content-docs/current/community/showcase/emailit.mdx @@ -7,4 +7,4 @@

``` -[EmailIt](https://github.com/raguay/EmailIt/) is a Wails 2 program that is a markdown based email sender only with nine notepads, scripts to manipulate the text, and templates. It also has a builtin [Node-Red](https://nodered.org/) server, scripts terminal, and the [ScriptBar](https://github.com/raguay/ScriptBarApp) program for displaying results from Node-Red or a script on your system. Documentation is very scarce, but the programs works. It’s built using Wails2 and Svelte, and the download is a universal macOS application. +[EmailIt](https://github.com/raguay/EmailIt/) is a Wails 2 program that is a markdown based email sender only with nine notepads, scripts to manipulate the text, and templates. It also has a scripts terminal to run scripts in EmailIt on files in your system. The scripts and templates can be used from the commandline itself or with the Alfred, Keyboard Maestro, Dropzone, or PopClip extensions. It also supports scripts and themes downloaded form GitHub. Documentation is not complete, but the programs works. It’s built using Wails2 and Svelte, and the download is a universal macOS application. diff --git a/website/i18n/fr/docusaurus-plugin-content-docs/current/community/showcase/hiposter.mdx b/website/i18n/fr/docusaurus-plugin-content-docs/current/community/showcase/hiposter.mdx new file mode 100644 index 000000000..87e5837d3 --- /dev/null +++ b/website/i18n/fr/docusaurus-plugin-content-docs/current/community/showcase/hiposter.mdx @@ -0,0 +1,10 @@ +# hiposter + +```mdx-code-block +

+ +
+

+``` + +[hiposter](https://github.com/obity/hiposter) is a simple and efficient http API testing client tool. Based on Wails, Go and sveltejs. diff --git a/website/i18n/fr/docusaurus-plugin-content-docs/current/community/showcase/modalfilemanager.mdx b/website/i18n/fr/docusaurus-plugin-content-docs/current/community/showcase/modalfilemanager.mdx index c93effc42..6f360f64c 100644 --- a/website/i18n/fr/docusaurus-plugin-content-docs/current/community/showcase/modalfilemanager.mdx +++ b/website/i18n/fr/docusaurus-plugin-content-docs/current/community/showcase/modalfilemanager.mdx @@ -9,6 +9,6 @@

``` -[Modal File Manager](https://github.com/raguay/ModalFileManager) est un gestionnaire de fichiers à double volet utilisant des technologies web. Mon design original était basé sur NW.js et peut être trouvé [ici](https://github.com/raguay/ModalFileManager-NWjs). Cette version utilise le même code frontend basé sur Svelte (mais il a été grandement modifié depuis le départ de NW.js), mais le backend est une implémentation de [Wails 2](https://wails.io/). En utilisant cette implémentation, je n'utilise plus de commandes en ligne de commande `rm`, `cp`, etc. Il est entièrement codé en utilisant Go et fonctionne beaucoup plus rapidement que les versions précédentes. +[Modal File Manager](https://github.com/raguay/ModalFileManager) est un gestionnaire de fichiers à double volet utilisant des technologies web. Mon design original était basé sur NW.js et peut être trouvé [ici](https://github.com/raguay/ModalFileManager-NWjs). Cette version utilise le même code frontend basé sur Svelte (mais il a été grandement modifié depuis le départ de NW.js), mais le backend est une implémentation de [Wails 2](https://wails.io/). By using this implementation, I no longer use command line `rm`, `cp`, etc. commands, but a git install has to be on the system to download themes and extensions. Il est entièrement codé en utilisant Go et fonctionne beaucoup plus rapidement que les versions précédentes. -Ce gestionnaire de fichiers est conçu autour du même principe que Vim: l'état est contrôlé par des actions via le clavier. Le nombre d'états n'est pas fixe, mais très programmable. Par conséquent, un nombre infini de configurations de clavier qui peuvent être créées et utilisées. C'est la principale différence par rapport aux autres gestionnaires de fichiers. +Ce gestionnaire de fichiers est conçu autour du même principe que Vim: l'état est contrôlé par des actions via le clavier. Le nombre d'états n'est pas fixe, mais très programmable. Par conséquent, un nombre infini de configurations de clavier qui peuvent être créées et utilisées. C'est la principale différence par rapport aux autres gestionnaires de fichiers. There are themes and extensions available to download from GitHub. diff --git a/website/i18n/fr/docusaurus-plugin-content-docs/current/community/showcase/scriptbar.mdx b/website/i18n/fr/docusaurus-plugin-content-docs/current/community/showcase/scriptbar.mdx index e57180a7b..b5828f8a8 100644 --- a/website/i18n/fr/docusaurus-plugin-content-docs/current/community/showcase/scriptbar.mdx +++ b/website/i18n/fr/docusaurus-plugin-content-docs/current/community/showcase/scriptbar.mdx @@ -7,4 +7,4 @@

``` -[Barre de scripts](https://GitHub.com/raguay/ScriptBarApp) est un programme pour afficher la sortie du serveur [Node-Red](https://nodered.org) intégré dans l'application [EmailIt](https://GitHub.com/raguay/EmailIt). Il affiche également la sortie des scripts sur votre système. ScriptBar ne les met pas dans la barre de menus, mais les a tous dans une fenêtre convenable pour une visualisation facile. Vous pouvez avoir plusieurs onglets pour voir plusieurs choses différentes. Vous pouvez également conserver les liens vers vos sites Web les plus visités. +[ScriptBar](https://GitHub.com/raguay/ScriptBarApp) is a program to show the output of scripts or [Node-Red](https://nodered.org) server. It runs scripts defined in EmailIt program and shows the output. Scripts from xBar or TextBar can be used, but currently on the TextBar scripts work well. Il affiche également la sortie des scripts sur votre système. ScriptBar ne les met pas dans la barre de menus, mais les a tous dans une fenêtre convenable pour une visualisation facile. Vous pouvez avoir plusieurs onglets pour voir plusieurs choses différentes. Vous pouvez également conserver les liens vers vos sites Web les plus visités. diff --git a/website/i18n/fr/docusaurus-plugin-content-docs/current/community/showcase/warmine.mdx b/website/i18n/fr/docusaurus-plugin-content-docs/current/community/showcase/warmine.mdx new file mode 100644 index 000000000..950dc3f3d --- /dev/null +++ b/website/i18n/fr/docusaurus-plugin-content-docs/current/community/showcase/warmine.mdx @@ -0,0 +1,19 @@ +# Minecraft launcher for WarMine + +```mdx-code-block +

+ + +
+

+``` + +[Minecraft launcher for WarMine](https://warmine.ru/) is a Wails application, that allows you to easily join modded game servers and manage your game accounts. + +The Launcher downloads the game files, checks their integrity and launches the game with a wide range of customization options for the launch arguments from the backend. + +Frontend is written in Svelte, whole launcher fits in 9MB and supports Windows 7-11. diff --git a/website/i18n/fr/docusaurus-plugin-content-docs/current/community/templates.mdx b/website/i18n/fr/docusaurus-plugin-content-docs/current/community/templates.mdx index 5dca9fc06..825386b78 100644 --- a/website/i18n/fr/docusaurus-plugin-content-docs/current/community/templates.mdx +++ b/website/i18n/fr/docusaurus-plugin-content-docs/current/community/templates.mdx @@ -27,6 +27,7 @@ Si vous n'êtes pas sûr d'un modèle, inspectez `package.json` et `wails.json` - [wails-vite-vue-the-works](https://github.com/codydbentley/wails-vite-vue-the-works) - Vue 3 TypeScript avec Vite, Vuex, Vue Router, Sass, et ESLint + Prettier - [wails-template-quasar-js](https://github.com/sgosiaco/wails-template-quasar-js) - Un modèle utilisant JavaScript + Quasar V2 (Vue 3, Vite, Sass, Pinia, ESLint, Prettier) - [wails-template-quasar-ts](https://github.com/sgosiaco/wails-template-quasar-ts) - Un modèle utilisant TypeScript + Quasar V2 (Vue 3, Vite, Sass, Pinia, ESLint, Prettier, Composition API avec <script setup>) +- [wails-template-naive](https://github.com/tk103331/wails-template-naive) - Modèle Wails basé sur Naive UI (Librairie de composants Vue 3) ## Angular diff --git a/website/i18n/fr/docusaurus-plugin-content-docs/current/gettingstarted/installation.mdx b/website/i18n/fr/docusaurus-plugin-content-docs/current/gettingstarted/installation.mdx index 3a40faea8..668ce4ce7 100644 --- a/website/i18n/fr/docusaurus-plugin-content-docs/current/gettingstarted/installation.mdx +++ b/website/i18n/fr/docusaurus-plugin-content-docs/current/gettingstarted/installation.mdx @@ -57,7 +57,7 @@ import TabItem from "@theme/TabItem"; Wails a besoin que WebView2 runtime soit installé. Certaines installations de Windows auront déjà installé cette fonctionnalité. Vous pouvez vérifier en utilisant la commande wails doctor. - Linux a besoin de gcc build tools plus libgtk3 et libwebkit. Plutôt que de lister une tonne de commandes pour différentes distributions, Wails peut essayer de déterminer ce que sont les commandes d'installation pour votre distribution spécifique. Exécutez wails doctor après l'installation pour voir de quelles dépendances vous avez besoin. Si votre gestionnaire de distribution/paquet n'est pas pris en charge, veuillez consulter le guide Ajouter une distribution Linux. + Linux requires the standard gcc build tools plus libgtk3 and libwebkit. Plutôt que de lister une tonne de commandes pour différentes distributions, Wails peut essayer de déterminer ce que sont les commandes d'installation pour votre distribution spécifique. Exécutez wails doctor après l'installation pour voir de quelles dépendances vous avez besoin. Si votre gestionnaire de distribution/paquet n'est pas pris en charge, veuillez consulter le guide Ajouter une distribution Linux. ``` diff --git a/website/i18n/fr/docusaurus-plugin-content-docs/current/guides/application-development.mdx b/website/i18n/fr/docusaurus-plugin-content-docs/current/guides/application-development.mdx index f7820a1e5..b638f6fc8 100644 --- a/website/i18n/fr/docusaurus-plugin-content-docs/current/guides/application-development.mdx +++ b/website/i18n/fr/docusaurus-plugin-content-docs/current/guides/application-development.mdx @@ -4,9 +4,9 @@ Il n'y a pas de règles gravées dans le marbre pour le développement d'applica ## Configuration de l'application -The pattern used by the default templates are that `main.go` is used for configuring and running the application, whilst `app.go` is used for defining the application logic. +Le modèle utilisé par défaut défini que `main.go` est utilisé pour configurer et démarrer l'application, tandis que `app.go` est utilisé pour définir la logique de l'application. -The `app.go` file will define a struct that has 2 methods which act as hooks into the main application: +Le fichier `app.go` va définir une structure qui a 2 méthodes qui agissent comme crochets dans l'application principale: ```go title="app.go" type App struct { @@ -25,11 +25,11 @@ func (a *App) shutdown(ctx context.Context) { } ``` -- The startup method is called as soon as Wails allocates the resources it needs and is a good place for creating resources, setting up event listeners and anything else the application needs at startup. It is given a `context.Context` which is usually saved in a struct field. This context is needed for calling the [runtime](../reference/runtime/intro.mdx). If this method returns an error, the application will terminate. In dev mode, the error will be output to the console. +- La méthode startup est appelée d-s que Wails a donné les ressources nécessaires et qu'il est dans un bon état pour créer les ressources, mettre en place les event listeners et tout ce dont l'application peut avoir besoin pour démarrer. Il est donné un `context.Context` qui est généralement sauvegardé dans un champ struct. Ce contexte est nécessaire pour appeler le [runtime](../reference/runtime/intro.mdx). Si cette méthode renvoie une erreur, l'application se fermera. En mode développement, l'erreur sera affichée dans la console. -- The shutdown method will be called by Wails right at the end of the shutdown process. This is a good place to deallocate memory and perform any shutdown tasks. +- La méthode d'arrêt sera appelée par Wails à la fin du processus d'arrêt. C'est un bon endroit pour vider la mémoire et effectuer toutes les tâches d'arrêt. -The `main.go` file generally consists of a single call to `wails.Run()`, which accepts the application configuration. The pattern used by the templates is that before the call to `wails.Run()`, an instance of the struct we defined in `app.go` is created and saved in a variable called `app`. This configuration is where we add our callbacks: +Le fichier `main.go` consiste généralement en un seul appel à `wails.Run()`, qui accepte la configuration de l'application. Le modèle utilisé par les templates fait qu'avant l'appel à `wails.Run()`, une instance du struct que l'on a définie dans `app.go` est créée et instanciée dans une variable appelée `app`. Cette configuration est l'endroit où nous ajoutons nos callbacks : ```go {3,9,10} title="main.go" func main() { @@ -50,11 +50,11 @@ func main() { ``` -More information on application lifecycle hooks can be found [here](../howdoesitwork.mdx#application-lifecycle-callbacks). +Plus d'informations sur les crochets du cycle de vie des applications peuvent être trouvées [ici](../howdoesitwork.mdx#application-lifecycle-callbacks). -## Binding Methods +## Méthodes de liaison -It is likely that you will want to call Go methods from the frontend. This is normally done by adding public methods to the already defined struct in `app.go`: +Il est probable que vous vouliez appeler les méthodes Go depuis le frontend. Cela se fait normalement en ajoutant des méthodes publiques à le struct déjà défini dans `app.go`: ```go {16-18} title="app.go" type App struct { @@ -77,7 +77,7 @@ func (a *App) Greet(name string) string { } ``` -In the main application configuration, the `Bind` key is where we can tell Wails what we want to bind: +Dans la configuration principale de l'application, le paramètre `Bind` est l'endroit où nous pouvons dire à Wails ce que nous voulons lier : ```go {11-13} title="main.go" func main() { @@ -101,11 +101,11 @@ func main() { ``` -This will bind all public methods in our `App` struct (it will never bind the startup and shutdown methods). +Cela liera toutes les méthodes publiques de notre structure `App` (cela ne liera jamais les méthodes de démarrage et d'arrêt du système). -### Dealing with context when binding multiple structs +### Traiter avec le contexte lors de la liaison de plusieurs structures -If you want to bind methods for multiple structs but want each struct to keep a reference to the context so that you can use the runtime functions, a good pattern is to pass the context from the `OnStartup` method to your struct instances : +Si vous voulez lier des méthodes pour des structures multiples, mais que vous voulez que chaque struct conserve une référence au contexte pour que vous puissiez utiliser les fonctions d'exécution... Un bon choix est de passer le contexte de la méthode `OnStartup` à vos instances struct : ```go func main() { @@ -133,11 +133,11 @@ func main() { } ``` -More information on Binding can be found [here](../howdoesitwork.mdx#method-binding). +Plus d'informations à sur Binding peuvent être trouvées [ici](../howdoesitwork.mdx#method-binding). -## Application Menu +## Menu de l’application -Wails supports adding a menu to your application. This is done by passing a [Menu](../reference/menus.mdx#menu) struct to application config. It's common to use a method that returns a Menu, and even more common for that to be a method on the `App` struct used for the lifecycle hooks. +Wails prend en charge l'ajout d'un menu à votre application. Ceci est fait en passant un [Menu](../reference/menus.mdx#menu) structuré à la configuration de l'application. Il est courant d'utiliser une méthode qui renvoie un Menu, et encore plus courant pour que cela soit une méthode sur la struct de l'`app` qui soit utilisée pour les hooks du cycle de vie. ```go {11} title="main.go" func main() { @@ -162,33 +162,33 @@ func main() { ``` -## Assets +## Ressources -The great thing about the way Wails v2 handles assets is that it doesn't! The only thing you need to give Wails is an `embed.FS`. How you get to that is entirely up to you. You can use vanilla html/css/js files like the vanilla template. You could have some complicated build system, it doesn't matter. +La grande chose à propos de la façon dont Wails v2 gère les ressources pour le frontend, est que ce n'est pas le cas! La seule chose que vous devez donner à Wails est un `embed.FS`. C'est à vous de décider comment vous y arrivez. Vous pouvez utiliser les fichiers html/css/js vanilla comme dans le modèle vanilla. Vous pourriez avoir un système de compilation compliqué, peu importe. -When `wails build` is run, it will check the `wails.json` project file at the project root. There are 2 keys in the project file that are read: +Quand la commande `wails dev` est exécutée, elle vérifiera le fichier de projet `wails.json` à la racine du projet. Il y a 2 clés dans le fichier du projet qui sont lues : - "frontend:install" - "frontend:build" -The first, if given, will be executed in the `frontend` directory to install the node modules. The second, if given, will be executed in the `frontend` directory to build the frontend project. +Le premier, si fourni, sera exécuté dans le répertoire `frontend` pour installer les modules. Le second, si fourni, sera exécuté dans le répertoire `frontend` pour construire le projet frontend. -If these 2 keys aren't given, then Wails does absolutely nothing with the frontend. It is only expecting that `embed.FS`. +Si ces 2 clés ne sont pas fournies, alors Wails ne fait absolument rien avec le frontend. Il n'attend que `embed.FS`. ### AssetsHandler -A Wails v2 app can optionally define a `http.Handler` in the `options.App`, which allows hooking into the AssetServer to create files on the fly or process POST/PUT requests. GET requests are always first handled by the `assets` FS. If the FS doesn't find the requested file the request will be forwarded to the `http.Handler` for serving. Any requests other than GET will be directly processed by the `AssetsHandler` if specified. It's also possible to only use the `AssetsHandler` by specifiy `nil` as the `Assets` option. +Une application Wails v2 peut éventuellement définir un `http.Handler` dans `options.app`, qui permet de se connecter à l'AssetServer pour créer des fichiers à la volée ou traiter les requêtes POST/PUT. Les requêtes GET sont toujours traitées d'abord par le `assets` FS. Si le FS ne trouve pas le fichier demandé, la requête sera transmise au `http.Handler`. Toute requête autre que GET sera traitée directement par le `AssetsHandler` si spécifié. Il est également possible d'utiliser le `AssetsHandler` uniquement en spécifiant `nil` dans l'option `Assets`. -## Built in Dev Server +## Serveur de développement embarqué -Running `wails dev` will start the built in dev server which will start a file watcher in your project directory. By default, if any file changes, wails checks if it was an application file (default: `.go`, configurable with `-e` flag). If it was, then it will rebuild your application and relaunch it. If the changed file was in the assets, it will issue a reload after a short amount of time. +Exécuter `wails dev` démarrera le serveur de développement intégré qui démarrera un observateur de fichiers dans votre répertoire de projet. Par par défaut, si un fichier change, wails vérifie s'il s'agit d'un fichier d'application (par défaut: `.go`, configurable avec l'option `-e`). Si c'est le cas, il reconstruira votre application et la relancera. Si le fichier modifié se trouvait dans les actifs, il lancera un rechargement après un court laps de temps. -The dev server uses a technique called "debouncing" which means it doesn't reload straight away, as there may be multiple files changed in a short amount of time. When a trigger occurs, it waits for a set amount of time before issuing a reload. If another trigger happens, it resets to the wait time again. By default this value is `100ms`. If this value doesn't work for your project, it can be configured using the `-debounce` flag. If used, this value will be saved to your project config and become the default. +Le serveur de développement utilise une technique appelée "debouncing", ce qui signifie qu'il ne se recharge pas tout de suite, comme il peut y avoir plusieurs fichiers modifiés en un court laps de temps. Lorsqu'un déclencheur se produit, il attend un temps défini avant d'émettre un rechargement. Si un autre déclencheur se produit, le temps d'attente se réinitialise avant un prochain rechargement. Par défaut, cette période est définie à `100ms`. Si cette valeur ne fonctionne pas pour votre projet, elle peut être configurée en utilisant l'option `-debounce`. Si elle est utilisée, cette valeur sera enregistrée dans la configuration de votre projet et deviendra la valeur par défaut. -## External Dev Server +## Serveur de développement externe -Some frameworks come with their own live-reloading server, however they will not be able to take advantage of the Wails Go bindings. In this scenario, it is best to run a watcher script that rebuilds the project into the build directory, which Wails will be watching. For an example, see the default svelte template that uses [rollup](https://rollupjs.org/guide/en/). For [create-react-app](https://create-react-app.dev/), it's possible to use [this script](https://gist.github.com/int128/e0cdec598c5b3db728ff35758abdbafd) to achieve a similar result. +Certains frameworks sont fournis avec leur propre serveur de rechargement en direct, cependant ils ne seront pas en mesure de tirer parti des liaisons Wails Go. Dans ce scénario, il est préférable d'exécuter un script qui va surveiller le projet dans dossier build, dossier que Wails surveille aussi. Pour un exemple, voir le modèle svelte par défaut qui utilise [rollup](https://rollupjs.org/guide/en/). Pour [create-react-app](https://create-react-app.dev/), il est possible d'utiliser [ce script](https://gist.github.com/int128/e0cdec598c5b3db728ff35758abdbafd) pour obtenir un résultat similaire. -## Go Module +## Module Go -The default Wails templates generate a `go.mod` file that contains the module name "changeme". You should change this to something more appropriate after project generation. +Les modèles Wails par défaut génèrent un fichier `go.mod` qui contient le nom de module "changeme". Vous devriez changer ceci pour quelque chose de plus approprié après la génération du projet. diff --git a/website/i18n/fr/docusaurus-plugin-content-docs/current/guides/dynamic-assets.mdx b/website/i18n/fr/docusaurus-plugin-content-docs/current/guides/dynamic-assets.mdx index 73173e15b..97f81432d 100644 --- a/website/i18n/fr/docusaurus-plugin-content-docs/current/guides/dynamic-assets.mdx +++ b/website/i18n/fr/docusaurus-plugin-content-docs/current/guides/dynamic-assets.mdx @@ -1,14 +1,14 @@ -# Dynamic Assets +# Ressources dynamiques -If you want to load or generate assets for your frontend dynamically, you can achieve that using the [AssetsHandler](../reference/options#assetshandler) option. The AssetsHandler is a generic `http.Handler` which will be called for any non GET request on the assets server and for GET requests which can not be served from the bundled assets because the file is not found. +Si vous voulez charger ou générer des ressources pour votre frontend de manière dynamique, vous pouvez y parvenir en utilisant l'option [AssetsHandler](../reference/options#assetshandler). Le AssetsHandler est un générique`http.Handler` qui sera appelé pour toute requête non GET sur le serveur d'assets et pour les requêtes GET qui ne peuvent pas être servies car l'asset n'est pas trouvé. -By installing a custom AssetsHandler, you can serve your own assets using a custom asset server. +En installant un AssetsHandler personnalisé, vous pouvez servir vos propres ressources en utilisant un serveur de ressources personnalisé. -## Example +## Exemple -In our example project, we will create a simple assets handler which will load files off disk: +Dans notre exemple de projet, nous allons créer un gestionnaire de ressources simple qui chargera les fichiers à partir du disque: -```go title=main.go {16-35,49} +```go title=main.go {17-36,49} package main import ( @@ -72,7 +72,7 @@ func main() { } ``` -When we run the application in dev mode using `wails dev`, we will see the following output: +Lorsque nous exécutons l'application en mode dev en utilisant `wails dev`, nous verrons la sortie suivante : ``` DEB | [ExternalAssetHandler] Loading 'http://localhost:3001/favicon.ico' @@ -80,15 +80,15 @@ DEB | [ExternalAssetHandler] Loading 'http://localhost:3001/favicon.ico' failed, Requesting file: favicon.ico ``` -As you can see, the assets handler is called when the default assets server is unable to serve the `favicon.ico` file. +Comme vous pouvez le voir, le gestionnaire d'actifs est appelé lorsque le serveur d'assets par défaut est incapable de servir le fichier `favicon.ico`. -If you right click the main application and select "inspect" to bring up the devtools, you can test this feature out by typing the following into the console: +Si vous faites un clic droit sur l'application principale et sélectionnez "inspecter" pour afficher les devtools, vous pouvez tester cette fonctionnalité en tapant ce qui suit dans la console : ``` let response = await fetch('does-not-exist.txt'); ``` -This will generate an error in the devtools. We can see that the error is what we expect, returned by our custom assets handler: +Cela générera une erreur dans les devtools. Nous pouvons voir que l'erreur est ce que nous attendons est retourné par notre gestionnaire de ressources personnalisées : ```mdx-code-block

@@ -98,7 +98,7 @@ This will generate an error in the devtools. We can see that the error is what w

``` -However, if we request `go.mod`, we will see the following output: +Cependant, si nous demandons `go.mod`, nous verrons la sortie suivante : ```mdx-code-block

@@ -106,19 +106,19 @@ However, if we request `go.mod`, we will see the following output:

``` -This technique can be used to load images directly into the page. If we updated our default vanilla template and replaced the logo image: +Cette technique peut être utilisée pour charger des images directement dans la page. Si nous avons mis à jour notre modèle vanilla par défaut et a remplacé l'image du logo : ```html ``` -with: +avec : ```html ``` -Then we would see the following: +Nous verrions ensuite ce qui suit: ```mdx-code-block

@@ -131,6 +131,6 @@ Then we would see the following: :::warning -Exposing your filesystem in this way is a security risk. It is recommended that you properly manage access to your filesystem. +Exposer votre système de fichiers de cette manière est un risque de sécurité. Il est recommandé de gérer correctement l'accès à votre système de fichiers. ::: diff --git a/website/i18n/fr/docusaurus-plugin-content-docs/current/guides/frameless.mdx b/website/i18n/fr/docusaurus-plugin-content-docs/current/guides/frameless.mdx index 3845736f4..bbeb338f1 100644 --- a/website/i18n/fr/docusaurus-plugin-content-docs/current/guides/frameless.mdx +++ b/website/i18n/fr/docusaurus-plugin-content-docs/current/guides/frameless.mdx @@ -1,8 +1,8 @@ -# Frameless Applications +# Applications sans cadre -Wails supports application that have no frames. This can be achieved by using the [frameless](../reference/options.mdx#frameless) field in [Application Options](../reference/options.mdx#application-options). +Wails prend en charge la création d'applications qui n'ont pas de cadres. Ceci peut être réalisé en utilisant le champ [frameless](../reference/options.mdx#frameless) dans [Application Options](../reference/options.mdx#application-options). -Wails offers a simple solution for dragging the window: Any HTML element that has the CSS style `--wails-draggable:drag` will act as a "drag handle". This property applies to all child elements. If you need to indicate that a nested element should not drag, then use the attribute '--wails-draggable:no-drag' on that element. +Wails offre une solution simple pour faire glisser la fenêtre: N'importe quel élément HTML qui a le style CSS `--wails-draggable:drag` agira comme une "poignée de glisser". Cette propriété s'applique à tous les éléments enfants. Si vous devez indiquer qu'un élément imbriqué ne doit pas glisser, alors utilisez l'attribut '--wails-draggable:no-drag' sur cet élément. ```html @@ -23,7 +23,7 @@ Wails offers a simple solution for dragging the window: Any HTML element that ha ``` -For some projects, using a CSS variable may not be possible due to dynamic styling. In this case, you can use the `CSSDragProperty` and `CSSDragValue` application options to define a property and value that will be used to indicate draggable regions: +Pour certains projets, l'utilisation d'une variable CSS peut ne pas être possible en raison du style dynamique. Dans ce cas, vous pouvez utiliser les options `CSSDragProperty` et `CSSDragValue` pour définir une propriété et une valeur qui seront utilisées pour indiquer régions glissables : ```go title=main.go package main @@ -80,8 +80,8 @@ func main() { ``` -:::info Fullscreen +:::info Plein écran -If you allow your application to go fullscreen, this drag functionality will be disabled. +Si vous autorisez votre application à être en plein écran, cette fonctionnalité de glissement sera désactivée. ::: diff --git a/website/i18n/fr/docusaurus-plugin-content-docs/current/guides/frontend.mdx b/website/i18n/fr/docusaurus-plugin-content-docs/current/guides/frontend.mdx index ac087ee45..ea101019a 100644 --- a/website/i18n/fr/docusaurus-plugin-content-docs/current/guides/frontend.mdx +++ b/website/i18n/fr/docusaurus-plugin-content-docs/current/guides/frontend.mdx @@ -1,10 +1,10 @@ # Frontend -## Script Injection +## Injection de script -When Wails serves your `index.html`, by default, it will inject 2 script entries into the `` tag to load `/wails/ipc.js` and `/wails/runtime.js`. These files install the bindings and runtime respectively. +Quand Wails sert votre fichier `index.html`, par défaut, il injectera 2 entrées de script dans la balise `` pour charger `/wails/ipc.js` et `/wails/runtime.js`. Ces fichiers installent respectivement les bindings et les runtime. -The code below shows where these are injected by default: +Le code ci-dessous montre où ils sont injectés par défaut : ```html @@ -28,25 +28,25 @@ The code below shows where these are injected by default: ``` -### Overriding Default Script Injection +### Remplacer l'injection de script par défaut -To provide more flexibility to developers, there is a meta tag that may be used to customise this behaviour: +Pour fournir plus de flexibilité aux développeurs, il y a une balise meta qui peut être utilisée pour personnaliser ce comportement: ```html ``` -The options are as follows: +Les options sont les suivantes : -| Value | Description | -| ------------------- | ------------------------------------------------ | -| noautoinjectruntime | Disable the autoinjection of `/wails/runtime.js` | -| noautoinjectipc | Disable the autoinjection of `/wails/ipc.js` | -| noautoinject | Disable all autoinjection of scripts | +| Valeur | Description | +| ------------------- | -------------------------------------------------------------- | +| noautoinjectruntime | Pour désactiver l'injection automatique de `/wails/runtime.js` | +| noautoinjectipc | Pour désactiver l'injection automatique de `/wails/ipc.js` | +| noautoinject | Pour désactiver l'injection automatique de tous les scripts | -Multiple options may be used provided they are comma seperated. +Plusieurs options peuvent être utilisées à condition qu'elles soient séparées par des virgules. -This code is perfectly valid and operates the same as the autoinjection version: +Ce code est parfaitement valide et fonctionne de la même manière que la version avec l'auto-injection : ```html diff --git a/website/i18n/fr/docusaurus-plugin-content-docs/current/guides/ides.mdx b/website/i18n/fr/docusaurus-plugin-content-docs/current/guides/ides.mdx index f74282283..f35b2f57f 100644 --- a/website/i18n/fr/docusaurus-plugin-content-docs/current/guides/ides.mdx +++ b/website/i18n/fr/docusaurus-plugin-content-docs/current/guides/ides.mdx @@ -1,8 +1,8 @@ # IDEs -Wails aims to provide a great development experience. To that aim, we now support generating IDE specific configuration to provide smoother project setup. +Wails vise à fournir une grande expérience de développement. À cet effet, nous supportons maintenant la génération d'une configuration spécifique IDE pour fournir une configuration plus souple du projet. -Currently, we support [Visual Studio Code](https://code.visualstudio.com/) but aim to support other IDEs such as Goland. +Actuellement, nous prenons en charge [Visual Studio Code](https://code.visualstudio.com/) mais nous visons à prendre en charge d'autres IDE comme Goland. ## Visual Studio Code @@ -15,9 +15,9 @@ Currently, we support [Visual Studio Code](https://code.visualstudio.com/) but a

``` -When generating a project using the `-ide vscode` flags, IDE files will be created alongside the other project files. These files are placed into the `.vscode` directory and provide the correct configuration for debugging your application. +Lors de la génération d'un projet en utilisant l'option `-ide vscode` , les fichiers IDE seront créés à côté des autres fichiers du projet. Ces fichiers sont placés dans le répertoire `.vscode` et fournissent la configuration correcte pour déboguer votre application. -The 2 files generated are `tasks.json` and `launch.json`. Below are the files generated for the default vanilla project: +Les 2 fichiers générés sont `tasks.json` et `launch.json`. Ci-dessous se trouvent les fichiers générés par défaut : ```json title="tasks.json" { @@ -62,9 +62,9 @@ The 2 files generated are `tasks.json` and `launch.json`. Below are the files ge } ``` -### Configuring the install and build steps +### Configuration des étapes d'installation et de construction -The `tasks.json` file is simple for the default project as there is no `npm install` or `npm run build` step needed. For projects that have a frontend build step, such as the svelte template, we would need to edit `tasks.json` to add the install and build steps: +Le fichier `tasks.json` est simple pour le projet par défaut car il n'y a pas d'étapes `npm install` ou `npm build` nécessaire. Pour les projets qui ont une étape de construction en frontend comme avec Svelte, nous devrions modifier `tasks.json` pour ajouter les étapes d'installation et de construction suivantes : ```json title="tasks.json" { @@ -120,8 +120,8 @@ The `tasks.json` file is simple for the default project as there is no `npm inst } ``` -:::info Future Enhancement +:::info Améliorations futures -In the future, we hope to generate a `tasks.json` that includes the install and build steps automatically. +Dans le futur, nous espérons générer un `tasks.json` qui inclut les étapes d'installation et de construction automatiquement. ::: diff --git a/website/i18n/fr/docusaurus-plugin-content-docs/current/guides/linux-distro-support.mdx b/website/i18n/fr/docusaurus-plugin-content-docs/current/guides/linux-distro-support.mdx index 8b25c1575..6bd2002fc 100644 --- a/website/i18n/fr/docusaurus-plugin-content-docs/current/guides/linux-distro-support.mdx +++ b/website/i18n/fr/docusaurus-plugin-content-docs/current/guides/linux-distro-support.mdx @@ -1,8 +1,8 @@ -# Linux Distro Support +# Prise en charge des distributions Linux -## Overview +## Vue d'ensemble -Wails offers Linux support but providing installation instructions for all available distributions is an impossible task. Instead, Wails tries to determine if the packages you need to develop applications are available via your system's package manager. Currently, we support the following package managers: +Wails offre le support de Linux, mais fournir des instructions d'installation pour toutes les distributions disponibles est une tâche impossible. À la place, Wails essaie de déterminer si les paquets dont vous avez besoin pour développer des applications sont disponibles via le gestionnaire de paquets de votre système. Actuellement, nous supportons les gestionnaires de paquets suivants : - apt - dnf @@ -12,11 +12,11 @@ Wails offers Linux support but providing installation instructions for all avail - pacman - zypper -## Adding package names +## Ajout des noms de paquets -There may be circumstances where your distro uses one of the supported package managers but the package name is different. For example, you may use an Ubuntu derivative, but the package name for gtk may be different. Wails attempts to find the correct package by iterating through a list of package names. The list of packages are stored in the packagemanager specific file in the `v2/internal/system/packagemanager` directory. In our example, this would be `v2/internal/system/packagemanager/apt.go`. +Il peut y avoir des cas où votre distribution de linux utilise un des gestionnaires de paquets pris en charge mais le nom du paquet est différent. Par exemple, vous pouvez utiliser un dérivé Ubuntu, mais le nom du paquet pour gtk peut être différent. Wails tente de trouver le paquet correct en itérant une liste de noms de paquets. La liste des paquets est stockée dans un fichier spécifique dans le dossier `v2/internal/system/packagemanager` . Dans notre exemple, ce serait `v2/internal/system/packagemanager/apt.go`. -In this file, the list of packages are defined by the `Packages()` method: +Dans ce fichier, la liste des paquets est définie par la méthode `Packages()`: ```go func (a *Apt) Packages() packagemap { @@ -43,7 +43,7 @@ func (a *Apt) Packages() packagemap { } ``` -Let's assume that in our linux distro, `libgtk-3` is packaged under the name `lib-gtk3-dev`. We could add support for this by adding the following line: +Supposons que dans notre distribution linux, `libgtk-3` est empaqueté sous le nom `lib-gtk3-dev`. Nous pourrions ajouter le support de ce paquet en ajoutant la ligne suivante : ```go {5} func (a *Apt) Packages() packagemap { @@ -71,12 +71,12 @@ func (a *Apt) Packages() packagemap { } ``` -## Adding new package managers +## Ajout de nouveaux gestionnaires de paquets -To add a new package manager, perform the following steps: +Pour ajouter un nouveau gestionnaire de paquets, effectuez les étapes suivantes : -- Create a new file in `v2/internal/system/packagemanager` called `.go`, where `` is the name of the package manager. -- Define a struct that conforms to the package manager interface defined in `pm.go`: +- Créez un nouveau fichier dans `v2/internal/system/packagemanager` appelé `.go`, où `` est le nom du gestionnaire de paquets. +- Définit une structure conforme à l'interface du gestionnaire de paquets définie dans `pm.go`: ```go type PackageManager interface { @@ -88,16 +88,16 @@ type PackageManager interface { } ``` -- `Name()` should return the name of the package manager -- `Packages()` should return a `packagemap`, that provides candidate filenames for dependencies -- `PackageInstalled()` should return `true` if the given package is installed -- `PackageAvailable()` should return `true` if the given package is not installed but available for installation -- `InstallCommand()` should return the exact command to install the given package name +- `Name()` doit retourner le nom du gestionnaire de paquets +- `Packages()` doit retourner une `packagemap`, qui fournit des noms de fichiers candidats pour les dépendances +- `PackageInstalled()` devrait retourner `true` si le paquet donné est installé +- `PackageAvailable()` devrait retourner `true` si le paquet donné n'est pas installé mais disponible pour l'installation +- `InstallCommand()` doit retourner la commande exacte pour installer le nom du paquet donné -Take a look at the other package managers code to get an idea how this works. +Jetez un coup d'œil au code des autres gestionnaires de paquets pour avoir une idée de comment cela fonctionne. -:::info Remember +:::info Rappel -If you add support for a new package manager, don't forget to also update this page! +Si vous ajoutez le support d'un nouveau gestionnaire de paquets, n'oubliez pas de mettre également à jour cette page ! ::: diff --git a/website/i18n/fr/docusaurus-plugin-content-docs/current/guides/linux.mdx b/website/i18n/fr/docusaurus-plugin-content-docs/current/guides/linux.mdx index 229c282bf..19e45313a 100644 --- a/website/i18n/fr/docusaurus-plugin-content-docs/current/guides/linux.mdx +++ b/website/i18n/fr/docusaurus-plugin-content-docs/current/guides/linux.mdx @@ -1,10 +1,10 @@ # Linux -This page has miscellaneous guides related to developing Wails applications for Linux. +Cette page a divers guides liés au développement d'applications Wails pour Linux. -## Video tag doesn't fire "ended" event +## Le tag vidéo ne déclenche pas l'événement "terminé" -When using a video tag, the "ended" event is not fired when the video is finished playing. This is a bug in WebkitGTK, however you can use the following workaround to fix it: +Lorsque vous utilisez un tag vidéo, l'événement "terminé" n'est pas déclenché lorsque la vidéo est finie. Ceci est un bogue dans WebkitGTK, cependant vous pouvez utiliser le contournement suivant pour le corriger : ```js videoTag.addEventListener("timeupdate", (event) => { @@ -15,4 +15,4 @@ videoTag.addEventListener("timeupdate", (event) => { }); ``` -Source: [Lyimmi](https://github.com/Lyimmi) on the [discussions board](https://github.com/wailsapp/wails/issues/1729#issuecomment-1212291275) +Source : [Lyimmi](https://github.com/Lyimmi) sur le [forum de discussion](https://github.com/wailsapp/wails/issues/1729#issuecomment-1212291275) diff --git a/website/i18n/fr/docusaurus-plugin-content-docs/current/guides/local-development.mdx b/website/i18n/fr/docusaurus-plugin-content-docs/current/guides/local-development.mdx index 4ba1f34c3..0c3878d78 100644 --- a/website/i18n/fr/docusaurus-plugin-content-docs/current/guides/local-development.mdx +++ b/website/i18n/fr/docusaurus-plugin-content-docs/current/guides/local-development.mdx @@ -1,36 +1,36 @@ -# Local Development +# Développement local -## Overview +## Vue d'ensemble -Wails is in constant development and new releases are regularly "tagged". This usually happens when all the newer code on `master` has been tested and confirmed working. If you need a bugfix or feature that has not yet made it to a release, it's possible to use the latest "bleeding edge" version using the following steps: +Wails est en développement constant et les nouvelles versions sont régulièrement "tagguées". Cela se produit généralement lorsque tout le nouveau code sur `master` a été testé et confirmé fonctionnel. Si vous avez besoin d'un correctif ou d'une fonctionnalité qui ne l'a pas encore fait pour une version, il est possible d'utiliser la dernière version "non validée" en utilisant les étapes suivantes : - `git clone https://github.com/wailsapp/wails` - `cd wails/v2/cmd/wails` - `go install` -NOTE: The directory that you cloned the project into will now be called "clonedir". +REMARQUE : Le répertoire dans lequel vous avez cloné le projet sera maintenant appelé "clonedir". -The Wails CLI will now be at the very latest version. +Le CLI de Wails sera maintenant à la dernière version. -### Updating your project +### Mise à jour du projet -To update projects to use the latest version of the Wails library, update the project's `go.mod` and ensure the following line is at the bottom of the file: +Pour mettre à jour vos projets pour utiliser la dernière version de la bibliothèque Wails, mettez à jour le fichier `go.mod` et assurez-vous que la ligne suivante est en bas du fichier : `replace github.com/wailsapp/wails/v2 => ` -Example: +Exemple: -On Windows: `replace github.com/wailsapp/wails/v2 => C:\Users\leaan\Documents\wails-v2-beta\wails\v2` +Sur Windows: `replace github.com/wailsapp/wails/v2 => C:\Users\leaan\Documents\wails-v2-beta\wails\v2` -On 'nix: `replace github.com/wailsapp/wails/v2 => /home/me/projects/wails/v2` +Sur 'nix: `replace github.com/wailsapp/wails/v2 => /home/me/projects/wails/v2` -To revert to a stable version, run: +Pour revenir à une version stable, exécutez : `go install github.com/wailsapp/wails/v2/cmd/wails@latest` -## Testing a Branch +## Tester une branche -If you want to test a branch, follow the instructions above, but ensure you switch the branch you want to test before installing: +Si vous voulez tester une branche, suivez les instructions ci-dessus, mais assurez-vous de bien vous mettre sur la branche que vous voulez tester avant d'installer : - `git clone https://github.com/wailsapp/wails` - `cd wails` @@ -38,11 +38,11 @@ If you want to test a branch, follow the instructions above, but ensure you swit - `cd v2/cmd/wails` - `go install` -Make sure you [update your project](#updating-your-project) as described above. +Assurez-vous de [mettre à jour votre projet](#updating-your-project) comme décrit ci-dessus. -## Testing a PR +## Tester une PR -If you want to test a PR, follow the instructions above, but ensure you fetch the PR and switch the branch before installing. Please replace `[IDofThePR]` with the ID of the PR shown on github.com: +Si vous voulez tester une PR, suivez les instructions ci-dessus, mais assurez-vous de récupérer la PR et d'être sur la branche de la PR avant de faire l'installation. Veuillez remplacer `[IDofThePR]` par l'ID de la PR affiché sur github.com: - `git clone https://github.com/wailsapp/wails` - `cd wails` @@ -52,4 +52,4 @@ If you want to test a PR, follow the instructions above, but ensure you fetch th - `cd v2/cmd/wails` - `go install` -Make sure you [update your project](#updating-your-project) as described above. +Assurez-vous de [mettre à jour votre projet](#updating-your-project) comme décrit ci-dessus. diff --git a/website/i18n/fr/docusaurus-plugin-content-docs/current/guides/mac-appstore.mdx b/website/i18n/fr/docusaurus-plugin-content-docs/current/guides/mac-appstore.mdx index 62233b57c..fe0405916 100644 --- a/website/i18n/fr/docusaurus-plugin-content-docs/current/guides/mac-appstore.mdx +++ b/website/i18n/fr/docusaurus-plugin-content-docs/current/guides/mac-appstore.mdx @@ -1,36 +1,42 @@ -# Mac App Store Guide +# Guide pour Mac App Store -This page gives a brief overview of how to submit your Wails App to the Mac App Store. +Cette page donne un bref aperçu de la façon de soumettre votre application Wails au Mac App Store. -## Prerequisites +## Prérequis -- You will need to have an Apple Developer account. Please find more information on the [Apple Developer Program](https://developer.apple.com/support/compare-memberships/) site -- You will need to have your Certificates, Identifiers, and App created on the developer portal. More on this below -- Xcode command line tools will need to be installed on your local machine +- Vous devrez avoir un compte développeur Apple. Veuillez trouver plus d'informations sur le site [Apple Developer Program](https://developer.apple.com/support/compare-memberships/) +- Vous aurez besoin que vos certificats, identifiants et applications soient créés sur le portail développeur. Plus d'infos sur ce sujet ci-dessous +- L'utilitaire Xcode devront être installés sur votre machine locale pour être utilisé en ligne de commandes -#### Create Certificates and Identifiers +#### Créer des certificats et des identifiants -1. Go to your [Apple Developer Account](https://developer.apple.com/account/) -2. Under `Certificates, Identifiers & Profiles`, click `Identifiers` and Register a New App ID. Use the format (com.example.app) -3. Under the same page click `Certificates` and generate new Certificates for Mac App Store Distribution. Download them and import the certificates into Keychain on your local machine. +1. Allez sur votre [Compte Développeur Apple](https://developer.apple.com/account/) +2. Sous `Certificats, Identificateurs & Profils`, cliquez sur `Identifiants` et Enregistrez un nouvel identifiant d'application. Utiliser le format (com.example.app) +3. Sous la même page, cliquez sur `Certificats` et générez de nouveaux certificats pour la distribution de l'App Store Mac. Téléchargez-les et importez les certificats dans votre trousseau sur votre machine locale. -#### Create App Submission +#### Créer une soumission d'application -1. Go to the [App Store Connect Site](https://appstoreconnect.apple.com/apps) -2. Register a new application and link the bundle ID that you created in the previous step -3. Populate your app with the correct screen shots, descriptions, etc. as required by Apple -4. Create a new version of your app +1. Allez sur le [site de connexion de l'App Store](https://appstoreconnect.apple.com/apps) +2. Enregistrez une nouvelle application et liez l'ID du lot que vous avez créé à l'étape précédente +3. Remplissez votre application avec les bonnes captures d'écran, descriptions, etc. selon les besoins d'Apple +4. Créer une nouvelle version de votre application +#### Create Provisioning Profile +1. Go to the [Apple Developer Profiles](https://developer.apple.com/account/resources/profiles/list) page +2. Add a new provisioning profile for Mac App Store Distribution +3. Set the Profile Type as Mac and select the App ID for the application created above +4. Select the Mac App Distribution certificate +5. Name the Provisioning Profile embedded and download the created profile. -## Mac App Store Process +## Processus Mac App Store -#### Enable Apple's App Sandbox +#### Activation du Sandbox Apple -Apps submitted to the Mac App Store must run under Apple's [App Sandbox](https://developer.apple.com/app-sandboxing/). You must create an `entitlements.plist` file for this to work. The recommendation is to create this file under this path `{PROJECT_DIR}/build/darwin/entitlements.plist`. +Les applications soumises au Mac App Store doivent tourner dans la [Sandbox](https://developer.apple.com/app-sandboxing/) Apple. Vous devez créer un fichier `entitlements.plist` pour que cela fonctionne. La recommandation est de créer ce fichier sous ce chemin `{PROJECT_DIR}/build/darwin/entitlements.plist`. -**Example Entitlements File** +**Example de fichier Entitlements** -This is an example entitlements file from the [RiftShare](https://github.com/achhabra2/riftshare) app. For reference please put in the entitlements your app requires. Refer to [this site](https://developer.apple.com/documentation/bundleresources/entitlements) for more information. +Ceci est un exemple du fichier entitlements de l'application [RiftShare](https://github.com/achhabra2/riftshare). Pour référence, veuillez mettre dans les droits requis par votre application. Reportez-vous à [ce site](https://developer.apple.com/documentation/bundleresources/entitlements) pour plus d'informations. You will need to replace the Team ID and Application Name with the ones you registered above. ```xml title="entitlements.plist" @@ -47,15 +53,21 @@ This is an example entitlements file from the [RiftShare](https://github.com/ach com.apple.security.files.downloads.read-write + com.apple.application-identifier + TEAM_ID.APP_NAME + com.apple.developer.team-identifier + TEAM_ID ``` -#### Build and Sign the App Package +**Add the Embedded Provisioning Profile** The Provisioning Profile created above needs to be added to the root of the applicaton. It needs to be named embedded.provisionprofile. -The following is an example script for building and signing your app for Mac App Store submission. It assumes you are running the script from your root project directory. +#### Construire et signer le package de l'application -Note the certificates for signing the app and signing the installer are different. Please make sure both are imported into Keychain. Find the strings in Keychain and insert them below. Populate your certificate names, and app name below. Running the following script will generate a signed `app.pkg` file in the root directory of your app. +Ce qui suit est un exemple de script pour construire et signer votre application pour la soumission de l'App Store Mac. Il suppose que vous exécutez le script depuis la racine de votre projet. + +Notez que les certificats pour signer l'application et l'installateur sont différents. Veuillez vous assurer que les deux sont importés dans votre trousseau. Trouvez les chaînes de caractères dans Trousseau et insérez-les ci-dessous. Remplissez le nom de votre certificat et le nom de l'application ci-dessous. Exécuter le script suivant générera un fichier `app.pkg` signé à la racine de votre application. ```bash title="macappstore-build.sh" #!/bin/bash @@ -66,18 +78,20 @@ APP_NAME="YourApp" wails build -platform darwin/universal -clean +cp ./embedded.provisionprofile "./build/bin/$APP_NAME.app/Contents" + codesign --timestamp --options=runtime -s "$APP_CERTIFICATE" -v --entitlements ./build/darwin/entitlements.plist ./build/bin/$APP_NAME.app productbuild --sign "$PKG_CERTIFICATE" --component ./build/bin/$APP_NAME.app /Applications ./$APP_NAME.pkg ``` -#### Upload App Bundle +#### Télécharger l'application -You will need to upload the generated package file and associate it to your Application before you will be able to submit it for review. +Vous devrez télécharger le fichier de package généré et l'associer à votre application avant de pouvoir le soumettre pour vérification. -1. Download the [Transporter App](https://apps.apple.com/us/app/transporter/id1450874784) from the Mac App Store -2. Open it and sign in with your Apple ID -3. Click the + sign and select the `APP_NAME.pkg` file that you generated in the previous step. Upload it -4. Go back to the [App Store Connect](https://appstoreconnect.apple.com/apps) site and navigate back into your app submission. Select the version that you are ready to make available on the App Store. Under `Build` select the package that you uploaded via Transporter. +1. Téléchargez l' [App Transporter](https://apps.apple.com/us/app/transporter/id1450874784) depuis le Mac App Store +2. Ouvrez-le et connectez-vous avec votre identifiant Apple +3. Cliquez sur le signe + et sélectionnez le fichier `APP_NAME.pkg` que vous avez généré à l'étape précédente. Télécharger le +4. Retournez sur le site [App Store Connect](https://appstoreconnect.apple.com/apps) et retournez dans la soumission de votre application. Sélectionnez la version que vous êtes prêt à mettre à disposition sur l'App Store. Sous `Build` sélectionnez le package que vous avez téléchargé via Transporter. -That's it! You can now use the site to submit your App for review. After a few business days if all goes well you should see your App live on the Mac App Store. \ No newline at end of file +C'est terminé ! Vous pouvez maintenant utiliser le site pour soumettre votre application pour vérification. Après quelques jours ouvrables si tout se passe bien, vous devriez voir votre application en direct sur le Mac App Store. diff --git a/website/i18n/fr/docusaurus-plugin-content-docs/current/guides/manual-builds.mdx b/website/i18n/fr/docusaurus-plugin-content-docs/current/guides/manual-builds.mdx index dcf192d33..e794ce4c3 100644 --- a/website/i18n/fr/docusaurus-plugin-content-docs/current/guides/manual-builds.mdx +++ b/website/i18n/fr/docusaurus-plugin-content-docs/current/guides/manual-builds.mdx @@ -1,26 +1,26 @@ -# Manual Builds +# Compilations manuelles -The Wails CLI does a lot of heavy lifting for the project, but sometimes it's desirable to manually build your project. This document will discuss the different operations the CLI does and how this may be achieved in different ways. +Le CLI Wails fait beaucoup de travail pour le projet, mais il est parfois souhaitable de construire manuellement votre projet. Ce document discutera des différentes opérations que fait le CLI et des différentes façons d'y parvenir. -## Build Process +## Processus de construction -When either `wails build` or `wails dev` are used, the Wails CLI performs a common build process: +Lorsque `wails build` ou `wails dev` sont utilisés, le CLI Wails effectue un processus de construction commun: - - Install frontend dependencies - - Build frontend project - - Generate build assets - - Compile application - - [optional] Compress application + - Installation des dépendances frontend + - Construire le projet frontend + - Générer des ressources de construction + - Compiler l'application + - [optionnel] Compresser l'application -### Install frontend dependencies +### Installation des dépendances frontend -#### CLI Steps +#### Étapes CLI -- If the `-s` flag is given, this step is skipped -- Checks `wails.json` to see if there is an install command in the key `frontend:install` -- If there isn't, it skips this step -- If there is, it checks if `package.json` exists in the frontend directory. If it doesn't exist, it skips this step -- An MD5 sum is generated from the `package.json` file contents +- Si l'option `-s` est donné, cette étape est ignorée +- Vérifie `wails.json` pour voir s'il y a une commande install dans `frontend:install` +- S'il n'y en a pas, il saute cette étape +- Si le fichier existe, vérifie si `package.json` existe dans le répertoire du frontend. S'il n'existe pas, il saute cette étape +- Un hash MD5 est générée à partir du contenu du fichier `package.json` - It checks for the existence of `package.json.md5` and if it exists, will compare the contents of it (an MD5 sum) with the one generated to see if the contents have changed. If they are the same, this step is skipped - If `package.json.md5` does not exist, it creates it using the generated MD5 sum - If a build is now required, or `node_modules` does not exist, or the `-f` flag is given, the install command is executed in the frontend directory @@ -29,13 +29,13 @@ When either `wails build` or `wails dev` are used, the Wails CLI performs a comm This step could be done from the command line or a script with `npm install`. -### Build frontend project +### Construire le projet frontend #### Wails CLI -- If the `-s` flag is given, this step is skipped +- Si l'option `-s` est donné, cette étape est ignorée - Checks `wails.json` to see if there is a build command in the key `frontend:build` -- If there isn't, it skips this step +- S'il n'y en a pas, il saute cette étape - If there is, it is executed in the frontend directory #### Manual Steps @@ -64,7 +64,7 @@ This step could be done from the command line or a script with `npm run build` o - Create / Update a `.manifest` file for your application - Use the [winres CLI](https://github.com/tc-hib/go-winres) to generate a `.syso` file. -### Compile application +### Compiler l'application #### Wails CLI diff --git a/website/i18n/fr/docusaurus-plugin-content-docs/current/guides/troubleshooting.mdx b/website/i18n/fr/docusaurus-plugin-content-docs/current/guides/troubleshooting.mdx index 2accc4e5f..a98e64ed4 100644 --- a/website/i18n/fr/docusaurus-plugin-content-docs/current/guides/troubleshooting.mdx +++ b/website/i18n/fr/docusaurus-plugin-content-docs/current/guides/troubleshooting.mdx @@ -159,4 +159,8 @@ Sources: https://github.com/wailsapp/wails/issues/1806 and https://github.com/wa It's preferable to add `frontend/node_modules` and `frontend/package-lock.json` to your `.gitignore`. Otherwise when opening your repository on another machine that may have different versions of Node installed, you may not be able to run your application. -If this does happen, simply delete `frontend/node_modules` and `frontend/package-lock.json` and run your `wails build` or `wails dev` command again. \ No newline at end of file +If this does happen, simply delete `frontend/node_modules` and `frontend/package-lock.json` and run your `wails build` or `wails dev` command again. + +## Build process stuck on "Generating bindings" + +Bindings generation process runs your application in a special mode. If application, intentionally or unintentionally, contains an endless loop (i.e. not exiting after `wails.Run()` finished), this can lead to build process stuck on the stage of bindings generation. Please make sure your code exits properly. diff --git a/website/i18n/fr/docusaurus-plugin-content-docs/current/guides/windows-installer.mdx b/website/i18n/fr/docusaurus-plugin-content-docs/current/guides/windows-installer.mdx index 88a1698db..a819d070d 100644 --- a/website/i18n/fr/docusaurus-plugin-content-docs/current/guides/windows-installer.mdx +++ b/website/i18n/fr/docusaurus-plugin-content-docs/current/guides/windows-installer.mdx @@ -1,4 +1,4 @@ -# NSIS installer +# Installateur NSIS ```mdx-code-block

@@ -10,33 +10,33 @@

``` -Wails supports generating Windows installers using the [NSIS installer](https://nsis.sourceforge.io/). +Wails prend en charge la génération d'installateurs Windows en utilisant l'installateur [NSIS](https://nsis.sourceforge.io/). -## Installing NSIS +## Installation de NSIS ### Windows -The installer is available on the [NSIS Download](https://nsis.sourceforge.io/Download) page. +L'installateur est disponible sur la page [de téléchargement NSIS](https://nsis.sourceforge.io/Download). -If you use the chocolatey package manager, run the following script: +Si vous utilisez le gestionnaire de paquets chocolatey, exécutez le script suivant : ``` choco install nsis ``` -If you install NSIS manually, you need to add the _Bin_ folder, which contains `makensis.exe`, in your NSIS installation to your path. [Here](https://www.architectryan.com/2018/03/17/add-to-the-path-on-windows-10/) is a good tutorial on how to add to path on Windows. +Si vous installez NSIS manuellement, vous devez ajouter le dossier _Bin_ , qui contient `makensis.exe`, dans la variable d'environnement PATH. [Cette page](https://www.architectryan.com/2018/03/17/add-to-the-path-on-windows-10/) est un bon tutoriel sur comment ajouter un dossier dans votre variable d'environnement PATH sur Windows. ### Linux -The `nsis` package should be available through your distribution's package manager. +Le paquet `nsis` devrait être disponible via le gestionnaire de paquets de votre distribution. ### MacOS -NSIS is available to install through homebrew: `brew install nsis`. +NSIS est disponible via homebrew en utilisant : `brew install nsis`. -## Generating the installer +## Génération de l'installateur -When a new project is created, Wails generates the NSIS configuration files in `build/windows/installer`. The config data is read from `installer/info.json` and that is configured to use the project's `wails.json` Info section: +Lorsqu'un nouveau projet est créé, Wails génère les fichiers de configuration NSIS dans `build/windows/installer`. La configuration est lue dans `installer/info.json`, et est configuré pour utiliser la section info du fichier `wails.json` : ```json // ... @@ -49,10 +49,10 @@ When a new project is created, Wails generates the NSIS configuration files in ` }, ``` -To generate an installer for your application, use the `-nsis` flag with `wails build`: +Pour générer l'installateur de votre application, utilisez l'option `-nsis` avec la commande `wails build`: ``` wails build -nsis ``` -The installer will now be available in the `build/bin` directory. +L'installateur sera ensuite disponible dans le dossier `build/bin`. diff --git a/website/i18n/fr/docusaurus-plugin-content-docs/current/howdoesitwork.mdx b/website/i18n/fr/docusaurus-plugin-content-docs/current/howdoesitwork.mdx index d2da0841a..0a57f5851 100644 --- a/website/i18n/fr/docusaurus-plugin-content-docs/current/howdoesitwork.mdx +++ b/website/i18n/fr/docusaurus-plugin-content-docs/current/howdoesitwork.mdx @@ -86,38 +86,38 @@ Une liste complète des options d'application peut être trouvée dans la [Réf #### Ressources -The `Assets` option is mandatory as you can't have a Wails application without frontend assets. Those assets can be any files you would expect to find in a web application - html, js, css, svg, png, etc. **There is no requirement to generate asset bundles** - plain files will do. When the application starts, it will attempt to load `index.html` from your assets and the frontend will essentially work as a browser from that point on. It is worth noting that there is no requirement on where in the `embed.FS` the files live. It is likely that the embed path uses a nested directory relative to your main application code, such as `frontend/dist`: +L'option `Assets` est obligatoire car vous ne pouvez pas avoir d'application Wails sans ressources en frontend. Ces ressources peuvent être n'importe quel fichier que vous attendriez à trouver dans une application web - html, js, css, svg, png, etc. **Il n'y a aucune obligation d'utiliser un générateur de code ou framework** - des fichiers bruts suffisent. Lorsque l'application démarre, elle tentera de charger le fichier `index.html` à partir de vos ressources et le frontend fonctionnera essentiellement comme un navigateur à partir de ce point. Il est intéressant de noter que il n'y a pas de condition sur l'emplacement de `embed.FS`. Il est probable que le chemin d'intégration utilise un répertoire imbriqué par rapport au code de votre application principale, comme `frontend/dist`: ```go title="main.go" //go:embed all:frontend/dist var assets embed.FS ``` -At startup, Wails will iterate the embedded files looking for the directory containing `index.html`. All other assets will be loaded relative to this directory. +Au démarrage, Wails va itérer les fichiers embarqués à la recherche du répertoire contenant `index.html`. Tous les autres actifs seront chargés par rapport à à ce répertoire. -As production binaries use the files contained in `embed.FS`, there are no external files required to be shipped with the application. +Comme les binaires de production utilisent les fichiers contenus dans `embed.FS`, il n'y a aucun fichier externe requis pour être expédié avec l'application. -When running in development mode using the `wails dev` command, the assets are loaded off disk, and any changes result in a "live reload". The location of the assets will be inferred from the `embed.FS`. +Lorsque vous exécutez en mode développement en utilisant la commande `wails dev` , les assets sont chargés à partir du disque, et tous les changements résultent en un "rechargement en direct". L'emplacement des actifs sera déduit de la `embed.FS`. -More details can be found in the [Application Development Guide](guides/application-development.mdx). +Plus de détails peuvent être trouvés dans le [Guide de développement d'applications](guides/application-development.mdx). -#### Application Lifecycle Callbacks +#### Callbacks du cycle de vie de l'application -Just before the frontend is about to load `index.html`, a callback is made to the function provided in [OnStartup](reference/options.mdx#onstartup). A standard Go context is passed to this method. This context is required when calling the runtime so a standard pattern is to save a reference to in this method. Just before the application shuts down, the [OnShutdown](reference/options.mdx#onshutdown) callback is called in the same way, again with the context. There is also an [OnDomReady](reference/options.mdx#ondomready) callback for when the frontend has completed loading all assets in `index.html` and is equivalent of the [`body onload`](https://www.w3schools.com/jsref/event_onload.asp) event in JavaScript. It is also possible to hook into the window close (or application quit) event by setting the option [OnBeforeClose](reference/options.mdx#onbeforeclose). +Juste avant que le frontend ne soit sur le point de charger `index.html`, un callback est fait à la fonction fournie dans [OnStartup](reference/options.mdx#onstartup). Un contexte standard Go est passé à cette méthode. Ce contexte est requis lors de l'appel à l'exécution, donc une bonne pratique est de sauvegarder une référence dans cette méthode. Juste avant que l'application ne s'arrête, la fonction de rappel [OnShutdown](reference/options.mdx#onshutdown) est appelée de la même manière, à nouveau avec le contexte. Il y a aussi un callback [OnDomReady](reference/options.mdx#ondomready) pour quand le frontend a terminé le chargement de tous les assets de `index.html` et est équivalent à l'événement [`body onload`](https://www.w3schools.com/jsref/event_onload.asp) en JavaScript. Il est également possible de s'accrocher à l'événement de fermeture de la fenêtre (ou de quitter l'application) en définissant l'option [OnBeforeClose](reference/options.mdx#onbeforeclose). -#### Method Binding +#### Binding de méthodes -The `Bind` option is one of the most important options in a Wails application. It specifies which struct methods to expose to the frontend. Think of structs like "controllers" in a traditional web application. When the application starts, it examines the struct instances listed in the `Bind` field in the options, determines which methods are public (starts with an uppercase letter) and will generate JavaScript versions of those methods that can be called by the frontend code. +L'option `Bind` est l'une des options les plus importantes dans une application Wails. Il spécifie quelles méthodes de structs sont à exposer au frontend. Pensez à des "contrôleurs" dans une application web traditionnelle. Quand l'application démarre, elle examine les instances structurées listées dans l'option `Bind`, détermine quelles méthodes sont publiques (commence par une lettre majuscule) et générera des versions JavaScript de ces méthodes qui peuvent être appelées par le code en frontend. :::info Note -Wails requires that you pass in an _instance_ of the struct for it to bind it correctly +Wails exige que vous passiez dans une _instance_ du struct pour qu'il le lie correctement ::: -In this example, we create a new `App` instance and then add this instance to the `Bind` option in `wails.Run`: +Dans cet exemple, nous créons une nouvelle instance `App` puis ajoutons cette instance à l'option `Bind` dans `wails.Run`: -```go {16,24} title="main.go" +```go {17,27} title="main.go" package main import ( @@ -162,9 +162,9 @@ func (a *App) Greet(name string) string { } ``` -You may bind as many structs as you like. Just make sure you create an instance of it and pass it in `Bind`: +Vous pouvez lier autant de structures que vous le souhaitez. Assurez-vous juste de créer une instance de celle-ci et de la passer dans `Bind`: -```go {8-10} +```go {10-12} //... err := wails.Run(&options.App{ Title: "Basic Demo", @@ -182,26 +182,26 @@ You may bind as many structs as you like. Just make sure you create an instance ``` -When you run `wails dev` (or `wails generate module`), a frontend module will be generated containing the following: +Lorsque vous exécutez `wails dev` (ou `wails generate module`), un module frontend sera généré contenant les éléments suivants : -- JavaScript bindings for all bound methods -- TypeScript declarations for all bound methods -- TypeScript definitions for all Go structs used as inputs or outputs by the bound methods +- JavaScript bindings pour toutes les méthodes liées +- Déclarations TypeScript pour toutes les méthodes liées +- Définitions TypeScript pour toutes les structures Go utilisées comme entrées ou sorties par les méthodes liées -This makes it incredibly simple to call Go code from the frontend, using the same strongly typed datastructures. +Cela rend incroyablement simple d'appeler le code Go depuis le frontend, en utilisant les mêmes structures de données. ## Le frontend ### Vue d’ensemble -The frontend is a collection of files rendered by webkit. It's like a browser and webserver in one. There is virtually[^1] no limit to which frameworks or libraries you can use. The main points of interaction between the frontend and your Go code are: +Le frontend est une collection de fichiers rendus par webkit. C'est comme un navigateur et un serveur web en un. Il y a virtuellement[^1] aucune limite vis à vis des frameworks ou des bibliothèques que vous pouvez utiliser. Les principaux points d'interaction entre le frontend et votre code Go sont: -- Calling bound Go methods -- Calling runtime methods +- L'appel des méthodes Go liées +- L'appel des méthodes d'exécution -### Calling bound Go methods +### L'appel des méthodes Go liées -When you run your application with `wails dev`, it will automatically generate JavaScript bindings for your structs in a directory called `wailsjs/go` (You can also do this by running `wails generate module`). The generated files mirror the package names in your application. In the example above, we bind `app`, which has one public method `Greet`. This will lead to the generation of the following files: +Lorsque vous exécutez votre application avec `wails dev`, il générera automatiquement des liaisons JavaScript pour vos structures dans un répertoire appelé `wailsjs/go` (Vous pouvez aussi le faire en exécutant `wails generate module`). Les fichiers générés reflètent les noms de paquets dans votre application. Dans l'exemple ci-dessus, nous associons `app`, qui a une méthode publique `Greet`. Cela conduira à la génération des fichiers suivants : ```bash wailsjs @@ -211,7 +211,7 @@ wailsjs └─App.js ``` -Here we can see that there is a `main` package that contains the JavaScript bindings for the bound `App` struct, as well as the TypeScript declaration file for those methods. To call `Greet` from our frontend, we simply import the method and call it like a regular JavaScript function: +Ici nous pouvons voir qu'il y a un dossier `main` qui contient les liaisons JavaScript pour la structure `App` liée, ainsi que que le fichier de déclaration TypeScript pour ces méthodes. Pour appeler `Greet` depuis notre frontend, nous importons simplement la méthode et l'appelons comme une fonction JavaScript régulière: ```javascript // ... @@ -224,29 +224,29 @@ function doGreeting(name) { } ``` -The TypeScript declaration file gives you the correct types for the bound methods: +La déclaration en TypeScript vous donne les bons types pour les méthodes paramètres et la valeur retournée : ```ts export function Greet(arg1: string): Promise; ``` -The generated methods return a Promise. A successful call will result in the first return value from the Go call to be passed to the `resolve` handler. An unsuccessful call is when a Go method that has an error type as it's second return value, passes an error instance back to the caller. This is passed back via the `reject` handler. In the example above, `Greet` only returns a `string` so the JavaScript call will never reject - unless invalid data is passed to it. +Les méthodes générées retournent une Promise. Un appel réussi entraînera la première valeur de retour de l'appel Go à passer au `resolve` handler. Un appel infructueux est quand une méthode Go qui a un type d'erreur comme valeur de deuxième retour, passe une erreur à l'appelant. Ceci est passé en arrière via le handler `reject`. Dans l'exemple ci-dessus, `Greet` ne retourne qu'un `string` donc l'appel JavaScript ne sera jamais rejeté - à moins que des données non valides ne lui soient passées. -All data types are correctly translated between Go and JavaScript. Even structs. If you return a struct from a Go call, it will be returned to your frontend as a JavaScript class. +Tous les types de données sont correctement traduits entre Go et JavaScript. Même les structs. Si vous renvoyez un struct d'un appel Go, il sera retourné à votre frontend en tant que classe JavaScript. :::info Note -Struct fields *must* have a valid `json` tag to be included in the generated TypeScript. +Struct fields _must_ have a valid `json` tag to be included in the generated TypeScript. -Anonymous nested structs are not supported at this time. +Les structures imbriquées anonymes ne sont pas supportées pour le moment. ::: -It is possible to send structs back to Go. Any JavaScript map/class passed as an argument that is expecting a struct, will be converted to that struct type. To make this process a lot easier, in `dev` mode, a TypeScript module is generated, defining all the struct types used in bound methods. Using this module, it's possible to construct and send native JavaScript objects to the Go code. +Il est possible d'envoyer des structures à Go. N'importe quelle map/classe JavaScript passée comme argument, sera convertie en son équivalent. Pour faciliter ce processus, en mode `dev` un module TypeScript est généré, définissant tous les types de structures utilisés dans les méthodes liées. En utilisant ce module, il est possible de construire et envoyer des objets JavaScript natifs au code Go. -There is also support for Go methods that use structs in their signature. All Go structs specified by a bound method (either as parameters or return types) will have TypeScript versions auto generated as part of the Go code wrapper module. Using these, it's possible to share the same data model between Go and JavaScript. +Il y a aussi le support des méthodes Go qui utilisent les structures dans leur signature. Toutes les structures Go spécifiées par une méthode liée (que ce soit en tant que paramètres ou types de retour) auront les versions TypeScript automatiques générées dans le module de gestion de code Go. En utilisant ceux-ci, il est possible de partager le même modèle de données entre Go et JavaScript. -Example: We update our `Greet` method to accept a `Person` instead of a string: +Exemple: Nous mettons à jour notre méthode `Greet` pour accepter une `Person` au lieu d'une chaîne de caractères : ```go title="main.go" type Person struct { @@ -265,7 +265,7 @@ func (a *App) Greet(p Person) string { } ``` -The `wailsjs/go/main/App.js` file will still have the following code: +Le fichier `wailsjs/go/main/App.js` aura toujours le code suivant : ```js title="App.js" export function Greet(arg1) { @@ -273,7 +273,7 @@ export function Greet(arg1) { } ``` -But the `wailsjs/go/main/App.d.ts` file will be updated with the following code: +Mais le fichier `wailsjs/go/main/App.d.ts` sera mis à jour avec le code suivant : ```ts title="App.d.ts" import { main } from "../models"; @@ -281,7 +281,7 @@ import { main } from "../models"; export function Greet(arg1: main.Person): Promise; ``` -As we can see, the "main" namespace is imported from a new "models.ts" file. This file contains all the struct definitions used by our bound methods. In this example, this is a `Person` struct. If we look at `models.ts`, we can see how the models are defined: +Comme nous pouvons le voir, le namespace "main" est importé à partir du nouveau fichier "models.ts". Ce fichier contient toutes les définitions de struct utilisées par nos méthodes liées. Dans cet exemple, c'est une struct `Person`. Si nous regardons `models.ts`, nous pouvons voir comment les modèles sont définis : ```ts title="models.ts" export namespace main { @@ -336,7 +336,7 @@ export namespace main { } ``` -So long as you have TypeScript as part of your frontend build configuration, you can use these models in the following way: +Tant que vous avez TypeScript dans votre configuration de compilation en frontend, vous pouvez utiliser ces modèles de la manière suivante: ```js title="mycode.js" import { Greet } from "../wailsjs/go/main/App"; @@ -352,18 +352,18 @@ function generate() { } ``` -The combination of generated bindings and TypeScript models makes for a powerful development environment. +La combinaison des liaisons générées et des modèles TypeScript crée un environnement de développement puissant. -More information on Binding can be found in the [Binding Methods](guides/application-development.mdx#binding-methods) section of the [Application Development Guide](guides/application-development.mdx). +Plus d'informations sur la liaison peuvent être trouvées dans la section [Méthodes de liaison](guides/application-development.mdx#binding-methods) de la [Guide de développement d'applications](guides/application-development.mdx). ### Appeler les méthodes runtime -The JavaScript runtime is located at `window.runtime` and contains many methods to do various tasks such as emit an event or perform logging operations: +Le runtime JavaScript se trouve dans `window.runtime` et contient de nombreuses méthodes pour faire diverses tâches telles qu'émettre un événement ou effectuer des opérations de journalisation : ```js title="mycode.js" window.runtime.EventsEmit("my-event", 1); ``` -More details about the JS runtime can be found in the [Runtime Reference](reference/runtime/intro). +Plus de détails sur l'exécutable JS peuvent être trouvés dans la [Référence d'exécution](reference/runtime/intro). -[^1]: There is a very small subset of libraries that use features unsupported in WebViews. There are often alternatives and workarounds for such cases. +[^1]: Il y a un très petit sous-ensemble de bibliothèques qui utilisent des fonctionnalités non prises en charge dans WebViews. Il y a souvent des alternatives et des solutions de contournement pour de tels cas. diff --git a/website/i18n/fr/docusaurus-plugin-content-docs/current/reference/cli.mdx b/website/i18n/fr/docusaurus-plugin-content-docs/current/reference/cli.mdx index f6bff4b00..9e5a18fc5 100644 --- a/website/i18n/fr/docusaurus-plugin-content-docs/current/reference/cli.mdx +++ b/website/i18n/fr/docusaurus-plugin-content-docs/current/reference/cli.mdx @@ -71,6 +71,7 @@ Si vous n'êtes pas sûr d'un modèle, inspectez les fichiers `package.json` et | -windowsconsole | Garder la fenêtre de la console lors de la construction d'une version pour Windows | | | -obfuscate | Cacher le code de l'application en utilisant [garble](https://github.com/burrowers/garble) | false | | -garbleargs | Arguments à passer à garble | `-literals -tiny -seed=random` | +| -nosyncgomod | Ne pas synchroniser go.mod avec la version Wails | false | Pour une description détaillée des options `webview2` , veuillez vous référer au Guide de [Windows](../guides/windows.mdx). @@ -80,8 +81,10 @@ Exemple: `wails build -clean -o myproject.exe` -:::Info -Sur Mac, l'application sera livrée avec `Info.plist`, pas `Info.dev.plist`. +:::info + +On Mac, the application will be bundled with `Info.plist`, not `Info.dev.plist`. + ::: :::info UPX sur Apple Silicon @@ -153,77 +156,80 @@ Your system is ready for Wails development! - Le fichier `go.mod` de l'application sera mis à jour pour utiliser la même version de Wails que le CLI - L'application est compilée et exécutée automatiquement -- A watcher is started and will trigger a rebuild of your dev app if it detects changes to your go files -- A webserver is started on `http://localhost:34115` which serves your application (not just frontend) over http. This allows you to use your favourite browser development extensions -- All application assets are loaded from disk. If they are changed, the application will automatically reload (not rebuild). All connected browsers will also reload -- A JS module is generated that provides the following: - - JavaScript wrappers of your Go methods with autogenerated JSDoc, providing code hinting - - TypeScript versions of your Go structs, that can be constructed and passed to your go methods -- A second JS module is generated that provides a wrapper + TS declaration for the runtime -- On macOS, it will bundle the application into a `.app` file and run it. It will use a `build/darwin/Info.dev.plist` for development. +- Un observateur est démarré et déclenchera une reconstruction de votre application de développement s'il détecte des changements dans vos fichiers go +- Un serveur web est lancé sur `http://localhost:34115` qui sert votre application (et pas seulement le frontend) sur http. Cela vous permet d'utiliser les extensions de développement de votre navigateur favori +- Tous les assets de l'application sont chargés à partir du disque. Si elles sont modifiées, l'application se rechargera automatiquement (pas de recompilation). Tous les navigateurs connectés rechargeront également +- Un module JS est généré qui fournit les éléments suivants : + - Les méthodes Javascript permettant d'appeler vos méthodes Go avec JSDoc autogénérée, vous fournissant des indications sur les méthodes + - Les versions TypeScript de vos structures Go, qui peuvent être construites et transmises à vos méthodes go +- Un second module JS est généré qui fournit une déclaration des méthodes et structures pour l'exécutable +- Sur macOS, il regroupera l'application dans un fichier `.app` et l'exécutera. Il utilisera un `build/darwin/Info.dev.plist` pour le développement. + +| Option | Description | Par défaut | +|:------------------------------------ |:------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |:------------------------ | +| -assetdir "./chemin/vers/les/assets" | Sert les assets depuis le répertoire donné au lieu d'utiliser le fichier FS fourni | Valeur dans `wails.json` | +| -browser | Ouvre un navigateur à `http://localhost:34115` au démarrage | | +| -compiler "compiler" | Utiliser un autre compilateur pour compiler, par exemple go1.15beta1 | go | +| -e | Extensions pour déclencher les rebuilds (séparés par des virgules) | go | +| -reloaddirs | Répertoires supplémentaires pour déclencher les recharges (séparés par des virgules) | Valeur dans `wails.json` | +| -ldflags "flags" | Options supplémentaires à passer au compilateur | | +| -tags "extra tags" | Options de construction à passer au compilateur (séparées par des guillemets et des espaces) | | +| -loglevel "loglevel" | Niveau de log à utiliser - Trace, Debug, Info, Warning, Error | Debug | +| -noreload | Désactiver le rechargement automatique lorsque les actifs changent | | +| -nocolour | Désactiver la couleur dans le terminal | false | +| -nogen | Désactiver la génération du module | | +| -v | Niveau de verbosité (0 - silencieux, 1 - par défaut, 2 - verbeux) | 1 | +| -wailsjsdir | Le répertoire où stocker les modules JS Wails générés | Valeur dans `wails.json` | +| -debounce | Le temps d'attente pour le rechargement après qu'une modification d'actif est détectée | 100 (millisecondes) | +| -devserver "host:port" | L'adresse à laquelle lier le serveur de développement wails | "localhost:34115" | +| -frontenddevserverurl "url" | Utiliser l'url du serveur de développement tiers pour servir les actifs, EG Vite | "" | +| -appargs "args" | Arguments passés à l'application en style shell | | +| -save | Sauvegarde les options `assetdir`, `reloaddirs`, `wailsjsdir`, `debounce`, `devserver` and `frontenddevserverurl` dans `wails.json` pour quelles deviennent les informations par défaut pour les prochaines utilisations. | | +| -race | Construire avec le détecteur Go race | false | +| -s | Ignorer la construction du frontend | false | +| -nosyncgomod | Ne pas synchroniser go.mod avec la version Wails | false | + -| Option | Description | Par défaut | -|:---------------------------- |:----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |:--------------------- | -| -assetdir "./path/to/assets" | Serve assets from the given directory instead of using the provided asset FS | Value in `wails.json` | -| -browser | Opens a browser to `http://localhost:34115` on startup | | -| -compiler "compiler" | Utiliser un autre compilateur pour compiler, par exemple go1.15beta1 | go | -| -e | Extensions to trigger rebuilds (comma separated) | go | -| -reloaddirs | Additional directories to trigger reloads (comma separated) | Value in `wails.json` | -| -ldflags "flags" | Options supplémentaires à passer au compilateur | | -| -tags "extra tags" | Build tags to pass to compiler (quoted and space separated) | | -| -loglevel "loglevel" | Loglevel to use - Trace, Debug, Info, Warning, Error | Debug | -| -noreload | Disable automatic reload when assets change | | -| -nocolour | Turn off colour cli output | false | -| -nogen | Disable generate module | | -| -v | Verbosity level (0 - silent, 1 - standard, 2 - verbose) | 1 | -| -wailsjsdir | The directory to generate the generated Wails JS modules | Value in `wails.json` | -| -debounce | The time to wait for reload after an asset change is detected | 100 (milliseconds) | -| -devserver "host:port" | The address to bind the wails dev server to | "localhost:34115" | -| -frontenddevserverurl "url" | Use 3rd party dev server url to serve assets, EG Vite | "" | -| -appargs "args" | Arguments passed to the application in shell style | | -| -save | Saves the given `assetdir`, `reloaddirs`, `wailsjsdir`, `debounce`, `devserver` and `frontenddevserverurl` flags in `wails.json` to become the defaults for subsequent invocations. | | -| -race | Construire avec le détecteur Go race | false | -| -s | Ignorer la construction du frontend | false | Exemple: `wails dev -assetdir ./frontend/dist -wailsjsdir ./frontend/src -browser` -This command will do the following: +Cette commande fera ce qui suit : -- Build the application and run it (more details [here](../guides/manual-builds.mdx) -- Generate the Wails JS modules in `./frontend/src` -- Watch for updates to files in `./frontend/dist` and reload on any change -- Open a browser and connect to the application +- Construisez l'application et exécutez-la (plus de détails [ici](../guides/manual-builds.mdx) +- Générer les modules JS Wails dans `./frontend/src` +- Surveillez les mises à jour des fichiers dans `./frontend/dist` et rechargez en cas de changement +- Ouvre un navigateur et se connecte à l'application -There is more information on using this feature with existing framework scripts [here](../guides/application-development.mdx#live-reloading). +Il y a plus d'informations sur l'utilisation de cette fonctionnalité avec les scripts de framework existants [ici](../guides/application-development.mdx#live-reloading). ## generate ### template -Wails uses templates for project generation. The `wails generate template` command helps scaffold a template so that it may be used for generating projects. +Wails utilise des modèles pour la génération de projets. La commande `wails génère le template` aide à échafauder un modèle afin que il puisse être utilisé pour générer des projets. -| Option | Description | -|:---------------- |:------------------------------------------- | -| -name | The template name (Mandatory) | -| -frontend "path" | Path to frontend project to use in template | +| Option | Description | +|:---------------- |:-------------------------------------------------------- | +| -name | Le nom du modèle (Obligatoire) | +| -frontend "path" | Chemin vers le projet frontend à utiliser dans le modèle | -For more details on creating templates, consult the [Templates guide](../guides/templates.mdx). +Pour plus de détails sur la création de modèles, consultez le [Guide sur les modèles](../guides/templates.mdx). ### module -The `wails generate module` command allows you to manually generate the `wailsjs` directory for your application. +La commande `wails génère le module` vous permet de générer manuellement le répertoire `wailsjs` pour votre application. ## update -`wails update` will update the version of the Wails CLI. +`wails update` va mettre à jour la version du CLI Wails. -| Option | Description | -|:------------------ |:------------------------------------- | -| -pre | Update to latest pre-release version | -| -version "version" | Install a specific version of the CLI | +| Option | Description | +|:------------------ |:----------------------------------------------------- | +| -pre | Mettre à jour la version avec la dernière pre-release | +| -version "version" | Installer une version spécifique du CLI | ## version -`wails version` will simply output the current CLI version. +`wails version` va simplement afficher la version actuelle du CLI. diff --git a/website/i18n/fr/docusaurus-plugin-content-docs/current/reference/menus.mdx b/website/i18n/fr/docusaurus-plugin-content-docs/current/reference/menus.mdx index 304f57d65..34c6d96a5 100644 --- a/website/i18n/fr/docusaurus-plugin-content-docs/current/reference/menus.mdx +++ b/website/i18n/fr/docusaurus-plugin-content-docs/current/reference/menus.mdx @@ -4,9 +4,9 @@ sidebar_position: 4 # Menus -It is possible to add an application menu to Wails projects. This is achieved by defining a [Menu](#menu) struct and setting it in the [`Menu`](../reference/options.mdx#menu) application config, or by calling the runtime method [MenuSetApplicationMenu](../reference/runtime/menu.mdx#menusetapplicationmenu). +Il est possible d'ajouter un menu applicatif aux projets Wails. Ceci est réalisé en définissant une structure [Menu](#menu) et en la définissant dans la configuration de l'application [`Menu`](../reference/options.mdx#menu) , ou en appelant la méthode d'exécution [MenuSetApplicationMenu](../reference/runtime/menu.mdx#menusetapplicationmenu). -An example of how to create a menu: +Un exemple de définition d'un menu : ```go AppMenu := menu.NewMenu() @@ -33,13 +33,13 @@ An example of how to create a menu: // ... ``` -It is also possible to dynamically update the menu, by updating the menu struct and calling [MenuUpdateApplicationMenu](../reference/runtime/menu.mdx#menuupdateapplicationmenu). +Il est également possible de mettre à jour dynamiquement le menu, en mettant à jour le menu struct et en appelant [MenuUpdateApplicationMenu](../reference/runtime/menu.mdx#menuupdateapplicationmenu). -The example above uses helper methods, however it's possible to build the menu structs manually. +L'exemple ci-dessus utilise des méthodes d'aide, cependant il est possible de construire le menu manuellement. ## Menu -A Menu is a collection of MenuItems: +Un Menu est une collection de MenuItems: ```go title="Package: github.com/wailsapp/wails/v2/pkg/menu" type Menu struct { @@ -47,19 +47,19 @@ type Menu struct { } ``` -For the Application menu, each MenuItem represents a single menu such as "Edit". +Pour le menu de l'application, chaque MenuItem représente un seul menu tel que "Edit". -A simple helper method is provided for building menus: +Une méthode simple d'aide est fournie pour les menus de construction : ```go title="Package: github.com/wailsapp/wails/v2/pkg/menu" func NewMenuFromItems(first *MenuItem, rest ...*MenuItem) *Menu ``` -This makes the layout of the code more like that of a menu without the need to add the menu items manually after creating them. Alternatively, you can just create the menu items and add them to the menu manually. +Cela rend la mise en page du code plus semblable à celle d'un menu sans avoir à ajouter les éléments de menu manuellement après leur création. Vous pouvez également créer les liens de menu et les ajouter au menu manuellement. ## MenuItem -A MenuItem represents an item within a Menu. +Un MenuItem représente un élément dans un Menu. ```go title="Package: github.com/wailsapp/wails/v2/pkg/menu" // MenuItem represents a menu item contained in a menu @@ -76,52 +76,52 @@ type MenuItem struct { } ``` -| Field | Type | Notes | -| ----------- | ------------------------------------ | ------------------------------------------------------------- | -| Label | string | The menu text | -| Accelerator | [\*keys.Accelerator](#accelerator) | Key binding for this menu item | -| Type | [Type](#type) | Type of MenuItem | -| Disabled | bool | Disables the menu item | -| Hidden | bool | Hides this menu item | -| Checked | bool | Adds check to item (Checkbox & Radio types) | -| SubMenu | [\*Menu](#menu) | Sets the submenu | -| Click | [Callback](#callback) | Callback function when menu clicked | -| Role | string | Defines a [role](#role) for this menu item. Mac only for now. | +| Champ | Type | Notes | +| ----------- | ------------------------------------ | --------------------------------------------------------------------------------------- | +| Label | string | Le texte du menu | +| Accelerator | [\*keys.Accelerator](#accelerator) | Raccourci pour ce lien de menu | +| Type | [Type](#type) | Type de MenuItem | +| Disabled | bool | Désactive l'élément de menu | +| Hidden | bool | Masque cet élément de menu | +| Checked | bool | Ajoute une coche à l'élément (case à cocher & Types de radio) | +| SubMenu | [\*Menu](#menu) | Définit un sous-menu | +| Click | [Callback](#callback) | Fonction à appeler quand un click est fait sur cet élément du menu. | +| Role | string | Définit un rôle [](#role) pour cet élément de menu. Pour Mac seulement, pour le moment. | ### Accelerator -Accelerators (sometimes called keyboard shortcuts) define a binding between a keystroke and a menu item. Wails defines an Accelerator as a combination or key + [Modifier](#modifier). They are available in the `"github.com/wailsapp/wails/v2/pkg/menu/keys"` package. +Les accélérateurs (parfois appelés raccourcis clavier) définissent une liaison entre une clé et un élément du menu. Wails définit un accélérateur comme une combinaison ou une clé + [modificateur](#modifier). Ils sont disponibles dans le paquet `"github.com/wailsapp/wails/v2/pkg/menu/keys"`. -Example: +Exemple: ```go title="Package: github.com/wailsapp/wails/v2/pkg/menu/keys" // Defines cmd+o on Mac and ctrl-o on Window/Linux myShortcut := keys.CmdOrCtrl("o") ``` -Keys are any single character on a keyboard with the exception of `+`, which is defined as `plus`. Some keys cannot be represented as characters so there are a set of named characters that may be used: +Les clés sont n'importe quel caractère sur un clavier à l'exception de `+`, qui est défini comme `plus`. Certaines clés ne peuvent pas être représentées comme des caractères, il y a donc un ensemble de caractères nommés qui peuvent être utilisés : -| | | | | -|:-----------:|:-----:|:-----:|:---------:| -| `backspace` | `f1` | `f16` | `f31` | -| `tab` | `f2` | `f17` | `f32` | -| `return` | `f3` | `f18` | `f33` | -| `enter` | `f4` | `f19` | `f34` | -| `escape` | `f5` | `f20` | `f35` | -| `left` | `f6` | `f21` | `numlock` | -| `right` | `f7` | `f22` | | -| `up` | `f8` | `f23` | | -| `down` | `f9` | `f24` | | -| `space` | `f10` | `f25` | | -| `delete` | `f11` | `f36` | | -| `home` | `f12` | `f37` | | -| `end` | `f13` | `f38` | | -| `page up` | `f14` | `f39` | | -| `page down` | `f15` | `f30` | | +| | | | | +|:----------------:|:-----:|:-----:|:---------:| +| `retour arrière` | `f1` | `f16` | `f31` | +| `tabulation` | `f2` | `f17` | `f32` | +| `retour` | `f3` | `f18` | `f33` | +| `entrée` | `f4` | `f19` | `f34` | +| `echap` | `f5` | `f20` | `f35` | +| `gauche` | `f6` | `f21` | `numlock` | +| `droite` | `f7` | `f22` | | +| `haut` | `f8` | `f23` | | +| `bas` | `f9` | `f24` | | +| `espace` | `f10` | `f25` | | +| `suppr` | `f11` | `f36` | | +| `début` | `f12` | `f37` | | +| `fin` | `f13` | `f38` | | +| `page haut` | `f14` | `f39` | | +| `page bas` | `f15` | `f30` | | -Wails also supports parsing accelerators using the same syntax as Electron. This is useful for storing accelerators in config files. +Wails prend également en charge l'analyse des accélérateurs en utilisant la même syntaxe qu'Electron. Ceci est utile pour stocker les accélérateurs dans les fichiers de configuration . -Example: +Exemple: ```go title="Package: github.com/wailsapp/wails/v2/pkg/menu/keys" // Defines cmd+o on Mac and ctrl-o on Window/Linux @@ -130,7 +130,7 @@ Example: #### Modifier -The following modifiers are keys that may be used in combination with the accelerator key: +Les modificateurs suivants sont des touches qui peuvent être utilisées en combinaison avec la touche accélérateur: ```go title="Package: github.com/wailsapp/wails/v2/pkg/menu/keys" const ( @@ -145,7 +145,7 @@ const ( ) ``` -A number of helper methods are available to create Accelerators using modifiers: +Un certain nombre de méthodes d'aide sont disponibles pour créer des accélérateurs en utilisant des modificateurs: ```go title="Package: github.com/wailsapp/wails/v2/pkg/menu/keys" func CmdOrCtrl(key string) *Accelerator @@ -154,7 +154,7 @@ func Shift(key string) *Accelerator func Control(key string) *Accelerator ``` -Modifiers can be combined using `keys.Combo(key string, modifier1 Modifier, modifier2 Modifier, rest ...Modifier)`: +Les modificateurs peuvent être combinés en utilisant `keys.Combo(key string, modifier1 Modifier, modifier2 Modifier, rest ...Modifier)`: ```go title="Package: github.com/wailsapp/wails/v2/pkg/menu/keys" // Defines "Ctrl+Option+A" on Mac and "Ctrl+Alt+A" on Window/Linux @@ -163,7 +163,7 @@ Modifiers can be combined using `keys.Combo(key string, modifier1 Modifier, modi ### Type -Each menu item must have a type and there are 5 types available: +Chaque lien de menu doit avoir un type et il y a 5 types disponibles: ```go title="Package: github.com/wailsapp/wails/v2/pkg/menu" const ( @@ -175,7 +175,7 @@ const ( ) ``` -For convenience, helper methods are provided to quickly create a menu item: +Pour plus de commodité, des méthodes d'aide sont fournies pour créer rapidement un lien de menu : ```go title="Package: github.com/wailsapp/wails/v2/pkg/menu" func Text(label string, accelerator *keys.Accelerator, click Callback) *MenuItem @@ -185,7 +185,7 @@ func Checkbox(label string, checked bool, accelerator *keys.Accelerator, click C func SubMenu(label string, menu *Menu) *Menu ``` -You can also create menu items directly on a menu by using the "Add" helpers: +Vous pouvez également créer des liens directement dans un menu en utilisant les méthodes "Add" : ```go title="Package: github.com/wailsapp/wails/v2/pkg/menu" func (m *Menu) AddText(label string, accelerator *keys.Accelerator, click Callback) *MenuItem @@ -195,11 +195,11 @@ func (m *Menu) AddCheckbox(label string, checked bool, accelerator *keys.Acceler func (m *Menu) AddSubMenu(label string, menu *Menu) *MenuI ``` -A note on radio groups: A radio group is defined as a number of radio menu items that are next to each other in the menu. This means that you do not need to group items together as it is automatic. However, that also means you cannot have 2 radio groups next to each other - there must be a non-radio item between them. +Une note sur les groupes radio : Un groupe radio est défini comme un certain nombre d'éléments du menu radio qui sont à côté l'un de l'autre dans le menu. Cela signifie que vous n'avez pas besoin de regrouper les éléments car il est automatique. Cependant, cela signifie également que vous ne pouvez pas avoir 2 groupes radio les uns à côté des autres - il doit y avoir un élément non-radio entre eux. ### Callback -Each menu item may have a callback that is executed when the item is clicked: +Chaque lien de menu peut avoir une fonction qui est exécutée lorsque l'élément est cliqué : ```go title="Package: github.com/wailsapp/wails/v2/pkg/menu" type Callback func(*CallbackData) @@ -209,19 +209,19 @@ type CallbackData struct { } ``` -The function is given a `CallbackData` struct which indicates which menu item triggered the callback. This is useful when using radio groups that may share a callback. +La fonction reçoit une structure `CallbackData` qui indique quel élément de menu a été cliqué. Ceci est utile lorsque utilise des groupes radio qui peuvent partager une fonction. ### Role :::info Roles -Roles are currently supported on Mac only. +Les rôles ne sont actuellement pris en charge que sur Mac. ::: -A menu item may have a role, which is essentially a pre-defined menu item. We currently support the following roles: +Un lien de menu peut avoir un rôle, qui est essentiellement un lien de menu prédéfini. Nous supportons actuellement les rôles suivants : -| Role | Description | -| ------------ | ------------------------------------------------------------------------ | -| AppMenuRole | The standard Mac application menu. Can be created using `menu.AppMenu()` | -| EditMenuRole | The standard Mac edit menu. Can be created using `menu.EditMenu()` | +| Role | Description | +| ------------ | ----------------------------------------------------------------------------------- | +| AppMenuRole | Le menu standard de l'application Mac. Peut être créé en utilisant `menu.AppMenu()` | +| EditMenuRole | Le menu d'édition standard pour Mac. Peut être créé en utilisant `menu.EditMenu()` | diff --git a/website/i18n/fr/docusaurus-plugin-content-docs/current/reference/options.mdx b/website/i18n/fr/docusaurus-plugin-content-docs/current/reference/options.mdx index 5f8fde991..76b2a3a21 100644 --- a/website/i18n/fr/docusaurus-plugin-content-docs/current/reference/options.mdx +++ b/website/i18n/fr/docusaurus-plugin-content-docs/current/reference/options.mdx @@ -4,9 +4,9 @@ sidebar_position: 3 # Options -## Application Options +## Options de l'application -The `Options.App` struct contains the application configuration. It is passed to the `wails.Run()` method: +La structure `Options.App` contient la configuration de l'application. Il est passé à la méthode `wails.Run()`: ```go title="Example" import ( @@ -50,6 +50,7 @@ func main() { OnBeforeClose: app.beforeClose, CSSDragProperty: "--wails-draggable", CSSDragValue: "drag", + EnableFraudulentWebsiteDetection: false, ZoomFactor: 1.0, IsZoomControlEnabled: false, Bind: []interface{}{ @@ -77,7 +78,8 @@ func main() { // OnSuspend is called when Windows enters low power mode OnSuspend func() // OnResume is called when Windows resumes from low power mode - OnResume func() + OnResume func(), + WebviewGpuDisabled: false, }, Mac: &mac.Options{ TitleBar: &mac.TitleBar{ @@ -100,6 +102,7 @@ func main() { Linux: &linux.Options{ Icon: icon, WindowIsTranslucent: false, + WebviewGpuPolicy: linux.WebviewGpuPolicyAlways, }, Debug: options.Debug{ OpenInspectorOnStartup: false, @@ -115,115 +118,115 @@ func main() { ### Title -The text shown in the window's title bar. +Le texte affiché dans la barre de titre de la fenêtre. -Name: Title
Type: `string` +Nom : Title
Type : `string` ### Width -The initial width of the window. +La largeur initiale de la fenêtre. -Name: Width
Type: `int`
Default: 1024. +Nom: Width
Type: `int`
Défaut: 1024. ### Height -The initial height of the window. +La hauteur initiale de la fenêtre. -Name: Height
Type: `int`
Default: 768 +Nom: Height
Type: `int`
Défaut: 768 ### DisableResize -By default, the main window is resizable. Setting this to `true` will keep it a fixed size. +Par défaut, la fenêtre principale est redimensionnable. Mettre ceci à `true` le conservera une taille fixe. -Name: DisableResize
Type: `bool` +Nom: DisableResize
Type: `bool` ### Fullscreen -Deprecated: Please use [WindowStartState](#windowstartstate). +Obsolète: Veuillez utiliser [WindowStartState](#windowstartstate). ### WindowStartState -Defines how the window should present itself at startup. +Définit comment la fenêtre devrait se présenter au démarrage. -| Value | Win | Mac | Lin | +| Valeur | Win | Mac | Lin | | ---------- | --- | --- | --- | | Fullscreen | ✅ | ✅ | ✅ | | Maximised | ✅ | ✅ | ✅ | | Minimised | ✅ | ❌ | ✅ | -Name: WindowStartState
Type: `options.WindowStartState` +Nom: WindowStartState
Type: `options.WindowStartState` ### Frameless -When set to `true`, the window will have no borders or title bar. Also see [Frameless Windows](../guides/frameless.mdx). +Quand réglé sur `true`, la fenêtre n'aura pas de bordure ou de barre de titre. Voir aussi les [fenêtres sans cadre sous Windows](../guides/frameless.mdx). -Name: Frameless
Type: `bool` +Nom: Frameless
Type: `bool` ### MinWidth -This sets the minimum width for the window. If the value given in `Width` is less than this value, the window will be set to `MinWidth` by default. +Définit la largeur minimale de la fenêtre. Si la valeur donnée dans `Width` est inférieure à cette valeur, la fenêtre sera définie à `MinWidth` par défaut. -Name: MinWidth
Type: `int` +Nom: MinWidth
Type: `int` ### MinHeight -This sets the minimum height for the window. If the value given in `Height` is less than this value, the window will be set to `MinHeight` by default. +Définit la hauteur minimale de la fenêtre. Si la valeur donnée dans `Height` est inférieure à cette valeur, la fenêtre sera définie à `MinHeight` par défaut. -Name: MinHeight
Type: `int` +Nom: MinHeight
Type: `int` ### MaxWidth -This sets the maximum width for the window. If the value given in `Width` is more than this value, the window will be set to `MaxWidth` by default. +Définit la largeur maximale de la fenêtre. Si la valeur donnée dans `Width` est supérieure à cette valeur, la fenêtre sera définie à `MaxWidth` par défaut. -Name: MaxWidth
Type: `int` +Nom: MaxWidth
Type: `int` ### MaxHeight -This sets the maximum height for the window. If the value given in `Height` is more than this value, the window will be set to `MaxHeight` by default. +Définit la hauteur maximale de la fenêtre. Si la valeur donnée en `Height` est supérieure à cette valeur, la fenêtre sera définie à `MaxHeight` par défaut. -Name: MaxHeight
Type: `int` +Nom: MaxHeight
Type: `int` ### StartHidden -When set to `true`, the application will be hidden until [WindowShow](../reference/runtime/window.mdx#windowshow) is called. +Lorsque réglé sur `true`, l'application sera masquée jusqu'à ce que [WindowShow](../reference/runtime/window.mdx#windowshow) soit appelé. -Name: StartHidden
Type: `bool` +Nom: StartHidden
Type: `bool` ### HideWindowOnClose -By default, closing the window will close the application. Setting this to `true` means closing the window will +Par défaut, la fermeture de la fenêtre fermera l'application. Définir ceci à `true` signifie que -hide the window instead. +la fenêtre sera cachée à la place. -Name: HideWindowOnClose
Type: `bool` +Nom: HideWindowOnClose
Type: `bool` ### BackgroundColour -This value is the default background colour of the window. Example: options.NewRGBA(255,0,0,128) - Red at 50% transparency +Cette valeur est la couleur de fond par défaut de la fenêtre. Exemple: options.NewRGBA(255,0,0,128) - Rouge à 50% de transparence -Name: BackgroundColour
Type: `*options.RGBA`
Default: white +Nom: BackgroundColour
Type: `*options.RGBA`
Défaut: white ### AlwaysOnTop -Indicates that the window should stay above other windows when losing focus. +Indique que la fenêtre doit rester au-dessus des autres fenêtres lors de la perte de focus. -Name: AlwaysOnTop
Type: `bool` +Nom: AlwaysOnTop
Type: `bool` ### Assets -Deprecated: Please use Assets on [AssetServer specific options](#assetserver). +Obsolète: Veuillez utiliser des actifs sur les options [AssetServer spécifiques](#assetserver). ### AssetsHandler -Deprecated: Please use AssetsHandler on [AssetServer specific options](#assetserver). +Obsolète : Veuillez utiliser AssetsHandler sur [Options spécifiques à AssetServer](#assetserver). ### AssetServer -This defines AssetServer specific options. It allows to customize the AssetServer with static assets, serving assets dynamically with an `http.Handler` or hook into the request chain with an `assetserver.Middleware`. +Ceci définit les options spécifiques à AssetServer. Il permet de personnaliser l'AssetServer avec des actifs statiques, servant les assets dynamiquement avec un `http.Handler` ou brancher dans la chaîne de requêtes avec un `assetserver.Middleware`. -Not all features of an `http.Request` are currently supported, please see the following feature matrix: +Toutes les fonctionnalités d'une `http.Request` ne sont pas actuellement prises en charge, veuillez consulter la matrice de fonctionnalité suivante : -| Feature | Win | Mac | Lin | +| Fonctionalité | Win | Mac | Lin | | ----------------------- | --- | --- | ------ | | GET | ✅ | ✅ | ✅ | | POST | ✅ | ✅ | ✅ [^1] | @@ -232,100 +235,100 @@ Not all features of an `http.Request` are currently supported, please see the fo | DELETE | ✅ | ✅ | ✅ [^1] | | Request Headers | ✅ | ✅ | ✅ [^1] | | Request Body | ✅ | ✅ | ❌ | -| Request Body Streaming | ❌ | ❌ | ❌ | +| Request Body Streaming | ✅ | ✅ | ❌ | | Response StatusCodes | ✅ | ✅ | ✅ [^1] | | Response Headers | ✅ | ✅ | ✅ [^1] | | Response Body | ✅ | ✅ | ✅ | -| Response Body Streaming | ❌ | ❌ | ✅ | +| Response Body Streaming | ❌ | ✅ | ✅ | | WebSockets | ❌ | ❌ | ❌ | | HTTP Redirects 30x | ✅ | ❌ | ❌ | -Name: AssetServer
Type: `*assetserver.Options` +Nom: AssetServer
Type: `*assetserver.Options` #### Assets -The static frontend assets to be used by the application. +Les ressources statiques du frontend à être utilisées par l'application. -A GET request is first tried to be served from this `fs.FS`. If the `fs.FS` returns `os.ErrNotExist` for that file, the request handling will fallback to the [Handler](#handler) and tries to serve the GET request from it. +Une requête GET est d'abord tentée d'être servie à partir de ce `fs.FS`. Si le `fs.FS` retourne `os. rrNotExist` pour ce fichier, le traitement des requêtes va revenir au [Handler](#handler) et essaie de répondre à la requête GET. -If set to nil, all GET requests will be forwarded to [Handler](#handler). +Si la valeur est nulle, toutes les requêtes GET seront envoyées à [Handler](#handler). -Name: Assets
Type: `fs.FS` +Nom: Assets
Type: `fs.FS` #### Handler -The assets handler is a generic `http.Handler` for fallback handling of assets that can't be found. +Le gestionnaire d'assets est un `http.Handler` générique pour la gestion de secours des assets qui ne peuvent pas être trouvés. -The handler will be called for every GET request that can't be served from [Assets](#assets), due to `os.ErrNotExist`. Furthermore all non GET requests will always be served from this Handler. If not defined, the result is the following in cases where the Handler would have been called: +Le gestionnaire sera appelé pour chaque requête GET qui ne peut pas être servie à partir de [Assets](#assets), en raison de `os.ErrNotExist`. De plus, toutes les requêtes non GET seront toujours servies par ce gestionnaire. Si non défini, le résultat est le suivant dans les cas où le Gestionnaire aurait été appelé : -- GET request: `http.StatusNotFound` -- Other request: `http.StatusMethodNotAllowed` +- Requête GET : `http.StatusNotFound` +- Autre requête : `http.StatusMethodNotAllowed` -NOTE: When used in combination with a Frontend DevServer there might be limitations, eg. Vite serves the index.html on every path, that does not contain a file extension. +REMARQUE : Lorsqu'il est utilisé en combinaison avec un serveur de développement Frontend, il peut y avoir des limitations, par exemple. Vite affiche l'index.html sur chaque chemin qui ne contient pas d'extension de fichier. -Name: AssetsHandler
Type: `http.Handler` +Nom: AssetsHandler
Type: `http.Handler` #### Middleware -Middleware is a HTTP Middleware which allows to hook into the AssetServer request chain. It allows to skip the default request handler dynamically, e.g. implement specialized Routing etc. The Middleware is called to build a new `http.Handler` used by the AssetSever and it also receives the default handler used by the AssetServer as an argument. +Middleware est un Middleware HTTP qui permet de se connecter à la chaîne de requêtes AssetServer. Il permet de sauter dynamiquement le gestionnaire de requête par défaut, par exemple implémenter un routage spécialisé, etc. Le Middleware est appelé pour construire un nouveau `http.Handler` utilisé par l'AssetSever et reçoit également le gestionnaire par défaut utilisé par le serveur AssetServer comme argument. -If not defined, the default AssetServer request chain is executed. +Si elle n'est pas définie, la chaîne de requête AssetServer par défaut est exécutée. -Name: Middleware
Type: `assetserver.Middleware` +Nom: Middleware
Type: `assetserver.Middleware` ### Menu -The menu to be used by the application. More details about Menus in the [Menu Reference](../reference/runtime/menu.mdx). +Le menu à utiliser par l'application. Plus de détails sur les menus dans la [Référence des Menu](../reference/runtime/menu.mdx). :::note -On Mac, if no menu is specified, a default menu will be created. +Sur Mac, si aucun menu n'est spécifié, un menu par défaut sera créé. ::: -Name: Menu
Type: `*menu.Menu` +Nom: Menu
Type: `*menu.Menu` ### Logger -The logger to be used by the application. More details about logging in the [Log Reference](../reference/runtime/log.mdx). +Le logger à utiliser par l'application. Plus de détails sur la connexion dans la [Référence du logger](../reference/runtime/log.mdx). -Name: Logger
Type: `logger.Logger`
Default: Logs to Stdout +Nom: Logger
Type: `logger.Logger`
Défaut: Logs envoyé à Stdout ### LogLevel -The default log level. More details about logging in the [Log Reference](../reference/runtime/log.mdx). +Le niveau de log par défaut. Plus de détails sur la connexion dans la [Référence du logger](../reference/runtime/log.mdx). -Name: LogLevel
Type: `logger.LogLevel`
Default: `Info` in dev mode, `Error` in production mode +Nom: LogLevel
Type: `logger.LogLevel`
Défaut: `Info` en mode dev, `Error` en mode production ### LogLevelProduction -The default log level for production builds. More details about logging in the [Log Reference](../reference/runtime/log.mdx). +Le niveau de log par défaut pour les compilations de production. Plus de détails sur la connexion dans la [Référence du logger](../reference/runtime/log.mdx). -Name: LogLevelProduction
Type: `logger.LogLevel`
Default: `Error` +Nom: LogLevelProduction
Type: `logger.LogLevel`
Défaut: `Error` ### OnStartup -This callback is called after the frontend has been created, but before `index.html` has been loaded. It is given the application context. +Ce callback est appelé après la création du frontend, mais avant que `index.html` n'ait été chargé. Il lui donne le contexte de l'application. -Name: OnStartup
Type: `func(ctx context.Context)` +Nom: OnStartup
Type: `func(ctx context.Context)` ### OnDomReady -This callback is called after the frontend has loaded `index.html` and its resources. It is given the application context. +Ce callback est appelé après que le frontend ait chargé `index.html` et ses ressources. Il lui donne le contexte de l'application. -Name: OnDomReady
Type: `func(ctx context.Context)` +Nom: OnDomReady
Type: `func(ctx context.Context)` ### OnShutdown -This callback is called after the frontend has been destroyed, just before the application terminates. It is given the application context. +Ce calllback est appelé après que le frontend ait été détruit, juste avant la fin de l'application. Il lui donne le contexte de l'application. -Name: OnShutdown
Type: `func(ctx context.Context)` +Nom: OnShutdown
Type: `func(ctx context.Context)` ### OnBeforeClose -If this callback is set, it will be called when the application is about to quit, either by clicking the window close button or calling `runtime.Quit`. Returning true will cause the application to continue, false will continue shutdown as normal. This is good for confirming with the user that they wish to exit the program. +Si ce callback est défini, il sera appelé lorsque l'application est sur le point de quitter, soit en cliquant sur la fenêtre fermez le bouton ou en appelant `runtime.Quit`. Retourner "true" dans cette méthode entraînera la poursuite de l'application, "false" continuera à éteindre comme d'habitude. C'est un bon exemple pour confirmer avec l'utilisateur si il souhaite quitter le programme. -Example: +Exemple: ```go title=windowsapp.go func (b *App) beforeClose(ctx context.Context) (prevent bool) { @@ -342,141 +345,147 @@ func (b *App) beforeClose(ctx context.Context) (prevent bool) { } ``` -Name: OnBeforeClose
Type: `func(ctx context.Context) bool` +Nom: OnBeforeClose
Type: `func(ctx context.Context) bool` ### CSSDragProperty -Indicates the CSS property to use to identify which elements can be used to drag the window. Default: `--wails-draggable`. +Indique la propriété CSS à utiliser pour identifier quels éléments peuvent être utilisés pour faire glisser la fenêtre. Par défaut : `--wails-draggable`. -Name: CSSDragProperty
Type: `string` +Nom: CSSDragProperty
Type: `string` ### CSSDragValue -Indicates what value the `CSSDragProperty` style should have to drag the window. Default: `drag`. +Indique quelle valeur le style `CSSDragProperty` doit avoir pour faire glisser la fenêtre. Par défaut: `drag`. -Name: CSSDragValue
Type: `string` +Nom: CSSDragValue
Type: `string` + +### EnableFraudulentWebsiteDetection + +EnableFraudulentWebsiteDetection enables scan services for fraudulent content, such as malware or phishing attempts. These services might send information from your app like URLs navigated to and possibly other content to cloud services of Apple and Microsoft. + +Name: EnableFraudulentWebsiteDetection
Type: `bool` ### ZoomFactor -Name: ZoomFactor
Type: `float64` +Nom: ZoomFactor
Type: `float64` -This defines the zoom factor for the WebView2. This is the option matching the Edge user activated zoom in or out. +Ceci définit le facteur de zoom pour WebView2. Il s'agit de l'option correspondant au zoom avant ou arrière défini par l'utilisateur. ### IsZoomControlEnabled -Name: IsZoomControlEnabled
Type: `bool` +Nom : IsZoomControlEnabled
Type : `bool` -This enables the zoom factor to be changed by the user. Please note that the zoom factor can be set in the options while disallowing the user to change it at runtime (f.e. for a kiosk application or similar). +Cela permet de modifier le facteur de zoom par l'utilisateur. Veuillez noter que le facteur de zoom peut être défini dans les options tandis que ne permet pas à l'utilisateur de le modifier à l'exécution (f.e. pour une application vitrine ou similaire). ### Bind -A slice of struct instances defining methods that need to be bound to the frontend. +La liste des structs Go définissant des méthodes qui doivent être liées au frontend. -Name: Bind
Type: `[]interface{}` +Nom: Bind
Type: `[]interface{}` ### Windows -This defines [Windows specific options](#windows). +Ceci définit les options [spécifiques à Windows](#windows). -Name: Windows
Type: `*windows.Options` +Nom: Windows
Type: `*windows.Options` #### WebviewIsTransparent -Setting this to `true` will make the webview background transparent when an alpha value of `0` is used. This means that if you use `rgba(0,0,0,0)` for `background-color` in your CSS, the host window will show through. Often combined with [WindowIsTranslucent](#WindowIsTranslucent) to make frosty-looking applications. +Mettre ceci à `true` rendra l'arrière-plan du webview transparent quand une valeur alpha de `0` est utilisée. Cela signifie que si vous utilisez `rgba(0,0,0,0)` pour `la couleur d'arrière-plan` dans votre CSS, la fenêtre d'hôte sera affichée. Souvent combiné avec [WindowIsTranslucent](#WindowIsTranslucent) pour faire des applications d'apparence de givre. -Name: WebviewIsTransparent
Type: `bool` +Nom : WebviewIsTransparent
Type : `bool` #### WindowIsTranslucent -Setting this to `true` will make the window background translucent. Often combined with [WebviewIsTransparent](#WebviewIsTransparent). +Définir ceci à `true` rendra l'arrière-plan de la fenêtre translucide. Souvent combiné avec [WebviewIsTransparent](#WebviewIsTransparent). -For Windows 11 versions before build 22621, this will use the [BlurBehind](https://learn.microsoft.com/en-us/windows/win32/dwm/blur-ovw) method for translucency, which can be slow. For Windows 11 versions after build 22621, this will enable the newer translucency types that are much faster. By default, the type of translucency used will be determined by Windows. To configure this, use the [BackdropType](#BackdropType) option. +Pour les versions de Windows 11 avant la version 22621, cela utilisera la méthode [BlurBehind](https://learn.microsoft.com/en-us/windows/win32/dwm/blur-ovw) pour la translucidité, qui peut être lente. Pour les versions de Windows 11 après la version 22621, cela activera les nouveaux types de transparence qui sont beaucoup plus rapides. Par défaut, le type de transparence utilisé sera déterminé par Windows. Pour configurer ceci, utilisez l'option [BackdropType](#BackdropType). -Name: WindowIsTranslucent
Type: `bool` +Nom: WindowIsTranslucent
Type: `bool` #### BackdropType :::note -Requires Windows 11 build 22621 or later. +Nécessite Windows 11 version 22621 ou supérieure. ::: -Sets the translucency type of the window. This is only applicable if [WindowIsTranslucent](#WindowIsTranslucent) is set to `true`. +Définit le type de transparence de la fenêtre. Ceci n'est applicable que si [WindowIsTranslucent](#WindowIsTranslucent) est défini à `true`. -Name: BackdropType
Type `windows.BackdropType` +Nom: BackdropType
Type `windows.BackdropType` -The value can be one of the following: +La valeur peut être l'une des valeurs suivantes : -| Value | Description | -| ------- | ----------------------------------------------------------------------------------------- | -| Auto | Let Windows decide which backdrop to use | -| None | Do not use translucency | -| Acrylic | Use [Acrylic](https://learn.microsoft.com/en-us/windows/apps/design/style/acrylic) effect | -| Mica | Use [Mica](https://learn.microsoft.com/en-us/windows/apps/design/style/mica) effect | -| Tabbed | Use Tabbed. This is a backdrop that is similar to Mica. | +| Valeur | Description | +| ------- | ------------------------------------------------------------------------------------------------- | +| Auto | Laisser Windows décider quel arrière-plan utiliser | +| None | Ne pas utiliser de transparence | +| Acrylic | Utilisez l'effet [Acrylique](https://learn.microsoft.com/en-us/windows/apps/design/style/acrylic) | +| Mica | Utiliser l'effet [Mica](https://learn.microsoft.com/en-us/windows/apps/design/style/mica) | +| Tabbed | Utiliser Tabbed. C'est un arrière-plan qui est similaire à Mica. | #### DisableWindowIcon -Setting this to `true` will remove the icon in the top left corner of the title bar. +Définir ceci à `true` supprimera l'icône dans le coin supérieur gauche de la barre de titre. -Name: DisableWindowIcon
Type: `bool` +Nom: DisableWindowIcon
Type: `bool` #### DisableFramelessWindowDecorations -Setting this to `true` will remove the window decorations in [Frameless](#Frameless) mode. This means there will be no 'Aero Shadow' and no 'Rounded Corners' shown for the window. Please note that 'Rounded Corners' are only supported on Windows 11. +Définir ceci à `true` supprimera les décorations de fenêtre en mode [sans cadre](#Frameless). Cela signifie qu'il n'y aura pas de « Aero Shadow» et aucun « Coins arrondis» ne sera affiché pour la fenêtre. Veuillez noter que les "coins arrondis" ne sont pris en charge que sur Windows 11. -Name: DisableFramelessWindowDecorations
Type: `bool` +Nom: DisableFramelessWindowDecorations
Type: `bool` #### WebviewUserDataPath -This defines the path where the WebView2 stores the user data. If empty `%APPDATA%\[BinaryName.exe]` will be used. +Ceci définit le chemin où WebView2 stocke les données de l'utilisateur. Si vide, `%APPDATA%\[BinaryName.exe]` sera utilisé. -Name: WebviewUserDataPath
Type: `string` +Nom: WebviewUserDataPath
Type: `string` #### WebviewBrowserPath -This defines the path to a directory with WebView2 executable files and libraries. If empty, webview2 installed in the system will be used. +Ceci définit le chemin vers un répertoire avec les fichiers exécutables et bibliothèques WebView2. Si l'option est vide, l'instance de webview2 installé dans le système sera utilisé. -Important information about distribution of fixed version runtime: +Informations importantes sur la version corrigée : -- [How to get and extract runtime](https://docs.microsoft.com/en-us/microsoft-edge/webview2/concepts/distribution#details-about-the-fixed-version-runtime-distribution-mode) -- [Known issues for fixed version](https://docs.microsoft.com/en-us/microsoft-edge/webview2/concepts/distribution#known-issues-for-fixed-version) -- [The path of fixed version of the WebView2 Runtime should not contain \Edge\Application\.](https://docs.microsoft.com/en-us/microsoft-edge/webview2/reference/win32/webview2-idl?view=webview2-1.0.1245.22#createcorewebview2environmentwithoptions) +- [Comment récupérer et extraire l'exécutable](https://docs.microsoft.com/en-us/microsoft-edge/webview2/concepts/distribution#details-about-the-fixed-version-runtime-distribution-mode) +- [Problèmes connus pour la version corrigée](https://docs.microsoft.com/en-us/microsoft-edge/webview2/concepts/distribution#known-issues-for-fixed-version) +- [Le chemin de la version corrigée du runtime WebView2 ne doit pas contenir \Edge\Application\.](https://docs.microsoft.com/en-us/microsoft-edge/webview2/reference/win32/webview2-idl?view=webview2-1.0.1245.22#createcorewebview2environmentwithoptions) -Name: WebviewBrowserPath
Type: `string` +Nom: WebviewBrowserPath
Type: `string` #### Theme -Minimum Windows Version: Windows 10 2004/20H1 +Version minimale de Windows : Windows 10 2004/20H1 -This defines the theme that the application should use: +Ceci définit le thème que l'application doit utiliser : -| Value | Description | -| ------------- | --------------------------------------------------------------------------------------------------------------------------------------------- | -| SystemDefault | _Default_. The theme will be based on the system default. If the user changes their theme, the application will update to use the new setting | -| Dark | The application will use a dark theme exclusively | -| Light | The application will use a light theme exclusively | +| Valeur | Description | +| ------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| SystemDefault | _Default_. Le thème sera basé sur la valeur par défaut du système. Si l'utilisateur change de thème, l'application se mettra à jour pour utiliser le nouveau paramètre | +| Dark | L'application utilisera uniquement un thème sombre | +| Light | L'application utilisera uniquement un thème clair | -Name: Theme
Type: `windows.Theme` +Nom: Theme
Type: `windows.Theme` #### CustomTheme :::note -Minimum Windows Version: Windows 10/11 2009/21H2 Build 22000 +Version minimale de Windows : Windows 10/11 2009/21H2 Build 22000 ::: -Allows you to specify custom colours for TitleBar, TitleText and Border for both light and dark mode, as well as when the window is active or inactive. +Vous permet de spécifier des couleurs personnalisées pour la barre de titre, le texte de titre et la bordure pour le mode clair et foncé. ainsi que lorsque la fenêtre est active ou inactive. -Name: CustomTheme
Type: `windows.CustomTheme` +Nom: CustomTheme
Type: `windows.CustomTheme` -##### CustomTheme type +##### Type CustomTheme -The CustomTheme struct uses `int32` to specify the colour values. These are in the standard(!) Windows format of: `0x00BBGGAA`. A helper function is provided to do RGB conversions into this format: `windows.RGB(r,g,b uint8)`. +Le struct CustomTheme utilise `int32` pour spécifier les valeurs de couleurs. Celles-ci sont au format standard(!) Windows soit : `0x00BBGGAA`. Une fonction d'aide est fournie pour effectuer les conversions de RGB dans ce format : `windows.RGB(r,g,b uint8)`. -NOTE: Any value not provided will default to black. +NOTE : Toute valeur non fournie sera par défaut noire. ```go type ThemeSettings struct { @@ -495,7 +504,7 @@ type ThemeSettings struct { } ``` -Example: +Exemple: ```go CustomTheme: &windows.ThemeSettings{ @@ -518,45 +527,51 @@ Example: #### Messages -A struct of strings used by the webview2 installer if a valid webview2 runtime is not found. +Un struct de chaînes utilisées par l'installateur webview2 si un runtime webview2 valide n'est pas trouvé. -Name: Messages
Type: `*windows.Messages` +Nom: Messages
Type: `*windows.Messages` -Customise this for any language you choose to support. +Personnalisez ceci pour n'importe quelle langue que vous choisissez de supporter. #### ResizeDebounceMS -ResizeDebounceMS is the amount of time to debounce redraws of webview2 when resizing the window. The default value (0) will perform redraws as fast as it can. +ResizeDebounceMS est le temps entre deux réajustements du contenu de la fenêtre lors du redimensionnement de la fenêtre. La valeur par défaut (0) effectuera des réajustements aussi vite qu'il le peut. -Name: ResizeDebounceMS
Type: `uint16` +Nom: ResizeDebounceMS
Type: `uint16` #### OnSuspend -If set, this function will be called when Windows initiates a switch to low power mode (suspend/hibernate) +Si défini, cette fonction sera appelée lorsque Windows passera en mode économie d'énergie -Name: OnSuspend
Type: `func()` +Nom: OnSuspend
Type: `func()` #### OnResume -If set, this function will be called when Windows resumes from low power mode (suspend/hibernate) +Si défini, cette fonction sera appelée lorsque Windows sortira du mode économie d'énergie -Name: OnResume
Type: `func()` +Nom: OnResume
Type: `func()` + +#### WebviewGpuIsDisabled + +Setting this to `true` will disable GPU hardware acceleration for the webview. + +Name: WebviewGpuIsDisabled
Type: `bool` ### Mac -This defines [Mac specific options](#mac). +Ceci définit [les options spécifiques à Mac](#mac). -Name: Mac
Type: `*mac.Options` +Nom: Mac
Type: `*mac.Options` #### TitleBar -The TitleBar struct provides the ability to configure the look and feel of the title bar. +La structure TitleBar permet de configurer l'apparence de la barre de titre. -Name: TitleBar
Type: [`*mac.TitleBar`](#titlebar-struct) +Nom: TitleBar
Type: [`*mac.TitleBar`](#titlebar-struct) -##### Titlebar struct +##### Struct de la Titlebar -The titlebar of the application can be customised by using the TitleBar options: +La barre de titre de l'application peut être personnalisée en utilisant les options suivantes de TitleBar : ```go type TitleBar struct { @@ -569,24 +584,24 @@ type TitleBar struct { } ``` -| Name | Description | -| -------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| TitlebarAppearsTransparent | Makes the titlebar transparent. This has the effect of hiding the titlebar and the content fill the window. [Apple Docs](https://developer.apple.com/documentation/appkit/nswindow/1419167-titlebarappearstransparent?language=objc) | -| HideTitle | Hides the title of the window. [Apple Docs](https://developer.apple.com/documentation/appkit/nswindowtitlevisibility?language=objc) | -| HideTitleBar | Removes [NSWindowStyleMaskTitled](https://developer.apple.com/documentation/appkit/nswindowstylemask/nswindowstylemasktitled/) from the style mask | -| FullSizeContent | Makes the webview fill the entire window. [Apple Docs](https://developer.apple.com/documentation/appkit/nswindowstylemask/nswindowstylemaskfullsizecontentview) | -| UseToolbar | Adds a default toolbar to the window. [Apple Docs](https://developer.apple.com/documentation/appkit/nstoolbar?language=objc) | -| HideToolbarSeparator | Removes the line beneath the toolbar. [Apple Docs](https://developer.apple.com/documentation/appkit/nstoolbar/1516954-showsbaselineseparator?language=objc) | +| Nom | Description | +| -------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| TitlebarAppearsTransparent | Rend la barre de titre transparente. Cela a pour effet de masquer la barre de titre et le contenu remplit la fenêtre. [Apple Docs](https://developer.apple.com/documentation/appkit/nswindow/1419167-titlebarappearstransparent?language=objc) | +| HideTitle | Masque le titre de la fenêtre. [Apple Docs](https://developer.apple.com/documentation/appkit/nswindowtitlevisibility?language=objc) | +| HideTitleBar | Supprime [NSWindowStyleMaskTitled](https://developer.apple.com/documentation/appkit/nswindowstylemask/nswindowstylemasktitled/) du style | +| FullSizeContent | Fait que la webview remplisse toute la fenêtre. [Apple Docs](https://developer.apple.com/documentation/appkit/nswindowstylemask/nswindowstylemaskfullsizecontentview) | +| UseToolbar | Ajoute une barre d'outils par défaut à la fenêtre. [Apple Docs](https://developer.apple.com/documentation/appkit/nstoolbar?language=objc) | +| HideToolbarSeparator | Supprime la ligne située sous la barre d'outils. [Apple Docs](https://developer.apple.com/documentation/appkit/nstoolbar/1516954-showsbaselineseparator?language=objc) | -Preconfigured titlebar settings are available: +Des paramètres préconfigurés sont disponibles : -| Setting | Example | +| Configuration | Exemple | | --------------------------- | ---------------------------------------------- | | `mac.TitleBarDefault()` | ![](/img/reference/titlebar-default.webp) | | `mac.TitleBarHidden()` | ![](/img/reference/titlebar-hidden.webp) | | `mac.TitleBarHiddenInset()` | ![](/img/reference/titlebar-hidden-inset.webp) | -Example: +Exemple: ```go Mac: &mac.Options{ @@ -594,30 +609,30 @@ Mac: &mac.Options{ } ``` -Click [here](https://github.com/lukakerr/NSWindowStyles) for some inspiration on customising the titlebar. +Cliquez sur [ici](https://github.com/lukakerr/NSWindowStyles) si vous voulez de l'inspiration sur la personnalisation de la barre de titre. #### Appearance -Appearance is used to set the style of your app in accordance with Apple's [NSAppearance](https://developer.apple.com/documentation/appkit/nsappearancename?language=objc) names. +L'apparence est utilisée pour définir le style de votre application en accord avec les noms [NSAppearance](https://developer.apple.com/documentation/appkit/nsappearancename?language=objc) d'Apple. -Name: Appearance
Type: [`mac.AppearanceType`](#appearance-type) +Nom: Appearance
Type: [`mac.AppearanceType`](#appearance-type) -##### Appearance type +##### Type d'Appearance -You can specify the application's [appearance](https://developer.apple.com/documentation/appkit/nsappearance?language=objc). +Vous pouvez spécifier l'apparence [de l'application](https://developer.apple.com/documentation/appkit/nsappearance?language=objc). -| Value | Description | -| ----------------------------------------------------- | --------------------------------------------------------------- | -| DefaultAppearance | DefaultAppearance uses the default system value | -| NSAppearanceNameAqua | The standard light system appearance | -| NSAppearanceNameDarkAqua | The standard dark system appearance | -| NSAppearanceNameVibrantLight | The light vibrant appearance | -| NSAppearanceNameAccessibilityHighContrastAqua | A high-contrast version of the standard light system appearance | -| NSAppearanceNameAccessibilityHighContrastDarkAqua | A high-contrast version of the standard dark system appearance | -| NSAppearanceNameAccessibilityHighContrastVibrantLight | A high-contrast version of the light vibrant appearance | -| NSAppearanceNameAccessibilityHighContrastVibrantDark | A high-contrast version of the dark vibrant appearance | +| Valeur | Description | +| ----------------------------------------------------- | ------------------------------------------------------------------- | +| DefaultAppearance | DefaultAppararance utilise la valeur système par défaut | +| NSAppearanceNameAqua | Utilise l'apparence thème clair standard | +| NSAppearanceNameDarkAqua | Utilise l'apparence thème sombre standard | +| NSAppearanceNameVibrantLight | Utilise une apparence avec une lumière vibrante | +| NSAppearanceNameAccessibilityHighContrastAqua | Utilise l'apparence thème clair standard avec un constrate élevé | +| NSAppearanceNameAccessibilityHighContrastDarkAqua | Utilise l'apparence thème sombre standard avec un contraste élevé | +| NSAppearanceNameAccessibilityHighContrastVibrantLight | Utilise l'apparence lumière vibrante avec un constrate élevé | +| NSAppearanceNameAccessibilityHighContrastVibrantDark | Utilise l'apparence du thème sombre vibrant avec un constrate élevé | -Example: +Exemple: ```go Mac: &mac.Options{ @@ -627,23 +642,23 @@ Mac: &mac.Options{ #### WebviewIsTransparent -Setting this to `true` will make the webview background transparent when an alpha value of `0` is used. This means that if you use `rgba(0,0,0,0)` for `background-color` in your CSS, the host window will show through. Often combined with [WindowIsTranslucent](#WindowIsTranslucent) to make frosty-looking applications. +Mettre ceci à `true` rendra l'arrière-plan du webview transparent quand une valeur alpha de `0` est utilisée. Cela signifie que si vous utilisez `rgba(0,0,0,0)` pour `la couleur d'arrière-plan` dans votre CSS, la fenêtre d'hôte sera affichée. Souvent combiné avec [WindowIsTranslucent](#WindowIsTranslucent) pour faire des applications d'apparence de givre. -Name: WebviewIsTransparent
Type: `bool` +Nom : WebviewIsTransparent
Type : `bool` #### WindowIsTranslucent -Setting this to `true` will make the window background translucent. Often combined with [WebviewIsTransparent](#WebviewIsTransparent) to make frosty-looking applications. +Définir ceci à `true` rendra l'arrière-plan de la fenêtre translucide. Souvent combiné avec [WebviewIsTransparent](#WebviewIsTransparent) pour donner un aspect givré à la fenêtre. -Name: WindowIsTranslucent
Type: `bool` +Nom: WindowIsTranslucent
Type: `bool` #### About -This configuration lets you set the title, message and icon for the "About" menu item in the app menu created by the "AppMenu" role. +Cette configuration vous permet de définir le titre, le message et l'icône pour l'élément de menu "À propos" dans le menu de l'application créé par le rôle "AppMenu". -Name: About
Type: [`*mac.AboutInfo`](#about-struct) +Nom: About
Type: [`*mac.AboutInfo`](#about-struct) -##### About struct +##### Struct de About ```go @@ -654,7 +669,7 @@ type AboutInfo struct { } ``` -If these settings are provided, an "About" menu item will appear in the app menu (when using the `AppMenu` role). Given this configuration: +Si ces paramètres sont fournis, un lien de menu "À propos" apparaîtra dans le menu de l'application (lors de l'utilisation du rôle `AppMenu`). Exemple: ```go //go:embed build/appicon.png @@ -673,7 +688,7 @@ func main() { }) ``` -The "About" menu item will appear in the app menu: +L'élément de menu "À propos" apparaîtra dans le menu de l'application: ```mdx-code-block
@@ -685,7 +700,7 @@ The "About" menu item will appear in the app menu:
``` -When clicked, that will open an about message box: +Lorsqu'il est cliqué, cela ouvrira la boîte de message "à propos" : ```mdx-code-block
@@ -700,38 +715,52 @@ When clicked, that will open an about message box: ### Linux -This defines [Linux specific options](#linux). +Ceci définit [les options spécifiques à Linux](#linux). -Name: Linux
Type: `*linux.Options` +Nom: Linux
Type: `*linux.Options` #### Icon -Sets up the icon representing the window. This icon is used when the window is minimized (also known as iconified). +Définit l'icône représentant la fenêtre. Cette icône est utilisée lorsque la fenêtre est réduite (aussi appelée iconified). -Name: Icon
Type: `[]byte` +Nom: Icon
Type: `[]byte` -Some window managers or desktop environments may also place it in the window frame, or display it in other contexts. On others, the icon is not used at all, so your mileage may vary. +Certains gestionnaires de fenêtres ou environnements de bureau peuvent également le placer dans le cadre de la fenêtre, ou l'afficher dans d'autres contextes. Sur d'autres, l'icône n'est pas du tout utilisée, donc son utilisation peut varier. -NOTE: Gnome on Wayland at least does not display this icon. To have a application icon there, a `.desktop` file has to be used. On KDE it should work. +NOTE : Gnome sur Wayland n'affiche pas cette icône. Pour y avoir une icône d'application, un fichier `.desktop` doit être utilisé. Sous KDE, cela devrait fonctionner. -The icon should be provided in whatever size it was naturally drawn; that is, don’t scale the image before passing it. Scaling is postponed until the last minute, when the desired final size is known, to allow best quality. +L’icône doit être fournie dans la taille qu’elle a été dessinée naturellement, c’est-à-dire ne pas redimensionner l’image avant de la passer. La mise à l'échelle est reportée à la dernière minute, lorsque la taille finale désirée est connue, pour permettre une meilleure qualité. #### WindowIsTranslucent -Setting this to `true` will make the window background translucent. Some window managers may ignore it, or result in a black window. +Définir ceci à `true` rendra l'arrière-plan de la fenêtre translucide. Certains gestionnaires de fenêtres peuvent l'ignorer, ou résulter en une fenêtre noire. -Name: WindowIsTranslucent
Type: `bool` +Nom: WindowIsTranslucent
Type: `bool` + +#### WebviewGpuPolicy + +This option is used for determining the webview's hardware acceleration policy. + +Name: WebviewGpuPolicy
Type: [`options.WebviewGpuPolicy`](#webviewgpupolicy-type)
Default: `WebviewGpuPolicyAlways` + +##### WebviewGpuPolicy type + +| Valeur | Description | +| ------------------------ | -------------------------------------------------------------------- | +| WebviewGpuPolicyAlways | Hardware acceleration is always enabled | +| WebviewGpuPolicyOnDemand | Hardware acceleration is enabled/disabled as request by web contents | +| WebviewGpuPolicyNever | Hardware acceleration is always disabled | ### Debug -This defines [Debug specific options](#Debug) that apply to debug builds. +Ceci définit [les options spécifiques au débogage](#Debug) qui s'appliquent aux compilations de débogage. -Name: Debug
Type: `options.Debug` +Nom: Debug
Type: `options.Debug` #### OpenInspectorOnStartup -Setting this to `true` will open the WebInspector on startup of the application. +Définir cette option à `true` ouvrira l'inspecteur Web au démarrage de l'application. -Name: OpenInspectorOnStartup
Type: `bool` +Nom: OpenInspectorOnStartup
Type: `bool` -[^1]: This requires WebKit2GTK 2.36+ support and your app needs to be build with the build tag `webkit2_36` to activate support for this feature. This also bumps the minimum requirement of WebKit2GTK to 2.36 for your app. +[^1]: Cela nécessite la prise en charge de WebKit2GTK 2.36+ et votre application doit être construite avec la balise de compilation `webkit2_36` pour activer le support de cette fonctionnalité. Cela augmente aussi la version minnimale de WebKit2GTK à 2.36 pour votre application. diff --git a/website/i18n/fr/docusaurus-plugin-content-docs/current/reference/project-config.mdx b/website/i18n/fr/docusaurus-plugin-content-docs/current/reference/project-config.mdx index 83029de5b..368790d75 100644 --- a/website/i18n/fr/docusaurus-plugin-content-docs/current/reference/project-config.mdx +++ b/website/i18n/fr/docusaurus-plugin-content-docs/current/reference/project-config.mdx @@ -28,30 +28,30 @@ La configuration du projet se trouve dans le fichier `wails.json` du répertoire "appargs": "[Arguments passés à l'application en mode shell lors du mode dev]", "runNonNativeBuildHooks": false, // Définit si les évènements de compilation doivent être exécutés même s'ils sont définis pour un système d'exploitation autre que le système d'exploitation hôte. "preBuildHooks": { - "GOOS/GOARCH": "[La commande qui sera exécutée avant une compilation du GOOS/GOARCH: ${platform} est remplacée par le "GOOS/GOARCH". The "GOOS/GOARCH" hook is executed before the "GOOS/*" and "*/*" hook.]", - "GOOS/*": "[The command that will be executed before a build of the specified GOOS: ${platform} is replaced with the "GOOS/GOARCH". The "GOOS/*" hook is executed before the "*/*" hook.]", - "*/*": "[The command that will be executed before every build: ${platform} is replaced with the "GOOS/GOARCH".]" + "GOOS/GOARCH": "[La commande qui sera exécutée avant une compilation du GOOS/GOARCH: ${platform} est remplacée par le "GOOS/GOARCH". Le crochet "GOOS/GOARCH" est exécuté avant les crochets "GOOS/*" et"*/*" .]", + "GOOS/*": "[Cette commande sera exécutée avant la construction du GOOS spécifié: ${platform} est remplacé avec "GOOS/GOARCH". Le crochet "GOOS/*" est exécuté avant le crochet "*/*".]", + "*/*": "[La commande sera exécutée avant tout autre chose lors de la construction: ${platform} est remplacé avec "GOOS/GOARCH".]" }, "postBuildHooks": { - "GOOS/GOARCH": "[The command that will be executed after a build of the specified GOOS/GOARCH: ${platform} is replaced with the "GOOS/GOARCH" and ${bin} with the path to the compiled binary. The "GOOS/GOARCH" hook is executed before the "GOOS/*" and "*/*" hook.]", - "GOOS/*": "[The command that will be executed after a build of the specified GOOS: ${platform} is replaced with the "GOOS/GOARCH" and ${bin} with the path to the compiled binary. The "GOOS/*" hook is executed before the "*/*" hook.]", - "*/*": "[The command that will be executed after every build: ${platform} is replaced with the "GOOS/GOARCH" and ${bin} with the path to the compiled binary.]" + "GOOS/GOARCH": "[La command sera exécutée après une construction du GOOS/GOARCH spécifié: ${platform} est remplacé par "GOOS/GOARCH" et ${bin} avec le chemin vers le binaire compilé. Le crochet "GOOS/GOARCH" est exécuté avant les crochets "GOOS/*" et "*/*".]", + "GOOS/*": "[La commande sera exécutée après une construction du GOOS spécifié: ${platform} est remplacé par "GOOS/GOARCH" et ${bin} avec le chemin vers le binaire compilé. Le crochet "GOOS/*" est exécuté avant le crochet "*/*".]", + "*/*": "[La commande sera exécutée après chaque construction: ${platform} est remplacé par "GOOS/GOARCH" et ${bin} avec le chemin vers le binaire compilé.]" }, - "info": { // Data used to populate manifests and version info. - "companyName": "[The company name. Default: [The project name]]", - "productName": "[The product name. Default: [The project name]]", - "productVersion": "[The version of the product. Default: '1.0.0']", - "copyright": "[The copyright of the product. Default: 'Copyright.........']", - "comments": "[A short comment of the app. Default: 'Built using Wails (https://wails.app)']" + "info": { // Data utilisée pour remplir le manifests et version info. + "companyName": "[Le nom de la société. Par défaut: [Le nom du projet]]", + "productName": "[Le nom du produit. Par défaut: [Le nom du projet]]", + "productVersion": "[La version du produit. Par défaut: '1.0.0']", + "copyright": "[Le copyright du produit. Par défaut: 'Copyright.........']", + "comments": "[Un bref commentaire de l'application. Par défaut: 'Built using Wails (https://wails.app)']" }, - "nsisType": "['multiple': One installer per architecture. 'single': Single universal installer for all architectures being built. Default: 'multiple']", - "obfuscated": "[Whether the app should be obfuscated. Default: false]", - "garbleargs": "[The arguments to pass to the garble command when using the obfuscated flag]" + "nsisType": "['multiple': Un installateur par architecture. 'single' : un seul installateur universel pour toutes les architectures en cours de construction. Par défaut: 'multiple']", + "obfuscated": "[Si l'application doit être masquée. Par défaut: false]", + "garbleargs": "[Les arguments à passer à la commande garble lors de l'utilisation de l'option obfuscated ]" } ``` -This file is read by the Wails CLI when running `wails build` or `wails dev`. +Ce fichier est lu par le CLI Wails lorsque vous exécutez `wails build` ou `wails dev`. -The `assetdir`, `reloaddirs`, `wailsjsdir`, `debounceMS`, `devserver` and `frontenddevserverurl` flags in `wails build/dev` will update the project config and thus become defaults for subsequent runs. +Les options `assetdir`, `reloaddirs`, `wailsjsdir`, `debounceMS`, `devserver` and `frontenddevserverurl` dans `wails build/dev` vont mettre à jour les configs du projet qui deviendront les configurations par défaut pour les éxécutions suivantes. -The JSON Schema for this file is located [here](https://wails.io/schemas/config.v2.json). +Le schéma JSON pour ce fichier se trouve [ici](https://wails.io/schemas/config.v2.json). diff --git a/website/i18n/fr/docusaurus-plugin-content-docs/current/reference/runtime/clipboard.mdx b/website/i18n/fr/docusaurus-plugin-content-docs/current/reference/runtime/clipboard.mdx new file mode 100644 index 000000000..805f68ed9 --- /dev/null +++ b/website/i18n/fr/docusaurus-plugin-content-docs/current/reference/runtime/clipboard.mdx @@ -0,0 +1,23 @@ +--- +sidebar_position: 8 +--- + +# Clipboard + +This part of the runtime provides access to the operating system's clipboard.
The current implementation only handles text. + +### ClipboardGetText + +This method reads the currently stored text from the clipboard. + +Go: `ClipboardGetText(ctx context.Context) (string, error)`
Returns: a string (if the clipboard is empty an empty string will be returned) or an error. + +JS: `ClipboardGetText(): Promise`
Returns: a promise with a string result (if the clipboard is empty an empty string will be returned). + +### ClipboardSetText + +This method writes a text to the clipboard. + +Go: `ClipboardSetText(ctx context.Context, text string) error`
Returns: an error if there is any. + +JS: `ClipboardSetText(text: string): Promise`
Returns: a promise with true result if the text was successfully set on the clipboard, false otherwise. diff --git a/website/i18n/fr/docusaurus-plugin-content-docs/current/reference/runtime/dialog.mdx b/website/i18n/fr/docusaurus-plugin-content-docs/current/reference/runtime/dialog.mdx index 43e163848..1bbc6522e 100644 --- a/website/i18n/fr/docusaurus-plugin-content-docs/current/reference/runtime/dialog.mdx +++ b/website/i18n/fr/docusaurus-plugin-content-docs/current/reference/runtime/dialog.mdx @@ -128,11 +128,11 @@ type MessageDialogOptions struct { #### Windows -Windows has standard dialog types in which the buttons are not customisable. The value returned will be one of: "Ok", "Cancel", "Abort", "Retry", "Ignore", "Yes", "No", "Try Again" or "Continue". +Windows a des boites de dialogue standard dans lesquels les boutons ne sont pas personnalisables. La valeur retournée sera une des valeurs suivantes : "Ok", "Cancel", "Abort", "Retry", "Ignore", "Yes", "No", "Try Again" ou "Continue". -For Question dialogs, the default button is "Yes" and the cancel button is "No". This can be changed by setting the `DefaultButton` value to `"No"`. +Pour les boites de dialogues pour les questions, le bouton par défaut est "Oui" et le bouton d'annulation est "Non". Cela peut être modifié en définissant la valeur `DefaultButton` à `"No"`. -Example: +Exemple: ```go result, err := runtime.MessageDialog(a.ctx, runtime.MessageDialogOptions{ Type: runtime.QuestionDialog, @@ -144,23 +144,23 @@ Example: #### Linux -Linux has standard dialog types in which the buttons are not customisable. The value returned will be one of: "Ok", "Cancel", "Yes", "No" +Linux a des boites de dialogue standard dans lesquels les boutons ne sont pas personnalisables. La valeur retournée sera de :"Ok", "Cancel", "Yes", "No" #### Mac -A message dialog on Mac may specify up to 4 buttons. If no `DefaultButton` or `CancelButton` is given, the first button is considered default and is bound to the `return` key. +Une boîte de dialogue sur Mac peut avoir jusqu'à 4 boutons. Si aucun `DefaultButton` ou `CancelButton` n'est donné, le premier bouton est considéré comme par défaut et est lié à la touche `entrée`. -For the following code: +Pour le code suivant : ```go selection, err := runtime.MessageDialog(b.ctx, runtime.MessageDialogOptions{ - Title: "It's your turn!", - Message: "Select a number", - Buttons: []string{"one", "two", "three", "four"}, + Title: "C'est ton tour", + Message: "Choisi un nombre", + Buttons: []string{"un", "deux", "trois", "quatre"}, }) ``` -the first button is shown as default: +le premier bouton est affiché comme étant celui par défaut : ```mdx-code-block
@@ -173,7 +173,7 @@ the first button is shown as default:
``` -And if we specify `DefaultButton` to be "two": +Et si nous spécifions que le `DefaultButton` est "deux": ```go selection, err := runtime.MessageDialog(b.ctx, runtime.MessageDialogOptions{ @@ -184,7 +184,7 @@ selection, err := runtime.MessageDialog(b.ctx, runtime.MessageDialogOptions{ }) ``` -the second button is shown as default. When `return` is pressed, the value "two" is returned. +le deuxième bouton est affiché comme étant la réponse par défaut. Lorsque la touche `entrée` est appuyée, la valeur "deux" est retournée. ```mdx-code-block
@@ -197,7 +197,7 @@ the second button is shown as default. When `return` is pressed, the value "two"
``` -If we now specify `CancelButton` to be "three": +Si nous spécifions maintenant `CancelButton` à "trois": ```go selection, err := runtime.MessageDialog(b.ctx, runtime.MessageDialogOptions{ @@ -209,7 +209,7 @@ selection, err := runtime.MessageDialog(b.ctx, runtime.MessageDialogOptions{ }) ``` -the button with "three" is shown at the bottom of the dialog. When `escape` is pressed, the value "three" is returned: +le bouton avec "trois" est affiché en bas de la boîte de dialogue. Si la touche `echap` est appuyée, la valeur "trois" est retournée: ```mdx-code-block
@@ -246,7 +246,7 @@ type FileFilter struct { #### Windows -Windows allows you to use multiple file filters in dialog boxes. Each FileFilter will show up as a separate entry in the dialog: +Windows vous permet d'utiliser plusieurs filtres de fichiers dans les boîtes de dialogue. Chaque FileFilter s'affichera comme une entrée séparée dans la boîte de dialogue : ```mdx-code-block
@@ -263,7 +263,7 @@ Windows allows you to use multiple file filters in dialog boxes. Each FileFilter #### Linux -Linux allows you to use multiple file filters in dialog boxes. Each FileFilter will show up as a separate entry in the dialog: +Linux vous permet d'utiliser plusieurs filtres de fichiers dans les boîtes de dialogue. Chaque FileFilter s'affichera comme une entrée séparée dans la boîte de dialogue : ```mdx-code-block
@@ -280,7 +280,7 @@ Linux allows you to use multiple file filters in dialog boxes. Each FileFilter w #### Mac -Mac dialogs only have the concept of a single set of patterns to filter files. If multiple FileFilters are provided, Wails will use all the Patterns defined. +Les dialogues Mac n'ont qu'un ensemble unique de motifs pour filtrer les fichiers. Si plusieurs filtres de fichiers sont fournis, Wails utilisera tous les modèles définis. Exemple: @@ -299,4 +299,4 @@ Exemple: }) ``` -This will result in the Open File dialog using `*.png,*.jpg,*.mov,*.mp4` as a filter. +Cela se traduira par l'ouverture de la boîte de dialogue "Ouvrir un fichier" en utilisant `*.png,*.jpg,*.mov,*.mp4` comme filtres. diff --git a/website/i18n/fr/docusaurus-plugin-content-docs/current/reference/runtime/events.mdx b/website/i18n/fr/docusaurus-plugin-content-docs/current/reference/runtime/events.mdx index 4b021cc05..43d72885e 100644 --- a/website/i18n/fr/docusaurus-plugin-content-docs/current/reference/runtime/events.mdx +++ b/website/i18n/fr/docusaurus-plugin-content-docs/current/reference/runtime/events.mdx @@ -2,36 +2,36 @@ sidebar_position: 2 --- -# Events +# Événements -The Wails runtime provides a unified events system, where events can be emitted or received by either Go or JavaScript. Optionally, data may be passed with the events. Listeners will receive the data in the local data types. +Le runtime Wails fournit un système d'événements unifiés, où les événements peuvent être émis ou reçus par Go ou JavaScript. En option, des données peuvent être transmises avec les événements. Les écouteurs vont recevoir les données dans les types de donnée du langage correspondant. ### EventsOn -This method sets up a listener for the given event name. When an event of type `eventName` is [emitted](#EventsEmit), the callback is triggered. Any additional data sent with the emitted event will be passed to the callback. It returns a function to cancel the listener. +Cette méthode définit un listener pour le nom d'événement donné. Lorsqu'un événement de type `eventName` est [émis](#EventsEmit), la méthode définie en callback est déclenchée. Toutes les données supplémentaires envoyées avec l'événement émis seront passées en paramètre à la méthode définie en callback. Il renvoie une fonction pour annuler l'écouteur. Go: `EventsOn(ctx context.Context, eventName string, callback func(optionalData ...interface{})) func()`
JS: `EventsOn(eventName string, callback function(optionalData?: any)): () => void` ### EventsOff -This method unregisters the listener for the given event name, optionally multiple listeneres can be unregistered via `additionalEventNames`. +Cette méthode désactive l'évènement correspondant au nom donné, éventuellement plusieurs évènements peuvent être désinscrits via `additionalEventNames`. Go: `EventsOff(ctx context.Context, eventName string, additionalEventNames ...string)`
JS: `EventsOff(eventName string, ...additionalEventNames)` ### EventsOnce -This method sets up a listener for the given event name, but will only trigger once. It returns a function to cancel the listener. +Cette méthode définit un évènement pour le nom donné, mais ne se déclenchera qu'une seule fois. Il renvoie une fonction pour annuler l'évènement. Go: `EventsOnce(ctx context.Context, eventName string, callback func(optionalData ...interface{})) func()`
JS: `EventsOnce(eventName string, callback function(optionalData?: any)): () => void` ### EventsOnMultiple -This method sets up a listener for the given event name, but will only trigger a maximum of `counter` times. It returns a function to cancel the listener. +Cette méthode définit un évènement pour le nom donné, mais ne se déclenchera au maximum qu'un certain nombre de fois, définit avec le paramètre `counter`. Il renvoie une fonction pour annuler l'écouteur. Go: `EventsOnMultiple(ctx context.Context, eventName string, callback func(optionalData ...interface{}), counter int) func()`
JS: `EventsOnMultiple(eventName string, callback function(optionalData?: any), counter int): () => void` ### EventsEmit -This method emits the given event. Optional data may be passed with the event. This will trigger any event listeners. +Cette méthode émet l'événement donné. En option, des données peuvent être transmises avec l'événement. Cela déclenchera tous les événements. -Go: `EventsEmit(ctx context.Context, eventName string, optionalData ...interface{})`
JS: `EventsEmit(ctx context, optionalData function(optionalData?: any))` +Go: `EventsEmit(ctx context.Context, eventName string, optionalData ...interface{})`
JS: `EventsEmit(eventName: string, ...optionalData: any)` diff --git a/website/i18n/fr/docusaurus-plugin-content-docs/current/reference/runtime/intro.mdx b/website/i18n/fr/docusaurus-plugin-content-docs/current/reference/runtime/intro.mdx index cebfa060f..915ebc4ec 100644 --- a/website/i18n/fr/docusaurus-plugin-content-docs/current/reference/runtime/intro.mdx +++ b/website/i18n/fr/docusaurus-plugin-content-docs/current/reference/runtime/intro.mdx @@ -4,26 +4,27 @@ sidebar_position: 1 # Introduction -The runtime is a library that provides utility methods for your application. There is both a Go and JavaScript runtime and the aim is to try and keep them at parity where possible. +Le runtime est une bibliothèque qui fournit des méthodes utilitaires pour votre application. Il y a à la fois un runtime Go et JavaScript et le but est d'essayer de les maintenir à parité dans la mesure du possible. -It has utility methods for: +Il a des méthodes utilitaires pour : -- [Window](window.mdx) +- [Fenêtre](window.mdx) - [Menu](menu.mdx) - [Boîte de dialogue](dialog.mdx) - [Événements](events.mdx) -- [Browser](browser.mdx) +- [Navigateur](browser.mdx) - [Log](log.mdx) +- [Clipboard](clipboard.mdx) -The Go Runtime is available through importing `github.com/wailsapp/wails/v2/pkg/runtime`. All methods in this package take a context as the first parameter. This context should be obtained from the [OnStartup](../options.mdx#onstartup) or [OnDomReady](../options.mdx#ondomready) hooks. +Le Go Runtime est disponible en important `github.com/wailsapp/wails/v2/pkg/runtime`. Toutes les méthodes de ce paquet prennent un contexte comme premier paramètre. Ce contexte doit être obtenu à partir des méthodes [OnStartup](../options.mdx#onstartup) ou [OnDomReady](../options.mdx#ondomready). :::info Note -Whilst the context will be provided to the [OnStartup](../options.mdx#onstartup) method, there's no guarantee the runtime will work in this method as the window is initialising in a different thread. If you wish to call runtime methods at startup, use [OnDomReady](../options.mdx#ondomready). +Alors que le contexte sera fourni à la méthode [OnStartup](../options.mdx#onstartup) , il n'y a aucune garantie que l'exécution fonctionnera dans cette méthode car la fenêtre s'initialise dans un autre thread. Si vous souhaitez appeler des méthodes d'exécution au démarrage, utilisez [OnDomReady](../options.mdx#ondomready). ::: -The JavaScript library is available to the frontend via the `window.runtime` map. There is a runtime package generated when using `dev` mode that provides TypeScript declarations for the runtime. This should be located in the `wailsjs` directory in your frontend directory. +La bibliothèque JavaScript est disponible sur le frontend via la carte `window.runtime`. Il y a un package d'exécution généré lors de l'utilisation du mode `dev` qui fournit des déclarations TypeScript pour l'exécution. Ceci devrait être situé dans le répertoire `wailsjs` dans votre répertoire frontend. ### Cacher @@ -33,7 +34,7 @@ Cache l'application. :::info Note -On Mac, this will hide the application in the same way as the `Hide` menu item in standard Mac applications. This is different to hiding the window, but the application still being in the foreground. For Windows and Linux, this is currently the same as `WindowHide`. +Sur Mac, cela masquera l'application de la même manière que le bouton `Masquer` du menu des applications Mac standard. C'est une manière différente de cacher l'application, mais elle sera toujours au premier plan. Pour Windows et Linux, c'est actuellement la même chose que `WindowHide`. ::: @@ -43,7 +44,7 @@ Affiche l'application. :::info Note -On Mac, this will bring the application back into the foreground. For Windows and Linux, this is currently the same as `WindowShow`. +Sur Mac, cela va ramener l'application au premier plan. Pour Windows et Linux, c'est actuellement la même chose que `WindowShow`. ::: diff --git a/website/i18n/fr/docusaurus-plugin-content-docs/current/reference/runtime/log.mdx b/website/i18n/fr/docusaurus-plugin-content-docs/current/reference/runtime/log.mdx index 83cb32e95..45b7a07ed 100644 --- a/website/i18n/fr/docusaurus-plugin-content-docs/current/reference/runtime/log.mdx +++ b/website/i18n/fr/docusaurus-plugin-content-docs/current/reference/runtime/log.mdx @@ -4,7 +4,7 @@ sidebar_position: 3 # Log -The Wails runtime provides a logging mechanism that may be called from Go or JavaScript. Comme la plupart des loggers, il y a un certain nombre de niveaux de log : +Le runtime Wails fournit un mécanisme de journalisation qui peut être appelé depuis Go ou JavaScript. Comme la plupart des loggers, il y a un certain nombre de niveaux de log : - Trace - Debug @@ -101,7 +101,7 @@ Go: `LogFatalf(ctx context.Context, format string, args ...interface{})`
### LogSetLogLevel -Définit le niveau des logs. In JavaScript, the number relates to the following log levels: +Définit le niveau des logs. En JavaScript, le nombre se rapporte aux niveaux de log suivants : | Valeur | Niveau de log | | ------ | ------------- | diff --git a/website/i18n/fr/docusaurus-plugin-content-docs/current/reference/runtime/window.mdx b/website/i18n/fr/docusaurus-plugin-content-docs/current/reference/runtime/window.mdx index 5b1bac134..03313236e 100644 --- a/website/i18n/fr/docusaurus-plugin-content-docs/current/reference/runtime/window.mdx +++ b/website/i18n/fr/docusaurus-plugin-content-docs/current/reference/runtime/window.mdx @@ -200,7 +200,7 @@ Sous Windows, seules les valeurs 0 et 255 sont prises en charge pour A. Toute va Go: `WindowSetBackgroundColour(ctx context.Context, R, G, B, A uint8)`
JS: `WindowSetBackgroundColour(R, G, B, A)` -## TypeScript Object Definitions +## Définitions d'objets TypeScript ### Position diff --git a/website/i18n/fr/docusaurus-plugin-content-docs/version-v2.0.0.json b/website/i18n/fr/docusaurus-plugin-content-docs/version-v2.3.0.json similarity index 94% rename from website/i18n/fr/docusaurus-plugin-content-docs/version-v2.0.0.json rename to website/i18n/fr/docusaurus-plugin-content-docs/version-v2.3.0.json index 1eac63973..4852f913a 100644 --- a/website/i18n/fr/docusaurus-plugin-content-docs/version-v2.0.0.json +++ b/website/i18n/fr/docusaurus-plugin-content-docs/version-v2.3.0.json @@ -1,7 +1,7 @@ { "version.label": { - "message": "v2.0.0", - "description": "The label for version v2.0.0" + "message": "v2.3.0", + "description": "The label for version v2.3.0" }, "sidebar.docs.category.Getting Started": { "message": "Premiers pas", diff --git a/website/i18n/fr/docusaurus-plugin-content-docs/version-v2.1.0.json b/website/i18n/fr/docusaurus-plugin-content-docs/version-v2.3.1.json similarity index 94% rename from website/i18n/fr/docusaurus-plugin-content-docs/version-v2.1.0.json rename to website/i18n/fr/docusaurus-plugin-content-docs/version-v2.3.1.json index f12260e12..aa1d69df8 100644 --- a/website/i18n/fr/docusaurus-plugin-content-docs/version-v2.1.0.json +++ b/website/i18n/fr/docusaurus-plugin-content-docs/version-v2.3.1.json @@ -1,7 +1,7 @@ { "version.label": { - "message": "v2.1.0", - "description": "The label for version v2.1.0" + "message": "v2.3.1", + "description": "The label for version v2.3.1" }, "sidebar.docs.category.Getting Started": { "message": "Premiers pas", diff --git a/website/i18n/fr/docusaurus-plugin-content-docs/version-v2.2.0.json b/website/i18n/fr/docusaurus-plugin-content-docs/version-v2.4.0.json similarity index 94% rename from website/i18n/fr/docusaurus-plugin-content-docs/version-v2.2.0.json rename to website/i18n/fr/docusaurus-plugin-content-docs/version-v2.4.0.json index c63ffbebe..6afb2ac9c 100644 --- a/website/i18n/fr/docusaurus-plugin-content-docs/version-v2.2.0.json +++ b/website/i18n/fr/docusaurus-plugin-content-docs/version-v2.4.0.json @@ -1,7 +1,7 @@ { "version.label": { - "message": "v2.2.0", - "description": "The label for version v2.2.0" + "message": "v2.4.0", + "description": "The label for version v2.4.0" }, "sidebar.docs.category.Getting Started": { "message": "Premiers pas", diff --git a/website/i18n/fr/docusaurus-plugin-content-pages/changelog.mdx b/website/i18n/fr/docusaurus-plugin-content-pages/changelog.mdx index 1764c7311..36bfd248b 100644 --- a/website/i18n/fr/docusaurus-plugin-content-pages/changelog.mdx +++ b/website/i18n/fr/docusaurus-plugin-content-pages/changelog.mdx @@ -13,23 +13,75 @@ Le format est basé sur [Keep a Changelog](https://keepachangelog.com/en/1.0.0/) ## [Unreleased] +## v2.4.0 - 2022-03-08 + +### Ajouts +- Added Webview GPU acceleration options for [Windows](/docs/reference/options#webviewgpuisdisabled) and [Linux](/docs/reference/options#webviewgpupolicy). Added by @Lyimmi in [PR](https://github.com/wailsapp/wails/pull/2266) +- Added `EnableFraudulentWebsiteDetection` option to opt-in to scan services for fraudulent content, such as malware or phishing attempts. Older releases had the scan services per default activated. Added by @stffabi in [PR](https://github.com/wailsapp/wails/pull/2269) +- Allow an [AssetServer Middleware](/docs/reference/options#middleware) to specify the `Content-Type` of a file served by the [Assets](/docs/reference/options#assets-1) `fs.FS`. Added by @stffabi in [PR](https://github.com/wailsapp/wails/pull/2286) +- The AssetServer now detects more mimetypes by extension, e.g. `.mjs`. Added by @stffabi in [PR](https://github.com/wailsapp/wails/pull/2391) + +### Changements +- Improved fullscreen mode for frameless window on Windows. Changed by @stffabi in [PR](https://github.com/wailsapp/wails/pull/2279), [PR](https://github.com/wailsapp/wails/pull/2288) and [PR](https://github.com/wailsapp/wails/pull/2299) +- On Windows unmaximising a window has no effect anymore when the window is in fullscreen mode, this makes it consistent with e.g. macOS. Changed by @stffabi in [PR](https://github.com/wailsapp/wails/pull/2279) +- Frameless resize now sets the cursor on documentElement, otherwise resizing cursor won't be shown outside of the body rectangle. Changed by @stffabi in [PR](https://github.com/wailsapp/wails/pull/2289) +- Improved the `--wails-draggable` experience to be more reactive. Changed by @stffabi in [PR](https://github.com/wailsapp/wails/pull/2302) +- NSIS template now installs the shortcuts for all users and not only for the current user. Changed by @stffabi in [PR](https://github.com/wailsapp/wails/pull/2373) + +### Corrections +- Fixed failing build hooks when `build/bin` was missing. Fixed by @Lyimmi in [PR](https://github.com/wailsapp/wails/pull/2273) +- Fixed fullscreen mode for frameless window on Windows to fully cover the taskbar when changing into fullscreen from maximised state. Fixed by @stffabi in [PR](https://github.com/wailsapp/wails/pull/2279) +- Fixed set window background colour on Windows when setting the colour via runtime. Fixed by @stffabi in [PR](https://github.com/wailsapp/wails/pull/2279) +- Fixed the showing of a white border around a fullscreen window when `DisableWindowIcon` is active on Windows. Fixed by @stffabi in [PR](https://github.com/wailsapp/wails/pull/2299) +- Fixed the sometimes lagging drag experience with `--wails-draggable` on Windows. Fixed by @stffabi in [PR](https://github.com/wailsapp/wails/pull/2302) +- Fixed applying the default arch to platform flag in wails cli. If only a `GOOS` has been supplied as platform flag e.g. `wails build --platform windows` the current architecture wasn't applied and the build failed. Fixed by @stffabi in [PR](https://github.com/wailsapp/wails/pull/2309) +- Fixed a segfault on opening the inspector on older macOS versions. Fixed by @stffabi in [PR](https://github.com/wailsapp/wails/pull/2397) +- Fixed the macos single architecture builds not respecting an output file name specified with the '-o' flag. Fixed by @gwynforthewyn in [PR](https://github.com/wailsapp/wails/pull/2358) +- Fixed `undo`/`redo` on macOS. Fixed by @stffabi in [PR](https://github.com/wailsapp/wails/pull/2430) +- Fixed `Events*` runtime functions in JavaScript not returning the function to cancel the watcher. Fixed by @zllovesuki in [PR](https://github.com/wailsapp/wails/pull/2434) +- Fixed AppOptions merging defaults when a custom logger is used. Fixed by @stffabi in [PR](https://github.com/wailsapp/wails/pull/2452) +- Fixed race condition and missing unlock of mutex in events handling. Fixed by @stffabi in [PR](https://github.com/wailsapp/wails/pull/2453) + +## v2.3.0 - 2022-12-29 + ### Ajouts - Ajout de l'option `OpenInspectorOnStartup` au débogage pour permettre d'ouvrir le WebInspector au démarrage de l'application en mode débogage . Ajouté par @stffabi : [PR](https://github.com/wailsapp/wails/pull/2080) - Sur MacOS, `wails doctor` affiche à présent la version de Xcode installée. Ajouté par @stffabi : [PR](https://github.com/wailsapp/wails/pull/2089) - L'[AssetServer](/docs/reference/options#assetserver) supporte à présent les range-requests si l' [Assets](/docs/reference/options/#assets-1) `fs.FS` importe `io.ReadSeeker`. Ajouté par @stffabi : [PR](https://github.com/wailsapp/wails/pull/2091) -- Ajouter une nouvelle propriété `bindings` dans le fichier de configuration `wails.json`. More information on the new property can be found in the updated [schema](/schemas/config.v2.json). Les propriétés `prefix` et `suffix` vous permettent de contrôler le nom d'entité TypeScript généré dans le fichier `model.ts`. Ajouté par @OlegGulevskyy dans [PR](https://github.com/wailsapp/wails/pull/2101) +- Ajouter une nouvelle propriété `bindings` dans le fichier de configuration `wails.json`. Plus d'informations sur la nouvelle propriété peuvent être trouvées dans le [schéma](/schemas/config.v2.json) mis à jour. Les propriétés `prefix` et `suffix` vous permettent de contrôler le nom d'entité TypeScript généré dans le fichier `model.ts`. Ajouté par @OlegGulevskyy dans [PR](https://github.com/wailsapp/wails/pull/2101) - La méthode `WindowSetAlwaysOnTop` est maintenant exposée dans l'exécutable JS. Fixé par @gotid dans la [PR](https://github.com/wailsapp/wails/pull/2128) -- The [AssetServer](/docs/reference/options#assetserver) now supports serving the index.html file when requesting a directory. Added by @stffabi in [PR](https://github.com/wailsapp/wails/pull/2110) -- Added support for WebKit2GTK 2.36+ on Linux. This brings additional features for the [AssetServer](/docs/reference/options#assetserver), like support for HTTP methods and Headers. The app must be compiled with the Go build tag `webkit2_36` to activate support for this features. This also bumps the minimum requirement of WebKit2GTK to 2.36 for your app. Fixed by @stffabi in this [PR](https://github.com/wailsapp/wails/pull/2151) +- L'[AssetServer](/docs/reference/options#assetserver) prend maintenant en charge le service du fichier index.html lors de la demande d'un répertoire. Ajouté par @stffabi dans cette [PR](https://github.com/wailsapp/wails/pull/2110) +- Ajout du support de WebKit2GTK 2.36+ sous Linux. Cela apporte des fonctionnalités supplémentaires pour l' [AssetServer](/docs/reference/options#assetserver), comme le support des méthodes HTTP et des en-têtes. L'application doit être compilée avec la balise Go `webkit2_36` pour activer le support de ces fonctionnalités. Cela repousse également l'exigence minimale de WebKit2GTK à 2.36 pour votre application. Correction par @stffabi dans cette [PR](https://github.com/wailsapp/wails/pull/2151) +- Ajout de la prise en charge de la sélection des entrées de fichier sur macOS. Ajouté par @stffabi dans cette [PR](https://github.com/wailsapp/wails/pull/2209) +- Ajout du flux de requête/réponse de l'AssetServer sur macOS. Ajouté par @stffabi dans cette [PR](https://github.com/wailsapp/wails/pull/2219) +- Added request path checks for the AssetServer. Added by @stffabi in [PR](https://github.com/wailsapp/wails/pull/2235) +- Added new App Store guide. Added by @achhabra2 in [PR](https://github.com/wailsapp/wails/pull/2142) +- Added extra libwebkit check for dnf package manager (required for latest Fedora). Fixed by @NullCode1337 in this [PR](https://github.com/wailsapp/wails/pull/2218) +- Added new `-nomodsync` flag to disable the automatic syncing of the `go.mod` file. Added by @leaanthony in [PR](https://github.com/wailsapp/wails/pull/2215) +- Added support for adding prefix and postfix text to generated Typescript classes. Ajouté par @OlegGulevskyy dans [PR](https://github.com/wailsapp/wails/pull/2101) +- Added reference to NSIS as optional dependency. Added by @acheong08 in [PR](https://github.com/wailsapp/wails/pull/2070) +- Added Korean translation for the website. Added by @cybertramp in [PR](https://github.com/wailsapp/wails/pull/2093) ### Corrections - Le booléen activant la fonctionnalité `noreload` n'était pas utilisable dans le mode développement de wails. Corrigé par @stffabi dans cette [PR](https://github.com/wailsapp/wails/pull/2081) - `le dossier build/bin` se dupliquait sur chaque rechargement en mode `wails dev`. Corrigé par @OlegGulevskyy dans cette [PR](https://github.com/wailsapp/wails/pull/2103) - Empêcher une fine ligne blanche au bas d'une fenêtre sans cadre sous Windows. Correction par @stffabi dans cette [PR](https://github.com/wailsapp/wails/pull/2111) -- Better signal handling for Linux. Fixed by @leaanthony in this [PR](https://github.com/wailsapp/wails/pull/2152) +- Meilleure gestion des signaux pour Linux. Corrigé par @leaanthony dans cette [PR](https://github.com/wailsapp/wails/pull/2152) +- Running the docs locally was broken due to mandatory crowdin token requirement. Fixed by @OlegGulevskyy in this [PR](https://github.com/wailsapp/wails/pull/2231) +- Generated typescript for Go functions that returned a single error was incorrect. Fixed by @ATenderholt in this [PR](https://github.com/wailsapp/wails/pull/2247) +- The right mouse event was not being raised correctly for Linux. Fixed by @leaanthony in this [PR](https://github.com/wailsapp/wails/pull/2190) +- Remove extra spaces in Wails version when querying `go.mod`. Fixed by @matholt in this [PR](https://github.com/wailsapp/wails/pull/2197) +- Fix go tests failure on Mac. Fixed by @avengerweb in this [PR](https://github.com/wailsapp/wails/pull/2187) +- Fix go test errors. Fixed by @misitebao & @avengerweb in [these](https://github.com/wailsapp/wails/pull/2169) [PRs](https://github.com/wailsapp/wails/pull/2187) +- Added `WindowSetAlwaysOnTop` to the JS runtime. Fixé par @gotid dans la [PR](https://github.com/wailsapp/wails/pull/2128) +- Fixed obfuscated flag typo in docs. Fixed by @ckilb in [PR](https://github.com/wailsapp/wails/pull/2102) +- Fixed React Hash Router link in docs. Fixed by @marvinhosea in [PR](https://github.com/wailsapp/wails/pull/2050) ### Changements -- Improve error message if no `index.html` could be found in the assets and validate assetserver options. Changed by @stffabi in this [PR](https://github.com/wailsapp/wails/pull/2110) +- Amélioration du message d'erreur si aucun `index.html` ne peut être trouvé dans les assets et de la validation des options d'assetserver. Changé par @stffabi dans cette [PR](https://github.com/wailsapp/wails/pull/2110) +- Promotion de Go WebView2Loader d'expérimental à stable. Cela signifie que maintenant, par défaut, toutes les constructions de Wails utilisent le nouveau chargeur introduit avec `v2.2.0`. L'ancien chargeur reste utilisable avec la balise de compilation `native_webview2loader` pour les prochaines versions. Changé par @stffabi dans cette [PR](https://github.com/wailsapp/wails/pull/2199) +- Refactored CLI. Changed by @leaanthony in this [PR](https://github.com/wailsapp/wails/pull/2123) +- Remove unreachable code. Changed by @tmclane in this [PR](https://github.com/wailsapp/wails/pull/2182) ## v2.2.0 - 2022-11-09 @@ -47,9 +99,9 @@ Le format est basé sur [Keep a Changelog](https://keepachangelog.com/en/1.0.0/) ### Corrections -- Webview2 on Windows returns a potential whitespace when defining the style like this style="--wails-draggable: drag". Fixed by @stffabi in https://github.com/wailsapp/wails/pull/1989 -- Bound structs that had `struct{}` field types would cause the TypeScript generation to fail. Thanks to @ParkourLiu for the [PR](https://github.com/wailsapp/wails/pull/1999) -- When maximising a frameless window on Windows with multiple monitors, the window could sometimes become blank. Merci à @stffabi pour cette [correction](https://github.com/wailsapp/wails/pull/2043) +- Webview2 sous Windows renvoie un espace potentiel lors de la définition du style comme ce style="--wails-draggable: drag". Fixé par @stffabi dans https://github.com/wailsapp/wails/pull/1989 +- Les structures liées qui avaient des types de champ `struct{}` entraîneraient l'échec de la génération du code TypeScript. Merci à @ParkourLiu pour la [PR](https://github.com/wailsapp/wails/pull/1999) +- Lorsque vous maximisez une fenêtre sans cadre sur Windows avec plusieurs moniteurs, la fenêtre peut parfois devenir vide. Merci à @stffabi pour cette [correction](https://github.com/wailsapp/wails/pull/2043) ### Changements @@ -85,17 +137,17 @@ Le format est basé sur [Keep a Changelog](https://keepachangelog.com/en/1.0.0/) ### Corrections -- Embed directories auto-created if they don't exist - @leaanthony in https://github.com/wailsapp/wails/pull/1983 -- Quote command arguments if they have a space - @leaanthony in https://github.com/wailsapp/wails/pull/1892 -- Fixed Linux frameless window drag - @Lyimmi in https://github.com/wailsapp/wails/pull/1916 -- Fix gtk_window_begin_resize_drag's mouse button - @Lyimmi in https://github.com/wailsapp/wails/pull/1920 -- Fix binding generation special cases - @JulioDRF in https://github.com/wailsapp/wails/pull/1902 -- Remove the `.git` directory in the template - @misitebao in https://github.com/wailsapp/wails/pull/1929 -- Fix wails dev - @JulioDRF in https://github.com/wailsapp/wails/pull/1931 -- Fix for considering new `go` files in dev filesystem watcher - @scottopell in https://github.com/wailsapp/wails/pull/1946 -- Prevent type parsing to interfere with TypeScript package name - @ValentinTrinque in https://github.com/wailsapp/wails/pull/1942 -- [dev] Do not try to infer assetdir from fs.FS when a frontend dev server is in use - @stffabi in https://github.com/wailsapp/wails/pull/1972 -- Fix init command not listed in wails help message - @lyon-lee-dev in https://github.com/wailsapp/wails/pull/1976 +- Créer automatiquement les dossiers embarqués si ils n'existent pas déjà - @leaanthony dans https://github.com/wailsapp/wails/pull/1983 +- Ajout de guillements pour les arguments de la commande s'ils ont un espace - @leaanthony sur https://github.com/wailsapp/wails/pull/1892 +- Correction du drag sur les fenêtres sans cadre sous Linux - @Lyimmi in https://github.com/wailsapp/wails/pull/1916 +- Correction du bouton gtk_window_begin_resize_drag - @Lyimmi dans https://github.com/wailsapp/wails/pull/1920 +- Correction de cas spéciaux de binding lors de la génération de code - @JulioDRF dans https://github.com/wailsapp/wails/pull/1902 +- Retirer le répertoire `.git` dans le template - @misitebao dans https://github.com/wailsapp/wails/pull/1929 +- Correction de wails dev - @JulioDRF dans https://github.com/wailsapp/wails/pull/1931 +- Correction pour considérer les nouveaux fichiers `go` dans filesystem watcher de dev - @scottopell dans https://github.com/wailsapp/wails/pull/1946 +- Empêcher l'analyse de type d'interférer avec le nom du paquet TypeScript - @ValentinTrinque dans https://github.com/wailsapp/wails/pull/1942 +- [dev] N'essayez pas d'inférer assetdir de fs.FS quand un serveur de dev frontend est utilisé - @stffabi dans https://github.com/wailsapp/wails/pull/1972 +- Corriger la commande init non listée dans wails help message - @lyon-lee-dev dans https://github.com/wailsapp/wails/pull/1976 ### Changements @@ -105,20 +157,20 @@ Le format est basé sur [Keep a Changelog](https://keepachangelog.com/en/1.0.0/) - Mise à jour des labels dans le template de bug - @misitebao dans https://github.com/wailsapp/wails/pull/1893 - "obfuscated" à la place de "obfuscate" dans la documentation - @arifali123 in https://github.com/wailsapp/wails/pull/1895 - [assetHandler] Supprimer le préfixe de log redondant - @stffabi dans https://github.com/wailsapp/wails/pull/1896 -- [dev] Do not generate bindings in the dev app itself - @stffabi in https://github.com/wailsapp/wails/pull/1899 -- Update Chinese translation - @almas1992 in https://github.com/wailsapp/wails/pull/1894 -- Refactor app - @leaanthony in https://github.com/wailsapp/wails/pull/1909 -- Update documents - @misitebao in https://github.com/wailsapp/wails/pull/1907 https://github.com/wailsapp/wails/pull/1936 -- Adding Tutorial link - @raguay in https://github.com/wailsapp/wails/pull/1903 -- Add react-ts-vite-tailwind template - @hotafrika in https://github.com/wailsapp/wails/pull/1930 -- Update README.zh-Hans.md - @o8x in https://github.com/wailsapp/wails/pull/1949 -- Add Elm Tailwind CSS community template - @rnice01 in https://github.com/wailsapp/wails/pull/1939 -- Chore/generate sponsors - @leaanthony in https://github.com/wailsapp/wails/pull/1965 -- Use swc + pnpm for website - @leaanthony in https://github.com/wailsapp/wails/pull/1966 -- Sort structs in models.ts - @leaanthony in https://github.com/wailsapp/wails/pull/1961 -- Update Sponsor Image - @github-actions in https://github.com/wailsapp/wails/pull/1973 -- docs: sync documents - @misitebao in https://github.com/wailsapp/wails/pull/1968 -- Update events.mdx - @cuigege in https://github.com/wailsapp/wails/pull/1979 +- [dev] Ne génére pas de bindings dans l'application de développement - @stffabi dans https://github.com/wailsapp/wails/pull/1899 +- Mettre à jour la traduction chinoise - @almas1992 dans https://github.com/wailsapp/wails/pull/1894 +- Amélioration de la qualité du code - @leaanthony dans https://github.com/wailsapp/wails/pull/1909 +- Mettre à jour les documents - @misitebao dans https://github.com/wailsapp/wails/pull/1907 https://github.com/wailsapp/wails/pull/1936 +- Ajout du lien Tutoriel - @raguay sur https://github.com/wailsapp/wails/pull/1903 +- Ajout du modèle react-ts-vite-tailwind - @hotafrika dans https://github.com/wailsapp/wails/pull/1930 +- Mettre à jour README.zh-Hans.md - @o8x dans https://github.com/wailsapp/wails/pull/1949 +- Ajout du modèle communautaire CSS Elm Tailwind - @rnice01 dans https://github.com/wailsapp/wails/pull/1939 +- Mise à jour des sponsors - @leaanthony en https://github.com/wailsapp/wails/pull/1965 +- Utilisez swc + pnpm pour le site web - @leaanthony dans https://github.com/wailsapp/wails/pull/1966 +- Tri des structs dans models.ts - @leaanthony in https://github.com/wailsapp/wails/pull/1961 +- Mettre à jour des images des sponsors - @github-actions dans https://github.com/wailsapp/wails/pull/1973 +- docs : synchronisation des documents - @misitebao dans https://github.com/wailsapp/wails/pull/1968 +- Mise à jour de events.mdx - @cuigege dans https://github.com/wailsapp/wails/pull/1979 ### Nouveaux Contributeurs @@ -136,8 +188,8 @@ Le format est basé sur [Keep a Changelog](https://keepachangelog.com/en/1.0.0/) ### Corrections -- Fix buildtags parsing if only one tag is specified by @stffabi in https://github.com/wailsapp/wails/pull/1858 -- Use embed all to include all files in templates by @stffabi in https://github.com/wailsapp/wails/pull/1862 +- Corriger l'analyse des buildtags si un seul tag est spécifié par @stffabi dans https://github.com/wailsapp/wails/pull/1858 +- Utilisation de embed all pour inclure tous les fichiers dans les templates par @stffabi dans https://github.com/wailsapp/wails/pull/1862 ### Changements @@ -156,43 +208,43 @@ Le format est basé sur [Keep a Changelog](https://keepachangelog.com/en/1.0.0/) ### Déprécié -- The `-noGen` flag for the `wails dev` command has been replaced with `-skipbindings`. This is to align with the `wails build` command. +- L'option `-noGen` pour la commande `wails dev` a été remplacé par `-skipbindings`. C'est pour s'aligner sur la commande `wails build`. ### Ajouts -- Add garble support by @leaanthony in https://github.com/wailsapp/wails/pull/1793 -- Make draggable CSS property customisable by @leaanthony in https://github.com/wailsapp/wails/pull/1828 -- Add Some WindowState by @zandercodes in https://github.com/wailsapp/wails/pull/1349 -- Make EventsOff capable of removing multiple listeners by @Lyimmi in https://github.com/wailsapp/wails/pull/1822 +- Ajout du support de garble de @leaanthony dans https://github.com/wailsapp/wails/pull/1793 +- Rendre la propriété CSS draggable personnalisable par @leaanthony sur https://github.com/wailsapp/wails/pull/1828 +- Ajout de WindowState par @zandercodes dans https://github.com/wailsapp/wails/pull/1349 +- Rendre EventsOff capable de supprimer plusieurs évènements par @Lyimmi dans https://github.com/wailsapp/wails/pull/1822 ### Corrections -- Use `Promise` when Go routine does not output by @SheetJSDev in https://github.com/wailsapp/wails/pull/1821 -- preact-ts template build fix by @Debdut in https://github.com/wailsapp/wails/pull/1781 -- fix frontend/tsconfig.js by @Lyimmi in https://github.com/wailsapp/wails/pull/1795 -- fix: fix bugs in website by @misitebao in https://github.com/wailsapp/wails/pull/1810 -- Fix vue-ts template by @leaanthony in https://github.com/wailsapp/wails/pull/1813 -- Remove duplicate defs in win32/window.go by @AlbinoDrought in https://github.com/wailsapp/wails/pull/1832 +- Utilise `Promise` lorsque la routine Go ne produit pas d'output par @SheetJSDev dans https://github.com/wailsapp/wails/pull/1821 +- Correctif du modèle preact-ts par @Debdut dans https://github.com/wailsapp/wails/pull/1781 +- Correction de frontend/tsconfig.js par @Lyimmi dans https://github.com/wailsapp/wails/pull/1795 +- Correction : bugs du site web par @misitebao dans https://github.com/wailsapp/wails/pull/1810 +- Correction du modèle vue-ts par @leaanthony dans https://github.com/wailsapp/wails/pull/1813 +- Retrait des duplicats de def dans win32/window.go par @AlbinoDrought dans https://github.com/wailsapp/wails/pull/1832 ### Changements -- Upgrade React to use Vite v3 by @leaanthony in https://github.com/wailsapp/wails/pull/1744 -- Upgrade Lit to use Vite v3 by @leaanthony in https://github.com/wailsapp/wails/pull/1745 -- Support vite3 for Vue by @leaanthony in https://github.com/wailsapp/wails/pull/1746 -- Preact templates for vite 3 by @leaanthony in https://github.com/wailsapp/wails/pull/1770 -- Prevent env variables and registry overrides from changing behaviour by @stffabi in https://github.com/wailsapp/wails/pull/1771 -- Use go implementation to retrieve the version of a fixed runtime by @stffabi in https://github.com/wailsapp/wails/pull/1790 -- Change contribution guide type from "doc" to "page" by @misitebao in https://github.com/wailsapp/wails/pull/1777 -- feat(website): repair document content by @misitebao in https://github.com/wailsapp/wails/pull/1775 -- chore: sort out files by @misitebao in https://github.com/wailsapp/wails/pull/1776 +- Mise à jour de React pour utiliser Vite v3 par @leaanthony sur https://github.com/wailsapp/wails/pull/1744 +- Mise à jour de Lit pour utiliser Vite v3 par @leaanthony sur https://github.com/wailsapp/wails/pull/1745 +- Ajout du support de vite3 pour Vue par @leaanthony sur https://github.com/wailsapp/wails/pull/1746 +- Modèles Preact pour vite 3 par @leaanthony dans https://github.com/wailsapp/wails/pull/1770 +- Empêcher les variables env et le registre de modifier le comportement de @stffabi dans https://github.com/wailsapp/wails/pull/1771 +- Utilisez l'implémentation go pour récupérer la version d'un runtime fixe par @stffabi dans https://github.com/wailsapp/wails/pull/1790 +- Changez le type de guide de contribution de "doc" à "page" par @misitebao sur https://github.com/wailsapp/wails/pull/1777 +- Fonctionnalité(site web): Réparation du contenu du document par @misitebao dans https://github.com/wailsapp/wails/pull/1775 +- Tri des fichiers par @misitebao sur https://github.com/wailsapp/wails/pull/1776 - Ajout du coréen dans la documentation par @jaesung9507 dans https://github.com/wailsapp/wails/pull/1774 - Ajout README.ja.md par @shinshin86 dans https://github.com/wailsapp/wails/pull/1783 - Réorganisation de la page des lignes directrices de contribution par @misitebao sur https://github.com/wailsapp/wails/pull/1784 - fix(site web): correction du lien par @misitebao dans https://github.com/wailsapp/wails/pull/1785 - Mise à jour du fichier templates.mdx par @KiddoV sur https://github.com/wailsapp/wails/pull/1799 -- Better watcher by @leaanthony in https://github.com/wailsapp/wails/pull/1827 -- Only set GDK_BACKEND to "x11" if GDK_BACKEND is unset and XDG_SESSION_TYPE is not "wayland" by @prurigro in https://github.com/wailsapp/wails/pull/1811 -- Optimize images by @imgbot in https://github.com/wailsapp/wails/pull/1812 +- Amélioration de l'observateur de @leaanthony sur https://github.com/wailsapp/wails/pull/1827 +- Définit GDK_BACKEND à "x11" uniquement si GDK_BACKEND n'est pas défini et si XDG_SESSION_TYPE n'a pas "wayland" comme valeur, par @prurigro dans https://github.com/wailsapp/wails/pull/1811 +- Optimisation des images par @imgbot dans https://github.com/wailsapp/wails/pull/1812 ### Nouveaux Contributeurs @@ -209,7 +261,7 @@ Le format est basé sur [Keep a Changelog](https://keepachangelog.com/en/1.0.0/) ### Déprécié -The `data-wails-drag` attribute is being deprecated in favour of the following CSS style: `style="--wails-draggable:drag"`. You can use `style="--wails-draggable:no-drag"` to disable the drag behaviour. For this release only, you can test this by setting the following application option: +L'attribut `data-wails-drag` est déprécié en faveur du style CSS suivant : `style="--wails-draggable:drag"`. Vous pouvez utiliser `style="--wails-draggable:no-drag"` pour désactiver la fonctionnalité de déplacement. Pour cette version seulement, vous pouvez tester cela en définissant l'option d'application suivante : ```go Experimental: &options.Experimental{ @@ -219,26 +271,26 @@ Experimental: &options.Experimental{ ### Ajouts -- Set file permissions for generated files by @leaanthony in https://github.com/wailsapp/wails/pull/1763 -- Experimental support for CSS Drag detection by @leaanthony in https://github.com/wailsapp/wails/pull/1750 +- Définir les droits d'accès pour les fichiers générés par @leaanthony dans https://github.com/wailsapp/wails/pull/1763 +- Support expérimental pour la détection de CSS Drag by @leaanthony dans https://github.com/wailsapp/wails/pull/1750 ### Corrections -- Bug fix collecting of output binaries for platforms by @stffabi in https://github.com/wailsapp/wails/pull/1715 -- Fix registration of exposed fields by @ValentinTrinque in https://github.com/wailsapp/wails/pull/1727 -- Fix column widths for doctor command's dependencies table by @ianmjones in https://github.com/wailsapp/wails/pull/1717 -- Do not generate bindings for `OnBeforeClose` method +- Correction de bugs lors de la collecte des binaires par @stffabi dans https://github.com/wailsapp/wails/pull/1715 +- Correction de l'enregistrement des champs exposés par @ValentinTrinque sur https://github.com/wailsapp/wails/pull/1727 +- Correection de la largeur des colonnes pour la table des dépendances de la commande "doctor" par @ianmjones sur https://github.com/wailsapp/wails/pull/1717 +- Ne pas générer de liaisons pour la méthode `OnBeforeClose` ### Changements -- Misc code refactors and removal by @leaanthony in https://github.com/wailsapp/wails/pull/1713 -- Add react-router to routing.mdx by @Maicarons2022 in https://github.com/wailsapp/wails/pull/1755 -- Add Japanese to doc by @RyoTagami in https://github.com/wailsapp/wails/pull/1716 -- Added EmailIt and Modal File Manager by @raguay in https://github.com/wailsapp/wails/pull/1728 -- Adding my ScriptBar program by @raguay in https://github.com/wailsapp/wails/pull/1761 -- Link to general webview2 runtime download page and not to a specific language by @stffabi in https://github.com/wailsapp/wails/pull/1764 -- Updated translations in https://github.com/wailsapp/wails/pull/1719 and https://github.com/wailsapp/wails/pull/1720 -- Remove text outside style's brackets by @DragoSpiro98 in https://github.com/wailsapp/wails/pull/1765 +- Diverses retouches et nettoyage du code par @leaanthony dans https://github.com/wailsapp/wails/pull/1713 +- Ajout de react-router à routing.mdx par @Maicarons2022 dans https://github.com/wailsapp/wails/pull/1755 +- Ajout de la traduction japonaise de la documentation de @RyoTagami dans https://github.com/wailsapp/wails/pull/1716 +- Ajout de EmailIt et du gestionnaire de fichiers modal par @raguay sur https://github.com/wailsapp/wails/pull/1728 +- Ajout du programme ScriptBar par @raguay sur https://github.com/wailsapp/wails/pull/1761 +- Lien vers la page de téléchargement générale de webview2 et non vers une langue spécifique de @stffabi dans https://github.com/wailsapp/wails/pull/1764 +- Traductions mises à jour dans https://github.com/wailsapp/wails/pull/1719 et https://github.com/wailsapp/wails/pull/1720 +- Supprime le texte en dehors des crochets dans les feuilles de style par @DragoSpiro98 dans https://github.com/wailsapp/wails/pull/1765 ### Nouveaux Contributeurs @@ -256,23 +308,23 @@ Experimental: &options.Experimental{ ### Corrections -- Fix formatting of some error messages by @stffabi in https://github.com/wailsapp/wails/pull/1665 -- Windows dialogs now work when window is not visible yet by @leaanthony in https://github.com/wailsapp/wails/pull/1662 -- Multiple fixes for MacOS asset requests by @stffabi in https://github.com/wailsapp/wails/pull/1668 and https://github.com/wailsapp/wails/pull/1681 -- Fix for Go 1.19 by @stffabi in https://github.com/wailsapp/wails/pull/1689 -- Removed Linux warnings by @leaanthony in https://github.com/wailsapp/wails/pull/1656 -- Better support for doubleclick events in drag regions by @leaanthony in https://github.com/wailsapp/wails/pull/1704 -- Allow MacOS frameless window to be miniturisable by @leaanthony in https://github.com/wailsapp/wails/pull/1705 +- Correction du formatage de certains messages d'erreur par @stffabi dans https://github.com/wailsapp/wails/pull/1665 +- Les boîtes de dialogue Windows fonctionnent maintenant lorsque la fenêtre n'est pas encore visible par @leaanthony sur https://github.com/wailsapp/wails/pull/1662 +- Plusieurs corrections pour les requêtes d'actifs MacOS par @stffabi dans https://github.com/wailsapp/wails/pull/1668 et https://github.com/wailsapp/wails/pull/1681 +- Correction pour Go 1.19 par @stffabi dans https://github.com/wailsapp/wails/pull/1689 +- Suppression des avertissements Linux par @leaanthony sur https://github.com/wailsapp/wails/pull/1656 +- Un meilleur support pour les événements doubleclick dans les régions de drag par @leaanthony sur https://github.com/wailsapp/wails/pull/1704 +- Autoriser la fenêtre sans cadre dans MacOS à être miniturisée par @leaanthony sur https://github.com/wailsapp/wails/pull/1705 ### Changements -- add wails-sveltekit-template by @h8gi in https://github.com/wailsapp/wails/pull/1671 -- wails doctor now reports correct MacOS os id by @stffabi in https://github.com/wailsapp/wails/pull/1673 -- Update application-development.mdx by @SamHennessy in https://github.com/wailsapp/wails/pull/1682 -- Move SetMin/Max calls to main thread by @leaanthony in https://github.com/wailsapp/wails/pull/1684 -- Change `frontend:dev` to `frontend:dev:build` by @LGiki in https://github.com/wailsapp/wails/pull/1691 -- Build frontend only before starting the dev watcher command by @stffabi in https://github.com/wailsapp/wails/pull/1694 -- Improve error message for auto dev server discovery without a dev watcher by @stffabi in https://github.com/wailsapp/wails/pull/1711 +- Ajout du modèle wails-sveltekit-template par @h8gi dans https://github.com/wailsapp/wails/pull/1671 +- wails doctor valide maintenant si le MacOS os id est correct par @stffabi dans https://github.com/wailsapp/wails/pull/1673 +- Mise à jour de application-development.mdx par @SamHennessy sur https://github.com/wailsapp/wails/pull/1682 +- Déplacer les appels SetMin/Max vers le fil principal de @leaanthony sur https://github.com/wailsapp/wails/pull/1684 +- Changez `frontend:dev` en `frontend:dev:build` par @LGiki dans https://github.com/wailsapp/wails/pull/1691 +- Faire la construction du frontend uniquement avant de commencer la commande de dev watcher par @stffabi dans https://github.com/wailsapp/wails/pull/1694 +- Amélioration des messages d'erreur pour la découverte du serveur de développement automatique sans le dev watcher par @stffabi dans https://github.com/wailsapp/wails/pull/1711 ### Nouveaux Contributeurs @@ -283,38 +335,38 @@ Experimental: &options.Experimental{ ### Ajouts -- Added `options.NewRGBA` and `options.NewRGB` functions to create `*options.RGBA` by @leaanthony +- Ajout des fonctions `options.NewRGBA` et `options.NewRGB` pour créer `*options.RGBA` par @leaanthony ### Corrections -- Fixed initial build of frontend when using `wails dev` on new projects by @leaanthony in https://github.com/wailsapp/wails/pull/1650 -- Ignore empty install command when running `wails dev` by @stffabi in https://github.com/wailsapp/wails/pull/1651 -- Fixed error reporting in templates -- BackgroundColour documentation fix -- Generalize manual compile steps [Documentation] by @acheong08 in https://github.com/wailsapp/wails/pull/1644 +- Correction de la version initiale du frontend lors de l'utilisation de `wails dev` sur de nouveaux projets par @leaanthony dans https://github.com/wailsapp/wails/pull/1650 +- Modification pour ignorer la commande d'installation vide lorsque vous exécutez `wails dev` par @stffabi sur https://github.com/wailsapp/wails/pull/1651 +- Correction d'un rapport d'erreur dans les modèles +- Correction de la documentation sur BackgroundColour +- Généralisation des étapes de compilation manuelles [Documentation] par @acheong08 sur https://github.com/wailsapp/wails/pull/1644 ## v2.0.0-beta.40 - 2022-07-24 ### Ajouts -- Add Show() and Hide() to runtime to show/hide application by @leaanthony in https://github.com/wailsapp/wails/pull/1599 -- Override target platform/arch using GOOS and GOARCH environment variables by @leaanthony in https://github.com/wailsapp/wails/pull/1618 -- Add option to skip frontend rebuild in dev mode by @leaanthony in https://github.com/wailsapp/wails/pull/1632 +- Ajout de Show() et Hide() à l'exécution pour afficher/masquer l'application par @leaanthony dans https://github.com/wailsapp/wails/pull/1599 +- Remplacer la plateforme/arch cible en utilisant les variables d'environnement GOOS et GOARCH par @leaanthony dans https://github.com/wailsapp/wails/pull/1618 +- Ajouter une option pour ignorer la reconstruction en mode dev par @leaanthony sur https://github.com/wailsapp/wails/pull/1632 ### Corrections -- Update svelte templates to use vite 3 by @leaanthony in https://github.com/wailsapp/wails/pull/1643 -- Fix plain template by @stffabi in https://github.com/wailsapp/wails/pull/1609 -- Fix Website layout by @leaanthony in https://github.com/wailsapp/wails/pull/1616 -- Fixed typo in documentation page docs/howdoesitwork by @MyNameIsAres in https://github.com/wailsapp/wails/pull/1636 -- Use scaling when setting min/max window by @leaanthony in https://github.com/wailsapp/wails/pull/1557 +- Mise à jour lds modèles svelte pour utiliser vite 3 par @leaanthony sur https://github.com/wailsapp/wails/pull/1643 +- Correction du modèle brut par @stffabi dans https://github.com/wailsapp/wails/pull/1609 +- Correction de la mise en page du site par @leaanthony sur https://github.com/wailsapp/wails/pull/1616 +- Correction d'une faute de frappe dans la page de documentation docs/howdoesitwork de @MyNameIsAres dans https://github.com/wailsapp/wails/pull/1636 +- Utilisation de la mise à l'échelle lorsque vous définissez la fenêtre min/max par @leaanthony dans https://github.com/wailsapp/wails/pull/1557 ### Changements -- Install dev dependencies before starting dev mode by @leaanthony in https://github.com/wailsapp/wails/pull/1615 -- Translate and fix website text by @misitebao in https://github.com/wailsapp/wails/pull/1525 -- docs: add MyNameIsAres as a contributor for doc by @allcontributors in https://github.com/wailsapp/wails/pull/1638 -- Deprecate Fullscreen appoption by @acheong08 in https://github.com/wailsapp/wails/pull/1640 +- Installation des dépendances de développement avant de démarrer le mode développeur par @leaanthony sur https://github.com/wailsapp/wails/pull/1615 +- Traduction et correction du texte du site web par @misitebao en https://github.com/wailsapp/wails/pull/1525 +- docs : ajout de MyNameIsAres en tant que contributeur de la doc par @allcontributors sur https://github.com/wailsapp/wails/pull/1638 +- Modification pour rendre l'option de l'application Fullscreen dépréciée par @acheong08 dans https://github.com/wailsapp/wails/pull/1640 ### Déprécié @@ -338,32 +390,32 @@ Experimental: &options.Experimental{ ### Ajouts -- New screen dimensions runtime API by @skamensky in https://github.com/wailsapp/wails/pull/1519 -- Auto discover vite devserver port by @leaanthony in https://github.com/wailsapp/wails/pull/1547 -- Add nixpkgs support to doctor command. by @ianmjones in https://github.com/wailsapp/wails/pull/1551 -- New pre-build hooks feature by @leaanthony in https://github.com/wailsapp/wails/pull/1578 -- New production log level option by @leaanthony in https://github.com/wailsapp/wails/pull/1555 +- Nouvel runtime pour gérer les dimensions de l'écran par @skamensky dans https://github.com/wailsapp/wails/pull/1519 +- Auto découverte du port du serveur de développement vite par @leaanthony sur https://github.com/wailsapp/wails/pull/1547 +- Ajout du support des nixpkgs dans la commande "doctor". par @ianmjones sur https://github.com/wailsapp/wails/pull/1551 +- Nouveaux crochets d'avant construction par @leaanthony sur https://github.com/wailsapp/wails/pull/1578 +- Nouvelle option de niveau de log pour la production par @leaanthony sur https://github.com/wailsapp/wails/pull/1555 ### Corrections -- Fix stack corruption in Windows when using ICoreWebView2HttpHeadersCollectionIterator by @stffabi in https://github.com/wailsapp/wails/pull/1589 -- Move WindowGet\* to main thread by @leaanthony in https://github.com/wailsapp/wails/pull/1464 -- Allow -appargs flag to pass flags to binary. by @ianmjones in https://github.com/wailsapp/wails/pull/1534 -- Fix checking for installed apt package in none English session. by @ianmjones in https://github.com/wailsapp/wails/pull/1548 -- Fix OnBeforeClose code for Mac by @leaanthony in https://github.com/wailsapp/wails/pull/1558 -- Support Maps in TS conversion by @leaanthony in https://github.com/wailsapp/wails/pull/1435 -- Check for line length when scanning for local devserver url by @leaanthony in https://github.com/wailsapp/wails/pull/1566 -- Remove usage of unsafe.Pointer in winc by @stffabi and @leaanthony in https://github.com/wailsapp/wails/pull/1556 +- Correction de la corruption de pile dans Windows lorsque vous utilisez ICoreWebView2HttpHeadersCollectionIterator par @stffabi dans https://github.com/wailsapp/wails/pull/1589 +- Déplacer WindowGet\* vers le fil principal de @leaanthony sur https://github.com/wailsapp/wails/pull/1464 +- Autoriser -appargs à passer des options au binaire. par @ianmjones sur https://github.com/wailsapp/wails/pull/1534 +- Correction de l'option pour apt package pour avoir la langue en anglais par @ianmjones dans https://github.com/wailsapp/wails/pull/1548 +- Correction du code de OnBeforeClose pour Mac par @leaanthony sur https://github.com/wailsapp/wails/pull/1558 +- Support des Maps dans la conversion TS par @leaanthony sur https://github.com/wailsapp/wails/pull/1435 +- Vérifier la longueur de ligne lors de la recherche d'une URL locale du serveur de développement par @leaanthony dans https://github.com/wailsapp/wails/pull/1566 +- Supprime l'utilisation de unsafe.Pointer dans winc par @stffabi et @leaanthony dans https://github.com/wailsapp/wails/pull/1556 ### Changements -- Rename WindowSetRGBA -> WindowSetBackgroundColour by @leaanthony in https://github.com/wailsapp/wails/pull/1506 -- Improvements to the dev command by @stffabi in https://github.com/wailsapp/wails/pull/1510 -- Update vscode template by @leaanthony in https://github.com/wailsapp/wails/pull/1398 -- Bump svelte from 3.42.2 to 3.49.0 in /v2/internal/frontend/runtime/dev by @dependabot in https://github.com/wailsapp/wails/pull/1572 -- Bump svelte from 3.42.5 to 3.49.0 in /v2/internal/frontend/runtime by @dependabot in https://github.com/wailsapp/wails/pull/1573 -- Add troubleshooting for `Not Found` error by @acheong08 in https://github.com/wailsapp/wails/pull/1586 -- Docs/better homepage by @leaanthony in https://github.com/wailsapp/wails/pull/1591 +- Renommer WindowSetRGBA -> WindowSetBackgroundColour par @leaanthony dans https://github.com/wailsapp/wails/pull/1506 +- Améliorations de la commande "dev" par @stffabi dans https://github.com/wailsapp/wails/pull/1510 +- Mise à jour du modèle vscode par @leaanthony sur https://github.com/wailsapp/wails/pull/1398 +- Mise à jour de la version de svelte de 3.42.2 à 3.49.0 dans /v2/internal/frontend/runtime/dev par @dependabot dans https://github.com/wailsapp/wails/pull/1572 +- Mise à jour de la version de svelte de 3.42.5 à 3.49.0 dans /v2/internal/frontend/runtime par @dependabot dans https://github.com/wailsapp/wails/pull/1573 +- Ajout de documentation sur l'erreur `Not Found` par @acheong08 sur https://github.com/wailsapp/wails/pull/1586 +- Documentation : meilleure page d'accueil par @leaanthony sur https://github.com/wailsapp/wails/pull/1591 ### Nouveaux Contributeurs @@ -376,21 +428,21 @@ Experimental: &options.Experimental{ ### Ajouts -- Add race detector to build & dev by @Lyimmi in https://github.com/wailsapp/wails/pull/1426 -- [linux] Support `linux/arm` architecture by @Lyimmi in https://github.com/wailsapp/wails/pull/1427 -- Create gitignore when using `-g` option by @jaesung9507 in https://github.com/wailsapp/wails/pull/1430 -- [windows] Add Suspend/Resume callback support by @leaanthony in https://github.com/wailsapp/wails/pull/1474 -- Add runtime function `WindowSetAlwaysOnTop` by @chenxiao1990 in https://github.com/wailsapp/wails/pull/1442 -- [windows] Allow setting browser path by @NanoNik in https://github.com/wailsapp/wails/pull/1448 +- Ajout du détecteur Race pour la construction & dev par @Lyimmi dans https://github.com/wailsapp/wails/pull/1426 +- [linux] Support de l'architecture `linux/arm` par @Lyimmi dans https://github.com/wailsapp/wails/pull/1427 +- Création de gitignore en utilisant l'option `-g` par @jaesung9507 dans https://github.com/wailsapp/wails/pull/1430 +- [windows] Ajout du support des méthodes de callback Suspend/Resume par @leaanthony sur https://github.com/wailsapp/wails/pull/1474 +- Ajout de la fonction d'exécution `WindowSetAlwaysOnTop` par @chenxiao1990 dans https://github.com/wailsapp/wails/pull/1442 +- [windows] Autoriser le paramétrage du chemin du navigateur par @NanoNik dans https://github.com/wailsapp/wails/pull/1448 ### Corrections -- [linux] Improve switching to main thread for callbacks by @stffabi in https://github.com/wailsapp/wails/pull/1392 -- [windows] Fix WebView2 minimum runtime version check by @stffabi in https://github.com/wailsapp/wails/pull/1456 -- [linux] Fix apt command syntax (#1458) by @abtin in https://github.com/wailsapp/wails/pull/1461 -- [windows] Set Window Background colour if provided + debounce redraw option by @leaanthony in https://github.com/wailsapp/wails/pull/1466 -- Fix small typo in docs by @LukenSkyne in https://github.com/wailsapp/wails/pull/1449 -- Fix the url to surge by @andywenk in https://github.com/wailsapp/wails/pull/1460 +- [linux] Améliore le passage au thread principal pour les callbacks par @stffabi dans https://github.com/wailsapp/wails/pull/1392 +- [windows] Correction de la validation de la version minimum de WebView2 par @stffabi dans https://github.com/wailsapp/wails/pull/1456 +- [linux] Correction de la syntaxe de commande apt (#1458) par @abtin dans https://github.com/wailsapp/wails/pull/1461 +- [windows] Définition de la couleur d'arrière-plan de la fenêtre si fourni + option "rebounce" pour le redessin par @leaanthony dans https://github.com/wailsapp/wails/pull/1466 +- Correction d'une petite faute de frappe dans la doc par @LukenSkyne sur https://github.com/wailsapp/wails/pull/1449 +- Correction de l'url de Surge par @andywenk dans https://github.com/wailsapp/wails/pull/1460 - Fixed theme change at runtime by @leaanthony in https://github.com/wailsapp/wails/pull/1473 - Fix: Don't stop if unable to remove temporary bindings build by @leaanthony in https://github.com/wailsapp/wails/pull/1465 - [windows] Pass the correct installationStatus to the webview installation strategy by @stffabi in https://github.com/wailsapp/wails/pull/1483 @@ -473,7 +525,7 @@ Experimental: &options.Experimental{ ### Changements -- Added `OnStartup` method back to default templates +- Ajout de la méthode `OnStartup` aux modèles par défaut ## v2.0.0-beta.35 - 2022-04-27 @@ -510,11 +562,11 @@ Experimental: &options.Experimental{ - La documentation du site Web est maintenant versionnée - Amélioration de l'appel à `runtime.Environment` -- Improve the close action for Mac -- A bunch of dependabot security updates -- Improved website content - [@misitebao](https://github.com/misitebao) -- Upgrade issue template - [@misitebao](https://github.com/misitebao) -- Convert documents that don't require version management to individual pages +- Améliorer l'action de proximité pour Mac +- Un tas de mise à jour de sécurité dependabot +- Amélioration du contenu du site - [@misitebao](https://github.com/misitebao) +- Mise à jour des soucis de modèles - [@misitebao](https://github.com/misitebao) +- Convertir les documents qui ne nécessitent pas de gestion de versions en pages individuelles - [@misitebao](https://github.com/misitebao) - Utilisation d'Algolia pour les recherches sur le site web @@ -522,17 +574,17 @@ Experimental: &options.Experimental{ ### Ajouts -- Add support for 'DomReady' callback on linux by [@napalu](https://github.com/napalu) in #1249 -- MacOS - Show extension by default by [@leaanthony](https://github.com/leaanthony) in #1228 +- Ajouter le support de la fonction 'DomReady' sur linux par [@napalu](https://github.com/napalu) dans #1249 +- MacOS - Afficher l'extension par défaut par [@leaanthony](https://github.com/leaanthony) dans #1228 ### Corrections -- [v2, nsis] Seems like / as path separator works only for some directives in a cross platform way by [@stffabi](https://github.com/stffabi) in #1227 -- import models on binding definition by [@adalessa](https://github.com/adalessa) in #123 +- [v2, nsis] On dirait que / comme séparateur de chemin ne fonctionne que pour certaines directives de manière cross-platform par [@stffabi](https://github.com/stffabi) dans #1227 +- import des modèles sur la définition de bindings par [@adalessa](https://github.com/adalessa) dans #123 1 -- Use local search on website by [@leaanthony](https://github.com/leaanthony) in #1234 +- Utilisation de la recherche locale sur le site web par [@leaanthony](https://github.com/leaanthony) en #1234 - Ensure binary resources can be served by [@napalu](https://github.com/napalu) in #1240 - Only retry loading assets when loading from disk by [@leaanthony](https://github.com/leaanthony) in #1241 - [v2, windows] Fix maximised start state by [@stffabi](https://github.com/stffabi) in #1243 @@ -547,30 +599,30 @@ Experimental: &options.Experimental{ ### Changements -- feat(website): sync documents and add content by [@misitebao](https://github.com/misitebao) in #1215 -- refactor(cli): optimize default templates by [@misitebao](https://github.com/misitebao) in #1214 -- Run watcher after initial build by [@leaanthony](https://github.com/leaanthony) in #1216 -- Feature/docs update by [@leaanthony](https://github.com/leaanthony) in #1218 -- feat(website): optimize website and sync documents by [@misitebao](https://github.com/misitebao) in #1219 -- docs: sync documents by [@misitebao](https://github.com/misitebao) in #1224 -- Default index page by [@leaanthony](https://github.com/leaanthony) in #1229 -- Build added win32 compatibility by [@fengweiqiang](https://github.com/fengweiqiang) in #1238 +- Fonctionnalité(site web): synchronisation des documents et ajout de contenu par [@misitebao](https://github.com/misitebao) dans #1215 +- refactor(cli): optimisation des modèles par défaut par [@misitebao](https://github.com/misitebao) dans #1214 +- Ajout de l'exécution du watcher après la construction initiale de [@leaanthony](https://github.com/leaanthony) en #1216 +- Mise à jour de la documentation par [@leaanthony](https://github.com/leaanthony) dans #1218 +- Fonctionnalité(site web): optimisation du site Web et synchronisation les documents par [@misitebao](https://github.com/misitebao) dans #1219 +- docs : synchronisation des documents par [@misitebao](https://github.com/misitebao) dans #1224 +- Page d'index par défaut par [@leaanthony](https://github.com/leaanthony) dans #1229 +- Compatibilité avec win32 ajoutée par [@fengweiqiang](https://github.com/fengweiqiang) en #1238 - docs : synchronisation des documents par [@misitebao](https://github.com/misitebao) dans #1260 ## v2.0.0-beta.33 - 2022-03-05 ### Ajouts -- NSIS Installer support for creating installers for Windows applications - Thanks [@stffabi](https://github.com/stffabi) 🎉 -- New frontend:dev:watcher command to spin out 3rd party watchers when using wails dev - Thanks [@stffabi](https://github.com/stffabi)🎉 -- Remote templates now support version tags - Thanks [@misitebao](https://github.com/misitebao) 🎉 +- Support de l'installateur NSIS pour la création d'installateurs pour les applications Windows - Merci [@stffabi](https://github.com/stffabi)🎉 +- Nouvelle commande frontend:dev:watcher pour faire tourner des observateurs tiers en utilisant wails dev - Merci [@stffabi](https://github.com/stffabi)🎉 +- Les modèles distants prennent maintenant en charge les tags de version - Merci [@misitebao](https://github.com/misitebao)🎉 ### Corrections -- A number of fixes for ARM Linux providing a huge improvement - Thanks [@ianmjones](https://github.com/ianmjones) 🎉 -- Fixed potential Nil reference when discovering the path to `index.html` -- Fixed crash when using `runtime.Log` methods in a production build -- Improvements to internal file handling meaning webworkers will now work on Windows - Thanks [@stffabi](https://github.com/stffabi)🎉 +- Un certain nombre de corrections pour ARM Linux fournissant une amélioration considérable - Merci [@ianmjones](https://github.com/ianmjones)🎉 +- Correction de la référence potentielle de Nil lors de la découverte du chemin vers `index.html` +- Correction d'un bug lors de l'utilisation des méthodes `runtime.Log` dans une version de production +- Améliorations de la gestion interne des fichiers, ce qui signifie que les webworkers vont maintenant fonctionner sous Windows - Merci [@stffabi](https://github.com/stffabi)🎉 ### Changements diff --git a/website/i18n/fr/docusaurus-plugin-content-pages/community-guide.mdx b/website/i18n/fr/docusaurus-plugin-content-pages/community-guide.mdx index 32ad53b67..2af29a799 100644 --- a/website/i18n/fr/docusaurus-plugin-content-pages/community-guide.mdx +++ b/website/i18n/fr/docusaurus-plugin-content-pages/community-guide.mdx @@ -15,7 +15,7 @@ Le [Code de Conduite](./coc) est un guide facile à suivre pour développer les ### Obtenir de l'aide - [GitHub](https://github.com/wailsapp/wails) - Si vous avez un bug à signaler ou une fonctionnalité à demander, c'est ce à quoi les GitHub issues servent. Merci de respecter les règles définies dans les modèles de chaque dépôt de code. -- [Wails Discord Server](https://discord.gg/JDdSxwjhGf) - Un endroit où les développeurs de Wails peuvent se rencontrer et discuter en temps réel. +- [Discord](https://discord.gg/JDdSxwjhGf) - Un endroit où les développeurs de Wails peuvent se rencontrer et discuter en temps réel. - [QQ Group(中文)](https://qm.qq.com/cgi-bin/qm/qr?k=PmIURne5hFGNd7QWzW5qd6FV-INEjNJv&jump_from=webapi) - Un groupe Wails pour permettre aux développeurs chinois de communiquer, et où vous pourrez trouver de l'aide d'autres développeurs. ### Explorez l'écosystème @@ -96,7 +96,7 @@ Si vous avez choisi de tester si le bug de quelqu'un est reproductible sur votre Pour tester les PR, choisissez une PR et vérifiez si sa description contient les scénarios de test listés. Dans le cas contraire, veuillez demander à la personne qui a ouvert la PR de fournir cette liste. Une fois que vous avez un scénario de test valide, veuillez signaler vos conclusions en commentaire de la PR. -Si vous avez besoin de plus de clarté ou d'aide lors des tests, veuillez poser une question dans la discussion [Contribuer à Wails](https://github.com/wailsapp/wails/discussions/1520) ou sur discord. +Si vous avez besoin de plus de clarté ou d'aide lors des tests, veuillez poser une question dans la discussion [Contribuer à Wails](https://github.com/wailsapp/wails/discussions/1520) ou sur slack. ### Documenter @@ -131,9 +131,10 @@ Si vous souhaitez ajouter une nouvelle langue à la documentation, veuillez suiv ### Aider les autres -Une bonne façon de contribuer au projet est d'aider ceux qui éprouvent des difficultés. Ils ouvrent généralement un ticket ou envoient un message sur le discord de Wails. Même clarifier le problème peut vraiment aider. Parfois, quand un problème est discuté et résolu, nous créons un guide pour aider ceux qui sont confrontés aux mêmes problèmes. +Une bonne façon de contribuer au projet est d'aider ceux qui éprouvent des difficultés. This is normally reported as a ticket or a message on the Wails discord server. Même clarifier le problème peut vraiment aider. Parfois, quand un problème est discuté et résolu, nous créons un guide pour aider ceux qui sont confrontés aux mêmes problèmes. + +To join the Wails discord server, click [here](https://discord.gg/JDdSxwjhGf). -Pour rejoindre le canal de discord de Wails, acceptez l'invitation [ici](https://discord.com/invite/JDdSxwjhGf). :::note Travail en cours diff --git a/website/i18n/fr/docusaurus-plugin-content-pages/credits.mdx b/website/i18n/fr/docusaurus-plugin-content-pages/credits.mdx index 7a1d0e2e5..cdb44bd38 100644 --- a/website/i18n/fr/docusaurus-plugin-content-pages/credits.mdx +++ b/website/i18n/fr/docusaurus-plugin-content-pages/credits.mdx @@ -4,10 +4,11 @@ - [Stffabi](https://github.com/stffabi) - Chef technique, développeur et mainteneur - [Misite Bao](https://github.com/misitebao) - Sorcier de la documentation, traducteur chinois, testeur pour Windows, découvreur principal de bugs - [Travis McLane](https://github.com/tmclane) - Travaux de compilation sur plusieurs plateformes, testeur MacOS -- [Byron Chris](https://github.com/bh90210) - Sorcier des distributions Linux, testeur Linux +- [Lyimmi](https://github.com/Lyimmi) - All things Linux ## Partenaires + ## Contributeurs @@ -15,172 +16,244 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Lea Anthony

💻 🤔 🎨 🖋 💡 🧑‍🏫 📆 🔧 🐛 📝 🚧 📦 👀 💬 🔬 ⚠️ 📢 👀 📖

stffabi

💻 🤔 🎨 🐛 🚧 📦 👀 💬 🔬 👀 📖 ⚠️

Travis McLane

💻 🔬 📦 🤔 🐛 👀 ⚠️ 💬 📖

Misite Bao

📖 🌍 🔬 🚧

Byron Chris

💻 🔬 🚧 🐛 👀 ⚠️ 💬 🤔 🎨 📦 🚇

konez2k

💻 📦 🤔

Dario Emerson

💻 🐛 🤔 ⚠️

Ian M. Jones

💻 🐛 🤔 ⚠️ 👀 📦

marktohark

💻

Ryan H

💻

Cody Bentley

💻 📦 🤔 💵

Florent

💻 🐛

Alexander Hudek

💻 💵

Tim Kipp

💻

Altynbek Kaliakbarov

💻

Nikolai Zimmermann

💻

k-muchmore

💻

Snider

💻 🤔 📖 💵

Albert Sun

💻 ⚠️

Ariel

💻 🐛

Ilgıt Yıldırım

💻 🐛 💵

Toyam Cox

💻 📦 🐛

hi019

💻 🐛

Arthur Wiebe

💻 🐛

Balakrishna Prasad Ganne

💻

BillBuilt

💻 📦 🤔 💬 💵

Eng Zer Jun

🚧 💻

LGiki

📖

Lontten

📖

Lukas Crepaz

💻 🐛

Marcus Crane

🐛 📖 💵

Qais Patankar

📖

Wakeful-Cloud

💻 🐛

Zámbó, Levente

💻 📦 🐛 ⚠️

Ironpark

💻 🤔

mondy

💻 📖

Benjamin Ryan

🐛

fallendusk

📦 💻

Mat Ryer

💻 🤔 🐛

Abtin

💻 🐛

Adrian Lanzafame

📦 💻

Aleksey Polyakov

🐛 💻

Alexander Matviychuk

💻 📦

AlienRecall

💻 📦

Aman

📖

Amaury Tobias Quiroz

💻 🐛

Andreas Wenk

📖

Antonio Stanković

💻 📦

Arpit Jain

📖

Austin Schey

💻 🐛

Benjamin Thomas

💻 📦 🤔

Bertram Truong

💻 🐛

Blake Bourque

📖

Denis

📖

diogox

💻 📦

Dmitry Gomzyakov

💻 📦

Edward Browncross

💻

Elie Grenon

💻

Florian Didron

💻 🐛 🤔 ⚠️ 👀 📦

GargantuaX

💵

Igor Minin

💻 🐛

Jae-Sung Lee

💻 🤔

Jarek

💻 📦

Junker

📖

Kris Raney

💻 🐛

Luken

📖

Mark Stenglein

💻 🐛

buddyabaddon

💻

MikeSchaap

💻 🐛

NYSSEN Michaël

💻 🐛

Nan0

💻 🤔 ⚠️ 👀

oskar

📖

Pierre Joye

💻 🐛 🤔 ⚠️

Reuben Thomas-Davis

💻 🐛

Robin

💻 🐛

Sebastian Bauer

💻 🤔 ⚠️ 👀 💬

Sidharth Rathi

📖 🐛

Sithembiso Khumalo

💻 🐛

Soheib El-Harrache

💻 🐛 💵

Sophie Au

💻 🐛

Stefanos Papadakis

💻 🐛

Steve Chung

💻 🐛

Timm Ortloff

📖

Tom

💻

Valentin Trinqué

💻 🐛

mattn

💻 🐛

bearsh

💻 🤔 📖

chenxiao

💻 🤔 📖

fengweiqiang

💻 📦

flin7

📖

fred21O4

📖

gardc

📖

rayshoo

📖

Ishiyama Yuzuki

💻 🐛

佰阅

💻

刀刀

📖 🐛

归位

💻 🐛

skamensky

💻 🤔 📖

dependabot[bot]

💻 🚧

Damian Sieradzki

💵

John Dorman

💵

Ian Sinnott

💵

Arden Shackelford

💵

Bironou

💵

CharlieGo_

💵

overnet

💵

jugglingjsons

💵

Selvin Ortiz

💵

ZanderCodes

💵

Michael Voronov

💵

letheanVPN

💵

Tai Groot

💵

easy-web-it

💵

Michael Olson

💵

EdenNetwork Italia

💵

ondoki

💵

QuEST Rail LLC

💵

Gilgameš

💵

Bernt-Johan Bergshaven

💵

Liam Bigelow

💵

Nick Arellano

💵

Frank Chiarulli Jr.

💵

Tyler

💵

Trea Hauet

💵

Kent 'picat' Gruber

💵

tc-hib

💵

Antonio

📖

MyNameIsAres

📖

Maicarons J

📖

kiddov

📖 💵 ⚠️ 🤔

Nicolas Coutin

💵

Parvin Eyvazov

📖
Lea Anthony
Lea Anthony

💻 🤔 🎨 🖋 💡 🧑‍🏫 📆 🔧 🐛 📝 🚧 📦 👀 💬 🔬 ⚠️ 📢 👀 📖
stffabi
stffabi

💻 🤔 🎨 🐛 🚧 📦 👀 💬 🔬 👀 📖 ⚠️
Travis McLane
Travis McLane

💻 🔬 📦 🤔 🐛 👀 ⚠️ 💬 📖
Misite Bao
Misite Bao

📖 🌍 🔬 🚧
Byron Chris
Byron Chris

💻 🔬 🚧 🐛 👀 ⚠️ 💬 🤔 🎨 📦 🚇
konez2k
konez2k

💻 📦 🤔
Dario Emerson
Dario Emerson

💻 🐛 🤔 ⚠️
Ian M. Jones
Ian M. Jones

💻 🐛 🤔 ⚠️ 👀 📦
marktohark
marktohark

💻
Ryan H
Ryan H

💻
Cody Bentley
Cody Bentley

💻 📦 🤔 💵
Florent
Florent

💻 🐛
Alexander Hudek
Alexander Hudek

💻 💵
Tim Kipp
Tim Kipp

💻
Altynbek Kaliakbarov
Altynbek Kaliakbarov

💻
Nikolai Zimmermann
Nikolai Zimmermann

💻
k-muchmore
k-muchmore

💻
Snider
Snider

💻 🤔 📖 💵
Albert Sun
Albert Sun

💻 ⚠️
Ariel
Ariel

💻 🐛
Ilgıt Yıldırım
Ilgıt Yıldırım

💻 🐛 💵
Toyam Cox
Toyam Cox

💻 📦 🐛
hi019
hi019

💻 🐛
Arthur Wiebe
Arthur Wiebe

💻 🐛
Balakrishna Prasad Ganne
Balakrishna Prasad Ganne

💻
BillBuilt
BillBuilt

💻 📦 🤔 💬 💵
Eng Zer Jun
Eng Zer Jun

🚧 💻
LGiki
LGiki

📖
Lontten
Lontten

📖
Lukas Crepaz
Lukas Crepaz

💻 🐛
Marcus Crane
Marcus Crane

🐛 📖 💵
Qais Patankar
Qais Patankar

📖
Wakeful-Cloud
Wakeful-Cloud

💻 🐛
Zámbó, Levente
Zámbó, Levente

💻 📦 🐛 ⚠️
Ironpark
Ironpark

💻 🤔
mondy
mondy

💻 📖
Benjamin Ryan
Benjamin Ryan

🐛
fallendusk
fallendusk

📦 💻
Mat Ryer
Mat Ryer

💻 🤔 🐛
Abtin
Abtin

💻 🐛
Adrian Lanzafame
Adrian Lanzafame

📦 💻
Aleksey Polyakov
Aleksey Polyakov

🐛 💻
Alexander Matviychuk
Alexander Matviychuk

💻 📦
AlienRecall
AlienRecall

💻 📦
Aman
Aman

📖
Amaury Tobias Quiroz
Amaury Tobias Quiroz

💻 🐛
Andreas Wenk
Andreas Wenk

📖
Antonio Stanković
Antonio Stanković

💻 📦
Arpit Jain
Arpit Jain

📖
Austin Schey
Austin Schey

💻 🐛
Benjamin Thomas
Benjamin Thomas

💻 📦 🤔
Bertram Truong
Bertram Truong

💻 🐛
Blake Bourque
Blake Bourque

📖
Denis
Denis

📖
diogox
diogox

💻 📦
Dmitry Gomzyakov
Dmitry Gomzyakov

💻 📦
Edward Browncross
Edward Browncross

💻
Elie Grenon
Elie Grenon

💻
Florian Didron
Florian Didron

💻 🐛 🤔 ⚠️ 👀 📦
GargantuaX
GargantuaX

💵
Igor Minin
Igor Minin

💻 🐛
Jae-Sung Lee
Jae-Sung Lee

💻 🤔
Jarek
Jarek

💻 📦
Junker
Junker

📖
Kris Raney
Kris Raney

💻 🐛
Luken
Luken

📖
Mark Stenglein
Mark Stenglein

💻 🐛
buddyabaddon
buddyabaddon

💻
MikeSchaap
MikeSchaap

💻 🐛
NYSSEN Michaël
NYSSEN Michaël

💻 🐛
Nan0
Nan0

💻 🤔 ⚠️ 👀
oskar
oskar

📖
Pierre Joye
Pierre Joye

💻 🐛 🤔 ⚠️
Reuben Thomas-Davis
Reuben Thomas-Davis

💻 🐛
Robin
Robin

💻 🐛
Sebastian Bauer
Sebastian Bauer

💻 🤔 ⚠️ 👀 💬
Sidharth Rathi
Sidharth Rathi

📖 🐛
Sithembiso Khumalo
Sithembiso Khumalo

💻 🐛
Soheib El-Harrache
Soheib El-Harrache

💻 🐛 💵
Sophie Au
Sophie Au

💻 🐛
Stefanos Papadakis
Stefanos Papadakis

💻 🐛
Steve Chung
Steve Chung

💻 🐛
Timm Ortloff
Timm Ortloff

📖
Tom
Tom

💻
Valentin Trinqué
Valentin Trinqué

💻 🐛
mattn
mattn

💻 🐛
bearsh
bearsh

💻 🤔 📖
chenxiao
chenxiao

💻 🤔 📖
fengweiqiang
fengweiqiang

💻 📦
flin7
flin7

📖
fred21O4
fred21O4

📖
gardc
gardc

📖
rayshoo
rayshoo

📖
Ishiyama Yuzuki
Ishiyama Yuzuki

💻 🐛
佰阅
佰阅

💻
刀刀
刀刀

📖 🐛
归位
归位

💻 🐛
skamensky
skamensky

💻 🤔 📖
dependabot[bot]
dependabot[bot]

💻 🚧
Damian Sieradzki
Damian Sieradzki

💵
John Dorman
John Dorman

💵
Ian Sinnott
Ian Sinnott

💵
Arden Shackelford
Arden Shackelford

💵
Bironou
Bironou

💵
CharlieGo_
CharlieGo_

💵
overnet
overnet

💵
jugglingjsons
jugglingjsons

💵
Selvin Ortiz
Selvin Ortiz

💵
ZanderCodes
ZanderCodes

💵
Michael Voronov
Michael Voronov

💵
letheanVPN
letheanVPN

💵
Tai Groot
Tai Groot

💵
easy-web-it
easy-web-it

💵
Michael Olson
Michael Olson

💵
EdenNetwork Italia
EdenNetwork Italia

💵
ondoki
ondoki

💵
QuEST Rail LLC
QuEST Rail LLC

💵
Gilgameš
Gilgameš

💵
Bernt-Johan Bergshaven
Bernt-Johan Bergshaven

💵
Liam Bigelow
Liam Bigelow

💵
Nick Arellano
Nick Arellano

💵
Frank Chiarulli Jr.
Frank Chiarulli Jr.

💵
Tyler
Tyler

💵
Trea Hauet
Trea Hauet

💵
Kent 'picat' Gruber
Kent 'picat' Gruber

💵
tc-hib
tc-hib

💵
Antonio
Antonio

📖
MyNameIsAres
MyNameIsAres

📖
Maicarons J
Maicarons J

📖
kiddov
kiddov

📖 💵 ⚠️ 🤔
Nicolas Coutin
Nicolas Coutin

💵
Parvin Eyvazov
Parvin Eyvazov

📖
github-actions[bot]
github-actions[bot]

💻
Oleg Gulevskyy
Oleg Gulevskyy

💻 📖 🚧 📦
Richard Guay
Richard Guay

📖
Adam Tenderholt
Adam Tenderholt

💻
JulioDRF
JulioDRF

💻
Scott Opell
Scott Opell

💻
Vadim Shchepotev
Vadim Shchepotev

💻
Will Andrews
Will Andrews

💻
Gwyn
Gwyn

💻 👀 💬 🔬
希嘉嘉
希嘉嘉

💻
ALMAS
ALMAS

💻
Alex
Alex

💻
Arif Ali
Arif Ali

💻
Artur Siarohau
Artur Siarohau

💻
Binyamin Aron Green
Binyamin Aron Green

💻
Brian Dwyer
Brian Dwyer

💻
Christian Kilb
Christian Kilb

💻
David Florness
David Florness

📖
David Walton
David Walton

💻
Debdut Karmakar
Debdut Karmakar

💻
Dieter Zhu
Dieter Zhu

💻
Fredrik Holmqvist
Fredrik Holmqvist

💻
Giovanni Palma
Giovanni Palma

💻
Hao
Hao

💻
Igor Sementsov
Igor Sementsov

💻
Johannes Haseitl
Johannes Haseitl

💻
Joshua Hull
Joshua Hull

💻
Joshua Mangiola
Joshua Mangiola

📖
Kevin MacMartin
Kevin MacMartin

💻
Liang Li
Liang Li

💻
Marvin Collins Hosea
Marvin Collins Hosea

💻
Matt Holt
Matt Holt

💻
Niklas
Niklas

💻
Andy Hsu
Andy Hsu

💻
NullCode
NullCode

💻
Oussama Sethoum
Oussama Sethoum

💻
ParkourLiu
ParkourLiu

💻
Rachel Chen
Rachel Chen

💻
Rob Nice
Rob Nice

💻
Ryo TAGAMI
Ryo TAGAMI

💻
Sam Hennessy
Sam Hennessy

💻
Sean
Sean

💻
Sean Gosiaco
Sean Gosiaco

💻
Eric P Sheets
Eric P Sheets

💻
Supian M
Supian M

💻
Watson-Sei
Watson-Sei

💻 📖
Yuki Shindo
Yuki Shindo

💻
cuigege
cuigege

💻
cybertramp
cybertramp

💻
hiroki yagi
hiroki yagi

💻
imgbot[bot]
imgbot[bot]

💻
juju
juju

💻
Michael Eatherly
Michael Eatherly

💻
tk
tk

💻
allcontributors[bot]
allcontributors[bot]

📖
wander
wander

📖
@@ -193,6 +266,7 @@ - [John Chadwick](https://github.com/jchv) - Pour son travail incroyable sur [go-webview2](https://github.com/jchv/go-webview2) et [go-winloader](https://github.com/jchv/go-winloader) qui a permis d'avoir une version Windows. - [Tad Vizbaras](https://github.com/tadvi) - Son projet winc était la première pierre d'un projet Wails en pure Go. - [Mat Ryer](https://github.com/matryer) - Pour ses conseils, son support et son humour. +- [Byron Chris](https://github.com/bh90210) - For his long term contributions to this project. - [Dustin Krysak](https://wiki.ubuntu.com/bashfulrobot) - Son support et ses retours ont été inestimables. - [Justen Walker](https://github.com/justenwalker/) - Pour aider à résoudre les problèmes COM qui ont permis de publier la v2. - [Wang, Chi](https://github.com/patr0nus/) - Le projet DeskGap a été une grande influence sur la direction de Wails v2. diff --git a/website/i18n/fr/docusaurus-theme-classic/footer.json b/website/i18n/fr/docusaurus-theme-classic/footer.json index 185a249de..75ad0c4be 100644 --- a/website/i18n/fr/docusaurus-theme-classic/footer.json +++ b/website/i18n/fr/docusaurus-theme-classic/footer.json @@ -50,5 +50,9 @@ "link.item.label.Awesome": { "message": "Projets basés sur Wails", "description": "The label of footer link with label=Awesome linking to https://github.com/wailsapp/awesome-wails" + }, + "link.item.label.Discord": { + "message": "Discord", + "description": "The label of footer link with label=Discord linking to https://discord.gg/JDdSxwjhGf" } } diff --git a/website/i18n/ja/code.json b/website/i18n/ja/code.json index b45f9b2db..f44b03bd0 100644 --- a/website/i18n/ja/code.json +++ b/website/i18n/ja/code.json @@ -411,5 +411,13 @@ "theme.SearchModal.placeholder": { "message": "ドキュメントを検索", "description": "The placeholder of the input of the DocSearch pop-up modal" + }, + "theme.docs.sidebar.closeSidebarButtonAriaLabel": { + "message": "ナビゲーションバーを閉じる", + "description": "The ARIA label for close button of mobile sidebar" + }, + "theme.docs.sidebar.toggleSidebarButtonAriaLabel": { + "message": "ナビゲーションバーの表示/非表示を切り替え", + "description": "The ARIA label for hamburger menu button of mobile navigation" } } diff --git a/website/i18n/ja/docusaurus-plugin-content-blog/2023-01-17-v3-roadmap.mdx b/website/i18n/ja/docusaurus-plugin-content-blog/2023-01-17-v3-roadmap.mdx new file mode 100644 index 000000000..9a137d09a --- /dev/null +++ b/website/i18n/ja/docusaurus-plugin-content-blog/2023-01-17-v3-roadmap.mdx @@ -0,0 +1,184 @@ +--- +slug: the-road-to-wails-v3 +title: The Road to Wails v3 +authors: + - leaanthony +tags: + - wails + - v3 +--- + +```mdx-code-block +
+ +
+
+``` + +# Introduction + +Wails is a project that simplifies the ability to write cross-platform desktop applications using Go. It uses native webview components for the frontend (not embedded browsers), bringing the power of the world's most popular UI system to Go, whilst remaining lightweight. + +Version 2 was released on the 22nd of September 2022 and brought with it a lot of enhancements including: + +- Live development, leveraging the popular Vite project +- Rich functionality for managing windows and creating menus +- Microsoft's WebView2 component +- Generation of Typescript models that mirror your Go structs +- Creating of NSIS Installer +- Obfuscated builds + +Right now, Wails v2 provides powerful tooling for creating rich, cross-platform desktop applications. + +This blog post aims to look at where the project is at right now and what we can improve on moving forward. + +# Where are we now? + +It's been incredible to see the popularity of Wails rising since the v2 release. I'm constantly amazed by the creativity of the community and the wonderful things that are being built with it. With more popularity, comes more eyes on the project. And with that, more feature requests and bug reports. + +Over time, I've been able to identify some of the most pressing issues facing the project. I've also been able to identify some of the things that are holding the project back. + +## Current issues + +I've identified the following areas that I feel are holding the project back: + +- The API +- Bindings generation +- The Build System + +### The API + +The API to build a Wails application currently consists of 2 parts: + +- The Application API +- The Runtime API + +The Application API famously has only 1 function: `Run()` which takes a heap of options which govern how the application will work. Whilst this is very simple to use, it is also very limiting. It is a "declarative" approach which hides a lot of the underlying complexity. For instance, there is no handle to the main window, so you can't interact with it directly. For that, you need to use the Runtime API. This is a problem when you start to want to do more complex things like create multiple windows. + +The Runtime API provides a lot of utility functions for the developer. This includes: + +- Window management +- Dialogs +- Menus +- Events +- Logs + +There are a number of things I am not happy with the Runtime API. The first is that it requires a "context" to be passed around. This is both frustrating and confusing for new developers who pass in a context and then get a runtime error. + +The biggest issue with the Runtime API is that it was designed for applications that only use a single window. Over time, the demand for multiple windows has grown and the API is not well suited to this. + +### Thoughts on the v3 API + +Wouldn't it be great if we could do something like this? + +```go +func main() { + app := wails.NewApplication(options.App{}) + myWindow := app.NewWindow(options.Window{}) + myWindow.SetTitle("My Window") + myWindow.On(events.Window.Close, func() { + app.Quit() + }) + app.Run() +} +``` + +This programmatic approach is far more intuitive and allows the developer to interact with the application elements directly. All current runtime methods for windows would simply be methods on the window object. For the other runtime methods, we could move them to the application object like so: + +```go +app := wails.NewApplication(options.App{}) +app.NewInfoDialog(options.InfoDialog{}) +app.Log.Info("Hello World") +``` + +This is a much more powerful API which will allow for more complex applications to be built. It also allows for the creation of multiple windows, [the most up-voted feature on GitHub](https://github.com/wailsapp/wails/issues/1480): + +```go +func main() { + app := wails.NewApplication(options.App{}) + myWindow := app.NewWindow(options.Window{}) + myWindow.SetTitle("My Window") + myWindow.On(events.Window.Close, func() { + app.Quit() + }) + myWindow2 := app.NewWindow(options.Window{}) + myWindow2.SetTitle("My Window 2") + myWindow2.On(events.Window.Close, func() { + app.Quit() + }) + app.Run() +} +``` + +### Bindings generation + +One of the key features of Wails is generating bindings for your Go methods so they may be called from Javascript. The current method for doing this is a bit of a hack. It involves building the application with a special flag and then running the resultant binary which uses reflection to determine what has been bound. This leads to a bit of a chicken and egg situation: You can't build the application without the bindings and you can't generate the bindings without building the application. There are many ways around this but the best one would be not to use this approach at all. + +There was a number of attempts at writing a static analyser for Wails projects but they didn't get very far. In more recent times, it has become slightly easier to do this with more material available on the subject. + +Compared to reflection, the AST approach is much faster however it is significantly more complicated. To start with, we may need to impose certain constraints on how to specify bindings in the code. The goal is to support the most common use cases and then expand it later on. + +### The Build System + +Like the declarative approach to the API, the build system was created to hide the complexities of building a desktop application. When you run `wails build`, it does a lot of things behind the scenes: +- Builds the backend binary for bindings and generates the bindings +- Installs the frontend dependencies +- Builds the frontend assets +- Determines if the application icon is present and if so, embeds it +- Builds the final binary +- If the build is for `darwin/universal` it builds 2 binaries, one for `darwin/amd64` and one for `darwin/arm64` and then creates a fat binary using `lipo` +- If compression is required, it compresses the binary with UPX +- Determines if this binary is to be packaged and if so: + - Ensures the icon and application manifest are compiled into the binary (Windows) + - Builds out the application bundle, generates the icon bundle and copies it, the binary and Info.plist to the application bundle (Mac) +- If an NSIS installer is required, it builds it + +This entire process, whilst very powerful, is also very opaque. It is very difficult to customise it and it is very difficult to debug. + +To address this in v3, I would like to move to a build system that exists outside of Wails. After using [Task](https://taskfile.dev/) for a while, I am a big fan of it. It is a great tool for configuring build systems and should be reasonably familiar to anyone who has used Makefiles. + +The build system would be configured using a `Taskfile.yml` file which would be generated by default with any of the supported templates. This would have all of the steps required to do all the current tasks, such as building or packaging the application, allowing for easy customisation. + +There will be no external requirement for this tooling as it would form part of the Wails CLI. This means that you can still use `wails build` and it will do all the things it does today. However, if you want to customise the build process, you can do so by editing the `Taskfile.yml` file. It also means you can easily understand the build steps and use your own build system if you wish. + +The missing piece in the build puzzle is the atomic operations in the build process, such as icon generation, compression and packaging. To require a bunch of external tooling would not be a great experience for the developer. To address this, the Wails CLI will provide all these capabilities as part of the CLI. This means that the builds still work as expected, with no extra external tooling, however you can replace any step of the build with any tool you like. + +This will be a much more transparent build system which will allow for easier customisation and address a lot of the issues that have been raised around it. + +## The Payoff + +These positive changes will be a huge benefit to the project: +- The new API will be much more intuitive and will allow for more complex applications to be built. +- Using static analysis for bindings generation will be much faster and reduce a lot of the complexity around the current process. +- Using an established, external build system will make the build process completely transparent, allowing for powerful customisation. + +Benefits to the project maintainers are: + +- The new API will be much easier to maintain and adapt to new features and platforms. +- The new build system will be much easier to maintain and extend. I hope this will lead to a new ecosystem of community driven build pipelines. +- Better separation of concerns within the project. This will make it easier to add new features and platforms. + +## The Plan + +A lot of the experimentation for this has already been done and it's looking good. There is no current timeline for this work but I'm hoping by the end of Q1 2023, there will be an alpha release for Mac to allow the community to test, experiment with and provide feedback. + +## Summary + +- The v2 API is declarative, hides a lot from the developer and not suitable for features such as multiple windows. A new API will be created which will be simpler, intuitive and more powerful. +- The build system is opaque and difficult to customise so we will move to an external build system which will open it all up. +- The bindings generation is slow and complex so we will move to static analysis which will remove a lot of the complexity the current method has. + +There has been a lot of work put into the guts of v2 and it's solid. It's now time to address the layer on top of it and make it a much better experience for the developer. + +I hope you are as excited about this as I am. I'm looking forward to hearing your thoughts and feedback. + +Regards, + +‐ Lea + +PS: If you or your company find Wails useful, please consider [sponsoring the project](https://github.com/sponsors/leaanthony). Thanks! + +PPS: Yes, that's a genuine screenshot of a multi-window application built with Wails. It's not a mockup. It's real. It's awesome. It's coming soon. \ No newline at end of file diff --git a/website/i18n/ja/docusaurus-plugin-content-docs/current/community/links.mdx b/website/i18n/ja/docusaurus-plugin-content-docs/current/community/links.mdx index 6b180130b..b7b80b839 100644 --- a/website/i18n/ja/docusaurus-plugin-content-docs/current/community/links.mdx +++ b/website/i18n/ja/docusaurus-plugin-content-docs/current/community/links.mdx @@ -12,7 +12,7 @@ Wailsに関する[最高のリンク一覧](https://github.com/wailsapp/awesome- ## サポートチャネル -- [Discord](https://discord.com/invite/JDdSxwjhGf) +- [Wails Discordサーバ](https://discord.gg/JDdSxwjhGf) - [Github Issues](https://github.com/wailsapp/wails/issues) - [v2ベータディスカッションボード](https://github.com/wailsapp/wails/discussions/828) @@ -22,4 +22,5 @@ Wailsに関する[最高のリンク一覧](https://github.com/wailsapp/awesome- - [Wails中国語コミュニティQQグループ](https://qm.qq.com/cgi-bin/qm/qr?k=PmIURne5hFGNd7QWzW5qd6FV-INEjNJv&jump_from=webapi) - グループナンバー: 1067173054 ## その他のチュートリアルや記事 + - [掲示板を作ってみる](https://blog.customct.com/building-bulletin-board) diff --git a/website/i18n/ja/docusaurus-plugin-content-docs/current/community/showcase/bulletinboard.mdx b/website/i18n/ja/docusaurus-plugin-content-docs/current/community/showcase/bulletinboard.mdx new file mode 100644 index 000000000..7cf3d52b5 --- /dev/null +++ b/website/i18n/ja/docusaurus-plugin-content-docs/current/community/showcase/bulletinboard.mdx @@ -0,0 +1,10 @@ +# BulletinBoard + +```mdx-code-block +

+ +
+

+``` + +[BulletinBoard](https://github.com/raguay/BulletinBoard)は、静的なメッセージや、スクリプト用にユーザから情報を得るためのダイアログを表示する、汎用的なメッセージボードアプリケーションです。 後者はユーザから情報を取得するために使用でき、新しいダイアログを作成するためのTUIを備えています。 システム上で動作し続け、必要に応じて情報を表示・非表示できるように設計されています。 システム上のファイルを監視し、内容が変更されたときにBulletinBoardに送信するという処理もできます。 これは、私のワークフローと相性が良いのです。 なお、プログラムに情報を送信するための[Alfredワークフロー](https://github.com/raguay/MyAlfred/blob/master/Alfred%205/EmailIt.alfredworkflow)があります。 また、[EmailIt](https://github.com/raguay/EmailIt)と連携するためのワークフローもあります。 diff --git a/website/i18n/ja/docusaurus-plugin-content-docs/current/community/showcase/emailit.mdx b/website/i18n/ja/docusaurus-plugin-content-docs/current/community/showcase/emailit.mdx index 04150ba28..4214a9c4c 100644 --- a/website/i18n/ja/docusaurus-plugin-content-docs/current/community/showcase/emailit.mdx +++ b/website/i18n/ja/docusaurus-plugin-content-docs/current/community/showcase/emailit.mdx @@ -7,4 +7,4 @@

``` -[EmailIt](https://github.com/raguay/EmailIt/) is a Wails 2 program that is a markdown based email sender only with nine notepads, scripts to manipulate the text, and templates. It also has a builtin [Node-Red](https://nodered.org/) server, scripts terminal, and the [ScriptBar](https://github.com/raguay/ScriptBarApp) program for displaying results from Node-Red or a script on your system. Documentation is very scarce, but the programs works. It’s built using Wails2 and Svelte, and the download is a universal macOS application. +[EmailIt](https://github.com/raguay/EmailIt/) is a Wails 2 program that is a markdown based email sender only with nine notepads, scripts to manipulate the text, and templates. また、システム内のファイルに対してEmailItのスクリプトを実行するためのスクリプトターミナルを備えています。 スクリプトとテンプレートは、コマンドライン自体から、またはAlfred、Keyboard Maestro、Dropzone、PopClipの拡張機能から使用することができます。 さらに、GitHubからダウンロードしたスクリプトやテーマにも対応しています。 ドキュメントは未完成ですが、ブログラム自体は動作します。 It’s built using Wails2 and Svelte, and the download is a universal macOS application. diff --git a/website/i18n/ja/docusaurus-plugin-content-docs/current/community/showcase/hiposter.mdx b/website/i18n/ja/docusaurus-plugin-content-docs/current/community/showcase/hiposter.mdx new file mode 100644 index 000000000..87e5837d3 --- /dev/null +++ b/website/i18n/ja/docusaurus-plugin-content-docs/current/community/showcase/hiposter.mdx @@ -0,0 +1,10 @@ +# hiposter + +```mdx-code-block +

+ +
+

+``` + +[hiposter](https://github.com/obity/hiposter) is a simple and efficient http API testing client tool. Based on Wails, Go and sveltejs. diff --git a/website/i18n/ja/docusaurus-plugin-content-docs/current/community/showcase/modalfilemanager.mdx b/website/i18n/ja/docusaurus-plugin-content-docs/current/community/showcase/modalfilemanager.mdx index f8e2bcd66..bcd212396 100644 --- a/website/i18n/ja/docusaurus-plugin-content-docs/current/community/showcase/modalfilemanager.mdx +++ b/website/i18n/ja/docusaurus-plugin-content-docs/current/community/showcase/modalfilemanager.mdx @@ -9,6 +9,6 @@

``` -[Modal File Manager](https://github.com/raguay/ModalFileManager) is a dual pane file manager using web technologies. My original design was based on NW.js and can be found [here](https://github.com/raguay/ModalFileManager-NWjs). This version uses the same Svelte based frontend code (but it has be greatly modified since the departure from NW.js), but the backend is a [Wails 2](https://wails.io/) implementation. By using this implementation, I no longer use command line `rm`, `cp`, etc. commands. It is fully coded using Go and runs much faster than the previous versions. +[Modal File Manager](https://github.com/raguay/ModalFileManager) is a dual pane file manager using web technologies. My original design was based on NW.js and can be found [here](https://github.com/raguay/ModalFileManager-NWjs). This version uses the same Svelte based frontend code (but it has be greatly modified since the departure from NW.js), but the backend is a [Wails 2](https://wails.io/) implementation. By using this implementation, I no longer use command line `rm`, `cp`, etc. commands, but a git install has to be on the system to download themes and extensions. It is fully coded using Go and runs much faster than the previous versions. -This file manager is designed around the same principle as Vim: a state controlled keyboard actions. The number of states isn't fixed, but very programmable. Therefore, an infinite number of keyboard configurations can be created and used. This is the main difference from other file managers. +This file manager is designed around the same principle as Vim: a state controlled keyboard actions. The number of states isn't fixed, but very programmable. Therefore, an infinite number of keyboard configurations can be created and used. This is the main difference from other file managers. There are themes and extensions available to download from GitHub. diff --git a/website/i18n/ja/docusaurus-plugin-content-docs/current/community/showcase/scriptbar.mdx b/website/i18n/ja/docusaurus-plugin-content-docs/current/community/showcase/scriptbar.mdx index 2ccb2acb4..3e41eb32a 100644 --- a/website/i18n/ja/docusaurus-plugin-content-docs/current/community/showcase/scriptbar.mdx +++ b/website/i18n/ja/docusaurus-plugin-content-docs/current/community/showcase/scriptbar.mdx @@ -7,4 +7,4 @@

``` -[ScriptBar](https://GitHub.com/raguay/ScriptBarApp) is a program to show the output of the embedded [Node-Red](https://nodered.org) server in the [EmailIt](https://GitHub.com/raguay/EmailIt) application. It also displays the output of scripts on your system. ScriptBar doesn't put them in the menubar, but has them all in a convient window for easy viewing. You can have multiple tabs to have many different things show. You can also keep the links to your most visited web sites. +[ScriptBar](https://GitHub.com/raguay/ScriptBarApp) is a program to show the output of scripts or [Node-Red](https://nodered.org) server. It runs scripts defined in EmailIt program and shows the output. Scripts from xBar or TextBar can be used, but currently on the TextBar scripts work well. It also displays the output of scripts on your system. ScriptBar doesn't put them in the menubar, but has them all in a convient window for easy viewing. You can have multiple tabs to have many different things show. You can also keep the links to your most visited web sites. diff --git a/website/i18n/ja/docusaurus-plugin-content-docs/current/community/showcase/warmine.mdx b/website/i18n/ja/docusaurus-plugin-content-docs/current/community/showcase/warmine.mdx new file mode 100644 index 000000000..950dc3f3d --- /dev/null +++ b/website/i18n/ja/docusaurus-plugin-content-docs/current/community/showcase/warmine.mdx @@ -0,0 +1,19 @@ +# Minecraft launcher for WarMine + +```mdx-code-block +

+ + +
+

+``` + +[Minecraft launcher for WarMine](https://warmine.ru/) is a Wails application, that allows you to easily join modded game servers and manage your game accounts. + +The Launcher downloads the game files, checks their integrity and launches the game with a wide range of customization options for the launch arguments from the backend. + +Frontend is written in Svelte, whole launcher fits in 9MB and supports Windows 7-11. diff --git a/website/i18n/ja/docusaurus-plugin-content-docs/current/community/templates.mdx b/website/i18n/ja/docusaurus-plugin-content-docs/current/community/templates.mdx index 05cb24d74..93a21f368 100644 --- a/website/i18n/ja/docusaurus-plugin-content-docs/current/community/templates.mdx +++ b/website/i18n/ja/docusaurus-plugin-content-docs/current/community/templates.mdx @@ -27,6 +27,7 @@ sidebar_position: 1 - [wails-vite-vue-the-works](https://github.com/codydbentley/wails-vite-vue-the-works) - Vite、Vuex、Vue Router、SaaS、ESLint + Prettier を使用した Vue 3 TypeScript - [wails-template-quasar-js](https://github.com/sgosiaco/wails-template-quasar-js) - JavaScript + Quasar V2 (Vue 3, Vite, Sass, Pinia, ESLint, Prettier) を使用したテンプレート - [wails-template-quasar-ts](https://github.com/sgosiaco/wails-template-quasar-ts) - TypeScript + Quasar V2 (Vue 3, Vite, Sass, Pinia, ESLint, Prettier, <script setup>によるComposition API) を使用したテンプレート +- [wails-template-naive](https://github.com/tk103331/wails-template-naive) - Naive UI(Vue3のコンポーネントライブラリ)をベースにしたWailsテンプレート ## Angular diff --git a/website/i18n/ja/docusaurus-plugin-content-docs/current/gettingstarted/installation.mdx b/website/i18n/ja/docusaurus-plugin-content-docs/current/gettingstarted/installation.mdx index 488c95cf9..bb00dbe8f 100644 --- a/website/i18n/ja/docusaurus-plugin-content-docs/current/gettingstarted/installation.mdx +++ b/website/i18n/ja/docusaurus-plugin-content-docs/current/gettingstarted/installation.mdx @@ -56,7 +56,7 @@ import TabItem from "@theme/TabItem"; Wailsを使用するには、WebView2ランタイムがインストールされている必要があります。 最新のWindowsでは、すでにインストールされている場合もあります。 wails doctorコマンドで、インストール状況を確認できます。 - Linuxでは、標準のgccビルドツール、 libgtk3libwebkitが必要です。 Wailsは、様々なディストリビューション向けに大量のコマンドを列挙することはせず、現在使用されているディストリビューションのインストールコマンドを自動的に判定します。 Wailsをインストールした後に、wails doctorコマンドを実行して、別途インストールが必要な依存関係を確認してください。 あなたが利用しているディストリビューションやパッケージマネージャーがサポートされていない場合は、Linuxディストリビューションサポートガイドを参照してください。 + Linuxでは、標準のgccビルドツール、libgtk3libwebkitが必要です。 Wailsは、様々なディストリビューション向けに大量のコマンドを列挙することはせず、現在使用されているディストリビューションのインストールコマンドを自動的に判定します。 Wailsをインストールした後に、wails doctorコマンドを実行して、別途インストールが必要な依存関係を確認してください。 あなたが利用しているディストリビューションやパッケージマネージャーがサポートされていない場合は、Linuxディストリビューションサポートガイドを参照してください。 ``` diff --git a/website/i18n/ja/docusaurus-plugin-content-docs/current/guides/dynamic-assets.mdx b/website/i18n/ja/docusaurus-plugin-content-docs/current/guides/dynamic-assets.mdx index e9c6a27cb..a765cff58 100644 --- a/website/i18n/ja/docusaurus-plugin-content-docs/current/guides/dynamic-assets.mdx +++ b/website/i18n/ja/docusaurus-plugin-content-docs/current/guides/dynamic-assets.mdx @@ -8,7 +8,7 @@ このサンプルプロジェクトでは、ディスクからファイルを読み込むシンプルなアセットハンドラを作成します: -```go title=main.go {16-35,49} +```go title=main.go {17-36,49} package main import ( diff --git a/website/i18n/ja/docusaurus-plugin-content-docs/current/guides/mac-appstore.mdx b/website/i18n/ja/docusaurus-plugin-content-docs/current/guides/mac-appstore.mdx index 16a596b3d..b9cbf912a 100644 --- a/website/i18n/ja/docusaurus-plugin-content-docs/current/guides/mac-appstore.mdx +++ b/website/i18n/ja/docusaurus-plugin-content-docs/current/guides/mac-appstore.mdx @@ -21,6 +21,12 @@ 3. Appleの要求する正規のスクリーンショットや説明文などを、アプリに追加します。 4. アプリの新しいバージョンを作成します。 +#### プロビジョニングプロファイルの作成 +1. [Apple Developerプロフィール](https://developer.apple.com/account/resources/profiles/list)ページへアクセスします。 +2. Mac App Storeへの配布用に、新しいプロビジョニングプロファイルを追加します。 +3. プロファイルタイプをMacに設定し、先ほど作成したアプリケーションのApp IDを選択します。 +4. Mac App Distribution証明書を選択します。 +5. 埋め込みプロビジョニングプロファイルに名前をつけ、作成されたプロファイルをダウンロードします。 ## Mac App Storeへの公開手順 @@ -30,7 +36,7 @@ Mac App Storeへ提出されるアプリは、Appleの[App Sandbox](https://deve **entitlementsファイルの例** -ここでは、[RiftShare](https://github.com/achhabra2/riftshare)というアプリのentitlementsファイルを例として示します。 参考として、アプリが必要とする権限を入力してください。 詳しくは、[こちらのサイト](https://developer.apple.com/documentation/bundleresources/entitlements)をご覧ください。 +ここでは、[RiftShare](https://github.com/achhabra2/riftshare)というアプリのentitlementsファイルを例として示します。 参考として、アプリが必要とする権限を入力してください。 詳しくは、[こちらのサイト](https://developer.apple.com/documentation/bundleresources/entitlements)をご覧ください。 チーム ID とアプリケーション名を上記で登録したものに置き換える必要があります。 ```xml title="entitlements.plist" @@ -47,10 +53,16 @@ Mac App Storeへ提出されるアプリは、Appleの[App Sandbox](https://deve com.apple.security.files.downloads.read-write + com.apple.application-identifier + TEAM_ID.APP_NAME + com.apple.developer.team-identifier + TEAM_ID ``` +**組み込みプロビジョニング プロファイルの追加** 上記で作成したプロビジョニング プロファイルは、アプリケーションのルートに追加する必要があります。 embedded.provisionprofile という名前にする必要があります。 + #### アプリパッケージのビルドと署名 以下は、Mac App Storeへの提出用に、アプリをビルドおよび署名するスクリプトの例です。 プロジェクトのルートディレクトリからスクリプトを実行することを前提としています。 @@ -66,6 +78,8 @@ APP_NAME="YourApp" wails build -platform darwin/universal -clean +cp ./embedded.provisionprofile "./build/bin/$APP_NAME.app/Contents" + codesign --timestamp --options=runtime -s "$APP_CERTIFICATE" -v --entitlements ./build/darwin/entitlements.plist ./build/bin/$APP_NAME.app productbuild --sign "$PKG_CERTIFICATE" --component ./build/bin/$APP_NAME.app /Applications ./$APP_NAME.pkg @@ -80,4 +94,4 @@ productbuild --sign "$PKG_CERTIFICATE" --component ./build/bin/$APP_NAME.app /Ap 3. +マークをクリックし、前のステップで生成済みの`APP_NAME.pkg`ファイルを選択します。 そしてアップロードします。 4. [App Store Connect](https://appstoreconnect.apple.com/apps)サイトへ戻り、アプリ提出物ページへ戻ります。 App Storeで公開する準備できているバージョンを選択します。 `Build`内で、Transporter経由でアップロードしたパッケージを選択します。 -以上で終了です! サイトで、アプリを審査のために提出できるようになりました。 数営業日後、審査結果に問題が無ければ、アプリがMac App Storeに公開されます。 \ No newline at end of file +以上で終了です! サイトで、アプリを審査のために提出できるようになりました。 数営業日後、審査結果に問題が無ければ、アプリがMac App Storeに公開されます。 diff --git a/website/i18n/ja/docusaurus-plugin-content-docs/current/guides/manual-builds.mdx b/website/i18n/ja/docusaurus-plugin-content-docs/current/guides/manual-builds.mdx index dcf192d33..884f9e8c3 100644 --- a/website/i18n/ja/docusaurus-plugin-content-docs/current/guides/manual-builds.mdx +++ b/website/i18n/ja/docusaurus-plugin-content-docs/current/guides/manual-builds.mdx @@ -1,95 +1,95 @@ -# Manual Builds +# 手動ビルド -The Wails CLI does a lot of heavy lifting for the project, but sometimes it's desirable to manually build your project. This document will discuss the different operations the CLI does and how this may be achieved in different ways. +Wails CLIは、プロジェクトに関する様々な面倒な作業を担ってくれていますが、ときにはプロジェクトを手動でビルドできたほうが望ましい場合もあるでしょう。 このドキュメントでは、CLIが実行する多くの操作や、これらの操作を別の手段で実現するための方法について説明します。 -## Build Process +## ビルドプロセス -When either `wails build` or `wails dev` are used, the Wails CLI performs a common build process: +Wails CLIは、`wails build`コマンドまたは`wails dev`コマンドが使用されると、共通のビルドプロセスを実行します: - - Install frontend dependencies - - Build frontend project - - Generate build assets - - Compile application - - [optional] Compress application + - フロントエンド依存関係のインストール + - フロントエンドのビルド + - ビルドアセットの生成 + - アプリケーションのコンパイル + - [任意] アプリケーションの圧縮 -### Install frontend dependencies +### フロントエンド依存関係のインストール -#### CLI Steps +#### CLIが実行する手順 -- If the `-s` flag is given, this step is skipped -- Checks `wails.json` to see if there is an install command in the key `frontend:install` -- If there isn't, it skips this step -- If there is, it checks if `package.json` exists in the frontend directory. If it doesn't exist, it skips this step -- An MD5 sum is generated from the `package.json` file contents -- It checks for the existence of `package.json.md5` and if it exists, will compare the contents of it (an MD5 sum) with the one generated to see if the contents have changed. If they are the same, this step is skipped -- If `package.json.md5` does not exist, it creates it using the generated MD5 sum -- If a build is now required, or `node_modules` does not exist, or the `-f` flag is given, the install command is executed in the frontend directory +- `-s`フラグが指定された場合、この手順をスキップします。 +- `wails.json`ファイル内で、`frontend:install`キーにインストールコマンドが記述されているかを確認します。 +- 記述されていない場合、この手順をスキップします。 +- 記述されている場合、フロントエンドディレクトリ内に`package.json`ファイルが存在するか確認します。 存在しない場合、この手順をスキップします。 +- `package.json`ファイルの内容をもとに、MD5チェックサムを生成します。 +- `package.json.md5`ファイルが存在するか確認し、存在する場合は、さきほど生成したMD5チェックサムと比較して、内容が変更されていないかどうかを確認します。 内容が同じ場合、この手順をスキップします。 +- `package.json.md5`ファイルが存在しない場合、ファイルを作成し、さきほど生成したMD5チェックサムを書き込みます。 +- この時点でビルドが必要と判断された場合、`node_modules`ディレクトリが存在しない場合、または`-f`フラグが指定された場合は、フロントエンドディレクトリ内でインストールコマンドを実行します。 -#### Manual Steps +#### 手動で実行する手順 -This step could be done from the command line or a script with `npm install`. +コマンドライン、または`npm install`のスクリプトを用いて、この手順を実行してください。 -### Build frontend project +### フロントエンドのビルド -#### Wails CLI +#### Wails CLIでの手順 -- If the `-s` flag is given, this step is skipped -- Checks `wails.json` to see if there is a build command in the key `frontend:build` -- If there isn't, it skips this step -- If there is, it is executed in the frontend directory +- `-s`フラグが指定された場合、この手順をスキップします。 +- `wails.json`ファイル内で、`frontend:build`キーにビルドコマンドが記述されているかを確認します。 +- 記述されていない場合、この手順をスキップします。 +- 記述されている場合、フロントエンドディレクトリ内でコマンドが実行されます。 -#### Manual Steps +#### 手動で実行する手順 -This step could be done from the command line or a script with `npm run build` or whatever the frontend build script is. +コマンドライン、`npm run build`のスクリプト、またはフロントエンドのビルドスクリプトを用いて、この手順を実行してください。 -### Generate assets +### アセットの生成 -#### Wails CLI +#### Wails CLIでの手順 -- If `-nopackage` flag is set, this stage is skipped -- If the `build/appicon.png` file does not exist, a default one is created -- For Windows, see [Bundling for Windows](#windows) -- If `build/windows/icon.ico` does not exist, it will create it from the `build/appicon.png` image. +- `-nopackage`フラグが指定された場合、この手順をスキップします。 +- `build/appicon.png`ファイルが存在しない場合、デフォルトのファイルを作成します。 +- Windowsの場合、[Windowsバンドル](#windows)の節を参照してください。 +- `build/windows/icon.ico`ファイルが存在しない場合、`build/appicon.png`画像ファイルから新規作成します。 ##### Windows -- If `build/windows/icon.ico` does not exist, it will create it from `build/appicon.png` using icon sizes of 256, 128, 64, 48, 32 and 16. This is done using [winicon](https://github.com/leaanthony/winicon). -- If the `build/windows/.manifest` file does not exist, it creates it from a default version. -- Compiles the application as a production build (above) -- Uses [winres](https://github.com/tc-hib/winres) to bundle the icon and manifest into a `.syso` file ready for linking. +- `build/windows/icon.ico`ファイルが存在しない場合、`build/appicon.png`ファイルをもとに、256、128、64、48、32、16サイズのアイコンを新規作成します。 この処理は[winicon](https://github.com/leaanthony/winicon)によって実現しています。 +- `build/windows/.manifest`ファイルが存在しない場合、デフォルトバージョンから新規作成します。 +- アプリケーションを本番ビルドとしてコンパイルします(上記のとおり)。 +- [winres](https://github.com/tc-hib/winres)を使用して、アイコンとマニフェストをリンクできる`.syso`ファイルにバンドルします。 -#### Manual Steps +#### 手動で実行する手順 -- Create `icon.ico` using the [winicon](https://github.com/leaanthony/winicon) CLI tool (or any other tool). -- Create / Update a `.manifest` file for your application -- Use the [winres CLI](https://github.com/tc-hib/go-winres) to generate a `.syso` file. +- [winicon](https://github.com/leaanthony/winicon)のCLIツール(または他の任意ツール)を使用して、`icon.ico`を作成します。 +- アプリケーションの`.manifest`ファイルを作成または更新します。 +- [winres CLI](https://github.com/tc-hib/go-winres)を使用して、`.syso`ファイルを生成します。 -### Compile application +### アプリケーションのコンパイル -#### Wails CLI +#### Wails CLIでの手順 -- If the `-clean` flag is provided, the `build` directory is deleted and recreated -- For `wails dev`, the following default Go flags are used: `-tags dev -gcflags "all=-N -l"` -- For `wails build`, the following default Go flags are used: `-tags desktop,production -ldflags "-w -s"` - - On Windows, `-ldflags "-w -h -H windowsgui"` -- Additional tags passed to the CLI using `-tags` are added to the defaults -- Additional ldflags passed to the CLI using `-ldflags` are added to the defaults -- The `-o` flag is passed through -- The Go compiler specified by `-compiler` will be used for compilation +- `-clean`フラグが指定された場合、`build`ディレクトリを削除して再作成します。 +- `wails dev`コマンドの場合、デフォルトで次のGoフラグを使用するようにします: `-tags dev -gcflags "all=-N -l"` +- `wails build`コマンドの場合、デフォルトで次のGoフラグを使用するようにします: `-tags desktop,production -ldflags "-w -s"` + - Windowsの場合: `-ldflags "-w -h -H windowsgui"` +- `-tags`フラグを使用してCLIに指定された追加タグを、デフォルトのタグに追記します。 +- `-ldflags`フラグを使用してCLIに指定された追加のldflagsを、デフォルトのタグに追記します。 +- `-o`フラグのパラメータをパススルーさせます。 +- `-compiler`フラグで指定されたGoコンパイラを、コンパイル時に使用するようにします。 -#### Manual steps +#### 手動で実行する手順 -- For dev build, the minimum command would be: `go build -tags dev -gcflags "all=-N -l"` -- For production build, the minimum command would be: `go build -tags desktop,production -ldflags "-w -s -H windowsgui"` -- Ensure that you compile in the same directory as the `.syso` file +- 開発ビルドの場合、最小のコマンドは次のとおりです: `go build -tags dev -gcflags "all=-N -l"` +- 本番ビルドの場合、最小のコマンドは次のとおりです: `go build -tags desktop,production -ldflags "-w -s -H windowsgui"` +- `.syso`ファイルと同じディレクトリでコンパイルするようにしてください。 -### Compress application +### アプリケーションの圧縮 -#### Wails CLI +#### Wails CLIでの手順 -- If the `-upx` flag has been given, the `upx` program will be run to compress the application with the default settings -- If `-upxflags` is also passed, these flags are used instead of the default ones +- `-upx`フラグが指定された場合、アプリケーションを圧縮するために、`upx`プログラムをデフォルト設定で実行します。 +- `-upxflags`フラグも指定された場合、デフォルト設定の代わりにこれらのフラグを使用します。 -#### Manual steps +#### 手動で実行する手順 -- Run `upx [flags]` manually to compress the application. +- `upx [flags]`を手動で実行して、アプリケーションを圧縮します。 diff --git a/website/i18n/ja/docusaurus-plugin-content-docs/current/guides/migrating.mdx b/website/i18n/ja/docusaurus-plugin-content-docs/current/guides/migrating.mdx index 7123cbe6b..68319030e 100644 --- a/website/i18n/ja/docusaurus-plugin-content-docs/current/guides/migrating.mdx +++ b/website/i18n/ja/docusaurus-plugin-content-docs/current/guides/migrating.mdx @@ -1,14 +1,14 @@ -# Migrating from v1 +# v1からの移行 -## Overview +## 概要 -Wails v2 is a significant change from v1. This document aims to highlight the changes and the steps in migrating an existing project. +Wails v2は、v1から大幅に変更されています。 このドキュメントでは、変更点、および既存のプロジェクトを移行する方法に焦点をあてて説明します。 -### Creating the Application +### アプリケーションの作成 -In v1, the main application is created using `wails.CreateApp`, bindings are added with `app.Bind`, then the application is run using `app.Run()`. +v1では、`wails.CreateApp`でメインアプリケーションを作成して、`app.Bind`でバインディングを追加し、`app.Run()`でアプリケーションを起動していました。 -Example: +例: ```go title="v1" app := wails.CreateApp(&wails.AppConfig{ @@ -23,7 +23,7 @@ Example: app.Run() ``` -In v2, there is just a single method, `wails.Run()`, that accepts [application options](../reference/options.mdx#application-options). +v2では、`wails.Run()`メソッドだけが、[アプリケーションオプション](../reference/options.mdx#application-options)を指定することができます。 ```go title="v2" err := wails.Run(&options.App{ @@ -39,9 +39,9 @@ In v2, there is just a single method, `wails.Run()`, that accepts [application o }) ``` -### Binding +### バインディング -In v1, it was possible to bind both arbitrary functions and structs. In v2, this has been simplified to only binding structs. The struct instances that were previously passed to the `Bind()` method in v1, are now specified in the `Bind` field of the [application options](../reference/options.mdx#application-options): +v1では、任意の関数と構造体の両方をバインドすることが可能でした。 v2では、構造体のみバインドできるようになり、シンプルになりました。 v1において`Bind()`メソッドに渡していた構造体のインスタンスは、[アプリケーションオプション](../reference/options.mdx#application-options)の`Bind`フィールドで指定できます。 ```go title="v1" app := wails.CreateApp(/* options */) @@ -57,19 +57,19 @@ In v1, it was possible to bind both arbitrary functions and structs. In v2, this }) ``` -In v1, bound methods were available to the frontend at `window.backend`. This has changed to `window.go`.`` +v1では、バインドされたメソッドをフロントエンドから利用するには`window.backend`を使用していました。 これは`window.go`に変更されました。 -### Application Lifecycle +### アプリケーションライフサイクル -In v1, there were 2 special methods in a bound struct: `WailsInit()` and `WailsShutdown()`. These have been replaced with 3 lifecycle hooks as part of the [application options](../reference/options.mdx#application-options): +v1では、バインドされた構造体の中に、`WailsInit()`および`WailsShutdown()`という2つの特別なメソッドが存在しました。 これらは、[アプリケーションオプション](../reference/options.mdx#application-options)の一部として、3つのライフサイクルフックに置き換えられています: - [OnStartup](../reference/options.mdx#onstartup) - [OnShutdown](../reference/options.mdx#onshutdown) - [OnDomReady](../reference/options.mdx#ondomready) -Note: [OnDomReady](../reference/options.mdx#ondomready) replaces the `wails:ready` system event in v1. +注意: [OnDomReady](../reference/options.mdx#ondomready)は、v1での`wails:ready`システムイベントに代わるものです。 -These methods can be standard functions, but a common practice is to have them part of a struct: +これらのメソッドは標準的な関数を指定できますが、一般的には、それらのメソッドを構造体の一部として保持しておきます: ```go title="v2" basic := NewBasicApp() @@ -89,11 +89,11 @@ func (b *Basic) startup(ctx context.Context) { ... ``` -### Runtime +### ランタイム -The runtime in v2 is much richer than v1 with support for menus, window manipulation and better dialogs. The signature of the methods has changed slightly - please refer the the [Runtime Reference](../reference/runtime/intro.mdx). +v2のランタイムはv1よりも非常に充実しており、メニュー、ウィンドウ操作、優れたダイアログをサポートしています。 メソッドのシグネチャが若干変更されていますので、詳しくは[ランタイムのリファレンス](../reference/runtime/intro.mdx)を参照してください。 -In v1, the [runtime](../reference/runtime/intro.mdx) was available via a struct passed to `WailsInit()`. In v2, the runtime has been moved out to its own package. Each method in the runtime takes the `context.Context` that is passed to the [OnStartup](../reference/options.mdx#onstartup) method. +v1では、`WailsInit()`に渡された構造体を介して[ランタイム](../reference/runtime/intro.mdx)を利用できていました。 v2では、ランタイムは独自のパッケージとして移植されています。 ランタイムの各メソッドは、[OnStartup](../reference/options.mdx#onstartup)メソッドで受け渡される`context.Context`を引数に取ります。 ```go title="Runtime Example" package main @@ -104,7 +104,7 @@ type Basic struct { ctx context.Context } -// startup is called at application startup +// startupはアプリケーション起動時に呼び出される func (a *App) startup(ctx context.Context) { a.ctx = ctx runtime.LogInfo(ctx, "Application Startup called!") @@ -112,24 +112,24 @@ func (a *App) startup(ctx context.Context) { ``` -### Assets +### アセット -The _biggest_ change in v2 is how assets are handled. +v2での_最も大きな_変更は、アセットの取り扱い方です。 -In v1, assets were passed via 2 application options: +v1では、2つのアプリケーションオプションを介してアセットを指定していました: -- `JS` - The application's JavaScript -- `CSS` - The application's CSS +- `JS` - アプリケーションのJavaScript +- `CSS` - アプリケーションのCSS -This meant that the responsibility of generating a single JS and CSS file was on the developer. This essentially required the use of complicated packers such as webpack. +これは、単一のJSファイルおよびCSSファイルを、開発者が責任をもって作成する必要があることを意味していました。 基本的には、webpackのような複雑なパッカーを使用する必要がありました。 -In v2, Wails makes no assumptions about your frontend assets, just like a webserver. All of your application assets are passed to the application options as an `embed.FS`. +v2では、Wailsは一般的なWebサーバと同じように、フロントエンドアセットは何でも構いません。 すべてのアプリケーションアセットは、`embed.FS`インスタンスとしてアプリケーションオプションに渡されます。 -**This means there is no requirement to bundle your assets, encode images as Base64 or attempt the dark art of bundler configuration to use custom fonts**. +**つまりアセットをバンドルしたり、画像をBase64でエンコードしたり、カスタムフォントを使用するためにバンドラーの設定を工夫したりする必要は一切ありません**。 -At startup, Wails will scan the given `embed.FS` for `index.html` and use its location as the root path for all the other application assets - just like a webserver would. +アプリケーション起動時に、Wailsは、あらかじめ`embed.FS`で指定されたディレクトリ内をスキャンして`index.html`を探し、Webサーバの挙動のように、その場所をすべてのアプリケーションアセットのルートパスとみなします。 -Example: An application has the following project layout. All final assets are placed in the `frontend/dist` directory: +例: とあるアプリケーションのプロジェクトディレクトリの構成が次のようになっているとします。 この場合、最終的に必要なすべてのアセットは`frontend/dist`ディレクトリ配下に配置される必要があります: ```shell . @@ -144,7 +144,7 @@ Example: An application has the following project layout. All final assets are p └── wails.json ``` -Those assets may be used by the application by simply creating an `embed.FS`: +これらのアセットは、`embed.FS`を定義するだけで、アプリケーションから使用することができます: ```go title="Assets Example" //go:embed all:frontend/dist @@ -160,32 +160,32 @@ func main() { } ``` -Of course, bundlers can be used if you wish to. The only requirement is to pass the final application assets directory to Wails using an `embed.FS` in the `Assets` key of the [application options](../reference/options.mdx#application-options). +もちろん、必要に応じてバンドラを使用することもできます。 唯一行わなければいけないことは、[アプリケーションオプション](../reference/options.mdx#application-options)の`Assets`キーに`embed.FS`インスタンスを指定して、Wailsにアプリケーションアセットディレクトリを教えてあげることです。 -### Project Configuration +### プロジェクト構成 -In v1, the project configuration was stored in the `project.json` file in the project root. In v2, the project configuration is stored in the `wails.json` file in the project root. +v1では、プロジェクトルートに存在する`project.json`ファイルで、プロジェクト構成を管理していました。 v2では、プロジェクトルートにある`wails.json`ファイルでプロジェクト構成を管理します。 -The format of the file is slightly different. Here is a comparison: +フォーマットは若干変更されています。 比較表は次のとおりです:

-| v1 | v2 | Notes | +| v1 | v2 | 備考 | | ------------------ | ---------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| name | name | | -| description | | Removed | -| author / name | author / name | | -| author / email | author / email | | -| version | version | | -| binaryname | outputfilename | Changed | -| frontend / dir | | Removed | -| frontend / install | frontend:install | Changed | -| frontend / build | frontend:build | Changed | -| frontend / bridge | | Removed | -| frontend / serve | | Removed | -| tags | | Removed | -| | wailsjsdir | The directory to generate wailsjs modules | -| | assetdir | The directory of the compiled frontend assets for `dev` mode. This is normally inferred and could be left empty. | -| | reloaddirs | Comma separated list of additional directories to watch for changes and to trigger reloads in `dev` mode. This is only needed for some more advanced asset configurations. | +| name | name | | +| description | | 消去されました | +| author / name | author / name | | +| author / email | author / email | | +| version | version | | +| binaryname | outputfilename | 変更されました | +| frontend / dir | | 消去されました | +| frontend / install | frontend:install | 変更されました | +| frontend / build | frontend:build | 変更されました | +| frontend / bridge | | 消去されました | +| frontend / serve | | 消去されました | +| tags | | 消去されました | +| | wailsjsdir | wailsjsモジュールを生成するディレクトリ | +| | assetdir | `dev`モードでコンパイルされたフロントエンドアセットのディレクトリ。 通常は自動推定されるため、空のままで構いません。 | +| | reloaddirs | `dev`モードでリロードをトリガーさせたい追加のディレクトリを指定するための、カンマ区切りのリスト。 高度なアセット構成をとる場合にのみ必要です。 |

diff --git a/website/i18n/ja/docusaurus-plugin-content-docs/current/guides/mouse-buttons.mdx b/website/i18n/ja/docusaurus-plugin-content-docs/current/guides/mouse-buttons.mdx index 4a3de2a61..58ee21c68 100644 --- a/website/i18n/ja/docusaurus-plugin-content-docs/current/guides/mouse-buttons.mdx +++ b/website/i18n/ja/docusaurus-plugin-content-docs/current/guides/mouse-buttons.mdx @@ -1,6 +1,6 @@ -# Mouse Buttons +# マウスボタン -The Wails runtime intercepts mouse clicks to determine whether a frameless window needs resizing or a window needs to be moved. It has been asked how to detect when a mouse click has occurred, because `window.onclick` doesn't report the mouse buttons correctly. The following code shows how to detect mouse clicks: +Wailsランタイムでは、マウスクリックを途中で捕捉し、フレームレスウィンドウのサイズ変更が必要かどうかや、ウィンドウの移動が必要かどうかを判断しています。 `window.onclick`はマウスボタンを正しく報告しないため、どのようにマウスクリックが発生したことを検出しているのかを尋ねられました。 以下のコードは、マウスクリックを検出する方法を示しています: ```javascript window.addEventListener("mousedown", handleMouseButtonDown); @@ -22,4 +22,4 @@ function handleMouseButtonDown(event) { } ``` -Reference: https://developer.mozilla.org/en-US/docs/Web/API/MouseEvent/button +参考: https://developer.mozilla.org/ja/docs/Web/API/MouseEvent/button diff --git a/website/i18n/ja/docusaurus-plugin-content-docs/current/guides/obfuscated.mdx b/website/i18n/ja/docusaurus-plugin-content-docs/current/guides/obfuscated.mdx index 21f7875e3..9b5bab1fe 100644 --- a/website/i18n/ja/docusaurus-plugin-content-docs/current/guides/obfuscated.mdx +++ b/website/i18n/ja/docusaurus-plugin-content-docs/current/guides/obfuscated.mdx @@ -1,32 +1,32 @@ -# Obfuscated Builds +# 難読化されたビルド -Wails includes support for obfuscating your application using [garble](https://github.com/burrowers/garble). +Wailsでは、[garble](https://github.com/burrowers/garble)を使用したアプリケーションの難読化をサポートしています。 -To produce an obfuscated build, you can use the `-obfuscate` flag with the `wails build` command: +`wails build`コマンドで`-obfuscate`フラグを使用することで、ビルド時に難読化を有効にすることができます: ```bash wails build -obfuscated ``` -To customise the obfuscation settings, you can use the `-garbleargs` flag: +また、難読化に関する設定をカスタマイズするために、`-garbleargs`フラグを使用できます: ```bash wails build -obfuscated -garbleargs "-literals -tiny -seed=myrandomseed" ``` -These settings may be persisted in your [project config](../reference/project-config). +これらの設定は、[プロジェクト構成](../reference/project-config)で記述されている場合もあります。 -## How it works +## 動作の仕組み -In a standard build, all bound methods are available in the frontend under the `window.go` variable. When these methods are called, the corresponding backend method is called using the fully qualified function name. When using an obfuscated build, methods are bound using an ID instead of a name. The bindings generated in the `wailsjs` directory use these IDs to call the backend functions. +標準のビルドでは、バインドされたすべてのメソッドは、フロントエンドの`window.go`変数から利用することができます。 これらのメソッドが呼び出されると、対応するバックエンドメソッドが完全修飾関数名で呼び出されます。 難読化ビルドの場合、メソッドは名前の代わりにIDでバインドされます。 `wailsjs`ディレクトリに生成されたバインディングは、このIDを使用してバックエンドの関数を呼び出します。 :::note -To ensure that your application will work in obfuscated mode, you must use the generated bindings under the `wailsjs` directory in your application. +アプリケーションを難読化した状態で動作させるためには、`wailsjs`ディレクトリの配下に生成されたバインディングを使用する必要があります。 ::: -## Example +## 例 Importing the "Greet" method from the bindings like this: @@ -37,4 +37,4 @@ import { Greet } from "../../wailsjs/go/main/App"; Greet("World"); ``` -will ensure that the method will work correctly in obfuscated mode, as the bindings will be regenerated with IDs and the call mechanism updated. +これは、バインディングがIDで再生成され、呼び出しメカニズムが更新されるため、難読化モードでメソッドが正しく動作することを保証します。 diff --git a/website/i18n/ja/docusaurus-plugin-content-docs/current/guides/overscroll.mdx b/website/i18n/ja/docusaurus-plugin-content-docs/current/guides/overscroll.mdx index 9d1d772d0..4ee1db0e4 100644 --- a/website/i18n/ja/docusaurus-plugin-content-docs/current/guides/overscroll.mdx +++ b/website/i18n/ja/docusaurus-plugin-content-docs/current/guides/overscroll.mdx @@ -1,6 +1,6 @@ -# Overscroll +# オーバースクロール -[Overscroll](https://developer.mozilla.org/en-US/docs/Web/CSS/overscroll-behavior) is the "bounce effect" you sometimes get when you scroll beyond a page's content boundaries. This is common in mobile apps. This can be disabled using CSS: +[オーバースクロール](https://developer.mozilla.org/en-US/docs/Web/CSS/overscroll-behavior)は、ページコンテンツの境界を越えてスクロールした際に発生する"バウンス効果"です。 この効果はモバイルアプリでよく見かけます。 CSSを使用することでこの効果を無効化できます: ```css html { diff --git a/website/i18n/ja/docusaurus-plugin-content-docs/current/guides/routing.mdx b/website/i18n/ja/docusaurus-plugin-content-docs/current/guides/routing.mdx index c35cc1c8a..4d0e8aa48 100644 --- a/website/i18n/ja/docusaurus-plugin-content-docs/current/guides/routing.mdx +++ b/website/i18n/ja/docusaurus-plugin-content-docs/current/guides/routing.mdx @@ -1,10 +1,10 @@ -# Routing +# ルーティング -Routing is a popular way to switch views in an application. This page offers some guidance around how to do that. +アプリケーションでビューを切り替える一般的な方法は、ルーティングです。 このページでは、ルーティングを実現する方法をいくつか紹介します。 ## Vue -The recommended approach for routing in Vue is [Hash Mode](https://next.router.vuejs.org/guide/essentials/history-mode.html#hash-mode): +Vueにおいてルーティングで推奨されるアプローチは、[ハッシュモード](https://next.router.vuejs.org/guide/essentials/history-mode.html#hash-mode)となります: ```js import { createRouter, createWebHashHistory } from "vue-router"; @@ -19,7 +19,7 @@ const router = createRouter({ ## Angular -The recommended approach for routing in Angular is [HashLocationStrategy](https://codecraft.tv/courses/angular/routing/routing-strategies#_hashlocationstrategy): +Angularにおいてルーティングで推奨されるアプローチは、[HashLocationStrategy](https://codecraft.tv/courses/angular/routing/routing-strategies#_hashlocationstrategy)となります: ```ts RouterModule.forRoot(routes, { useHash: true }); @@ -27,7 +27,7 @@ RouterModule.forRoot(routes, { useHash: true }); ## React -The recommended approach for routing in React is [HashRouter](https://reactrouter.com/docs/en/v6/routers/hash-router): +Reactにおいてルーティングで推奨されるアプローチは、[HashRouter](https://reactrouter.com/docs/en/v6/routers/hash-router)となります: ```jsx import { HashRouter } from "react-router-dom"; diff --git a/website/i18n/ja/docusaurus-plugin-content-docs/current/guides/signing.mdx b/website/i18n/ja/docusaurus-plugin-content-docs/current/guides/signing.mdx index 4c7cf45ba..8b57d7e0f 100644 --- a/website/i18n/ja/docusaurus-plugin-content-docs/current/guides/signing.mdx +++ b/website/i18n/ja/docusaurus-plugin-content-docs/current/guides/signing.mdx @@ -1,14 +1,14 @@ -# Code Signing +# コード署名 -This is a guide on how you can sign your binaries generated with Wails on MacOS and Windows. The guide will target CI environments, more specifically GitHub Actions. +このガイドでは、MacOSおよびWindowsでWailsによって生成されたバイナリに署名するための方法を解説します。 このガイドは、CI環境、とりわけGitHub Actionsを対象としています。 ## Windows -First off you need a code signing certificate. If you do not already have one, Microsoft's info page lists some providers [here](https://docs.microsoft.com/en-us/windows-hardware/drivers/dashboard/get-a-code-signing-certificate). Please note that an EV certificate is not required unless you need to write kernel-level software such as device drivers. For signing your Wails app, a standard code signing certificate will do just fine. +まず初めに、コード署名証明書が必要となります。 まだ証明書を持っていない場合は、[こちら](https://docs.microsoft.com/en-us/windows-hardware/drivers/dashboard/get-a-code-signing-certificate)のMicrosoftのページに、いくつかのプロバイダーが紹介されていますので入手してください、 デバイスドライバといったカーネルレベルのソフトウェアを作成する必要がない限り、EV証明書を入手する必要はありません。 Wailsアプリに署名する場合、標準のコード証明書で問題ありません。 -It may be a good idea to check with your certificate provider how to sign your binaries on your local machine before targeting automated build systems, just so you know if there are any special requirements. For instance, [here](https://www.ssl.com/how-to/using-your-code-signing-certificate/) is SSL.com's code signing guide for Windows. If you know how to sign locally, it will be easier to troubleshoot any potential issues in a CI environment. For instance, SSL.com code signing certificates require the `/tr` flag for [SignTool.exe](https://docs.microsoft.com/en-us/windows/win32/seccrypto/signtool) while other providers may only need the `/t` flag for providing the timestamping server. Popular GitHub Actions for signing Windows binaries like [this one](https://github.com/Dana-Prajea/code-sign-action) does not support the `/tr` flag on SignTool.exe. Therefore this guide will focus on signing our app manually with PowerShell commands, but you can use actions like the [code-sign-action](https://github.com/Dana-Prajea/code-sign-action) Action if you prefer. +自動ビルドシステムを対象に作業する前に、ローカルマシン上でバイナリに署名する方法を証明書プロバイダに確認し、特別な要件がないかを確認することを推奨します。 例えば、[こちら](https://www.ssl.com/how-to/using-your-code-signing-certificate/)はSSL.comのWindows向けコード署名ガイドです。 ローカル環境での署名方法が分かっていれば、CI環境で発生するかもしれない問題のトラブルシューティングが容易になることでしょう。 例えば、SSL.comのコード署名証明書は[SignTool.exe](https://docs.microsoft.com/en-us/windows/win32/seccrypto/signtool)において`/tr`フラグを指定する必要がありますが、他の証明書プロバイダでは、タイムスタンプサーバの提供のために、`/t`フラグのみ必要である場合もあります。 [こちら](https://github.com/Dana-Prajea/code-sign-action)のような、Windowsバイナリの署名によく使われるGitHub Actionsのアクションは、SignTool.exeの`/tr`フラグに対応していません。 したがって、このガイドではPowerShellコマンドを使用して手動でアプリケーションに署名する方法に焦点をあてます。ただし、必要であれば[code-sign-action](https://github.com/Dana-Prajea/code-sign-action)アクションといったアクションを使用することも可能です。 -First off, let's make sure we are able to build our Wails app in our GitHub CI. Here is a small workflow template: +まずは、GitHub CIでWailsアプリをビルドできるようにしておきましょう。 簡単なワークフローテンプレートは次のとおりです: ```yaml name: "example" @@ -33,7 +33,7 @@ jobs: uses: actions/setup-node@v2 with: node-version: 14 - # You may need to manually build you frontend manually here, unless you have configured frontend build and install commands in wails.json. + # wails.jsonでフロントエンドのビルドおよびインストールコマンドを設定していない場合、ここで手動でフロントエンドをビルドする必要があるかもしれません。 - name: Get Wails run: go install github.com/wailsapp/wails/v2/cmd/wails@latest - name: Build Wails app @@ -53,24 +53,24 @@ jobs: path: build/bin/* ``` -Next we need to give the GitHub workflow access to our signing certificate. This is done by encoding your .pfx or .p12 certificate into a base64 string. To do this in PowerShell, you can use the following command assuming your certificate is called 'my-cert.p12': +次に、GitHubワークフローに署名証明書へのアクセス権を付与する必要があります。 これは、.pfxまたは.p12形式の証明書をbase64文字列にエンコードすることで実現できます。 PowerShellの場合、証明書名が仮に'my-cert.p12'だとすると、次のコマンドが使用できます: ```PowerShell certutil -encode .\my-cert.p12 my-cert-base64.txt ``` -You should now have your .txt file with the base64 encoded certificate. It should start with _-----BEGIN CERTIFICATE-----_ and end with _-----END CERTIFICATE-----_. Now you need to make two action secrets on GitHub. Navigate to _Settings -> Secrets -> Actions_ and create the two following secrets: +これで、base64でエンコードされた証明書が含まれる.txtファイルが作成されます。 このファイルの中身は、_-----BEGIN CERTIFICATE-----_で始まり、_-----END CERTIFICATE-----_で終わる必要があります。 次に、GitHubで2つのActions secretsを作成します。 _Settings -> Secrets -> Actions_のページに移動し、2つのシークレットを作成してください: -- **WIN_SIGNING_CERT** with the contents of your base64 encoded certificate text. -- **WIN_SIGNING_CERT_PASSWORD** with the contents of your certificate password. +- **WIN_SIGNING_CERT** には、base64エンコードされた証明書テキストの内容を設定します。 +- **WIN_SIGNING_CERT_PASSWORD** には、証明書のパスワードを設定します。 -Now we're ready to implement the signing in our workflow using one of the two methods: +ここまでの作業で、次の2つのいずれかの方法を使用して、ワークフローによる署名処理を実装する準備が整いました。 -### Method 1: signing with commands +### 方法1: コマンドを使用して署名 -This method uses PowerShell commands to sign our app, and leaves you control over the entire signing process. +この方法では、Power Shellコマンドを使用してアプリに署名し、署名プロセス全体をコントロールします。 -After the `"Build Wails app"` step, we can add the following step to our workflow: +`"Build Wails app"`ステップのあとに、下記のステップをワークフローに追加してください。 ```yaml - name: Sign Windows binaries @@ -85,13 +85,13 @@ After the `"Build Wails app"` step, we can add the following step to our workflo ``` -This script creates a new directory for your certificate file, creates the certificate file from our base64 secret, converts it to a .pfx file, and finally signs the binary. The following variables needs to be replaced in the last line: +このスクリプトでは、証明書ファイル用に新しいディレクトリを作成して、base64シークレットから証明書ファイルを作成します。その証明書を.pfxファイルに変換し、最後にバイナリへ署名します。 下記の変数は、最後の行内で置換してください: -- **signing algorithm**: usually sha256. -- **timestamping server**: URL to the timestamping server to use with your certificate. -- **path to binary**: path to the binary you want to sign. +- **signing algorithm**: 通常は、sha256。 +- **timestamping server**: 証明書で使用するタイムスタンプサーバのURL。 +- **path to binary**: 署名したいバイナリへのパス。 -Given that our Wails config has `outputfilename` set to "app.exe" and that we have a certificate from SSL.com, this would be our workflow: +Wailsの構成において`outputfilename`に"app.exe"という値が設定されており、SSL.comでの証明書が用意されている場合、次のようなワークフローとなります: ```yaml name: "example" @@ -116,7 +116,7 @@ jobs: uses: actions/setup-node@v2 with: node-version: 14 - # You may need to manually build you frontend here, unless you have configured frontend build and install commands in wails.json. + # wails.jsonでフロントエンドのビルドおよびインストールコマンドを設定していない場合、ここで手動でフロントエンドをビルドする必要があるかもしれません。 - name: Get Wails run: go install github.com/wailsapp/wails/v2/cmd/wails@latest - name: Build Wails app @@ -146,27 +146,27 @@ jobs: path: build/bin/* ``` -### Method 2: automatically signing with Action +### 方法2: アクションを使用して自動的に署名 -It is possible to use a Windows code signing Action like [this](https://github.com/marketplace/actions/code-sign-a-file-with-pfx-certificate) one, but note it requires a SHA1 hash for the certificate and a certificate name. View an example of how to configure it on the Action's [marketplace](https://github.com/marketplace/actions/code-sign-a-file-with-pfx-certificate). +[こちら](https://github.com/marketplace/actions/code-sign-a-file-with-pfx-certificate)のようなWindowsコード署名のためのアクションを使用することはできますが、証明書用のSHA1ハッシュや証明書名が必要であることに注意してください。 詳しくは、アクションの[マーケットプレイス](https://github.com/marketplace/actions/code-sign-a-file-with-pfx-certificate)で、使用方法を確認してください。 --- ## MacOS -First off you need your code signing certificate from Apple. If you do not have one, a simple Google search will help you acquire one. Once you have your certificate, you need to export it and encode it to base64. [This tutorial](https://localazy.com/blog/how-to-automatically-sign-macos-apps-using-github-actions) shows you how to do that in an easy manner. Once you have exported your .p12 certificate file, you can encode it to base64 as seen in the tutorial with the following command: +まずは、Appleのコード署名証明書が必要です。 もし所有していない場合は、Googleで検索すれば取得方法が分るでしょう。 証明書を入手できたら、それをエクスポートし、base64でエンコードする必要があります。 [このチュートリアル](https://localazy.com/blog/how-to-automatically-sign-macos-apps-using-github-actions)をご覧いただければ、簡単にエンコードする方法が分ります。 .p12証明書ファイルをエクスポートした場合、次のコマンドを使用して、チュートリアルで示されているようにbase64にエンコードできます: ```bash base64 Certificates.p12 | pbcopy ``` -Now you're ready to create some GitHub project secrets, just as with Windows: +これにより、Windowsと同様に、GitHubプロジェクトにいくつかのシークレットを設定する準備が整いました: -- **APPLE_DEVELOPER_CERTIFICATE_P12_BASE64** with the contents of your newly copied base64 certificate. -- **APPLE_DEVELOPER_CERTIFICATE_PASSWORD** with the contents of your certificate password. -- **APPLE_PASSWORD** with the contents of an App-Specific password to your Apple-ID account which you can generate [here](https://appleid.apple.com/account/manage). +- **APPLE_DEVELOPER_CERTIFICATE_P12_BASE64**には、新しくコピーしたbase64証明書の内容を設定します。 +- **APPLE_DEVELOPER_CERTIFICATE_PASSWORD**には、証明書のパスワードを設定します。 +- **APPLE_PASSWORD**には、[こちら](https://appleid.apple.com/account/manage)で生成できるアプリ固有のパスワードを設定します。 -Let's make sure we are able to build our Wails app in our GitHub Action workflow. Here is a small template: +GitHub Actionのワークフローで、Wailsアプリをビルドできるようにしましょう。 簡単な例は次のとおりです: ```yaml name: "example" @@ -191,7 +191,7 @@ jobs: uses: actions/setup-node@v2 with: node-version: 14 - # You may need to manually build you frontend here, unless you have configured frontend build and install commands in wails.json. + # wails.jsonでフロントエンドのビルドおよびインストールコマンドを設定していない場合、ここで手動でフロントエンドをビルドする必要があるかもしれません。 - name: Get Wails run: go install github.com/wailsapp/wails/v2/cmd/wails@latest - name: Build Wails app @@ -211,9 +211,9 @@ jobs: path: build/bin/* ``` -For code signing on macOS, [gon](https://github.com/mitchellh/gon) is a very handy tool for code signing and communicating with Apple servers, also written in Go, and will be used in this guide. +macOSでコード署名をするときは、[gon](https://github.com/mitchellh/gon)という非常に便利なツールを使うことで、コード署名およびAppleサーバとの通信ができます。これはGoで記述されており、このガイドでも使用されています。 -After the `Build Wails app` step, add the following to the workflow: +`Build Wails app`ステップの後に、次のワークフローを追加します: ```yaml - name: MacOS download gon for code signing and app notarization @@ -222,7 +222,7 @@ After the `Build Wails app` step, add the following to the workflow: brew install mitchellh/gon/gon ``` -Now we need to configure some gon config files in our `build/darwin` directory: +ここで、`build/darwin`ディレクトリ内に、gonの構成設定ファイルを用意する必要があります: 1. gon-sign.json: @@ -240,7 +240,7 @@ Now we need to configure some gon config files in our `build/darwin` directory: } ``` -Where `source` is your Wails binary, `bundle_id` is your bundle ID, `apple_id` contains your Apple ID username and App-Specific password which you created earlier, and `sign.application_identity` is your identity which you can find by running the following command: +`source`にはWailsのバイナリファイルの場所、`bundle_id`にはバンドルID、`apple_id`にはあらかじめ作成したApple IDのユーザ名とアプリ固有のパスワード、`sign.application_identity`には次のコマンドを実行することで分かるIDを指定します: ```bash security find-identity -v -p codesigning @@ -267,9 +267,9 @@ security find-identity -v -p codesigning ``` -In this file you configure the entitlements you need for you app, e.g. camera permissions if your app uses the camera. Read more about entitlements [here](https://developer.apple.com/documentation/bundleresources/entitlements). +このファイルでは、アプリに必要な権限(たとえば、アプリがカメラを使用する場合、カメラへのアクセス権限)を設定します。 権限について詳しくは[こちら](https://developer.apple.com/documentation/bundleresources/entitlements)をご覧ください。 -Make sure you have updated your `Info.plist` file with the same bundle ID as you entered in `gon-sign.json`. Here's an example `Info.plist` file: +`Info.plist`ファイルのバンドルIDを、`gon-sign.json`に入力したものと同じIDに書き換えてください。 次は、`Info.plist`ファイルの例です: ```plist @@ -289,7 +289,7 @@ Make sure you have updated your `Info.plist` file with the same bundle ID as you ``` -Now we're ready to add the signing step in our workflow after building the Wails app: +これで、Wailsアプリをビルドしたあとに、ワークフローに署名のステップを追加する準備ができました: ```yaml - name: Import Code-Signing Certificates for macOS @@ -307,11 +307,11 @@ Now we're ready to add the signing step in our workflow after building the Wails gon -log-level=info ./build/darwin/gon-sign.json ``` -Please note that signing binaries with Apple could take anywhere from minutes to hours. +Appleでバイナリに署名する場合、数分から数時間程度の所要時間がかかることがありますのでご注意ください。 -## Combined workflow file: +## ワークフローファイルの組み合わせ -Here is our GitHub workflow file with Windows + macOS combined: +WindowsとmacOSを組み合わせたGitHubワークフローファイルの例は次のとおりです: ```yaml name: "example combined" @@ -336,7 +336,7 @@ jobs: uses: actions/setup-node@v2 with: node-version: 14 - # You may need to manually build you frontend here, unless you have configured frontend build and install commands in wails.json. + # wails.jsonでフロントエンドのビルドおよびインストールコマンドを設定していない場合、ここで手動でフロントエンドをビルドする必要があるかもしれません。 - name: Get Wails run: go install github.com/wailsapp/wails/v2/cmd/wails@latest - name: Build Wails app @@ -382,6 +382,6 @@ jobs: path: build/bin/* ``` -# End notes +# おわりに -This guide inspired by the RiftShare project and its workflow, which is highly recommended to check out [here](https://github.com/achhabra2/riftshare/blob/main/.github/workflows/build.yaml). +このガイドは、RiftShareプロジェクトとそのワークフローに触発されて作成されたものであり、 [こちら](https://github.com/achhabra2/riftshare/blob/main/.github/workflows/build.yaml)を併せて確認することを強く推奨します。 diff --git a/website/i18n/ja/docusaurus-plugin-content-docs/current/guides/templates.mdx b/website/i18n/ja/docusaurus-plugin-content-docs/current/guides/templates.mdx index 790e3107f..8e1f83045 100644 --- a/website/i18n/ja/docusaurus-plugin-content-docs/current/guides/templates.mdx +++ b/website/i18n/ja/docusaurus-plugin-content-docs/current/guides/templates.mdx @@ -1,17 +1,17 @@ -# Templates +# テンプレート -Wails generates projects from pre-created templates. In v1, this was a difficult to maintain set of projects that were subject to going out of date. In v2, to empower the community, a couple of new features have been added for templates: +Wailsは、事前に作成されたテンプレートからプロジェクトを生成します。 v1では、テンプレートがメンテナンス困難なプロジェクトとなり、時代遅れとなってしまう可能性がありました。 v2では、コミュニティを強化するために、テンプレートにいくつかの新機能が追加されました: -- Ability to generate projects from [Remote Templates](../reference/cli.mdx#remote-templates) -- Tooling to help create your own templates +- [リモート点テンプレート](../reference/cli.mdx#remote-templates)からプロジェクトを生成する機能 +- 独自のテンプレートの作成に役立つツール -## Creating Templates +## テンプレートの作成 -To create a template, you can use the `wails generate template` command. To generate a default template, run: +テンプレートを作成するには、`wails generate template`コマンドを使用します。 デフォルトのテンプレートを生成する場合は、次のコマンドを実行してください: `wails generate template -name mytemplate` -This creates the directory "mytemplate" with default files: +これにより、デフォルトのファイルが含まれた"mytemplate"ディレクトリが作成されます: ```shell title=mytemplate/ . @@ -35,31 +35,31 @@ This creates the directory "mytemplate" with default files: `-- wails.tmpl.json ``` -### Template Overview +### テンプレートの概要 -The default template consists of the following files and directories: +デフォルトのテンプレートは、次のファイルおよびディレクトリで構成されています: -| Filename / Dir | Description | -| --------------- | -------------------------------------------- | -| NEXTSTEPS.md | Instructions on how to complete the template | -| README.md | The README published with the template | -| app.tmpl.go | `app.go` template file | -| frontend/ | The directory containing frontend assets | -| go.mod.tmpl | `go.mod` template file | -| main.tmpl.go | `main.go` template file | -| template.json | The template metadata | -| wails.tmpl.json | `wails.json` template file | +| ファイル名 / ディレクトリ名 | 説明 | +| --------------- | ----------------------- | +| NEXTSTEPS.md | テンプレートを完成させる手順を記した説明 | +| README.md | テンプレートとともに公開されるREADME | +| app.tmpl.go | `app.go`のテンプレートファイル | +| frontend/ | フロントエンドアセットを含むディレクトリ | +| go.mod.tmpl | `go.mod`のテンプレートファイル | +| main.tmpl.go | `main.go`のテンプレートファイル | +| template.json | テンプレートのメタデータ | +| wails.tmpl.json | `wails.json`のテンプレートファイル | -At this point it is advisable to follow the steps in `NEXTSTEPS.md`. +このあとは、`NEXTSTEPS.md`に記述されている手順に従うことを推奨します。 -## Creating a Template from an Existing Project +## 既存プロジェクトからのテンプレート作成 -It's possible to create a template from an existing frontend project by passing the path to the project when generating the template. We will now walk through how to create a Vue 3 template: +テンプレートの生成時にプロジェクトへのパスを渡すことで、既存のフロントエンドプロジェクトから、テンプレートを作成することができます。 ここでは、Vue3テンプレートの作成方法を説明します: -- Install the vue cli: `npm install -g @vue/cli` -- Create the default project: `vue create vue3-base` - - Select `Default (Vue 3) ([Vue 3] babel, eslint)` -- After the project has been generated, run: +- Vue Cliをインストールする: `npm install -g @vue/cli` +- デフォルトのプロジェクトを作成する: `vue create vue3-base` + - その際、`Default (Vue 3) ([Vue 3] babel, eslint)`を選択します +- プロジェクトが作成されたあとに、次のコマンドを実行する: ```shell > wails generate template -name wails-vue3-template -frontend .\vue3-base\ @@ -71,11 +71,11 @@ Updating package-lock.json data... Renaming package-lock.json -> package-lock.tmpl.json... ``` -- The template may now be customised as specified in the `NEXTSTEPS.md` file -- Once the files are ready, it can be tested by running: `wails init -n my-vue3-project -t .\wails-vue3-template\` -- To test the new project, run: `cd my-vue3-project` then `wails build` -- Once the project has compiled, run it: `.\build\bin\my-vue3-project.exe` -- You should have a fully functioning Vue3 application: +- `NEXTSTEPS.md`ファイルに記述されているように、テンプレートをカスタマイズする +- ファイルの準備ができたら、次のコマンドを実行してテストする: `wails init -n my-vue3-project -t .\wails-vue3-template\` +- 新しいプロジェクトの動作をテストするために、次のコマンドを実行する: `cd my-vue3-project`および`wails build` +- プロジェクトがコンパイルされたら、実行する: `.\build\bin\my-vue3-project.exe` +- Vue3アプリケーションが完全に動作していることを確認する ```mdx-code-block
@@ -86,12 +86,12 @@ Renaming package-lock.json -> package-lock.tmpl.json...
``` -## Publishing Templates +## テンプレートの公開 -Publishing a template is simply pushing the files to GitHub. The following best practice is encouraged: +テンプレートを公開するためにすることは、ファイルをGitHubにプッシュすることだけです。 以下のベストプラクティスを実施することを推奨します: -- Remove any unwanted files and directories (such as `.git`) from your frontend directory -- Ensure that `template.json` is complete, especially `helpurl` -- Push the files to GitHub -- Create a PR on the [Community Templates](../community/templates.mdx) page -- Announce the template on the [Template Announcement](https://github.com/wailsapp/wails/discussions/825) discussion board +- 不要なファイルやディレクトリ(`.git`など)をフロントエンドディレクトリから削除する +- `template.json`がきちんと記述されていること、とくに`helpurl`が記述されていることを確認する +- ファイルをGitHubにプッシュする +- [コミュニティのテンプレート](../community/templates.mdx)ページにプルリクエストを作成する +- [Template Announcement](https://github.com/wailsapp/wails/discussions/825)のディスカッションボードでテンプレートをアナウンスする diff --git a/website/i18n/ja/docusaurus-plugin-content-docs/current/guides/troubleshooting.mdx b/website/i18n/ja/docusaurus-plugin-content-docs/current/guides/troubleshooting.mdx index 21478d97f..a94e213cc 100644 --- a/website/i18n/ja/docusaurus-plugin-content-docs/current/guides/troubleshooting.mdx +++ b/website/i18n/ja/docusaurus-plugin-content-docs/current/guides/troubleshooting.mdx @@ -1,25 +1,25 @@ # トラブルシューティング -An assortment of troubleshooting tips. +このページは、トラブルシューティングを手助けするヒント集です。 ## `wails`コマンドが見つからないのですが? `wails`コマンドが見つからないとシステムに怒られた場合は、Goが、公式のGoインストール手順に従って導入されているかを確認してください。 コマンドが見つからないほとんどの理由は、あなたのホームディレクトリ配下にある`go/bin`ディレクトリのパスが、`PATH`環境変数に含まれていないからです。 また、インストールによって行われた環境変更を反映させるために、もともと開いていたコマンドプロンプト(ターミナル)がある場合はそれらをいったん閉じて、再度開きなおしてください。 -## My application is displaying a white/blank screen +## アプリケーションがホワイト/ブラックスクリーン表示になってしまいます -Check that your application includes the assets from the correct directory. In your `main.go` file, you will have something similar to the following code: +アプリケーション内で、正しいディレクトリでアセットが指定されていることを確認してください。 `main.go`ファイル内には、以下のようなコードが存在します: ```go //go:embed all:frontend/dist var assets embed.FS ``` -Check that `frontend/dist` contains your application assets. +また、`frontend/dist`ディレクトリ内に、アプリケーションアセットがきちんと含まれているか確認してください。 ### Mac -If this happens on Mac, try adding the following to your `Info.plist`: +この事象がMacで発生した場合は、`Info.plist`に以下の記述を追加してみてください: ```xml NSAppTransportSecurity @@ -29,11 +29,11 @@ If this happens on Mac, try adding the following to your `Info.plist`: ``` -Reference: https://github.com/wailsapp/wails/issues/1504#issuecomment-1174317433 +参考: https://github.com/wailsapp/wails/issues/1504#issuecomment-1174317433 -## Mac application not valid +## Macのアプリケーションが無効になっています -If your built application looks like this in finder: +ビルドしたアプリケーションが次のように表示される場合: ```mdx-code-block

@@ -45,11 +45,11 @@ If your built application looks like this in finder:

``` -it's likely that your application's `info.plist` is invalid. Update the file in `build/.app/Contents/info.plist` and check if the data is valid, EG check the binary name is correct. To persist the changes, copy the file back to the `build/darwin` directory. +アプリケーションの`info.plist`が無効である可能性があります。 `build/.app/Contents/info.plist`ファイルを更新し、データが有効かどうかを確認します。たとえば、バイナリ名が正しいかどうかを確認してください。 変更を反映するには、ファイルを`build/darwin`ディレクトリにコピーします。 -## Cannot call backend method from frontend with variadic arguments +## 可変長引数を持つバックエンドメソッドをフロントエンドから呼び出せません -If you have a backend method defined with variadic parameters, eg: +次のように、可変長引数を持つバックエンドメソッドが定義されている場合: ```go func (a *App) TestFunc(msg string, args ...interface{}) error { @@ -57,7 +57,7 @@ func (a *App) TestFunc(msg string, args ...interface{}) error { } ``` -calling this method from the frontend like this will fail: +このメソッドを、次のようにフロントエンドから呼び出すと失敗します: ```js var msg = "Hello: "; @@ -71,7 +71,7 @@ window.go.main.App.TestFunc(msg, ...args) }); ``` -Workaround: +回避方法: ```js var msg = "Hello "; @@ -86,32 +86,32 @@ window.go.main.App.TestFunc(msg, args) }); ``` -Credit: https://github.com/wailsapp/wails/issues/1186 +出典: https://github.com/wailsapp/wails/issues/1186 -## I'm having getting proxy errors when trying to install Wails +## Wailsのインストール時にプロキシエラーが発生します -If you are getting errors like this: +次のようなエラーが発生する場合: ``` "https://proxy.golang.org/github.com/wailsapp/wails/cmd/wails/@v/list": dial tcp 172.217.163.49:443: connectex: A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond. ``` -it's probably because the official Go Proxy is being blocked (Users in China have reported this). The solution is to set up the proxy manually, eg: +おそらく、公式のGo Proxyがブロックされています (中国のユーザより報告されています)。 解決するには、次のように、プロキシを手動で設定します: ``` go env -w GO111MODULE=on go env -w GOPROXY=https://goproxy.cn,direct ``` -Source: https://github.com/wailsapp/wails/issues/1233 +出典: https://github.com/wailsapp/wails/issues/1233 -## The generated TypeScript doesn't have the correct types +## 生成されたTypeScriptの型定義が正しくありません -Sometimes the generated TypeScript doesn't have the correct types. To mitigate this, it is possible to specify what types should be generated using the `ts_type` struct tag. For more details, please read [this](https://github.com/tkrajina/typescriptify-golang-structs#custom-types). +場合によっては、生成されるTypeScriptの型定義が誤っていることがあります。 この事象を軽減させるために、`ts_type`という構造体のタグを使用して、生成する型を指定することができます。 詳しくは、[こちら](https://github.com/tkrajina/typescriptify-golang-structs#custom-types)をご覧ください。 -## When I navigate away from `index.html`, I am unable to call methods on the frontend +## `index.html`から移動するとフロントエンド上でメソッドを呼び出すことができません -If you navigate away from `index.html` to a new html file, the context will be lost. This can be fixed by adding the following imports to the `` section of any new page you navigate to: +`index.html`から新しいhtmlファイルへ遷移すると、コンテキスト情報は失われてしまいます。 この事象を修正するには、遷移先の新しいページの``セクションに、次のインポートコードを追加します: ```html @@ -120,17 +120,17 @@ If you navigate away from `index.html` to a new html file, the context will be l ``` -Source: https://github.com/wailsapp/wails/discussions/1512 +出典: https://github.com/wailsapp/wails/discussions/1512 -## I get `too many open files` errors on my Mac when I run `wails dev` +## Macで`wails dev`を実行すると`too many open files`エラーが発生します -By default, macOS will only allow you to open a maximum of 256 files. This can affect the `wails dev` command. This limit can be increased by running: `ulimit -n 1024` in the terminal. +デフォルトでは、macOSは最大で256個のファイルしか開くことができません。 この制限により、`wails dev`コマンド実行時に影響が発生する場合があります。 この制限は、ターミナルで次のようなコマンドを実行することで、緩和することができます: `ulimit -n 1024`。 -FSNotify is [looking to move to Apple's fsevents](https://github.com/fsnotify/fsnotify/issues/11) for Mac. If this isn't completed soon, we will create our own implementation, tracked [here](https://github.com/wailsapp/wails/issues/1733). +FSNotifyは、Macのために、[Appleのfseventsへの移行を検討しています](https://github.com/fsnotify/fsnotify/issues/11)。 この移行が完了しない間は、[こちら](https://github.com/wailsapp/wails/issues/1733)で言及されているように、独自で実装を行います。 -## My Mac app gives me weird compilation errors +## Macアプリで不可解なコンパイルエラーが発生します -A few users have reported seeing compilation errors such as the following: +一部のユーザより、次のようなコンパイルエラーが発生することがあるという報告を受けています: ```shell # github.com/wailsapp/wails/v2/internal/frontend/desktop/darwin @@ -143,20 +143,24 @@ In file included from /Library/Developer/CommandLineTools/SDKs/MacOSX12.1.sdk/Sy #define NS_FORMAT_ARGUMENT(A) __attribute__ ((format_arg(A))) ``` -This is _normally_ due to a mismatch with the OS version you are running and the version of the XCode Command Line Tools installed. If you see an error like this, try upgrading your XCode Command Line Tools to the latest version. +これは_一般的に_、実行されているOSのバージョンと、インストールされているXCodeコマンドラインツールのバージョンが不一致であることが原因です。 このようなエラーが発生した場合は、XCodeコマンドラインツールを最新バージョンに更新してみてください。 -If reinstalling Xcode Command Tools still fails, you can check the path where the toolkit is located using: +XCodeコマンドラインツールの再インストールが引き続き失敗する場合は、次のコマンドを使用して、ツールキットがどこに配置されているかを確認できます: `xcode-select -p` -If `/Applications/Xcode.app/Contents/Developer` is displayed, run `sudo xcode-select --switch /Library/Developer/CommandLineTools` +`/Applications/Xcode.app/Contents/Developer`と表示された場合、`sudo xcode-select --switch /Library/Developer/CommandLineTools`というコマンドを実行してください。 -Sources: https://github.com/wailsapp/wails/issues/1806 and https://github.com/wailsapp/wails/issues/1140#issuecomment-1290446496 +出典: https://github.com/wailsapp/wails/issues/1806 および https://github.com/wailsapp/wails/issues/1140#issuecomment-1290446496 -- ## Cannot start service: Host version "x.x.x does not match binary version "x.x.x" -It's preferable to add `frontend/node_modules` and `frontend/package-lock.json` to your `.gitignore`. Otherwise when opening your repository on another machine that may have different versions of Node installed, you may not be able to run your application. +`frontend/node_modules`と`frontend/package-lock.json`を`.gitignore`に追加することをお勧めします。 そうしないと、異なるバージョンのNodeがインストールされている別のマシンでリポジトリを開いた際に、アプリケーションが実行できなくなる場合があります。 -If this does happen, simply delete `frontend/node_modules` and `frontend/package-lock.json` and run your `wails build` or `wails dev` command again. \ No newline at end of file +この事象が発生した場合は、単純に`frontend/node_modules`と`frontend/package-lock.json`を削除し、`wails build`コマンドおよび`wails dev`コマンドを再実行してください。 + +## ビルドプロセスが"Generating bindings"で停止します + +バインディングの生成プロセスは、アプリケーションを特別なモードで実行します。 アプリケーションに、意図に有無にかかわらず無限ループ(`wails.Run()`のあとに終了されないコード)が含まれている場合、バインディングの生成の段階でビルドプロセスが停止する可能性があります。 コードが正しく終了していることを確認してください。 diff --git a/website/i18n/ja/docusaurus-plugin-content-docs/current/guides/vscode.mdx b/website/i18n/ja/docusaurus-plugin-content-docs/current/guides/vscode.mdx index ed258656d..86b7c16a4 100644 --- a/website/i18n/ja/docusaurus-plugin-content-docs/current/guides/vscode.mdx +++ b/website/i18n/ja/docusaurus-plugin-content-docs/current/guides/vscode.mdx @@ -1,15 +1,15 @@ # Visual Studio Code -This page is for miscellaneous tips and tricks when using Visual Studio Code with Wails. +このページでは、Wailsでの開発でVisual Studio Codeを使用する際のさまざまなヒントやコツをご紹介します。 -## Vetur Configuration +## Veturの構成設定 -Many thanks to [@Lyimmi](https://github.com/Lyimmi) for this tip. Originally posted [here](https://github.com/wailsapp/wails/issues/1791#issuecomment-1228158349). +このヒントを提供してくれた[@Lyimmi](https://github.com/Lyimmi)に感謝します。 このヒントは[こちら](https://github.com/wailsapp/wails/issues/1791#issuecomment-1228158349)に投稿されたものです。 -Vetur is a popular plugin for Visual Studio Code that provides syntax highlighting and code completion for Vue projects. When loading a Wails project in VSCode, Vetur will throw an error as it is expecting to find the frontend project in the root directory. To fix this, you can do the following: +Veturは、Vueプロジェクトのシンタックスハイライトおよびコード補完を提供してくれる、Visual Studio Codeでのポピュラーな拡張機能です。 VSCodeでWailsのプロジェクトを読み込むと、Veturはルートディレクトリでフロントエンドのプロジェクトを見つけようとするため、エラーが発生します。 これを解消するためには、次の手順を実施します: -Create a file named `vetur.config.js` in the project's root. +プロジェクトのルートディレクトリに、`vetur.config.js`という名前のファイルを作成します。 ```javascript // vetur.config.js @@ -56,7 +56,7 @@ module.exports = { } ``` -Next, configure `frontend/tsconfig.json`: +次に、`frontend/tsconfig.json`の構成を修正します: ```javascript { @@ -79,4 +79,4 @@ Next, configure `frontend/tsconfig.json`: ] } ``` -This should enable you to now use Vetur as expected. +以上により、Veturを期待どおりに使用できるようになります。 diff --git a/website/i18n/ja/docusaurus-plugin-content-docs/current/guides/windows-installer.mdx b/website/i18n/ja/docusaurus-plugin-content-docs/current/guides/windows-installer.mdx index 88a1698db..3e3ae9b5e 100644 --- a/website/i18n/ja/docusaurus-plugin-content-docs/current/guides/windows-installer.mdx +++ b/website/i18n/ja/docusaurus-plugin-content-docs/current/guides/windows-installer.mdx @@ -1,4 +1,4 @@ -# NSIS installer +# NSISインストーラ ```mdx-code-block

@@ -10,33 +10,33 @@

``` -Wails supports generating Windows installers using the [NSIS installer](https://nsis.sourceforge.io/). +Wailsでは、[NSISインストーラ](https://nsis.sourceforge.io/)を使用したWindowsインストーラの生成をサポートしています。 -## Installing NSIS +## NSISのインストール ### Windows -The installer is available on the [NSIS Download](https://nsis.sourceforge.io/Download) page. +インストーラは、[NSISダウンロード](https://nsis.sourceforge.io/Download)ページから入手できます。 -If you use the chocolatey package manager, run the following script: +Chocolateyパッケージマネージャを使用している場合は、次のスクリプトを実行することでインストールできます: ``` choco install nsis ``` -If you install NSIS manually, you need to add the _Bin_ folder, which contains `makensis.exe`, in your NSIS installation to your path. [Here](https://www.architectryan.com/2018/03/17/add-to-the-path-on-windows-10/) is a good tutorial on how to add to path on Windows. +NSISを手動でインストールする場合、NSISインストール時に作成される`makensis.exe`ファイルが含まれた_Bin_フォルダを、パスに追加する必要があります。 Windows上でパスを追加する方法については、[こちら](https://www.architectryan.com/2018/03/17/add-to-the-path-on-windows-10/)の優れたチュートリアルをご覧ください。 ### Linux -The `nsis` package should be available through your distribution's package manager. +`nsis`パッケージは、ディストリビューションのパッケージマネージャから入手できます。 ### MacOS -NSIS is available to install through homebrew: `brew install nsis`. +NSISは、homebrew経由でインストールできます: `brew install nsis`。 -## Generating the installer +## インストーラの生成 -When a new project is created, Wails generates the NSIS configuration files in `build/windows/installer`. The config data is read from `installer/info.json` and that is configured to use the project's `wails.json` Info section: +新しくプロジェクトが作成されると、Wailsは、`build/windows/installer`内に、NSIS構成ファイルを生成します。 構成データは`installer/info.json`から読み込まれますが、当該データはプロジェクトの`wails.json`のInfo§の情報を使用するように設定されています: ```json // ... @@ -49,10 +49,10 @@ When a new project is created, Wails generates the NSIS configuration files in ` }, ``` -To generate an installer for your application, use the `-nsis` flag with `wails build`: +アプリケーションのインストーラを生成するには、`wails build`コマンド実行時に、`-nsis`フラグを使用します: ``` wails build -nsis ``` -The installer will now be available in the `build/bin` directory. +これにより、`build/bin`ディレクトリにインストーラが生成されます。 diff --git a/website/i18n/ja/docusaurus-plugin-content-docs/current/guides/windows.mdx b/website/i18n/ja/docusaurus-plugin-content-docs/current/guides/windows.mdx index 821808c0b..0b47b1529 100644 --- a/website/i18n/ja/docusaurus-plugin-content-docs/current/guides/windows.mdx +++ b/website/i18n/ja/docusaurus-plugin-content-docs/current/guides/windows.mdx @@ -1,12 +1,12 @@ # Windows -This page has miscellaneous guides related to developing Wails applications for Windows. +このページでは、Windows向けのWailsアプリケーション開発に関する、様々なガイドを掲載しています。 -## Handling the WebView2 Runtime Dependency +## WebView2ランタイム依存関係のハンドリング -Wails applications built for Windows have a runtime requirement on the Microsoft [WebView2 Runtime](https://developer.microsoft.com/en-us/microsoft-edge/webview2/). Windows 11 will have this installed by default, but some machines won't. Wails offers an easy approach to dealing with this dependency. +Windows用にビルドされたWailsアプリケーションは、Microsoft [WebView2ランタイム](https://developer.microsoft.com/en-us/microsoft-edge/webview2/)がランタイム要件となっています。 Windows 11ではデフォルトでこのランタイムがインストールされていますが、一部のマシンではインストールされていません。 Wailsでは、この依存関係に対処するための簡単なアプローチを提供しています。 -By using the `-webview2` flag when building, you can decide what your application will do when a suitable runtime is not detected (including if the installed runtime is too old). The four options are: +ビルド時に`-webview2`フラグを使用することで、アプリ起動時に適切なランタイムが検出されない場合(インストールされているランタイムが古すぎる場合を含む) に、アプリケーションがどのように動作するかを指定できます。 次の4つのオプションがあります: 1. Download 2. Embed @@ -15,25 +15,25 @@ By using the `-webview2` flag when building, you can decide what your applicatio ### Download -This option will prompt the user that no suitable runtime has been found and then offer to download and run the official bootstrapper from Microsoft's WebView2 site. If the user proceeds, the official bootstrapper will be downloaded and run. +このオプションでは、適切なランタイムが見つからない旨をユーザに知らせ、MicrosoftのWebView2のサイトからダウンロードされる公式のブートストラッパを実行する提案をします。 ユーザが続行を選択した場合、公式のブートストラッパがダウンロードおよび実行されます。 ### Embed -This option embeds the official bootstrapper within the application. If no suitable runtime has been found, the application will offer to run the bootstrapper. This adds ~150k to the binary size. +このオプションでは、アプリケーション内に公式のブートストラッパの埋め込みます。 適切なランタイムが見つからない場合、アプリケーションはブートストラッパの実行を提案します。 これにより、バイナリサイズが150k程度増えます。 ### Browser -This option will prompt the user that no suitable runtime has been found and then offer to open a browser to the official WebView2 page where the bootstrapper can be downloaded and installed. The application will then exit, leaving the installation up to the user. +このオプションでは、適切なランタイムが見つからない旨をユーザに知らせ、ブートストラッパをダウンロードしてインストールすることのできるWebView2の公式ページをブラウザで開く提案をします。 続行した場合、アプリケーションは終了し、インストールをユーザに委ねます。 ### Error -If no suitable runtime is found, an error is given to the user and no further action taken. +このオプションでは、適切なランタイムが見つからない場合、ユーザにエラーが表示され、それ以上何の処理も実行しません。 -## Fixed version runtime +## フィックスドバージョンランタイム -Another way of dealing with webview2 dependency is shipping it yourself. You can download [fixed version runtime](https://developer.microsoft.com/microsoft-edge/webview2/#download-section) and bundle or download it with your application. +WebView2の依存関係に対処するための別手段として、自身でランタイムを運ぶという方法が挙げられます。 [フィックスドバージョンランタイム](https://developer.microsoft.com/microsoft-edge/webview2/#download-section)をダウンロードしてバンドルするか、アプリケーション内でランタイムをダウンロードするようにします。 -Also, you should specify path to fixed version of webview2 runtime in the `windows.Options` structure when launching wails. +また、Wailsの起動時に`windows.Options`において、フィックスドバージョンWebView2ランタイムのパスを指定する必要があります。 ```go wails.Run(&options.App{ @@ -43,11 +43,11 @@ Also, you should specify path to fixed version of webview2 runtime in the `windo }) ``` -Note: When `WebviewBrowserPath` is specified, `error` strategy will be forced in case of minimal required version mismatch or invalid path to a runtime. +注意: `WebviewBrowserPath`が指定されている場合、必要な最低バージョンを満たしていなかったり、ランタイムへのパスが無効であったりすると、強制的に`error`オプションの挙動となります。 -## Spawning other programs +## 他のプログラムの起動 -When spawning other programs, such as scripts, you will see the window appear on the screen. To hide the window, you can use the following code: +スクリプトなどの他のプログラムを起動すると、当該プログラムのウィンドウが画面に表示されます。 このウィンドウを表示させたくない場合は、次のコードを使用してください: ```go cmd := exec.Command("your_script.exe") @@ -58,4 +58,4 @@ cmd.SysProcAttr = &syscall.SysProcAttr{ cmd.Start() ``` -Solution provided by [sithembiso](https://github.com/sithembiso) on the [discussions board](https://github.com/wailsapp/wails/discussions/1734#discussioncomment-3386172). +この解決策は、[ディスカッションボード](https://github.com/wailsapp/wails/discussions/1734#discussioncomment-3386172)内で[sithembiso](https://github.com/sithembiso)により示されました。 diff --git a/website/i18n/ja/docusaurus-plugin-content-docs/current/howdoesitwork.mdx b/website/i18n/ja/docusaurus-plugin-content-docs/current/howdoesitwork.mdx index 80f5a22c4..00fe1d68b 100644 --- a/website/i18n/ja/docusaurus-plugin-content-docs/current/howdoesitwork.mdx +++ b/website/i18n/ja/docusaurus-plugin-content-docs/current/howdoesitwork.mdx @@ -117,7 +117,7 @@ Wailsで構造体を正しくバインドするためには、構造体の*イ 下記のコードでは、新しく`App`インスタンスを作成し、`wails.Run`関数の`Bind`オプションの中で、そのインスタンスを追加しています: -```go {16,24} title="main.go" +```go {17,27} title="main.go" package main import ( @@ -164,7 +164,7 @@ func (a *App) Greet(name string) string { 構造体は、好きな数だけバインドできます。 `Bind`には、構造体のインスタンスを渡すようにしてください: -```go {8-10} +```go {10-12} //... err := wails.Run(&options.App{ Title: "Basic Demo", @@ -236,7 +236,7 @@ export function Greet(arg1: string): Promise; :::info 備考 -TypeScript型定義を正しく自動生成するために、構造体のフィールドには、有効な`json`タグを*必ず*付与するようにしてください。 +TypeScript型定義を正しく自動生成するために、構造体のフィールドには、有効な`json`タグを_必ず_付与するようにしてください。 ネストされた匿名構造体(無名構造体) は、現時点ではサポートされていません。 diff --git a/website/i18n/ja/docusaurus-plugin-content-docs/current/reference/cli.mdx b/website/i18n/ja/docusaurus-plugin-content-docs/current/reference/cli.mdx index 334fadc55..9c7a29fd4 100644 --- a/website/i18n/ja/docusaurus-plugin-content-docs/current/reference/cli.mdx +++ b/website/i18n/ja/docusaurus-plugin-content-docs/current/reference/cli.mdx @@ -71,6 +71,7 @@ WailsではGitHubでホストされているリモートテンプレートをサ | -windowsconsole | Windiws向けビルドでコンソールウィンドウを維持する | | | -obfuscate | [garble](https://github.com/burrowers/garble)を使用してアプリケーションを難読化する | false | | -garbleargs | garbleへ渡す引数 | `-literals -tiny -seed=random` | +| -nosyncgomod | go.modとWailsのバージョンを同期させない | false | `webview2`フラグの詳細については、[Windows](../guides/windows.mdx)ガイドをご覧ください。 @@ -80,8 +81,10 @@ WailsではGitHubでホストされているリモートテンプレートをサ `wails build -clean -o myproject.exe` -:::Info -Macでは、アプリケーションは`Info.dev.plist`ではなく`Info.plist`でバンドルされます。 +:::info + +Macの場合、`Info.dev.plist`ではなく`Info.plist`がアプリケーションにバンドルされます。 + ::: :::info AppleシリコンでのUPX @@ -184,6 +187,9 @@ Your system is ready for Wails development! | -save | 指定された`assetdir`、`reloaddirs`、`wailsjsdir`、`debounce`、`devserver`、`frontenddevserverurl`フラグの値を、`wails.json`へ保存し、次回以降のデフォルト値にする | | | -race | Goのrace detectorを使用してビルドする | false | | -s | フロントエンドのビルドをスキップ | false | +| -nosyncgomod | go.modとWailsのバージョンを同期させない | false | + + 例: diff --git a/website/i18n/ja/docusaurus-plugin-content-docs/current/reference/options.mdx b/website/i18n/ja/docusaurus-plugin-content-docs/current/reference/options.mdx index bf305de9f..7d75d7138 100644 --- a/website/i18n/ja/docusaurus-plugin-content-docs/current/reference/options.mdx +++ b/website/i18n/ja/docusaurus-plugin-content-docs/current/reference/options.mdx @@ -50,6 +50,7 @@ func main() { OnBeforeClose: app.beforeClose, CSSDragProperty: "--wails-draggable", CSSDragValue: "drag", + EnableFraudulentWebsiteDetection: false, ZoomFactor: 1.0, IsZoomControlEnabled: false, Bind: []interface{}{ @@ -77,7 +78,8 @@ func main() { // OnSuspendはWindowsが省電力モードに移行した場合に呼び出されます OnSuspend func() // OnResumeはWindowsが省電力モードから復帰した場合に呼び出されます - OnResume func() + OnResume func(), + WebviewGpuDisabled: false, }, Mac: &mac.Options{ TitleBar: &mac.TitleBar{ @@ -100,6 +102,7 @@ func main() { Linux: &linux.Options{ Icon: icon, WindowIsTranslucent: false, + WebviewGpuPolicy: linux.WebviewGpuPolicyAlways, }, Debug: options.Debug{ OpenInspectorOnStartup: false, @@ -232,11 +235,11 @@ AssetServerの固有オプションを定義します。 静的なアセット | DELETE | ✅ | ✅ | ✅ [^1] | | Request Headers | ✅ | ✅ | ✅ [^1] | | Request Body | ✅ | ✅ | ❌ | -| Request Body Streaming | ❌ | ❌ | ❌ | +| Request Body Streaming | ✅ | ✅ | ❌ | | Response StatusCodes | ✅ | ✅ | ✅ [^1] | | Response Headers | ✅ | ✅ | ✅ [^1] | | Response Body | ✅ | ✅ | ✅ | -| Response Body Streaming | ❌ | ❌ | ✅ | +| Response Body Streaming | ❌ | ✅ | ✅ | | WebSockets | ❌ | ❌ | ❌ | | HTTP Redirects 30x | ✅ | ❌ | ❌ | @@ -356,6 +359,12 @@ func (b *App) beforeClose(ctx context.Context) (prevent bool) { 名前: CSSDragValue
データ型: `string` +### EnableFraudulentWebsiteDetection + +EnableFraudulentWebsiteDetectionは、マルウェアやフィッシング詐欺などの不正コンテンツのスキャンサービスを有効にします。 これらのサービスは、ナビゲートされたURLやその他コンテンツ情報を、アプリからAppleおよびMicrosoftのクラウドサービスに送信する可能性があります。 + +名前: EnableFraudulentWebsiteDetection
データ型: `bool` + ### ZoomFactor 名前: ZoomFactor
データ型: `float64` @@ -542,6 +551,12 @@ Windowsがローパワーモード(サスペンド/休止状態) から復帰し 名前: OnResume
データ型: `func()` +#### WebviewGpuIsDisabled + +`true`に設定すると、webviewのGPUハードウェアアクセラレーションが無効化されます。 + +名前: WebviewGpuIsDisabled
データ型: `bool` + ### Mac [Mac固有のオプション](#mac)を定義します。 @@ -722,6 +737,20 @@ func main() { 名前: WindowIsTranslucent
データ型: `bool` +#### WebviewGpuPolicy + +このオプションでは、webviewのハードウェアアクセラレーションポリシーを指定することができます。 + +名前: WebviewGpuPolicy
データ型: [`options.WebviewGpuPolicy`](#webviewgpupolicy-type)
デフォルト値: `WebviewGpuPolicyAlways` + +##### WebviewGpuPolicy型 + +| 値 | 説明 | +| ------------------------ | --------------------------------------------- | +| WebviewGpuPolicyAlways | ハードウェアアクセラレーションを常に有効にする | +| WebviewGpuPolicyOnDemand | Webコンテンツからの要求に応じて、ハードウェアアクセラレーションの有効/無効を切り替える | +| WebviewGpuPolicyNever | ハードウェアアクセラレーションを常に無効にする | + ### Debug デバッグビルド時に適用される[デバッグ固有のオプション](#Debug)を定義します。 diff --git a/website/i18n/ja/docusaurus-plugin-content-docs/current/reference/runtime/clipboard.mdx b/website/i18n/ja/docusaurus-plugin-content-docs/current/reference/runtime/clipboard.mdx new file mode 100644 index 000000000..9e632294b --- /dev/null +++ b/website/i18n/ja/docusaurus-plugin-content-docs/current/reference/runtime/clipboard.mdx @@ -0,0 +1,23 @@ +--- +sidebar_position: 8 +--- + +# クリップボード + +ランタイム機能の一部として、オペレーティングシステムのクリップボードへのアクセスを提供します。
現在は、テキストの処理のみに対応しています。 + +### ClipboardGetText + +このメソッドは、クリップボードに現在保存されているテキストを読み込みます。 + +Go: `ClipboardGetText(ctx context.Context) (string, error)`
返り値: 文字列(クリップボードが空の場合は、空文字)またはエラー。 + +JS: `ClipboardGetText(): Promise`
返り値: 文字列を待機するPromise(クリップボードが空の場合は、空文字)。 + +### ClipboardSetText + +このメソッドは、クリップボードにテキストを書き込みます。 + +Go: `ClipboardSetText(ctx context.Context, text string) error`
返り値: anyの場合はエラー。 + +JS: `ClipboardSetText(text: string): Promise`
返り値: クリップボードにテキストが正常に書き込まれた場合はtrue、そうでない場合はfalseを返すようなPromise。 diff --git a/website/i18n/ja/docusaurus-plugin-content-docs/current/reference/runtime/events.mdx b/website/i18n/ja/docusaurus-plugin-content-docs/current/reference/runtime/events.mdx index 924456a19..ac4f40eba 100644 --- a/website/i18n/ja/docusaurus-plugin-content-docs/current/reference/runtime/events.mdx +++ b/website/i18n/ja/docusaurus-plugin-content-docs/current/reference/runtime/events.mdx @@ -34,4 +34,4 @@ Go: `EventsOnMultiple(ctx context.Context, eventName string, callback func(optio このメソッドは、指定されたイベントを発行します。 必要に応じて、イベント発行時にデータを渡すこともできます。 このメソッドによって、任意のイベントリスナーをトリガーさせることができます。 -Go: `EventsEmit(ctx context.Context, eventName string, optionalData ...interface{})`
JS: `EventsEmit(ctx context, optionalData function(optionalData?: any))` +Go: `EventsEmit(ctx context.Context, eventName string, optionalData ...interface{})`
JS: `EventsEmit(eventName: string, ...optionalData: any)` diff --git a/website/i18n/ja/docusaurus-plugin-content-docs/current/reference/runtime/intro.mdx b/website/i18n/ja/docusaurus-plugin-content-docs/current/reference/runtime/intro.mdx index f28f99322..01e62ff1a 100644 --- a/website/i18n/ja/docusaurus-plugin-content-docs/current/reference/runtime/intro.mdx +++ b/website/i18n/ja/docusaurus-plugin-content-docs/current/reference/runtime/intro.mdx @@ -14,6 +14,7 @@ sidebar_position: 1 - [イベント](events.mdx) - [ブラウザ](browser.mdx) - [ログ](log.mdx) +- [クリップボード](clipboard.mdx) Goのランタイムは、`github.com/wailsapp/wails/v2/pkg/runtime`をインポートすることで利用できます。 このパッケージのすべてのメソッドは、1番目の引数でContextを渡す必要があります。 このContextは、[OnStartup](../options.mdx#onstartup)フック、または[OnDomReady](../options.mdx#ondomready)フックからあらかじめ取得しておいてください。 diff --git a/website/i18n/ja/docusaurus-plugin-content-docs/current/reference/runtime/window.mdx b/website/i18n/ja/docusaurus-plugin-content-docs/current/reference/runtime/window.mdx index b8c9a8ae5..869e1a221 100644 --- a/website/i18n/ja/docusaurus-plugin-content-docs/current/reference/runtime/window.mdx +++ b/website/i18n/ja/docusaurus-plugin-content-docs/current/reference/runtime/window.mdx @@ -200,7 +200,7 @@ Windowsの場合、0または255のアルファ値(A) のみがサポートさ Go: `WindowSetBackgroundColour(ctx context.Context, R, G, B, A uint8)`
JS: `WindowSetBackgroundColour(R, G, B, A)` -## TypeScript Object Definitions +## TypeScript型定義 ### Position diff --git a/website/i18n/ja/docusaurus-plugin-content-docs/current/tutorials/dogsapi.mdx b/website/i18n/ja/docusaurus-plugin-content-docs/current/tutorials/dogsapi.mdx index 60e7ab094..8422c83f7 100644 --- a/website/i18n/ja/docusaurus-plugin-content-docs/current/tutorials/dogsapi.mdx +++ b/website/i18n/ja/docusaurus-plugin-content-docs/current/tutorials/dogsapi.mdx @@ -2,7 +2,7 @@ sidebar_position: 20 --- -# Dogs API +# ドッグAPI ```mdx-code-block
@@ -17,25 +17,25 @@ sidebar_position: 20 :::note -このチュートリアルは[@tatadan](https://twitter.com/tatadan)の好意により提供されたもので、[Wails Examples Repository](https://github.com/tataDan/wails-v2-examples)の一部を構成しています。 +このチュートリアルは[@tatadan](https://twitter.com/tatadan)より提供されたもので、[Wails Examples Repository](https://github.com/tataDan/wails-v2-examples)の一部になります。 ::: -このチュートリアルでは、Web上から犬の写真を取得し、表示するアプリケーションを開発します。 +このチュートリアルでは、Webから犬の写真を取得して表示するためのアプリケーションを開発していきます。 -### プロジェクトを作成する +### プロジェクトの作成 -では、アプリケーションを作成しましょう。ターミナルで次のコマンドを入力します: `wails init -n dogs-api -t svelte` +アプリケーションを作成していきましょう。 ターミナルで次のように入力します: `wails init -n dogs-api -t svelte` -注: IDEサポートを追加したい場合は、オプションでこのコマンドの最後に`-ide vscode`または`ide goland`を追加することができます。 +注意: IDEサポートが欲しい場合は、コマンドの末尾に、`-ide vscode`オプションまたは`-ide goland`オプションを付与してください。 -では、cd `dogs-api`をして、プロジェクトファイルの編集を始めましょう。 +では、`cd dogs-api`で移動し、プロジェクトファイルの編集を始めましょう。 -### 未使用のコードを削除する +### 未使用コードの削除 -まず、使用しないことがわかっているいくつかの要素を削除することから始めます: +まず、使用しないと分かっているいくつかの要素を削除していきます: -- `app.go`を開き、以下の行を削除してください: +- `app.go`を開き、次の行を削除します: ```go // Greet returns a greeting for the given name @@ -49,9 +49,9 @@ func (a *App) Greet(name string) string { ### アプリケーションの作成 -では、新しいGoのコードを追加してみましょう。 +では、新しいGoコードを書いていきましょう。 -`app.go`の関数定義の前に、次の構造体宣言を追加します: +関数を定義する前に、`app.go`に下記の構造体の宣言を追加します: ```go type RandomImage struct { @@ -70,7 +70,7 @@ type ImagesByBreed struct { } ``` -以下の関数を`app.go`に追加します(既存の関数定義の後ろに追加するかもしれません): +下記の関数を`app.go`に追加します(おそらく既存の関数定義の後ろ側に追加することになります): ```go func (a *App) GetRandomImageUrl() string { @@ -149,9 +149,7 @@ import ( ) ``` -以下の行を`frontend/src/App.svelte`に追加します: - -```html +`frontend/src/App.svelte`に次の行を追加します: ```html @@ -240,8 +238,8 @@ import ( ### アプリケーションのテスト -バインディングを生成し、アプリケーションをテストするには、`wails dev`を実行します。 +バインディングを生成してアプリケーションをテストするには、`wails dev`コマンドを実行してください。 ### アプリケーションのコンパイル -アプリケーションを単一の、本番用のバイナリにコンパイルするには、`wails build`を実行します。 \ No newline at end of file +アプリケーションを本番用の単一バイナリにコンパイルするには、`wails build`コマンドを実行してください。 diff --git a/website/i18n/ja/docusaurus-plugin-content-docs/current/tutorials/helloworld.mdx b/website/i18n/ja/docusaurus-plugin-content-docs/current/tutorials/helloworld.mdx index f9411527a..5a669a61f 100644 --- a/website/i18n/ja/docusaurus-plugin-content-docs/current/tutorials/helloworld.mdx +++ b/website/i18n/ja/docusaurus-plugin-content-docs/current/tutorials/helloworld.mdx @@ -4,27 +4,27 @@ sidebar_position: 10 # Hello World -The aim of this tutorial is to get you up and running with the most basic application using Wails. You will be able to: +このチュートリアルの目的は、Wailsを使用して、最も基礎的なアプリケーションを起動および実行することです。 あなたは、次のことができるようになります: -- Create a new Wails application -- Build the application -- Run the application +- 新しいWailsアプリケーションを作成する +- アプリケーションをビルドする +- アプリケーションを実行する :::note -This tutorial uses Windows as the target platform. Output will vary slightly depending on your operating system. +このチュートリアルでは、Windowsをターゲットプラットフォームとして使用します。 出力される内容は、オペレーティングシステムによって多少異なります。 ::: -## Create a new Wails application +## 新しいWailsアプリケーションを作成する -To create a new Wails application using the default vanilla JS template, you need to run the following command: +デフォルトのバニラJSテンプレートを使用して、新しいWailsアプリケーションを作成するには、次のコマンドを実行します: ```bash wails init -n helloworld ``` -You should see something similar to the following: +すると、次のように表示されます: ``` Wails CLI v2.0.0 @@ -40,7 +40,7 @@ Template Support: https://wails.io Initialised project 'helloworld' in 232ms. ``` -This will create a new directory called `helloworld` in the current directory. In this directory, you will find a number of files: +これにより、カレントディレクトリに`helloworld`という新しいディレクトリが作成されます。 このディレクトリには、いくつかのファイルがあります: ``` build/ - Contains the build files + compiled application @@ -52,15 +52,15 @@ go.mod - The go module file go.sum - The go module checksum file ``` -## Build the application +## アプリケーションをビルドする -To build the application, change to the new `helloworld` project directory and run the following command: +アプリケーションをビルドするには、新しくできた`helloworld`プロジェクトディレクトリに移動し、次のコマンドを実行します: ```bash wails build ``` -You should see something like the following: +すると、次のように表示されます: ``` Wails CLI v2.0.0 @@ -86,11 +86,11 @@ Building target: windows/amd64 Built 'C:\Users\leaan\tutorial\helloworld\build\bin\helloworld.exe' in 10.616s. ``` -This has compiled the application and saved it in the `build/bin` directory. +これにより、アプリケーションがコンパイルされ、`build/bin`ディレクトリに保存されます。 -## Run the application +## アプリケーションを実行する -If we view the `build/bin` directory in Windows Explorer, we should see our project binary: +Windowsのエクスプローラで`build/bin`ディレクトリを閲覧すると、プロジェクトのバイナリファイルが存在するはずです: ```mdx-code-block
@@ -102,13 +102,13 @@ If we view the `build/bin` directory in Windows Explorer, we should see our proj
``` -We can run it by simply double-clicking the `helloworld.exe` file. +`helloworld.exe`ファイルをダブルクリックするだけで起動できます。 -On Mac, Wails generates a `helloworld.app` file which can be run by double-clicking it. +Macの場合、Wailsは`helloworld.app`ファイルを生成します。このファイルをダブルクリックすることで起動できます。 -On Linux, you can run the application using `./helloworld` from the `build/bin` directory. +Linuxの場合、`build/bin`ディレクトリ内の`./helloworld`を呼び出すことでアプリケーションを起動できます。 -You should see the application working as expected: +アプリケーションが期待したとおりに動作することでしょう: ```mdx-code-block
@@ -119,4 +119,4 @@ You should see the application working as expected: />

-``` \ No newline at end of file +``` diff --git a/website/i18n/ja/docusaurus-plugin-content-docs/version-v2.0.0-rc.1.json b/website/i18n/ja/docusaurus-plugin-content-docs/version-v2.0.0-rc.1.json deleted file mode 100644 index 1114bafc9..000000000 --- a/website/i18n/ja/docusaurus-plugin-content-docs/version-v2.0.0-rc.1.json +++ /dev/null @@ -1,38 +0,0 @@ -{ - "version.label": { - "message": "v2.0.0-rc.1", - "description": "The label for version v2.0.0-rc.1" - }, - "sidebar.docs.category.Getting Started": { - "message": "はじめよう", - "description": "The label for category Getting Started in sidebar docs" - }, - "sidebar.docs.category.Reference": { - "message": "リファレンス", - "description": "The label for category Reference in sidebar docs" - }, - "sidebar.docs.category.Runtime": { - "message": "ランタイム", - "description": "The label for category Runtime in sidebar docs" - }, - "sidebar.docs.category.Community": { - "message": "コミュニティ", - "description": "The label for category Community in sidebar docs" - }, - "sidebar.docs.category.Showcase": { - "message": "事例紹介", - "description": "The label for category Showcase in sidebar docs" - }, - "sidebar.docs.category.Guides": { - "message": "ガイド", - "description": "The label for category Guides in sidebar docs" - }, - "sidebar.docs.category.Tutorials": { - "message": "チュートリアル", - "description": "The label for category Tutorials in sidebar docs" - }, - "sidebar.docs.link.Contributing": { - "message": "コントリビューション", - "description": "The label for link Contributing in sidebar docs, linking to /community-guide#ways-of-contributing" - } -} diff --git a/website/i18n/ja/docusaurus-plugin-content-docs/version-v2.0.0.json b/website/i18n/ja/docusaurus-plugin-content-docs/version-v2.3.0.json similarity index 94% rename from website/i18n/ja/docusaurus-plugin-content-docs/version-v2.0.0.json rename to website/i18n/ja/docusaurus-plugin-content-docs/version-v2.3.0.json index 8e4f1d087..9cdc8078b 100644 --- a/website/i18n/ja/docusaurus-plugin-content-docs/version-v2.0.0.json +++ b/website/i18n/ja/docusaurus-plugin-content-docs/version-v2.3.0.json @@ -1,7 +1,7 @@ { "version.label": { - "message": "v2.0.0", - "description": "The label for version v2.0.0" + "message": "v2.3.0", + "description": "The label for version v2.3.0" }, "sidebar.docs.category.Getting Started": { "message": "はじめよう", diff --git a/website/i18n/ja/docusaurus-plugin-content-docs/version-v2.1.0.json b/website/i18n/ja/docusaurus-plugin-content-docs/version-v2.3.1.json similarity index 94% rename from website/i18n/ja/docusaurus-plugin-content-docs/version-v2.1.0.json rename to website/i18n/ja/docusaurus-plugin-content-docs/version-v2.3.1.json index bd54c8596..b45517144 100644 --- a/website/i18n/ja/docusaurus-plugin-content-docs/version-v2.1.0.json +++ b/website/i18n/ja/docusaurus-plugin-content-docs/version-v2.3.1.json @@ -1,7 +1,7 @@ { "version.label": { - "message": "v2.1.0", - "description": "The label for version v2.1.0" + "message": "v2.3.1", + "description": "The label for version v2.3.1" }, "sidebar.docs.category.Getting Started": { "message": "はじめよう", diff --git a/website/i18n/ja/docusaurus-plugin-content-docs/version-v2.2.0.json b/website/i18n/ja/docusaurus-plugin-content-docs/version-v2.4.0.json similarity index 94% rename from website/i18n/ja/docusaurus-plugin-content-docs/version-v2.2.0.json rename to website/i18n/ja/docusaurus-plugin-content-docs/version-v2.4.0.json index 4161c3d80..cd8804c8b 100644 --- a/website/i18n/ja/docusaurus-plugin-content-docs/version-v2.2.0.json +++ b/website/i18n/ja/docusaurus-plugin-content-docs/version-v2.4.0.json @@ -1,7 +1,7 @@ { "version.label": { - "message": "v2.2.0", - "description": "The label for version v2.2.0" + "message": "v2.4.0", + "description": "The label for version v2.4.0" }, "sidebar.docs.category.Getting Started": { "message": "はじめよう", diff --git a/website/i18n/ja/docusaurus-plugin-content-pages/changelog.mdx b/website/i18n/ja/docusaurus-plugin-content-pages/changelog.mdx index 6e58125a2..9dcc41b1b 100644 --- a/website/i18n/ja/docusaurus-plugin-content-pages/changelog.mdx +++ b/website/i18n/ja/docusaurus-plugin-content-pages/changelog.mdx @@ -13,6 +13,37 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), ## [Unreleased] +## v2.4.0 - 2022-03-08 + +### Added +- Added Webview GPU acceleration options for [Windows](/docs/reference/options#webviewgpuisdisabled) and [Linux](/docs/reference/options#webviewgpupolicy). Added by @Lyimmi in [PR](https://github.com/wailsapp/wails/pull/2266) +- Added `EnableFraudulentWebsiteDetection` option to opt-in to scan services for fraudulent content, such as malware or phishing attempts. Older releases had the scan services per default activated. Added by @stffabi in [PR](https://github.com/wailsapp/wails/pull/2269) +- Allow an [AssetServer Middleware](/docs/reference/options#middleware) to specify the `Content-Type` of a file served by the [Assets](/docs/reference/options#assets-1) `fs.FS`. Added by @stffabi in [PR](https://github.com/wailsapp/wails/pull/2286) +- The AssetServer now detects more mimetypes by extension, e.g. `.mjs`. Added by @stffabi in [PR](https://github.com/wailsapp/wails/pull/2391) + +### Changed +- Improved fullscreen mode for frameless window on Windows. Changed by @stffabi in [PR](https://github.com/wailsapp/wails/pull/2279), [PR](https://github.com/wailsapp/wails/pull/2288) and [PR](https://github.com/wailsapp/wails/pull/2299) +- On Windows unmaximising a window has no effect anymore when the window is in fullscreen mode, this makes it consistent with e.g. macOS. Changed by @stffabi in [PR](https://github.com/wailsapp/wails/pull/2279) +- Frameless resize now sets the cursor on documentElement, otherwise resizing cursor won't be shown outside of the body rectangle. Changed by @stffabi in [PR](https://github.com/wailsapp/wails/pull/2289) +- Improved the `--wails-draggable` experience to be more reactive. Changed by @stffabi in [PR](https://github.com/wailsapp/wails/pull/2302) +- NSIS template now installs the shortcuts for all users and not only for the current user. Changed by @stffabi in [PR](https://github.com/wailsapp/wails/pull/2373) + +### Fixed +- Fixed failing build hooks when `build/bin` was missing. Fixed by @Lyimmi in [PR](https://github.com/wailsapp/wails/pull/2273) +- Fixed fullscreen mode for frameless window on Windows to fully cover the taskbar when changing into fullscreen from maximised state. Fixed by @stffabi in [PR](https://github.com/wailsapp/wails/pull/2279) +- Fixed set window background colour on Windows when setting the colour via runtime. Fixed by @stffabi in [PR](https://github.com/wailsapp/wails/pull/2279) +- Fixed the showing of a white border around a fullscreen window when `DisableWindowIcon` is active on Windows. Fixed by @stffabi in [PR](https://github.com/wailsapp/wails/pull/2299) +- Fixed the sometimes lagging drag experience with `--wails-draggable` on Windows. Fixed by @stffabi in [PR](https://github.com/wailsapp/wails/pull/2302) +- Fixed applying the default arch to platform flag in wails cli. If only a `GOOS` has been supplied as platform flag e.g. `wails build --platform windows` the current architecture wasn't applied and the build failed. Fixed by @stffabi in [PR](https://github.com/wailsapp/wails/pull/2309) +- Fixed a segfault on opening the inspector on older macOS versions. Fixed by @stffabi in [PR](https://github.com/wailsapp/wails/pull/2397) +- Fixed the macos single architecture builds not respecting an output file name specified with the '-o' flag. Fixed by @gwynforthewyn in [PR](https://github.com/wailsapp/wails/pull/2358) +- Fixed `undo`/`redo` on macOS. Fixed by @stffabi in [PR](https://github.com/wailsapp/wails/pull/2430) +- Fixed `Events*` runtime functions in JavaScript not returning the function to cancel the watcher. Fixed by @zllovesuki in [PR](https://github.com/wailsapp/wails/pull/2434) +- Fixed AppOptions merging defaults when a custom logger is used. Fixed by @stffabi in [PR](https://github.com/wailsapp/wails/pull/2452) +- Fixed race condition and missing unlock of mutex in events handling. Fixed by @stffabi in [PR](https://github.com/wailsapp/wails/pull/2453) + +## v2.3.0 - 2022-12-29 + ### Added - Added `OpenInspectorOnStartup` to debug options to allow opening the WebInspector during startup of the application in debug mode. Added by @stffabi in [PR](https://github.com/wailsapp/wails/pull/2080) - On macOS `wails doctor` now also shows the version of Xcode installed. Added by @stffabi in [PR](https://github.com/wailsapp/wails/pull/2089) @@ -21,15 +52,36 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), - The `WindowSetAlwaysOnTop` method is now exposed in the JS runtime. Fixed by @gotid in [PR](https://github.com/wailsapp/wails/pull/2128) - The [AssetServer](/docs/reference/options#assetserver) now supports serving the index.html file when requesting a directory. Added by @stffabi in [PR](https://github.com/wailsapp/wails/pull/2110) - Added support for WebKit2GTK 2.36+ on Linux. This brings additional features for the [AssetServer](/docs/reference/options#assetserver), like support for HTTP methods and Headers. The app must be compiled with the Go build tag `webkit2_36` to activate support for this features. This also bumps the minimum requirement of WebKit2GTK to 2.36 for your app. Fixed by @stffabi in this [PR](https://github.com/wailsapp/wails/pull/2151) +- Added support for file input selection on macOS. Added by @stffabi in [PR](https://github.com/wailsapp/wails/pull/2209) +- Added support Request/Response streaming of the AssetServer on macOS. Added by @stffabi in [PR](https://github.com/wailsapp/wails/pull/2219) +- Added request path checks for the AssetServer. Added by @stffabi in [PR](https://github.com/wailsapp/wails/pull/2235) +- Added new App Store guide. Added by @achhabra2 in [PR](https://github.com/wailsapp/wails/pull/2142) +- Added extra libwebkit check for dnf package manager (required for latest Fedora). Fixed by @NullCode1337 in this [PR](https://github.com/wailsapp/wails/pull/2218) +- Added new `-nomodsync` flag to disable the automatic syncing of the `go.mod` file. Added by @leaanthony in [PR](https://github.com/wailsapp/wails/pull/2215) +- Added support for adding prefix and postfix text to generated Typescript classes. Added by @OlegGulevskyy in [PR](https://github.com/wailsapp/wails/pull/2101) +- Added reference to NSIS as optional dependency. Added by @acheong08 in [PR](https://github.com/wailsapp/wails/pull/2070) +- Added Korean translation for the website. Added by @cybertramp in [PR](https://github.com/wailsapp/wails/pull/2093) ### Fixed - The `noreload` flag in wails dev wasn't applied. Fixed by @stffabi in this [PR](https://github.com/wailsapp/wails/pull/2081) - `build/bin` folder was duplicating itself on each reload in `wails dev` mode. Fixed by @OlegGulevskyy in this [PR](https://github.com/wailsapp/wails/pull/2103) - Prevent a thin white line at the bottom of a frameless window on Windows. Fixed by @stffabi in this [PR](https://github.com/wailsapp/wails/pull/2111) - Better signal handling for Linux. Fixed by @leaanthony in this [PR](https://github.com/wailsapp/wails/pull/2152) +- Running the docs locally was broken due to mandatory crowdin token requirement. Fixed by @OlegGulevskyy in this [PR](https://github.com/wailsapp/wails/pull/2231) +- Generated typescript for Go functions that returned a single error was incorrect. Fixed by @ATenderholt in this [PR](https://github.com/wailsapp/wails/pull/2247) +- The right mouse event was not being raised correctly for Linux. Fixed by @leaanthony in this [PR](https://github.com/wailsapp/wails/pull/2190) +- Remove extra spaces in Wails version when querying `go.mod`. Fixed by @matholt in this [PR](https://github.com/wailsapp/wails/pull/2197) +- Fix go tests failure on Mac. Fixed by @avengerweb in this [PR](https://github.com/wailsapp/wails/pull/2187) +- Fix go test errors. Fixed by @misitebao & @avengerweb in [these](https://github.com/wailsapp/wails/pull/2169) [PRs](https://github.com/wailsapp/wails/pull/2187) +- Added `WindowSetAlwaysOnTop` to the JS runtime. Fixed by @gotid in [PR](https://github.com/wailsapp/wails/pull/2128) +- Fixed obfuscated flag typo in docs. Fixed by @ckilb in [PR](https://github.com/wailsapp/wails/pull/2102) +- Fixed React Hash Router link in docs. Fixed by @marvinhosea in [PR](https://github.com/wailsapp/wails/pull/2050) ### Changed - Improve error message if no `index.html` could be found in the assets and validate assetserver options. Changed by @stffabi in this [PR](https://github.com/wailsapp/wails/pull/2110) +- Promote the Go WebView2Loader from experimental to stable. This means now per default all Wails build use the new loader introduced with `v2.2.0`. The old loader remains usable with build tag `native_webview2loader` for the next few releases. Changed by @stffabi in this [PR](https://github.com/wailsapp/wails/pull/2199) +- Refactored CLI. Changed by @leaanthony in this [PR](https://github.com/wailsapp/wails/pull/2123) +- Remove unreachable code. Changed by @tmclane in this [PR](https://github.com/wailsapp/wails/pull/2182) ## v2.2.0 - 2022-11-09 diff --git a/website/i18n/ja/docusaurus-plugin-content-pages/coc.mdx b/website/i18n/ja/docusaurus-plugin-content-pages/coc.mdx index 22ffade50..15a37dfcf 100644 --- a/website/i18n/ja/docusaurus-plugin-content-pages/coc.mdx +++ b/website/i18n/ja/docusaurus-plugin-content-pages/coc.mdx @@ -50,7 +50,7 @@ **帰結**: コミュニティリーダーからの非公開の書面による警告。 違反の理由を明確にし、行動が不適切だった理由を説明します。 公の謝罪が要求される場合があります。 -### 2. Warning +### 2. 警告 **コミュニティへの影響**: 単一の出来事または一連の動作による違反。 diff --git a/website/i18n/ja/docusaurus-plugin-content-pages/community-guide.mdx b/website/i18n/ja/docusaurus-plugin-content-pages/community-guide.mdx index 3e986f229..8bc5a3e19 100644 --- a/website/i18n/ja/docusaurus-plugin-content-pages/community-guide.mdx +++ b/website/i18n/ja/docusaurus-plugin-content-pages/community-guide.mdx @@ -15,7 +15,7 @@ This [Code of Conduct](./coc) is an easy guide to develop the technical communit ### Get Support - [GitHub](https://github.com/wailsapp/wails) - If you have a bug to report or feature to request, that's what the GitHub issues are for. Please respect the rules specified in each repository's issue template. -- [Discord](https://discord.com/invite/JDdSxwjhGf) - A place for Wails devs to meet and chat in real time. +- [Discord](https://discord.gg/JDdSxwjhGf) - A place for Wails devs to meet and chat in real time. - [QQ Group(中文)](https://qm.qq.com/cgi-bin/qm/qr?k=PmIURne5hFGNd7QWzW5qd6FV-INEjNJv&jump_from=webapi) - A Wails group for Chinese developers to communicate, where you can get help from other developers. ### Explore the Ecosystem @@ -96,7 +96,7 @@ If you chose to test if someone's bug report is reproducible on your local syste To test PRs, choose a PR to test and check if the PR description has the testing scenarios listed. If not, please ask the person who opened the PR to provide that list. Once you have determined a valid test scenario, please report your findings on the PR. -If you ever need more clarity or help on testing, please ask a question in the [Contributing to Wails](https://github.com/wailsapp/wails/discussions/1520) discussion or on discord. +If you ever need more clarity or help on testing, please ask a question in the [Contributing to Wails](https://github.com/wailsapp/wails/discussions/1520) discussion or on slack. ### Documenting @@ -133,7 +133,7 @@ If you want to add a new language to the documentation, please follow the prompt A great way to contribute to the project is to help others who are experiencing difficulty. This is normally reported as a ticket or a message on the Wails discord server. Even just clarifying the issue can really help out. Sometimes, when an issue is discussed and gets resolved, we create a guide out of it to help others who face the same issues. -To join the Wails discord server, accept the invite [here](https://discord.com/invite/JDdSxwjhGf). +To join the Wails discord server, click [here](https://discord.gg/JDdSxwjhGf). :::note diff --git a/website/i18n/ja/docusaurus-plugin-content-pages/credits.mdx b/website/i18n/ja/docusaurus-plugin-content-pages/credits.mdx index e65b68bc3..7d899183a 100644 --- a/website/i18n/ja/docusaurus-plugin-content-pages/credits.mdx +++ b/website/i18n/ja/docusaurus-plugin-content-pages/credits.mdx @@ -4,10 +4,11 @@ - [Stffabi](https://github.com/stffabi) - テクニカルリーダー、開発担当、保守担当 - [Misite Bao](https://github.com/misitebao) - ドキュメント専門担当、翻訳担当(中国語)、Windowsテスター、不具合収集担当 - [Travis McLane](https://github.com/tmclane) - クロスコンパイル担当、MacOSテスター -- [Byron Chris](https://github.com/bh90210) - Linuxディストリビューション専門担当、Linuxテスター +- [Lyimmi](https://github.com/Lyimmi) - Linux関連全般 ## スポンサー + ## コントリビューター @@ -15,172 +16,244 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Lea Anthony

💻 🤔 🎨 🖋 💡 🧑‍🏫 📆 🔧 🐛 📝 🚧 📦 👀 💬 🔬 ⚠️ 📢 👀 📖

stffabi

💻 🤔 🎨 🐛 🚧 📦 👀 💬 🔬 👀 📖 ⚠️

Travis McLane

💻 🔬 📦 🤔 🐛 👀 ⚠️ 💬 📖

Misite Bao

📖 🌍 🔬 🚧

Byron Chris

💻 🔬 🚧 🐛 👀 ⚠️ 💬 🤔 🎨 📦 🚇

konez2k

💻 📦 🤔

Dario Emerson

💻 🐛 🤔 ⚠️

Ian M. Jones

💻 🐛 🤔 ⚠️ 👀 📦

marktohark

💻

Ryan H

💻

Cody Bentley

💻 📦 🤔 💵

Florent

💻 🐛

Alexander Hudek

💻 💵

Tim Kipp

💻

Altynbek Kaliakbarov

💻

Nikolai Zimmermann

💻

k-muchmore

💻

Snider

💻 🤔 📖 💵

Albert Sun

💻 ⚠️

Ariel

💻 🐛

Ilgıt Yıldırım

💻 🐛 💵

Toyam Cox

💻 📦 🐛

hi019

💻 🐛

Arthur Wiebe

💻 🐛

Balakrishna Prasad Ganne

💻

BillBuilt

💻 📦 🤔 💬 💵

Eng Zer Jun

🚧 💻

LGiki

📖

Lontten

📖

Lukas Crepaz

💻 🐛

Marcus Crane

🐛 📖 💵

Qais Patankar

📖

Wakeful-Cloud

💻 🐛

Zámbó, Levente

💻 📦 🐛 ⚠️

Ironpark

💻 🤔

mondy

💻 📖

Benjamin Ryan

🐛

fallendusk

📦 💻

Mat Ryer

💻 🤔 🐛

Abtin

💻 🐛

Adrian Lanzafame

📦 💻

Aleksey Polyakov

🐛 💻

Alexander Matviychuk

💻 📦

AlienRecall

💻 📦

Aman

📖

Amaury Tobias Quiroz

💻 🐛

Andreas Wenk

📖

Antonio Stanković

💻 📦

Arpit Jain

📖

Austin Schey

💻 🐛

Benjamin Thomas

💻 📦 🤔

Bertram Truong

💻 🐛

Blake Bourque

📖

Denis

📖

diogox

💻 📦

Dmitry Gomzyakov

💻 📦

Edward Browncross

💻

Elie Grenon

💻

Florian Didron

💻 🐛 🤔 ⚠️ 👀 📦

GargantuaX

💵

Igor Minin

💻 🐛

Jae-Sung Lee

💻 🤔

Jarek

💻 📦

Junker

📖

Kris Raney

💻 🐛

Luken

📖

Mark Stenglein

💻 🐛

buddyabaddon

💻

MikeSchaap

💻 🐛

NYSSEN Michaël

💻 🐛

Nan0

💻 🤔 ⚠️ 👀

oskar

📖

Pierre Joye

💻 🐛 🤔 ⚠️

Reuben Thomas-Davis

💻 🐛

Robin

💻 🐛

Sebastian Bauer

💻 🤔 ⚠️ 👀 💬

Sidharth Rathi

📖 🐛

Sithembiso Khumalo

💻 🐛

Soheib El-Harrache

💻 🐛 💵

Sophie Au

💻 🐛

Stefanos Papadakis

💻 🐛

Steve Chung

💻 🐛

Timm Ortloff

📖

Tom

💻

Valentin Trinqué

💻 🐛

mattn

💻 🐛

bearsh

💻 🤔 📖

chenxiao

💻 🤔 📖

fengweiqiang

💻 📦

flin7

📖

fred21O4

📖

gardc

📖

rayshoo

📖

Ishiyama Yuzuki

💻 🐛

佰阅

💻

刀刀

📖 🐛

归位

💻 🐛

skamensky

💻 🤔 📖

dependabot[bot]

💻 🚧

Damian Sieradzki

💵

John Dorman

💵

Ian Sinnott

💵

Arden Shackelford

💵

Bironou

💵

CharlieGo_

💵

overnet

💵

jugglingjsons

💵

Selvin Ortiz

💵

ZanderCodes

💵

Michael Voronov

💵

letheanVPN

💵

Tai Groot

💵

easy-web-it

💵

Michael Olson

💵

EdenNetwork Italia

💵

ondoki

💵

QuEST Rail LLC

💵

Gilgameš

💵

Bernt-Johan Bergshaven

💵

Liam Bigelow

💵

Nick Arellano

💵

Frank Chiarulli Jr.

💵

Tyler

💵

Trea Hauet

💵

Kent 'picat' Gruber

💵

tc-hib

💵

Antonio

📖

MyNameIsAres

📖

Maicarons J

📖

kiddov

📖 💵 ⚠️ 🤔

Nicolas Coutin

💵

Parvin Eyvazov

📖
Lea Anthony
Lea Anthony

💻 🤔 🎨 🖋 💡 🧑‍🏫 📆 🔧 🐛 📝 🚧 📦 👀 💬 🔬 ⚠️ 📢 👀 📖
stffabi
stffabi

💻 🤔 🎨 🐛 🚧 📦 👀 💬 🔬 👀 📖 ⚠️
Travis McLane
Travis McLane

💻 🔬 📦 🤔 🐛 👀 ⚠️ 💬 📖
Misite Bao
Misite Bao

📖 🌍 🔬 🚧
Byron Chris
Byron Chris

💻 🔬 🚧 🐛 👀 ⚠️ 💬 🤔 🎨 📦 🚇
konez2k
konez2k

💻 📦 🤔
Dario Emerson
Dario Emerson

💻 🐛 🤔 ⚠️
Ian M. Jones
Ian M. Jones

💻 🐛 🤔 ⚠️ 👀 📦
marktohark
marktohark

💻
Ryan H
Ryan H

💻
Cody Bentley
Cody Bentley

💻 📦 🤔 💵
Florent
Florent

💻 🐛
Alexander Hudek
Alexander Hudek

💻 💵
Tim Kipp
Tim Kipp

💻
Altynbek Kaliakbarov
Altynbek Kaliakbarov

💻
Nikolai Zimmermann
Nikolai Zimmermann

💻
k-muchmore
k-muchmore

💻
Snider
Snider

💻 🤔 📖 💵
Albert Sun
Albert Sun

💻 ⚠️
Ariel
Ariel

💻 🐛
Ilgıt Yıldırım
Ilgıt Yıldırım

💻 🐛 💵
Toyam Cox
Toyam Cox

💻 📦 🐛
hi019
hi019

💻 🐛
Arthur Wiebe
Arthur Wiebe

💻 🐛
Balakrishna Prasad Ganne
Balakrishna Prasad Ganne

💻
BillBuilt
BillBuilt

💻 📦 🤔 💬 💵
Eng Zer Jun
Eng Zer Jun

🚧 💻
LGiki
LGiki

📖
Lontten
Lontten

📖
Lukas Crepaz
Lukas Crepaz

💻 🐛
Marcus Crane
Marcus Crane

🐛 📖 💵
Qais Patankar
Qais Patankar

📖
Wakeful-Cloud
Wakeful-Cloud

💻 🐛
Zámbó, Levente
Zámbó, Levente

💻 📦 🐛 ⚠️
Ironpark
Ironpark

💻 🤔
mondy
mondy

💻 📖
Benjamin Ryan
Benjamin Ryan

🐛
fallendusk
fallendusk

📦 💻
Mat Ryer
Mat Ryer

💻 🤔 🐛
Abtin
Abtin

💻 🐛
Adrian Lanzafame
Adrian Lanzafame

📦 💻
Aleksey Polyakov
Aleksey Polyakov

🐛 💻
Alexander Matviychuk
Alexander Matviychuk

💻 📦
AlienRecall
AlienRecall

💻 📦
Aman
Aman

📖
Amaury Tobias Quiroz
Amaury Tobias Quiroz

💻 🐛
Andreas Wenk
Andreas Wenk

📖
Antonio Stanković
Antonio Stanković

💻 📦
Arpit Jain
Arpit Jain

📖
Austin Schey
Austin Schey

💻 🐛
Benjamin Thomas
Benjamin Thomas

💻 📦 🤔
Bertram Truong
Bertram Truong

💻 🐛
Blake Bourque
Blake Bourque

📖
Denis
Denis

📖
diogox
diogox

💻 📦
Dmitry Gomzyakov
Dmitry Gomzyakov

💻 📦
Edward Browncross
Edward Browncross

💻
Elie Grenon
Elie Grenon

💻
Florian Didron
Florian Didron

💻 🐛 🤔 ⚠️ 👀 📦
GargantuaX
GargantuaX

💵
Igor Minin
Igor Minin

💻 🐛
Jae-Sung Lee
Jae-Sung Lee

💻 🤔
Jarek
Jarek

💻 📦
Junker
Junker

📖
Kris Raney
Kris Raney

💻 🐛
Luken
Luken

📖
Mark Stenglein
Mark Stenglein

💻 🐛
buddyabaddon
buddyabaddon

💻
MikeSchaap
MikeSchaap

💻 🐛
NYSSEN Michaël
NYSSEN Michaël

💻 🐛
Nan0
Nan0

💻 🤔 ⚠️ 👀
oskar
oskar

📖
Pierre Joye
Pierre Joye

💻 🐛 🤔 ⚠️
Reuben Thomas-Davis
Reuben Thomas-Davis

💻 🐛
Robin
Robin

💻 🐛
Sebastian Bauer
Sebastian Bauer

💻 🤔 ⚠️ 👀 💬
Sidharth Rathi
Sidharth Rathi

📖 🐛
Sithembiso Khumalo
Sithembiso Khumalo

💻 🐛
Soheib El-Harrache
Soheib El-Harrache

💻 🐛 💵
Sophie Au
Sophie Au

💻 🐛
Stefanos Papadakis
Stefanos Papadakis

💻 🐛
Steve Chung
Steve Chung

💻 🐛
Timm Ortloff
Timm Ortloff

📖
Tom
Tom

💻
Valentin Trinqué
Valentin Trinqué

💻 🐛
mattn
mattn

💻 🐛
bearsh
bearsh

💻 🤔 📖
chenxiao
chenxiao

💻 🤔 📖
fengweiqiang
fengweiqiang

💻 📦
flin7
flin7

📖
fred21O4
fred21O4

📖
gardc
gardc

📖
rayshoo
rayshoo

📖
Ishiyama Yuzuki
Ishiyama Yuzuki

💻 🐛
佰阅
佰阅

💻
刀刀
刀刀

📖 🐛
归位
归位

💻 🐛
skamensky
skamensky

💻 🤔 📖
dependabot[bot]
dependabot[bot]

💻 🚧
Damian Sieradzki
Damian Sieradzki

💵
John Dorman
John Dorman

💵
Ian Sinnott
Ian Sinnott

💵
Arden Shackelford
Arden Shackelford

💵
Bironou
Bironou

💵
CharlieGo_
CharlieGo_

💵
overnet
overnet

💵
jugglingjsons
jugglingjsons

💵
Selvin Ortiz
Selvin Ortiz

💵
ZanderCodes
ZanderCodes

💵
Michael Voronov
Michael Voronov

💵
letheanVPN
letheanVPN

💵
Tai Groot
Tai Groot

💵
easy-web-it
easy-web-it

💵
Michael Olson
Michael Olson

💵
EdenNetwork Italia
EdenNetwork Italia

💵
ondoki
ondoki

💵
QuEST Rail LLC
QuEST Rail LLC

💵
Gilgameš
Gilgameš

💵
Bernt-Johan Bergshaven
Bernt-Johan Bergshaven

💵
Liam Bigelow
Liam Bigelow

💵
Nick Arellano
Nick Arellano

💵
Frank Chiarulli Jr.
Frank Chiarulli Jr.

💵
Tyler
Tyler

💵
Trea Hauet
Trea Hauet

💵
Kent 'picat' Gruber
Kent 'picat' Gruber

💵
tc-hib
tc-hib

💵
Antonio
Antonio

📖
MyNameIsAres
MyNameIsAres

📖
Maicarons J
Maicarons J

📖
kiddov
kiddov

📖 💵 ⚠️ 🤔
Nicolas Coutin
Nicolas Coutin

💵
Parvin Eyvazov
Parvin Eyvazov

📖
github-actions[bot]
github-actions[bot]

💻
Oleg Gulevskyy
Oleg Gulevskyy

💻 📖 🚧 📦
Richard Guay
Richard Guay

📖
Adam Tenderholt
Adam Tenderholt

💻
JulioDRF
JulioDRF

💻
Scott Opell
Scott Opell

💻
Vadim Shchepotev
Vadim Shchepotev

💻
Will Andrews
Will Andrews

💻
Gwyn
Gwyn

💻 👀 💬 🔬
希嘉嘉
希嘉嘉

💻
ALMAS
ALMAS

💻
Alex
Alex

💻
Arif Ali
Arif Ali

💻
Artur Siarohau
Artur Siarohau

💻
Binyamin Aron Green
Binyamin Aron Green

💻
Brian Dwyer
Brian Dwyer

💻
Christian Kilb
Christian Kilb

💻
David Florness
David Florness

📖
David Walton
David Walton

💻
Debdut Karmakar
Debdut Karmakar

💻
Dieter Zhu
Dieter Zhu

💻
Fredrik Holmqvist
Fredrik Holmqvist

💻
Giovanni Palma
Giovanni Palma

💻
Hao
Hao

💻
Igor Sementsov
Igor Sementsov

💻
Johannes Haseitl
Johannes Haseitl

💻
Joshua Hull
Joshua Hull

💻
Joshua Mangiola
Joshua Mangiola

📖
Kevin MacMartin
Kevin MacMartin

💻
Liang Li
Liang Li

💻
Marvin Collins Hosea
Marvin Collins Hosea

💻
Matt Holt
Matt Holt

💻
Niklas
Niklas

💻
Andy Hsu
Andy Hsu

💻
NullCode
NullCode

💻
Oussama Sethoum
Oussama Sethoum

💻
ParkourLiu
ParkourLiu

💻
Rachel Chen
Rachel Chen

💻
Rob Nice
Rob Nice

💻
Ryo TAGAMI
Ryo TAGAMI

💻
Sam Hennessy
Sam Hennessy

💻
Sean
Sean

💻
Sean Gosiaco
Sean Gosiaco

💻
Eric P Sheets
Eric P Sheets

💻
Supian M
Supian M

💻
Watson-Sei
Watson-Sei

💻 📖
Yuki Shindo
Yuki Shindo

💻
cuigege
cuigege

💻
cybertramp
cybertramp

💻
hiroki yagi
hiroki yagi

💻
imgbot[bot]
imgbot[bot]

💻
juju
juju

💻
Michael Eatherly
Michael Eatherly

💻
tk
tk

💻
allcontributors[bot]
allcontributors[bot]

📖
wander
wander

📖
@@ -193,6 +266,7 @@ - [John Chadwick](https://github.com/jchv) - 彼の[go-webview2](https://github.com/jchv/go-webview2)および[go-winloader](https://github.com/jchv/go-winloader)というすばらしい成果によって、Windows版を開発できました。 - [Tad Vizbaras](https://github.com/tadvi) - 彼のwincプロジェクトは、純粋なGo Wails開発の最初のステップでした。 - [Mat Ryer](https://github.com/matryer) - アドバイス、サポート、営業。 +- [Byron Chris](https://github.com/bh90210) - このプロジェクトに長期的に貢献してくれました。 - [Dustin Krysak](https://wiki.ubuntu.com/bashfulrobot) - 彼は非常に有益なサポートおよびフィードバックをしてくれました。 - [Justen Walker](https://github.com/justenwalker/) - v2を成功させるために、COM問題を解決してくれました。 - [Wang, Chi](https://github.com/patr0nus/) - DeskGapプロジェクトは、Wails v2の方向性に大きな影響を与えてくれました。 diff --git a/website/i18n/ja/docusaurus-theme-classic/footer.json b/website/i18n/ja/docusaurus-theme-classic/footer.json index e0e7422a2..d7829f32d 100644 --- a/website/i18n/ja/docusaurus-theme-classic/footer.json +++ b/website/i18n/ja/docusaurus-theme-classic/footer.json @@ -50,5 +50,9 @@ "link.item.label.Awesome": { "message": "Awesome", "description": "The label of footer link with label=Awesome linking to https://github.com/wailsapp/awesome-wails" + }, + "link.item.label.Discord": { + "message": "Discord", + "description": "The label of footer link with label=Discord linking to https://discord.gg/JDdSxwjhGf" } } diff --git a/website/i18n/ko/code.json b/website/i18n/ko/code.json index ab86b38ce..84b4ab984 100644 --- a/website/i18n/ko/code.json +++ b/website/i18n/ko/code.json @@ -411,5 +411,13 @@ "theme.SearchModal.placeholder": { "message": "문서 검색", "description": "The placeholder of the input of the DocSearch pop-up modal" + }, + "theme.docs.sidebar.closeSidebarButtonAriaLabel": { + "message": "Close navigation bar", + "description": "The ARIA label for close button of mobile sidebar" + }, + "theme.docs.sidebar.toggleSidebarButtonAriaLabel": { + "message": "Toggle navigation bar", + "description": "The ARIA label for hamburger menu button of mobile navigation" } } diff --git a/website/i18n/ko/docusaurus-plugin-content-blog/2023-01-17-v3-roadmap.mdx b/website/i18n/ko/docusaurus-plugin-content-blog/2023-01-17-v3-roadmap.mdx new file mode 100644 index 000000000..9a137d09a --- /dev/null +++ b/website/i18n/ko/docusaurus-plugin-content-blog/2023-01-17-v3-roadmap.mdx @@ -0,0 +1,184 @@ +--- +slug: the-road-to-wails-v3 +title: The Road to Wails v3 +authors: + - leaanthony +tags: + - wails + - v3 +--- + +```mdx-code-block +
+ +
+
+``` + +# Introduction + +Wails is a project that simplifies the ability to write cross-platform desktop applications using Go. It uses native webview components for the frontend (not embedded browsers), bringing the power of the world's most popular UI system to Go, whilst remaining lightweight. + +Version 2 was released on the 22nd of September 2022 and brought with it a lot of enhancements including: + +- Live development, leveraging the popular Vite project +- Rich functionality for managing windows and creating menus +- Microsoft's WebView2 component +- Generation of Typescript models that mirror your Go structs +- Creating of NSIS Installer +- Obfuscated builds + +Right now, Wails v2 provides powerful tooling for creating rich, cross-platform desktop applications. + +This blog post aims to look at where the project is at right now and what we can improve on moving forward. + +# Where are we now? + +It's been incredible to see the popularity of Wails rising since the v2 release. I'm constantly amazed by the creativity of the community and the wonderful things that are being built with it. With more popularity, comes more eyes on the project. And with that, more feature requests and bug reports. + +Over time, I've been able to identify some of the most pressing issues facing the project. I've also been able to identify some of the things that are holding the project back. + +## Current issues + +I've identified the following areas that I feel are holding the project back: + +- The API +- Bindings generation +- The Build System + +### The API + +The API to build a Wails application currently consists of 2 parts: + +- The Application API +- The Runtime API + +The Application API famously has only 1 function: `Run()` which takes a heap of options which govern how the application will work. Whilst this is very simple to use, it is also very limiting. It is a "declarative" approach which hides a lot of the underlying complexity. For instance, there is no handle to the main window, so you can't interact with it directly. For that, you need to use the Runtime API. This is a problem when you start to want to do more complex things like create multiple windows. + +The Runtime API provides a lot of utility functions for the developer. This includes: + +- Window management +- Dialogs +- Menus +- Events +- Logs + +There are a number of things I am not happy with the Runtime API. The first is that it requires a "context" to be passed around. This is both frustrating and confusing for new developers who pass in a context and then get a runtime error. + +The biggest issue with the Runtime API is that it was designed for applications that only use a single window. Over time, the demand for multiple windows has grown and the API is not well suited to this. + +### Thoughts on the v3 API + +Wouldn't it be great if we could do something like this? + +```go +func main() { + app := wails.NewApplication(options.App{}) + myWindow := app.NewWindow(options.Window{}) + myWindow.SetTitle("My Window") + myWindow.On(events.Window.Close, func() { + app.Quit() + }) + app.Run() +} +``` + +This programmatic approach is far more intuitive and allows the developer to interact with the application elements directly. All current runtime methods for windows would simply be methods on the window object. For the other runtime methods, we could move them to the application object like so: + +```go +app := wails.NewApplication(options.App{}) +app.NewInfoDialog(options.InfoDialog{}) +app.Log.Info("Hello World") +``` + +This is a much more powerful API which will allow for more complex applications to be built. It also allows for the creation of multiple windows, [the most up-voted feature on GitHub](https://github.com/wailsapp/wails/issues/1480): + +```go +func main() { + app := wails.NewApplication(options.App{}) + myWindow := app.NewWindow(options.Window{}) + myWindow.SetTitle("My Window") + myWindow.On(events.Window.Close, func() { + app.Quit() + }) + myWindow2 := app.NewWindow(options.Window{}) + myWindow2.SetTitle("My Window 2") + myWindow2.On(events.Window.Close, func() { + app.Quit() + }) + app.Run() +} +``` + +### Bindings generation + +One of the key features of Wails is generating bindings for your Go methods so they may be called from Javascript. The current method for doing this is a bit of a hack. It involves building the application with a special flag and then running the resultant binary which uses reflection to determine what has been bound. This leads to a bit of a chicken and egg situation: You can't build the application without the bindings and you can't generate the bindings without building the application. There are many ways around this but the best one would be not to use this approach at all. + +There was a number of attempts at writing a static analyser for Wails projects but they didn't get very far. In more recent times, it has become slightly easier to do this with more material available on the subject. + +Compared to reflection, the AST approach is much faster however it is significantly more complicated. To start with, we may need to impose certain constraints on how to specify bindings in the code. The goal is to support the most common use cases and then expand it later on. + +### The Build System + +Like the declarative approach to the API, the build system was created to hide the complexities of building a desktop application. When you run `wails build`, it does a lot of things behind the scenes: +- Builds the backend binary for bindings and generates the bindings +- Installs the frontend dependencies +- Builds the frontend assets +- Determines if the application icon is present and if so, embeds it +- Builds the final binary +- If the build is for `darwin/universal` it builds 2 binaries, one for `darwin/amd64` and one for `darwin/arm64` and then creates a fat binary using `lipo` +- If compression is required, it compresses the binary with UPX +- Determines if this binary is to be packaged and if so: + - Ensures the icon and application manifest are compiled into the binary (Windows) + - Builds out the application bundle, generates the icon bundle and copies it, the binary and Info.plist to the application bundle (Mac) +- If an NSIS installer is required, it builds it + +This entire process, whilst very powerful, is also very opaque. It is very difficult to customise it and it is very difficult to debug. + +To address this in v3, I would like to move to a build system that exists outside of Wails. After using [Task](https://taskfile.dev/) for a while, I am a big fan of it. It is a great tool for configuring build systems and should be reasonably familiar to anyone who has used Makefiles. + +The build system would be configured using a `Taskfile.yml` file which would be generated by default with any of the supported templates. This would have all of the steps required to do all the current tasks, such as building or packaging the application, allowing for easy customisation. + +There will be no external requirement for this tooling as it would form part of the Wails CLI. This means that you can still use `wails build` and it will do all the things it does today. However, if you want to customise the build process, you can do so by editing the `Taskfile.yml` file. It also means you can easily understand the build steps and use your own build system if you wish. + +The missing piece in the build puzzle is the atomic operations in the build process, such as icon generation, compression and packaging. To require a bunch of external tooling would not be a great experience for the developer. To address this, the Wails CLI will provide all these capabilities as part of the CLI. This means that the builds still work as expected, with no extra external tooling, however you can replace any step of the build with any tool you like. + +This will be a much more transparent build system which will allow for easier customisation and address a lot of the issues that have been raised around it. + +## The Payoff + +These positive changes will be a huge benefit to the project: +- The new API will be much more intuitive and will allow for more complex applications to be built. +- Using static analysis for bindings generation will be much faster and reduce a lot of the complexity around the current process. +- Using an established, external build system will make the build process completely transparent, allowing for powerful customisation. + +Benefits to the project maintainers are: + +- The new API will be much easier to maintain and adapt to new features and platforms. +- The new build system will be much easier to maintain and extend. I hope this will lead to a new ecosystem of community driven build pipelines. +- Better separation of concerns within the project. This will make it easier to add new features and platforms. + +## The Plan + +A lot of the experimentation for this has already been done and it's looking good. There is no current timeline for this work but I'm hoping by the end of Q1 2023, there will be an alpha release for Mac to allow the community to test, experiment with and provide feedback. + +## Summary + +- The v2 API is declarative, hides a lot from the developer and not suitable for features such as multiple windows. A new API will be created which will be simpler, intuitive and more powerful. +- The build system is opaque and difficult to customise so we will move to an external build system which will open it all up. +- The bindings generation is slow and complex so we will move to static analysis which will remove a lot of the complexity the current method has. + +There has been a lot of work put into the guts of v2 and it's solid. It's now time to address the layer on top of it and make it a much better experience for the developer. + +I hope you are as excited about this as I am. I'm looking forward to hearing your thoughts and feedback. + +Regards, + +‐ Lea + +PS: If you or your company find Wails useful, please consider [sponsoring the project](https://github.com/sponsors/leaanthony). Thanks! + +PPS: Yes, that's a genuine screenshot of a multi-window application built with Wails. It's not a mockup. It's real. It's awesome. It's coming soon. \ No newline at end of file diff --git a/website/i18n/ko/docusaurus-plugin-content-docs/current/community/links.mdx b/website/i18n/ko/docusaurus-plugin-content-docs/current/community/links.mdx index 6162c4c08..e36a6edfe 100644 --- a/website/i18n/ko/docusaurus-plugin-content-docs/current/community/links.mdx +++ b/website/i18n/ko/docusaurus-plugin-content-docs/current/community/links.mdx @@ -12,7 +12,7 @@ The [definitive list](https://github.com/wailsapp/awesome-wails) of links relate ## Support Channels -- [Discord](https://discord.com/invite/JDdSxwjhGf) +- [Wails Discord Server](https://discord.gg/JDdSxwjhGf) - [Github Issues](https://github.com/wailsapp/wails/issues) - [v2 Beta Discussion Board](https://github.com/wailsapp/wails/discussions/828) @@ -22,4 +22,5 @@ The [definitive list](https://github.com/wailsapp/awesome-wails) of links relate - [Wails Chinese Community QQ Group](https://qm.qq.com/cgi-bin/qm/qr?k=PmIURne5hFGNd7QWzW5qd6FV-INEjNJv&jump_from=webapi) - Group number: 1067173054 ## Other Tutorials and Articles + - [Building of Bulletin Board](https://blog.customct.com/building-bulletin-board) diff --git a/website/i18n/ko/docusaurus-plugin-content-docs/current/community/showcase/bulletinboard.mdx b/website/i18n/ko/docusaurus-plugin-content-docs/current/community/showcase/bulletinboard.mdx new file mode 100644 index 000000000..37be75135 --- /dev/null +++ b/website/i18n/ko/docusaurus-plugin-content-docs/current/community/showcase/bulletinboard.mdx @@ -0,0 +1,10 @@ +# BulletinBoard + +```mdx-code-block +

+ +
+

+``` + +The [BulletinBoard](https://github.com/raguay/BulletinBoard) application is a versital message board for static messages or dialogs to get information from the user for a script. It has a TUI for creating new dialogs that can latter be used to get information from the user. It's design is to stay running on your system and show the information as needed and then hide away. I have a process for watching a file on my system and sending the contents to BulletinBoard when changed. It works great with my workflows. There is also an [Alfred workflow](https://github.com/raguay/MyAlfred/blob/master/Alfred%205/EmailIt.alfredworkflow) for sending information to the program. The workflow is also for working with [EmailIt](https://github.com/raguay/EmailIt). diff --git a/website/i18n/ko/docusaurus-plugin-content-docs/current/community/showcase/emailit.mdx b/website/i18n/ko/docusaurus-plugin-content-docs/current/community/showcase/emailit.mdx index 04150ba28..c1817b70f 100644 --- a/website/i18n/ko/docusaurus-plugin-content-docs/current/community/showcase/emailit.mdx +++ b/website/i18n/ko/docusaurus-plugin-content-docs/current/community/showcase/emailit.mdx @@ -7,4 +7,4 @@

``` -[EmailIt](https://github.com/raguay/EmailIt/) is a Wails 2 program that is a markdown based email sender only with nine notepads, scripts to manipulate the text, and templates. It also has a builtin [Node-Red](https://nodered.org/) server, scripts terminal, and the [ScriptBar](https://github.com/raguay/ScriptBarApp) program for displaying results from Node-Red or a script on your system. Documentation is very scarce, but the programs works. It’s built using Wails2 and Svelte, and the download is a universal macOS application. +[EmailIt](https://github.com/raguay/EmailIt/) is a Wails 2 program that is a markdown based email sender only with nine notepads, scripts to manipulate the text, and templates. It also has a scripts terminal to run scripts in EmailIt on files in your system. The scripts and templates can be used from the commandline itself or with the Alfred, Keyboard Maestro, Dropzone, or PopClip extensions. It also supports scripts and themes downloaded form GitHub. Documentation is not complete, but the programs works. It’s built using Wails2 and Svelte, and the download is a universal macOS application. diff --git a/website/i18n/ko/docusaurus-plugin-content-docs/current/community/showcase/filehound.mdx b/website/i18n/ko/docusaurus-plugin-content-docs/current/community/showcase/filehound.mdx index 94b719975..0881bfe9e 100644 --- a/website/i18n/ko/docusaurus-plugin-content-docs/current/community/showcase/filehound.mdx +++ b/website/i18n/ko/docusaurus-plugin-content-docs/current/community/showcase/filehound.mdx @@ -13,4 +13,4 @@ FileHound Export Utility를 사용하면 FileHound 관리자가 대체 백업 백엔드의 구성은 다음과 같습니다: Go 1.15 Wails 1.11.0 go-sqlite3 1.14.6 go-linq 3.2 -Frontend with: Vue 2.6.11 Vuex 3.4.0 TypeScript Tailwind 1.9.6 +사용된 프론트엔드: Vue 2.6.11 Vuex 3.4.0 TypeScript Tailwind 1.9.6 diff --git a/website/i18n/ko/docusaurus-plugin-content-docs/current/community/showcase/hiposter.mdx b/website/i18n/ko/docusaurus-plugin-content-docs/current/community/showcase/hiposter.mdx new file mode 100644 index 000000000..87e5837d3 --- /dev/null +++ b/website/i18n/ko/docusaurus-plugin-content-docs/current/community/showcase/hiposter.mdx @@ -0,0 +1,10 @@ +# hiposter + +```mdx-code-block +

+ +
+

+``` + +[hiposter](https://github.com/obity/hiposter) is a simple and efficient http API testing client tool. Based on Wails, Go and sveltejs. diff --git a/website/i18n/ko/docusaurus-plugin-content-docs/current/community/showcase/modalfilemanager.mdx b/website/i18n/ko/docusaurus-plugin-content-docs/current/community/showcase/modalfilemanager.mdx index f8e2bcd66..9c98dc864 100644 --- a/website/i18n/ko/docusaurus-plugin-content-docs/current/community/showcase/modalfilemanager.mdx +++ b/website/i18n/ko/docusaurus-plugin-content-docs/current/community/showcase/modalfilemanager.mdx @@ -9,6 +9,6 @@

``` -[Modal File Manager](https://github.com/raguay/ModalFileManager) is a dual pane file manager using web technologies. My original design was based on NW.js and can be found [here](https://github.com/raguay/ModalFileManager-NWjs). This version uses the same Svelte based frontend code (but it has be greatly modified since the departure from NW.js), but the backend is a [Wails 2](https://wails.io/) implementation. By using this implementation, I no longer use command line `rm`, `cp`, etc. commands. It is fully coded using Go and runs much faster than the previous versions. +[Modal File Manager](https://github.com/raguay/ModalFileManager) 는 웹 기술을 사용하는 이중 창 모양의 파일 관리자입니다. 나의 원래 디자인은 NW.js를 기반으로 했으며 [여기](https://github.com/raguay/ModalFileManager-NWjs)에서 찾을 수 있습니다. 이 버전은 동일한 Svelte 기반 프론트엔드 코드를 사용하지만(그러나 NW.js에서 출발한 이후 크게 수정됨) 백엔드는 [Wails 2](https://wails.io/) 구현입니다. By using this implementation, I no longer use command line `rm`, `cp`, etc. commands, but a git install has to be on the system to download themes and extensions. Go를 사용하여 코딩되었으며, 이전 버전보다 훨씬 빠르게 실행됩니다. -This file manager is designed around the same principle as Vim: a state controlled keyboard actions. The number of states isn't fixed, but very programmable. Therefore, an infinite number of keyboard configurations can be created and used. This is the main difference from other file managers. +이 파일 관리자는 Vim과 동일한 원칙, 즉 상태 제어 키보드 동작을 기반으로 설계되었습니다. 상태의 수는 고정이 안되어 있지만, 그러나 매우 프로그래머블합니다. 그러므로, 키보드 설정들의 무한한 수는 생성 될 수 있고 사용될 수 있습니다. 이것은 다른 파일 매니저들과 다른 주요점입니다. There are themes and extensions available to download from GitHub. diff --git a/website/i18n/ko/docusaurus-plugin-content-docs/current/community/showcase/mollywallet.mdx b/website/i18n/ko/docusaurus-plugin-content-docs/current/community/showcase/mollywallet.mdx index 5d846d06d..57eda38f9 100644 --- a/website/i18n/ko/docusaurus-plugin-content-docs/current/community/showcase/mollywallet.mdx +++ b/website/i18n/ko/docusaurus-plugin-content-docs/current/community/showcase/mollywallet.mdx @@ -7,4 +7,4 @@

``` -[Molly Wallet](https://github.com/grvlle/constellation_wallet/) the official $DAG wallet of the Constellation Network. It'll let users interact with the Hypergraph Network in various ways, not limited to producing $DAG transactions. +[Molly Wallet](https://github.com/grvlle/constellation_wallet/) 은 Constellation Network의 공식 $DAG 지갑입니다. 이를 통해 사용자는 $DAG 트랜잭션 생성에 국한되지 않고 다양한 방식으로 Hypergraph Network와 상호 작용할 수 있습니다. diff --git a/website/i18n/ko/docusaurus-plugin-content-docs/current/community/showcase/scriptbar.mdx b/website/i18n/ko/docusaurus-plugin-content-docs/current/community/showcase/scriptbar.mdx index 2ccb2acb4..3e41eb32a 100644 --- a/website/i18n/ko/docusaurus-plugin-content-docs/current/community/showcase/scriptbar.mdx +++ b/website/i18n/ko/docusaurus-plugin-content-docs/current/community/showcase/scriptbar.mdx @@ -7,4 +7,4 @@

``` -[ScriptBar](https://GitHub.com/raguay/ScriptBarApp) is a program to show the output of the embedded [Node-Red](https://nodered.org) server in the [EmailIt](https://GitHub.com/raguay/EmailIt) application. It also displays the output of scripts on your system. ScriptBar doesn't put them in the menubar, but has them all in a convient window for easy viewing. You can have multiple tabs to have many different things show. You can also keep the links to your most visited web sites. +[ScriptBar](https://GitHub.com/raguay/ScriptBarApp) is a program to show the output of scripts or [Node-Red](https://nodered.org) server. It runs scripts defined in EmailIt program and shows the output. Scripts from xBar or TextBar can be used, but currently on the TextBar scripts work well. It also displays the output of scripts on your system. ScriptBar doesn't put them in the menubar, but has them all in a convient window for easy viewing. You can have multiple tabs to have many different things show. You can also keep the links to your most visited web sites. diff --git a/website/i18n/ko/docusaurus-plugin-content-docs/current/community/showcase/warmine.mdx b/website/i18n/ko/docusaurus-plugin-content-docs/current/community/showcase/warmine.mdx new file mode 100644 index 000000000..950dc3f3d --- /dev/null +++ b/website/i18n/ko/docusaurus-plugin-content-docs/current/community/showcase/warmine.mdx @@ -0,0 +1,19 @@ +# Minecraft launcher for WarMine + +```mdx-code-block +

+ + +
+

+``` + +[Minecraft launcher for WarMine](https://warmine.ru/) is a Wails application, that allows you to easily join modded game servers and manage your game accounts. + +The Launcher downloads the game files, checks their integrity and launches the game with a wide range of customization options for the launch arguments from the backend. + +Frontend is written in Svelte, whole launcher fits in 9MB and supports Windows 7-11. diff --git a/website/i18n/ko/docusaurus-plugin-content-docs/current/community/templates.mdx b/website/i18n/ko/docusaurus-plugin-content-docs/current/community/templates.mdx index 7f27ab70c..c7cbcef7d 100644 --- a/website/i18n/ko/docusaurus-plugin-content-docs/current/community/templates.mdx +++ b/website/i18n/ko/docusaurus-plugin-content-docs/current/community/templates.mdx @@ -27,6 +27,7 @@ If you are unsure about a template, inspect `package.json` and `wails.json` for - [wails-vite-vue-the-works](https://github.com/codydbentley/wails-vite-vue-the-works) - Vue 3 TypeScript with Vite, Vuex, Vue Router, Sass, and ESLint + Prettier - [wails-template-quasar-js](https://github.com/sgosiaco/wails-template-quasar-js) - A template using JavaScript + Quasar V2 (Vue 3, Vite, Sass, Pinia, ESLint, Prettier) - [wails-template-quasar-ts](https://github.com/sgosiaco/wails-template-quasar-ts) - A template using TypeScript + Quasar V2 (Vue 3, Vite, Sass, Pinia, ESLint, Prettier, Composition API with <script setup>) +- [wails-template-naive](https://github.com/tk103331/wails-template-naive) - Wails template based on Naive UI (A Vue 3 Component Library) ## Angular diff --git a/website/i18n/ko/docusaurus-plugin-content-docs/current/gettingstarted/development.mdx b/website/i18n/ko/docusaurus-plugin-content-docs/current/gettingstarted/development.mdx index 368a0b575..5d0d9185c 100644 --- a/website/i18n/ko/docusaurus-plugin-content-docs/current/gettingstarted/development.mdx +++ b/website/i18n/ko/docusaurus-plugin-content-docs/current/gettingstarted/development.mdx @@ -7,7 +7,7 @@ sidebar_position: 5 프로젝트 디렉토리에서 `wails dev` 명령을 실행하여 개발 모드에서 애플리케이션을 실행할 수 있습니다. 이렇게 하면 다음 작업이 수행됩니다. - 애플리케이션 빌드 및 실행 -- Bind your Go code to the frontend so it can be called from JavaScript +- JavaScript에서 호출할 수 있도록 Go 코드를 프론트엔드에 바인딩 - [Vite](https://vitejs.dev/)의 기능을 사용하여 Go 파일의 수정 사항을 감시하고 변경 시 다시 빌드/재실행 합니다. - 브라우저를 통해 애플리케이션을 제공할 [Webserver](http://localhost:34115) 를 설정합니다. 이렇게 하면 브라우저 확장을 사용할 수 있습니다. 콘솔에서 Go 코드를 호출할 수도 있습니다. diff --git a/website/i18n/ko/docusaurus-plugin-content-docs/current/gettingstarted/installation.mdx b/website/i18n/ko/docusaurus-plugin-content-docs/current/gettingstarted/installation.mdx index d46f5ac80..1d911d118 100644 --- a/website/i18n/ko/docusaurus-plugin-content-docs/current/gettingstarted/installation.mdx +++ b/website/i18n/ko/docusaurus-plugin-content-docs/current/gettingstarted/installation.mdx @@ -56,7 +56,7 @@ import TabItem from "@theme/TabItem"; Wails 는 WebView2 런타임 설치를 필요로 합니다. 몇몇 Windows는 이미 설치되어 있습니다. wails doctor 명령을 사용하여 확인할 수 있습니다. - 리눅스는 표준 gcc 빌드 툴과 libgtk3libwebkit를 필요로 합니다. 다양한 배포판에 대한 수 많은 명령을 나열하는 대신 Wail는 특정 배포판에 대한 설치 명령이 무엇인지 결정할 수 있습니다. wails doctor 명령을 실행하면 설치 후 종속성을 설치하는 방법을 보여줍니다. 만약 배포판/패키지 매니저가 지원하지 않는다면, 를 통해 문의하세요. 리눅스 배포판 추가 가이드 + Linux requires the standard gcc build tools plus libgtk3 and libwebkit. 다양한 배포판에 대한 수 많은 명령을 나열하는 대신 Wail는 특정 배포판에 대한 설치 명령이 무엇인지 결정할 수 있습니다. wails doctor 명령을 실행하면 설치 후 종속성을 설치하는 방법을 보여줍니다. 만약 배포판/패키지 매니저가 지원하지 않는다면, 를 통해 문의하세요. 리눅스 배포판 추가 가이드 ``` @@ -68,7 +68,7 @@ import TabItem from "@theme/TabItem"; ## Wails 설치 -`go install github.com/wailsapp/wails/v2/cmd/wails@latest`을 실행하여 Wails CLI를 설치합니다. +`go install github.com/wailsapp/wails/v2/cmd/wails@latest` 명령을 실행하여 Wails CLI를 설치합니다. 참고: 다음과 비슷한 오류가 발생하는 경우: @@ -84,6 +84,6 @@ go version `wails doctor`를 실행하면 의존성이 올바르게 설치되어 있는지 점검할 수 있습니다. 문제가 있는 의존성에 대해서는 문제 해결을 위한 도움을 줄 수 있습니다. -## The `wails` command appears to be missing? +## `wails` 명령이 사라졌다고 나오나요? -If your system is reporting that the `wails` command is missing, make sure you have followed the Go installation guide correctly. 일반적으로, 사용자의 홈 디렉토리에 있는 `go/bin` 디렉토리가 `PATH` 환경 변수에 없음을 의미합니다. 또한, 설치 프로그램이 수행한 환경 변경 사항이 명령 프롬프트에 반영되도록 일반적으로 열려 있는 모든 명령 프롬프트를 닫았다가 다시 열어야합니다. +시스템에서 `wails` 명령이 누락되었다고 뜨는 경우 Go 설치 가이드를 바르게 따랐는지 확인하세요. 일반적으로, 사용자의 홈 디렉토리에 있는 `go/bin` 디렉토리가 `PATH` 환경 변수에 없음을 의미합니다. 또한, 설치 프로그램이 수행한 환경 변경 사항이 명령 프롬프트에 반영되도록 일반적으로 열려 있는 모든 명령 프롬프트를 닫았다가 다시 열어야합니다. diff --git a/website/i18n/ko/docusaurus-plugin-content-docs/current/guides/application-development.mdx b/website/i18n/ko/docusaurus-plugin-content-docs/current/guides/application-development.mdx index 3a85cbd37..0625ddb7b 100644 --- a/website/i18n/ko/docusaurus-plugin-content-docs/current/guides/application-development.mdx +++ b/website/i18n/ko/docusaurus-plugin-content-docs/current/guides/application-development.mdx @@ -77,7 +77,7 @@ func (a *App) Greet(name string) string { } ``` -In the main application configuration, the `Bind` key is where we can tell Wails what we want to bind: +메인 어플리케이션 구성에서, `Bind` 키는 Wails에 무엇을 바인딩할지 알릴 수 있는 부분입니다. ```go {11-13} title="main.go" func main() { @@ -101,11 +101,11 @@ func main() { ``` -This will bind all public methods in our `App` struct (it will never bind the startup and shutdown methods). +이렇게 하면 `App` 구조체의 모든 공개 메서드가 바인딩됩니다(시작 및 종료 메서드는 바인딩되지 않음). -### Dealing with context when binding multiple structs +### 여러 구조체를 바인딩할 때의 컨텍스트 처리 -If you want to bind methods for multiple structs but want each struct to keep a reference to the context so that you can use the runtime functions, a good pattern is to pass the context from the `OnStartup` method to your struct instances : +여러 구조체에 대한 메서드를 바인딩하고 싶지만 런타임을 사용할 수 있도록 각 구조체가 컨텍스트에 대한 참조를 유지하기를 원하는 경우, 함수에서 좋은 패턴은 `OnStartup` 메서드에서 구조체 인스턴스로 컨텍스트를 전달하는 것입니다. ```go func main() { @@ -133,11 +133,11 @@ func main() { } ``` -More information on Binding can be found [here](../howdoesitwork.mdx#method-binding). +바인딩에 대한 더 많은 정보는 [여기](../howdoesitwork.mdx#method-binding)에서 확인할 수 있습니다. ## Application Menu -Wails supports adding a menu to your application. This is done by passing a [Menu](../reference/menus.mdx#menu) struct to application config. It's common to use a method that returns a Menu, and even more common for that to be a method on the `App` struct used for the lifecycle hooks. +Wails는 당신의 애플리케이션에 메뉴 추가를 지원합니다. 이것은 [Menu](../reference/menus.mdx#menu) 구조체를 애플리케이션 구성에 전달하여 수행됩니다. Menu를 반환하는 메서드를 사용하는 것이 일반적이며 lifecycle hooks에 사용되는 `App` 구조체의 메서드인 경우에는 훨씬 더 일반적입니다. ```go {11} title="main.go" func main() { @@ -164,31 +164,31 @@ func main() { ## Assets -The great thing about the way Wails v2 handles assets is that it doesn't! The only thing you need to give Wails is an `embed.FS`. How you get to that is entirely up to you. You can use vanilla html/css/js files like the vanilla template. You could have some complicated build system, it doesn't matter. +Wails v2가 assets을 처리하는 방식의 장점은 그렇지 않다는 것입니다! Wails에 제공해야 하는 유일한 것은 `embed.FS`입니다. 당신이 어떻게 얻어내는가는 전적으로 당신에게 달렸습니다. 바닐라 템플릿과 같은 바닐라 html/css/js를 사용할 수 있습니다. 복잡한 빌드 시스템을 가질 수 있으나, 중요하지 않습니다. -When `wails build` is run, it will check the `wails.json` project file at the project root. There are 2 keys in the project file that are read: +`wails build`가 실행되면 프로젝트 최상위에서 `wails.json` 프로젝트 파일을 확인합니다. 프로젝트 파일에는 2개의 키가 있습니다. - "frontend:install" - "frontend:build" -The first, if given, will be executed in the `frontend` directory to install the node modules. The second, if given, will be executed in the `frontend` directory to build the frontend project. +첫 번째는 노드 모듈을 설치하기 위해 `frontend` 디렉토리에서 실행됩니다. 두 번째는 프런트엔드 프로젝트를 빌드하기 위해 `frontend` 디렉토리에서 실행됩니다. -If these 2 keys aren't given, then Wails does absolutely nothing with the frontend. It is only expecting that `embed.FS`. +이 2개의 키가 주어지지 않으면 Wails는 프런트엔드에서 아무 작업도 수행하지 않습니다. 그것은 `embed.FS`에서만 기대합니다. ### AssetsHandler -A Wails v2 app can optionally define a `http.Handler` in the `options.App`, which allows hooking into the AssetServer to create files on the fly or process POST/PUT requests. GET requests are always first handled by the `assets` FS. If the FS doesn't find the requested file the request will be forwarded to the `http.Handler` for serving. Any requests other than GET will be directly processed by the `AssetsHandler` if specified. It's also possible to only use the `AssetsHandler` by specifiy `nil` as the `Assets` option. +Wails v2 앱은 선택적으로 `options.App`에서 `http.Handler`를 정의할 수 있습니다. 즉석에서 파일을 생성하거나 POST/PUT 요청을 처리합니다. GET 요청은 항상 `assets` FS에서 먼저 처리됩니다. FS가 요청된 파일을 찾지 못하면 요청은 제공을 위해 `http.Handler`로 전달됩니다. GET 이외의 모든 요청은 지정된 경우 `AssetsHandler`에서 직접 처리됩니다. `Assets` 옵션으로 `nil`을 지정하여 `AssetsHandler`만 사용할 수도 있습니다. ## Built in Dev Server -Running `wails dev` will start the built in dev server which will start a file watcher in your project directory. By default, if any file changes, wails checks if it was an application file (default: `.go`, configurable with `-e` flag). If it was, then it will rebuild your application and relaunch it. If the changed file was in the assets, it will issue a reload after a short amount of time. +`wails dev`를 실행하면 내장된 dev 서버가 시작되어 프로젝트 디렉토리에서 file watcher를 시작합니다. 기본적으로 파일이 변경되면 wails는 응용 프로그램 파일인지 확인합니다(기본값: `.go`, `-e` 플래그로 구성 가능). 그렇다면 응용 프로그램을 다시 빌드하고 다시 시작합니다. 변경된 파일이 assets에 있는 경우 짧은 시간 후에 다시 로드를 발행합니다. -The dev server uses a technique called "debouncing" which means it doesn't reload straight away, as there may be multiple files changed in a short amount of time. When a trigger occurs, it waits for a set amount of time before issuing a reload. If another trigger happens, it resets to the wait time again. By default this value is `100ms`. If this value doesn't work for your project, it can be configured using the `-debounce` flag. If used, this value will be saved to your project config and become the default. +개발 서버는 "debouncing"이라는 기술을 사용합니다. 즉, 짧은 시간에 여러 파일이 변경될 수 있으므로 바로 다시 로드되지 않습니다. 트리거가 발생하면 다시 로드하기 전에 설정된 시간 동안 기다립니다. 다른 트리거가 발생하면 다시 대기 시간으로 재설정됩니다. 기본 값은 `100ms` 입니다. 이 값이 프로젝트에서 작동하지 않는 경우 `-debounce` 플래그를 사용하여 구성할 수 있습니다. 사용하는 경우 이 값은 프로젝트 구성에 저장되고 기본값이 됩니다. ## External Dev Server -Some frameworks come with their own live-reloading server, however they will not be able to take advantage of the Wails Go bindings. In this scenario, it is best to run a watcher script that rebuilds the project into the build directory, which Wails will be watching. For an example, see the default svelte template that uses [rollup](https://rollupjs.org/guide/en/). For [create-react-app](https://create-react-app.dev/), it's possible to use [this script](https://gist.github.com/int128/e0cdec598c5b3db728ff35758abdbafd) to achieve a similar result. +일부 프레임워크는 자체 라이브 리로딩 서버와 함께 제공되지만 Wails Go 바인딩을 활용할 수 없습니다. 이 시나리오에서는 Wails가 감시할 빌드 디렉토리에 프로젝트를 다시 빌드하는 watcher script를 실행하는 것이 가장 좋습니다. 예를 보려면 [rollup](https://rollupjs.org/guide/en/)을 사용하는 기본 svelte 템플릿을 참조하세요. [create-react-app](https://create-react-app.dev/)의 경우 다음을 사용할 수 있습니다. [this script](https://gist.github.com/int128/e0cdec598c5b3db728ff35758abdbafd)를 사용하여 유사한 결과를 얻을 수 있습니다. ## Go Module -The default Wails templates generate a `go.mod` file that contains the module name "changeme". You should change this to something more appropriate after project generation. +기본 Wails 템플릿은 "changeme"라는 모듈 이름이 포함된 `go.mod` 파일을 생성합니다. 프로젝트 생성 후에 이 파일의 이름을 변경해야 합니다. diff --git a/website/i18n/ko/docusaurus-plugin-content-docs/current/guides/dynamic-assets.mdx b/website/i18n/ko/docusaurus-plugin-content-docs/current/guides/dynamic-assets.mdx index 73173e15b..989202e27 100644 --- a/website/i18n/ko/docusaurus-plugin-content-docs/current/guides/dynamic-assets.mdx +++ b/website/i18n/ko/docusaurus-plugin-content-docs/current/guides/dynamic-assets.mdx @@ -8,7 +8,7 @@ By installing a custom AssetsHandler, you can serve your own assets using a cust In our example project, we will create a simple assets handler which will load files off disk: -```go title=main.go {16-35,49} +```go title=main.go {17-36,49} package main import ( diff --git a/website/i18n/ko/docusaurus-plugin-content-docs/current/guides/mac-appstore.mdx b/website/i18n/ko/docusaurus-plugin-content-docs/current/guides/mac-appstore.mdx index 62233b57c..961595711 100644 --- a/website/i18n/ko/docusaurus-plugin-content-docs/current/guides/mac-appstore.mdx +++ b/website/i18n/ko/docusaurus-plugin-content-docs/current/guides/mac-appstore.mdx @@ -21,6 +21,12 @@ This page gives a brief overview of how to submit your Wails App to the Mac App 3. Populate your app with the correct screen shots, descriptions, etc. as required by Apple 4. Create a new version of your app +#### Create Provisioning Profile +1. Go to the [Apple Developer Profiles](https://developer.apple.com/account/resources/profiles/list) page +2. Add a new provisioning profile for Mac App Store Distribution +3. Set the Profile Type as Mac and select the App ID for the application created above +4. Select the Mac App Distribution certificate +5. Name the Provisioning Profile embedded and download the created profile. ## Mac App Store Process @@ -30,7 +36,7 @@ Apps submitted to the Mac App Store must run under Apple's [App Sandbox](https:/ **Example Entitlements File** -This is an example entitlements file from the [RiftShare](https://github.com/achhabra2/riftshare) app. For reference please put in the entitlements your app requires. Refer to [this site](https://developer.apple.com/documentation/bundleresources/entitlements) for more information. +This is an example entitlements file from the [RiftShare](https://github.com/achhabra2/riftshare) app. For reference please put in the entitlements your app requires. Refer to [this site](https://developer.apple.com/documentation/bundleresources/entitlements) for more information. You will need to replace the Team ID and Application Name with the ones you registered above. ```xml title="entitlements.plist" @@ -47,10 +53,16 @@ This is an example entitlements file from the [RiftShare](https://github.com/ach com.apple.security.files.downloads.read-write + com.apple.application-identifier + TEAM_ID.APP_NAME + com.apple.developer.team-identifier + TEAM_ID ``` +**Add the Embedded Provisioning Profile** The Provisioning Profile created above needs to be added to the root of the applicaton. It needs to be named embedded.provisionprofile. + #### Build and Sign the App Package The following is an example script for building and signing your app for Mac App Store submission. It assumes you are running the script from your root project directory. @@ -66,6 +78,8 @@ APP_NAME="YourApp" wails build -platform darwin/universal -clean +cp ./embedded.provisionprofile "./build/bin/$APP_NAME.app/Contents" + codesign --timestamp --options=runtime -s "$APP_CERTIFICATE" -v --entitlements ./build/darwin/entitlements.plist ./build/bin/$APP_NAME.app productbuild --sign "$PKG_CERTIFICATE" --component ./build/bin/$APP_NAME.app /Applications ./$APP_NAME.pkg @@ -80,4 +94,4 @@ You will need to upload the generated package file and associate it to your Appl 3. Click the + sign and select the `APP_NAME.pkg` file that you generated in the previous step. Upload it 4. Go back to the [App Store Connect](https://appstoreconnect.apple.com/apps) site and navigate back into your app submission. Select the version that you are ready to make available on the App Store. Under `Build` select the package that you uploaded via Transporter. -That's it! You can now use the site to submit your App for review. After a few business days if all goes well you should see your App live on the Mac App Store. \ No newline at end of file +That's it! You can now use the site to submit your App for review. After a few business days if all goes well you should see your App live on the Mac App Store. diff --git a/website/i18n/ko/docusaurus-plugin-content-docs/current/guides/troubleshooting.mdx b/website/i18n/ko/docusaurus-plugin-content-docs/current/guides/troubleshooting.mdx index c1cd33b38..1bb8e4d21 100644 --- a/website/i18n/ko/docusaurus-plugin-content-docs/current/guides/troubleshooting.mdx +++ b/website/i18n/ko/docusaurus-plugin-content-docs/current/guides/troubleshooting.mdx @@ -159,4 +159,8 @@ Sources: https://github.com/wailsapp/wails/issues/1806 and https://github.com/wa It's preferable to add `frontend/node_modules` and `frontend/package-lock.json` to your `.gitignore`. Otherwise when opening your repository on another machine that may have different versions of Node installed, you may not be able to run your application. -If this does happen, simply delete `frontend/node_modules` and `frontend/package-lock.json` and run your `wails build` or `wails dev` command again. \ No newline at end of file +If this does happen, simply delete `frontend/node_modules` and `frontend/package-lock.json` and run your `wails build` or `wails dev` command again. + +## Build process stuck on "Generating bindings" + +Bindings generation process runs your application in a special mode. If application, intentionally or unintentionally, contains an endless loop (i.e. not exiting after `wails.Run()` finished), this can lead to build process stuck on the stage of bindings generation. Please make sure your code exits properly. diff --git a/website/i18n/ko/docusaurus-plugin-content-docs/current/howdoesitwork.mdx b/website/i18n/ko/docusaurus-plugin-content-docs/current/howdoesitwork.mdx index 163701520..44fa130cc 100644 --- a/website/i18n/ko/docusaurus-plugin-content-docs/current/howdoesitwork.mdx +++ b/website/i18n/ko/docusaurus-plugin-content-docs/current/howdoesitwork.mdx @@ -117,7 +117,7 @@ Wails requires that you pass in an _instance_ of the struct for it to bind it co In this example, we create a new `App` instance and then add this instance to the `Bind` option in `wails.Run`: -```go {16,24} title="main.go" +```go {17,27} title="main.go" package main import ( @@ -164,7 +164,7 @@ func (a *App) Greet(name string) string { You may bind as many structs as you like. Just make sure you create an instance of it and pass it in `Bind`: -```go {8-10} +```go {10-12} //... err := wails.Run(&options.App{ Title: "Basic Demo", @@ -236,7 +236,7 @@ All data types are correctly translated between Go and JavaScript. Even structs. :::info Note -Struct fields *must* have a valid `json` tag to be included in the generated TypeScript. +Struct fields _must_ have a valid `json` tag to be included in the generated TypeScript. Anonymous nested structs are not supported at this time. diff --git a/website/i18n/ko/docusaurus-plugin-content-docs/current/reference/cli.mdx b/website/i18n/ko/docusaurus-plugin-content-docs/current/reference/cli.mdx index 92888242f..71d51b616 100644 --- a/website/i18n/ko/docusaurus-plugin-content-docs/current/reference/cli.mdx +++ b/website/i18n/ko/docusaurus-plugin-content-docs/current/reference/cli.mdx @@ -71,6 +71,7 @@ If you are unsure about a template, inspect `package.json` and `wails.json` for | -windowsconsole | Keep the console window for Windows builds | | | -obfuscate | Obfuscate the application using [garble](https://github.com/burrowers/garble) | false | | -garbleargs | Arguments to pass to garble | `-literals -tiny -seed=random` | +| -nosyncgomod | Do not sync go.mod with the Wails version | false | For a detailed description of the `webview2` flag, please refer to the [Windows](../guides/windows.mdx) Guide. @@ -80,8 +81,10 @@ Example: `wails build -clean -o myproject.exe` -:::Info +:::info + On Mac, the application will be bundled with `Info.plist`, not `Info.dev.plist`. + ::: :::info UPX on Apple Silicon @@ -184,6 +187,9 @@ Your system is ready for Wails development! | -save | Saves the given `assetdir`, `reloaddirs`, `wailsjsdir`, `debounce`, `devserver` and `frontenddevserverurl` flags in `wails.json` to become the defaults for subsequent invocations. | | | -race | Build with Go's race detector | false | | -s | Skip building the frontend | false | +| -nosyncgomod | Do not sync go.mod with the Wails version | false | + + Example: diff --git a/website/i18n/ko/docusaurus-plugin-content-docs/current/reference/options.mdx b/website/i18n/ko/docusaurus-plugin-content-docs/current/reference/options.mdx index 5f8fde991..49214bb08 100644 --- a/website/i18n/ko/docusaurus-plugin-content-docs/current/reference/options.mdx +++ b/website/i18n/ko/docusaurus-plugin-content-docs/current/reference/options.mdx @@ -50,6 +50,7 @@ func main() { OnBeforeClose: app.beforeClose, CSSDragProperty: "--wails-draggable", CSSDragValue: "drag", + EnableFraudulentWebsiteDetection: false, ZoomFactor: 1.0, IsZoomControlEnabled: false, Bind: []interface{}{ @@ -77,7 +78,8 @@ func main() { // OnSuspend is called when Windows enters low power mode OnSuspend func() // OnResume is called when Windows resumes from low power mode - OnResume func() + OnResume func(), + WebviewGpuDisabled: false, }, Mac: &mac.Options{ TitleBar: &mac.TitleBar{ @@ -100,6 +102,7 @@ func main() { Linux: &linux.Options{ Icon: icon, WindowIsTranslucent: false, + WebviewGpuPolicy: linux.WebviewGpuPolicyAlways, }, Debug: options.Debug{ OpenInspectorOnStartup: false, @@ -232,11 +235,11 @@ Not all features of an `http.Request` are currently supported, please see the fo | DELETE | ✅ | ✅ | ✅ [^1] | | Request Headers | ✅ | ✅ | ✅ [^1] | | Request Body | ✅ | ✅ | ❌ | -| Request Body Streaming | ❌ | ❌ | ❌ | +| Request Body Streaming | ✅ | ✅ | ❌ | | Response StatusCodes | ✅ | ✅ | ✅ [^1] | | Response Headers | ✅ | ✅ | ✅ [^1] | | Response Body | ✅ | ✅ | ✅ | -| Response Body Streaming | ❌ | ❌ | ✅ | +| Response Body Streaming | ❌ | ✅ | ✅ | | WebSockets | ❌ | ❌ | ❌ | | HTTP Redirects 30x | ✅ | ❌ | ❌ | @@ -356,6 +359,12 @@ Indicates what value the `CSSDragProperty` style should have to drag the window. Name: CSSDragValue
Type: `string` +### EnableFraudulentWebsiteDetection + +EnableFraudulentWebsiteDetection enables scan services for fraudulent content, such as malware or phishing attempts. These services might send information from your app like URLs navigated to and possibly other content to cloud services of Apple and Microsoft. + +Name: EnableFraudulentWebsiteDetection
Type: `bool` + ### ZoomFactor Name: ZoomFactor
Type: `float64` @@ -542,6 +551,12 @@ If set, this function will be called when Windows resumes from low power mode (s Name: OnResume
Type: `func()` +#### WebviewGpuIsDisabled + +Setting this to `true` will disable GPU hardware acceleration for the webview. + +Name: WebviewGpuIsDisabled
Type: `bool` + ### Mac This defines [Mac specific options](#mac). @@ -722,6 +737,20 @@ Setting this to `true` will make the window background translucent. Some window Name: WindowIsTranslucent
Type: `bool` +#### WebviewGpuPolicy + +This option is used for determining the webview's hardware acceleration policy. + +Name: WebviewGpuPolicy
Type: [`options.WebviewGpuPolicy`](#webviewgpupolicy-type)
Default: `WebviewGpuPolicyAlways` + +##### WebviewGpuPolicy type + +| Value | Description | +| ------------------------ | -------------------------------------------------------------------- | +| WebviewGpuPolicyAlways | Hardware acceleration is always enabled | +| WebviewGpuPolicyOnDemand | Hardware acceleration is enabled/disabled as request by web contents | +| WebviewGpuPolicyNever | Hardware acceleration is always disabled | + ### Debug This defines [Debug specific options](#Debug) that apply to debug builds. diff --git a/website/i18n/ko/docusaurus-plugin-content-docs/current/reference/runtime/clipboard.mdx b/website/i18n/ko/docusaurus-plugin-content-docs/current/reference/runtime/clipboard.mdx new file mode 100644 index 000000000..805f68ed9 --- /dev/null +++ b/website/i18n/ko/docusaurus-plugin-content-docs/current/reference/runtime/clipboard.mdx @@ -0,0 +1,23 @@ +--- +sidebar_position: 8 +--- + +# Clipboard + +This part of the runtime provides access to the operating system's clipboard.
The current implementation only handles text. + +### ClipboardGetText + +This method reads the currently stored text from the clipboard. + +Go: `ClipboardGetText(ctx context.Context) (string, error)`
Returns: a string (if the clipboard is empty an empty string will be returned) or an error. + +JS: `ClipboardGetText(): Promise`
Returns: a promise with a string result (if the clipboard is empty an empty string will be returned). + +### ClipboardSetText + +This method writes a text to the clipboard. + +Go: `ClipboardSetText(ctx context.Context, text string) error`
Returns: an error if there is any. + +JS: `ClipboardSetText(text: string): Promise`
Returns: a promise with true result if the text was successfully set on the clipboard, false otherwise. diff --git a/website/i18n/ko/docusaurus-plugin-content-docs/current/reference/runtime/events.mdx b/website/i18n/ko/docusaurus-plugin-content-docs/current/reference/runtime/events.mdx index 4b021cc05..856ba6f0c 100644 --- a/website/i18n/ko/docusaurus-plugin-content-docs/current/reference/runtime/events.mdx +++ b/website/i18n/ko/docusaurus-plugin-content-docs/current/reference/runtime/events.mdx @@ -34,4 +34,4 @@ Go: `EventsOnMultiple(ctx context.Context, eventName string, callback func(optio This method emits the given event. Optional data may be passed with the event. This will trigger any event listeners. -Go: `EventsEmit(ctx context.Context, eventName string, optionalData ...interface{})`
JS: `EventsEmit(ctx context, optionalData function(optionalData?: any))` +Go: `EventsEmit(ctx context.Context, eventName string, optionalData ...interface{})`
JS: `EventsEmit(eventName: string, ...optionalData: any)` diff --git a/website/i18n/ko/docusaurus-plugin-content-docs/current/reference/runtime/intro.mdx b/website/i18n/ko/docusaurus-plugin-content-docs/current/reference/runtime/intro.mdx index 55e9ed42e..3cacb6ba9 100644 --- a/website/i18n/ko/docusaurus-plugin-content-docs/current/reference/runtime/intro.mdx +++ b/website/i18n/ko/docusaurus-plugin-content-docs/current/reference/runtime/intro.mdx @@ -14,6 +14,7 @@ sidebar_position: 1 - [Events](events.mdx) - [Browser](browser.mdx) - [Log](log.mdx) +- [Clipboard](clipboard.mdx) Go 런타임은 `github.com/wailsapp/wails/v2/pkg/runtime` 가져오기를 통해 사용할 수 있습니다. 이 패키지의 모든 메소드는 컨텍스트를 첫 번째 매개변수로 사용합니다. 이 컨텍스트는 [OnStartup](../options.mdx#onstartup) 또는 [OnDomReady](../options.mdx#ondomready) 후크에서 가져와야 합니다. diff --git a/website/i18n/ko/docusaurus-plugin-content-docs/version-v2.0.0-rc.1.json b/website/i18n/ko/docusaurus-plugin-content-docs/version-v2.0.0-rc.1.json deleted file mode 100644 index 56715aca9..000000000 --- a/website/i18n/ko/docusaurus-plugin-content-docs/version-v2.0.0-rc.1.json +++ /dev/null @@ -1,38 +0,0 @@ -{ - "version.label": { - "message": "v2.0.0-rc.1", - "description": "The label for version v2.0.0-rc.1" - }, - "sidebar.docs.category.Getting Started": { - "message": "Getting Started", - "description": "The label for category Getting Started in sidebar docs" - }, - "sidebar.docs.category.Reference": { - "message": "Reference", - "description": "The label for category Reference in sidebar docs" - }, - "sidebar.docs.category.Runtime": { - "message": "런타임", - "description": "The label for category Runtime in sidebar docs" - }, - "sidebar.docs.category.Community": { - "message": "Community", - "description": "The label for category Community in sidebar docs" - }, - "sidebar.docs.category.Showcase": { - "message": "Showcase", - "description": "The label for category Showcase in sidebar docs" - }, - "sidebar.docs.category.Guides": { - "message": "Guides", - "description": "The label for category Guides in sidebar docs" - }, - "sidebar.docs.category.Tutorials": { - "message": "Tutorials", - "description": "The label for category Tutorials in sidebar docs" - }, - "sidebar.docs.link.Contributing": { - "message": "Contributing", - "description": "The label for link Contributing in sidebar docs, linking to /community-guide#ways-of-contributing" - } -} diff --git a/website/i18n/ko/docusaurus-plugin-content-docs/version-v2.0.0.json b/website/i18n/ko/docusaurus-plugin-content-docs/version-v2.0.0.json deleted file mode 100644 index 74029b122..000000000 --- a/website/i18n/ko/docusaurus-plugin-content-docs/version-v2.0.0.json +++ /dev/null @@ -1,38 +0,0 @@ -{ - "version.label": { - "message": "v2.0.0", - "description": "The label for version v2.0.0" - }, - "sidebar.docs.category.Getting Started": { - "message": "Getting Started", - "description": "The label for category Getting Started in sidebar docs" - }, - "sidebar.docs.category.Reference": { - "message": "Reference", - "description": "The label for category Reference in sidebar docs" - }, - "sidebar.docs.category.Runtime": { - "message": "런타임", - "description": "The label for category Runtime in sidebar docs" - }, - "sidebar.docs.category.Community": { - "message": "Community", - "description": "The label for category Community in sidebar docs" - }, - "sidebar.docs.category.Showcase": { - "message": "Showcase", - "description": "The label for category Showcase in sidebar docs" - }, - "sidebar.docs.category.Guides": { - "message": "Guides", - "description": "The label for category Guides in sidebar docs" - }, - "sidebar.docs.category.Tutorials": { - "message": "Tutorials", - "description": "The label for category Tutorials in sidebar docs" - }, - "sidebar.docs.link.Contributing": { - "message": "Contributing", - "description": "The label for link Contributing in sidebar docs, linking to /community-guide#ways-of-contributing" - } -} diff --git a/website/i18n/ko/docusaurus-plugin-content-docs/version-v2.1.0.json b/website/i18n/ko/docusaurus-plugin-content-docs/version-v2.1.0.json deleted file mode 100644 index 2e5fb8df3..000000000 --- a/website/i18n/ko/docusaurus-plugin-content-docs/version-v2.1.0.json +++ /dev/null @@ -1,38 +0,0 @@ -{ - "version.label": { - "message": "v2.1.0", - "description": "The label for version v2.1.0" - }, - "sidebar.docs.category.Getting Started": { - "message": "Getting Started", - "description": "The label for category Getting Started in sidebar docs" - }, - "sidebar.docs.category.Reference": { - "message": "Reference", - "description": "The label for category Reference in sidebar docs" - }, - "sidebar.docs.category.Runtime": { - "message": "런타임", - "description": "The label for category Runtime in sidebar docs" - }, - "sidebar.docs.category.Community": { - "message": "Community", - "description": "The label for category Community in sidebar docs" - }, - "sidebar.docs.category.Showcase": { - "message": "Showcase", - "description": "The label for category Showcase in sidebar docs" - }, - "sidebar.docs.category.Guides": { - "message": "Guides", - "description": "The label for category Guides in sidebar docs" - }, - "sidebar.docs.category.Tutorials": { - "message": "Tutorials", - "description": "The label for category Tutorials in sidebar docs" - }, - "sidebar.docs.link.Contributing": { - "message": "Contributing", - "description": "The label for link Contributing in sidebar docs, linking to /community-guide#ways-of-contributing" - } -} diff --git a/website/i18n/ko/docusaurus-plugin-content-docs/version-v2.2.0.json b/website/i18n/ko/docusaurus-plugin-content-docs/version-v2.2.0.json deleted file mode 100644 index 7a73bd66f..000000000 --- a/website/i18n/ko/docusaurus-plugin-content-docs/version-v2.2.0.json +++ /dev/null @@ -1,38 +0,0 @@ -{ - "version.label": { - "message": "v2.2.0", - "description": "The label for version v2.2.0" - }, - "sidebar.docs.category.Getting Started": { - "message": "Getting Started", - "description": "The label for category Getting Started in sidebar docs" - }, - "sidebar.docs.category.Reference": { - "message": "Reference", - "description": "The label for category Reference in sidebar docs" - }, - "sidebar.docs.category.Runtime": { - "message": "런타임", - "description": "The label for category Runtime in sidebar docs" - }, - "sidebar.docs.category.Community": { - "message": "Community", - "description": "The label for category Community in sidebar docs" - }, - "sidebar.docs.category.Showcase": { - "message": "Showcase", - "description": "The label for category Showcase in sidebar docs" - }, - "sidebar.docs.category.Guides": { - "message": "Guides", - "description": "The label for category Guides in sidebar docs" - }, - "sidebar.docs.category.Tutorials": { - "message": "Tutorials", - "description": "The label for category Tutorials in sidebar docs" - }, - "sidebar.docs.link.Contributing": { - "message": "Contributing", - "description": "The label for link Contributing in sidebar docs, linking to /community-guide#ways-of-contributing" - } -} diff --git a/website/i18n/ru/docusaurus-plugin-content-docs/version-v2.0.0.json b/website/i18n/ko/docusaurus-plugin-content-docs/version-v2.3.0.json similarity index 94% rename from website/i18n/ru/docusaurus-plugin-content-docs/version-v2.0.0.json rename to website/i18n/ko/docusaurus-plugin-content-docs/version-v2.3.0.json index 421c838e6..32ec6fb1d 100644 --- a/website/i18n/ru/docusaurus-plugin-content-docs/version-v2.0.0.json +++ b/website/i18n/ko/docusaurus-plugin-content-docs/version-v2.3.0.json @@ -1,7 +1,7 @@ { "version.label": { - "message": "v2.0.0", - "description": "The label for version v2.0.0" + "message": "v2.3.0", + "description": "The label for version v2.3.0" }, "sidebar.docs.category.Getting Started": { "message": "Getting Started", diff --git a/website/i18n/pt/docusaurus-plugin-content-docs/version-v2.0.0.json b/website/i18n/ko/docusaurus-plugin-content-docs/version-v2.3.1.json similarity index 94% rename from website/i18n/pt/docusaurus-plugin-content-docs/version-v2.0.0.json rename to website/i18n/ko/docusaurus-plugin-content-docs/version-v2.3.1.json index 421c838e6..c793961dc 100644 --- a/website/i18n/pt/docusaurus-plugin-content-docs/version-v2.0.0.json +++ b/website/i18n/ko/docusaurus-plugin-content-docs/version-v2.3.1.json @@ -1,7 +1,7 @@ { "version.label": { - "message": "v2.0.0", - "description": "The label for version v2.0.0" + "message": "v2.3.1", + "description": "The label for version v2.3.1" }, "sidebar.docs.category.Getting Started": { "message": "Getting Started", diff --git a/website/i18n/fr/docusaurus-plugin-content-docs/version-v2.0.0-rc.1.json b/website/i18n/ko/docusaurus-plugin-content-docs/version-v2.4.0.json similarity index 75% rename from website/i18n/fr/docusaurus-plugin-content-docs/version-v2.0.0-rc.1.json rename to website/i18n/ko/docusaurus-plugin-content-docs/version-v2.4.0.json index 102c4dd15..d1f1ab551 100644 --- a/website/i18n/fr/docusaurus-plugin-content-docs/version-v2.0.0-rc.1.json +++ b/website/i18n/ko/docusaurus-plugin-content-docs/version-v2.4.0.json @@ -1,38 +1,38 @@ { "version.label": { - "message": "v2.0.0-rc.1", - "description": "The label for version v2.0.0-rc.1" + "message": "v2.4.0", + "description": "The label for version v2.4.0" }, "sidebar.docs.category.Getting Started": { - "message": "Premiers pas", + "message": "시작하기", "description": "The label for category Getting Started in sidebar docs" }, "sidebar.docs.category.Reference": { - "message": "Référence", + "message": "레퍼런스", "description": "The label for category Reference in sidebar docs" }, "sidebar.docs.category.Runtime": { - "message": "Exécution", + "message": "실행 시간", "description": "The label for category Runtime in sidebar docs" }, "sidebar.docs.category.Community": { - "message": "Communauté", + "message": "커뮤니티", "description": "The label for category Community in sidebar docs" }, "sidebar.docs.category.Showcase": { - "message": "Galerie", + "message": "쇼케이스", "description": "The label for category Showcase in sidebar docs" }, "sidebar.docs.category.Guides": { - "message": "Guides", + "message": "가이드", "description": "The label for category Guides in sidebar docs" }, "sidebar.docs.category.Tutorials": { - "message": "Tutoriels", + "message": "튜토리얼", "description": "The label for category Tutorials in sidebar docs" }, "sidebar.docs.link.Contributing": { - "message": "Contribuer", + "message": "기여", "description": "The label for link Contributing in sidebar docs, linking to /community-guide#ways-of-contributing" } } diff --git a/website/i18n/ko/docusaurus-plugin-content-pages/changelog.mdx b/website/i18n/ko/docusaurus-plugin-content-pages/changelog.mdx index 3b6a5eda4..3162644a5 100644 --- a/website/i18n/ko/docusaurus-plugin-content-pages/changelog.mdx +++ b/website/i18n/ko/docusaurus-plugin-content-pages/changelog.mdx @@ -13,6 +13,37 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), ## [Unreleased] +## v2.4.0 - 2022-03-08 + +### Added +- Added Webview GPU acceleration options for [Windows](/docs/reference/options#webviewgpuisdisabled) and [Linux](/docs/reference/options#webviewgpupolicy). Added by @Lyimmi in [PR](https://github.com/wailsapp/wails/pull/2266) +- Added `EnableFraudulentWebsiteDetection` option to opt-in to scan services for fraudulent content, such as malware or phishing attempts. Older releases had the scan services per default activated. Added by @stffabi in [PR](https://github.com/wailsapp/wails/pull/2269) +- Allow an [AssetServer Middleware](/docs/reference/options#middleware) to specify the `Content-Type` of a file served by the [Assets](/docs/reference/options#assets-1) `fs.FS`. Added by @stffabi in [PR](https://github.com/wailsapp/wails/pull/2286) +- The AssetServer now detects more mimetypes by extension, e.g. `.mjs`. Added by @stffabi in [PR](https://github.com/wailsapp/wails/pull/2391) + +### Changed +- Improved fullscreen mode for frameless window on Windows. Changed by @stffabi in [PR](https://github.com/wailsapp/wails/pull/2279), [PR](https://github.com/wailsapp/wails/pull/2288) and [PR](https://github.com/wailsapp/wails/pull/2299) +- On Windows unmaximising a window has no effect anymore when the window is in fullscreen mode, this makes it consistent with e.g. macOS. Changed by @stffabi in [PR](https://github.com/wailsapp/wails/pull/2279) +- Frameless resize now sets the cursor on documentElement, otherwise resizing cursor won't be shown outside of the body rectangle. Changed by @stffabi in [PR](https://github.com/wailsapp/wails/pull/2289) +- Improved the `--wails-draggable` experience to be more reactive. Changed by @stffabi in [PR](https://github.com/wailsapp/wails/pull/2302) +- NSIS template now installs the shortcuts for all users and not only for the current user. Changed by @stffabi in [PR](https://github.com/wailsapp/wails/pull/2373) + +### Fixed +- Fixed failing build hooks when `build/bin` was missing. Fixed by @Lyimmi in [PR](https://github.com/wailsapp/wails/pull/2273) +- Fixed fullscreen mode for frameless window on Windows to fully cover the taskbar when changing into fullscreen from maximised state. Fixed by @stffabi in [PR](https://github.com/wailsapp/wails/pull/2279) +- Fixed set window background colour on Windows when setting the colour via runtime. Fixed by @stffabi in [PR](https://github.com/wailsapp/wails/pull/2279) +- Fixed the showing of a white border around a fullscreen window when `DisableWindowIcon` is active on Windows. Fixed by @stffabi in [PR](https://github.com/wailsapp/wails/pull/2299) +- Fixed the sometimes lagging drag experience with `--wails-draggable` on Windows. Fixed by @stffabi in [PR](https://github.com/wailsapp/wails/pull/2302) +- Fixed applying the default arch to platform flag in wails cli. If only a `GOOS` has been supplied as platform flag e.g. `wails build --platform windows` the current architecture wasn't applied and the build failed. Fixed by @stffabi in [PR](https://github.com/wailsapp/wails/pull/2309) +- Fixed a segfault on opening the inspector on older macOS versions. Fixed by @stffabi in [PR](https://github.com/wailsapp/wails/pull/2397) +- Fixed the macos single architecture builds not respecting an output file name specified with the '-o' flag. Fixed by @gwynforthewyn in [PR](https://github.com/wailsapp/wails/pull/2358) +- Fixed `undo`/`redo` on macOS. Fixed by @stffabi in [PR](https://github.com/wailsapp/wails/pull/2430) +- Fixed `Events*` runtime functions in JavaScript not returning the function to cancel the watcher. Fixed by @zllovesuki in [PR](https://github.com/wailsapp/wails/pull/2434) +- Fixed AppOptions merging defaults when a custom logger is used. Fixed by @stffabi in [PR](https://github.com/wailsapp/wails/pull/2452) +- Fixed race condition and missing unlock of mutex in events handling. Fixed by @stffabi in [PR](https://github.com/wailsapp/wails/pull/2453) + +## v2.3.0 - 2022-12-29 + ### Added - Added `OpenInspectorOnStartup` to debug options to allow opening the WebInspector during startup of the application in debug mode. Added by @stffabi in [PR](https://github.com/wailsapp/wails/pull/2080) - On macOS `wails doctor` now also shows the version of Xcode installed. Added by @stffabi in [PR](https://github.com/wailsapp/wails/pull/2089) @@ -21,15 +52,36 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), - The `WindowSetAlwaysOnTop` method is now exposed in the JS runtime. Fixed by @gotid in [PR](https://github.com/wailsapp/wails/pull/2128) - The [AssetServer](/docs/reference/options#assetserver) now supports serving the index.html file when requesting a directory. Added by @stffabi in [PR](https://github.com/wailsapp/wails/pull/2110) - Added support for WebKit2GTK 2.36+ on Linux. This brings additional features for the [AssetServer](/docs/reference/options#assetserver), like support for HTTP methods and Headers. The app must be compiled with the Go build tag `webkit2_36` to activate support for this features. This also bumps the minimum requirement of WebKit2GTK to 2.36 for your app. Fixed by @stffabi in this [PR](https://github.com/wailsapp/wails/pull/2151) +- Added support for file input selection on macOS. Added by @stffabi in [PR](https://github.com/wailsapp/wails/pull/2209) +- Added support Request/Response streaming of the AssetServer on macOS. Added by @stffabi in [PR](https://github.com/wailsapp/wails/pull/2219) +- Added request path checks for the AssetServer. Added by @stffabi in [PR](https://github.com/wailsapp/wails/pull/2235) +- Added new App Store guide. Added by @achhabra2 in [PR](https://github.com/wailsapp/wails/pull/2142) +- Added extra libwebkit check for dnf package manager (required for latest Fedora). Fixed by @NullCode1337 in this [PR](https://github.com/wailsapp/wails/pull/2218) +- Added new `-nomodsync` flag to disable the automatic syncing of the `go.mod` file. Added by @leaanthony in [PR](https://github.com/wailsapp/wails/pull/2215) +- Added support for adding prefix and postfix text to generated Typescript classes. Added by @OlegGulevskyy in [PR](https://github.com/wailsapp/wails/pull/2101) +- Added reference to NSIS as optional dependency. Added by @acheong08 in [PR](https://github.com/wailsapp/wails/pull/2070) +- Added Korean translation for the website. Added by @cybertramp in [PR](https://github.com/wailsapp/wails/pull/2093) ### Fixed - The `noreload` flag in wails dev wasn't applied. Fixed by @stffabi in this [PR](https://github.com/wailsapp/wails/pull/2081) - `build/bin` folder was duplicating itself on each reload in `wails dev` mode. Fixed by @OlegGulevskyy in this [PR](https://github.com/wailsapp/wails/pull/2103) - Prevent a thin white line at the bottom of a frameless window on Windows. Fixed by @stffabi in this [PR](https://github.com/wailsapp/wails/pull/2111) - Better signal handling for Linux. Fixed by @leaanthony in this [PR](https://github.com/wailsapp/wails/pull/2152) +- Running the docs locally was broken due to mandatory crowdin token requirement. Fixed by @OlegGulevskyy in this [PR](https://github.com/wailsapp/wails/pull/2231) +- Generated typescript for Go functions that returned a single error was incorrect. Fixed by @ATenderholt in this [PR](https://github.com/wailsapp/wails/pull/2247) +- The right mouse event was not being raised correctly for Linux. Fixed by @leaanthony in this [PR](https://github.com/wailsapp/wails/pull/2190) +- Remove extra spaces in Wails version when querying `go.mod`. Fixed by @matholt in this [PR](https://github.com/wailsapp/wails/pull/2197) +- Fix go tests failure on Mac. Fixed by @avengerweb in this [PR](https://github.com/wailsapp/wails/pull/2187) +- Fix go test errors. Fixed by @misitebao & @avengerweb in [these](https://github.com/wailsapp/wails/pull/2169) [PRs](https://github.com/wailsapp/wails/pull/2187) +- Added `WindowSetAlwaysOnTop` to the JS runtime. Fixed by @gotid in [PR](https://github.com/wailsapp/wails/pull/2128) +- Fixed obfuscated flag typo in docs. Fixed by @ckilb in [PR](https://github.com/wailsapp/wails/pull/2102) +- Fixed React Hash Router link in docs. Fixed by @marvinhosea in [PR](https://github.com/wailsapp/wails/pull/2050) ### Changed - Improve error message if no `index.html` could be found in the assets and validate assetserver options. Changed by @stffabi in this [PR](https://github.com/wailsapp/wails/pull/2110) +- Promote the Go WebView2Loader from experimental to stable. This means now per default all Wails build use the new loader introduced with `v2.2.0`. The old loader remains usable with build tag `native_webview2loader` for the next few releases. Changed by @stffabi in this [PR](https://github.com/wailsapp/wails/pull/2199) +- Refactored CLI. Changed by @leaanthony in this [PR](https://github.com/wailsapp/wails/pull/2123) +- Remove unreachable code. Changed by @tmclane in this [PR](https://github.com/wailsapp/wails/pull/2182) ## v2.2.0 - 2022-11-09 diff --git a/website/i18n/ko/docusaurus-plugin-content-pages/community-guide.mdx b/website/i18n/ko/docusaurus-plugin-content-pages/community-guide.mdx index d492e70f5..6bacf54bc 100644 --- a/website/i18n/ko/docusaurus-plugin-content-pages/community-guide.mdx +++ b/website/i18n/ko/docusaurus-plugin-content-pages/community-guide.mdx @@ -15,7 +15,7 @@ This [Code of Conduct](./coc) is an easy guide to develop the technical communit ### Get Support - [GitHub](https://github.com/wailsapp/wails) - If you have a bug to report or feature to request, that's what the GitHub issues are for. Please respect the rules specified in each repository's issue template. -- [Discord](https://discord.com/invite/JDdSxwjhGf) - A place for Wails devs to meet and chat in real time. +- [Discord](https://discord.gg/JDdSxwjhGf) - A place for Wails devs to meet and chat in real time. - [QQ Group(中文)](https://qm.qq.com/cgi-bin/qm/qr?k=PmIURne5hFGNd7QWzW5qd6FV-INEjNJv&jump_from=webapi) - A Wails group for Chinese developers to communicate, where you can get help from other developers. ### Explore the Ecosystem @@ -96,7 +96,7 @@ If you chose to test if someone's bug report is reproducible on your local syste To test PRs, choose a PR to test and check if the PR description has the testing scenarios listed. If not, please ask the person who opened the PR to provide that list. Once you have determined a valid test scenario, please report your findings on the PR. -If you ever need more clarity or help on testing, please ask a question in the [Contributing to Wails](https://github.com/wailsapp/wails/discussions/1520) discussion or on discord. +If you ever need more clarity or help on testing, please ask a question in the [Contributing to Wails](https://github.com/wailsapp/wails/discussions/1520) discussion or on slack. ### Documenting @@ -131,9 +131,9 @@ If you want to add a new language to the documentation, please follow the prompt ### Helping Others -A great way to contribute to the project is to help others who are experiencing difficulty. This is normally reported as a ticket or a message on the Wails slack channel. Even just clarifying the issue can really help out. Sometimes, when an issue is discussed and gets resolved, we create a guide out of it to help others who face the same issues. +A great way to contribute to the project is to help others who are experiencing difficulty. This is normally reported as a ticket or a message on the Wails discord server. Even just clarifying the issue can really help out. Sometimes, when an issue is discussed and gets resolved, we create a guide out of it to help others who face the same issues. -To join the Wails slack channel, accept the invite [here](https://gophers.slack.com/join/shared_invite/zt-197vymgt3-sJt4oyakb6nqlVKjXTyeVw#/shared-invite/email) and join us on the channel by following [this link](https://gophers.slack.com/?redir=%2Fmessages%2FCJ4P9F7MZ%2F). +To join the Wails discord server, click [here](https://discord.gg/JDdSxwjhGf). :::note diff --git a/website/i18n/ko/docusaurus-plugin-content-pages/credits.mdx b/website/i18n/ko/docusaurus-plugin-content-pages/credits.mdx index 2c70c7bb1..0f2106805 100644 --- a/website/i18n/ko/docusaurus-plugin-content-pages/credits.mdx +++ b/website/i18n/ko/docusaurus-plugin-content-pages/credits.mdx @@ -4,10 +4,11 @@ - [Stffabi](https://github.com/stffabi) - Technical lead, developer and maintainer - [Misite Bao](https://github.com/misitebao) - Documentation wizard, Chinese translation, Windows testing, Bug finder general - [Travis McLane](https://github.com/tmclane) - Cross-compilation work, MacOS testing -- [Byron Chris](https://github.com/bh90210) - Linux distro wizard, Linux testing +- [Lyimmi](https://github.com/Lyimmi) - All things Linux ## Sponsors + ## Contributors @@ -15,172 +16,244 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Lea Anthony

💻 🤔 🎨 🖋 💡 🧑‍🏫 📆 🔧 🐛 📝 🚧 📦 👀 💬 🔬 ⚠️ 📢 👀 📖

stffabi

💻 🤔 🎨 🐛 🚧 📦 👀 💬 🔬 👀 📖 ⚠️

Travis McLane

💻 🔬 📦 🤔 🐛 👀 ⚠️ 💬 📖

Misite Bao

📖 🌍 🔬 🚧

Byron Chris

💻 🔬 🚧 🐛 👀 ⚠️ 💬 🤔 🎨 📦 🚇

konez2k

💻 📦 🤔

Dario Emerson

💻 🐛 🤔 ⚠️

Ian M. Jones

💻 🐛 🤔 ⚠️ 👀 📦

marktohark

💻

Ryan H

💻

Cody Bentley

💻 📦 🤔 💵

Florent

💻 🐛

Alexander Hudek

💻 💵

Tim Kipp

💻

Altynbek Kaliakbarov

💻

Nikolai Zimmermann

💻

k-muchmore

💻

Snider

💻 🤔 📖 💵

Albert Sun

💻 ⚠️

Ariel

💻 🐛

Ilgıt Yıldırım

💻 🐛 💵

Toyam Cox

💻 📦 🐛

hi019

💻 🐛

Arthur Wiebe

💻 🐛

Balakrishna Prasad Ganne

💻

BillBuilt

💻 📦 🤔 💬 💵

Eng Zer Jun

🚧 💻

LGiki

📖

Lontten

📖

Lukas Crepaz

💻 🐛

Marcus Crane

🐛 📖 💵

Qais Patankar

📖

Wakeful-Cloud

💻 🐛

Zámbó, Levente

💻 📦 🐛 ⚠️

Ironpark

💻 🤔

mondy

💻 📖

Benjamin Ryan

🐛

fallendusk

📦 💻

Mat Ryer

💻 🤔 🐛

Abtin

💻 🐛

Adrian Lanzafame

📦 💻

Aleksey Polyakov

🐛 💻

Alexander Matviychuk

💻 📦

AlienRecall

💻 📦

Aman

📖

Amaury Tobias Quiroz

💻 🐛

Andreas Wenk

📖

Antonio Stanković

💻 📦

Arpit Jain

📖

Austin Schey

💻 🐛

Benjamin Thomas

💻 📦 🤔

Bertram Truong

💻 🐛

Blake Bourque

📖

Denis

📖

diogox

💻 📦

Dmitry Gomzyakov

💻 📦

Edward Browncross

💻

Elie Grenon

💻

Florian Didron

💻 🐛 🤔 ⚠️ 👀 📦

GargantuaX

💵

Igor Minin

💻 🐛

Jae-Sung Lee

💻 🤔

Jarek

💻 📦

Junker

📖

Kris Raney

💻 🐛

Luken

📖

Mark Stenglein

💻 🐛

buddyabaddon

💻

MikeSchaap

💻 🐛

NYSSEN Michaël

💻 🐛

Nan0

💻 🤔 ⚠️ 👀

oskar

📖

Pierre Joye

💻 🐛 🤔 ⚠️

Reuben Thomas-Davis

💻 🐛

Robin

💻 🐛

Sebastian Bauer

💻 🤔 ⚠️ 👀 💬

Sidharth Rathi

📖 🐛

Sithembiso Khumalo

💻 🐛

Soheib El-Harrache

💻 🐛 💵

Sophie Au

💻 🐛

Stefanos Papadakis

💻 🐛

Steve Chung

💻 🐛

Timm Ortloff

📖

Tom

💻

Valentin Trinqué

💻 🐛

mattn

💻 🐛

bearsh

💻 🤔 📖

chenxiao

💻 🤔 📖

fengweiqiang

💻 📦

flin7

📖

fred21O4

📖

gardc

📖

rayshoo

📖

Ishiyama Yuzuki

💻 🐛

佰阅

💻

刀刀

📖 🐛

归位

💻 🐛

skamensky

💻 🤔 📖

dependabot[bot]

💻 🚧

Damian Sieradzki

💵

John Dorman

💵

Ian Sinnott

💵

Arden Shackelford

💵

Bironou

💵

CharlieGo_

💵

overnet

💵

jugglingjsons

💵

Selvin Ortiz

💵

ZanderCodes

💵

Michael Voronov

💵

letheanVPN

💵

Tai Groot

💵

easy-web-it

💵

Michael Olson

💵

EdenNetwork Italia

💵

ondoki

💵

QuEST Rail LLC

💵

Gilgameš

💵

Bernt-Johan Bergshaven

💵

Liam Bigelow

💵

Nick Arellano

💵

Frank Chiarulli Jr.

💵

Tyler

💵

Trea Hauet

💵

Kent 'picat' Gruber

💵

tc-hib

💵

Antonio

📖

MyNameIsAres

📖

Maicarons J

📖

kiddov

📖 💵 ⚠️ 🤔

Nicolas Coutin

💵

Parvin Eyvazov

📖
Lea Anthony
Lea Anthony

💻 🤔 🎨 🖋 💡 🧑‍🏫 📆 🔧 🐛 📝 🚧 📦 👀 💬 🔬 ⚠️ 📢 👀 📖
stffabi
stffabi

💻 🤔 🎨 🐛 🚧 📦 👀 💬 🔬 👀 📖 ⚠️
Travis McLane
Travis McLane

💻 🔬 📦 🤔 🐛 👀 ⚠️ 💬 📖
Misite Bao
Misite Bao

📖 🌍 🔬 🚧
Byron Chris
Byron Chris

💻 🔬 🚧 🐛 👀 ⚠️ 💬 🤔 🎨 📦 🚇
konez2k
konez2k

💻 📦 🤔
Dario Emerson
Dario Emerson

💻 🐛 🤔 ⚠️
Ian M. Jones
Ian M. Jones

💻 🐛 🤔 ⚠️ 👀 📦
marktohark
marktohark

💻
Ryan H
Ryan H

💻
Cody Bentley
Cody Bentley

💻 📦 🤔 💵
Florent
Florent

💻 🐛
Alexander Hudek
Alexander Hudek

💻 💵
Tim Kipp
Tim Kipp

💻
Altynbek Kaliakbarov
Altynbek Kaliakbarov

💻
Nikolai Zimmermann
Nikolai Zimmermann

💻
k-muchmore
k-muchmore

💻
Snider
Snider

💻 🤔 📖 💵
Albert Sun
Albert Sun

💻 ⚠️
Ariel
Ariel

💻 🐛
Ilgıt Yıldırım
Ilgıt Yıldırım

💻 🐛 💵
Toyam Cox
Toyam Cox

💻 📦 🐛
hi019
hi019

💻 🐛
Arthur Wiebe
Arthur Wiebe

💻 🐛
Balakrishna Prasad Ganne
Balakrishna Prasad Ganne

💻
BillBuilt
BillBuilt

💻 📦 🤔 💬 💵
Eng Zer Jun
Eng Zer Jun

🚧 💻
LGiki
LGiki

📖
Lontten
Lontten

📖
Lukas Crepaz
Lukas Crepaz

💻 🐛
Marcus Crane
Marcus Crane

🐛 📖 💵
Qais Patankar
Qais Patankar

📖
Wakeful-Cloud
Wakeful-Cloud

💻 🐛
Zámbó, Levente
Zámbó, Levente

💻 📦 🐛 ⚠️
Ironpark
Ironpark

💻 🤔
mondy
mondy

💻 📖
Benjamin Ryan
Benjamin Ryan

🐛
fallendusk
fallendusk

📦 💻
Mat Ryer
Mat Ryer

💻 🤔 🐛
Abtin
Abtin

💻 🐛
Adrian Lanzafame
Adrian Lanzafame

📦 💻
Aleksey Polyakov
Aleksey Polyakov

🐛 💻
Alexander Matviychuk
Alexander Matviychuk

💻 📦
AlienRecall
AlienRecall

💻 📦
Aman
Aman

📖
Amaury Tobias Quiroz
Amaury Tobias Quiroz

💻 🐛
Andreas Wenk
Andreas Wenk

📖
Antonio Stanković
Antonio Stanković

💻 📦
Arpit Jain
Arpit Jain

📖
Austin Schey
Austin Schey

💻 🐛
Benjamin Thomas
Benjamin Thomas

💻 📦 🤔
Bertram Truong
Bertram Truong

💻 🐛
Blake Bourque
Blake Bourque

📖
Denis
Denis

📖
diogox
diogox

💻 📦
Dmitry Gomzyakov
Dmitry Gomzyakov

💻 📦
Edward Browncross
Edward Browncross

💻
Elie Grenon
Elie Grenon

💻
Florian Didron
Florian Didron

💻 🐛 🤔 ⚠️ 👀 📦
GargantuaX
GargantuaX

💵
Igor Minin
Igor Minin

💻 🐛
Jae-Sung Lee
Jae-Sung Lee

💻 🤔
Jarek
Jarek

💻 📦
Junker
Junker

📖
Kris Raney
Kris Raney

💻 🐛
Luken
Luken

📖
Mark Stenglein
Mark Stenglein

💻 🐛
buddyabaddon
buddyabaddon

💻
MikeSchaap
MikeSchaap

💻 🐛
NYSSEN Michaël
NYSSEN Michaël

💻 🐛
Nan0
Nan0

💻 🤔 ⚠️ 👀
oskar
oskar

📖
Pierre Joye
Pierre Joye

💻 🐛 🤔 ⚠️
Reuben Thomas-Davis
Reuben Thomas-Davis

💻 🐛
Robin
Robin

💻 🐛
Sebastian Bauer
Sebastian Bauer

💻 🤔 ⚠️ 👀 💬
Sidharth Rathi
Sidharth Rathi

📖 🐛
Sithembiso Khumalo
Sithembiso Khumalo

💻 🐛
Soheib El-Harrache
Soheib El-Harrache

💻 🐛 💵
Sophie Au
Sophie Au

💻 🐛
Stefanos Papadakis
Stefanos Papadakis

💻 🐛
Steve Chung
Steve Chung

💻 🐛
Timm Ortloff
Timm Ortloff

📖
Tom
Tom

💻
Valentin Trinqué
Valentin Trinqué

💻 🐛
mattn
mattn

💻 🐛
bearsh
bearsh

💻 🤔 📖
chenxiao
chenxiao

💻 🤔 📖
fengweiqiang
fengweiqiang

💻 📦
flin7
flin7

📖
fred21O4
fred21O4

📖
gardc
gardc

📖
rayshoo
rayshoo

📖
Ishiyama Yuzuki
Ishiyama Yuzuki

💻 🐛
佰阅
佰阅

💻
刀刀
刀刀

📖 🐛
归位
归位

💻 🐛
skamensky
skamensky

💻 🤔 📖
dependabot[bot]
dependabot[bot]

💻 🚧
Damian Sieradzki
Damian Sieradzki

💵
John Dorman
John Dorman

💵
Ian Sinnott
Ian Sinnott

💵
Arden Shackelford
Arden Shackelford

💵
Bironou
Bironou

💵
CharlieGo_
CharlieGo_

💵
overnet
overnet

💵
jugglingjsons
jugglingjsons

💵
Selvin Ortiz
Selvin Ortiz

💵
ZanderCodes
ZanderCodes

💵
Michael Voronov
Michael Voronov

💵
letheanVPN
letheanVPN

💵
Tai Groot
Tai Groot

💵
easy-web-it
easy-web-it

💵
Michael Olson
Michael Olson

💵
EdenNetwork Italia
EdenNetwork Italia

💵
ondoki
ondoki

💵
QuEST Rail LLC
QuEST Rail LLC

💵
Gilgameš
Gilgameš

💵
Bernt-Johan Bergshaven
Bernt-Johan Bergshaven

💵
Liam Bigelow
Liam Bigelow

💵
Nick Arellano
Nick Arellano

💵
Frank Chiarulli Jr.
Frank Chiarulli Jr.

💵
Tyler
Tyler

💵
Trea Hauet
Trea Hauet

💵
Kent 'picat' Gruber
Kent 'picat' Gruber

💵
tc-hib
tc-hib

💵
Antonio
Antonio

📖
MyNameIsAres
MyNameIsAres

📖
Maicarons J
Maicarons J

📖
kiddov
kiddov

📖 💵 ⚠️ 🤔
Nicolas Coutin
Nicolas Coutin

💵
Parvin Eyvazov
Parvin Eyvazov

📖
github-actions[bot]
github-actions[bot]

💻
Oleg Gulevskyy
Oleg Gulevskyy

💻 📖 🚧 📦
Richard Guay
Richard Guay

📖
Adam Tenderholt
Adam Tenderholt

💻
JulioDRF
JulioDRF

💻
Scott Opell
Scott Opell

💻
Vadim Shchepotev
Vadim Shchepotev

💻
Will Andrews
Will Andrews

💻
Gwyn
Gwyn

💻 👀 💬 🔬
希嘉嘉
希嘉嘉

💻
ALMAS
ALMAS

💻
Alex
Alex

💻
Arif Ali
Arif Ali

💻
Artur Siarohau
Artur Siarohau

💻
Binyamin Aron Green
Binyamin Aron Green

💻
Brian Dwyer
Brian Dwyer

💻
Christian Kilb
Christian Kilb

💻
David Florness
David Florness

📖
David Walton
David Walton

💻
Debdut Karmakar
Debdut Karmakar

💻
Dieter Zhu
Dieter Zhu

💻
Fredrik Holmqvist
Fredrik Holmqvist

💻
Giovanni Palma
Giovanni Palma

💻
Hao
Hao

💻
Igor Sementsov
Igor Sementsov

💻
Johannes Haseitl
Johannes Haseitl

💻
Joshua Hull
Joshua Hull

💻
Joshua Mangiola
Joshua Mangiola

📖
Kevin MacMartin
Kevin MacMartin

💻
Liang Li
Liang Li

💻
Marvin Collins Hosea
Marvin Collins Hosea

💻
Matt Holt
Matt Holt

💻
Niklas
Niklas

💻
Andy Hsu
Andy Hsu

💻
NullCode
NullCode

💻
Oussama Sethoum
Oussama Sethoum

💻
ParkourLiu
ParkourLiu

💻
Rachel Chen
Rachel Chen

💻
Rob Nice
Rob Nice

💻
Ryo TAGAMI
Ryo TAGAMI

💻
Sam Hennessy
Sam Hennessy

💻
Sean
Sean

💻
Sean Gosiaco
Sean Gosiaco

💻
Eric P Sheets
Eric P Sheets

💻
Supian M
Supian M

💻
Watson-Sei
Watson-Sei

💻 📖
Yuki Shindo
Yuki Shindo

💻
cuigege
cuigege

💻
cybertramp
cybertramp

💻
hiroki yagi
hiroki yagi

💻
imgbot[bot]
imgbot[bot]

💻
juju
juju

💻
Michael Eatherly
Michael Eatherly

💻
tk
tk

💻
allcontributors[bot]
allcontributors[bot]

📖
wander
wander

📖
@@ -193,6 +266,7 @@ - [John Chadwick](https://github.com/jchv) - His amazing work on [go-webview2](https://github.com/jchv/go-webview2) and [go-winloader](https://github.com/jchv/go-winloader) have made the Windows version possible. - [Tad Vizbaras](https://github.com/tadvi) - His winc project was the first step down the path to a pure Go Wails. - [Mat Ryer](https://github.com/matryer) - For advice, support and bants. +- [Byron Chris](https://github.com/bh90210) - For his long term contributions to this project. - [Dustin Krysak](https://wiki.ubuntu.com/bashfulrobot) - His support and feedback has been invaluable. - [Justen Walker](https://github.com/justenwalker/) - For helping wrangle COM issues which got v2 over the line. - [Wang, Chi](https://github.com/patr0nus/) - The DeskGap project was a huge influence on the direction of Wails v2. diff --git a/website/i18n/ko/docusaurus-theme-classic/footer.json b/website/i18n/ko/docusaurus-theme-classic/footer.json index 5fca1ae99..0a204f208 100644 --- a/website/i18n/ko/docusaurus-theme-classic/footer.json +++ b/website/i18n/ko/docusaurus-theme-classic/footer.json @@ -50,5 +50,9 @@ "link.item.label.Awesome": { "message": "Awesome", "description": "The label of footer link with label=Awesome linking to https://github.com/wailsapp/awesome-wails" + }, + "link.item.label.Discord": { + "message": "Discord", + "description": "The label of footer link with label=Discord linking to https://discord.gg/JDdSxwjhGf" } } diff --git a/website/i18n/pt/code.json b/website/i18n/pt/code.json index 5e13a33d0..efeb4074d 100644 --- a/website/i18n/pt/code.json +++ b/website/i18n/pt/code.json @@ -411,5 +411,13 @@ "theme.SearchModal.placeholder": { "message": "Search docs", "description": "The placeholder of the input of the DocSearch pop-up modal" + }, + "theme.docs.sidebar.closeSidebarButtonAriaLabel": { + "message": "Close navigation bar", + "description": "The ARIA label for close button of mobile sidebar" + }, + "theme.docs.sidebar.toggleSidebarButtonAriaLabel": { + "message": "Toggle navigation bar", + "description": "The ARIA label for hamburger menu button of mobile navigation" } } diff --git a/website/i18n/pt/docusaurus-plugin-content-blog/2023-01-17-v3-roadmap.mdx b/website/i18n/pt/docusaurus-plugin-content-blog/2023-01-17-v3-roadmap.mdx new file mode 100644 index 000000000..9a137d09a --- /dev/null +++ b/website/i18n/pt/docusaurus-plugin-content-blog/2023-01-17-v3-roadmap.mdx @@ -0,0 +1,184 @@ +--- +slug: the-road-to-wails-v3 +title: The Road to Wails v3 +authors: + - leaanthony +tags: + - wails + - v3 +--- + +```mdx-code-block +
+ +
+
+``` + +# Introduction + +Wails is a project that simplifies the ability to write cross-platform desktop applications using Go. It uses native webview components for the frontend (not embedded browsers), bringing the power of the world's most popular UI system to Go, whilst remaining lightweight. + +Version 2 was released on the 22nd of September 2022 and brought with it a lot of enhancements including: + +- Live development, leveraging the popular Vite project +- Rich functionality for managing windows and creating menus +- Microsoft's WebView2 component +- Generation of Typescript models that mirror your Go structs +- Creating of NSIS Installer +- Obfuscated builds + +Right now, Wails v2 provides powerful tooling for creating rich, cross-platform desktop applications. + +This blog post aims to look at where the project is at right now and what we can improve on moving forward. + +# Where are we now? + +It's been incredible to see the popularity of Wails rising since the v2 release. I'm constantly amazed by the creativity of the community and the wonderful things that are being built with it. With more popularity, comes more eyes on the project. And with that, more feature requests and bug reports. + +Over time, I've been able to identify some of the most pressing issues facing the project. I've also been able to identify some of the things that are holding the project back. + +## Current issues + +I've identified the following areas that I feel are holding the project back: + +- The API +- Bindings generation +- The Build System + +### The API + +The API to build a Wails application currently consists of 2 parts: + +- The Application API +- The Runtime API + +The Application API famously has only 1 function: `Run()` which takes a heap of options which govern how the application will work. Whilst this is very simple to use, it is also very limiting. It is a "declarative" approach which hides a lot of the underlying complexity. For instance, there is no handle to the main window, so you can't interact with it directly. For that, you need to use the Runtime API. This is a problem when you start to want to do more complex things like create multiple windows. + +The Runtime API provides a lot of utility functions for the developer. This includes: + +- Window management +- Dialogs +- Menus +- Events +- Logs + +There are a number of things I am not happy with the Runtime API. The first is that it requires a "context" to be passed around. This is both frustrating and confusing for new developers who pass in a context and then get a runtime error. + +The biggest issue with the Runtime API is that it was designed for applications that only use a single window. Over time, the demand for multiple windows has grown and the API is not well suited to this. + +### Thoughts on the v3 API + +Wouldn't it be great if we could do something like this? + +```go +func main() { + app := wails.NewApplication(options.App{}) + myWindow := app.NewWindow(options.Window{}) + myWindow.SetTitle("My Window") + myWindow.On(events.Window.Close, func() { + app.Quit() + }) + app.Run() +} +``` + +This programmatic approach is far more intuitive and allows the developer to interact with the application elements directly. All current runtime methods for windows would simply be methods on the window object. For the other runtime methods, we could move them to the application object like so: + +```go +app := wails.NewApplication(options.App{}) +app.NewInfoDialog(options.InfoDialog{}) +app.Log.Info("Hello World") +``` + +This is a much more powerful API which will allow for more complex applications to be built. It also allows for the creation of multiple windows, [the most up-voted feature on GitHub](https://github.com/wailsapp/wails/issues/1480): + +```go +func main() { + app := wails.NewApplication(options.App{}) + myWindow := app.NewWindow(options.Window{}) + myWindow.SetTitle("My Window") + myWindow.On(events.Window.Close, func() { + app.Quit() + }) + myWindow2 := app.NewWindow(options.Window{}) + myWindow2.SetTitle("My Window 2") + myWindow2.On(events.Window.Close, func() { + app.Quit() + }) + app.Run() +} +``` + +### Bindings generation + +One of the key features of Wails is generating bindings for your Go methods so they may be called from Javascript. The current method for doing this is a bit of a hack. It involves building the application with a special flag and then running the resultant binary which uses reflection to determine what has been bound. This leads to a bit of a chicken and egg situation: You can't build the application without the bindings and you can't generate the bindings without building the application. There are many ways around this but the best one would be not to use this approach at all. + +There was a number of attempts at writing a static analyser for Wails projects but they didn't get very far. In more recent times, it has become slightly easier to do this with more material available on the subject. + +Compared to reflection, the AST approach is much faster however it is significantly more complicated. To start with, we may need to impose certain constraints on how to specify bindings in the code. The goal is to support the most common use cases and then expand it later on. + +### The Build System + +Like the declarative approach to the API, the build system was created to hide the complexities of building a desktop application. When you run `wails build`, it does a lot of things behind the scenes: +- Builds the backend binary for bindings and generates the bindings +- Installs the frontend dependencies +- Builds the frontend assets +- Determines if the application icon is present and if so, embeds it +- Builds the final binary +- If the build is for `darwin/universal` it builds 2 binaries, one for `darwin/amd64` and one for `darwin/arm64` and then creates a fat binary using `lipo` +- If compression is required, it compresses the binary with UPX +- Determines if this binary is to be packaged and if so: + - Ensures the icon and application manifest are compiled into the binary (Windows) + - Builds out the application bundle, generates the icon bundle and copies it, the binary and Info.plist to the application bundle (Mac) +- If an NSIS installer is required, it builds it + +This entire process, whilst very powerful, is also very opaque. It is very difficult to customise it and it is very difficult to debug. + +To address this in v3, I would like to move to a build system that exists outside of Wails. After using [Task](https://taskfile.dev/) for a while, I am a big fan of it. It is a great tool for configuring build systems and should be reasonably familiar to anyone who has used Makefiles. + +The build system would be configured using a `Taskfile.yml` file which would be generated by default with any of the supported templates. This would have all of the steps required to do all the current tasks, such as building or packaging the application, allowing for easy customisation. + +There will be no external requirement for this tooling as it would form part of the Wails CLI. This means that you can still use `wails build` and it will do all the things it does today. However, if you want to customise the build process, you can do so by editing the `Taskfile.yml` file. It also means you can easily understand the build steps and use your own build system if you wish. + +The missing piece in the build puzzle is the atomic operations in the build process, such as icon generation, compression and packaging. To require a bunch of external tooling would not be a great experience for the developer. To address this, the Wails CLI will provide all these capabilities as part of the CLI. This means that the builds still work as expected, with no extra external tooling, however you can replace any step of the build with any tool you like. + +This will be a much more transparent build system which will allow for easier customisation and address a lot of the issues that have been raised around it. + +## The Payoff + +These positive changes will be a huge benefit to the project: +- The new API will be much more intuitive and will allow for more complex applications to be built. +- Using static analysis for bindings generation will be much faster and reduce a lot of the complexity around the current process. +- Using an established, external build system will make the build process completely transparent, allowing for powerful customisation. + +Benefits to the project maintainers are: + +- The new API will be much easier to maintain and adapt to new features and platforms. +- The new build system will be much easier to maintain and extend. I hope this will lead to a new ecosystem of community driven build pipelines. +- Better separation of concerns within the project. This will make it easier to add new features and platforms. + +## The Plan + +A lot of the experimentation for this has already been done and it's looking good. There is no current timeline for this work but I'm hoping by the end of Q1 2023, there will be an alpha release for Mac to allow the community to test, experiment with and provide feedback. + +## Summary + +- The v2 API is declarative, hides a lot from the developer and not suitable for features such as multiple windows. A new API will be created which will be simpler, intuitive and more powerful. +- The build system is opaque and difficult to customise so we will move to an external build system which will open it all up. +- The bindings generation is slow and complex so we will move to static analysis which will remove a lot of the complexity the current method has. + +There has been a lot of work put into the guts of v2 and it's solid. It's now time to address the layer on top of it and make it a much better experience for the developer. + +I hope you are as excited about this as I am. I'm looking forward to hearing your thoughts and feedback. + +Regards, + +‐ Lea + +PS: If you or your company find Wails useful, please consider [sponsoring the project](https://github.com/sponsors/leaanthony). Thanks! + +PPS: Yes, that's a genuine screenshot of a multi-window application built with Wails. It's not a mockup. It's real. It's awesome. It's coming soon. \ No newline at end of file diff --git a/website/i18n/pt/docusaurus-plugin-content-docs/current/community/links.mdx b/website/i18n/pt/docusaurus-plugin-content-docs/current/community/links.mdx index d061c0ee0..58bc9761a 100644 --- a/website/i18n/pt/docusaurus-plugin-content-docs/current/community/links.mdx +++ b/website/i18n/pt/docusaurus-plugin-content-docs/current/community/links.mdx @@ -12,7 +12,7 @@ A [lista definitiva](https://github.com/wailsapp/awesome-wails) dos links relaci ## Canais de Suporte -- [Discord](https://discord.com/invite/JDdSxwjhGf) +- [Wails Discord Server](https://discord.gg/JDdSxwjhGf) - [Github Issues](https://github.com/wailsapp/wails/issues) - [v2 Beta Discussion Board](https://github.com/wailsapp/wails/discussions/828) @@ -22,4 +22,5 @@ A [lista definitiva](https://github.com/wailsapp/awesome-wails) dos links relaci - [Wails Chinese Community QQ Group](https://qm.qq.com/cgi-bin/qm/qr?k=PmIURne5hFGNd7QWzW5qd6FV-INEjNJv&jump_from=webapi) - Group number: 1067173054 ## Outros tutoriais e Artigos + - [Building of Bulletin Board](https://blog.customct.com/building-bulletin-board) diff --git a/website/i18n/pt/docusaurus-plugin-content-docs/current/community/showcase/bulletinboard.mdx b/website/i18n/pt/docusaurus-plugin-content-docs/current/community/showcase/bulletinboard.mdx new file mode 100644 index 000000000..37be75135 --- /dev/null +++ b/website/i18n/pt/docusaurus-plugin-content-docs/current/community/showcase/bulletinboard.mdx @@ -0,0 +1,10 @@ +# BulletinBoard + +```mdx-code-block +

+ +
+

+``` + +The [BulletinBoard](https://github.com/raguay/BulletinBoard) application is a versital message board for static messages or dialogs to get information from the user for a script. It has a TUI for creating new dialogs that can latter be used to get information from the user. It's design is to stay running on your system and show the information as needed and then hide away. I have a process for watching a file on my system and sending the contents to BulletinBoard when changed. It works great with my workflows. There is also an [Alfred workflow](https://github.com/raguay/MyAlfred/blob/master/Alfred%205/EmailIt.alfredworkflow) for sending information to the program. The workflow is also for working with [EmailIt](https://github.com/raguay/EmailIt). diff --git a/website/i18n/pt/docusaurus-plugin-content-docs/current/community/showcase/emailit.mdx b/website/i18n/pt/docusaurus-plugin-content-docs/current/community/showcase/emailit.mdx index 04150ba28..c1817b70f 100644 --- a/website/i18n/pt/docusaurus-plugin-content-docs/current/community/showcase/emailit.mdx +++ b/website/i18n/pt/docusaurus-plugin-content-docs/current/community/showcase/emailit.mdx @@ -7,4 +7,4 @@

``` -[EmailIt](https://github.com/raguay/EmailIt/) is a Wails 2 program that is a markdown based email sender only with nine notepads, scripts to manipulate the text, and templates. It also has a builtin [Node-Red](https://nodered.org/) server, scripts terminal, and the [ScriptBar](https://github.com/raguay/ScriptBarApp) program for displaying results from Node-Red or a script on your system. Documentation is very scarce, but the programs works. It’s built using Wails2 and Svelte, and the download is a universal macOS application. +[EmailIt](https://github.com/raguay/EmailIt/) is a Wails 2 program that is a markdown based email sender only with nine notepads, scripts to manipulate the text, and templates. It also has a scripts terminal to run scripts in EmailIt on files in your system. The scripts and templates can be used from the commandline itself or with the Alfred, Keyboard Maestro, Dropzone, or PopClip extensions. It also supports scripts and themes downloaded form GitHub. Documentation is not complete, but the programs works. It’s built using Wails2 and Svelte, and the download is a universal macOS application. diff --git a/website/i18n/pt/docusaurus-plugin-content-docs/current/community/showcase/hiposter.mdx b/website/i18n/pt/docusaurus-plugin-content-docs/current/community/showcase/hiposter.mdx new file mode 100644 index 000000000..87e5837d3 --- /dev/null +++ b/website/i18n/pt/docusaurus-plugin-content-docs/current/community/showcase/hiposter.mdx @@ -0,0 +1,10 @@ +# hiposter + +```mdx-code-block +

+ +
+

+``` + +[hiposter](https://github.com/obity/hiposter) is a simple and efficient http API testing client tool. Based on Wails, Go and sveltejs. diff --git a/website/i18n/pt/docusaurus-plugin-content-docs/current/community/showcase/modalfilemanager.mdx b/website/i18n/pt/docusaurus-plugin-content-docs/current/community/showcase/modalfilemanager.mdx index d9823ac26..8a075d19c 100644 --- a/website/i18n/pt/docusaurus-plugin-content-docs/current/community/showcase/modalfilemanager.mdx +++ b/website/i18n/pt/docusaurus-plugin-content-docs/current/community/showcase/modalfilemanager.mdx @@ -9,6 +9,6 @@

``` -[Gerenciador de Arquivos Modal](https://github.com/raguay/ModalFileManager) é um gerenciador de arquivos dual pane usando tecnologias da web. Meu design original foi baseado em NW.js e pode ser encontrado [aqui](https://github.com/raguay/ModalFileManager-NWjs). Esta versão usa o mesmo código de frontend baseado em Svelte (mas foi muito modificado desde a partida do NW.), mas o backend implementado com [Wails 2](https://wails.io/). Ao usar esta implementação, eu não uso mais comandos de linha de comando `rm`, `cp`, etc. Está totalmente codificado usando Go e roda muito mais rápido do que as versões anteriores. +[Gerenciador de Arquivos Modal](https://github.com/raguay/ModalFileManager) é um gerenciador de arquivos dual pane usando tecnologias da web. Meu design original foi baseado em NW.js e pode ser encontrado [aqui](https://github.com/raguay/ModalFileManager-NWjs). Esta versão usa o mesmo código de frontend baseado em Svelte (mas foi muito modificado desde a partida do NW.), mas o backend implementado com [Wails 2](https://wails.io/). By using this implementation, I no longer use command line `rm`, `cp`, etc. commands, but a git install has to be on the system to download themes and extensions. Está totalmente codificado usando Go e roda muito mais rápido do que as versões anteriores. -Este gerenciador de arquivos é projetado em torno do mesmo princípio do Vim: uma ação controlada pelo teclado. O número de estados não é fixo, mas muito programável. Portanto, um número infinito de configurações de teclado pode ser criado e usado. Esta é a principal diferença em relação a outros gerenciadores de arquivos. +Este gerenciador de arquivos é projetado em torno do mesmo princípio do Vim: uma ação controlada pelo teclado. O número de estados não é fixo, mas muito programável. Portanto, um número infinito de configurações de teclado pode ser criado e usado. Esta é a principal diferença em relação a outros gerenciadores de arquivos. There are themes and extensions available to download from GitHub. diff --git a/website/i18n/pt/docusaurus-plugin-content-docs/current/community/showcase/scriptbar.mdx b/website/i18n/pt/docusaurus-plugin-content-docs/current/community/showcase/scriptbar.mdx index d32118c0f..066086458 100644 --- a/website/i18n/pt/docusaurus-plugin-content-docs/current/community/showcase/scriptbar.mdx +++ b/website/i18n/pt/docusaurus-plugin-content-docs/current/community/showcase/scriptbar.mdx @@ -7,4 +7,4 @@

``` -[ScriptBar](https://GitHub.com/raguay/ScriptBarApp) é um programa que mostra a saída do servidor embutido [Node-Red](https://nodered.org) no aplicativo [EmailIt](https://GitHub.com/raguay/EmailIt). Também exibe a saída de scripts no seu sistema. ScriptBar não os coloca na barra de menus, mas os tenha todos em uma janela convidada para fácil visualização. Você pode ter várias abas para ter muitas coisas diferentes mostradas. Você também pode manter os links para os sites mais visitados. +[ScriptBar](https://GitHub.com/raguay/ScriptBarApp) is a program to show the output of scripts or [Node-Red](https://nodered.org) server. It runs scripts defined in EmailIt program and shows the output. Scripts from xBar or TextBar can be used, but currently on the TextBar scripts work well. Também exibe a saída de scripts no seu sistema. ScriptBar não os coloca na barra de menus, mas os tenha todos em uma janela convidada para fácil visualização. Você pode ter várias abas para ter muitas coisas diferentes mostradas. Você também pode manter os links para os sites mais visitados. diff --git a/website/i18n/pt/docusaurus-plugin-content-docs/current/community/showcase/warmine.mdx b/website/i18n/pt/docusaurus-plugin-content-docs/current/community/showcase/warmine.mdx new file mode 100644 index 000000000..950dc3f3d --- /dev/null +++ b/website/i18n/pt/docusaurus-plugin-content-docs/current/community/showcase/warmine.mdx @@ -0,0 +1,19 @@ +# Minecraft launcher for WarMine + +```mdx-code-block +

+ + +
+

+``` + +[Minecraft launcher for WarMine](https://warmine.ru/) is a Wails application, that allows you to easily join modded game servers and manage your game accounts. + +The Launcher downloads the game files, checks their integrity and launches the game with a wide range of customization options for the launch arguments from the backend. + +Frontend is written in Svelte, whole launcher fits in 9MB and supports Windows 7-11. diff --git a/website/i18n/pt/docusaurus-plugin-content-docs/current/community/templates.mdx b/website/i18n/pt/docusaurus-plugin-content-docs/current/community/templates.mdx index 264b25021..0279e39d1 100644 --- a/website/i18n/pt/docusaurus-plugin-content-docs/current/community/templates.mdx +++ b/website/i18n/pt/docusaurus-plugin-content-docs/current/community/templates.mdx @@ -27,6 +27,7 @@ Se você não tiver certeza sobre um template, inspecione `package.json` e `wail - [wails-vite-vue-the-works](https://github.com/codydbentley/wails-vite-vue-the-works) - Vue 3 TypeScript with Vite, Vuex, Vue Router, Sass, and ESLint + Prettier - [wails-template-quasar-js](https://github.com/sgosiaco/wails-template-quasar-js) - A template using JavaScript + Quasar V2 (Vue 3, Vite, Sass, Pinia, ESLint, Prettier) - [wails-template-quasar-ts](https://github.com/sgosiaco/wails-template-quasar-ts) - A template using TypeScript + Quasar V2 (Vue 3, Vite, Sass, Pinia, ESLint, Prettier, Composition API with <script setup>) +- [wails-template-naive](https://github.com/tk103331/wails-template-naive) - Wails template based on Naive UI (A Vue 3 Component Library) ## Angular diff --git a/website/i18n/pt/docusaurus-plugin-content-docs/current/gettingstarted/installation.mdx b/website/i18n/pt/docusaurus-plugin-content-docs/current/gettingstarted/installation.mdx index 11ae360a9..33400cdfd 100644 --- a/website/i18n/pt/docusaurus-plugin-content-docs/current/gettingstarted/installation.mdx +++ b/website/i18n/pt/docusaurus-plugin-content-docs/current/gettingstarted/installation.mdx @@ -57,7 +57,7 @@ import TabItem from "@theme/TabItem"; Wails requires that the WebView2 runtime is installed. Algumas instalações do Windows já terão isto instalado. Você pode conferir usando o comando do wails doctor. - Linux required the standard gcc build tools plus libgtk3 and libwebkit. Ao invés de listar uma tonelada de comandos para diferentes distros, os Wails podem tentar determinar quais são os comandos de instalação para sua distribuição específica. Execute o wails doctor após a instalação para ser mostrado como instalar as dependencias. Se o seu gerenciador de destro/pacote não for suportado, por favor, consulte o guia Adicionar Distro do Linux. + Linux requires the standard gcc build tools plus libgtk3 and libwebkit. Ao invés de listar uma tonelada de comandos para diferentes distros, os Wails podem tentar determinar quais são os comandos de instalação para sua distribuição específica. Execute o wails doctor após a instalação para ser mostrado como instalar as dependencias. Se o seu gerenciador de destro/pacote não for suportado, por favor, consulte o guia Adicionar Distro do Linux. ``` diff --git a/website/i18n/pt/docusaurus-plugin-content-docs/current/guides/dynamic-assets.mdx b/website/i18n/pt/docusaurus-plugin-content-docs/current/guides/dynamic-assets.mdx index 73173e15b..989202e27 100644 --- a/website/i18n/pt/docusaurus-plugin-content-docs/current/guides/dynamic-assets.mdx +++ b/website/i18n/pt/docusaurus-plugin-content-docs/current/guides/dynamic-assets.mdx @@ -8,7 +8,7 @@ By installing a custom AssetsHandler, you can serve your own assets using a cust In our example project, we will create a simple assets handler which will load files off disk: -```go title=main.go {16-35,49} +```go title=main.go {17-36,49} package main import ( diff --git a/website/i18n/pt/docusaurus-plugin-content-docs/current/guides/mac-appstore.mdx b/website/i18n/pt/docusaurus-plugin-content-docs/current/guides/mac-appstore.mdx index 62233b57c..961595711 100644 --- a/website/i18n/pt/docusaurus-plugin-content-docs/current/guides/mac-appstore.mdx +++ b/website/i18n/pt/docusaurus-plugin-content-docs/current/guides/mac-appstore.mdx @@ -21,6 +21,12 @@ This page gives a brief overview of how to submit your Wails App to the Mac App 3. Populate your app with the correct screen shots, descriptions, etc. as required by Apple 4. Create a new version of your app +#### Create Provisioning Profile +1. Go to the [Apple Developer Profiles](https://developer.apple.com/account/resources/profiles/list) page +2. Add a new provisioning profile for Mac App Store Distribution +3. Set the Profile Type as Mac and select the App ID for the application created above +4. Select the Mac App Distribution certificate +5. Name the Provisioning Profile embedded and download the created profile. ## Mac App Store Process @@ -30,7 +36,7 @@ Apps submitted to the Mac App Store must run under Apple's [App Sandbox](https:/ **Example Entitlements File** -This is an example entitlements file from the [RiftShare](https://github.com/achhabra2/riftshare) app. For reference please put in the entitlements your app requires. Refer to [this site](https://developer.apple.com/documentation/bundleresources/entitlements) for more information. +This is an example entitlements file from the [RiftShare](https://github.com/achhabra2/riftshare) app. For reference please put in the entitlements your app requires. Refer to [this site](https://developer.apple.com/documentation/bundleresources/entitlements) for more information. You will need to replace the Team ID and Application Name with the ones you registered above. ```xml title="entitlements.plist" @@ -47,10 +53,16 @@ This is an example entitlements file from the [RiftShare](https://github.com/ach com.apple.security.files.downloads.read-write + com.apple.application-identifier + TEAM_ID.APP_NAME + com.apple.developer.team-identifier + TEAM_ID ``` +**Add the Embedded Provisioning Profile** The Provisioning Profile created above needs to be added to the root of the applicaton. It needs to be named embedded.provisionprofile. + #### Build and Sign the App Package The following is an example script for building and signing your app for Mac App Store submission. It assumes you are running the script from your root project directory. @@ -66,6 +78,8 @@ APP_NAME="YourApp" wails build -platform darwin/universal -clean +cp ./embedded.provisionprofile "./build/bin/$APP_NAME.app/Contents" + codesign --timestamp --options=runtime -s "$APP_CERTIFICATE" -v --entitlements ./build/darwin/entitlements.plist ./build/bin/$APP_NAME.app productbuild --sign "$PKG_CERTIFICATE" --component ./build/bin/$APP_NAME.app /Applications ./$APP_NAME.pkg @@ -80,4 +94,4 @@ You will need to upload the generated package file and associate it to your Appl 3. Click the + sign and select the `APP_NAME.pkg` file that you generated in the previous step. Upload it 4. Go back to the [App Store Connect](https://appstoreconnect.apple.com/apps) site and navigate back into your app submission. Select the version that you are ready to make available on the App Store. Under `Build` select the package that you uploaded via Transporter. -That's it! You can now use the site to submit your App for review. After a few business days if all goes well you should see your App live on the Mac App Store. \ No newline at end of file +That's it! You can now use the site to submit your App for review. After a few business days if all goes well you should see your App live on the Mac App Store. diff --git a/website/i18n/pt/docusaurus-plugin-content-docs/current/guides/troubleshooting.mdx b/website/i18n/pt/docusaurus-plugin-content-docs/current/guides/troubleshooting.mdx index 2accc4e5f..a98e64ed4 100644 --- a/website/i18n/pt/docusaurus-plugin-content-docs/current/guides/troubleshooting.mdx +++ b/website/i18n/pt/docusaurus-plugin-content-docs/current/guides/troubleshooting.mdx @@ -159,4 +159,8 @@ Sources: https://github.com/wailsapp/wails/issues/1806 and https://github.com/wa It's preferable to add `frontend/node_modules` and `frontend/package-lock.json` to your `.gitignore`. Otherwise when opening your repository on another machine that may have different versions of Node installed, you may not be able to run your application. -If this does happen, simply delete `frontend/node_modules` and `frontend/package-lock.json` and run your `wails build` or `wails dev` command again. \ No newline at end of file +If this does happen, simply delete `frontend/node_modules` and `frontend/package-lock.json` and run your `wails build` or `wails dev` command again. + +## Build process stuck on "Generating bindings" + +Bindings generation process runs your application in a special mode. If application, intentionally or unintentionally, contains an endless loop (i.e. not exiting after `wails.Run()` finished), this can lead to build process stuck on the stage of bindings generation. Please make sure your code exits properly. diff --git a/website/i18n/pt/docusaurus-plugin-content-docs/current/howdoesitwork.mdx b/website/i18n/pt/docusaurus-plugin-content-docs/current/howdoesitwork.mdx index 163701520..44fa130cc 100644 --- a/website/i18n/pt/docusaurus-plugin-content-docs/current/howdoesitwork.mdx +++ b/website/i18n/pt/docusaurus-plugin-content-docs/current/howdoesitwork.mdx @@ -117,7 +117,7 @@ Wails requires that you pass in an _instance_ of the struct for it to bind it co In this example, we create a new `App` instance and then add this instance to the `Bind` option in `wails.Run`: -```go {16,24} title="main.go" +```go {17,27} title="main.go" package main import ( @@ -164,7 +164,7 @@ func (a *App) Greet(name string) string { You may bind as many structs as you like. Just make sure you create an instance of it and pass it in `Bind`: -```go {8-10} +```go {10-12} //... err := wails.Run(&options.App{ Title: "Basic Demo", @@ -236,7 +236,7 @@ All data types are correctly translated between Go and JavaScript. Even structs. :::info Note -Struct fields *must* have a valid `json` tag to be included in the generated TypeScript. +Struct fields _must_ have a valid `json` tag to be included in the generated TypeScript. Anonymous nested structs are not supported at this time. diff --git a/website/i18n/pt/docusaurus-plugin-content-docs/current/reference/cli.mdx b/website/i18n/pt/docusaurus-plugin-content-docs/current/reference/cli.mdx index 591766c6e..7e9fb535d 100644 --- a/website/i18n/pt/docusaurus-plugin-content-docs/current/reference/cli.mdx +++ b/website/i18n/pt/docusaurus-plugin-content-docs/current/reference/cli.mdx @@ -71,6 +71,7 @@ If you are unsure about a template, inspect `package.json` and `wails.json` for | -windowsconsole | Manter a janela de console para builds do Windows | | | -obfuscate | Ofuscar a aplicação usando [garble](https://github.com/burrowers/garble) | false | | -garbleargs | Argumentos para passar para o garble | `-literals -tiny -seed=random` | +| -nosyncgomod | Do not sync go.mod with the Wails version | false | Para uma descrição detalhada do sinalizador `webview2`, consulte o guia [Windows](../guides/windows.mdx). @@ -80,8 +81,10 @@ Exemplo: `wails build -clean -o myproject.exe` -:::Info +:::info + On Mac, the application will be bundled with `Info.plist`, not `Info.dev.plist`. + ::: :::info UPX no Apple Silicon @@ -184,6 +187,9 @@ Your system is ready for Wails development! | -save | Salva o `assetdir`, `reloaddirs`,`wailsjsdir`,`debounce`,`devserver` e `frontenddevserverurl` passado, flag em `wails.json` para realizar chamadas subsequentes. | | | -race | Realiza build com o Go race detector | false | | -s | Pular build do frontend | false | +| -nosyncgomod | Do not sync go.mod with the Wails version | false | + + Exemplo: diff --git a/website/i18n/pt/docusaurus-plugin-content-docs/current/reference/options.mdx b/website/i18n/pt/docusaurus-plugin-content-docs/current/reference/options.mdx index 5f8fde991..49214bb08 100644 --- a/website/i18n/pt/docusaurus-plugin-content-docs/current/reference/options.mdx +++ b/website/i18n/pt/docusaurus-plugin-content-docs/current/reference/options.mdx @@ -50,6 +50,7 @@ func main() { OnBeforeClose: app.beforeClose, CSSDragProperty: "--wails-draggable", CSSDragValue: "drag", + EnableFraudulentWebsiteDetection: false, ZoomFactor: 1.0, IsZoomControlEnabled: false, Bind: []interface{}{ @@ -77,7 +78,8 @@ func main() { // OnSuspend is called when Windows enters low power mode OnSuspend func() // OnResume is called when Windows resumes from low power mode - OnResume func() + OnResume func(), + WebviewGpuDisabled: false, }, Mac: &mac.Options{ TitleBar: &mac.TitleBar{ @@ -100,6 +102,7 @@ func main() { Linux: &linux.Options{ Icon: icon, WindowIsTranslucent: false, + WebviewGpuPolicy: linux.WebviewGpuPolicyAlways, }, Debug: options.Debug{ OpenInspectorOnStartup: false, @@ -232,11 +235,11 @@ Not all features of an `http.Request` are currently supported, please see the fo | DELETE | ✅ | ✅ | ✅ [^1] | | Request Headers | ✅ | ✅ | ✅ [^1] | | Request Body | ✅ | ✅ | ❌ | -| Request Body Streaming | ❌ | ❌ | ❌ | +| Request Body Streaming | ✅ | ✅ | ❌ | | Response StatusCodes | ✅ | ✅ | ✅ [^1] | | Response Headers | ✅ | ✅ | ✅ [^1] | | Response Body | ✅ | ✅ | ✅ | -| Response Body Streaming | ❌ | ❌ | ✅ | +| Response Body Streaming | ❌ | ✅ | ✅ | | WebSockets | ❌ | ❌ | ❌ | | HTTP Redirects 30x | ✅ | ❌ | ❌ | @@ -356,6 +359,12 @@ Indicates what value the `CSSDragProperty` style should have to drag the window. Name: CSSDragValue
Type: `string` +### EnableFraudulentWebsiteDetection + +EnableFraudulentWebsiteDetection enables scan services for fraudulent content, such as malware or phishing attempts. These services might send information from your app like URLs navigated to and possibly other content to cloud services of Apple and Microsoft. + +Name: EnableFraudulentWebsiteDetection
Type: `bool` + ### ZoomFactor Name: ZoomFactor
Type: `float64` @@ -542,6 +551,12 @@ If set, this function will be called when Windows resumes from low power mode (s Name: OnResume
Type: `func()` +#### WebviewGpuIsDisabled + +Setting this to `true` will disable GPU hardware acceleration for the webview. + +Name: WebviewGpuIsDisabled
Type: `bool` + ### Mac This defines [Mac specific options](#mac). @@ -722,6 +737,20 @@ Setting this to `true` will make the window background translucent. Some window Name: WindowIsTranslucent
Type: `bool` +#### WebviewGpuPolicy + +This option is used for determining the webview's hardware acceleration policy. + +Name: WebviewGpuPolicy
Type: [`options.WebviewGpuPolicy`](#webviewgpupolicy-type)
Default: `WebviewGpuPolicyAlways` + +##### WebviewGpuPolicy type + +| Value | Description | +| ------------------------ | -------------------------------------------------------------------- | +| WebviewGpuPolicyAlways | Hardware acceleration is always enabled | +| WebviewGpuPolicyOnDemand | Hardware acceleration is enabled/disabled as request by web contents | +| WebviewGpuPolicyNever | Hardware acceleration is always disabled | + ### Debug This defines [Debug specific options](#Debug) that apply to debug builds. diff --git a/website/i18n/pt/docusaurus-plugin-content-docs/current/reference/runtime/clipboard.mdx b/website/i18n/pt/docusaurus-plugin-content-docs/current/reference/runtime/clipboard.mdx new file mode 100644 index 000000000..805f68ed9 --- /dev/null +++ b/website/i18n/pt/docusaurus-plugin-content-docs/current/reference/runtime/clipboard.mdx @@ -0,0 +1,23 @@ +--- +sidebar_position: 8 +--- + +# Clipboard + +This part of the runtime provides access to the operating system's clipboard.
The current implementation only handles text. + +### ClipboardGetText + +This method reads the currently stored text from the clipboard. + +Go: `ClipboardGetText(ctx context.Context) (string, error)`
Returns: a string (if the clipboard is empty an empty string will be returned) or an error. + +JS: `ClipboardGetText(): Promise`
Returns: a promise with a string result (if the clipboard is empty an empty string will be returned). + +### ClipboardSetText + +This method writes a text to the clipboard. + +Go: `ClipboardSetText(ctx context.Context, text string) error`
Returns: an error if there is any. + +JS: `ClipboardSetText(text: string): Promise`
Returns: a promise with true result if the text was successfully set on the clipboard, false otherwise. diff --git a/website/i18n/pt/docusaurus-plugin-content-docs/current/reference/runtime/events.mdx b/website/i18n/pt/docusaurus-plugin-content-docs/current/reference/runtime/events.mdx index 68eae0c4a..ec0eb61e4 100644 --- a/website/i18n/pt/docusaurus-plugin-content-docs/current/reference/runtime/events.mdx +++ b/website/i18n/pt/docusaurus-plugin-content-docs/current/reference/runtime/events.mdx @@ -34,4 +34,4 @@ Go: `EventsOnMultiple(ctx context.Context, eventName string, callback func(optio Este método emite o evento fornecido. Os dados opcionais podem ser passados com o evento. Isto irá acionar quaisquer ouvintes de eventos. -Go: `EventsEmit(ctx context.Context, eventName string, optionalData ...interface{})`
JS: `EventsEmit(ctx context, optionalData function(optionalData?: any))` +Go: `EventsEmit(ctx context.Context, eventName string, optionalData ...interface{})`
JS: `EventsEmit(eventName: string, ...optionalData: any)` diff --git a/website/i18n/pt/docusaurus-plugin-content-docs/current/reference/runtime/intro.mdx b/website/i18n/pt/docusaurus-plugin-content-docs/current/reference/runtime/intro.mdx index f8a9667af..b6f4e8a78 100644 --- a/website/i18n/pt/docusaurus-plugin-content-docs/current/reference/runtime/intro.mdx +++ b/website/i18n/pt/docusaurus-plugin-content-docs/current/reference/runtime/intro.mdx @@ -14,6 +14,7 @@ Ele tem métodos de utilitário para: - [Eventos](events.mdx) - [Browser](browser.mdx) - [Registro](log.mdx) +- [Clipboard](clipboard.mdx) O runtime do Go está disponível através da importação de `github.com/wailsapp/wails/v2/pkg/runtime`. Todos os métodos neste pacote assumem um contexto como o primeiro parâmetro. Este contexto deve ser obtido a partir dos ganchos [OnStartup](../options.mdx#onstartup) ou [OnDomReady](../options.mdx#ondomready). diff --git a/website/i18n/pt/docusaurus-plugin-content-docs/version-v2.0.0-rc.1.json b/website/i18n/pt/docusaurus-plugin-content-docs/version-v2.0.0-rc.1.json deleted file mode 100644 index 49cf4687e..000000000 --- a/website/i18n/pt/docusaurus-plugin-content-docs/version-v2.0.0-rc.1.json +++ /dev/null @@ -1,38 +0,0 @@ -{ - "version.label": { - "message": "v2.0.0-rc.1", - "description": "The label for version v2.0.0-rc.1" - }, - "sidebar.docs.category.Getting Started": { - "message": "Getting Started", - "description": "The label for category Getting Started in sidebar docs" - }, - "sidebar.docs.category.Reference": { - "message": "Reference", - "description": "The label for category Reference in sidebar docs" - }, - "sidebar.docs.category.Runtime": { - "message": "Runtime", - "description": "The label for category Runtime in sidebar docs" - }, - "sidebar.docs.category.Community": { - "message": "Community", - "description": "The label for category Community in sidebar docs" - }, - "sidebar.docs.category.Showcase": { - "message": "Showcase", - "description": "The label for category Showcase in sidebar docs" - }, - "sidebar.docs.category.Guides": { - "message": "Guides", - "description": "The label for category Guides in sidebar docs" - }, - "sidebar.docs.category.Tutorials": { - "message": "Tutorials", - "description": "The label for category Tutorials in sidebar docs" - }, - "sidebar.docs.link.Contributing": { - "message": "Contributing", - "description": "The label for link Contributing in sidebar docs, linking to /community-guide#ways-of-contributing" - } -} diff --git a/website/i18n/pt/docusaurus-plugin-content-docs/version-v2.1.0.json b/website/i18n/pt/docusaurus-plugin-content-docs/version-v2.3.0.json similarity index 94% rename from website/i18n/pt/docusaurus-plugin-content-docs/version-v2.1.0.json rename to website/i18n/pt/docusaurus-plugin-content-docs/version-v2.3.0.json index f29e6b248..32ec6fb1d 100644 --- a/website/i18n/pt/docusaurus-plugin-content-docs/version-v2.1.0.json +++ b/website/i18n/pt/docusaurus-plugin-content-docs/version-v2.3.0.json @@ -1,7 +1,7 @@ { "version.label": { - "message": "v2.1.0", - "description": "The label for version v2.1.0" + "message": "v2.3.0", + "description": "The label for version v2.3.0" }, "sidebar.docs.category.Getting Started": { "message": "Getting Started", diff --git a/website/i18n/pt/docusaurus-plugin-content-docs/version-v2.2.0.json b/website/i18n/pt/docusaurus-plugin-content-docs/version-v2.3.1.json similarity index 94% rename from website/i18n/pt/docusaurus-plugin-content-docs/version-v2.2.0.json rename to website/i18n/pt/docusaurus-plugin-content-docs/version-v2.3.1.json index 1074035c4..c793961dc 100644 --- a/website/i18n/pt/docusaurus-plugin-content-docs/version-v2.2.0.json +++ b/website/i18n/pt/docusaurus-plugin-content-docs/version-v2.3.1.json @@ -1,7 +1,7 @@ { "version.label": { - "message": "v2.2.0", - "description": "The label for version v2.2.0" + "message": "v2.3.1", + "description": "The label for version v2.3.1" }, "sidebar.docs.category.Getting Started": { "message": "Getting Started", diff --git a/website/i18n/pt/docusaurus-plugin-content-docs/version-v2.4.0.json b/website/i18n/pt/docusaurus-plugin-content-docs/version-v2.4.0.json new file mode 100644 index 000000000..4bda777e9 --- /dev/null +++ b/website/i18n/pt/docusaurus-plugin-content-docs/version-v2.4.0.json @@ -0,0 +1,38 @@ +{ + "version.label": { + "message": "v2.4.0", + "description": "The label for version v2.4.0" + }, + "sidebar.docs.category.Getting Started": { + "message": "Getting Started", + "description": "The label for category Getting Started in sidebar docs" + }, + "sidebar.docs.category.Reference": { + "message": "Reference", + "description": "The label for category Reference in sidebar docs" + }, + "sidebar.docs.category.Runtime": { + "message": "Runtime", + "description": "The label for category Runtime in sidebar docs" + }, + "sidebar.docs.category.Community": { + "message": "Community", + "description": "The label for category Community in sidebar docs" + }, + "sidebar.docs.category.Showcase": { + "message": "Showcase", + "description": "The label for category Showcase in sidebar docs" + }, + "sidebar.docs.category.Guides": { + "message": "Guides", + "description": "The label for category Guides in sidebar docs" + }, + "sidebar.docs.category.Tutorials": { + "message": "Tutorials", + "description": "The label for category Tutorials in sidebar docs" + }, + "sidebar.docs.link.Contributing": { + "message": "Contributing", + "description": "The label for link Contributing in sidebar docs, linking to /community-guide#ways-of-contributing" + } +} diff --git a/website/i18n/pt/docusaurus-plugin-content-pages/changelog.mdx b/website/i18n/pt/docusaurus-plugin-content-pages/changelog.mdx index c9d743db0..eebfdd409 100644 --- a/website/i18n/pt/docusaurus-plugin-content-pages/changelog.mdx +++ b/website/i18n/pt/docusaurus-plugin-content-pages/changelog.mdx @@ -13,6 +13,37 @@ O formato é baseado em [Manter um Log de Alterações](https://keepachangelog.c ## [Unreleased] +## v2.4.0 - 2022-03-08 + +### Adicionado +- Added Webview GPU acceleration options for [Windows](/docs/reference/options#webviewgpuisdisabled) and [Linux](/docs/reference/options#webviewgpupolicy). Added by @Lyimmi in [PR](https://github.com/wailsapp/wails/pull/2266) +- Added `EnableFraudulentWebsiteDetection` option to opt-in to scan services for fraudulent content, such as malware or phishing attempts. Older releases had the scan services per default activated. Added by @stffabi in [PR](https://github.com/wailsapp/wails/pull/2269) +- Allow an [AssetServer Middleware](/docs/reference/options#middleware) to specify the `Content-Type` of a file served by the [Assets](/docs/reference/options#assets-1) `fs.FS`. Added by @stffabi in [PR](https://github.com/wailsapp/wails/pull/2286) +- The AssetServer now detects more mimetypes by extension, e.g. `.mjs`. Added by @stffabi in [PR](https://github.com/wailsapp/wails/pull/2391) + +### Alterado +- Improved fullscreen mode for frameless window on Windows. Changed by @stffabi in [PR](https://github.com/wailsapp/wails/pull/2279), [PR](https://github.com/wailsapp/wails/pull/2288) and [PR](https://github.com/wailsapp/wails/pull/2299) +- On Windows unmaximising a window has no effect anymore when the window is in fullscreen mode, this makes it consistent with e.g. macOS. Changed by @stffabi in [PR](https://github.com/wailsapp/wails/pull/2279) +- Frameless resize now sets the cursor on documentElement, otherwise resizing cursor won't be shown outside of the body rectangle. Changed by @stffabi in [PR](https://github.com/wailsapp/wails/pull/2289) +- Improved the `--wails-draggable` experience to be more reactive. Changed by @stffabi in [PR](https://github.com/wailsapp/wails/pull/2302) +- NSIS template now installs the shortcuts for all users and not only for the current user. Changed by @stffabi in [PR](https://github.com/wailsapp/wails/pull/2373) + +### Corrigido +- Fixed failing build hooks when `build/bin` was missing. Fixed by @Lyimmi in [PR](https://github.com/wailsapp/wails/pull/2273) +- Fixed fullscreen mode for frameless window on Windows to fully cover the taskbar when changing into fullscreen from maximised state. Fixed by @stffabi in [PR](https://github.com/wailsapp/wails/pull/2279) +- Fixed set window background colour on Windows when setting the colour via runtime. Fixed by @stffabi in [PR](https://github.com/wailsapp/wails/pull/2279) +- Fixed the showing of a white border around a fullscreen window when `DisableWindowIcon` is active on Windows. Fixed by @stffabi in [PR](https://github.com/wailsapp/wails/pull/2299) +- Fixed the sometimes lagging drag experience with `--wails-draggable` on Windows. Fixed by @stffabi in [PR](https://github.com/wailsapp/wails/pull/2302) +- Fixed applying the default arch to platform flag in wails cli. If only a `GOOS` has been supplied as platform flag e.g. `wails build --platform windows` the current architecture wasn't applied and the build failed. Fixed by @stffabi in [PR](https://github.com/wailsapp/wails/pull/2309) +- Fixed a segfault on opening the inspector on older macOS versions. Fixed by @stffabi in [PR](https://github.com/wailsapp/wails/pull/2397) +- Fixed the macos single architecture builds not respecting an output file name specified with the '-o' flag. Fixed by @gwynforthewyn in [PR](https://github.com/wailsapp/wails/pull/2358) +- Fixed `undo`/`redo` on macOS. Fixed by @stffabi in [PR](https://github.com/wailsapp/wails/pull/2430) +- Fixed `Events*` runtime functions in JavaScript not returning the function to cancel the watcher. Fixed by @zllovesuki in [PR](https://github.com/wailsapp/wails/pull/2434) +- Fixed AppOptions merging defaults when a custom logger is used. Fixed by @stffabi in [PR](https://github.com/wailsapp/wails/pull/2452) +- Fixed race condition and missing unlock of mutex in events handling. Fixed by @stffabi in [PR](https://github.com/wailsapp/wails/pull/2453) + +## v2.3.0 - 2022-12-29 + ### Adicionado - Added `OpenInspectorOnStartup` to debug options to allow opening the WebInspector during startup of the application in debug mode. Added by @stffabi in [PR](https://github.com/wailsapp/wails/pull/2080) - On macOS `wails doctor` now also shows the version of Xcode installed. Added by @stffabi in [PR](https://github.com/wailsapp/wails/pull/2089) @@ -21,15 +52,36 @@ O formato é baseado em [Manter um Log de Alterações](https://keepachangelog.c - The `WindowSetAlwaysOnTop` method is now exposed in the JS runtime. Fixed by @gotid in [PR](https://github.com/wailsapp/wails/pull/2128) - The [AssetServer](/docs/reference/options#assetserver) now supports serving the index.html file when requesting a directory. Added by @stffabi in [PR](https://github.com/wailsapp/wails/pull/2110) - Added support for WebKit2GTK 2.36+ on Linux. This brings additional features for the [AssetServer](/docs/reference/options#assetserver), like support for HTTP methods and Headers. The app must be compiled with the Go build tag `webkit2_36` to activate support for this features. This also bumps the minimum requirement of WebKit2GTK to 2.36 for your app. Fixed by @stffabi in this [PR](https://github.com/wailsapp/wails/pull/2151) +- Added support for file input selection on macOS. Added by @stffabi in [PR](https://github.com/wailsapp/wails/pull/2209) +- Added support Request/Response streaming of the AssetServer on macOS. Added by @stffabi in [PR](https://github.com/wailsapp/wails/pull/2219) +- Added request path checks for the AssetServer. Added by @stffabi in [PR](https://github.com/wailsapp/wails/pull/2235) +- Added new App Store guide. Added by @achhabra2 in [PR](https://github.com/wailsapp/wails/pull/2142) +- Added extra libwebkit check for dnf package manager (required for latest Fedora). Fixed by @NullCode1337 in this [PR](https://github.com/wailsapp/wails/pull/2218) +- Added new `-nomodsync` flag to disable the automatic syncing of the `go.mod` file. Added by @leaanthony in [PR](https://github.com/wailsapp/wails/pull/2215) +- Added support for adding prefix and postfix text to generated Typescript classes. Added by @OlegGulevskyy in [PR](https://github.com/wailsapp/wails/pull/2101) +- Added reference to NSIS as optional dependency. Added by @acheong08 in [PR](https://github.com/wailsapp/wails/pull/2070) +- Added Korean translation for the website. Added by @cybertramp in [PR](https://github.com/wailsapp/wails/pull/2093) ### Corrigido - The `noreload` flag in wails dev wasn't applied. Fixed by @stffabi in this [PR](https://github.com/wailsapp/wails/pull/2081) - `build/bin` folder was duplicating itself on each reload in `wails dev` mode. Fixed by @OlegGulevskyy in this [PR](https://github.com/wailsapp/wails/pull/2103) - Prevent a thin white line at the bottom of a frameless window on Windows. Fixed by @stffabi in this [PR](https://github.com/wailsapp/wails/pull/2111) - Better signal handling for Linux. Fixed by @leaanthony in this [PR](https://github.com/wailsapp/wails/pull/2152) +- Running the docs locally was broken due to mandatory crowdin token requirement. Fixed by @OlegGulevskyy in this [PR](https://github.com/wailsapp/wails/pull/2231) +- Generated typescript for Go functions that returned a single error was incorrect. Fixed by @ATenderholt in this [PR](https://github.com/wailsapp/wails/pull/2247) +- The right mouse event was not being raised correctly for Linux. Fixed by @leaanthony in this [PR](https://github.com/wailsapp/wails/pull/2190) +- Remove extra spaces in Wails version when querying `go.mod`. Fixed by @matholt in this [PR](https://github.com/wailsapp/wails/pull/2197) +- Fix go tests failure on Mac. Fixed by @avengerweb in this [PR](https://github.com/wailsapp/wails/pull/2187) +- Fix go test errors. Fixed by @misitebao & @avengerweb in [these](https://github.com/wailsapp/wails/pull/2169) [PRs](https://github.com/wailsapp/wails/pull/2187) +- Added `WindowSetAlwaysOnTop` to the JS runtime. Fixed by @gotid in [PR](https://github.com/wailsapp/wails/pull/2128) +- Fixed obfuscated flag typo in docs. Fixed by @ckilb in [PR](https://github.com/wailsapp/wails/pull/2102) +- Fixed React Hash Router link in docs. Fixed by @marvinhosea in [PR](https://github.com/wailsapp/wails/pull/2050) ### Alterado - Improve error message if no `index.html` could be found in the assets and validate assetserver options. Changed by @stffabi in this [PR](https://github.com/wailsapp/wails/pull/2110) +- Promote the Go WebView2Loader from experimental to stable. This means now per default all Wails build use the new loader introduced with `v2.2.0`. The old loader remains usable with build tag `native_webview2loader` for the next few releases. Changed by @stffabi in this [PR](https://github.com/wailsapp/wails/pull/2199) +- Refactored CLI. Changed by @leaanthony in this [PR](https://github.com/wailsapp/wails/pull/2123) +- Remove unreachable code. Changed by @tmclane in this [PR](https://github.com/wailsapp/wails/pull/2182) ## v2.2.0 - 2022-11-09 diff --git a/website/i18n/pt/docusaurus-plugin-content-pages/community-guide.mdx b/website/i18n/pt/docusaurus-plugin-content-pages/community-guide.mdx index 14bc204e7..8bc5a3e19 100644 --- a/website/i18n/pt/docusaurus-plugin-content-pages/community-guide.mdx +++ b/website/i18n/pt/docusaurus-plugin-content-pages/community-guide.mdx @@ -15,7 +15,7 @@ This [Code of Conduct](./coc) is an easy guide to develop the technical communit ### Get Support - [GitHub](https://github.com/wailsapp/wails) - If you have a bug to report or feature to request, that's what the GitHub issues are for. Please respect the rules specified in each repository's issue template. -- [Slack](https://gophers.slack.com/messages/CJ4P9F7MZ/) - A place for Wails devs to meet and chat in real time. +- [Discord](https://discord.gg/JDdSxwjhGf) - A place for Wails devs to meet and chat in real time. - [QQ Group(中文)](https://qm.qq.com/cgi-bin/qm/qr?k=PmIURne5hFGNd7QWzW5qd6FV-INEjNJv&jump_from=webapi) - A Wails group for Chinese developers to communicate, where you can get help from other developers. ### Explore the Ecosystem @@ -131,9 +131,9 @@ If you want to add a new language to the documentation, please follow the prompt ### Helping Others -A great way to contribute to the project is to help others who are experiencing difficulty. This is normally reported as a ticket or a message on the Wails slack channel. Even just clarifying the issue can really help out. Sometimes, when an issue is discussed and gets resolved, we create a guide out of it to help others who face the same issues. +A great way to contribute to the project is to help others who are experiencing difficulty. This is normally reported as a ticket or a message on the Wails discord server. Even just clarifying the issue can really help out. Sometimes, when an issue is discussed and gets resolved, we create a guide out of it to help others who face the same issues. -To join the Wails slack channel, accept the invite [here](https://gophers.slack.com/join/shared_invite/zt-197vymgt3-sJt4oyakb6nqlVKjXTyeVw#/shared-invite/email) and join us on the channel by following [this link](https://gophers.slack.com/?redir=%2Fmessages%2FCJ4P9F7MZ%2F). +To join the Wails discord server, click [here](https://discord.gg/JDdSxwjhGf). :::note diff --git a/website/i18n/pt/docusaurus-plugin-content-pages/credits.mdx b/website/i18n/pt/docusaurus-plugin-content-pages/credits.mdx index 2c70c7bb1..0f2106805 100644 --- a/website/i18n/pt/docusaurus-plugin-content-pages/credits.mdx +++ b/website/i18n/pt/docusaurus-plugin-content-pages/credits.mdx @@ -4,10 +4,11 @@ - [Stffabi](https://github.com/stffabi) - Technical lead, developer and maintainer - [Misite Bao](https://github.com/misitebao) - Documentation wizard, Chinese translation, Windows testing, Bug finder general - [Travis McLane](https://github.com/tmclane) - Cross-compilation work, MacOS testing -- [Byron Chris](https://github.com/bh90210) - Linux distro wizard, Linux testing +- [Lyimmi](https://github.com/Lyimmi) - All things Linux ## Sponsors + ## Contributors @@ -15,172 +16,244 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Lea Anthony

💻 🤔 🎨 🖋 💡 🧑‍🏫 📆 🔧 🐛 📝 🚧 📦 👀 💬 🔬 ⚠️ 📢 👀 📖

stffabi

💻 🤔 🎨 🐛 🚧 📦 👀 💬 🔬 👀 📖 ⚠️

Travis McLane

💻 🔬 📦 🤔 🐛 👀 ⚠️ 💬 📖

Misite Bao

📖 🌍 🔬 🚧

Byron Chris

💻 🔬 🚧 🐛 👀 ⚠️ 💬 🤔 🎨 📦 🚇

konez2k

💻 📦 🤔

Dario Emerson

💻 🐛 🤔 ⚠️

Ian M. Jones

💻 🐛 🤔 ⚠️ 👀 📦

marktohark

💻

Ryan H

💻

Cody Bentley

💻 📦 🤔 💵

Florent

💻 🐛

Alexander Hudek

💻 💵

Tim Kipp

💻

Altynbek Kaliakbarov

💻

Nikolai Zimmermann

💻

k-muchmore

💻

Snider

💻 🤔 📖 💵

Albert Sun

💻 ⚠️

Ariel

💻 🐛

Ilgıt Yıldırım

💻 🐛 💵

Toyam Cox

💻 📦 🐛

hi019

💻 🐛

Arthur Wiebe

💻 🐛

Balakrishna Prasad Ganne

💻

BillBuilt

💻 📦 🤔 💬 💵

Eng Zer Jun

🚧 💻

LGiki

📖

Lontten

📖

Lukas Crepaz

💻 🐛

Marcus Crane

🐛 📖 💵

Qais Patankar

📖

Wakeful-Cloud

💻 🐛

Zámbó, Levente

💻 📦 🐛 ⚠️

Ironpark

💻 🤔

mondy

💻 📖

Benjamin Ryan

🐛

fallendusk

📦 💻

Mat Ryer

💻 🤔 🐛

Abtin

💻 🐛

Adrian Lanzafame

📦 💻

Aleksey Polyakov

🐛 💻

Alexander Matviychuk

💻 📦

AlienRecall

💻 📦

Aman

📖

Amaury Tobias Quiroz

💻 🐛

Andreas Wenk

📖

Antonio Stanković

💻 📦

Arpit Jain

📖

Austin Schey

💻 🐛

Benjamin Thomas

💻 📦 🤔

Bertram Truong

💻 🐛

Blake Bourque

📖

Denis

📖

diogox

💻 📦

Dmitry Gomzyakov

💻 📦

Edward Browncross

💻

Elie Grenon

💻

Florian Didron

💻 🐛 🤔 ⚠️ 👀 📦

GargantuaX

💵

Igor Minin

💻 🐛

Jae-Sung Lee

💻 🤔

Jarek

💻 📦

Junker

📖

Kris Raney

💻 🐛

Luken

📖

Mark Stenglein

💻 🐛

buddyabaddon

💻

MikeSchaap

💻 🐛

NYSSEN Michaël

💻 🐛

Nan0

💻 🤔 ⚠️ 👀

oskar

📖

Pierre Joye

💻 🐛 🤔 ⚠️

Reuben Thomas-Davis

💻 🐛

Robin

💻 🐛

Sebastian Bauer

💻 🤔 ⚠️ 👀 💬

Sidharth Rathi

📖 🐛

Sithembiso Khumalo

💻 🐛

Soheib El-Harrache

💻 🐛 💵

Sophie Au

💻 🐛

Stefanos Papadakis

💻 🐛

Steve Chung

💻 🐛

Timm Ortloff

📖

Tom

💻

Valentin Trinqué

💻 🐛

mattn

💻 🐛

bearsh

💻 🤔 📖

chenxiao

💻 🤔 📖

fengweiqiang

💻 📦

flin7

📖

fred21O4

📖

gardc

📖

rayshoo

📖

Ishiyama Yuzuki

💻 🐛

佰阅

💻

刀刀

📖 🐛

归位

💻 🐛

skamensky

💻 🤔 📖

dependabot[bot]

💻 🚧

Damian Sieradzki

💵

John Dorman

💵

Ian Sinnott

💵

Arden Shackelford

💵

Bironou

💵

CharlieGo_

💵

overnet

💵

jugglingjsons

💵

Selvin Ortiz

💵

ZanderCodes

💵

Michael Voronov

💵

letheanVPN

💵

Tai Groot

💵

easy-web-it

💵

Michael Olson

💵

EdenNetwork Italia

💵

ondoki

💵

QuEST Rail LLC

💵

Gilgameš

💵

Bernt-Johan Bergshaven

💵

Liam Bigelow

💵

Nick Arellano

💵

Frank Chiarulli Jr.

💵

Tyler

💵

Trea Hauet

💵

Kent 'picat' Gruber

💵

tc-hib

💵

Antonio

📖

MyNameIsAres

📖

Maicarons J

📖

kiddov

📖 💵 ⚠️ 🤔

Nicolas Coutin

💵

Parvin Eyvazov

📖
Lea Anthony
Lea Anthony

💻 🤔 🎨 🖋 💡 🧑‍🏫 📆 🔧 🐛 📝 🚧 📦 👀 💬 🔬 ⚠️ 📢 👀 📖
stffabi
stffabi

💻 🤔 🎨 🐛 🚧 📦 👀 💬 🔬 👀 📖 ⚠️
Travis McLane
Travis McLane

💻 🔬 📦 🤔 🐛 👀 ⚠️ 💬 📖
Misite Bao
Misite Bao

📖 🌍 🔬 🚧
Byron Chris
Byron Chris

💻 🔬 🚧 🐛 👀 ⚠️ 💬 🤔 🎨 📦 🚇
konez2k
konez2k

💻 📦 🤔
Dario Emerson
Dario Emerson

💻 🐛 🤔 ⚠️
Ian M. Jones
Ian M. Jones

💻 🐛 🤔 ⚠️ 👀 📦
marktohark
marktohark

💻
Ryan H
Ryan H

💻
Cody Bentley
Cody Bentley

💻 📦 🤔 💵
Florent
Florent

💻 🐛
Alexander Hudek
Alexander Hudek

💻 💵
Tim Kipp
Tim Kipp

💻
Altynbek Kaliakbarov
Altynbek Kaliakbarov

💻
Nikolai Zimmermann
Nikolai Zimmermann

💻
k-muchmore
k-muchmore

💻
Snider
Snider

💻 🤔 📖 💵
Albert Sun
Albert Sun

💻 ⚠️
Ariel
Ariel

💻 🐛
Ilgıt Yıldırım
Ilgıt Yıldırım

💻 🐛 💵
Toyam Cox
Toyam Cox

💻 📦 🐛
hi019
hi019

💻 🐛
Arthur Wiebe
Arthur Wiebe

💻 🐛
Balakrishna Prasad Ganne
Balakrishna Prasad Ganne

💻
BillBuilt
BillBuilt

💻 📦 🤔 💬 💵
Eng Zer Jun
Eng Zer Jun

🚧 💻
LGiki
LGiki

📖
Lontten
Lontten

📖
Lukas Crepaz
Lukas Crepaz

💻 🐛
Marcus Crane
Marcus Crane

🐛 📖 💵
Qais Patankar
Qais Patankar

📖
Wakeful-Cloud
Wakeful-Cloud

💻 🐛
Zámbó, Levente
Zámbó, Levente

💻 📦 🐛 ⚠️
Ironpark
Ironpark

💻 🤔
mondy
mondy

💻 📖
Benjamin Ryan
Benjamin Ryan

🐛
fallendusk
fallendusk

📦 💻
Mat Ryer
Mat Ryer

💻 🤔 🐛
Abtin
Abtin

💻 🐛
Adrian Lanzafame
Adrian Lanzafame

📦 💻
Aleksey Polyakov
Aleksey Polyakov

🐛 💻
Alexander Matviychuk
Alexander Matviychuk

💻 📦
AlienRecall
AlienRecall

💻 📦
Aman
Aman

📖
Amaury Tobias Quiroz
Amaury Tobias Quiroz

💻 🐛
Andreas Wenk
Andreas Wenk

📖
Antonio Stanković
Antonio Stanković

💻 📦
Arpit Jain
Arpit Jain

📖
Austin Schey
Austin Schey

💻 🐛
Benjamin Thomas
Benjamin Thomas

💻 📦 🤔
Bertram Truong
Bertram Truong

💻 🐛
Blake Bourque
Blake Bourque

📖
Denis
Denis

📖
diogox
diogox

💻 📦
Dmitry Gomzyakov
Dmitry Gomzyakov

💻 📦
Edward Browncross
Edward Browncross

💻
Elie Grenon
Elie Grenon

💻
Florian Didron
Florian Didron

💻 🐛 🤔 ⚠️ 👀 📦
GargantuaX
GargantuaX

💵
Igor Minin
Igor Minin

💻 🐛
Jae-Sung Lee
Jae-Sung Lee

💻 🤔
Jarek
Jarek

💻 📦
Junker
Junker

📖
Kris Raney
Kris Raney

💻 🐛
Luken
Luken

📖
Mark Stenglein
Mark Stenglein

💻 🐛
buddyabaddon
buddyabaddon

💻
MikeSchaap
MikeSchaap

💻 🐛
NYSSEN Michaël
NYSSEN Michaël

💻 🐛
Nan0
Nan0

💻 🤔 ⚠️ 👀
oskar
oskar

📖
Pierre Joye
Pierre Joye

💻 🐛 🤔 ⚠️
Reuben Thomas-Davis
Reuben Thomas-Davis

💻 🐛
Robin
Robin

💻 🐛
Sebastian Bauer
Sebastian Bauer

💻 🤔 ⚠️ 👀 💬
Sidharth Rathi
Sidharth Rathi

📖 🐛
Sithembiso Khumalo
Sithembiso Khumalo

💻 🐛
Soheib El-Harrache
Soheib El-Harrache

💻 🐛 💵
Sophie Au
Sophie Au

💻 🐛
Stefanos Papadakis
Stefanos Papadakis

💻 🐛
Steve Chung
Steve Chung

💻 🐛
Timm Ortloff
Timm Ortloff

📖
Tom
Tom

💻
Valentin Trinqué
Valentin Trinqué

💻 🐛
mattn
mattn

💻 🐛
bearsh
bearsh

💻 🤔 📖
chenxiao
chenxiao

💻 🤔 📖
fengweiqiang
fengweiqiang

💻 📦
flin7
flin7

📖
fred21O4
fred21O4

📖
gardc
gardc

📖
rayshoo
rayshoo

📖
Ishiyama Yuzuki
Ishiyama Yuzuki

💻 🐛
佰阅
佰阅

💻
刀刀
刀刀

📖 🐛
归位
归位

💻 🐛
skamensky
skamensky

💻 🤔 📖
dependabot[bot]
dependabot[bot]

💻 🚧
Damian Sieradzki
Damian Sieradzki

💵
John Dorman
John Dorman

💵
Ian Sinnott
Ian Sinnott

💵
Arden Shackelford
Arden Shackelford

💵
Bironou
Bironou

💵
CharlieGo_
CharlieGo_

💵
overnet
overnet

💵
jugglingjsons
jugglingjsons

💵
Selvin Ortiz
Selvin Ortiz

💵
ZanderCodes
ZanderCodes

💵
Michael Voronov
Michael Voronov

💵
letheanVPN
letheanVPN

💵
Tai Groot
Tai Groot

💵
easy-web-it
easy-web-it

💵
Michael Olson
Michael Olson

💵
EdenNetwork Italia
EdenNetwork Italia

💵
ondoki
ondoki

💵
QuEST Rail LLC
QuEST Rail LLC

💵
Gilgameš
Gilgameš

💵
Bernt-Johan Bergshaven
Bernt-Johan Bergshaven

💵
Liam Bigelow
Liam Bigelow

💵
Nick Arellano
Nick Arellano

💵
Frank Chiarulli Jr.
Frank Chiarulli Jr.

💵
Tyler
Tyler

💵
Trea Hauet
Trea Hauet

💵
Kent 'picat' Gruber
Kent 'picat' Gruber

💵
tc-hib
tc-hib

💵
Antonio
Antonio

📖
MyNameIsAres
MyNameIsAres

📖
Maicarons J
Maicarons J

📖
kiddov
kiddov

📖 💵 ⚠️ 🤔
Nicolas Coutin
Nicolas Coutin

💵
Parvin Eyvazov
Parvin Eyvazov

📖
github-actions[bot]
github-actions[bot]

💻
Oleg Gulevskyy
Oleg Gulevskyy

💻 📖 🚧 📦
Richard Guay
Richard Guay

📖
Adam Tenderholt
Adam Tenderholt

💻
JulioDRF
JulioDRF

💻
Scott Opell
Scott Opell

💻
Vadim Shchepotev
Vadim Shchepotev

💻
Will Andrews
Will Andrews

💻
Gwyn
Gwyn

💻 👀 💬 🔬
希嘉嘉
希嘉嘉

💻
ALMAS
ALMAS

💻
Alex
Alex

💻
Arif Ali
Arif Ali

💻
Artur Siarohau
Artur Siarohau

💻
Binyamin Aron Green
Binyamin Aron Green

💻
Brian Dwyer
Brian Dwyer

💻
Christian Kilb
Christian Kilb

💻
David Florness
David Florness

📖
David Walton
David Walton

💻
Debdut Karmakar
Debdut Karmakar

💻
Dieter Zhu
Dieter Zhu

💻
Fredrik Holmqvist
Fredrik Holmqvist

💻
Giovanni Palma
Giovanni Palma

💻
Hao
Hao

💻
Igor Sementsov
Igor Sementsov

💻
Johannes Haseitl
Johannes Haseitl

💻
Joshua Hull
Joshua Hull

💻
Joshua Mangiola
Joshua Mangiola

📖
Kevin MacMartin
Kevin MacMartin

💻
Liang Li
Liang Li

💻
Marvin Collins Hosea
Marvin Collins Hosea

💻
Matt Holt
Matt Holt

💻
Niklas
Niklas

💻
Andy Hsu
Andy Hsu

💻
NullCode
NullCode

💻
Oussama Sethoum
Oussama Sethoum

💻
ParkourLiu
ParkourLiu

💻
Rachel Chen
Rachel Chen

💻
Rob Nice
Rob Nice

💻
Ryo TAGAMI
Ryo TAGAMI

💻
Sam Hennessy
Sam Hennessy

💻
Sean
Sean

💻
Sean Gosiaco
Sean Gosiaco

💻
Eric P Sheets
Eric P Sheets

💻
Supian M
Supian M

💻
Watson-Sei
Watson-Sei

💻 📖
Yuki Shindo
Yuki Shindo

💻
cuigege
cuigege

💻
cybertramp
cybertramp

💻
hiroki yagi
hiroki yagi

💻
imgbot[bot]
imgbot[bot]

💻
juju
juju

💻
Michael Eatherly
Michael Eatherly

💻
tk
tk

💻
allcontributors[bot]
allcontributors[bot]

📖
wander
wander

📖
@@ -193,6 +266,7 @@ - [John Chadwick](https://github.com/jchv) - His amazing work on [go-webview2](https://github.com/jchv/go-webview2) and [go-winloader](https://github.com/jchv/go-winloader) have made the Windows version possible. - [Tad Vizbaras](https://github.com/tadvi) - His winc project was the first step down the path to a pure Go Wails. - [Mat Ryer](https://github.com/matryer) - For advice, support and bants. +- [Byron Chris](https://github.com/bh90210) - For his long term contributions to this project. - [Dustin Krysak](https://wiki.ubuntu.com/bashfulrobot) - His support and feedback has been invaluable. - [Justen Walker](https://github.com/justenwalker/) - For helping wrangle COM issues which got v2 over the line. - [Wang, Chi](https://github.com/patr0nus/) - The DeskGap project was a huge influence on the direction of Wails v2. diff --git a/website/i18n/pt/docusaurus-theme-classic/footer.json b/website/i18n/pt/docusaurus-theme-classic/footer.json index e162c8874..db8ed5137 100644 --- a/website/i18n/pt/docusaurus-theme-classic/footer.json +++ b/website/i18n/pt/docusaurus-theme-classic/footer.json @@ -50,5 +50,9 @@ "link.item.label.Awesome": { "message": "Fantástico", "description": "The label of footer link with label=Awesome linking to https://github.com/wailsapp/awesome-wails" + }, + "link.item.label.Discord": { + "message": "Discord", + "description": "The label of footer link with label=Discord linking to https://discord.gg/JDdSxwjhGf" } } diff --git a/website/i18n/ru/code.json b/website/i18n/ru/code.json index d60c126c2..b4b61539f 100644 --- a/website/i18n/ru/code.json +++ b/website/i18n/ru/code.json @@ -411,5 +411,13 @@ "theme.SearchModal.placeholder": { "message": "Search docs", "description": "The placeholder of the input of the DocSearch pop-up modal" + }, + "theme.docs.sidebar.closeSidebarButtonAriaLabel": { + "message": "Close navigation bar", + "description": "The ARIA label for close button of mobile sidebar" + }, + "theme.docs.sidebar.toggleSidebarButtonAriaLabel": { + "message": "Toggle navigation bar", + "description": "The ARIA label for hamburger menu button of mobile navigation" } } diff --git a/website/i18n/ru/docusaurus-plugin-content-blog/2023-01-17-v3-roadmap.mdx b/website/i18n/ru/docusaurus-plugin-content-blog/2023-01-17-v3-roadmap.mdx new file mode 100644 index 000000000..9a137d09a --- /dev/null +++ b/website/i18n/ru/docusaurus-plugin-content-blog/2023-01-17-v3-roadmap.mdx @@ -0,0 +1,184 @@ +--- +slug: the-road-to-wails-v3 +title: The Road to Wails v3 +authors: + - leaanthony +tags: + - wails + - v3 +--- + +```mdx-code-block +
+ +
+
+``` + +# Introduction + +Wails is a project that simplifies the ability to write cross-platform desktop applications using Go. It uses native webview components for the frontend (not embedded browsers), bringing the power of the world's most popular UI system to Go, whilst remaining lightweight. + +Version 2 was released on the 22nd of September 2022 and brought with it a lot of enhancements including: + +- Live development, leveraging the popular Vite project +- Rich functionality for managing windows and creating menus +- Microsoft's WebView2 component +- Generation of Typescript models that mirror your Go structs +- Creating of NSIS Installer +- Obfuscated builds + +Right now, Wails v2 provides powerful tooling for creating rich, cross-platform desktop applications. + +This blog post aims to look at where the project is at right now and what we can improve on moving forward. + +# Where are we now? + +It's been incredible to see the popularity of Wails rising since the v2 release. I'm constantly amazed by the creativity of the community and the wonderful things that are being built with it. With more popularity, comes more eyes on the project. And with that, more feature requests and bug reports. + +Over time, I've been able to identify some of the most pressing issues facing the project. I've also been able to identify some of the things that are holding the project back. + +## Current issues + +I've identified the following areas that I feel are holding the project back: + +- The API +- Bindings generation +- The Build System + +### The API + +The API to build a Wails application currently consists of 2 parts: + +- The Application API +- The Runtime API + +The Application API famously has only 1 function: `Run()` which takes a heap of options which govern how the application will work. Whilst this is very simple to use, it is also very limiting. It is a "declarative" approach which hides a lot of the underlying complexity. For instance, there is no handle to the main window, so you can't interact with it directly. For that, you need to use the Runtime API. This is a problem when you start to want to do more complex things like create multiple windows. + +The Runtime API provides a lot of utility functions for the developer. This includes: + +- Window management +- Dialogs +- Menus +- Events +- Logs + +There are a number of things I am not happy with the Runtime API. The first is that it requires a "context" to be passed around. This is both frustrating and confusing for new developers who pass in a context and then get a runtime error. + +The biggest issue with the Runtime API is that it was designed for applications that only use a single window. Over time, the demand for multiple windows has grown and the API is not well suited to this. + +### Thoughts on the v3 API + +Wouldn't it be great if we could do something like this? + +```go +func main() { + app := wails.NewApplication(options.App{}) + myWindow := app.NewWindow(options.Window{}) + myWindow.SetTitle("My Window") + myWindow.On(events.Window.Close, func() { + app.Quit() + }) + app.Run() +} +``` + +This programmatic approach is far more intuitive and allows the developer to interact with the application elements directly. All current runtime methods for windows would simply be methods on the window object. For the other runtime methods, we could move them to the application object like so: + +```go +app := wails.NewApplication(options.App{}) +app.NewInfoDialog(options.InfoDialog{}) +app.Log.Info("Hello World") +``` + +This is a much more powerful API which will allow for more complex applications to be built. It also allows for the creation of multiple windows, [the most up-voted feature on GitHub](https://github.com/wailsapp/wails/issues/1480): + +```go +func main() { + app := wails.NewApplication(options.App{}) + myWindow := app.NewWindow(options.Window{}) + myWindow.SetTitle("My Window") + myWindow.On(events.Window.Close, func() { + app.Quit() + }) + myWindow2 := app.NewWindow(options.Window{}) + myWindow2.SetTitle("My Window 2") + myWindow2.On(events.Window.Close, func() { + app.Quit() + }) + app.Run() +} +``` + +### Bindings generation + +One of the key features of Wails is generating bindings for your Go methods so they may be called from Javascript. The current method for doing this is a bit of a hack. It involves building the application with a special flag and then running the resultant binary which uses reflection to determine what has been bound. This leads to a bit of a chicken and egg situation: You can't build the application without the bindings and you can't generate the bindings without building the application. There are many ways around this but the best one would be not to use this approach at all. + +There was a number of attempts at writing a static analyser for Wails projects but they didn't get very far. In more recent times, it has become slightly easier to do this with more material available on the subject. + +Compared to reflection, the AST approach is much faster however it is significantly more complicated. To start with, we may need to impose certain constraints on how to specify bindings in the code. The goal is to support the most common use cases and then expand it later on. + +### The Build System + +Like the declarative approach to the API, the build system was created to hide the complexities of building a desktop application. When you run `wails build`, it does a lot of things behind the scenes: +- Builds the backend binary for bindings and generates the bindings +- Installs the frontend dependencies +- Builds the frontend assets +- Determines if the application icon is present and if so, embeds it +- Builds the final binary +- If the build is for `darwin/universal` it builds 2 binaries, one for `darwin/amd64` and one for `darwin/arm64` and then creates a fat binary using `lipo` +- If compression is required, it compresses the binary with UPX +- Determines if this binary is to be packaged and if so: + - Ensures the icon and application manifest are compiled into the binary (Windows) + - Builds out the application bundle, generates the icon bundle and copies it, the binary and Info.plist to the application bundle (Mac) +- If an NSIS installer is required, it builds it + +This entire process, whilst very powerful, is also very opaque. It is very difficult to customise it and it is very difficult to debug. + +To address this in v3, I would like to move to a build system that exists outside of Wails. After using [Task](https://taskfile.dev/) for a while, I am a big fan of it. It is a great tool for configuring build systems and should be reasonably familiar to anyone who has used Makefiles. + +The build system would be configured using a `Taskfile.yml` file which would be generated by default with any of the supported templates. This would have all of the steps required to do all the current tasks, such as building or packaging the application, allowing for easy customisation. + +There will be no external requirement for this tooling as it would form part of the Wails CLI. This means that you can still use `wails build` and it will do all the things it does today. However, if you want to customise the build process, you can do so by editing the `Taskfile.yml` file. It also means you can easily understand the build steps and use your own build system if you wish. + +The missing piece in the build puzzle is the atomic operations in the build process, such as icon generation, compression and packaging. To require a bunch of external tooling would not be a great experience for the developer. To address this, the Wails CLI will provide all these capabilities as part of the CLI. This means that the builds still work as expected, with no extra external tooling, however you can replace any step of the build with any tool you like. + +This will be a much more transparent build system which will allow for easier customisation and address a lot of the issues that have been raised around it. + +## The Payoff + +These positive changes will be a huge benefit to the project: +- The new API will be much more intuitive and will allow for more complex applications to be built. +- Using static analysis for bindings generation will be much faster and reduce a lot of the complexity around the current process. +- Using an established, external build system will make the build process completely transparent, allowing for powerful customisation. + +Benefits to the project maintainers are: + +- The new API will be much easier to maintain and adapt to new features and platforms. +- The new build system will be much easier to maintain and extend. I hope this will lead to a new ecosystem of community driven build pipelines. +- Better separation of concerns within the project. This will make it easier to add new features and platforms. + +## The Plan + +A lot of the experimentation for this has already been done and it's looking good. There is no current timeline for this work but I'm hoping by the end of Q1 2023, there will be an alpha release for Mac to allow the community to test, experiment with and provide feedback. + +## Summary + +- The v2 API is declarative, hides a lot from the developer and not suitable for features such as multiple windows. A new API will be created which will be simpler, intuitive and more powerful. +- The build system is opaque and difficult to customise so we will move to an external build system which will open it all up. +- The bindings generation is slow and complex so we will move to static analysis which will remove a lot of the complexity the current method has. + +There has been a lot of work put into the guts of v2 and it's solid. It's now time to address the layer on top of it and make it a much better experience for the developer. + +I hope you are as excited about this as I am. I'm looking forward to hearing your thoughts and feedback. + +Regards, + +‐ Lea + +PS: If you or your company find Wails useful, please consider [sponsoring the project](https://github.com/sponsors/leaanthony). Thanks! + +PPS: Yes, that's a genuine screenshot of a multi-window application built with Wails. It's not a mockup. It's real. It's awesome. It's coming soon. \ No newline at end of file diff --git a/website/i18n/ru/docusaurus-plugin-content-docs/current/community/links.mdx b/website/i18n/ru/docusaurus-plugin-content-docs/current/community/links.mdx index af3f57c27..64c3f23b5 100644 --- a/website/i18n/ru/docusaurus-plugin-content-docs/current/community/links.mdx +++ b/website/i18n/ru/docusaurus-plugin-content-docs/current/community/links.mdx @@ -12,8 +12,7 @@ sidebar_position: 2 ## Каналы поддержки -- [Gophers Slack Channel](https://gophers.slack.com/messages/CJ4P9F7MZ/) -- [Gophers Slack Channel Invite](https://invite.slack.golangbridge.org/) +- [Wails Discord Server](https://discord.gg/JDdSxwjhGf) - [Github Issues](https://github.com/wailsapp/wails/issues) - [v2 Beta Discussion Board](https://github.com/wailsapp/wails/discussions/828) @@ -23,4 +22,5 @@ sidebar_position: 2 - [Wails группа в QQ китайского сообщества](https://qm.qq.com/cgi-bin/qm/qr?k=PmIURne5hFGNd7QWzW5qd6FV-INEjNJv&jump_from=webapi) - Номер группы: 1067173054 ## Другие руководства и статьи + - [Создание доски объявлений](https://blog.customct.com/building-bulletin-board) diff --git a/website/i18n/ru/docusaurus-plugin-content-docs/current/community/showcase/bulletinboard.mdx b/website/i18n/ru/docusaurus-plugin-content-docs/current/community/showcase/bulletinboard.mdx new file mode 100644 index 000000000..37be75135 --- /dev/null +++ b/website/i18n/ru/docusaurus-plugin-content-docs/current/community/showcase/bulletinboard.mdx @@ -0,0 +1,10 @@ +# BulletinBoard + +```mdx-code-block +

+ +
+

+``` + +The [BulletinBoard](https://github.com/raguay/BulletinBoard) application is a versital message board for static messages or dialogs to get information from the user for a script. It has a TUI for creating new dialogs that can latter be used to get information from the user. It's design is to stay running on your system and show the information as needed and then hide away. I have a process for watching a file on my system and sending the contents to BulletinBoard when changed. It works great with my workflows. There is also an [Alfred workflow](https://github.com/raguay/MyAlfred/blob/master/Alfred%205/EmailIt.alfredworkflow) for sending information to the program. The workflow is also for working with [EmailIt](https://github.com/raguay/EmailIt). diff --git a/website/i18n/ru/docusaurus-plugin-content-docs/current/community/showcase/emailit.mdx b/website/i18n/ru/docusaurus-plugin-content-docs/current/community/showcase/emailit.mdx index 04150ba28..c1817b70f 100644 --- a/website/i18n/ru/docusaurus-plugin-content-docs/current/community/showcase/emailit.mdx +++ b/website/i18n/ru/docusaurus-plugin-content-docs/current/community/showcase/emailit.mdx @@ -7,4 +7,4 @@

``` -[EmailIt](https://github.com/raguay/EmailIt/) is a Wails 2 program that is a markdown based email sender only with nine notepads, scripts to manipulate the text, and templates. It also has a builtin [Node-Red](https://nodered.org/) server, scripts terminal, and the [ScriptBar](https://github.com/raguay/ScriptBarApp) program for displaying results from Node-Red or a script on your system. Documentation is very scarce, but the programs works. It’s built using Wails2 and Svelte, and the download is a universal macOS application. +[EmailIt](https://github.com/raguay/EmailIt/) is a Wails 2 program that is a markdown based email sender only with nine notepads, scripts to manipulate the text, and templates. It also has a scripts terminal to run scripts in EmailIt on files in your system. The scripts and templates can be used from the commandline itself or with the Alfred, Keyboard Maestro, Dropzone, or PopClip extensions. It also supports scripts and themes downloaded form GitHub. Documentation is not complete, but the programs works. It’s built using Wails2 and Svelte, and the download is a universal macOS application. diff --git a/website/i18n/ru/docusaurus-plugin-content-docs/current/community/showcase/hiposter.mdx b/website/i18n/ru/docusaurus-plugin-content-docs/current/community/showcase/hiposter.mdx new file mode 100644 index 000000000..87e5837d3 --- /dev/null +++ b/website/i18n/ru/docusaurus-plugin-content-docs/current/community/showcase/hiposter.mdx @@ -0,0 +1,10 @@ +# hiposter + +```mdx-code-block +

+ +
+

+``` + +[hiposter](https://github.com/obity/hiposter) is a simple and efficient http API testing client tool. Based on Wails, Go and sveltejs. diff --git a/website/i18n/ru/docusaurus-plugin-content-docs/current/community/showcase/modalfilemanager.mdx b/website/i18n/ru/docusaurus-plugin-content-docs/current/community/showcase/modalfilemanager.mdx index 5f9016f33..ed470b8bd 100644 --- a/website/i18n/ru/docusaurus-plugin-content-docs/current/community/showcase/modalfilemanager.mdx +++ b/website/i18n/ru/docusaurus-plugin-content-docs/current/community/showcase/modalfilemanager.mdx @@ -9,6 +9,6 @@

``` -[Modal File Manager](https://github.com/raguay/ModalFileManager) — это двухпанельный файловый менеджер с использованием веб-технологий. Мой оригинальный дизайн был основан на NW.js, и его можно найти [здесь](https://github.com/raguay/ModalFileManager-NWjs). В этой версии используется тот же код интерфейса Svelte (но с момента выхода из NW.), но бэкенд - это реализация [Wails 2](https://wails.io/). Используя эту реализацию, я больше не использую командную строку и команды: `rm`, `cp`, и т. д. Он полностью закодирован с помощью Go и работает гораздо быстрее, чем предыдущие версии. +[Modal File Manager](https://github.com/raguay/ModalFileManager) — это двухпанельный файловый менеджер с использованием веб-технологий. Мой оригинальный дизайн был основан на NW.js, и его можно найти [здесь](https://github.com/raguay/ModalFileManager-NWjs). В этой версии используется тот же код интерфейса Svelte (но с момента выхода из NW.), но бэкенд - это реализация [Wails 2](https://wails.io/). By using this implementation, I no longer use command line `rm`, `cp`, etc. commands, but a git install has to be on the system to download themes and extensions. Он полностью закодирован с помощью Go и работает гораздо быстрее, чем предыдущие версии. -Этот файловый менеджер построен вокруг того же принципа, что и Vim: управление состоянием клавиатурных действий. Количество состояний не фиксировано, но очень программируется. Поэтому может быть создано и использовано бесконечное количество конфигураций клавиатуры. Это главное отличие от других файловых менеджеров. +Этот файловый менеджер построен вокруг того же принципа, что и Vim: управление состоянием клавиатурных действий. Количество состояний не фиксировано, но очень программируется. Поэтому может быть создано и использовано бесконечное количество конфигураций клавиатуры. Это главное отличие от других файловых менеджеров. There are themes and extensions available to download from GitHub. diff --git a/website/i18n/ru/docusaurus-plugin-content-docs/current/community/showcase/scriptbar.mdx b/website/i18n/ru/docusaurus-plugin-content-docs/current/community/showcase/scriptbar.mdx index 3069a4808..a512448fe 100644 --- a/website/i18n/ru/docusaurus-plugin-content-docs/current/community/showcase/scriptbar.mdx +++ b/website/i18n/ru/docusaurus-plugin-content-docs/current/community/showcase/scriptbar.mdx @@ -7,4 +7,4 @@

``` -[ScriptBar](https://GitHub.com/raguay/ScriptBarApp) это программа для отображения вывода встроенного сервера [Node-Red](https://nodered.org) в приложении [EmailIt](https://GitHub.com/raguay/EmailIt). Он также отображает вывод скриптов в вашей системе. ScriptBar не помещает их в меню, но все они в удобном окне для удобного просмотра. Вы можете открыть несколько вкладок, чтобы показать множество различных вещей. Вы также можете держать ссылки на наиболее посещаемые вами веб-сайты. +[ScriptBar](https://GitHub.com/raguay/ScriptBarApp) is a program to show the output of scripts or [Node-Red](https://nodered.org) server. It runs scripts defined in EmailIt program and shows the output. Scripts from xBar or TextBar can be used, but currently on the TextBar scripts work well. Он также отображает вывод скриптов в вашей системе. ScriptBar не помещает их в меню, но все они в удобном окне для удобного просмотра. Вы можете открыть несколько вкладок, чтобы показать множество различных вещей. Вы также можете держать ссылки на наиболее посещаемые вами веб-сайты. diff --git a/website/i18n/ru/docusaurus-plugin-content-docs/current/community/showcase/warmine.mdx b/website/i18n/ru/docusaurus-plugin-content-docs/current/community/showcase/warmine.mdx new file mode 100644 index 000000000..950dc3f3d --- /dev/null +++ b/website/i18n/ru/docusaurus-plugin-content-docs/current/community/showcase/warmine.mdx @@ -0,0 +1,19 @@ +# Minecraft launcher for WarMine + +```mdx-code-block +

+ + +
+

+``` + +[Minecraft launcher for WarMine](https://warmine.ru/) is a Wails application, that allows you to easily join modded game servers and manage your game accounts. + +The Launcher downloads the game files, checks their integrity and launches the game with a wide range of customization options for the launch arguments from the backend. + +Frontend is written in Svelte, whole launcher fits in 9MB and supports Windows 7-11. diff --git a/website/i18n/ru/docusaurus-plugin-content-docs/current/community/templates.mdx b/website/i18n/ru/docusaurus-plugin-content-docs/current/community/templates.mdx index e4a7dd184..d649393e6 100644 --- a/website/i18n/ru/docusaurus-plugin-content-docs/current/community/templates.mdx +++ b/website/i18n/ru/docusaurus-plugin-content-docs/current/community/templates.mdx @@ -27,6 +27,7 @@ sidebar_position: 1 - [wails-vite-vue-the-works](https://github.com/codydbentley/wails-vite-vue-the-works) - Vue 3 TypeScript с Vite, Vuex, Vue Router, Sass, и ESLint + Prettier - [wails-template-quasar-js](https://github.com/sgosiaco/wails-template-quasar-js) - A template using JavaScript + Quasar V2 (Vue 3, Vite, Sass, Pinia, ESLint, Prettier) - [wails-template-quasar-ts](https://github.com/sgosiaco/wails-template-quasar-ts) - A template using TypeScript + Quasar V2 (Vue 3, Vite, Sass, Pinia, ESLint, Prettier, Composition API with <script setup>) +- [wails-template-naive](https://github.com/tk103331/wails-template-naive) - Wails template based on Naive UI (A Vue 3 Component Library) ## Angular diff --git a/website/i18n/ru/docusaurus-plugin-content-docs/current/gettingstarted/installation.mdx b/website/i18n/ru/docusaurus-plugin-content-docs/current/gettingstarted/installation.mdx index 0d746c44b..b69ab2d4c 100644 --- a/website/i18n/ru/docusaurus-plugin-content-docs/current/gettingstarted/installation.mdx +++ b/website/i18n/ru/docusaurus-plugin-content-docs/current/gettingstarted/installation.mdx @@ -57,7 +57,7 @@ import TabItem from "@theme/TabItem"; Wails требует установки WebView2. В некоторых установках Windows это уже установлено. Вы можете проверить используя команду wails doctor. - Linux требуется стандарт gcc инструменты сборки, а так же libgtk3 и libwebkit. Вместо того чтобы перечислять огромное количество команд для разных дистрибутивов, Wails может попробовать определить команды установки, специфичные для вашего дистрибутива. Запустите wails doctor после установки, чтобы узнать, как установить зависимости. Если ваш дистрибутив или менеджер пакетов не поддерживается, пожалуйста, обратитесь к руководству {" "} Добавление дистрибутива Linux. + Linux requires the standard gcc build tools plus libgtk3 and libwebkit. Вместо того чтобы перечислять огромное количество команд для разных дистрибутивов, Wails может попробовать определить команды установки, специфичные для вашего дистрибутива. Запустите wails doctor после установки, чтобы узнать, как установить зависимости. Если ваш дистрибутив или менеджер пакетов не поддерживается, пожалуйста, обратитесь к руководству {" "} Добавление дистрибутива Linux. ``` diff --git a/website/i18n/ru/docusaurus-plugin-content-docs/current/guides/dynamic-assets.mdx b/website/i18n/ru/docusaurus-plugin-content-docs/current/guides/dynamic-assets.mdx index b7316b30a..975916524 100644 --- a/website/i18n/ru/docusaurus-plugin-content-docs/current/guides/dynamic-assets.mdx +++ b/website/i18n/ru/docusaurus-plugin-content-docs/current/guides/dynamic-assets.mdx @@ -8,7 +8,7 @@ В нашем примере мы создадим простой обработчик ресурсов, который загрузит файлы с диска: -```go title=main.go {16-35,49} +```go title=main.go {17-36,49} package main import ( diff --git a/website/i18n/ru/docusaurus-plugin-content-docs/current/guides/frameless.mdx b/website/i18n/ru/docusaurus-plugin-content-docs/current/guides/frameless.mdx index 3845736f4..1c7a661e7 100644 --- a/website/i18n/ru/docusaurus-plugin-content-docs/current/guides/frameless.mdx +++ b/website/i18n/ru/docusaurus-plugin-content-docs/current/guides/frameless.mdx @@ -1,8 +1,8 @@ -# Frameless Applications +# Безрамочные приложения -Wails supports application that have no frames. This can be achieved by using the [frameless](../reference/options.mdx#frameless) field in [Application Options](../reference/options.mdx#application-options). +Wails поддерживает приложения, не имеющие рамок. Этого можно добиться, используя поле [frameless](../reference/options.mdx#frameless) в [опциях приложения](../reference/options.mdx#application-options). -Wails offers a simple solution for dragging the window: Any HTML element that has the CSS style `--wails-draggable:drag` will act as a "drag handle". This property applies to all child elements. If you need to indicate that a nested element should not drag, then use the attribute '--wails-draggable:no-drag' on that element. +Wails предоставляет легкое решение для перемещения окна: любой HTML элемент имеющий стиль `--wails-draggable:drag` будет работать как "ручка для перетаскивания". Это свойство применяется для всех дочерних элементов. Если вам необходимо указать, что вложенный элемент не должен перестаскивать окно, то используйте атрибут '--wails-draggable:no-drag' на этом элементе. ```html @@ -23,7 +23,7 @@ Wails offers a simple solution for dragging the window: Any HTML element that ha ``` -For some projects, using a CSS variable may not be possible due to dynamic styling. In this case, you can use the `CSSDragProperty` and `CSSDragValue` application options to define a property and value that will be used to indicate draggable regions: +Для некоторых проектов использование CSS переменной может оказаться невозможным из-за динамических стилей. В этом случае вы можете использовать параметры `CSSDragProperty` и `CSSDragValue` в опциях приожения для определения свойства и значения, которые будут использоваться для указания перетаскиваемых областей: ```go title=main.go package main @@ -40,10 +40,10 @@ import ( var assets embed.FS func main() { - // Create an instance of the app structure + // Создаем экземляр структуры приложения app := NewApp() - // Create application with options + // Создаем приложение с опциями err := wails.Run(&options.App{ Title: "alwaysontop", Width: 1024, @@ -82,6 +82,6 @@ func main() { :::info Fullscreen -If you allow your application to go fullscreen, this drag functionality will be disabled. +Если вы разрешите приложению перейти в полноэкранный режим, функция перетаскивания будет отключена. ::: diff --git a/website/i18n/ru/docusaurus-plugin-content-docs/current/guides/mac-appstore.mdx b/website/i18n/ru/docusaurus-plugin-content-docs/current/guides/mac-appstore.mdx index 62233b57c..961595711 100644 --- a/website/i18n/ru/docusaurus-plugin-content-docs/current/guides/mac-appstore.mdx +++ b/website/i18n/ru/docusaurus-plugin-content-docs/current/guides/mac-appstore.mdx @@ -21,6 +21,12 @@ This page gives a brief overview of how to submit your Wails App to the Mac App 3. Populate your app with the correct screen shots, descriptions, etc. as required by Apple 4. Create a new version of your app +#### Create Provisioning Profile +1. Go to the [Apple Developer Profiles](https://developer.apple.com/account/resources/profiles/list) page +2. Add a new provisioning profile for Mac App Store Distribution +3. Set the Profile Type as Mac and select the App ID for the application created above +4. Select the Mac App Distribution certificate +5. Name the Provisioning Profile embedded and download the created profile. ## Mac App Store Process @@ -30,7 +36,7 @@ Apps submitted to the Mac App Store must run under Apple's [App Sandbox](https:/ **Example Entitlements File** -This is an example entitlements file from the [RiftShare](https://github.com/achhabra2/riftshare) app. For reference please put in the entitlements your app requires. Refer to [this site](https://developer.apple.com/documentation/bundleresources/entitlements) for more information. +This is an example entitlements file from the [RiftShare](https://github.com/achhabra2/riftshare) app. For reference please put in the entitlements your app requires. Refer to [this site](https://developer.apple.com/documentation/bundleresources/entitlements) for more information. You will need to replace the Team ID and Application Name with the ones you registered above. ```xml title="entitlements.plist" @@ -47,10 +53,16 @@ This is an example entitlements file from the [RiftShare](https://github.com/ach com.apple.security.files.downloads.read-write + com.apple.application-identifier + TEAM_ID.APP_NAME + com.apple.developer.team-identifier + TEAM_ID ``` +**Add the Embedded Provisioning Profile** The Provisioning Profile created above needs to be added to the root of the applicaton. It needs to be named embedded.provisionprofile. + #### Build and Sign the App Package The following is an example script for building and signing your app for Mac App Store submission. It assumes you are running the script from your root project directory. @@ -66,6 +78,8 @@ APP_NAME="YourApp" wails build -platform darwin/universal -clean +cp ./embedded.provisionprofile "./build/bin/$APP_NAME.app/Contents" + codesign --timestamp --options=runtime -s "$APP_CERTIFICATE" -v --entitlements ./build/darwin/entitlements.plist ./build/bin/$APP_NAME.app productbuild --sign "$PKG_CERTIFICATE" --component ./build/bin/$APP_NAME.app /Applications ./$APP_NAME.pkg @@ -80,4 +94,4 @@ You will need to upload the generated package file and associate it to your Appl 3. Click the + sign and select the `APP_NAME.pkg` file that you generated in the previous step. Upload it 4. Go back to the [App Store Connect](https://appstoreconnect.apple.com/apps) site and navigate back into your app submission. Select the version that you are ready to make available on the App Store. Under `Build` select the package that you uploaded via Transporter. -That's it! You can now use the site to submit your App for review. After a few business days if all goes well you should see your App live on the Mac App Store. \ No newline at end of file +That's it! You can now use the site to submit your App for review. After a few business days if all goes well you should see your App live on the Mac App Store. diff --git a/website/i18n/ru/docusaurus-plugin-content-docs/current/guides/troubleshooting.mdx b/website/i18n/ru/docusaurus-plugin-content-docs/current/guides/troubleshooting.mdx index 2accc4e5f..a98e64ed4 100644 --- a/website/i18n/ru/docusaurus-plugin-content-docs/current/guides/troubleshooting.mdx +++ b/website/i18n/ru/docusaurus-plugin-content-docs/current/guides/troubleshooting.mdx @@ -159,4 +159,8 @@ Sources: https://github.com/wailsapp/wails/issues/1806 and https://github.com/wa It's preferable to add `frontend/node_modules` and `frontend/package-lock.json` to your `.gitignore`. Otherwise when opening your repository on another machine that may have different versions of Node installed, you may not be able to run your application. -If this does happen, simply delete `frontend/node_modules` and `frontend/package-lock.json` and run your `wails build` or `wails dev` command again. \ No newline at end of file +If this does happen, simply delete `frontend/node_modules` and `frontend/package-lock.json` and run your `wails build` or `wails dev` command again. + +## Build process stuck on "Generating bindings" + +Bindings generation process runs your application in a special mode. If application, intentionally or unintentionally, contains an endless loop (i.e. not exiting after `wails.Run()` finished), this can lead to build process stuck on the stage of bindings generation. Please make sure your code exits properly. diff --git a/website/i18n/ru/docusaurus-plugin-content-docs/current/howdoesitwork.mdx b/website/i18n/ru/docusaurus-plugin-content-docs/current/howdoesitwork.mdx index 163701520..44fa130cc 100644 --- a/website/i18n/ru/docusaurus-plugin-content-docs/current/howdoesitwork.mdx +++ b/website/i18n/ru/docusaurus-plugin-content-docs/current/howdoesitwork.mdx @@ -117,7 +117,7 @@ Wails requires that you pass in an _instance_ of the struct for it to bind it co In this example, we create a new `App` instance and then add this instance to the `Bind` option in `wails.Run`: -```go {16,24} title="main.go" +```go {17,27} title="main.go" package main import ( @@ -164,7 +164,7 @@ func (a *App) Greet(name string) string { You may bind as many structs as you like. Just make sure you create an instance of it and pass it in `Bind`: -```go {8-10} +```go {10-12} //... err := wails.Run(&options.App{ Title: "Basic Demo", @@ -236,7 +236,7 @@ All data types are correctly translated between Go and JavaScript. Even structs. :::info Note -Struct fields *must* have a valid `json` tag to be included in the generated TypeScript. +Struct fields _must_ have a valid `json` tag to be included in the generated TypeScript. Anonymous nested structs are not supported at this time. diff --git a/website/i18n/ru/docusaurus-plugin-content-docs/current/reference/cli.mdx b/website/i18n/ru/docusaurus-plugin-content-docs/current/reference/cli.mdx index 92888242f..71d51b616 100644 --- a/website/i18n/ru/docusaurus-plugin-content-docs/current/reference/cli.mdx +++ b/website/i18n/ru/docusaurus-plugin-content-docs/current/reference/cli.mdx @@ -71,6 +71,7 @@ If you are unsure about a template, inspect `package.json` and `wails.json` for | -windowsconsole | Keep the console window for Windows builds | | | -obfuscate | Obfuscate the application using [garble](https://github.com/burrowers/garble) | false | | -garbleargs | Arguments to pass to garble | `-literals -tiny -seed=random` | +| -nosyncgomod | Do not sync go.mod with the Wails version | false | For a detailed description of the `webview2` flag, please refer to the [Windows](../guides/windows.mdx) Guide. @@ -80,8 +81,10 @@ Example: `wails build -clean -o myproject.exe` -:::Info +:::info + On Mac, the application will be bundled with `Info.plist`, not `Info.dev.plist`. + ::: :::info UPX on Apple Silicon @@ -184,6 +187,9 @@ Your system is ready for Wails development! | -save | Saves the given `assetdir`, `reloaddirs`, `wailsjsdir`, `debounce`, `devserver` and `frontenddevserverurl` flags in `wails.json` to become the defaults for subsequent invocations. | | | -race | Build with Go's race detector | false | | -s | Skip building the frontend | false | +| -nosyncgomod | Do not sync go.mod with the Wails version | false | + + Example: diff --git a/website/i18n/ru/docusaurus-plugin-content-docs/current/reference/options.mdx b/website/i18n/ru/docusaurus-plugin-content-docs/current/reference/options.mdx index 5f8fde991..49214bb08 100644 --- a/website/i18n/ru/docusaurus-plugin-content-docs/current/reference/options.mdx +++ b/website/i18n/ru/docusaurus-plugin-content-docs/current/reference/options.mdx @@ -50,6 +50,7 @@ func main() { OnBeforeClose: app.beforeClose, CSSDragProperty: "--wails-draggable", CSSDragValue: "drag", + EnableFraudulentWebsiteDetection: false, ZoomFactor: 1.0, IsZoomControlEnabled: false, Bind: []interface{}{ @@ -77,7 +78,8 @@ func main() { // OnSuspend is called when Windows enters low power mode OnSuspend func() // OnResume is called when Windows resumes from low power mode - OnResume func() + OnResume func(), + WebviewGpuDisabled: false, }, Mac: &mac.Options{ TitleBar: &mac.TitleBar{ @@ -100,6 +102,7 @@ func main() { Linux: &linux.Options{ Icon: icon, WindowIsTranslucent: false, + WebviewGpuPolicy: linux.WebviewGpuPolicyAlways, }, Debug: options.Debug{ OpenInspectorOnStartup: false, @@ -232,11 +235,11 @@ Not all features of an `http.Request` are currently supported, please see the fo | DELETE | ✅ | ✅ | ✅ [^1] | | Request Headers | ✅ | ✅ | ✅ [^1] | | Request Body | ✅ | ✅ | ❌ | -| Request Body Streaming | ❌ | ❌ | ❌ | +| Request Body Streaming | ✅ | ✅ | ❌ | | Response StatusCodes | ✅ | ✅ | ✅ [^1] | | Response Headers | ✅ | ✅ | ✅ [^1] | | Response Body | ✅ | ✅ | ✅ | -| Response Body Streaming | ❌ | ❌ | ✅ | +| Response Body Streaming | ❌ | ✅ | ✅ | | WebSockets | ❌ | ❌ | ❌ | | HTTP Redirects 30x | ✅ | ❌ | ❌ | @@ -356,6 +359,12 @@ Indicates what value the `CSSDragProperty` style should have to drag the window. Name: CSSDragValue
Type: `string` +### EnableFraudulentWebsiteDetection + +EnableFraudulentWebsiteDetection enables scan services for fraudulent content, such as malware or phishing attempts. These services might send information from your app like URLs navigated to and possibly other content to cloud services of Apple and Microsoft. + +Name: EnableFraudulentWebsiteDetection
Type: `bool` + ### ZoomFactor Name: ZoomFactor
Type: `float64` @@ -542,6 +551,12 @@ If set, this function will be called when Windows resumes from low power mode (s Name: OnResume
Type: `func()` +#### WebviewGpuIsDisabled + +Setting this to `true` will disable GPU hardware acceleration for the webview. + +Name: WebviewGpuIsDisabled
Type: `bool` + ### Mac This defines [Mac specific options](#mac). @@ -722,6 +737,20 @@ Setting this to `true` will make the window background translucent. Some window Name: WindowIsTranslucent
Type: `bool` +#### WebviewGpuPolicy + +This option is used for determining the webview's hardware acceleration policy. + +Name: WebviewGpuPolicy
Type: [`options.WebviewGpuPolicy`](#webviewgpupolicy-type)
Default: `WebviewGpuPolicyAlways` + +##### WebviewGpuPolicy type + +| Value | Description | +| ------------------------ | -------------------------------------------------------------------- | +| WebviewGpuPolicyAlways | Hardware acceleration is always enabled | +| WebviewGpuPolicyOnDemand | Hardware acceleration is enabled/disabled as request by web contents | +| WebviewGpuPolicyNever | Hardware acceleration is always disabled | + ### Debug This defines [Debug specific options](#Debug) that apply to debug builds. diff --git a/website/i18n/ru/docusaurus-plugin-content-docs/current/reference/runtime/clipboard.mdx b/website/i18n/ru/docusaurus-plugin-content-docs/current/reference/runtime/clipboard.mdx new file mode 100644 index 000000000..805f68ed9 --- /dev/null +++ b/website/i18n/ru/docusaurus-plugin-content-docs/current/reference/runtime/clipboard.mdx @@ -0,0 +1,23 @@ +--- +sidebar_position: 8 +--- + +# Clipboard + +This part of the runtime provides access to the operating system's clipboard.
The current implementation only handles text. + +### ClipboardGetText + +This method reads the currently stored text from the clipboard. + +Go: `ClipboardGetText(ctx context.Context) (string, error)`
Returns: a string (if the clipboard is empty an empty string will be returned) or an error. + +JS: `ClipboardGetText(): Promise`
Returns: a promise with a string result (if the clipboard is empty an empty string will be returned). + +### ClipboardSetText + +This method writes a text to the clipboard. + +Go: `ClipboardSetText(ctx context.Context, text string) error`
Returns: an error if there is any. + +JS: `ClipboardSetText(text: string): Promise`
Returns: a promise with true result if the text was successfully set on the clipboard, false otherwise. diff --git a/website/i18n/ru/docusaurus-plugin-content-docs/current/reference/runtime/events.mdx b/website/i18n/ru/docusaurus-plugin-content-docs/current/reference/runtime/events.mdx index 4b021cc05..856ba6f0c 100644 --- a/website/i18n/ru/docusaurus-plugin-content-docs/current/reference/runtime/events.mdx +++ b/website/i18n/ru/docusaurus-plugin-content-docs/current/reference/runtime/events.mdx @@ -34,4 +34,4 @@ Go: `EventsOnMultiple(ctx context.Context, eventName string, callback func(optio This method emits the given event. Optional data may be passed with the event. This will trigger any event listeners. -Go: `EventsEmit(ctx context.Context, eventName string, optionalData ...interface{})`
JS: `EventsEmit(ctx context, optionalData function(optionalData?: any))` +Go: `EventsEmit(ctx context.Context, eventName string, optionalData ...interface{})`
JS: `EventsEmit(eventName: string, ...optionalData: any)` diff --git a/website/i18n/ru/docusaurus-plugin-content-docs/current/reference/runtime/intro.mdx b/website/i18n/ru/docusaurus-plugin-content-docs/current/reference/runtime/intro.mdx index f6be0834f..aae8efccc 100644 --- a/website/i18n/ru/docusaurus-plugin-content-docs/current/reference/runtime/intro.mdx +++ b/website/i18n/ru/docusaurus-plugin-content-docs/current/reference/runtime/intro.mdx @@ -14,6 +14,7 @@ It has utility methods for: - [Events](events.mdx) - [Browser](browser.mdx) - [Log](log.mdx) +- [Clipboard](clipboard.mdx) The Go Runtime is available through importing `github.com/wailsapp/wails/v2/pkg/runtime`. All methods in this package take a context as the first parameter. This context should be obtained from the [OnStartup](../options.mdx#onstartup) or [OnDomReady](../options.mdx#ondomready) hooks. diff --git a/website/i18n/ru/docusaurus-plugin-content-docs/version-v2.0.0-rc.1.json b/website/i18n/ru/docusaurus-plugin-content-docs/version-v2.0.0-rc.1.json deleted file mode 100644 index 49cf4687e..000000000 --- a/website/i18n/ru/docusaurus-plugin-content-docs/version-v2.0.0-rc.1.json +++ /dev/null @@ -1,38 +0,0 @@ -{ - "version.label": { - "message": "v2.0.0-rc.1", - "description": "The label for version v2.0.0-rc.1" - }, - "sidebar.docs.category.Getting Started": { - "message": "Getting Started", - "description": "The label for category Getting Started in sidebar docs" - }, - "sidebar.docs.category.Reference": { - "message": "Reference", - "description": "The label for category Reference in sidebar docs" - }, - "sidebar.docs.category.Runtime": { - "message": "Runtime", - "description": "The label for category Runtime in sidebar docs" - }, - "sidebar.docs.category.Community": { - "message": "Community", - "description": "The label for category Community in sidebar docs" - }, - "sidebar.docs.category.Showcase": { - "message": "Showcase", - "description": "The label for category Showcase in sidebar docs" - }, - "sidebar.docs.category.Guides": { - "message": "Guides", - "description": "The label for category Guides in sidebar docs" - }, - "sidebar.docs.category.Tutorials": { - "message": "Tutorials", - "description": "The label for category Tutorials in sidebar docs" - }, - "sidebar.docs.link.Contributing": { - "message": "Contributing", - "description": "The label for link Contributing in sidebar docs, linking to /community-guide#ways-of-contributing" - } -} diff --git a/website/i18n/ru/docusaurus-plugin-content-docs/version-v2.1.0.json b/website/i18n/ru/docusaurus-plugin-content-docs/version-v2.1.0.json deleted file mode 100644 index f29e6b248..000000000 --- a/website/i18n/ru/docusaurus-plugin-content-docs/version-v2.1.0.json +++ /dev/null @@ -1,38 +0,0 @@ -{ - "version.label": { - "message": "v2.1.0", - "description": "The label for version v2.1.0" - }, - "sidebar.docs.category.Getting Started": { - "message": "Getting Started", - "description": "The label for category Getting Started in sidebar docs" - }, - "sidebar.docs.category.Reference": { - "message": "Reference", - "description": "The label for category Reference in sidebar docs" - }, - "sidebar.docs.category.Runtime": { - "message": "Runtime", - "description": "The label for category Runtime in sidebar docs" - }, - "sidebar.docs.category.Community": { - "message": "Community", - "description": "The label for category Community in sidebar docs" - }, - "sidebar.docs.category.Showcase": { - "message": "Showcase", - "description": "The label for category Showcase in sidebar docs" - }, - "sidebar.docs.category.Guides": { - "message": "Guides", - "description": "The label for category Guides in sidebar docs" - }, - "sidebar.docs.category.Tutorials": { - "message": "Tutorials", - "description": "The label for category Tutorials in sidebar docs" - }, - "sidebar.docs.link.Contributing": { - "message": "Contributing", - "description": "The label for link Contributing in sidebar docs, linking to /community-guide#ways-of-contributing" - } -} diff --git a/website/i18n/ru/docusaurus-plugin-content-docs/version-v2.2.0.json b/website/i18n/ru/docusaurus-plugin-content-docs/version-v2.2.0.json deleted file mode 100644 index 1074035c4..000000000 --- a/website/i18n/ru/docusaurus-plugin-content-docs/version-v2.2.0.json +++ /dev/null @@ -1,38 +0,0 @@ -{ - "version.label": { - "message": "v2.2.0", - "description": "The label for version v2.2.0" - }, - "sidebar.docs.category.Getting Started": { - "message": "Getting Started", - "description": "The label for category Getting Started in sidebar docs" - }, - "sidebar.docs.category.Reference": { - "message": "Reference", - "description": "The label for category Reference in sidebar docs" - }, - "sidebar.docs.category.Runtime": { - "message": "Runtime", - "description": "The label for category Runtime in sidebar docs" - }, - "sidebar.docs.category.Community": { - "message": "Community", - "description": "The label for category Community in sidebar docs" - }, - "sidebar.docs.category.Showcase": { - "message": "Showcase", - "description": "The label for category Showcase in sidebar docs" - }, - "sidebar.docs.category.Guides": { - "message": "Guides", - "description": "The label for category Guides in sidebar docs" - }, - "sidebar.docs.category.Tutorials": { - "message": "Tutorials", - "description": "The label for category Tutorials in sidebar docs" - }, - "sidebar.docs.link.Contributing": { - "message": "Contributing", - "description": "The label for link Contributing in sidebar docs, linking to /community-guide#ways-of-contributing" - } -} diff --git a/website/i18n/ru/docusaurus-plugin-content-docs/version-v2.3.0.json b/website/i18n/ru/docusaurus-plugin-content-docs/version-v2.3.0.json new file mode 100644 index 000000000..32ec6fb1d --- /dev/null +++ b/website/i18n/ru/docusaurus-plugin-content-docs/version-v2.3.0.json @@ -0,0 +1,38 @@ +{ + "version.label": { + "message": "v2.3.0", + "description": "The label for version v2.3.0" + }, + "sidebar.docs.category.Getting Started": { + "message": "Getting Started", + "description": "The label for category Getting Started in sidebar docs" + }, + "sidebar.docs.category.Reference": { + "message": "Reference", + "description": "The label for category Reference in sidebar docs" + }, + "sidebar.docs.category.Runtime": { + "message": "Runtime", + "description": "The label for category Runtime in sidebar docs" + }, + "sidebar.docs.category.Community": { + "message": "Community", + "description": "The label for category Community in sidebar docs" + }, + "sidebar.docs.category.Showcase": { + "message": "Showcase", + "description": "The label for category Showcase in sidebar docs" + }, + "sidebar.docs.category.Guides": { + "message": "Guides", + "description": "The label for category Guides in sidebar docs" + }, + "sidebar.docs.category.Tutorials": { + "message": "Tutorials", + "description": "The label for category Tutorials in sidebar docs" + }, + "sidebar.docs.link.Contributing": { + "message": "Contributing", + "description": "The label for link Contributing in sidebar docs, linking to /community-guide#ways-of-contributing" + } +} diff --git a/website/i18n/ru/docusaurus-plugin-content-docs/version-v2.3.1.json b/website/i18n/ru/docusaurus-plugin-content-docs/version-v2.3.1.json new file mode 100644 index 000000000..c793961dc --- /dev/null +++ b/website/i18n/ru/docusaurus-plugin-content-docs/version-v2.3.1.json @@ -0,0 +1,38 @@ +{ + "version.label": { + "message": "v2.3.1", + "description": "The label for version v2.3.1" + }, + "sidebar.docs.category.Getting Started": { + "message": "Getting Started", + "description": "The label for category Getting Started in sidebar docs" + }, + "sidebar.docs.category.Reference": { + "message": "Reference", + "description": "The label for category Reference in sidebar docs" + }, + "sidebar.docs.category.Runtime": { + "message": "Runtime", + "description": "The label for category Runtime in sidebar docs" + }, + "sidebar.docs.category.Community": { + "message": "Community", + "description": "The label for category Community in sidebar docs" + }, + "sidebar.docs.category.Showcase": { + "message": "Showcase", + "description": "The label for category Showcase in sidebar docs" + }, + "sidebar.docs.category.Guides": { + "message": "Guides", + "description": "The label for category Guides in sidebar docs" + }, + "sidebar.docs.category.Tutorials": { + "message": "Tutorials", + "description": "The label for category Tutorials in sidebar docs" + }, + "sidebar.docs.link.Contributing": { + "message": "Contributing", + "description": "The label for link Contributing in sidebar docs, linking to /community-guide#ways-of-contributing" + } +} diff --git a/website/i18n/ru/docusaurus-plugin-content-docs/version-v2.4.0.json b/website/i18n/ru/docusaurus-plugin-content-docs/version-v2.4.0.json new file mode 100644 index 000000000..4bda777e9 --- /dev/null +++ b/website/i18n/ru/docusaurus-plugin-content-docs/version-v2.4.0.json @@ -0,0 +1,38 @@ +{ + "version.label": { + "message": "v2.4.0", + "description": "The label for version v2.4.0" + }, + "sidebar.docs.category.Getting Started": { + "message": "Getting Started", + "description": "The label for category Getting Started in sidebar docs" + }, + "sidebar.docs.category.Reference": { + "message": "Reference", + "description": "The label for category Reference in sidebar docs" + }, + "sidebar.docs.category.Runtime": { + "message": "Runtime", + "description": "The label for category Runtime in sidebar docs" + }, + "sidebar.docs.category.Community": { + "message": "Community", + "description": "The label for category Community in sidebar docs" + }, + "sidebar.docs.category.Showcase": { + "message": "Showcase", + "description": "The label for category Showcase in sidebar docs" + }, + "sidebar.docs.category.Guides": { + "message": "Guides", + "description": "The label for category Guides in sidebar docs" + }, + "sidebar.docs.category.Tutorials": { + "message": "Tutorials", + "description": "The label for category Tutorials in sidebar docs" + }, + "sidebar.docs.link.Contributing": { + "message": "Contributing", + "description": "The label for link Contributing in sidebar docs, linking to /community-guide#ways-of-contributing" + } +} diff --git a/website/i18n/ru/docusaurus-plugin-content-pages/changelog.mdx b/website/i18n/ru/docusaurus-plugin-content-pages/changelog.mdx index 6e58125a2..9dcc41b1b 100644 --- a/website/i18n/ru/docusaurus-plugin-content-pages/changelog.mdx +++ b/website/i18n/ru/docusaurus-plugin-content-pages/changelog.mdx @@ -13,6 +13,37 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), ## [Unreleased] +## v2.4.0 - 2022-03-08 + +### Added +- Added Webview GPU acceleration options for [Windows](/docs/reference/options#webviewgpuisdisabled) and [Linux](/docs/reference/options#webviewgpupolicy). Added by @Lyimmi in [PR](https://github.com/wailsapp/wails/pull/2266) +- Added `EnableFraudulentWebsiteDetection` option to opt-in to scan services for fraudulent content, such as malware or phishing attempts. Older releases had the scan services per default activated. Added by @stffabi in [PR](https://github.com/wailsapp/wails/pull/2269) +- Allow an [AssetServer Middleware](/docs/reference/options#middleware) to specify the `Content-Type` of a file served by the [Assets](/docs/reference/options#assets-1) `fs.FS`. Added by @stffabi in [PR](https://github.com/wailsapp/wails/pull/2286) +- The AssetServer now detects more mimetypes by extension, e.g. `.mjs`. Added by @stffabi in [PR](https://github.com/wailsapp/wails/pull/2391) + +### Changed +- Improved fullscreen mode for frameless window on Windows. Changed by @stffabi in [PR](https://github.com/wailsapp/wails/pull/2279), [PR](https://github.com/wailsapp/wails/pull/2288) and [PR](https://github.com/wailsapp/wails/pull/2299) +- On Windows unmaximising a window has no effect anymore when the window is in fullscreen mode, this makes it consistent with e.g. macOS. Changed by @stffabi in [PR](https://github.com/wailsapp/wails/pull/2279) +- Frameless resize now sets the cursor on documentElement, otherwise resizing cursor won't be shown outside of the body rectangle. Changed by @stffabi in [PR](https://github.com/wailsapp/wails/pull/2289) +- Improved the `--wails-draggable` experience to be more reactive. Changed by @stffabi in [PR](https://github.com/wailsapp/wails/pull/2302) +- NSIS template now installs the shortcuts for all users and not only for the current user. Changed by @stffabi in [PR](https://github.com/wailsapp/wails/pull/2373) + +### Fixed +- Fixed failing build hooks when `build/bin` was missing. Fixed by @Lyimmi in [PR](https://github.com/wailsapp/wails/pull/2273) +- Fixed fullscreen mode for frameless window on Windows to fully cover the taskbar when changing into fullscreen from maximised state. Fixed by @stffabi in [PR](https://github.com/wailsapp/wails/pull/2279) +- Fixed set window background colour on Windows when setting the colour via runtime. Fixed by @stffabi in [PR](https://github.com/wailsapp/wails/pull/2279) +- Fixed the showing of a white border around a fullscreen window when `DisableWindowIcon` is active on Windows. Fixed by @stffabi in [PR](https://github.com/wailsapp/wails/pull/2299) +- Fixed the sometimes lagging drag experience with `--wails-draggable` on Windows. Fixed by @stffabi in [PR](https://github.com/wailsapp/wails/pull/2302) +- Fixed applying the default arch to platform flag in wails cli. If only a `GOOS` has been supplied as platform flag e.g. `wails build --platform windows` the current architecture wasn't applied and the build failed. Fixed by @stffabi in [PR](https://github.com/wailsapp/wails/pull/2309) +- Fixed a segfault on opening the inspector on older macOS versions. Fixed by @stffabi in [PR](https://github.com/wailsapp/wails/pull/2397) +- Fixed the macos single architecture builds not respecting an output file name specified with the '-o' flag. Fixed by @gwynforthewyn in [PR](https://github.com/wailsapp/wails/pull/2358) +- Fixed `undo`/`redo` on macOS. Fixed by @stffabi in [PR](https://github.com/wailsapp/wails/pull/2430) +- Fixed `Events*` runtime functions in JavaScript not returning the function to cancel the watcher. Fixed by @zllovesuki in [PR](https://github.com/wailsapp/wails/pull/2434) +- Fixed AppOptions merging defaults when a custom logger is used. Fixed by @stffabi in [PR](https://github.com/wailsapp/wails/pull/2452) +- Fixed race condition and missing unlock of mutex in events handling. Fixed by @stffabi in [PR](https://github.com/wailsapp/wails/pull/2453) + +## v2.3.0 - 2022-12-29 + ### Added - Added `OpenInspectorOnStartup` to debug options to allow opening the WebInspector during startup of the application in debug mode. Added by @stffabi in [PR](https://github.com/wailsapp/wails/pull/2080) - On macOS `wails doctor` now also shows the version of Xcode installed. Added by @stffabi in [PR](https://github.com/wailsapp/wails/pull/2089) @@ -21,15 +52,36 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), - The `WindowSetAlwaysOnTop` method is now exposed in the JS runtime. Fixed by @gotid in [PR](https://github.com/wailsapp/wails/pull/2128) - The [AssetServer](/docs/reference/options#assetserver) now supports serving the index.html file when requesting a directory. Added by @stffabi in [PR](https://github.com/wailsapp/wails/pull/2110) - Added support for WebKit2GTK 2.36+ on Linux. This brings additional features for the [AssetServer](/docs/reference/options#assetserver), like support for HTTP methods and Headers. The app must be compiled with the Go build tag `webkit2_36` to activate support for this features. This also bumps the minimum requirement of WebKit2GTK to 2.36 for your app. Fixed by @stffabi in this [PR](https://github.com/wailsapp/wails/pull/2151) +- Added support for file input selection on macOS. Added by @stffabi in [PR](https://github.com/wailsapp/wails/pull/2209) +- Added support Request/Response streaming of the AssetServer on macOS. Added by @stffabi in [PR](https://github.com/wailsapp/wails/pull/2219) +- Added request path checks for the AssetServer. Added by @stffabi in [PR](https://github.com/wailsapp/wails/pull/2235) +- Added new App Store guide. Added by @achhabra2 in [PR](https://github.com/wailsapp/wails/pull/2142) +- Added extra libwebkit check for dnf package manager (required for latest Fedora). Fixed by @NullCode1337 in this [PR](https://github.com/wailsapp/wails/pull/2218) +- Added new `-nomodsync` flag to disable the automatic syncing of the `go.mod` file. Added by @leaanthony in [PR](https://github.com/wailsapp/wails/pull/2215) +- Added support for adding prefix and postfix text to generated Typescript classes. Added by @OlegGulevskyy in [PR](https://github.com/wailsapp/wails/pull/2101) +- Added reference to NSIS as optional dependency. Added by @acheong08 in [PR](https://github.com/wailsapp/wails/pull/2070) +- Added Korean translation for the website. Added by @cybertramp in [PR](https://github.com/wailsapp/wails/pull/2093) ### Fixed - The `noreload` flag in wails dev wasn't applied. Fixed by @stffabi in this [PR](https://github.com/wailsapp/wails/pull/2081) - `build/bin` folder was duplicating itself on each reload in `wails dev` mode. Fixed by @OlegGulevskyy in this [PR](https://github.com/wailsapp/wails/pull/2103) - Prevent a thin white line at the bottom of a frameless window on Windows. Fixed by @stffabi in this [PR](https://github.com/wailsapp/wails/pull/2111) - Better signal handling for Linux. Fixed by @leaanthony in this [PR](https://github.com/wailsapp/wails/pull/2152) +- Running the docs locally was broken due to mandatory crowdin token requirement. Fixed by @OlegGulevskyy in this [PR](https://github.com/wailsapp/wails/pull/2231) +- Generated typescript for Go functions that returned a single error was incorrect. Fixed by @ATenderholt in this [PR](https://github.com/wailsapp/wails/pull/2247) +- The right mouse event was not being raised correctly for Linux. Fixed by @leaanthony in this [PR](https://github.com/wailsapp/wails/pull/2190) +- Remove extra spaces in Wails version when querying `go.mod`. Fixed by @matholt in this [PR](https://github.com/wailsapp/wails/pull/2197) +- Fix go tests failure on Mac. Fixed by @avengerweb in this [PR](https://github.com/wailsapp/wails/pull/2187) +- Fix go test errors. Fixed by @misitebao & @avengerweb in [these](https://github.com/wailsapp/wails/pull/2169) [PRs](https://github.com/wailsapp/wails/pull/2187) +- Added `WindowSetAlwaysOnTop` to the JS runtime. Fixed by @gotid in [PR](https://github.com/wailsapp/wails/pull/2128) +- Fixed obfuscated flag typo in docs. Fixed by @ckilb in [PR](https://github.com/wailsapp/wails/pull/2102) +- Fixed React Hash Router link in docs. Fixed by @marvinhosea in [PR](https://github.com/wailsapp/wails/pull/2050) ### Changed - Improve error message if no `index.html` could be found in the assets and validate assetserver options. Changed by @stffabi in this [PR](https://github.com/wailsapp/wails/pull/2110) +- Promote the Go WebView2Loader from experimental to stable. This means now per default all Wails build use the new loader introduced with `v2.2.0`. The old loader remains usable with build tag `native_webview2loader` for the next few releases. Changed by @stffabi in this [PR](https://github.com/wailsapp/wails/pull/2199) +- Refactored CLI. Changed by @leaanthony in this [PR](https://github.com/wailsapp/wails/pull/2123) +- Remove unreachable code. Changed by @tmclane in this [PR](https://github.com/wailsapp/wails/pull/2182) ## v2.2.0 - 2022-11-09 diff --git a/website/i18n/ru/docusaurus-plugin-content-pages/community-guide.mdx b/website/i18n/ru/docusaurus-plugin-content-pages/community-guide.mdx index 14bc204e7..8bc5a3e19 100644 --- a/website/i18n/ru/docusaurus-plugin-content-pages/community-guide.mdx +++ b/website/i18n/ru/docusaurus-plugin-content-pages/community-guide.mdx @@ -15,7 +15,7 @@ This [Code of Conduct](./coc) is an easy guide to develop the technical communit ### Get Support - [GitHub](https://github.com/wailsapp/wails) - If you have a bug to report or feature to request, that's what the GitHub issues are for. Please respect the rules specified in each repository's issue template. -- [Slack](https://gophers.slack.com/messages/CJ4P9F7MZ/) - A place for Wails devs to meet and chat in real time. +- [Discord](https://discord.gg/JDdSxwjhGf) - A place for Wails devs to meet and chat in real time. - [QQ Group(中文)](https://qm.qq.com/cgi-bin/qm/qr?k=PmIURne5hFGNd7QWzW5qd6FV-INEjNJv&jump_from=webapi) - A Wails group for Chinese developers to communicate, where you can get help from other developers. ### Explore the Ecosystem @@ -131,9 +131,9 @@ If you want to add a new language to the documentation, please follow the prompt ### Helping Others -A great way to contribute to the project is to help others who are experiencing difficulty. This is normally reported as a ticket or a message on the Wails slack channel. Even just clarifying the issue can really help out. Sometimes, when an issue is discussed and gets resolved, we create a guide out of it to help others who face the same issues. +A great way to contribute to the project is to help others who are experiencing difficulty. This is normally reported as a ticket or a message on the Wails discord server. Even just clarifying the issue can really help out. Sometimes, when an issue is discussed and gets resolved, we create a guide out of it to help others who face the same issues. -To join the Wails slack channel, accept the invite [here](https://gophers.slack.com/join/shared_invite/zt-197vymgt3-sJt4oyakb6nqlVKjXTyeVw#/shared-invite/email) and join us on the channel by following [this link](https://gophers.slack.com/?redir=%2Fmessages%2FCJ4P9F7MZ%2F). +To join the Wails discord server, click [here](https://discord.gg/JDdSxwjhGf). :::note diff --git a/website/i18n/ru/docusaurus-plugin-content-pages/credits.mdx b/website/i18n/ru/docusaurus-plugin-content-pages/credits.mdx index 651a12577..78b5f0a2b 100644 --- a/website/i18n/ru/docusaurus-plugin-content-pages/credits.mdx +++ b/website/i18n/ru/docusaurus-plugin-content-pages/credits.mdx @@ -4,10 +4,11 @@ - [Stffabi](https://github.com/stffabi) - Technical lead, developer and maintainer - [Misite Bao](https://github.com/misitebao) - Мастер документации, перевод на китайский язык, тестирование Windows, общий поиск ошибок - [Travis McLane](https://github.com/tmclane) - кросс-компиляция, тестирование MacOS -- [Byron Chris](https://github.com/bh90210) - Linux distro wizard, Linux testing +- [Lyimmi](https://github.com/Lyimmi) - All things Linux ## Sponsors + ## Contributors @@ -15,172 +16,244 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Lea Anthony

💻 🤔 🎨 🖋 💡 🧑‍🏫 📆 🔧 🐛 📝 🚧 📦 👀 💬 🔬 ⚠️ 📢 👀 📖

stffabi

💻 🤔 🎨 🐛 🚧 📦 👀 💬 🔬 👀 📖 ⚠️

Travis McLane

💻 🔬 📦 🤔 🐛 👀 ⚠️ 💬 📖

Misite Bao

📖 🌍 🔬 🚧

Byron Chris

💻 🔬 🚧 🐛 👀 ⚠️ 💬 🤔 🎨 📦 🚇

konez2k

💻 📦 🤔

Dario Emerson

💻 🐛 🤔 ⚠️

Ian M. Jones

💻 🐛 🤔 ⚠️ 👀 📦

marktohark

💻

Ryan H

💻

Cody Bentley

💻 📦 🤔 💵

Florent

💻 🐛

Alexander Hudek

💻 💵

Tim Kipp

💻

Altynbek Kaliakbarov

💻

Nikolai Zimmermann

💻

k-muchmore

💻

Snider

💻 🤔 📖 💵

Albert Sun

💻 ⚠️

Ariel

💻 🐛

Ilgıt Yıldırım

💻 🐛 💵

Toyam Cox

💻 📦 🐛

hi019

💻 🐛

Arthur Wiebe

💻 🐛

Balakrishna Prasad Ganne

💻

BillBuilt

💻 📦 🤔 💬 💵

Eng Zer Jun

🚧 💻

LGiki

📖

Lontten

📖

Lukas Crepaz

💻 🐛

Marcus Crane

🐛 📖 💵

Qais Patankar

📖

Wakeful-Cloud

💻 🐛

Zámbó, Levente

💻 📦 🐛 ⚠️

Ironpark

💻 🤔

mondy

💻 📖

Benjamin Ryan

🐛

fallendusk

📦 💻

Mat Ryer

💻 🤔 🐛

Abtin

💻 🐛

Adrian Lanzafame

📦 💻

Aleksey Polyakov

🐛 💻

Alexander Matviychuk

💻 📦

AlienRecall

💻 📦

Aman

📖

Amaury Tobias Quiroz

💻 🐛

Andreas Wenk

📖

Antonio Stanković

💻 📦

Arpit Jain

📖

Austin Schey

💻 🐛

Benjamin Thomas

💻 📦 🤔

Bertram Truong

💻 🐛

Blake Bourque

📖

Denis

📖

diogox

💻 📦

Dmitry Gomzyakov

💻 📦

Edward Browncross

💻

Elie Grenon

💻

Florian Didron

💻 🐛 🤔 ⚠️ 👀 📦

GargantuaX

💵

Igor Minin

💻 🐛

Jae-Sung Lee

💻 🤔

Jarek

💻 📦

Junker

📖

Kris Raney

💻 🐛

Luken

📖

Mark Stenglein

💻 🐛

buddyabaddon

💻

MikeSchaap

💻 🐛

NYSSEN Michaël

💻 🐛

Nan0

💻 🤔 ⚠️ 👀

oskar

📖

Pierre Joye

💻 🐛 🤔 ⚠️

Reuben Thomas-Davis

💻 🐛

Robin

💻 🐛

Sebastian Bauer

💻 🤔 ⚠️ 👀 💬

Sidharth Rathi

📖 🐛

Sithembiso Khumalo

💻 🐛

Soheib El-Harrache

💻 🐛 💵

Sophie Au

💻 🐛

Stefanos Papadakis

💻 🐛

Steve Chung

💻 🐛

Timm Ortloff

📖

Tom

💻

Valentin Trinqué

💻 🐛

mattn

💻 🐛

bearsh

💻 🤔 📖

chenxiao

💻 🤔 📖

fengweiqiang

💻 📦

flin7

📖

fred21O4

📖

gardc

📖

rayshoo

📖

Ishiyama Yuzuki

💻 🐛

佰阅

💻

刀刀

📖 🐛

归位

💻 🐛

skamensky

💻 🤔 📖

dependabot[bot]

💻 🚧

Damian Sieradzki

💵

John Dorman

💵

Ian Sinnott

💵

Arden Shackelford

💵

Bironou

💵

CharlieGo_

💵

overnet

💵

jugglingjsons

💵

Selvin Ortiz

💵

ZanderCodes

💵

Michael Voronov

💵

letheanVPN

💵

Tai Groot

💵

easy-web-it

💵

Michael Olson

💵

EdenNetwork Italia

💵

ondoki

💵

QuEST Rail LLC

💵

Gilgameš

💵

Bernt-Johan Bergshaven

💵

Liam Bigelow

💵

Nick Arellano

💵

Frank Chiarulli Jr.

💵

Tyler

💵

Trea Hauet

💵

Kent 'picat' Gruber

💵

tc-hib

💵

Antonio

📖

MyNameIsAres

📖

Maicarons J

📖

kiddov

📖 💵 ⚠️ 🤔

Nicolas Coutin

💵

Parvin Eyvazov

📖
Lea Anthony
Lea Anthony

💻 🤔 🎨 🖋 💡 🧑‍🏫 📆 🔧 🐛 📝 🚧 📦 👀 💬 🔬 ⚠️ 📢 👀 📖
stffabi
stffabi

💻 🤔 🎨 🐛 🚧 📦 👀 💬 🔬 👀 📖 ⚠️
Travis McLane
Travis McLane

💻 🔬 📦 🤔 🐛 👀 ⚠️ 💬 📖
Misite Bao
Misite Bao

📖 🌍 🔬 🚧
Byron Chris
Byron Chris

💻 🔬 🚧 🐛 👀 ⚠️ 💬 🤔 🎨 📦 🚇
konez2k
konez2k

💻 📦 🤔
Dario Emerson
Dario Emerson

💻 🐛 🤔 ⚠️
Ian M. Jones
Ian M. Jones

💻 🐛 🤔 ⚠️ 👀 📦
marktohark
marktohark

💻
Ryan H
Ryan H

💻
Cody Bentley
Cody Bentley

💻 📦 🤔 💵
Florent
Florent

💻 🐛
Alexander Hudek
Alexander Hudek

💻 💵
Tim Kipp
Tim Kipp

💻
Altynbek Kaliakbarov
Altynbek Kaliakbarov

💻
Nikolai Zimmermann
Nikolai Zimmermann

💻
k-muchmore
k-muchmore

💻
Snider
Snider

💻 🤔 📖 💵
Albert Sun
Albert Sun

💻 ⚠️
Ariel
Ariel

💻 🐛
Ilgıt Yıldırım
Ilgıt Yıldırım

💻 🐛 💵
Toyam Cox
Toyam Cox

💻 📦 🐛
hi019
hi019

💻 🐛
Arthur Wiebe
Arthur Wiebe

💻 🐛
Balakrishna Prasad Ganne
Balakrishna Prasad Ganne

💻
BillBuilt
BillBuilt

💻 📦 🤔 💬 💵
Eng Zer Jun
Eng Zer Jun

🚧 💻
LGiki
LGiki

📖
Lontten
Lontten

📖
Lukas Crepaz
Lukas Crepaz

💻 🐛
Marcus Crane
Marcus Crane

🐛 📖 💵
Qais Patankar
Qais Patankar

📖
Wakeful-Cloud
Wakeful-Cloud

💻 🐛
Zámbó, Levente
Zámbó, Levente

💻 📦 🐛 ⚠️
Ironpark
Ironpark

💻 🤔
mondy
mondy

💻 📖
Benjamin Ryan
Benjamin Ryan

🐛
fallendusk
fallendusk

📦 💻
Mat Ryer
Mat Ryer

💻 🤔 🐛
Abtin
Abtin

💻 🐛
Adrian Lanzafame
Adrian Lanzafame

📦 💻
Aleksey Polyakov
Aleksey Polyakov

🐛 💻
Alexander Matviychuk
Alexander Matviychuk

💻 📦
AlienRecall
AlienRecall

💻 📦
Aman
Aman

📖
Amaury Tobias Quiroz
Amaury Tobias Quiroz

💻 🐛
Andreas Wenk
Andreas Wenk

📖
Antonio Stanković
Antonio Stanković

💻 📦
Arpit Jain
Arpit Jain

📖
Austin Schey
Austin Schey

💻 🐛
Benjamin Thomas
Benjamin Thomas

💻 📦 🤔
Bertram Truong
Bertram Truong

💻 🐛
Blake Bourque
Blake Bourque

📖
Denis
Denis

📖
diogox
diogox

💻 📦
Dmitry Gomzyakov
Dmitry Gomzyakov

💻 📦
Edward Browncross
Edward Browncross

💻
Elie Grenon
Elie Grenon

💻
Florian Didron
Florian Didron

💻 🐛 🤔 ⚠️ 👀 📦
GargantuaX
GargantuaX

💵
Igor Minin
Igor Minin

💻 🐛
Jae-Sung Lee
Jae-Sung Lee

💻 🤔
Jarek
Jarek

💻 📦
Junker
Junker

📖
Kris Raney
Kris Raney

💻 🐛
Luken
Luken

📖
Mark Stenglein
Mark Stenglein

💻 🐛
buddyabaddon
buddyabaddon

💻
MikeSchaap
MikeSchaap

💻 🐛
NYSSEN Michaël
NYSSEN Michaël

💻 🐛
Nan0
Nan0

💻 🤔 ⚠️ 👀
oskar
oskar

📖
Pierre Joye
Pierre Joye

💻 🐛 🤔 ⚠️
Reuben Thomas-Davis
Reuben Thomas-Davis

💻 🐛
Robin
Robin

💻 🐛
Sebastian Bauer
Sebastian Bauer

💻 🤔 ⚠️ 👀 💬
Sidharth Rathi
Sidharth Rathi

📖 🐛
Sithembiso Khumalo
Sithembiso Khumalo

💻 🐛
Soheib El-Harrache
Soheib El-Harrache

💻 🐛 💵
Sophie Au
Sophie Au

💻 🐛
Stefanos Papadakis
Stefanos Papadakis

💻 🐛
Steve Chung
Steve Chung

💻 🐛
Timm Ortloff
Timm Ortloff

📖
Tom
Tom

💻
Valentin Trinqué
Valentin Trinqué

💻 🐛
mattn
mattn

💻 🐛
bearsh
bearsh

💻 🤔 📖
chenxiao
chenxiao

💻 🤔 📖
fengweiqiang
fengweiqiang

💻 📦
flin7
flin7

📖
fred21O4
fred21O4

📖
gardc
gardc

📖
rayshoo
rayshoo

📖
Ishiyama Yuzuki
Ishiyama Yuzuki

💻 🐛
佰阅
佰阅

💻
刀刀
刀刀

📖 🐛
归位
归位

💻 🐛
skamensky
skamensky

💻 🤔 📖
dependabot[bot]
dependabot[bot]

💻 🚧
Damian Sieradzki
Damian Sieradzki

💵
John Dorman
John Dorman

💵
Ian Sinnott
Ian Sinnott

💵
Arden Shackelford
Arden Shackelford

💵
Bironou
Bironou

💵
CharlieGo_
CharlieGo_

💵
overnet
overnet

💵
jugglingjsons
jugglingjsons

💵
Selvin Ortiz
Selvin Ortiz

💵
ZanderCodes
ZanderCodes

💵
Michael Voronov
Michael Voronov

💵
letheanVPN
letheanVPN

💵
Tai Groot
Tai Groot

💵
easy-web-it
easy-web-it

💵
Michael Olson
Michael Olson

💵
EdenNetwork Italia
EdenNetwork Italia

💵
ondoki
ondoki

💵
QuEST Rail LLC
QuEST Rail LLC

💵
Gilgameš
Gilgameš

💵
Bernt-Johan Bergshaven
Bernt-Johan Bergshaven

💵
Liam Bigelow
Liam Bigelow

💵
Nick Arellano
Nick Arellano

💵
Frank Chiarulli Jr.
Frank Chiarulli Jr.

💵
Tyler
Tyler

💵
Trea Hauet
Trea Hauet

💵
Kent 'picat' Gruber
Kent 'picat' Gruber

💵
tc-hib
tc-hib

💵
Antonio
Antonio

📖
MyNameIsAres
MyNameIsAres

📖
Maicarons J
Maicarons J

📖
kiddov
kiddov

📖 💵 ⚠️ 🤔
Nicolas Coutin
Nicolas Coutin

💵
Parvin Eyvazov
Parvin Eyvazov

📖
github-actions[bot]
github-actions[bot]

💻
Oleg Gulevskyy
Oleg Gulevskyy

💻 📖 🚧 📦
Richard Guay
Richard Guay

📖
Adam Tenderholt
Adam Tenderholt

💻
JulioDRF
JulioDRF

💻
Scott Opell
Scott Opell

💻
Vadim Shchepotev
Vadim Shchepotev

💻
Will Andrews
Will Andrews

💻
Gwyn
Gwyn

💻 👀 💬 🔬
希嘉嘉
希嘉嘉

💻
ALMAS
ALMAS

💻
Alex
Alex

💻
Arif Ali
Arif Ali

💻
Artur Siarohau
Artur Siarohau

💻
Binyamin Aron Green
Binyamin Aron Green

💻
Brian Dwyer
Brian Dwyer

💻
Christian Kilb
Christian Kilb

💻
David Florness
David Florness

📖
David Walton
David Walton

💻
Debdut Karmakar
Debdut Karmakar

💻
Dieter Zhu
Dieter Zhu

💻
Fredrik Holmqvist
Fredrik Holmqvist

💻
Giovanni Palma
Giovanni Palma

💻
Hao
Hao

💻
Igor Sementsov
Igor Sementsov

💻
Johannes Haseitl
Johannes Haseitl

💻
Joshua Hull
Joshua Hull

💻
Joshua Mangiola
Joshua Mangiola

📖
Kevin MacMartin
Kevin MacMartin

💻
Liang Li
Liang Li

💻
Marvin Collins Hosea
Marvin Collins Hosea

💻
Matt Holt
Matt Holt

💻
Niklas
Niklas

💻
Andy Hsu
Andy Hsu

💻
NullCode
NullCode

💻
Oussama Sethoum
Oussama Sethoum

💻
ParkourLiu
ParkourLiu

💻
Rachel Chen
Rachel Chen

💻
Rob Nice
Rob Nice

💻
Ryo TAGAMI
Ryo TAGAMI

💻
Sam Hennessy
Sam Hennessy

💻
Sean
Sean

💻
Sean Gosiaco
Sean Gosiaco

💻
Eric P Sheets
Eric P Sheets

💻
Supian M
Supian M

💻
Watson-Sei
Watson-Sei

💻 📖
Yuki Shindo
Yuki Shindo

💻
cuigege
cuigege

💻
cybertramp
cybertramp

💻
hiroki yagi
hiroki yagi

💻
imgbot[bot]
imgbot[bot]

💻
juju
juju

💻
Michael Eatherly
Michael Eatherly

💻
tk
tk

💻
allcontributors[bot]
allcontributors[bot]

📖
wander
wander

📖
@@ -193,6 +266,7 @@ - [John Chadwick](https://github.com/jchv) - His amazing work on [go-webview2](https://github.com/jchv/go-webview2) and [go-winloader](https://github.com/jchv/go-winloader) have made the Windows version possible. - [Tad Vizbaras](https://github.com/tadvi) - His winc project was the first step down the path to a pure Go Wails. - [Mat Ryer](https://github.com/matryer) - For advice, support and bants. +- [Byron Chris](https://github.com/bh90210) - For his long term contributions to this project. - [Dustin Krysak](https://wiki.ubuntu.com/bashfulrobot) - His support and feedback has been invaluable. - [Justen Walker](https://github.com/justenwalker/) - For helping wrangle COM issues which got v2 over the line. - [Wang, Chi](https://github.com/patr0nus/) - The DeskGap project was a huge influence on the direction of Wails v2. diff --git a/website/i18n/ru/docusaurus-theme-classic/footer.json b/website/i18n/ru/docusaurus-theme-classic/footer.json index 096ce09a5..e3340883c 100644 --- a/website/i18n/ru/docusaurus-theme-classic/footer.json +++ b/website/i18n/ru/docusaurus-theme-classic/footer.json @@ -50,5 +50,9 @@ "link.item.label.Awesome": { "message": "Awesome", "description": "The label of footer link with label=Awesome linking to https://github.com/wailsapp/awesome-wails" + }, + "link.item.label.Discord": { + "message": "Discord", + "description": "The label of footer link with label=Discord linking to https://discord.gg/JDdSxwjhGf" } } diff --git a/website/i18n/zh-Hans/code.json b/website/i18n/zh-Hans/code.json index d5a13cc5d..6a978dfb0 100644 --- a/website/i18n/zh-Hans/code.json +++ b/website/i18n/zh-Hans/code.json @@ -411,5 +411,13 @@ "theme.SearchModal.placeholder": { "message": "搜索文档", "description": "The placeholder of the input of the DocSearch pop-up modal" + }, + "theme.docs.sidebar.closeSidebarButtonAriaLabel": { + "message": "关闭导航栏", + "description": "The ARIA label for close button of mobile sidebar" + }, + "theme.docs.sidebar.toggleSidebarButtonAriaLabel": { + "message": "切换导航栏", + "description": "The ARIA label for hamburger menu button of mobile navigation" } } diff --git a/website/i18n/zh-Hans/docusaurus-plugin-content-blog/2023-01-17-v3-roadmap.mdx b/website/i18n/zh-Hans/docusaurus-plugin-content-blog/2023-01-17-v3-roadmap.mdx new file mode 100644 index 000000000..9403fdf52 --- /dev/null +++ b/website/i18n/zh-Hans/docusaurus-plugin-content-blog/2023-01-17-v3-roadmap.mdx @@ -0,0 +1,184 @@ +--- +slug: the-road-to-wails-v3 +title: Wails v3 路线 +authors: + - leaanthony +tags: + - wails + - v3 +--- + +```mdx-code-block +
+ +
+
+``` + +# 简介 + +Wails是一个使用 Go 简化编写跨平台桌面应用程序的能力的项目。 它使用原生 webview 组件作为前端(而不是嵌入式浏览器),将世界上最流行的 UI 系统的强大功能引入Go,同时保持轻量级。 + +第二版于 2022年9月22日 发布,并带来了很多增强功能包括: + +- 实时开发,利用流行的Vite项目 +- 管理窗口和创建菜单的丰富功能 +- 微软的 WebView2 组件 +- 生成对应 Go 结构体的 TypeScript 模型 +- 创建 NSIS 安装程序 +- 混淆构建 + +现在,Wails v2 提供了强大的工具来创建丰富的跨平台桌面应用程序。 + +这篇博文的目的是看看这个项目现在处于什么阶段,以及我们可以在后续中改进什么。 + +# 我们现在在哪里? + +看到 Wails 自 v2 发布以来的受欢迎程度上升是令人难以置信的。 我经常对社区的创造力和用它建造的美好事物感到惊讶。 随着越来越受欢迎,更多的目光投向了这个项目。 随之而来的是更多的功能请求和错误报告。 + +随着时间的推移,我已经能够确定该项目面临的一些最紧迫的问题。 我也已经能够识别出一些阻碍该项目的因素。 + +## 当前问题 + +我确定了以下我认为阻碍该项目的领域: + +- API +- 绑定生成 +- 构建系统 + +### 接口 + +构建 Wails 应用程序的 API 目前由两部分组成: + +- 应用程序 API +- 运行时 API + +著名的应用程序 API 只有一个函数:`Run()`,它需要一堆 控制应用程序如何工作的选项。 虽然这使用起来非常简单,但这也非常有限。 这是一种“声明式”的方法,隐藏了很多潜在的复杂性。 例如,主窗口没有句柄,所以你不能直接与之互动。 为此,您需要使用运行时 API。 这是个问题当您开始想要做更复杂的事情时,例如创建多个窗口。 + +运行时 API 为开发者提供了许多实用功能。 其中包括: + +- 窗口管理 +- 对话框 +- 菜单 +- 事件 +- 日志 + +我对运行时 API 有很多不满意的地方。 第一个是它需要传递一个“context”。 对于传入上下文然后出现运行时错误的新开发人员来说,这既令人沮丧又令人困惑。 + +运行时 API 的最大问题是它是为只使用单个窗口的应用程序设计的。 随着时间的推移,对多窗口的需求不断增长,API 不太适合这种情况。 + +### 关于 v3 API 的想法 + +如果我们能做这样的事情不是很好吗? + +```go +func main() { + app := wails.NewApplication(options.App{}) + myWindow := app.NewWindow(options.Window{}) + myWindow.SetTitle("My Window") + myWindow.On(events.Window.Close, func() { + app.Quit() + }) + app.Run() +} +``` + +这种编程方法更加直观,允许开发人员直接与应用程序元素交互。 所有当前的窗口运行时方法都只是窗口对象上的方法。 对于其他运行时方法,我们可以像这样移动他们到应用程序对象: + +```go +app := wails.NewApplication(options.App{}) +app.NewInfoDialog(options.InfoDialog{}) +app.Log.Info("Hello World") +``` + +这是一个更强大的 API,可以构建更复杂的应用程序。 它还允许创建多个窗口,这是 [GitHub 上投票最多的功能](https://github.com/wailsapp/wails/issues/1480): + +```go +func main() { + app := wails.NewApplication(options.App{}) + myWindow := app.NewWindow(options.Window{}) + myWindow.SetTitle("My Window") + myWindow.On(events.Window.Close, func() { + app.Quit() + }) + myWindow2 := app.NewWindow(options.Window{}) + myWindow2.SetTitle("My Window 2") + myWindow2.On(events.Window.Close, func() { + app.Quit() + }) + app.Run() +} +``` + +### 绑定生成 + +Wails 的关键特性之一是为您的 Go 方法生成绑定,因此它们可能从 JavaScript 调用。 当前执行此操作的方法有点 hack。 它涉及使用特殊标志构建应用程序,然后运行生成的二进制文件,该二进制文件使用反射来确定已绑定的内容。 这导致了先有鸡还是先有蛋的情况:没有绑定就无法构建应用程序,没有构建应用程序就无法生成绑定。 有很多方法可以解决这个问题,但最好的一个根本不会使用这种方法。 + +曾多次尝试为 Wails 项目编写策略分析器,但收效甚微。 最近,随着有关该主题的更多可用资料,这样做变得稍微容易一些。 + +与反射相比,AST 方法要快得多,但要复杂得多。 首先,我们可能需要对如何在代码中指定绑定施加某些约束。 目标是支持最常见的用例,然后在以后扩展它。 + +### 构建系统 + +与 API 的声明性方法一样,创建构建系统是为了隐藏构建桌面应用程序的复杂性。 当你运行 `wails build` 时,它会在幕后做很多事情: +- 为绑定构建后端二进制文件并生成绑定 +- 安装前端依赖项 +- 构建前端资产 +- 确定应用程序图标是否存在,如果存在,则嵌入它 +- 构建最终二进制文件 +- 如果构建是针对 `darwin/universal` 的,它会构建 2 个二进制文件,一个用于 `darwin/amd64`,一个用于 `darwin/arm64`,然后使用 `lipo` 创建一个大的二进制文件 +- 如果需要压缩,它会使用 UPX 压缩二进制文件 +- 确定是否要打包此二进制文件,如果是: + - 确保将图标和应用程序清单(manifest)编译成二进制文件 (Windows) + - 构建应用程序包,生成图标包并将二进制文件和 info.plist 复制到应用程序包 (Mac) +- 如果需要 NSIS 安装程序,它会构建它 + +整个过程虽然非常强大,但也非常不透明。 定制起来非常困难,调试也非常困难。 + +为了在 v3 中解决这个问题,我想转移到一个存在于 Wails 之外的构建系统。 在使用 [Task](https://taskfile.dev/) 一段时间后,我非常喜欢它。 它是配置构建系统的绝佳工具,任何使用过 Makefile 的人都应该相当熟悉。 + +构建系统将使用 `Taskfile.yml` 文件进行配置,该文件默认使用任意受支持的模板生成。 这将具有完成所有当前任务所需的所有步骤,例如构建或打包应用程序,从而实现轻松定制。 + +这个工具将没有外部要求,因为它将构成 Wails CLI 的一部分。 这意味着您仍然可以使用 `wails build`,它会完成它今天所做的所有事情。 但是,如果您想自定义构建过程,可以通过编辑 `Taskfile.yml` 文件来实现。 这也意味着您可以轻松理解构建步骤并根据需要使用自己的构建系统。 + +构建难题中缺少的部分是构建过程中的原子操作,例如图标生成、压缩和打包。 需要一堆外部工具对开发人员来说不是很好的体验。 为了解决这个问题,Wails CLI 将提供所有这些功能作为 CLI 的一部分。 这意味着构建仍然按预期工作,没有额外的外部工具,但是您可以用您喜欢的任何工具替换构建的任何步骤。 + +这将是一个更加透明的构建系统,可以更轻松地进行定制并解决围绕它提出的许多问题。 + +## 好处 + +这些积极的变化将为项目带来巨大的好处: +- 新的 API 将更加直观,并允许构建更复杂的应用程序。 +- 使用静态分析生成绑定会更快,并且会降低当前流程的复杂性。 +- 使用已建立的外部构建系统将使构建过程完全透明,从而实现强大的定制。 + +对项目维护者的好处是: + +- 新的 API 将更容易维护和适应新功能和平台。 +- 新的构建系统将更容易维护和扩展。 我希望这将导致社区驱动构建管道的新生态系统。 +- 更好地分离项目中的关注点。 这将使添加新功能和平台变得更加容易。 + +## 计划 + +很多这方面的实验已经完成,而且看起来不错。 这项工作目前没有时间表,但我希望到 2023 年第一季度末,将有一个 Mac 的 alpha 版本,允许社区进行测试、试验并提供反馈。 + +## 总结 + +- v2 API 是声明式的,对开发人员隐藏了很多,不适合多窗口等功能。 将创建一个更简单、直观且功能更强大的新 API。 +- 构建系统不透明且难以定制,因此我们将转向外部构建系统,它将全部开放。 +- 绑定生成缓慢且复杂,因此我们将转向静态分析,这将消除当前方法的许多复杂性。 + +我们在 v2 的内部做了很多工作,它是可靠的。 现在是时候解决它上面的瓶颈并为开发人员提供更好的体验了。 + +我希望你和我一样对此感到兴奋。 我期待听到您的想法和反馈。 + +此致, + +‐ Lea + +PS: 如果您或您的公司发现 Wails 有用, 请考虑 [赞助项目](https://github.com/sponsors/leaanthony)。 谢谢! + +PPS:是的,这是一个用 Wails 构建的多窗口应用程序的真实截图。 它不是一个模型。 这是真实的。 太棒了。 即将到来。 \ No newline at end of file diff --git a/website/i18n/zh-Hans/docusaurus-plugin-content-docs/current/community/links.mdx b/website/i18n/zh-Hans/docusaurus-plugin-content-docs/current/community/links.mdx index efd963510..8f8a54fcb 100644 --- a/website/i18n/zh-Hans/docusaurus-plugin-content-docs/current/community/links.mdx +++ b/website/i18n/zh-Hans/docusaurus-plugin-content-docs/current/community/links.mdx @@ -12,8 +12,7 @@ Wails 相关的 [优秀列表](https://github.com/wailsapp/awesome-wails)。 ## 支持的频道 -- [Gophers Slack Channel](https://gophers.slack.com/messages/CJ4P9F7MZ/) -- [Gophers Slack Channel Invite](https://invite.slack.golangbridge.org/) +- [Wails Discord 服务器](https://discord.gg/JDdSxwjhGf) - [Github Issues](https://github.com/wailsapp/wails/issues) - [v2 测试版讨论板](https://github.com/wailsapp/wails/discussions/828) @@ -23,4 +22,5 @@ Wails 相关的 [优秀列表](https://github.com/wailsapp/awesome-wails)。 - [Wails 中文社区 QQ 群](https://qm.qq.com/cgi-bin/qm/qr?k=PmIURne5hFGNd7QWzW5qd6FV-INEjNJv&jump_from=webapi) - 群号:1067173054 ## 其他教程和文章 + - [Building of Bulletin Board](https://blog.customct.com/building-bulletin-board) diff --git a/website/i18n/zh-Hans/docusaurus-plugin-content-docs/current/community/showcase/bulletinboard.mdx b/website/i18n/zh-Hans/docusaurus-plugin-content-docs/current/community/showcase/bulletinboard.mdx new file mode 100644 index 000000000..37be75135 --- /dev/null +++ b/website/i18n/zh-Hans/docusaurus-plugin-content-docs/current/community/showcase/bulletinboard.mdx @@ -0,0 +1,10 @@ +# BulletinBoard + +```mdx-code-block +

+ +
+

+``` + +The [BulletinBoard](https://github.com/raguay/BulletinBoard) application is a versital message board for static messages or dialogs to get information from the user for a script. It has a TUI for creating new dialogs that can latter be used to get information from the user. It's design is to stay running on your system and show the information as needed and then hide away. I have a process for watching a file on my system and sending the contents to BulletinBoard when changed. It works great with my workflows. There is also an [Alfred workflow](https://github.com/raguay/MyAlfred/blob/master/Alfred%205/EmailIt.alfredworkflow) for sending information to the program. The workflow is also for working with [EmailIt](https://github.com/raguay/EmailIt). diff --git a/website/i18n/zh-Hans/docusaurus-plugin-content-docs/current/community/showcase/emailit.mdx b/website/i18n/zh-Hans/docusaurus-plugin-content-docs/current/community/showcase/emailit.mdx index 04150ba28..c1817b70f 100644 --- a/website/i18n/zh-Hans/docusaurus-plugin-content-docs/current/community/showcase/emailit.mdx +++ b/website/i18n/zh-Hans/docusaurus-plugin-content-docs/current/community/showcase/emailit.mdx @@ -7,4 +7,4 @@

``` -[EmailIt](https://github.com/raguay/EmailIt/) is a Wails 2 program that is a markdown based email sender only with nine notepads, scripts to manipulate the text, and templates. It also has a builtin [Node-Red](https://nodered.org/) server, scripts terminal, and the [ScriptBar](https://github.com/raguay/ScriptBarApp) program for displaying results from Node-Red or a script on your system. Documentation is very scarce, but the programs works. It’s built using Wails2 and Svelte, and the download is a universal macOS application. +[EmailIt](https://github.com/raguay/EmailIt/) is a Wails 2 program that is a markdown based email sender only with nine notepads, scripts to manipulate the text, and templates. It also has a scripts terminal to run scripts in EmailIt on files in your system. The scripts and templates can be used from the commandline itself or with the Alfred, Keyboard Maestro, Dropzone, or PopClip extensions. It also supports scripts and themes downloaded form GitHub. Documentation is not complete, but the programs works. It’s built using Wails2 and Svelte, and the download is a universal macOS application. diff --git a/website/i18n/zh-Hans/docusaurus-plugin-content-docs/current/community/showcase/hiposter.mdx b/website/i18n/zh-Hans/docusaurus-plugin-content-docs/current/community/showcase/hiposter.mdx new file mode 100644 index 000000000..87e5837d3 --- /dev/null +++ b/website/i18n/zh-Hans/docusaurus-plugin-content-docs/current/community/showcase/hiposter.mdx @@ -0,0 +1,10 @@ +# hiposter + +```mdx-code-block +

+ +
+

+``` + +[hiposter](https://github.com/obity/hiposter) is a simple and efficient http API testing client tool. Based on Wails, Go and sveltejs. diff --git a/website/i18n/zh-Hans/docusaurus-plugin-content-docs/current/community/showcase/modalfilemanager.mdx b/website/i18n/zh-Hans/docusaurus-plugin-content-docs/current/community/showcase/modalfilemanager.mdx index f8e2bcd66..bcd212396 100644 --- a/website/i18n/zh-Hans/docusaurus-plugin-content-docs/current/community/showcase/modalfilemanager.mdx +++ b/website/i18n/zh-Hans/docusaurus-plugin-content-docs/current/community/showcase/modalfilemanager.mdx @@ -9,6 +9,6 @@

``` -[Modal File Manager](https://github.com/raguay/ModalFileManager) is a dual pane file manager using web technologies. My original design was based on NW.js and can be found [here](https://github.com/raguay/ModalFileManager-NWjs). This version uses the same Svelte based frontend code (but it has be greatly modified since the departure from NW.js), but the backend is a [Wails 2](https://wails.io/) implementation. By using this implementation, I no longer use command line `rm`, `cp`, etc. commands. It is fully coded using Go and runs much faster than the previous versions. +[Modal File Manager](https://github.com/raguay/ModalFileManager) is a dual pane file manager using web technologies. My original design was based on NW.js and can be found [here](https://github.com/raguay/ModalFileManager-NWjs). This version uses the same Svelte based frontend code (but it has be greatly modified since the departure from NW.js), but the backend is a [Wails 2](https://wails.io/) implementation. By using this implementation, I no longer use command line `rm`, `cp`, etc. commands, but a git install has to be on the system to download themes and extensions. It is fully coded using Go and runs much faster than the previous versions. -This file manager is designed around the same principle as Vim: a state controlled keyboard actions. The number of states isn't fixed, but very programmable. Therefore, an infinite number of keyboard configurations can be created and used. This is the main difference from other file managers. +This file manager is designed around the same principle as Vim: a state controlled keyboard actions. The number of states isn't fixed, but very programmable. Therefore, an infinite number of keyboard configurations can be created and used. This is the main difference from other file managers. There are themes and extensions available to download from GitHub. diff --git a/website/i18n/zh-Hans/docusaurus-plugin-content-docs/current/community/showcase/scriptbar.mdx b/website/i18n/zh-Hans/docusaurus-plugin-content-docs/current/community/showcase/scriptbar.mdx index 2ccb2acb4..3e41eb32a 100644 --- a/website/i18n/zh-Hans/docusaurus-plugin-content-docs/current/community/showcase/scriptbar.mdx +++ b/website/i18n/zh-Hans/docusaurus-plugin-content-docs/current/community/showcase/scriptbar.mdx @@ -7,4 +7,4 @@

``` -[ScriptBar](https://GitHub.com/raguay/ScriptBarApp) is a program to show the output of the embedded [Node-Red](https://nodered.org) server in the [EmailIt](https://GitHub.com/raguay/EmailIt) application. It also displays the output of scripts on your system. ScriptBar doesn't put them in the menubar, but has them all in a convient window for easy viewing. You can have multiple tabs to have many different things show. You can also keep the links to your most visited web sites. +[ScriptBar](https://GitHub.com/raguay/ScriptBarApp) is a program to show the output of scripts or [Node-Red](https://nodered.org) server. It runs scripts defined in EmailIt program and shows the output. Scripts from xBar or TextBar can be used, but currently on the TextBar scripts work well. It also displays the output of scripts on your system. ScriptBar doesn't put them in the menubar, but has them all in a convient window for easy viewing. You can have multiple tabs to have many different things show. You can also keep the links to your most visited web sites. diff --git a/website/i18n/zh-Hans/docusaurus-plugin-content-docs/current/community/showcase/warmine.mdx b/website/i18n/zh-Hans/docusaurus-plugin-content-docs/current/community/showcase/warmine.mdx new file mode 100644 index 000000000..1172a8c33 --- /dev/null +++ b/website/i18n/zh-Hans/docusaurus-plugin-content-docs/current/community/showcase/warmine.mdx @@ -0,0 +1,19 @@ +# WarMine Minecraft 启动器 + +```mdx-code-block +

+ + +
+

+``` + +[Warmine Minecraft 启动器](https://warmine.ru/) 是一款 Wails 应用,它使您可以轻松地加入服务器并管理您的游戏账户。 + +启动器能够下载游戏文件, 检查游戏的完整性,使用自定义选项从后端启动游戏。 + +前端使用 Svelte 编写, 整个启动器大小约 9MB 并支持 Windows 7-11. diff --git a/website/i18n/zh-Hans/docusaurus-plugin-content-docs/current/community/templates.mdx b/website/i18n/zh-Hans/docusaurus-plugin-content-docs/current/community/templates.mdx index ba2d7478e..425423ad4 100644 --- a/website/i18n/zh-Hans/docusaurus-plugin-content-docs/current/community/templates.mdx +++ b/website/i18n/zh-Hans/docusaurus-plugin-content-docs/current/community/templates.mdx @@ -27,6 +27,7 @@ sidebar_position: 1 - [wails-vite-vue-the-works](https://github.com/codydbentley/wails-vite-vue-the-works) - 使用 Vite, Vuex, Vue Router, Sass, 和 ESLint + Prettier 的 Vue 3 TypeScript - [wails-template-quasar-js](https://github.com/sgosiaco/wails-template-quasar-js) - 使用 JavaScript + Quasar V2(Vue 3, Vite, Sass, Pinia, ESLint, Prettier)的模板 - [wails-template-quasar-ts](https://github.com/sgosiaco/wails-template-quasar-ts) - 使用 TypeScript + Quasar V2(Vue 3、Vite、Sass、Pinia、ESLint、Prettier、带 <script setup> 的Composition API)的模板 +- [wails-template-naive](https://github.com/tk103331/wails-template-naive) - 基于 Naive UI(一款 Vue 3 组件库)的 Wails 模板 ## Angular diff --git a/website/i18n/zh-Hans/docusaurus-plugin-content-docs/current/gettingstarted/installation.mdx b/website/i18n/zh-Hans/docusaurus-plugin-content-docs/current/gettingstarted/installation.mdx index 63d68031f..3e8b2e39f 100644 --- a/website/i18n/zh-Hans/docusaurus-plugin-content-docs/current/gettingstarted/installation.mdx +++ b/website/i18n/zh-Hans/docusaurus-plugin-content-docs/current/gettingstarted/installation.mdx @@ -56,7 +56,7 @@ import TabItem from "@theme/TabItem"; Wails 要求安装 WebView2 运行时。 一些 Windows 安装已经安装了这个。 您可以使用 wails doctor 命令进行检查。 - Linux 需要标准 gcc 构建工具以及 libgtk3libwebkit。 与其为不同的发行版列出大量命令,Wails 可以尝试确定针对您的特定发行版的安装命令。 安装后运行 wails doctor 以显示如何安装依赖项。 如果您的发行版/包管理器不受支持,请参阅 添加Linux发行版指南。 + Linux 需要标准的 gcc 构建工具以及 libgtk3libwebkit。 与其为不同的发行版列出大量命令,Wails 可以尝试确定针对您的特定发行版的安装命令。 安装后运行 wails doctor 以显示如何安装依赖项。 如果您的发行版/包管理器不受支持,请参阅 添加Linux发行版指南 ``` diff --git a/website/i18n/zh-Hans/docusaurus-plugin-content-docs/current/guides/dynamic-assets.mdx b/website/i18n/zh-Hans/docusaurus-plugin-content-docs/current/guides/dynamic-assets.mdx index 3162ccb88..647348462 100644 --- a/website/i18n/zh-Hans/docusaurus-plugin-content-docs/current/guides/dynamic-assets.mdx +++ b/website/i18n/zh-Hans/docusaurus-plugin-content-docs/current/guides/dynamic-assets.mdx @@ -8,7 +8,7 @@ 在我们的示例项目中,我们将创建一个简单的资产处理程序,它将从磁盘加载文件: -```go title=main.go {16-35,49} +```go title=main.go {17-36,49} package main import ( diff --git a/website/i18n/zh-Hans/docusaurus-plugin-content-docs/current/guides/mac-appstore.mdx b/website/i18n/zh-Hans/docusaurus-plugin-content-docs/current/guides/mac-appstore.mdx index 3c50fcde8..b57afca88 100644 --- a/website/i18n/zh-Hans/docusaurus-plugin-content-docs/current/guides/mac-appstore.mdx +++ b/website/i18n/zh-Hans/docusaurus-plugin-content-docs/current/guides/mac-appstore.mdx @@ -21,6 +21,12 @@ 3. 根据 Apple 的要求,使用正确的屏幕截图、描述等填充您的应用程序 4. 创建新版本的应用 +#### 创建配置文件 +1. 转到 [Apple 开发者资料](https://developer.apple.com/account/resources/profiles/list) 页面 +2. 为 Mac App Store Distribution 添加新的配置文件 +3. 将 Profile Type 设置为 Mac 并为上面创建的应用程序选择 App ID +4. 选择 Mac App Distribution 证书 +5. 命名嵌入式配置文件并下载创建的配置文件。 ## Mac 应用商店流程 @@ -30,7 +36,7 @@ **示例授权文件** -这是来自 [RiftShare](https://github.com/achhabra2/riftshare) 应用程序的示例授权文件。 作为参考,请输入您的应用所需的权限。 有关详细信息,请参阅 [此站点](https://developer.apple.com/documentation/bundleresources/entitlements)。 +这是来自 [RiftShare](https://github.com/achhabra2/riftshare) 应用程序的示例授权文件。 作为参考,请输入您的应用所需的权限。 有关详细信息,请参阅 [此站点](https://developer.apple.com/documentation/bundleresources/entitlements)。 您需要将团队 ID 和应用程序名称替换为您上面注册的名称。 ```xml title="entitlements.plist" @@ -47,10 +53,16 @@ com.apple.security.files.downloads.read-write + com.apple.application-identifier + TEAM_ID.APP_NAME + com.apple.developer.team-identifier + TEAM_ID ``` +上面 **添加嵌入式配置文件** 创建的配置文件需要添加到应用程序的根目录中。 它需要命名为 embedded.provisionprofile。 + #### 构建并签署应用程序包 以下是用于构建和签署您的应用程序以提交 Mac 应用商店的示例脚本。 它假定您正在从根项目目录运行脚本。 @@ -66,6 +78,8 @@ APP_NAME="YourApp" wails build -platform darwin/universal -clean +cp ./embedded.provisionprofile "./build/bin/$APP_NAME.app/Contents" + codesign --timestamp --options=runtime -s "$APP_CERTIFICATE" -v --entitlements ./build/darwin/entitlements.plist ./build/bin/$APP_NAME.app productbuild --sign "$PKG_CERTIFICATE" --component ./build/bin/$APP_NAME.app /Applications ./$APP_NAME.pkg @@ -80,4 +94,4 @@ productbuild --sign "$PKG_CERTIFICATE" --component ./build/bin/$APP_NAME.app /Ap 3. 单击 + 号并选择您在上一步中生成的 `APP_NAME.pkg` 文件。 上传它 4. 返回 [App Store Connect](https://appstoreconnect.apple.com/apps) 站点并导航回您的应用程序提交。 选择您准备在 App 商店上提供的版本。 在 `Build` 下选择您通过 Transporter 上传的包。 -好了! 您现在可以使用该网站提交您的应用程序以供审核。 几个工作日后,如果一切顺利,您应该会在 Mac 应用商店上看到您的应用程序。 \ No newline at end of file +好了! 您现在可以使用该网站提交您的应用程序以供审核。 几个工作日后,如果一切顺利,您应该会在 Mac 应用商店上看到您的应用程序。 diff --git a/website/i18n/zh-Hans/docusaurus-plugin-content-docs/current/guides/troubleshooting.mdx b/website/i18n/zh-Hans/docusaurus-plugin-content-docs/current/guides/troubleshooting.mdx index d7a7e7748..3edc89343 100644 --- a/website/i18n/zh-Hans/docusaurus-plugin-content-docs/current/guides/troubleshooting.mdx +++ b/website/i18n/zh-Hans/docusaurus-plugin-content-docs/current/guides/troubleshooting.mdx @@ -159,4 +159,8 @@ In file included from /Library/Developer/CommandLineTools/SDKs/MacOSX12.1.sdk/Sy 最好将 `frontend/node_modules` 和 `frontend/package-lock.json` 添加到您的 `.gitignore` 中。 否则,当在另一台可能安装了不同版本 Node 的机器上打开您的存储库时,您可能无法运行您的应用程序。 -如果发生这种情况,只需删除 `frontend/node_modules` 和 `frontend/package-lock.json` 并再次运行 `wails build` 或 `wails dev` 命令。 \ No newline at end of file +如果发生这种情况,只需删除 `frontend/node_modules` 和 `frontend/package-lock.json` 并再次运行 `wails build` 或 `wails dev` 命令。 + +## 构建过程停留在“生成绑定” + +绑定生成过程在特殊模式下运行应用程序。 如果应用程序有意或无意地包含一个无限循环(即在 `wails.Run()` 结束后不退出),这可能导致构建过程停留在绑定生成阶段。 请确保您的代码正确退出。 diff --git a/website/i18n/zh-Hans/docusaurus-plugin-content-docs/current/howdoesitwork.mdx b/website/i18n/zh-Hans/docusaurus-plugin-content-docs/current/howdoesitwork.mdx index ff939297b..bd9fb078b 100644 --- a/website/i18n/zh-Hans/docusaurus-plugin-content-docs/current/howdoesitwork.mdx +++ b/website/i18n/zh-Hans/docusaurus-plugin-content-docs/current/howdoesitwork.mdx @@ -117,7 +117,7 @@ Wails 要求您传入结构体的 _实例_ 以使其正确绑定 在此示例中,我们创建一个新的 `App` 实例,然后将此实例添加到 `wails.Run` 中的 `Bind` 选项: -```go {16,24} title="main.go" +```go {17,27} title="main.go" package main import ( @@ -164,7 +164,7 @@ func (a *App) Greet(name string) string { 您可以绑定任意数量的结构体。 只需确保创建它的实例并将其传递给 `Bind`: -```go {8-10} +```go {10-12} //... err := wails.Run(&options.App{ Title: "Basic Demo", @@ -236,7 +236,7 @@ export function Greet(arg1: string): Promise; :::info 注意 -结构体字段 *必须* 具有有效的 `json` 标签,以包含在生成的 TypeScript 中。 +结构体字段 _必须_ 具有有效的 `json` 标签,以包含在生成的 TypeScript 中。 目前不支持嵌套匿名结构体。 diff --git a/website/i18n/zh-Hans/docusaurus-plugin-content-docs/current/reference/cli.mdx b/website/i18n/zh-Hans/docusaurus-plugin-content-docs/current/reference/cli.mdx index 4c8f99e51..b46f13cf1 100644 --- a/website/i18n/zh-Hans/docusaurus-plugin-content-docs/current/reference/cli.mdx +++ b/website/i18n/zh-Hans/docusaurus-plugin-content-docs/current/reference/cli.mdx @@ -71,6 +71,7 @@ Wails CLI 有许多用于管理项目的命令。 所有命令都以此方式运 | -windowsconsole | 保留Windows构建控制台窗口 | | | -obfuscate | 使用 [garble](https://github.com/burrowers/garble) 混淆应用程序 | false | | -garbleargs | 传递给 garble 的参数 | `-literals -tiny -seed=random` | +| -nosyncgomod | 不同步 go.mod 中的 Wails 版本 | false | 有关 `webview2` 标志的详细描述,请参阅 [Windows 系统指南](../guides/windows)。 @@ -80,8 +81,10 @@ Wails CLI 有许多用于管理项目的命令。 所有命令都以此方式运 `wails build -clean -o myproject.exe` -:::Info -在 Mac 上,应用程序将与 `Info.plist` 捆绑在一起,而不是 `Info.dev.plist`。 +:::info + +在 Mac 上,应用程序将被绑定到 `Info.plist`,而不是 `Info.dev.plist`。 + ::: :::info 苹果芯片上的 UPX @@ -184,6 +187,9 @@ Your system is ready for Wails development! | -save | 将指定的 `assetdir`、 `reloaddirs`、 `wailsjsdir`、 `debounce` 、 `devserver` 和 `frontenddevserverurl` 标志的值保存到 `wails.json` 以成为后续调用的默认值。 | | | -race | 使用 Go 的竞态检测器构建 | false | | -s | 跳过前端构建 | false | +| -nosyncgomod | 不同步 go.mod 中的 Wails 版本 | false | + + 示例: diff --git a/website/i18n/zh-Hans/docusaurus-plugin-content-docs/current/reference/options.mdx b/website/i18n/zh-Hans/docusaurus-plugin-content-docs/current/reference/options.mdx index fa2b0e9e6..fe992fdea 100644 --- a/website/i18n/zh-Hans/docusaurus-plugin-content-docs/current/reference/options.mdx +++ b/website/i18n/zh-Hans/docusaurus-plugin-content-docs/current/reference/options.mdx @@ -50,6 +50,7 @@ func main() { OnBeforeClose: app.beforeClose, CSSDragProperty: "--wails-draggable", CSSDragValue: "drag", + EnableFraudulentWebsiteDetection: false, ZoomFactor: 1.0, IsZoomControlEnabled: false, Bind: []interface{}{ @@ -72,12 +73,13 @@ func main() { LightModeTitleText: windows.RGB(20, 20, 20), LightModeBorder: windows.RGB(200, 200, 200), }, - // User messages that can be customised + // 可自定义的用户消息 Messages *windows.Messages - // OnSuspend is called when Windows enters low power mode + // 当 Windows 进入低电量模式时调用 OnSuspend OnSuspend func() - // OnResume is called when Windows resumes from low power mode - OnResume func() + // 当 Windows 从低电量模式恢复时调用 OnResume + OnResume func(), + WebviewGpuDisabled: false, }, Mac: &mac.Options{ TitleBar: &mac.TitleBar{ @@ -100,6 +102,7 @@ func main() { Linux: &linux.Options{ Icon: icon, WindowIsTranslucent: false, + WebviewGpuPolicy: linux.WebviewGpuPolicyAlways, }, Debug: options.Debug{ OpenInspectorOnStartup: false, @@ -232,11 +235,11 @@ func main() { | DELETE | ✅ | ✅ | ✅ [^1] | | Request Headers | ✅ | ✅ | ✅ [^1] | | Request Body | ✅ | ✅ | ❌ | -| Request Body Streaming | ❌ | ❌ | ❌ | +| Request Body Streaming | ✅ | ✅ | ❌ | | Response StatusCodes | ✅ | ✅ | ✅ [^1] | | Response Headers | ✅ | ✅ | ✅ [^1] | | Response Body | ✅ | ✅ | ✅ | -| Response Body Streaming | ❌ | ❌ | ✅ | +| Response Body Streaming | ❌ | ✅ | ✅ | | WebSockets | ❌ | ❌ | ❌ | | HTTP Redirects 30x | ✅ | ❌ | ❌ | @@ -356,6 +359,12 @@ func (b *App) beforeClose(ctx context.Context) (prevent bool) { 名称:CSSDragValue
类型:`string` +### 启用欺诈网站检测 + +EnableFraudulentWebsiteDetection 启用针对欺诈内容(例如恶意软件或网络钓鱼尝试)的扫描服务。 这些服务可能会从你的应用中发送信息,比如导航到苹果和微软的云服务的url和其他内容。 + +名称:EnableFraudulentWebsiteDetection
类型:`bool` + ### 缩放比例 名称:ZoomFactor
类型:`float64` @@ -542,6 +551,12 @@ ResizeDebounceMS 是调整窗口大小时去抖动 webview2 重绘的时间量 名称:OnResume
类型:`func()` +#### 禁用 Webview GPU 硬件加速 + +设置为 `true` 将禁用 webview 的 GPU 硬件加速。 + +名称:WebviewGpuIsDisabled
类型:`bool` + ### Mac 这定义了 [Mac 特定的选项](#mac)。 @@ -738,6 +753,20 @@ func main() { 名称:WindowIsTranslucent
类型:`bool` +#### Webview GPU 策略 + +该选项用于决定 webview 的硬件加速策略。 + +名称:WebviewGpuPolicy
类型:[`options.WebviewGpuPolicy`](#webviewgpupolicy-type)
默认:`WebviewGpuPolicyAlways` + +##### Webview GPU 策略类型 + +| 值 | 描述 | +| ------------------------ | --------------------- | +| WebviewGpuPolicyAlways | 始终启用硬件加速 | +| WebviewGpuPolicyOnDemand | 根据 Web 内容的请求启用/禁用硬件加速 | +| WebviewGpuPolicyNever | 硬件加速始终处于禁用状态 | + ### 调试 这定义了用于调试构建的 [调试特定选项](#调试)。 diff --git a/website/i18n/zh-Hans/docusaurus-plugin-content-docs/current/reference/runtime/browser.mdx b/website/i18n/zh-Hans/docusaurus-plugin-content-docs/current/reference/runtime/browser.mdx index 26b81b958..0829be25f 100644 --- a/website/i18n/zh-Hans/docusaurus-plugin-content-docs/current/reference/runtime/browser.mdx +++ b/website/i18n/zh-Hans/docusaurus-plugin-content-docs/current/reference/runtime/browser.mdx @@ -2,11 +2,11 @@ sidebar_position: 7 --- -# 浏览器 +# Browser 浏览器 这些方法与系统浏览器相关。 -### 浏览器打开 URL +### BrowserOpenURL 浏览器打开 URL 使用系统默认浏览器打开给定的 URL。 diff --git a/website/i18n/zh-Hans/docusaurus-plugin-content-docs/current/reference/runtime/clipboard.mdx b/website/i18n/zh-Hans/docusaurus-plugin-content-docs/current/reference/runtime/clipboard.mdx new file mode 100644 index 000000000..f2afb79af --- /dev/null +++ b/website/i18n/zh-Hans/docusaurus-plugin-content-docs/current/reference/runtime/clipboard.mdx @@ -0,0 +1,23 @@ +--- +sidebar_position: 8 +--- + +# Clipboard 剪切板 + +运行时的这一部分提供了对操作系统剪贴板的访问。
当前实现仅处理文本。 + +### ClipboardGetText 剪贴板获取文本 + +从剪切板读取当前存储的文本。 + +Go: `ClipboardGetText(ctx context.Context) (string, error)`
返回: 一个字符串(如果剪贴板为空,将返回一个空字符串)或一个错误。 + +JS: `ClipboardGetText(): Promise`
返回: 带有字符串结果的 Promise(如果剪贴板为空,将返回空字符串)。 + +### ClipboardSetText 剪贴板设置文本 + +将文本写入剪切板。 + +Go: `ClipboardSetText(ctx context.Context, text string) error`
返回: 如果存在错误,则会出现错误。 + +JS: `ClipboardSetText(text: string): Promise`
返回值: 一个Promise,如果文本成功地设置在剪贴板上,结果为 true,否则为 false。 diff --git a/website/i18n/zh-Hans/docusaurus-plugin-content-docs/current/reference/runtime/dialog.mdx b/website/i18n/zh-Hans/docusaurus-plugin-content-docs/current/reference/runtime/dialog.mdx index 97c922740..7fd7f9640 100644 --- a/website/i18n/zh-Hans/docusaurus-plugin-content-docs/current/reference/runtime/dialog.mdx +++ b/website/i18n/zh-Hans/docusaurus-plugin-content-docs/current/reference/runtime/dialog.mdx @@ -2,7 +2,7 @@ sidebar_position: 5 --- -# 对话框 +# Dialog 对话框 运行时的这一部分提供对原生对话框的调用,例如文件选择器和消息框。 @@ -12,7 +12,7 @@ JS 运行时当前不支持对话框。 ::: -### 打开选择目录对话框 +### OpenDirectoryDialog 打开选择目录对话框 打开一个对话框,提示用户选择目录。 可以使用 [ 打开选择文件对话框参数选项](#打开选择文件对话框参数选项) 进行自定义。 @@ -20,7 +20,7 @@ Go: `OpenDirectoryDialog(ctx context.Context, dialogOptions OpenDialogOptions) ( 返回值: 所选目录(如果用户取消则为空白)或错误 -### 打开选择文件对话框 +### OpenFileDialog 打开选择文件对话框 打开一个对话框,提示用户选择文件。 可以使用 [ 打开选择文件对话框参数选项](#打开选择文件对话框参数选项) 进行自定义。 @@ -28,7 +28,7 @@ Go: `OpenFileDialog(ctx context.Context, dialogOptions OpenDialogOptions) (strin 返回值: 所选文件(如果用户取消则为空白)或错误 -### 打开选择多文件对话框 +### OpenMultipleFilesDialog 打开选择多文件对话框 打开一个对话框,提示用户选择多个文件。 可以使用 [ 打开选择文件对话框参数选项](#打开选择文件对话框参数选项) 进行自定义。 @@ -36,7 +36,7 @@ Go: `OpenMultipleFilesDialog(ctx context.Context, dialogOptions OpenDialogOption 返回值: 选定的文件(如果用户取消则为 nil)或错误 -### 保存文件对话框 +### SaveFileDialog 保存文件对话框 打开一个对话框,提示用户选择文件名以进行保存。 可以使用 [保存文件对话框参数选项](#保存文件对话框参数选项) 自定义。 @@ -44,7 +44,7 @@ Go: `SaveFileDialog(ctx context.Context, dialogOptions SaveDialogOptions) (strin 返回值: 所选文件(如果用户取消则为空白)或错误 -### 消息对话框 +### MessageDialog 消息对话框 使用消息对话框显示消息。 可以使用 [消息对话框参数选项](#消息对话框参数选项) 进行自定义。 diff --git a/website/i18n/zh-Hans/docusaurus-plugin-content-docs/current/reference/runtime/events.mdx b/website/i18n/zh-Hans/docusaurus-plugin-content-docs/current/reference/runtime/events.mdx index 29a44bdb5..7788eed7b 100644 --- a/website/i18n/zh-Hans/docusaurus-plugin-content-docs/current/reference/runtime/events.mdx +++ b/website/i18n/zh-Hans/docusaurus-plugin-content-docs/current/reference/runtime/events.mdx @@ -2,36 +2,36 @@ sidebar_position: 2 --- -# 事件 +# Events 事件 Wails 运行时提供了一个统一的事件系统,其中事件可以由 Go 或 JavaScript 发出或接收。 可选地,数据可以与事件一起传递。 侦听器将接收本地数据类型中的数据。 -### 添加事件侦听器 +### EventsOn 添加事件侦听器 此方法为给定的事件名称设置一个侦听器。 当 [触发指定事件](#触发指定事件) 名为 `eventName` 类型的事件时,将触发回调。 与触发事件一起发送的任何其他数据都将传递给回调。 它返回 一个函数来取消侦听器。 Go: `EventsOn(ctx context.Context, eventName string, callback func(optionalData ...interface{})) func()`
JS: `EventsOn(eventName string, callback function(optionalData?: any)): () => void` -### 移除事件侦听器 +### EventsOff 移除事件侦听器 此方法取消注册给定事件名称的侦听器,可选地,可以通过 `additionalEventNames` 取消注册多个侦听器。 Go: `EventsOff(ctx context.Context, eventName string, additionalEventNames ...string)`
JS: `EventsOff(eventName string, ...additionalEventNames)` -### 添加只触发一次的事件侦听器 +### EventsOnce 添加只触发一次的事件侦听器 此方法为给定的事件名称设置一个侦听器,但只会触发一次。 它返回 一个函数来取消侦听器。 Go: `EventsOnce(ctx context.Context, eventName string, callback func(optionalData ...interface{})) func()`
JS: `EventsOnce(eventName string, callback function(optionalData?: any)): () => void` -### 添加指定对多触发次数的事件侦听器 +### EventsOnMultiple 添加指定对多触发次数的事件侦听器 此方法为给定的事件名称设置一个侦听器,但最多只能触发 `counter` 次。 它返回 一个函数来取消侦听器。 Go: `EventsOnMultiple(ctx context.Context, eventName string, callback func(optionalData ...interface{}), counter int) func()`
JS: `EventsOnMultiple(eventName string, callback function(optionalData?: any), counter int): () => void` -### 触发指定事件 +### EventsEmit 触发指定事件 此方法触发指定的事件。 可选数据可以与事件一起传递。 这将触发任意事件侦听器。 -Go: `EventsEmit(ctx context.Context, eventName string, optionalData ...interface{})`
JS: `EventsEmit(ctx context, optionalData function(optionalData?: any))` +Go: `EventsEmit(ctx context.Context, eventName string, optionalData ...interface{})`
JS: `EventsEmit(eventName: string, ...optionalData: any)` diff --git a/website/i18n/zh-Hans/docusaurus-plugin-content-docs/current/reference/runtime/intro.mdx b/website/i18n/zh-Hans/docusaurus-plugin-content-docs/current/reference/runtime/intro.mdx index 199ab5356..107e2def8 100644 --- a/website/i18n/zh-Hans/docusaurus-plugin-content-docs/current/reference/runtime/intro.mdx +++ b/website/i18n/zh-Hans/docusaurus-plugin-content-docs/current/reference/runtime/intro.mdx @@ -14,6 +14,7 @@ sidebar_position: 1 - [事件](events.mdx) - [浏览器](browser.mdx) - [日志](log.mdx) +- [剪切板](clipboard.mdx) Go 运行时可通过导入 `github.com/wailsapp/wails/v2/pkg/runtime` 获取。 此包中的所有方法都将 context 作为第一个参数。 此 context 应该从 [应用启动回调](../options.mdx#onstartup) 或 [前端 Dom 加载完成回调](../options.mdx#ondomready) 回调方法中获取。 diff --git a/website/i18n/zh-Hans/docusaurus-plugin-content-docs/current/reference/runtime/log.mdx b/website/i18n/zh-Hans/docusaurus-plugin-content-docs/current/reference/runtime/log.mdx index 7e00bf537..d109faab2 100644 --- a/website/i18n/zh-Hans/docusaurus-plugin-content-docs/current/reference/runtime/log.mdx +++ b/website/i18n/zh-Hans/docusaurus-plugin-content-docs/current/reference/runtime/log.mdx @@ -2,7 +2,7 @@ sidebar_position: 3 --- -# 日志 +# Log 日志 Wails 运行时提供了一种可以从 Go 或 JavaScript 调用日志记录的机制。 像大多数记录器一样,有许多日志级别: @@ -15,91 +15,91 @@ Wails 运行时提供了一种可以从 Go 或 JavaScript 调用日志记录的 记录器将输出当前或更高日志级别的任何日志消息。 示例:`Debug`日志级别将输出除`Trace`消息之外的所有消息。 -### Print 日志 +### LogPrint Print 日志 将给定的消息记录为原始消息。 Go: `LogPrint(ctx context.Context, message string)`
JS: `LogPrint(message: string)` -### 格式化 Print 日志 +### LogPrintf 格式化 Print 日志 将给定的消息记录为原始消息。 Go: `LogPrintf(ctx context.Context, format string, args ...interface{})`
-### Trace 日志 +### LogTrace Trace 日志 在 `Trace` 日志级别记录给定的消息。 Go: `LogTrace(ctx context.Context, message string)`
JS: `LogTrace(message: string)` -### 格式化 Trace 日志 +### LogTracef 格式化 Trace 日志 在 `Trace` 日志级别记录给定的消息。 Go: `LogTracef(ctx context.Context, format string, args ...interface{})`
-### Debug 日志 +### LogDebug Debug 日志 在 `Debug` 日志级别记录给定的消息。 Go: `LogDebug(ctx context.Context, message string)`
JS: `LogDebug(message: string)` -### 格式化 Debug 日志 +### LogDebugf 格式化 Debug 日志 在 `Debug` 日志级别记录给定的消息。 Go: `LogDebugf(ctx context.Context, format string, args ...interface{})`
-### Info 日志 +### LogInfo Info 日志 在`Info`日志级别记录给定的消息。 Go: `LogInfo(ctx context.Context, message string)`
JS: `LogInfo(message: string)` -### 格式化 Info 日志 +### LogInfof 格式化 Info 日志 在`Info`日志级别记录给定的消息。 Go: `LogInfof(ctx context.Context, format string, args ...interface{})`
-### Warning 日志 +### LogWarning Warning 日志 在 `Warning` 日志级别记录给定的消息。 Go: `LogWarning(ctx context.Context, message string)`
JS: `LogWarning(message: string)` -### 格式化 Warning 日志 +### LogWarningf 格式化 Warning 日志 在 `Warning` 日志级别记录给定的消息。 Go: `LogWarningf(ctx context.Context, format string, args ...interface{})`
-### Error 日志 +### LogError Error 日志 在 `Error` 日志级别记录给定的消息。 Go: `LogError(ctx context.Context, message string)`
JS: `LogError(message: string)` -### 格式化 Error 日志 +### LogErrorf 格式化 Error 日志 在 `Error` 日志级别记录给定的消息。 Go: `LogErrorf(ctx context.Context, format string, args ...interface{})`
-### Fatal 日志 +### LogFatal Fatal 日志 在 `Fatal` 日志级别记录给定的消息。 Go: `LogFatal(ctx context.Context, message string)`
JS: `LogFatal(message: string)` -### 格式化 Fatal 日志 +### LogFatalf 格式化 Fatal 日志 在 `Fatal` 日志级别记录给定的消息。 Go: `LogFatalf(ctx context.Context, format string, args ...interface{})`
-### 设置日志级别 +### LogSetLogLevel 设置日志级别 设置日志级别。 在 JavaScript 中,该数字与以下日志级别有关: diff --git a/website/i18n/zh-Hans/docusaurus-plugin-content-docs/current/reference/runtime/menu.mdx b/website/i18n/zh-Hans/docusaurus-plugin-content-docs/current/reference/runtime/menu.mdx index 7a4250550..9d176d06a 100644 --- a/website/i18n/zh-Hans/docusaurus-plugin-content-docs/current/reference/runtime/menu.mdx +++ b/website/i18n/zh-Hans/docusaurus-plugin-content-docs/current/reference/runtime/menu.mdx @@ -2,7 +2,7 @@ sidebar_position: 6 --- -# 菜单 +# Menu 菜单 这些方法与应用程序菜单相关。 @@ -12,13 +12,13 @@ JS 运行时当前不支持菜单。 ::: -### 设置应用程序菜单 +### MenuSetApplicationMenu 设置应用程序菜单 将应用程序菜单设置为给定的 [菜单](../menus.mdx)。 Go: `MenuSetApplicationMenu(ctx context.Context, menu *menu.Menu)` -### 更新应用程序菜单 +### MenuUpdateApplicationMenu 更新应用程序菜单 获取传递给 `MenuSetApplicationMenu` 的菜单的任意更改更新应用程序菜单。 diff --git a/website/i18n/zh-Hans/docusaurus-plugin-content-docs/current/reference/runtime/window.mdx b/website/i18n/zh-Hans/docusaurus-plugin-content-docs/current/reference/runtime/window.mdx index d6176990f..3c7675259 100644 --- a/website/i18n/zh-Hans/docusaurus-plugin-content-docs/current/reference/runtime/window.mdx +++ b/website/i18n/zh-Hans/docusaurus-plugin-content-docs/current/reference/runtime/window.mdx @@ -2,41 +2,41 @@ sidebar_position: 4 --- -# 窗口 +# Window 窗口 这些方法可以控制应用程序窗口。 -### 窗口标题 +### WindowSetTitle 窗口标题 设置窗口标题栏中的文本。 Go: `WindowSetTitle(ctx context.Context, title string)`
JS: `WindowSetTitle(title: string)` -### 窗口全屏 +### WindowFullscreen 窗口全屏 使窗口全屏。 Go: `WindowFullscreen(ctx context.Context)`
JS: `WindowFullscreen()` -### 窗口取消全屏 +### WindowUnfullscreen 窗口取消全屏 恢复全屏之前的先前窗口尺寸和位置。 Go: `WindowUnfullscreen(ctx context.Context)`
JS: `WindowUnfullscreen()` -### 窗口是否全屏 +### WindowIsFullscreen 窗口是否全屏 如果窗口是全屏的,则返回 true。 Go: `WindowIsFullscreen(ctx context.Context) bool`
JS: `WindowIsFullscreen() bool` -### 窗口居中 +### WindowCenter 窗口居中 使窗口在当前窗口所在的监视器上居中。 Go: `WindowCenter(ctx context.Context)`
JS: `WindowCenter()` -### 窗口执行JS代码 +### WindowExecJS 窗口执行JS代码 在窗口中执行任意 JS 代码。 @@ -44,19 +44,19 @@ Go: `WindowCenter(ctx context.Context)`
JS: `WindowCenter()` Go: `WindowExecJS(ctx context.Context, js string)` -### 窗口重新加载 +### WindowReload 窗口重新加载 执行“重新加载”(重新加载当前页面)。 Go: `WindowReload(ctx context.Context)`
JS: `WindowReload()` -### 重新加载应用程序前端。 +### WindowReloadApp 重新加载应用程序前端。 重新加载应用程序前端。 Go: `WindowReloadApp(ctx context.Context)`
JS: `WindowReloadApp()` -### 窗口设置系统默认主题 +### WindowSetSystemDefaultTheme 窗口设置系统默认主题 仅限 Windows。 @@ -64,7 +64,7 @@ Go: `WindowSetSystemDefaultTheme(ctx context.Context)`
JS: `WindowSetSystem 将窗口主题设置为系统默认值(暗/亮)。 -### 窗口设置浅色主题 +### WindowSetLightTheme 窗口设置浅色主题 仅限 Windows。 @@ -72,7 +72,7 @@ Go: `WindowSetLightTheme(ctx context.Context)`
JS: `WindowSetLightTheme()` 将窗口主题设置为浅色。 -### 窗口设置深色主题 +### WindowSetDarkTheme 窗口设置深色主题 仅限 Windows。 @@ -80,37 +80,37 @@ Go: `WindowSetDarkTheme(ctx context.Context)`
JS: `WindowSetDarkTheme()` 将窗口主题设置为深色。 -### 显示窗口 +### WindowShow 显示窗口 显示窗口,如果它当前是隐藏的。 Go: `WindowShow(ctx context.Context)`
JS: `WindowShow()` -### 隐藏窗口 +### WindowShow 隐藏窗口 如果当前可见,则隐藏窗口。 Go: `WindowHide(ctx context.Context)`
JS: `WindowHide()` -### 窗口是否为正常 +### WindowIsNormal 窗口是否为正常 如果窗口未最小化、最大化或全屏,则返回 true。 Go: `WindowIsNormal(ctx context.Context) bool`
JS: `WindowIsNormal() bool` -### 设置窗口尺寸 +### WindowSetSize 设置窗口尺寸 设置窗口的宽度和高度。 Go: `WindowSetSize(ctx context.Context, width int, height int)`
JS: `WindowSetSize(size: Size)` -### 获取窗口尺寸 +### WindowSetSize 获取窗口尺寸 获取窗口的宽度和高度。 Go: `WindowGetSize(ctx context.Context) (width int, height int)`
JS: `WindowGetSize() : Size` -### 设置窗口最小尺寸 +### WindowSetMinSize 设置窗口最小尺寸 设置窗口最小尺寸。 如果窗口当前小于给定尺寸,将调整窗口大小。 @@ -118,7 +118,7 @@ Go: `WindowGetSize(ctx context.Context) (width int, height int)`
JS: `Windo Go: `WindowSetMinSize(ctx context.Context, width int, height int)`
JS: `WindowSetMinSize(size: Size)` -### 设置窗口最大尺寸 +### WindowSetMaxSize 设置窗口最大尺寸 设置窗口最大尺寸。 如果窗口当前大于给定尺寸,将调整窗口大小。 @@ -126,67 +126,67 @@ Go: `WindowSetMinSize(ctx context.Context, width int, height int)`
JS: `Win Go: `WindowSetMaxSize(ctx context.Context, width int, height int)`
JS: `WindowSetMaxSize(size: Size)` -### 设置窗口置顶 +### WindowSetAlwaysOnTop 设置窗口置顶 设置窗口置顶或取消置顶。 Go: `WindowSetAlwaysOnTop(ctx context.Context, b bool)`
JS: `WindowSetAlwaysOnTop(b: Boolen)` -### 设置窗口位置 +### WindowSetPosition 设置窗口位置 设置相对于窗口当前所在监视器的窗口位置。 Go: `WindowSetPosition(ctx context.Context, x int, y int)`
JS: `WindowSetPosition(position: Position)` -### 获取窗口位置 +### WindowGetPosition 获取窗口位置 获取相对于窗口当前所在监视器的窗口位置。 Go: `WindowGetPosition(ctx context.Context) (x int, y int)`
JS: `WindowGetPosition() : Position` -### 窗口最大化 +### WindowMaximise 窗口最大化 最大化窗口以填满屏幕。 Go: `WindowMaximise(ctx context.Context)`
JS: `WindowMaximise()` -### 窗口取消最大化 +### WindowUnmaximise 窗口取消最大化 将窗口恢复到最大化之前的尺寸和位置。 Go: `WindowUnmaximise(ctx context.Context)`
JS: `WindowUnmaximise()` -### 窗口是否最大化 +### WindowIsMaximised 窗口是否最大化 如果窗口最大化,则返回 true。 Go: `WindowIsMaximised(ctx context.Context) bool`
JS: `WindowIsMaximised() bool` -### 窗口最大化切换 +### WindowToggleMaximise 窗口最大化切换 在最大化和未最大化之间切换。 Go: `WindowToggleMaximise(ctx context.Context)`
JS: `WindowToggleMaximise()` -### 窗口最小化。 +### WindowMinimise 窗口最小化。 最小化窗口。 Go: `WindowMinimise(ctx context.Context)`
JS: `WindowMinimise()` -### 窗口取消最小化 +### WindowUnminimise 窗口取消最小化 将窗口恢复到最小化之前的尺寸和位置。 Go: `WindowUnminimise(ctx context.Context)`
JS: `WindowUnminimise()` -### 窗口是否最小化 +### WindowIsMinimised 窗口是否最小化 如果窗口最小化,则返回 true。 Go: `WindowIsMinimised(ctx context.Context) bool`
JS: `WindowIsMinimised() bool` -### 窗口设置背景色 +### WindowSetBackgroundColour 窗口设置背景色 将窗口的背景颜色设置为给定的 RGBA 颜色定义。 这种颜色将显示所有透明像素。 diff --git a/website/i18n/zh-Hans/docusaurus-plugin-content-docs/version-v2.0.0-rc.1.json b/website/i18n/zh-Hans/docusaurus-plugin-content-docs/version-v2.0.0-rc.1.json deleted file mode 100644 index 9d6bd1b1a..000000000 --- a/website/i18n/zh-Hans/docusaurus-plugin-content-docs/version-v2.0.0-rc.1.json +++ /dev/null @@ -1,38 +0,0 @@ -{ - "version.label": { - "message": "v2.0.0-rc.1", - "description": "The label for version v2.0.0-rc.1" - }, - "sidebar.docs.category.Getting Started": { - "message": "快速入门", - "description": "The label for category Getting Started in sidebar docs" - }, - "sidebar.docs.category.Reference": { - "message": "参考", - "description": "The label for category Reference in sidebar docs" - }, - "sidebar.docs.category.Runtime": { - "message": "运行时", - "description": "The label for category Runtime in sidebar docs" - }, - "sidebar.docs.category.Community": { - "message": "社区", - "description": "The label for category Community in sidebar docs" - }, - "sidebar.docs.category.Showcase": { - "message": "案例展示", - "description": "The label for category Showcase in sidebar docs" - }, - "sidebar.docs.category.Guides": { - "message": "指南", - "description": "The label for category Guides in sidebar docs" - }, - "sidebar.docs.category.Tutorials": { - "message": "教程", - "description": "The label for category Tutorials in sidebar docs" - }, - "sidebar.docs.link.Contributing": { - "message": "参与贡献", - "description": "The label for link Contributing in sidebar docs, linking to /community-guide#ways-of-contributing" - } -} diff --git a/website/i18n/zh-Hans/docusaurus-plugin-content-docs/version-v2.0.0.json b/website/i18n/zh-Hans/docusaurus-plugin-content-docs/version-v2.3.0.json similarity index 94% rename from website/i18n/zh-Hans/docusaurus-plugin-content-docs/version-v2.0.0.json rename to website/i18n/zh-Hans/docusaurus-plugin-content-docs/version-v2.3.0.json index de0d0d7f6..41eefae4d 100644 --- a/website/i18n/zh-Hans/docusaurus-plugin-content-docs/version-v2.0.0.json +++ b/website/i18n/zh-Hans/docusaurus-plugin-content-docs/version-v2.3.0.json @@ -1,7 +1,7 @@ { "version.label": { - "message": "v2.0.0", - "description": "The label for version v2.0.0" + "message": "v2.3.0", + "description": "The label for version v2.3.0" }, "sidebar.docs.category.Getting Started": { "message": "快速入门", diff --git a/website/i18n/zh-Hans/docusaurus-plugin-content-docs/version-v2.1.0.json b/website/i18n/zh-Hans/docusaurus-plugin-content-docs/version-v2.3.1.json similarity index 94% rename from website/i18n/zh-Hans/docusaurus-plugin-content-docs/version-v2.1.0.json rename to website/i18n/zh-Hans/docusaurus-plugin-content-docs/version-v2.3.1.json index 6dec3077b..0bcb48274 100644 --- a/website/i18n/zh-Hans/docusaurus-plugin-content-docs/version-v2.1.0.json +++ b/website/i18n/zh-Hans/docusaurus-plugin-content-docs/version-v2.3.1.json @@ -1,7 +1,7 @@ { "version.label": { - "message": "v2.1.0", - "description": "The label for version v2.1.0" + "message": "v2.3.1", + "description": "The label for version v2.3.1" }, "sidebar.docs.category.Getting Started": { "message": "快速入门", diff --git a/website/i18n/zh-Hans/docusaurus-plugin-content-docs/version-v2.2.0.json b/website/i18n/zh-Hans/docusaurus-plugin-content-docs/version-v2.4.0.json similarity index 94% rename from website/i18n/zh-Hans/docusaurus-plugin-content-docs/version-v2.2.0.json rename to website/i18n/zh-Hans/docusaurus-plugin-content-docs/version-v2.4.0.json index 30e3e8e2d..af57306af 100644 --- a/website/i18n/zh-Hans/docusaurus-plugin-content-docs/version-v2.2.0.json +++ b/website/i18n/zh-Hans/docusaurus-plugin-content-docs/version-v2.4.0.json @@ -1,7 +1,7 @@ { "version.label": { - "message": "v2.2.0", - "description": "The label for version v2.2.0" + "message": "v2.4.0", + "description": "The label for version v2.4.0" }, "sidebar.docs.category.Getting Started": { "message": "快速入门", diff --git a/website/i18n/zh-Hans/docusaurus-plugin-content-pages/changelog.mdx b/website/i18n/zh-Hans/docusaurus-plugin-content-pages/changelog.mdx index 5fe4b37bf..6ca2f175b 100644 --- a/website/i18n/zh-Hans/docusaurus-plugin-content-pages/changelog.mdx +++ b/website/i18n/zh-Hans/docusaurus-plugin-content-pages/changelog.mdx @@ -13,6 +13,37 @@ ## [即将发布] +## v2.4.0 - 2022-03-08 + +### 新增 +- 为 [Windows](/docs/reference/options#webviewgpuisdisabled) 和 [Linux 添加了WebView GPU 加速选项](/docs/reference/options#webviewgpupolicy). @Lyimmi 在 [PR](https://github.com/wailsapp/wails/pull/2266) 中添加 +- Added `EnableFraudulentWebsiteDetection` option to opt-in to scan services for fraudulent content, such as malware or phishing attempts. Older releases had the scan services per default activated. @stffabi 在 [PR](https://github.com/wailsapp/wails/pull/2269) 中添加 +- Allow an [AssetServer Middleware](/docs/reference/options#middleware) to specify the `Content-Type` of a file served by the [Assets](/docs/reference/options#assets-1) `fs.FS`. @stffabi 在 [PR](https://github.com/wailsapp/wails/pull/2286) 中添加 +- The AssetServer now detects more mimetypes by extension, e.g. `.mjs`. Added by @stffabi in [PR](https://github.com/wailsapp/wails/pull/2391) + +### 变更 +- Improved fullscreen mode for frameless window on Windows. Changed by @stffabi in [PR](https://github.com/wailsapp/wails/pull/2279), [PR](https://github.com/wailsapp/wails/pull/2288) and [PR](https://github.com/wailsapp/wails/pull/2299) +- On Windows unmaximising a window has no effect anymore when the window is in fullscreen mode, this makes it consistent with e.g. macOS. @stffabi 在 [PR](https://github.com/wailsapp/wails/pull/2279) 中修改 +- Frameless resize now sets the cursor on documentElement, otherwise resizing cursor won't be shown outside of the body rectangle. @stffabi 在 [PR](https://github.com/wailsapp/wails/pull/2289) 中修改 +- Improved the `--wails-draggable` experience to be more reactive. Changed by @stffabi in [PR](https://github.com/wailsapp/wails/pull/2302) +- NSIS template now installs the shortcuts for all users and not only for the current user. Changed by @stffabi in [PR](https://github.com/wailsapp/wails/pull/2373) + +### 修复 +- Fixed failing build hooks when `build/bin` was missing. @Lyimmi 在 [PR](https://github.com/wailsapp/wails/pull/2273) 中修复 +- Fixed fullscreen mode for frameless window on Windows to fully cover the taskbar when changing into fullscreen from maximised state. @stffabi 在 [PR](https://github.com/wailsapp/wails/pull/2279) 中修复 +- Fixed set window background colour on Windows when setting the colour via runtime. @stffabi 在 [PR](https://github.com/wailsapp/wails/pull/2279) 中修复 +- Fixed the showing of a white border around a fullscreen window when `DisableWindowIcon` is active on Windows. Fixed by @stffabi in [PR](https://github.com/wailsapp/wails/pull/2299) +- Fixed the sometimes lagging drag experience with `--wails-draggable` on Windows. Fixed by @stffabi in [PR](https://github.com/wailsapp/wails/pull/2302) +- Fixed applying the default arch to platform flag in wails cli. If only a `GOOS` has been supplied as platform flag e.g. `wails build --platform windows` the current architecture wasn't applied and the build failed. Fixed by @stffabi in [PR](https://github.com/wailsapp/wails/pull/2309) +- Fixed a segfault on opening the inspector on older macOS versions. Fixed by @stffabi in [PR](https://github.com/wailsapp/wails/pull/2397) +- Fixed the macos single architecture builds not respecting an output file name specified with the '-o' flag. Fixed by @gwynforthewyn in [PR](https://github.com/wailsapp/wails/pull/2358) +- Fixed `undo`/`redo` on macOS. Fixed by @stffabi in [PR](https://github.com/wailsapp/wails/pull/2430) +- Fixed `Events*` runtime functions in JavaScript not returning the function to cancel the watcher. Fixed by @zllovesuki in [PR](https://github.com/wailsapp/wails/pull/2434) +- Fixed AppOptions merging defaults when a custom logger is used. Fixed by @stffabi in [PR](https://github.com/wailsapp/wails/pull/2452) +- Fixed race condition and missing unlock of mutex in events handling. Fixed by @stffabi in [PR](https://github.com/wailsapp/wails/pull/2453) + +## v2.3.0 - 2022-12-29 + ### 新增 - 添加 `OpenInspectorOnStartup` 到调试选项以允许在调试模式下启动应用程序期间打开 Web 检查器。 由 @stffabi 在这个 [PR](https://github.com/wailsapp/wails/pull/2080) 中添加。 - 在 macOS 上的 `wails doctor`,现在也会显示安装的 Xcode 版本。 由 @stffabi 在这个 [PR](https://github.com/wailsapp/wails/pull/2089) 中添加。 @@ -21,15 +52,36 @@ - `WindowSetAlwaysOnTop` 方法现在在 JS 运行时中公开。 由 @gotid 在这个 [PR](https://github.com/wailsapp/wails/pull/2128) 中修复。 - [AssetServer](/docs/reference/options#资产服务器) 现在支持在请求目录时提供 index.html 文件。 由 @stffabi 在这个 [PR](https://github.com/wailsapp/wails/pull/2110) 中添加 - 在 Linux 上添加了对 WebKit2GTK 2.36+ 的支持。 这为 [AssetServer](/docs/reference/options#资产服务器) 带来了额外的特性,例如对 HTTP 方法和标头的支持。 该应用程序必须使用 Go 构建标签 `webkit2_36` 进行编译,以激活对此功能的支持。 这也会将您应用程序的 WebKit2GTK 最低要求提高到 2.36。 由 @stffabi 在这个 [PR](https://github.com/wailsapp/wails/pull/2151) 中修复 +- Added support for file input selection on macOS. Added by @stffabi in [PR](https://github.com/wailsapp/wails/pull/2209) +- Added support Request/Response streaming of the AssetServer on macOS. Added by @stffabi in [PR](https://github.com/wailsapp/wails/pull/2219) +- Added request path checks for the AssetServer. Added by @stffabi in [PR](https://github.com/wailsapp/wails/pull/2235) +- Added new App Store guide. Added by @achhabra2 in [PR](https://github.com/wailsapp/wails/pull/2142) +- Added extra libwebkit check for dnf package manager (required for latest Fedora). Fixed by @NullCode1337 in this [PR](https://github.com/wailsapp/wails/pull/2218) +- Added new `-nomodsync` flag to disable the automatic syncing of the `go.mod` file. Added by @leaanthony in [PR](https://github.com/wailsapp/wails/pull/2215) +- Added support for adding prefix and postfix text to generated Typescript classes. 由 @OlegGulevskyy 在这个 [PR](https://github.com/wailsapp/wails/pull/2101) 中修复。 +- Added reference to NSIS as optional dependency. Added by @acheong08 in [PR](https://github.com/wailsapp/wails/pull/2070) +- Added Korean translation for the website. Added by @cybertramp in [PR](https://github.com/wailsapp/wails/pull/2093) ### 修复 - wails dev 中 `noreload` 标志未被应用。 由 @stffabi 在这个 [PR](https://github.com/wailsapp/wails/pull/2081) 中修复。 - `build/bin` 文件夹在 `wails dev` 模式下每次重新加载时都会复制自身。 由 @OlegGulevskyy 在这个 [PR](https://github.com/wailsapp/wails/pull/2103) 中修复。 - 防止 Windows 上的无边框窗口底部出现细白线。 由 @stffabi 在这个 [PR](https://github.com/wailsapp/wails/pull/2111) 中修复。 - 更好的 Linux 信号处理。 由 @leaanthony 在这个 [PR](https://github.com/wailsapp/wails/pull/2152) 中修复 +- Running the docs locally was broken due to mandatory crowdin token requirement. Fixed by @OlegGulevskyy in this [PR](https://github.com/wailsapp/wails/pull/2231) +- Generated typescript for Go functions that returned a single error was incorrect. Fixed by @ATenderholt in this [PR](https://github.com/wailsapp/wails/pull/2247) +- The right mouse event was not being raised correctly for Linux. Fixed by @leaanthony in this [PR](https://github.com/wailsapp/wails/pull/2190) +- Remove extra spaces in Wails version when querying `go.mod`. Fixed by @matholt in this [PR](https://github.com/wailsapp/wails/pull/2197) +- Fix go tests failure on Mac. Fixed by @avengerweb in this [PR](https://github.com/wailsapp/wails/pull/2187) +- Fix go test errors. Fixed by @misitebao & @avengerweb in [these](https://github.com/wailsapp/wails/pull/2169) [PRs](https://github.com/wailsapp/wails/pull/2187) +- Added `WindowSetAlwaysOnTop` to the JS runtime. 由 @gotid 在这个 [PR](https://github.com/wailsapp/wails/pull/2128) 中修复。 +- Fixed obfuscated flag typo in docs. Fixed by @ckilb in [PR](https://github.com/wailsapp/wails/pull/2102) +- Fixed React Hash Router link in docs. Fixed by @marvinhosea in [PR](https://github.com/wailsapp/wails/pull/2050) ### 变更 - 如果在资产中找不到 `index.html` 并且验证资产服务器选项,则改进错误消息。 由 @stffabi 在这个 [PR](https://github.com/wailsapp/wails/pull/2110) 中变更 +- Promote the Go WebView2Loader from experimental to stable. This means now per default all Wails build use the new loader introduced with `v2.2.0`. The old loader remains usable with build tag `native_webview2loader` for the next few releases. Changed by @stffabi in this [PR](https://github.com/wailsapp/wails/pull/2199) +- Refactored CLI. Changed by @leaanthony in this [PR](https://github.com/wailsapp/wails/pull/2123) +- Remove unreachable code. Changed by @tmclane in this [PR](https://github.com/wailsapp/wails/pull/2182) ## v2.2.0 - 2022-11-09 diff --git a/website/i18n/zh-Hans/docusaurus-plugin-content-pages/community-guide.mdx b/website/i18n/zh-Hans/docusaurus-plugin-content-pages/community-guide.mdx index 28d56c455..09b529cc8 100644 --- a/website/i18n/zh-Hans/docusaurus-plugin-content-pages/community-guide.mdx +++ b/website/i18n/zh-Hans/docusaurus-plugin-content-pages/community-guide.mdx @@ -15,7 +15,7 @@ Wails 用户量正在以惊人的速度增长,如果您正在阅读本文, ### 寻求帮助 - [GitHub](https://github.com/wailsapp/wails) - 如果您有要报告的错误或要请求的功能,这就是 GitHub Issue 的用途。 请遵守每个存储库的问题模板中指定的规则。 -- [Slack](https://gophers.slack.com/messages/CJ4P9F7MZ/) - Wails 开发人员实时见面和聊天的地方。 +- [Discord](https://discord.gg/JDdSxwjhGf) - Wails 开发人员实时会面和聊天的地方。 - [QQ Group(中文)](https://qm.qq.com/cgi-bin/qm/qr?k=PmIURne5hFGNd7QWzW5qd6FV-INEjNJv&jump_from=webapi) - 中文开发者交流的 Wails 群组,在这里你可以得到其他开发者的帮助。 ### 探索生态系统 @@ -131,9 +131,9 @@ Wails 项目的默认文档是英文文档。 我们使用“crowdin”工具将 ### 帮助其他人 -为项目做出贡献的一个好方法是帮助遇到困难的其他人。 这通常在 Wails slack 频道上报告为 Issue 或消息。 即使只是澄清问题也能真正有所帮助。 有时,当一个问题被讨论并得到解决时,我们会根据它创建一个指南来帮助面临同样问题的其他人。 +为项目做出贡献的一个重要途径是帮助遇到困难的其他人。 这通常在 Wails Discord 服务器上以票证或消息的形式报告。 即使只是澄清问题也能真正有所帮助。 有时,当一个问题被讨论并得到解决时,我们会根据它创建一个指南来帮助面临同样问题的其他人。 -要加入 Wails slack 频道,请在 [此处](https://gophers.slack.com/join/shared_invite/zt-197vymgt3-sJt4oyakb6nqlVKjXTyeVw#/shared-invite/email) 接受邀请并通过点击 [此链接](https://gophers.slack.com/?redir=%2Fmessages%2FCJ4P9F7MZ%2F) 加入我们的频道。 +加入 Wails Discord 服务器,请点击 [这里](https://discord.gg/JDdSxwjhGf)。 :::note diff --git a/website/i18n/zh-Hans/docusaurus-plugin-content-pages/credits.mdx b/website/i18n/zh-Hans/docusaurus-plugin-content-pages/credits.mdx index 40e0d5704..078a77d21 100644 --- a/website/i18n/zh-Hans/docusaurus-plugin-content-pages/credits.mdx +++ b/website/i18n/zh-Hans/docusaurus-plugin-content-pages/credits.mdx @@ -4,10 +4,11 @@ - [Stffabi](https://github.com/stffabi) - 技术领导、 开发者和维护者 - [Misite Bao](https://github.com/misitebao) - 文档向导,中文翻译,Windows 测试,常规 Bug 发现 - [Travis McLane](https://github.com/tmclane) - 处理交叉编译相关工作, MacOS 平台的测试 -- [Byron Chris](https://github.com/bh90210) - Linux 发行版指导,Linux 平台的测试 +- [Lyimmi](https://github.com/Lyimmi) - Linux 的所有事物 ## 赞助商 + ## 贡献者 @@ -15,172 +16,244 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Lea Anthony

💻 🤔 🎨 🖋 💡 🧑‍🏫 📆 🔧 🐛 📝 🚧 📦 👀 💬 🔬 ⚠️ 📢 👀 📖

stffabi

💻 🤔 🎨 🐛 🚧 📦 👀 💬 🔬 👀 📖 ⚠️

Travis McLane

💻 🔬 📦 🤔 🐛 👀 ⚠️ 💬 📖

Misite Bao

📖 🌍 🔬 🚧

Byron Chris

💻 🔬 🚧 🐛 👀 ⚠️ 💬 🤔 🎨 📦 🚇

konez2k

💻 📦 🤔

Dario Emerson

💻 🐛 🤔 ⚠️

Ian M. Jones

💻 🐛 🤔 ⚠️ 👀 📦

marktohark

💻

Ryan H

💻

Cody Bentley

💻 📦 🤔 💵

Florent

💻 🐛

Alexander Hudek

💻 💵

Tim Kipp

💻

Altynbek Kaliakbarov

💻

Nikolai Zimmermann

💻

k-muchmore

💻

Snider

💻 🤔 📖 💵

Albert Sun

💻 ⚠️

Ariel

💻 🐛

Ilgıt Yıldırım

💻 🐛 💵

Toyam Cox

💻 📦 🐛

hi019

💻 🐛

Arthur Wiebe

💻 🐛

Balakrishna Prasad Ganne

💻

BillBuilt

💻 📦 🤔 💬 💵

Eng Zer Jun

🚧 💻

LGiki

📖

Lontten

📖

Lukas Crepaz

💻 🐛

Marcus Crane

🐛 📖 💵

Qais Patankar

📖

Wakeful-Cloud

💻 🐛

Zámbó, Levente

💻 📦 🐛 ⚠️

Ironpark

💻 🤔

mondy

💻 📖

Benjamin Ryan

🐛

fallendusk

📦 💻

Mat Ryer

💻 🤔 🐛

Abtin

💻 🐛

Adrian Lanzafame

📦 💻

Aleksey Polyakov

🐛 💻

Alexander Matviychuk

💻 📦

AlienRecall

💻 📦

Aman

📖

Amaury Tobias Quiroz

💻 🐛

Andreas Wenk

📖

Antonio Stanković

💻 📦

Arpit Jain

📖

Austin Schey

💻 🐛

Benjamin Thomas

💻 📦 🤔

Bertram Truong

💻 🐛

Blake Bourque

📖

Denis

📖

diogox

💻 📦

Dmitry Gomzyakov

💻 📦

Edward Browncross

💻

Elie Grenon

💻

Florian Didron

💻 🐛 🤔 ⚠️ 👀 📦

GargantuaX

💵

Igor Minin

💻 🐛

Jae-Sung Lee

💻 🤔

Jarek

💻 📦

Junker

📖

Kris Raney

💻 🐛

Luken

📖

Mark Stenglein

💻 🐛

buddyabaddon

💻

MikeSchaap

💻 🐛

NYSSEN Michaël

💻 🐛

Nan0

💻 🤔 ⚠️ 👀

oskar

📖

Pierre Joye

💻 🐛 🤔 ⚠️

Reuben Thomas-Davis

💻 🐛

Robin

💻 🐛

Sebastian Bauer

💻 🤔 ⚠️ 👀 💬

Sidharth Rathi

📖 🐛

Sithembiso Khumalo

💻 🐛

Soheib El-Harrache

💻 🐛 💵

Sophie Au

💻 🐛

Stefanos Papadakis

💻 🐛

Steve Chung

💻 🐛

Timm Ortloff

📖

Tom

💻

Valentin Trinqué

💻 🐛

mattn

💻 🐛

bearsh

💻 🤔 📖

chenxiao

💻 🤔 📖

fengweiqiang

💻 📦

flin7

📖

fred21O4

📖

gardc

📖

rayshoo

📖

Ishiyama Yuzuki

💻 🐛

佰阅

💻

刀刀

📖 🐛

归位

💻 🐛

skamensky

💻 🤔 📖

dependabot[bot]

💻 🚧

Damian Sieradzki

💵

John Dorman

💵

Ian Sinnott

💵

Arden Shackelford

💵

Bironou

💵

CharlieGo_

💵

overnet

💵

jugglingjsons

💵

Selvin Ortiz

💵

ZanderCodes

💵

Michael Voronov

💵

letheanVPN

💵

Tai Groot

💵

easy-web-it

💵

Michael Olson

💵

EdenNetwork Italia

💵

ondoki

💵

QuEST Rail LLC

💵

Gilgameš

💵

Bernt-Johan Bergshaven

💵

Liam Bigelow

💵

Nick Arellano

💵

Frank Chiarulli Jr.

💵

Tyler

💵

Trea Hauet

💵

Kent 'picat' Gruber

💵

tc-hib

💵

Antonio

📖

MyNameIsAres

📖

Maicarons J

📖

kiddov

📖 💵 ⚠️ 🤔

Nicolas Coutin

💵

Parvin Eyvazov

📖
Lea Anthony
Lea Anthony

💻 🤔 🎨 🖋 💡 🧑‍🏫 📆 🔧 🐛 📝 🚧 📦 👀 💬 🔬 ⚠️ 📢 👀 📖
stffabi
stffabi

💻 🤔 🎨 🐛 🚧 📦 👀 💬 🔬 👀 📖 ⚠️
Travis McLane
Travis McLane

💻 🔬 📦 🤔 🐛 👀 ⚠️ 💬 📖
Misite Bao
Misite Bao

📖 🌍 🔬 🚧
Byron Chris
Byron Chris

💻 🔬 🚧 🐛 👀 ⚠️ 💬 🤔 🎨 📦 🚇
konez2k
konez2k

💻 📦 🤔
Dario Emerson
Dario Emerson

💻 🐛 🤔 ⚠️
Ian M. Jones
Ian M. Jones

💻 🐛 🤔 ⚠️ 👀 📦
marktohark
marktohark

💻
Ryan H
Ryan H

💻
Cody Bentley
Cody Bentley

💻 📦 🤔 💵
Florent
Florent

💻 🐛
Alexander Hudek
Alexander Hudek

💻 💵
Tim Kipp
Tim Kipp

💻
Altynbek Kaliakbarov
Altynbek Kaliakbarov

💻
Nikolai Zimmermann
Nikolai Zimmermann

💻
k-muchmore
k-muchmore

💻
Snider
Snider

💻 🤔 📖 💵
Albert Sun
Albert Sun

💻 ⚠️
Ariel
Ariel

💻 🐛
Ilgıt Yıldırım
Ilgıt Yıldırım

💻 🐛 💵
Toyam Cox
Toyam Cox

💻 📦 🐛
hi019
hi019

💻 🐛
Arthur Wiebe
Arthur Wiebe

💻 🐛
Balakrishna Prasad Ganne
Balakrishna Prasad Ganne

💻
BillBuilt
BillBuilt

💻 📦 🤔 💬 💵
Eng Zer Jun
Eng Zer Jun

🚧 💻
LGiki
LGiki

📖
Lontten
Lontten

📖
Lukas Crepaz
Lukas Crepaz

💻 🐛
Marcus Crane
Marcus Crane

🐛 📖 💵
Qais Patankar
Qais Patankar

📖
Wakeful-Cloud
Wakeful-Cloud

💻 🐛
Zámbó, Levente
Zámbó, Levente

💻 📦 🐛 ⚠️
Ironpark
Ironpark

💻 🤔
mondy
mondy

💻 📖
Benjamin Ryan
Benjamin Ryan

🐛
fallendusk
fallendusk

📦 💻
Mat Ryer
Mat Ryer

💻 🤔 🐛
Abtin
Abtin

💻 🐛
Adrian Lanzafame
Adrian Lanzafame

📦 💻
Aleksey Polyakov
Aleksey Polyakov

🐛 💻
Alexander Matviychuk
Alexander Matviychuk

💻 📦
AlienRecall
AlienRecall

💻 📦
Aman
Aman

📖
Amaury Tobias Quiroz
Amaury Tobias Quiroz

💻 🐛
Andreas Wenk
Andreas Wenk

📖
Antonio Stanković
Antonio Stanković

💻 📦
Arpit Jain
Arpit Jain

📖
Austin Schey
Austin Schey

💻 🐛
Benjamin Thomas
Benjamin Thomas

💻 📦 🤔
Bertram Truong
Bertram Truong

💻 🐛
Blake Bourque
Blake Bourque

📖
Denis
Denis

📖
diogox
diogox

💻 📦
Dmitry Gomzyakov
Dmitry Gomzyakov

💻 📦
Edward Browncross
Edward Browncross

💻
Elie Grenon
Elie Grenon

💻
Florian Didron
Florian Didron

💻 🐛 🤔 ⚠️ 👀 📦
GargantuaX
GargantuaX

💵
Igor Minin
Igor Minin

💻 🐛
Jae-Sung Lee
Jae-Sung Lee

💻 🤔
Jarek
Jarek

💻 📦
Junker
Junker

📖
Kris Raney
Kris Raney

💻 🐛
Luken
Luken

📖
Mark Stenglein
Mark Stenglein

💻 🐛
buddyabaddon
buddyabaddon

💻
MikeSchaap
MikeSchaap

💻 🐛
NYSSEN Michaël
NYSSEN Michaël

💻 🐛
Nan0
Nan0

💻 🤔 ⚠️ 👀
oskar
oskar

📖
Pierre Joye
Pierre Joye

💻 🐛 🤔 ⚠️
Reuben Thomas-Davis
Reuben Thomas-Davis

💻 🐛
Robin
Robin

💻 🐛
Sebastian Bauer
Sebastian Bauer

💻 🤔 ⚠️ 👀 💬
Sidharth Rathi
Sidharth Rathi

📖 🐛
Sithembiso Khumalo
Sithembiso Khumalo

💻 🐛
Soheib El-Harrache
Soheib El-Harrache

💻 🐛 💵
Sophie Au
Sophie Au

💻 🐛
Stefanos Papadakis
Stefanos Papadakis

💻 🐛
Steve Chung
Steve Chung

💻 🐛
Timm Ortloff
Timm Ortloff

📖
Tom
Tom

💻
Valentin Trinqué
Valentin Trinqué

💻 🐛
mattn
mattn

💻 🐛
bearsh
bearsh

💻 🤔 📖
chenxiao
chenxiao

💻 🤔 📖
fengweiqiang
fengweiqiang

💻 📦
flin7
flin7

📖
fred21O4
fred21O4

📖
gardc
gardc

📖
rayshoo
rayshoo

📖
Ishiyama Yuzuki
Ishiyama Yuzuki

💻 🐛
佰阅
佰阅

💻
刀刀
刀刀

📖 🐛
归位
归位

💻 🐛
skamensky
skamensky

💻 🤔 📖
dependabot[bot]
dependabot[bot]

💻 🚧
Damian Sieradzki
Damian Sieradzki

💵
John Dorman
John Dorman

💵
Ian Sinnott
Ian Sinnott

💵
Arden Shackelford
Arden Shackelford

💵
Bironou
Bironou

💵
CharlieGo_
CharlieGo_

💵
overnet
overnet

💵
jugglingjsons
jugglingjsons

💵
Selvin Ortiz
Selvin Ortiz

💵
ZanderCodes
ZanderCodes

💵
Michael Voronov
Michael Voronov

💵
letheanVPN
letheanVPN

💵
Tai Groot
Tai Groot

💵
easy-web-it
easy-web-it

💵
Michael Olson
Michael Olson

💵
EdenNetwork Italia
EdenNetwork Italia

💵
ondoki
ondoki

💵
QuEST Rail LLC
QuEST Rail LLC

💵
Gilgameš
Gilgameš

💵
Bernt-Johan Bergshaven
Bernt-Johan Bergshaven

💵
Liam Bigelow
Liam Bigelow

💵
Nick Arellano
Nick Arellano

💵
Frank Chiarulli Jr.
Frank Chiarulli Jr.

💵
Tyler
Tyler

💵
Trea Hauet
Trea Hauet

💵
Kent 'picat' Gruber
Kent 'picat' Gruber

💵
tc-hib
tc-hib

💵
Antonio
Antonio

📖
MyNameIsAres
MyNameIsAres

📖
Maicarons J
Maicarons J

📖
kiddov
kiddov

📖 💵 ⚠️ 🤔
Nicolas Coutin
Nicolas Coutin

💵
Parvin Eyvazov
Parvin Eyvazov

📖
github-actions[bot]
github-actions[bot]

💻
Oleg Gulevskyy
Oleg Gulevskyy

💻 📖 🚧 📦
Richard Guay
Richard Guay

📖
Adam Tenderholt
Adam Tenderholt

💻
JulioDRF
JulioDRF

💻
Scott Opell
Scott Opell

💻
Vadim Shchepotev
Vadim Shchepotev

💻
Will Andrews
Will Andrews

💻
Gwyn
Gwyn

💻 👀 💬 🔬
希嘉嘉
希嘉嘉

💻
ALMAS
ALMAS

💻
Alex
Alex

💻
Arif Ali
Arif Ali

💻
Artur Siarohau
Artur Siarohau

💻
Binyamin Aron Green
Binyamin Aron Green

💻
Brian Dwyer
Brian Dwyer

💻
Christian Kilb
Christian Kilb

💻
David Florness
David Florness

📖
David Walton
David Walton

💻
Debdut Karmakar
Debdut Karmakar

💻
Dieter Zhu
Dieter Zhu

💻
Fredrik Holmqvist
Fredrik Holmqvist

💻
Giovanni Palma
Giovanni Palma

💻
Hao
Hao

💻
Igor Sementsov
Igor Sementsov

💻
Johannes Haseitl
Johannes Haseitl

💻
Joshua Hull
Joshua Hull

💻
Joshua Mangiola
Joshua Mangiola

📖
Kevin MacMartin
Kevin MacMartin

💻
Liang Li
Liang Li

💻
Marvin Collins Hosea
Marvin Collins Hosea

💻
Matt Holt
Matt Holt

💻
Niklas
Niklas

💻
Andy Hsu
Andy Hsu

💻
NullCode
NullCode

💻
Oussama Sethoum
Oussama Sethoum

💻
ParkourLiu
ParkourLiu

💻
Rachel Chen
Rachel Chen

💻
Rob Nice
Rob Nice

💻
Ryo TAGAMI
Ryo TAGAMI

💻
Sam Hennessy
Sam Hennessy

💻
Sean
Sean

💻
Sean Gosiaco
Sean Gosiaco

💻
Eric P Sheets
Eric P Sheets

💻
Supian M
Supian M

💻
Watson-Sei
Watson-Sei

💻 📖
Yuki Shindo
Yuki Shindo

💻
cuigege
cuigege

💻
cybertramp
cybertramp

💻
hiroki yagi
hiroki yagi

💻
imgbot[bot]
imgbot[bot]

💻
juju
juju

💻
Michael Eatherly
Michael Eatherly

💻
tk
tk

💻
allcontributors[bot]
allcontributors[bot]

📖
wander
wander

📖
@@ -193,6 +266,7 @@ - [John Chadwick](https://github.com/jchv) - 他在 [go-webview2](https://github.com/jchv/go-webview2) 和 [go-winloader](https://github.com/jchv/go-winloader) 方面的出色工作使 Windows 版本成为可能。 - [Tad Vizbaras](https://github.com/tadvi) - 他的 winc 项目是走向纯粹的 Go Wails 的第一步。 - [Mat Ryer](https://github.com/matryer) - 寻求建议和支持。 +- [Byron Chris](https://github.com/bh90210) - 他对此项目的长期贡献。 - [Dustin Krysak](https://wiki.ubuntu.com/bashfulrobot) - 提供了巨大的的支持和反馈。 - [Justen Walker](https://github.com/justenwalker/) - 帮助解决 v2 上线要解决的问题。 - [Wang, Chi](https://github.com/patr0nus/) - DeskGap 项目对 Wails v2 的方向产生了巨大影响。 diff --git a/website/i18n/zh-Hans/docusaurus-theme-classic/footer.json b/website/i18n/zh-Hans/docusaurus-theme-classic/footer.json index 85b1d8c3d..0cb98ac63 100644 --- a/website/i18n/zh-Hans/docusaurus-theme-classic/footer.json +++ b/website/i18n/zh-Hans/docusaurus-theme-classic/footer.json @@ -50,5 +50,9 @@ "link.item.label.Awesome": { "message": "Awesome", "description": "The label of footer link with label=Awesome linking to https://github.com/wailsapp/awesome-wails" + }, + "link.item.label.Discord": { + "message": "Discord", + "description": "The label of footer link with label=Discord linking to https://discord.gg/JDdSxwjhGf" } }