komga/komga-webui
Hosted Weblate c07d4f0695 i18n(webui): translated using Weblate (Japanese)
Currently translated at 100.0% (841 of 841 strings)

Co-authored-by: unagisann <noyamanorinngo5648@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/komga/webui/ja/
Translation: komga/webui
2026-10-12 13:46:29 +08:00
..
public feat(webui): add maskable icons for Android 2026-10-12 11:44:33 +08:00
src i18n(webui): translated using Weblate (Japanese) 2026-10-12 13:46:29 +08:00
tests/unit feat(webui): epubreader 2023-11-28 12:28:39 +08:00
.browserslistrc fix(webui): update browserlist 2023-12-04 13:41:35 +08:00
.editorconfig build(webui): fix .editorconfig 2023-06-27 17:07:32 +08:00
.env feat(webui): support for translations 2021-02-16 12:15:42 +08:00
.env.development chore: change webui dev port to 8080 2023-06-29 10:02:50 +08:00
.eslintrc.js build(webui): normalize eslint config for unit tests 2023-09-13 15:15:33 +08:00
.gitignore first version of the webui 2019-10-04 16:45:33 +08:00
.nvmrc build(webui): move .nvmrc per project 2026-08-04 15:44:04 +08:00
babel.config.js refactor(webui): set eslint comma-dangle for multi-line 2020-03-24 11:04:00 +08:00
fork-ts-checker.config.js build(webui): increase memory for ForkTsCheckerWebpackPlugin 2023-10-04 12:02:03 +08:00
jest.config.js build(webui): upgrade vue cli to v5 2023-09-13 15:14:28 +08:00
package-lock.json deps(webui): bump compression from 1.8.1 to 1.8.2 in /komga-webui 2026-10-08 14:44:00 +08:00
package.json deps(webui): bump qs from 6.15.2 to 6.16.0 in /komga-webui 2026-09-03 10:21:08 +08:00
postcss.config.js refactor(webui): set eslint comma-dangle for multi-line 2020-03-24 11:04:00 +08:00
README.md docs: update documentation 2026-08-04 15:44:04 +08:00
tsconfig.json build(webui): fix typescript config and issues after upgrading 2023-09-13 15:37:30 +08:00
vue.config.js build(webui): fix hot reload 2025-01-22 15:37:13 +08:00

Requirements

  • Nodejs (check the komga-webui/.nvmrc file)

Frontend development

You can run a live development server with npm run serve. The dev server will override the URL to connect to localhost:8080, so you can also run gradle bootRun to have a backend running, serving the API requests. The frontend will be loaded from localhost:8081.

Make sure you start the backend with the dev profile, else the frontend requests will be denied because of CORS.

Base URL

The generated bundle is server by Apache Tomcat when running Spring. By default the site is hosted at /, but if server.servlet-context-path is set, the base URL can be dynamic.

The base URL needs to be set correctly so the web app works:

  • in the API client
  • in the Vue Router, to properly handle the web history
  • in the generated bundle, to load other files (js/css/images)
  1. Webpack is configured with __webpack_public_path__ to change the path dynamically.

  2. To handle the dynamic path in index.html, a Gradle task webuiCopyIndex modifies index.html to duplicate href, src and content attributes as Thymeleaf variants.

    For example the following:

    <script
        type="module"
        crossorigin
        src="/assets/index-xEUJQodq.js"
    ></script>
    <link
        rel="stylesheet"
        crossorigin
        href="/assets/index-CQqFNa2f.css"
    />
    

    will be transformed to:

    <script
        type="module"
        crossorigin
        src="/assets/index-xEUJQodq.js"
        th:src="@{/assets/index-xEUJQodq.js}"
    ></script>
    <link
        rel="stylesheet"
        crossorigin
        href="/assets/index-CQqFNa2f.css"
        th:href="@{/assets/index-CQqFNa2f.css}"
    />
    

    In Thymeleaf, @{} will prepend the path with the context path dynamically when serving index.html.

  3. when the index.html is served by the IndexController, a baseUrl attribute is injected, which contains the servlet context path (by default /, but could be /komga for example)

  4. the index.html contains a Thymeleaf script block that will be processed when serving the page, effectively injecting the baseUrl value into window.ressourceBaseUrl.

  5. window.ressourceBaseUrl is subsequently used in Typescript code to set the base URL