CINXE.COM

Translation projects - Weblate 5.11 documentation

<!doctype html> <html class="no-js" lang="en" data-content_root="../"> <head><meta charset="utf-8"/> <meta name="viewport" content="width=device-width,initial-scale=1"/> <meta name="color-scheme" content="light dark"><meta name="viewport" content="width=device-width, initial-scale=1" /> <meta property="og:title" content="Translation projects" /> <meta property="og:type" content="website" /> <meta property="og:url" content="https://docs.weblate.org/en/latest/admin/projects.html" /> <meta property="og:site_name" content="Weblate" /> <meta property="og:description" content="Translation organization: Weblate organizes translatable VCS content of project/components into a tree-like structure. You can additionally organize components within a project using categories. Th..." /> <meta property="og:image:width" content="1146" /> <meta property="og:image:height" content="600" /> <meta property="og:image" content="https://docs.weblate.org/en/latest/_images/social_previews/summary_admin_projects_abc7b8f5.png" /> <meta property="og:image:alt" content="Translation organization: Weblate organizes translatable VCS content of project/components into a tree-like structure. You can additionally organize componen..." /> <meta name="description" content="Translation organization: Weblate organizes translatable VCS content of project/components into a tree-like structure. You can additionally organize components within a project using categories. Th..." /> <meta name="twitter:card" content="summary_large_image" /> <meta property="fb:app_id" content="741121112629028" /> <meta property="fb:page_id" content="371217713079025" /> <meta name="twitter:site" content="@WeblateOrg" /> <link rel="index" title="Index" href="../genindex.html" /><link rel="search" title="Search" href="../search.html" /><link rel="next" title="Language definitions" href="languages.html" /><link rel="prev" title="Access control" href="access.html" /> <link rel="canonical" href="https://docs.weblate.org/en/latest/admin/projects.html" /> <!-- Generated with Sphinx 8.2.3 and Furo 2024.08.06 --> <title>Translation projects - Weblate 5.11 documentation</title> <link rel="stylesheet" type="text/css" href="../_static/pygments.css?v=8f2a1f02" /> <link rel="stylesheet" type="text/css" href="../_static/styles/furo.css?v=354aac6f" /> <link rel="stylesheet" type="text/css" href="../_static/graphviz.css?v=4ae1632d" /> <link rel="stylesheet" type="text/css" href="../_static/copybutton.css?v=76b2166b" /> <link rel="stylesheet" type="text/css" href="../_static/styles/furo-extensions.css?v=302659d7" /> <link rel="stylesheet" type="text/css" href="https://weblate.org/static/vendor/font-source/source-sans-3.css" /> <link rel="stylesheet" type="text/css" href="https://weblate.org/static/vendor/font-source/source-code-pro.css" /> <style> body { --color-code-background: #f8f8f8; --color-code-foreground: black; --font-stack: "Source Sans 3", sans-serif; --font-stack--monospace: "Source Code Pro", monospace; --color-brand-primary: #1fa385; --color-brand-content: #1fa385; } @media not print { body[data-theme="dark"] { --color-code-background: #202020; --color-code-foreground: #d0d0d0; --font-stack: "Source Sans 3", sans-serif; --font-stack--monospace: "Source Code Pro", monospace; --color-brand-primary: #1fa385; --color-brand-content: #1fa385; } @media (prefers-color-scheme: dark) { body:not([data-theme="light"]) { --color-code-background: #202020; --color-code-foreground: #d0d0d0; --font-stack: "Source Sans 3", sans-serif; --font-stack--monospace: "Source Code Pro", monospace; --color-brand-primary: #1fa385; --color-brand-content: #1fa385; } } } </style><script async type="text/javascript" src="/_/static/javascript/readthedocs-addons.js"></script><meta name="readthedocs-project-slug" content="weblate" /><meta name="readthedocs-version-slug" content="latest" /><meta name="readthedocs-resolver-filename" content="/admin/projects.html" /><meta name="readthedocs-http-status" content="200" /></head> <body> <script> document.body.dataset.theme = localStorage.getItem("theme") || "auto"; </script> <svg xmlns="http://www.w3.org/2000/svg" style="display: none;"> <symbol id="svg-toc" viewBox="0 0 24 24"> <title>Contents</title> <svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 1024 1024"> <path d="M408 442h480c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8H408c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm-8 204c0 4.4 3.6 8 8 8h480c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8H408c-4.4 0-8 3.6-8 8v56zm504-486H120c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 632H120c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM115.4 518.9L271.7 642c5.8 4.6 14.4.5 14.4-6.9V388.9c0-7.4-8.5-11.5-14.4-6.9L115.4 505.1a8.74 8.74 0 0 0 0 13.8z"/> </svg> </symbol> <symbol id="svg-menu" viewBox="0 0 24 24"> <title>Menu</title> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather-menu"> <line x1="3" y1="12" x2="21" y2="12"></line> <line x1="3" y1="6" x2="21" y2="6"></line> <line x1="3" y1="18" x2="21" y2="18"></line> </svg> </symbol> <symbol id="svg-arrow-right" viewBox="0 0 24 24"> <title>Expand</title> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather-chevron-right"> <polyline points="9 18 15 12 9 6"></polyline> </svg> </symbol> <symbol id="svg-sun" viewBox="0 0 24 24"> <title>Light mode</title> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1" stroke-linecap="round" stroke-linejoin="round" class="feather-sun"> <circle cx="12" cy="12" r="5"></circle> <line x1="12" y1="1" x2="12" y2="3"></line> <line x1="12" y1="21" x2="12" y2="23"></line> <line x1="4.22" y1="4.22" x2="5.64" y2="5.64"></line> <line x1="18.36" y1="18.36" x2="19.78" y2="19.78"></line> <line x1="1" y1="12" x2="3" y2="12"></line> <line x1="21" y1="12" x2="23" y2="12"></line> <line x1="4.22" y1="19.78" x2="5.64" y2="18.36"></line> <line x1="18.36" y1="5.64" x2="19.78" y2="4.22"></line> </svg> </symbol> <symbol id="svg-moon" viewBox="0 0 24 24"> <title>Dark mode</title> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1" stroke-linecap="round" stroke-linejoin="round" class="icon-tabler-moon"> <path stroke="none" d="M0 0h24v24H0z" fill="none" /> <path d="M12 3c.132 0 .263 0 .393 0a7.5 7.5 0 0 0 7.92 12.446a9 9 0 1 1 -8.313 -12.454z" /> </svg> </symbol> <symbol id="svg-sun-with-moon" viewBox="0 0 24 24"> <title>Auto light/dark, in light mode</title> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1" stroke-linecap="round" stroke-linejoin="round" class="icon-custom-derived-from-feather-sun-and-tabler-moon"> <path style="opacity: 50%" d="M 5.411 14.504 C 5.471 14.504 5.532 14.504 5.591 14.504 C 3.639 16.319 4.383 19.569 6.931 20.352 C 7.693 20.586 8.512 20.551 9.25 20.252 C 8.023 23.207 4.056 23.725 2.11 21.184 C 0.166 18.642 1.702 14.949 4.874 14.536 C 5.051 14.512 5.231 14.5 5.411 14.5 L 5.411 14.504 Z"/> <line x1="14.5" y1="3.25" x2="14.5" y2="1.25"/> <line x1="14.5" y1="15.85" x2="14.5" y2="17.85"/> <line x1="10.044" y1="5.094" x2="8.63" y2="3.68"/> <line x1="19" y1="14.05" x2="20.414" y2="15.464"/> <line x1="8.2" y1="9.55" x2="6.2" y2="9.55"/> <line x1="20.8" y1="9.55" x2="22.8" y2="9.55"/> <line x1="10.044" y1="14.006" x2="8.63" y2="15.42"/> <line x1="19" y1="5.05" x2="20.414" y2="3.636"/> <circle cx="14.5" cy="9.55" r="3.6"/> </svg> </symbol> <symbol id="svg-moon-with-sun" viewBox="0 0 24 24"> <title>Auto light/dark, in dark mode</title> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1" stroke-linecap="round" stroke-linejoin="round" class="icon-custom-derived-from-feather-sun-and-tabler-moon"> <path d="M 8.282 7.007 C 8.385 7.007 8.494 7.007 8.595 7.007 C 5.18 10.184 6.481 15.869 10.942 17.24 C 12.275 17.648 13.706 17.589 15 17.066 C 12.851 22.236 5.91 23.143 2.505 18.696 C -0.897 14.249 1.791 7.786 7.342 7.063 C 7.652 7.021 7.965 7 8.282 7 L 8.282 7.007 Z"/> <line style="opacity: 50%" x1="18" y1="3.705" x2="18" y2="2.5"/> <line style="opacity: 50%" x1="18" y1="11.295" x2="18" y2="12.5"/> <line style="opacity: 50%" x1="15.316" y1="4.816" x2="14.464" y2="3.964"/> <line style="opacity: 50%" x1="20.711" y1="10.212" x2="21.563" y2="11.063"/> <line style="opacity: 50%" x1="14.205" y1="7.5" x2="13.001" y2="7.5"/> <line style="opacity: 50%" x1="21.795" y1="7.5" x2="23" y2="7.5"/> <line style="opacity: 50%" x1="15.316" y1="10.184" x2="14.464" y2="11.036"/> <line style="opacity: 50%" x1="20.711" y1="4.789" x2="21.563" y2="3.937"/> <circle style="opacity: 50%" cx="18" cy="7.5" r="2.169"/> </svg> </symbol> <symbol id="svg-pencil" viewBox="0 0 24 24"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1" stroke-linecap="round" stroke-linejoin="round" class="icon-tabler-pencil-code"> <path d="M4 20h4l10.5 -10.5a2.828 2.828 0 1 0 -4 -4l-10.5 10.5v4" /> <path d="M13.5 6.5l4 4" /> <path d="M20 21l2 -2l-2 -2" /> <path d="M17 17l-2 2l2 2" /> </svg> </symbol> <symbol id="svg-eye" viewBox="0 0 24 24"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1" stroke-linecap="round" stroke-linejoin="round" class="icon-tabler-eye-code"> <path stroke="none" d="M0 0h24v24H0z" fill="none" /> <path d="M10 12a2 2 0 1 0 4 0a2 2 0 0 0 -4 0" /> <path d="M11.11 17.958c-3.209 -.307 -5.91 -2.293 -8.11 -5.958c2.4 -4 5.4 -6 9 -6c3.6 0 6.6 2 9 6c-.21 .352 -.427 .688 -.647 1.008" /> <path d="M20 21l2 -2l-2 -2" /> <path d="M17 17l-2 2l2 2" /> </svg> </symbol> </svg> <input type="checkbox" class="sidebar-toggle" name="__navigation" id="__navigation"> <input type="checkbox" class="sidebar-toggle" name="__toc" id="__toc"> <label class="overlay sidebar-overlay" for="__navigation"> <div class="visually-hidden">Hide navigation sidebar</div> </label> <label class="overlay toc-overlay" for="__toc"> <div class="visually-hidden">Hide table of contents sidebar</div> </label> <a class="skip-to-content muted-link" href="#furo-main-content">Skip to content</a> <div class="page"> <header class="mobile-header"> <div class="header-left"> <label class="nav-overlay-icon" for="__navigation"> <div class="visually-hidden">Toggle site navigation sidebar</div> <i class="icon"><svg><use href="#svg-menu"></use></svg></i> </label> </div> <div class="header-center"> <a href="../index.html"><div class="brand">Weblate 5.11 documentation</div></a> </div> <div class="header-right"> <div class="theme-toggle-container theme-toggle-header"> <button class="theme-toggle"> <div class="visually-hidden">Toggle Light / Dark / Auto color theme</div> <svg class="theme-icon-when-auto-light"><use href="#svg-sun-with-moon"></use></svg> <svg class="theme-icon-when-auto-dark"><use href="#svg-moon-with-sun"></use></svg> <svg class="theme-icon-when-dark"><use href="#svg-moon"></use></svg> <svg class="theme-icon-when-light"><use href="#svg-sun"></use></svg> </button> </div> <label class="toc-overlay-icon toc-header-icon" for="__toc"> <div class="visually-hidden">Toggle table of contents sidebar</div> <i class="icon"><svg><use href="#svg-toc"></use></svg></i> </label> </div> </header> <aside class="sidebar-drawer"> <div class="sidebar-container"> <div class="sidebar-sticky"><a class="sidebar-brand" href="../index.html"> <div class="sidebar-logo-container"> <img class="sidebar-logo" src="../_static/logo-text.svg" alt="Logo"/> </div> </a><form class="sidebar-search-container" method="get" action="../search.html" role="search"> <input class="sidebar-search" placeholder="Search" name="q" aria-label="Search"> <input type="hidden" name="check_keywords" value="yes"> <input type="hidden" name="area" value="default"> </form> <div id="searchbox"></div><div class="sidebar-scroll"><div class="sidebar-tree"> <p class="caption" role="heading"><span class="caption-text">User docs</span></p> <ul> <li class="toctree-l1"><a class="reference internal" href="../user/basic.html">Weblate basics</a></li> <li class="toctree-l1"><a class="reference internal" href="../user/profile.html">Registration and user profile</a></li> <li class="toctree-l1"><a class="reference internal" href="../user/translating.html">Translating using Weblate</a></li> <li class="toctree-l1"><a class="reference internal" href="../user/files.html">Downloading and uploading translations</a></li> <li class="toctree-l1"><a class="reference internal" href="../user/glossary.html">Glossary</a></li> <li class="toctree-l1"><a class="reference internal" href="../user/checks.html">Checks and fixups</a></li> <li class="toctree-l1"><a class="reference internal" href="../user/search.html">Searching</a></li> <li class="toctree-l1"><a class="reference internal" href="../workflows.html">Translation workflows</a></li> <li class="toctree-l1"><a class="reference internal" href="../faq.html">Frequently Asked Questions</a></li> <li class="toctree-l1"><a class="reference internal" href="../vcs.html">Version control integration</a></li> <li class="toctree-l1"><a class="reference internal" href="../api.html">Weblate’s REST API</a></li> <li class="toctree-l1"><a class="reference internal" href="../wlc.html">Weblate Client</a></li> <li class="toctree-l1"><a class="reference internal" href="../python.html">Weblate’s Python API</a></li> </ul> <p class="caption" role="heading"><span class="caption-text">Application developer guide</span></p> <ul> <li class="toctree-l1"><a class="reference internal" href="../devel/starting.html">Starting with internationalization</a></li> <li class="toctree-l1"><a class="reference internal" href="../devel/integration.html">Integrating with Weblate</a></li> <li class="toctree-l1"><a class="reference internal" href="../devel/gettext.html">Translating software using GNU gettext</a></li> <li class="toctree-l1"><a class="reference internal" href="../devel/sphinx.html">Translating documentation using Sphinx</a></li> <li class="toctree-l1"><a class="reference internal" href="../devel/html.html">Translating HTML and JavaScript using Weblate CDN</a></li> <li class="toctree-l1"><a class="reference internal" href="../devel/third-party.html">Localization libraries and packages</a></li> <li class="toctree-l1"><a class="reference internal" href="../devel/alerts.html">Translation component alerts</a></li> <li class="toctree-l1"><a class="reference internal" href="../devel/community.html">Building a translators community</a></li> <li class="toctree-l1"><a class="reference internal" href="../devel/translations.html">Managing translations</a></li> <li class="toctree-l1"><a class="reference internal" href="../devel/review.html">Reviewing strings</a></li> <li class="toctree-l1"><a class="reference internal" href="../devel/share.html">Promoting the translation</a></li> <li class="toctree-l1"><a class="reference internal" href="../devel/reporting.html">Translation progress reporting</a></li> </ul> <p class="caption" role="heading"><span class="caption-text">Administrator docs</span></p> <ul class="current"> <li class="toctree-l1 has-children"><a class="reference internal" href="install.html">Configuration instructions</a><input class="toctree-checkbox" id="toctree-checkbox-1" name="toctree-checkbox-1" role="switch" type="checkbox"/><label for="toctree-checkbox-1"><div class="visually-hidden">Toggle navigation of Configuration instructions</div><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul> <li class="toctree-l2"><a class="reference internal" href="install/docker.html">Installing using Docker</a></li> <li class="toctree-l2"><a class="reference internal" href="install/venv-debian.html">Installing on Debian and Ubuntu</a></li> <li class="toctree-l2"><a class="reference internal" href="install/venv-suse.html">Installing on SUSE and openSUSE</a></li> <li class="toctree-l2"><a class="reference internal" href="install/venv-redhat.html">Installing on RedHat, Fedora and CentOS</a></li> <li class="toctree-l2"><a class="reference internal" href="install/venv-macos.html">Installing on macOS</a></li> <li class="toctree-l2"><a class="reference internal" href="install/source.html">Installing from sources</a></li> <li class="toctree-l2"><a class="reference internal" href="install/openshift.html">Installing on OpenShift</a></li> <li class="toctree-l2"><a class="reference internal" href="install/kubernetes.html">Installing on Kubernetes</a></li> </ul> </li> <li class="toctree-l1"><a class="reference internal" href="deployments.html">Weblate deployments</a></li> <li class="toctree-l1"><a class="reference internal" href="upgrade.html">Upgrading Weblate</a></li> <li class="toctree-l1"><a class="reference internal" href="backup.html">Backing up and moving Weblate</a></li> <li class="toctree-l1"><a class="reference internal" href="auth.html">Authentication</a></li> <li class="toctree-l1"><a class="reference internal" href="auth.html#two-factor-authentication">Two-factor authentication</a></li> <li class="toctree-l1"><a class="reference internal" href="access.html">Access control</a></li> <li class="toctree-l1 current current-page"><a class="current reference internal" href="#">Translation projects</a></li> <li class="toctree-l1"><a class="reference internal" href="languages.html">Language definitions</a></li> <li class="toctree-l1"><a class="reference internal" href="continuous.html">Continuous localization</a></li> <li class="toctree-l1"><a class="reference internal" href="licensing.html">Licensing translations</a></li> <li class="toctree-l1"><a class="reference internal" href="translating.html">Translation process</a></li> <li class="toctree-l1"><a class="reference internal" href="checks.html">Checks and fixups</a></li> <li class="toctree-l1"><a class="reference internal" href="machine.html">Automatic suggestions</a></li> <li class="toctree-l1"><a class="reference internal" href="addons.html">Add-ons</a></li> <li class="toctree-l1"><a class="reference internal" href="memory.html">Translation Memory</a></li> <li class="toctree-l1"><a class="reference internal" href="config.html">Configuration</a></li> <li class="toctree-l1"><a class="reference internal" href="sample.html">Sample configuration</a></li> <li class="toctree-l1"><a class="reference internal" href="management.html">Management commands</a></li> <li class="toctree-l1"><a class="reference internal" href="announcements.html">Announcements</a></li> <li class="toctree-l1"><a class="reference internal" href="componentlists.html">Component Lists</a></li> <li class="toctree-l1"><a class="reference internal" href="optionals.html">Optional Weblate modules</a></li> <li class="toctree-l1"><a class="reference internal" href="customize.html">Customizing Weblate</a></li> <li class="toctree-l1"><a class="reference internal" href="admin.html">Management interface</a></li> <li class="toctree-l1"><a class="reference internal" href="support.html">Getting support for Weblate</a></li> <li class="toctree-l1"><a class="reference internal" href="../legal.html">Legal documents</a></li> </ul> <p class="caption" role="heading"><span class="caption-text">Contributor docs</span></p> <ul> <li class="toctree-l1"><a class="reference internal" href="../contributing/index.html">Contributing to Weblate</a></li> <li class="toctree-l1"><a class="reference internal" href="../contributing/communication.html">Weblate Contributor Communication Guidelines</a></li> <li class="toctree-l1"><a class="reference internal" href="../contributing/start.html">Starting contributing code to Weblate</a></li> <li class="toctree-l1"><a class="reference internal" href="../contributing/code.html">Weblate source code</a></li> <li class="toctree-l1"><a class="reference internal" href="../contributing/debugging.html">Debugging Weblate</a></li> <li class="toctree-l1"><a class="reference internal" href="../contributing/internals.html">Weblate internals</a></li> <li class="toctree-l1"><a class="reference internal" href="../contributing/addons.html">Developing add-ons</a></li> <li class="toctree-l1"><a class="reference internal" href="../contributing/frontend.html">Weblate frontend</a></li> <li class="toctree-l1"><a class="reference internal" href="../contributing/issues.html">Reporting issues in Weblate</a></li> <li class="toctree-l1"><a class="reference internal" href="../contributing/tests.html">Weblate testsuite and continuous integration</a></li> <li class="toctree-l1"><a class="reference internal" href="../contributing/schemas.html">Data schemas</a></li> <li class="toctree-l1"><a class="reference internal" href="../contributing/release.html">Releasing Weblate</a></li> <li class="toctree-l1"><a class="reference internal" href="../contributing/security.html">Security and privacy</a></li> <li class="toctree-l1"><a class="reference internal" href="../contributing/modules.html">Contributing to Weblate modules</a></li> <li class="toctree-l1"><a class="reference internal" href="../contributing/about.html">About Weblate</a></li> <li class="toctree-l1"><a class="reference internal" href="../contributing/license.html">License</a></li> <li class="toctree-l1"><a class="reference internal" href="../contributing/trademark.html">Weblate Trademark Guidelines</a></li> </ul> <p class="caption" role="heading"><span class="caption-text">File formats</span></p> <ul> <li class="toctree-l1"><a class="reference internal" href="../formats.html">Localization file formats</a></li> <li class="toctree-l1"><a class="reference internal" href="../formats/android.html">Android string resources</a></li> <li class="toctree-l1"><a class="reference internal" href="../formats/apple.html">Apple iOS strings</a></li> <li class="toctree-l1"><a class="reference internal" href="../formats/appstore.html">App store metadata files</a></li> <li class="toctree-l1"><a class="reference internal" href="../formats/arb.html">ARB File</a></li> <li class="toctree-l1"><a class="reference internal" href="../formats/csv.html">CSV files</a></li> <li class="toctree-l1"><a class="reference internal" href="../formats/dtd.html">DTD files</a></li> <li class="toctree-l1"><a class="reference internal" href="../formats/excel.html">Excel Open XML</a></li> <li class="toctree-l1"><a class="reference internal" href="../formats/flatxml.html">Flat XML files</a></li> <li class="toctree-l1"><a class="reference internal" href="../formats/fluent.html">Fluent format</a></li> <li class="toctree-l1"><a class="reference internal" href="../formats/formatjs.html">Format.JS JSON file</a></li> <li class="toctree-l1"><a class="reference internal" href="../formats/gettext.html">GNU gettext PO (Portable Object)</a></li> <li class="toctree-l1"><a class="reference internal" href="../formats/go-i18n.html">go-i18n JSON files</a></li> <li class="toctree-l1"><a class="reference internal" href="../formats/gotext.html">gotext JSON files</a></li> <li class="toctree-l1"><a class="reference internal" href="../formats/gwt.html">GWT properties</a></li> <li class="toctree-l1"><a class="reference internal" href="../formats/html.html">HTML files</a></li> <li class="toctree-l1"><a class="reference internal" href="../formats/i18next.html">i18next JSON files</a></li> <li class="toctree-l1"><a class="reference internal" href="../formats/idml.html">IDML Format</a></li> <li class="toctree-l1"><a class="reference internal" href="../formats/ini.html">INI translations</a></li> <li class="toctree-l1"><a class="reference internal" href="../formats/innosetup.html">Inno Setup INI translations</a></li> <li class="toctree-l1"><a class="reference internal" href="../formats/java.html">Java properties</a></li> <li class="toctree-l1"><a class="reference internal" href="../formats/joomla.html">Joomla translations</a></li> <li class="toctree-l1"><a class="reference internal" href="../formats/json.html">JSON files</a></li> <li class="toctree-l1"><a class="reference internal" href="../formats/laravel.html">Laravel PHP strings</a></li> <li class="toctree-l1"><a class="reference internal" href="../formats/markdown.html">Markdown files</a></li> <li class="toctree-l1"><a class="reference internal" href="../formats/mi18n.html">draggable/i18n lang files</a></li> <li class="toctree-l1"><a class="reference internal" href="../formats/moko.html">Mobile Kotlin resources</a></li> <li class="toctree-l1"><a class="reference internal" href="../formats/odf.html">OpenDocument Format</a></li> <li class="toctree-l1"><a class="reference internal" href="../formats/php.html">PHP strings</a></li> <li class="toctree-l1"><a class="reference internal" href="../formats/qt.html">Qt Linguist .ts</a></li> <li class="toctree-l1"><a class="reference internal" href="../formats/resourcedict.html">ResourceDictionary files</a></li> <li class="toctree-l1"><a class="reference internal" href="../formats/resx.html">.NET resource files (RESX, RESW)</a></li> <li class="toctree-l1"><a class="reference internal" href="../formats/ruby.html">Ruby YAML files</a></li> <li class="toctree-l1"><a class="reference internal" href="../formats/stringsdict.html">Stringsdict format</a></li> <li class="toctree-l1"><a class="reference internal" href="../formats/subtitles.html">Subtitle files</a></li> <li class="toctree-l1"><a class="reference internal" href="../formats/tbx.html">TermBase eXchange format</a></li> <li class="toctree-l1"><a class="reference internal" href="../formats/txt.html">Text files</a></li> <li class="toctree-l1"><a class="reference internal" href="../formats/webextension.html">WebExtension JSON</a></li> <li class="toctree-l1"><a class="reference internal" href="../formats/winrc.html">Windows RC files</a></li> <li class="toctree-l1"><a class="reference internal" href="../formats/xliff.html">XLIFF</a></li> <li class="toctree-l1"><a class="reference internal" href="../formats/yaml.html">YAML files</a></li> </ul> <p class="caption" role="heading"><span class="caption-text">Change history</span></p> <ul> <li class="toctree-l1"><a class="reference internal" href="../changes.html">Weblate 5.11</a></li> <li class="toctree-l1"><a class="reference internal" href="../changes.html#weblate-5-10-4">Weblate 5.10.4</a></li> <li class="toctree-l1"><a class="reference internal" href="../changes.html#weblate-5-10-3">Weblate 5.10.3</a></li> <li class="toctree-l1"><a class="reference internal" href="../changes.html#weblate-5-10-2">Weblate 5.10.2</a></li> <li class="toctree-l1"><a class="reference internal" href="../changes.html#weblate-5-10-1">Weblate 5.10.1</a></li> <li class="toctree-l1"><a class="reference internal" href="../changes.html#weblate-5-10">Weblate 5.10</a></li> <li class="toctree-l1"><a class="reference internal" href="../changes.html#weblate-5-9-2">Weblate 5.9.2</a></li> <li class="toctree-l1"><a class="reference internal" href="../changes.html#weblate-5-9-1">Weblate 5.9.1</a></li> <li class="toctree-l1"><a class="reference internal" href="../changes.html#weblate-5-9">Weblate 5.9</a></li> <li class="toctree-l1"><a class="reference internal" href="../changes.html#weblate-5-8-4">Weblate 5.8.4</a></li> <li class="toctree-l1"><a class="reference internal" href="../changes.html#weblate-5-8-3">Weblate 5.8.3</a></li> <li class="toctree-l1"><a class="reference internal" href="../changes.html#weblate-5-8-2">Weblate 5.8.2</a></li> <li class="toctree-l1"><a class="reference internal" href="../changes.html#weblate-5-8-1">Weblate 5.8.1</a></li> <li class="toctree-l1"><a class="reference internal" href="../changes.html#weblate-5-8">Weblate 5.8</a></li> <li class="toctree-l1"><a class="reference internal" href="../changes.html#weblate-5-7-2">Weblate 5.7.2</a></li> <li class="toctree-l1"><a class="reference internal" href="../changes.html#weblate-5-7-1">Weblate 5.7.1</a></li> <li class="toctree-l1"><a class="reference internal" href="../changes.html#weblate-5-7">Weblate 5.7</a></li> <li class="toctree-l1"><a class="reference internal" href="../changes.html#weblate-5-6-2">Weblate 5.6.2</a></li> <li class="toctree-l1"><a class="reference internal" href="../changes.html#weblate-5-6-1">Weblate 5.6.1</a></li> <li class="toctree-l1"><a class="reference internal" href="../changes.html#weblate-5-6">Weblate 5.6</a></li> <li class="toctree-l1"><a class="reference internal" href="../changes.html#weblate-5-5-5">Weblate 5.5.5</a></li> <li class="toctree-l1"><a class="reference internal" href="../changes.html#weblate-5-5-4">Weblate 5.5.4</a></li> <li class="toctree-l1"><a class="reference internal" href="../changes.html#weblate-5-5-3">Weblate 5.5.3</a></li> <li class="toctree-l1"><a class="reference internal" href="../changes.html#weblate-5-5-2">Weblate 5.5.2</a></li> <li class="toctree-l1"><a class="reference internal" href="../changes.html#weblate-5-5-1">Weblate 5.5.1</a></li> <li class="toctree-l1"><a class="reference internal" href="../changes.html#weblate-5-5">Weblate 5.5</a></li> <li class="toctree-l1"><a class="reference internal" href="../changes.html#weblate-5-4-3">Weblate 5.4.3</a></li> <li class="toctree-l1"><a class="reference internal" href="../changes.html#weblate-5-4-2">Weblate 5.4.2</a></li> <li class="toctree-l1"><a class="reference internal" href="../changes.html#weblate-5-4-1">Weblate 5.4.1</a></li> <li class="toctree-l1"><a class="reference internal" href="../changes.html#weblate-5-4">Weblate 5.4</a></li> <li class="toctree-l1"><a class="reference internal" href="../changes.html#weblate-5-3-1">Weblate 5.3.1</a></li> <li class="toctree-l1"><a class="reference internal" href="../changes.html#weblate-5-3">Weblate 5.3</a></li> <li class="toctree-l1"><a class="reference internal" href="../changes.html#weblate-5-2-1">Weblate 5.2.1</a></li> <li class="toctree-l1"><a class="reference internal" href="../changes.html#weblate-5-2">Weblate 5.2</a></li> <li class="toctree-l1"><a class="reference internal" href="../changes.html#weblate-5-1-1">Weblate 5.1.1</a></li> <li class="toctree-l1"><a class="reference internal" href="../changes.html#weblate-5-1">Weblate 5.1</a></li> <li class="toctree-l1"><a class="reference internal" href="../changes.html#weblate-5-0-2">Weblate 5.0.2</a></li> <li class="toctree-l1"><a class="reference internal" href="../changes.html#weblate-5-0-1">Weblate 5.0.1</a></li> <li class="toctree-l1"><a class="reference internal" href="../changes.html#weblate-5-0">Weblate 5.0</a></li> <li class="toctree-l1"><a class="reference internal" href="../changes/v4.html">Weblate 4.x series</a></li> <li class="toctree-l1"><a class="reference internal" href="../changes/v3.html">Weblate 3.x series</a></li> <li class="toctree-l1"><a class="reference internal" href="../changes/v2.html">Weblate 2.x series</a></li> <li class="toctree-l1"><a class="reference internal" href="../changes/v1.html">Weblate 1.x series</a></li> <li class="toctree-l1"><a class="reference internal" href="../changes/v0.html">Weblate 0.x series</a></li> </ul> <p class="caption" role="heading"><span class="caption-text">Indices and tables</span></p> <ul> <li class="toctree-l1"><a class="reference internal" href="../genindex.html">Index</a></li> <li class="toctree-l1"><a class="reference internal" href="../py-modindex.html">Module Index</a></li> </ul> </div> <div id="furo-sidebar-ad-placement" class="flat" data-ea-publisher="readthedocs" data-ea-type="readthedocs-sidebar" data-ea-manual="true" ></div> </div> </div> </div> </aside> <div class="main"> <div class="content"> <div class="article-container"> <a href="#" class="back-to-top muted-link"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"> <path d="M13 20h-2V8l-5.5 5.5-1.42-1.42L12 4.16l7.92 7.92-1.42 1.42L13 8v12z"></path> </svg> <span>Back to top</span> </a> <div class="content-icon-container"> <div class="view-this-page"> <a class="muted-link" href="https://github.com/WeblateOrg/weblate/blob/main/docs/admin/projects.rst?plain=true" title="View this page"> <svg><use href="#svg-eye"></use></svg> <span class="visually-hidden">View this page</span> </a> </div><div class="edit-this-page"> <a class="muted-link" href="https://github.com/WeblateOrg/weblate/edit/main/docs/admin/projects.rst" title="Edit this page"> <svg><use href="#svg-pencil"></use></svg> <span class="visually-hidden">Edit this page</span> </a> </div><div class="theme-toggle-container theme-toggle-content"> <button class="theme-toggle"> <div class="visually-hidden">Toggle Light / Dark / Auto color theme</div> <svg class="theme-icon-when-auto-light"><use href="#svg-sun-with-moon"></use></svg> <svg class="theme-icon-when-auto-dark"><use href="#svg-moon-with-sun"></use></svg> <svg class="theme-icon-when-dark"><use href="#svg-moon"></use></svg> <svg class="theme-icon-when-light"><use href="#svg-sun"></use></svg> </button> </div> <label class="toc-overlay-icon toc-content-icon" for="__toc"> <div class="visually-hidden">Toggle table of contents sidebar</div> <i class="icon"><svg><use href="#svg-toc"></use></svg></i> </label> </div> <article role="main" id="furo-main-content"> <section id="translation-projects"> <h1>Translation projects<a class="headerlink" href="#translation-projects" title="Link to this heading">¶</a></h1> <section id="translation-organization"> <h2>Translation organization<a class="headerlink" href="#translation-organization" title="Link to this heading">¶</a></h2> <p>Weblate organizes translatable VCS content of project/components into a tree-like structure. You can additionally organize components within a project using categories.</p> <ul class="simple"> <li><p>The bottom level object is <a class="reference internal" href="#project"><span class="std std-ref">Project configuration</span></a>, which should hold all translations belonging together (for example translation of an application in several versions and/or accompanying documentation).</p></li> <li><p>The middle level is optionally created by <a class="reference internal" href="#category"><span class="std std-ref">Category</span></a>. The categories can be nested to achieve more complex structure.</p></li> <li><p>On the level above, <a class="reference internal" href="#component"><span class="std std-ref">Component configuration</span></a>, which is actually the component to translate, you define the VCS repository to use, and the mask of files to translate.</p></li> <li><p>Above <a class="reference internal" href="#component"><span class="std std-ref">Component configuration</span></a> there are individual translations, handled automatically by Weblate as translation files (which match <a class="reference internal" href="#component-filemask"><span class="std std-ref">File mask</span></a> defined in <a class="reference internal" href="#component"><span class="std std-ref">Component configuration</span></a>) appear in the VCS repository.</p></li> </ul> <p>Weblate supports a wide range of translation formats (both bilingual and monolingual ones) supported by Translate Toolkit, see <a class="reference internal" href="../formats.html#formats"><span class="std std-ref">Localization file formats</span></a>.</p> <div class="admonition note"> <p class="admonition-title">Note</p> <p>You can share cloned VCS repositories using <a class="reference internal" href="../vcs.html#internal-urls"><span class="std std-ref">Weblate internal URLs</span></a>. Using this feature is highly recommended when you have many components sharing the same VCS. It improves performance and decreases required disk space.</p> </div> </section> <section id="adding-translation-projects-and-components"> <span id="adding-projects"></span><h2>Adding translation projects and components<a class="headerlink" href="#adding-translation-projects-and-components" title="Link to this heading">¶</a></h2> <p>Based on your permissions, new translation projects and components can be created. It is always permitted for users with the <span class="guilabel">Add new projects</span> permission, and if your instance uses billing (e.g. like <a class="reference external" href="https://hosted.weblate.org/">https://hosted.weblate.org/</a> see <a class="reference internal" href="optionals.html#billing"><span class="std std-ref">Billing</span></a>), you can also create those based on your plans allowance from the user account that manages billing.</p> <div class="admonition hint"> <p class="admonition-title">Hint</p> <p>To grant every user permission to create new projects create new <a class="reference internal" href="access.html#autoteam"><span class="std std-ref">Automatic team assignments</span></a> for the <span class="guilabel">Project creators</span> team.</p> </div> <p>You can view your current billing plan on a separate page:</p> <img alt="../_images/user-billing.webp" src="../_images/user-billing.webp" /> <p>The project creation can be initiated from there, or using the menu in the navigation bar, filling in basic info about the translation project to complete addition of it:</p> <img alt="../_images/user-add-project.webp" src="../_images/user-add-project.webp" /> <p>After creating the project, you are taken directly to the project page:</p> <img alt="../_images/user-add-project-done.webp" src="../_images/user-add-project-done.webp" /> <p>Creating a new translation component can be initiated via a single click there. The process of creating a component is multi-staged and automatically detects most translation parameters. There are several approaches to creating component:</p> <dl class="simple"> <dt>From version control</dt><dd><p>Creates component from remote version control repository.</p> </dd> <dt>From existing component</dt><dd><p>Creates additional component to existing one by choosing different files.</p> </dd> <dt>Additional branch</dt><dd><p>Creates additional component to existing one, just for different branch.</p> </dd> <dt>Upload translations files</dt><dd><p>Upload translation files to Weblate in case you do not have version control or do not want to integrate it with Weblate. You can later update the content using the web interface or <a class="reference internal" href="../api.html#api"><span class="std std-ref">Weblate’s REST API</span></a>.</p> </dd> <dt>Translate document</dt><dd><p>Upload single document or translation file and translate that.</p> </dd> <dt>Start from scratch</dt><dd><p>Create blank translation project and add strings manually.</p> </dd> </dl> <p>Once you have existing translation components, you can also easily add new ones for additional files or branches using same repository.</p> <p>First you need to fill in name and repository location:</p> <img alt="../_images/user-add-component-init.webp" src="../_images/user-add-component-init.webp" /> <p>On the next page, you are presented with a list of discovered translatable resources:</p> <img alt="../_images/user-add-component-discovery.webp" src="../_images/user-add-component-discovery.webp" /> <p>As a last step, you review the translation component info and fill in optional details:</p> <img alt="../_images/user-add-component.webp" src="../_images/user-add-component.webp" /> <div class="admonition seealso"> <p class="admonition-title">See also</p> <p><a class="reference internal" href="admin.html#admin-interface"><span class="std std-ref">The Django admin interface</span></a>, <a class="reference internal" href="#project"><span class="std std-ref">Project configuration</span></a>, <a class="reference internal" href="#component"><span class="std std-ref">Component configuration</span></a></p> </div> </section> <section id="project-configuration"> <span id="project"></span><h2>Project configuration<a class="headerlink" href="#project-configuration" title="Link to this heading">¶</a></h2> <p>Create a translation project and then add a new component for translation in it. The project is like a shelf, in which real translations are stacked. All components in the same project share suggestions and their dictionary; the translations are also automatically propagated through all components in a single project (unless turned off in the component configuration), see <a class="reference internal" href="memory.html#memory"><span class="std std-ref">Translation Memory</span></a>.</p> <div class="admonition seealso"> <p class="admonition-title">See also</p> <p><a class="reference internal" href="../devel/integration.html"><span class="doc">Integrating with Weblate</span></a></p> </div> <p>These basic attributes set up and inform translators of a project:</p> <section id="project-name"> <span id="id1"></span><h3>Project name<a class="headerlink" href="#project-name" title="Link to this heading">¶</a></h3> <p>Verbose project name, used to display the project name.</p> <div class="admonition seealso"> <p class="admonition-title">See also</p> <p><a class="reference internal" href="config.html#std-setting-PROJECT_NAME_RESTRICT_RE"><code class="xref std std-setting docutils literal notranslate"><span class="pre">PROJECT_NAME_RESTRICT_RE</span></code></a></p> </div> </section> <section id="url-slug"> <span id="project-slug"></span><h3>URL slug<a class="headerlink" href="#url-slug" title="Link to this heading">¶</a></h3> <p>Project name suitable for URLs.</p> </section> <section id="project-website"> <span id="project-web"></span><h3>Project website<a class="headerlink" href="#project-website" title="Link to this heading">¶</a></h3> <p>URL where translators can find more info about the project.</p> <p>This is a required parameter unless turned off by <a class="reference internal" href="config.html#std-setting-WEBSITE_REQUIRED"><code class="xref std std-setting docutils literal notranslate"><span class="pre">WEBSITE_REQUIRED</span></code></a>.</p> <div class="admonition seealso"> <p class="admonition-title">See also</p> <p><a class="reference internal" href="config.html#std-setting-PROJECT_WEB_RESTRICT_HOST"><code class="xref std std-setting docutils literal notranslate"><span class="pre">PROJECT_WEB_RESTRICT_HOST</span></code></a>, <a class="reference internal" href="config.html#std-setting-PROJECT_WEB_RESTRICT_NUMERIC"><code class="xref std std-setting docutils literal notranslate"><span class="pre">PROJECT_WEB_RESTRICT_NUMERIC</span></code></a>, <a class="reference internal" href="config.html#std-setting-PROJECT_WEB_RESTRICT_RE"><code class="xref std std-setting docutils literal notranslate"><span class="pre">PROJECT_WEB_RESTRICT_RE</span></code></a></p> </div> </section> <section id="translation-instructions"> <span id="project-instructions"></span><h3>Translation instructions<a class="headerlink" href="#translation-instructions" title="Link to this heading">¶</a></h3> <p>Text describing localization process in the project, and any other information useful for translators. Markdown can be used for text formatting or inserting links.</p> </section> <section id="set-language-team-header"> <span id="project-set-language-team"></span><h3>Set “Language-Team” header<a class="headerlink" href="#set-language-team-header" title="Link to this heading">¶</a></h3> <p>Whether Weblate should manage the <code class="docutils literal notranslate"><span class="pre">Language-Team</span></code> header (this is a <a class="reference internal" href="../formats/gettext.html#gettext"><span class="std std-ref">GNU gettext PO (Portable Object)</span></a> only feature right now).</p> </section> <section id="use-shared-translation-memory"> <span id="project-use-shared-tm"></span><h3>Use shared translation memory<a class="headerlink" href="#use-shared-translation-memory" title="Link to this heading">¶</a></h3> <p>Whether to use shared translation memory, see <a class="reference internal" href="memory.html#shared-tm"><span class="std std-ref">Shared translation memory</span></a> for more details.</p> <p>The default value can be changed by <a class="reference internal" href="config.html#std-setting-DEFAULT_SHARED_TM"><code class="xref std std-setting docutils literal notranslate"><span class="pre">DEFAULT_SHARED_TM</span></code></a>.</p> </section> <section id="contribute-to-shared-translation-memory"> <span id="project-contribute-shared-tm"></span><h3>Contribute to shared translation memory<a class="headerlink" href="#contribute-to-shared-translation-memory" title="Link to this heading">¶</a></h3> <p>Whether to contribute to shared translation memory, see <a class="reference internal" href="memory.html#shared-tm"><span class="std std-ref">Shared translation memory</span></a> for more details.</p> <p>This also affects whether the project can be used as source for <a class="reference internal" href="continuous.html#automatic-translation"><span class="std std-ref">Automatic translation</span></a>.</p> <p>The default value can be changed by <a class="reference internal" href="config.html#std-setting-DEFAULT_SHARED_TM"><code class="xref std std-setting docutils literal notranslate"><span class="pre">DEFAULT_SHARED_TM</span></code></a>.</p> <div class="admonition note"> <p class="admonition-title">Note</p> <p>This option is unavailable on Hosted Weblate, it is toggled together with <a class="reference internal" href="#project-use-shared-tm"><span class="std std-ref">Use shared translation memory</span></a>.</p> </div> </section> <section id="access-control"> <span id="project-access-control"></span><h3>Access control<a class="headerlink" href="#access-control" title="Link to this heading">¶</a></h3> <p>Configure per project access control, see <a class="reference internal" href="access.html#acl"><span class="std std-ref">Project access control</span></a> for more details.</p> <p>The default value can be changed by <a class="reference internal" href="config.html#std-setting-DEFAULT_ACCESS_CONTROL"><code class="xref std std-setting docutils literal notranslate"><span class="pre">DEFAULT_ACCESS_CONTROL</span></code></a>.</p> </section> <section id="enforced-two-factor-authentication"> <span id="project-enforced-2fa"></span><h3>Enforced two-factor authentication<a class="headerlink" href="#enforced-two-factor-authentication" title="Link to this heading">¶</a></h3> <div class="versionadded"> <p><span class="versionmodified added">Added in version 5.7.</span></p> </div> <p>Enforce <a class="reference internal" href="auth.html#fa"><span class="std std-ref">Two-factor authentication</span></a> for all contributors. Users won’t be allowed to perform any operations within the project without having it configured.</p> </section> <section id="enable-reviews"> <span id="project-translation-review"></span><h3>Enable reviews<a class="headerlink" href="#enable-reviews" title="Link to this heading">¶</a></h3> <p>Enable review workflow for translations, see <a class="reference internal" href="../workflows.html#reviews"><span class="std std-ref">Dedicated reviewers</span></a>.</p> <div class="admonition seealso"> <p class="admonition-title">See also</p> <p><a class="reference internal" href="../workflows.html#workflow-customization"><span class="std std-ref">Workflow customization</span></a></p> </div> </section> <section id="enable-source-reviews"> <span id="project-source-review"></span><h3>Enable source reviews<a class="headerlink" href="#enable-source-reviews" title="Link to this heading">¶</a></h3> <p>Enable review workflow for source strings, see <a class="reference internal" href="../workflows.html#source-reviews"><span class="std std-ref">Source strings reviews</span></a>.</p> <div class="admonition seealso"> <p class="admonition-title">See also</p> <p><a class="reference internal" href="../devel/review.html#report-source"><span class="std std-ref">Receiving source string feedback</span></a>, <a class="reference internal" href="../user/translating.html#user-comments"><span class="std std-ref">Comments</span></a></p> </div> </section> <section id="enable-hooks"> <span id="project-enable-hooks"></span><h3>Enable hooks<a class="headerlink" href="#enable-hooks" title="Link to this heading">¶</a></h3> <p>Whether unauthenticated <a class="reference internal" href="../api.html#hooks"><span class="std std-ref">Notification hooks</span></a> are to be used for this repository.</p> <div class="admonition seealso"> <p class="admonition-title">See also</p> <p><a class="reference internal" href="#component-intermediate"><span class="std std-ref">Intermediate language file</span></a>, <a class="reference internal" href="../workflows.html#source-quality-gateway"><span class="std std-ref">Quality gateway for the source strings</span></a>, <a class="reference internal" href="../formats.html#bimono"><span class="std std-ref">Bilingual and monolingual formats</span></a>, <a class="reference internal" href="languages.html#languages"><span class="std std-ref">Language definitions</span></a></p> </div> </section> <section id="language-aliases"> <span id="project-language-aliases"></span><h3>Language aliases<a class="headerlink" href="#language-aliases" title="Link to this heading">¶</a></h3> <p>Define language codes mapping when importing translations into Weblate. Use this when language codes are inconsistent in your repositories and you want to get a consistent view in Weblate or in case you want to use non-standard naming of your translation files.</p> <p>The typical use case might be mapping American English to English: <code class="docutils literal notranslate"><span class="pre">en_US:en</span></code></p> <p>Multiple mappings to be separated by comma: <code class="docutils literal notranslate"><span class="pre">en_GB:en,en_US:en</span></code></p> <p>Using non standard code: <code class="docutils literal notranslate"><span class="pre">ia_FOO:ia</span></code></p> <div class="admonition hint"> <p class="admonition-title">Hint</p> <p>The language codes are mapped when matching the translation files and the matches are case sensitive, so ensure you use the source language codes in same form as used in the filenames.</p> </div> <div class="admonition seealso"> <p class="admonition-title">See also</p> <p><a class="reference internal" href="../devel/translations.html#adding-translation"><span class="std std-ref">Adding new translations</span></a>, <a class="reference internal" href="languages.html#language-code"><span class="std std-ref">Language code</span></a>, <a class="reference internal" href="languages.html#language-parsing-codes"><span class="std std-ref">Parsing language codes</span></a></p> </div> </section> </section> <section id="component-configuration"> <span id="component"></span><h2>Component configuration<a class="headerlink" href="#component-configuration" title="Link to this heading">¶</a></h2> <p>A component is a grouping of something for translation. You enter a VCS repository location and file mask for which files you want translated, and Weblate automatically fetches from this VCS, and finds all matching translatable files.</p> <div class="admonition seealso"> <p class="admonition-title">See also</p> <p><a class="reference internal" href="../devel/integration.html"><span class="doc">Integrating with Weblate</span></a></p> </div> <p>You can find some examples of typical configurations in the <a class="reference internal" href="../formats.html#formats"><span class="std std-ref">Localization file formats</span></a>.</p> <div class="admonition note"> <p class="admonition-title">Note</p> <p>It is recommended to keep translation components to a reasonable size - split the translation by anything that makes sense in your case (individual apps or add-ons, book chapters or websites).</p> <p>Weblate easily handles translations with 10000s of strings, but it is harder to split work and coordinate among translators with such large translation components.</p> </div> <p>Should the language definition for a translation be missing, an empty definition is created and named as “cs_CZ (generated)”. You should adjust the definition and report this back to the Weblate authors, so that the missing languages can be included in next release.</p> <p>The component contains all important parameters for working with the VCS, and for getting translations out of it:</p> <section id="component-name"> <span id="id2"></span><h3>Component name<a class="headerlink" href="#component-name" title="Link to this heading">¶</a></h3> <p>Verbose component name, used to display the component name.</p> </section> <section id="component-slug"> <span id="id3"></span><h3>Component slug<a class="headerlink" href="#component-slug" title="Link to this heading">¶</a></h3> <p>Component name suitable for URLs.</p> </section> <section id="component-project"> <span id="id4"></span><h3>Component project<a class="headerlink" href="#component-project" title="Link to this heading">¶</a></h3> <p><a class="reference internal" href="#project"><span class="std std-ref">Project configuration</span></a> where the component belongs.</p> </section> <section id="version-control-system"> <span id="component-vcs"></span><h3>Version control system<a class="headerlink" href="#version-control-system" title="Link to this heading">¶</a></h3> <p>VCS to use, see <a class="reference internal" href="../vcs.html#vcs"><span class="std std-ref">Version control integration</span></a> for details.</p> <div class="admonition seealso"> <p class="admonition-title">See also</p> <p><a class="reference internal" href="continuous.html#push-changes"><span class="std std-ref">Pushing changes from Weblate</span></a></p> </div> </section> <section id="source-code-repository"> <span id="component-repo"></span><h3>Source code repository<a class="headerlink" href="#source-code-repository" title="Link to this heading">¶</a></h3> <p>VCS repository used to pull changes.</p> <div class="admonition seealso"> <p class="admonition-title">See also</p> <p>See <a class="reference internal" href="../vcs.html#vcs-repos"><span class="std std-ref">Accessing repositories</span></a> for more details on specifying URLs.</p> </div> <div class="admonition hint"> <p class="admonition-title">Hint</p> <p>This can either be a real VCS URL or <code class="docutils literal notranslate"><span class="pre">weblate://project/component</span></code> indicating that the repository should be shared with another component. See <a class="reference internal" href="../vcs.html#internal-urls"><span class="std std-ref">Weblate internal URLs</span></a> for more details.</p> </div> </section> <section id="repository-push-url"> <span id="component-push"></span><h3>Repository push URL<a class="headerlink" href="#repository-push-url" title="Link to this heading">¶</a></h3> <p>Repository URL used for pushing. The behavior of this depends on <a class="reference internal" href="#component-vcs"><span class="std std-ref">Version control system</span></a>, and this is in more detail covered in <a class="reference internal" href="continuous.html#push-changes"><span class="std std-ref">Pushing changes from Weblate</span></a>.</p> <p>For linked repositories, this is not used and setting from linked component applies.</p> <div class="admonition seealso"> <p class="admonition-title">See also</p> <p>See <a class="reference internal" href="../vcs.html#vcs-repos"><span class="std std-ref">Accessing repositories</span></a> for more details on how to specify a repository URL and <a class="reference internal" href="continuous.html#push-changes"><span class="std std-ref">Pushing changes from Weblate</span></a> for more details on pushing changes from Weblate.</p> </div> </section> <section id="repository-browser"> <span id="component-repoweb"></span><h3>Repository browser<a class="headerlink" href="#repository-browser" title="Link to this heading">¶</a></h3> <p>URL of repository browser used to display source files (location of used messages). When empty, no such links will be generated. You can use <a class="reference internal" href="#markup"><span class="std std-ref">Template markup</span></a>.</p> <p>For example on GitHub, use something like: <code class="docutils literal notranslate"><span class="pre">https://github.com/WeblateOrg/hello/blob/{{branch}}/{{filename}}#L{{line}}</span></code></p> <p>In case your paths are relative to different folder (path contains <code class="docutils literal notranslate"><span class="pre">..</span></code>), you might want to strip leading directory by <code class="docutils literal notranslate"><span class="pre">parentdir</span></code> filter (see <a class="reference internal" href="#markup"><span class="std std-ref">Template markup</span></a>): <code class="docutils literal notranslate"><span class="pre">https://github.com/WeblateOrg/hello/blob/{{branch}}/{{filename|parentdir}}#L{{line}}</span></code></p> </section> <section id="exported-repository-url"> <span id="component-git-export"></span><h3>Exported repository URL<a class="headerlink" href="#exported-repository-url" title="Link to this heading">¶</a></h3> <p>URL where changes made by Weblate are exported. This is important when <a class="reference internal" href="continuous.html#continuous-translation"><span class="std std-ref">Continuous localization</span></a> is not used, or when there is a need to manually merge changes. You can use <a class="reference internal" href="optionals.html#git-exporter"><span class="std std-ref">Git exporter</span></a> to automate this for Git repositories.</p> </section> <section id="repository-branch"> <span id="component-branch"></span><h3>Repository branch<a class="headerlink" href="#repository-branch" title="Link to this heading">¶</a></h3> <p>Which branch to checkout from the VCS, and where to look for translations.</p> <p>For linked repositories, this is not used and setting from linked component applies.</p> </section> <section id="push-branch"> <span id="component-push-branch"></span><h3>Push branch<a class="headerlink" href="#push-branch" title="Link to this heading">¶</a></h3> <p>Branch for pushing changes, leave empty to use <a class="reference internal" href="#component-branch"><span class="std std-ref">Repository branch</span></a>.</p> <p>For linked repositories, this is not used and setting from linked component applies.</p> <div class="admonition note"> <p class="admonition-title">Note</p> <p>This is currently only supported for Git, GitLab and GitHub, it is ignored for other VCS integrations.</p> </div> <div class="admonition seealso"> <p class="admonition-title">See also</p> <p><a class="reference internal" href="continuous.html#push-changes"><span class="std std-ref">Pushing changes from Weblate</span></a></p> </div> </section> <section id="file-mask"> <span id="component-filemask"></span><h3>File mask<a class="headerlink" href="#file-mask" title="Link to this heading">¶</a></h3> <p>Mask of files to translate, including path. It should include one “*” replacing language code (see <a class="reference internal" href="languages.html#languages"><span class="std std-ref">Language definitions</span></a> for info on how this is processed). In case your repository contains more than one translation file (e.g. more gettext domains), you need to create a component for each of them.</p> <p>For example <code class="docutils literal notranslate"><span class="pre">po/*.po</span></code> or <code class="docutils literal notranslate"><span class="pre">locale/*/LC_MESSAGES/django.po</span></code>.</p> <p>In case your filename contains special characters such as <code class="docutils literal notranslate"><span class="pre">[</span></code>, <code class="docutils literal notranslate"><span class="pre">]</span></code>, these need to be escaped as <code class="docutils literal notranslate"><span class="pre">[[]</span></code> or <code class="docutils literal notranslate"><span class="pre">[]]</span></code>.</p> <div class="admonition seealso"> <p class="admonition-title">See also</p> <p><a class="reference internal" href="../formats.html#bimono"><span class="std std-ref">Bilingual and monolingual formats</span></a>, <a class="reference internal" href="../faq.html#faq-duplicate-files"><span class="std std-ref">What does mean “There are more files for the single language (en)”?</span></a></p> </div> </section> <section id="screenshot-file-mask"> <span id="component-screenshot-filemask"></span><h3>Screenshot file mask<a class="headerlink" href="#screenshot-file-mask" title="Link to this heading">¶</a></h3> <p>This feature allows the discovery and updating of screenshots through screenshot file masks, using paths from the VCS repository. This operates at the component level and necessitates the use of an asterisk “*” to replace the screenshot file name.</p> <p>Allowed formats are WebP, JPEG, PNG, APNG and GIF.</p> <p>Note:</p> <ol class="arabic simple"> <li><p>The file mask and screenshot file mask are not related. Configure them separately.</p></li> <li><p>It is a manual job to link a discovered screenshot in a component to a specific translation key.</p></li> </ol> <p>For example:</p> <p>Let’s assume your VCS repository has a structure like this:</p> <div class="highlight-text notranslate"><div class="highlight"><pre><span></span>component_A └── docs ├── image1.png └── image2.jpg </pre></div> </div> <p>For component_A, you want to allow discovery and updates of PNG screenshots. You’d set the screenshot file mask for component_A as <code class="docutils literal notranslate"><span class="pre">component_A/docs/*.png</span></code>. This means any PNG images under docs in component_A can be discovered and updated. So, if you want to update <code class="docutils literal notranslate"><span class="pre">image1.png</span></code>, the new screenshot you provide should be named <code class="docutils literal notranslate"><span class="pre">image1.png</span></code>, matching the existing <code class="docutils literal notranslate"><span class="pre">filename</span></code>, and stored under <code class="docutils literal notranslate"><span class="pre">component_A/docs/</span></code>.</p> </section> <section id="monolingual-base-language-file"> <span id="component-template"></span><h3>Monolingual base language file<a class="headerlink" href="#monolingual-base-language-file" title="Link to this heading">¶</a></h3> <p>Base file containing string definitions for <a class="reference internal" href="admin.html#monolingual"><span class="std std-ref">Monolingual components</span></a>.</p> <div class="admonition seealso"> <p class="admonition-title">See also</p> <p><a class="reference internal" href="../formats.html#bimono"><span class="std std-ref">Bilingual and monolingual formats</span></a>, <a class="reference internal" href="../faq.html#faq-duplicate-files"><span class="std std-ref">What does mean “There are more files for the single language (en)”?</span></a></p> </div> </section> <section id="edit-base-file"> <span id="component-edit-template"></span><h3>Edit base file<a class="headerlink" href="#edit-base-file" title="Link to this heading">¶</a></h3> <p>Whether to allow editing strings in the <a class="reference internal" href="#component-template"><span class="std std-ref">Monolingual base language file</span></a>.</p> <div class="admonition seealso"> <p class="admonition-title">See also</p> <p><a class="reference internal" href="../formats.html#bimono"><span class="std std-ref">Bilingual and monolingual formats</span></a>, <a class="reference internal" href="admin.html#monolingual"><span class="std std-ref">Monolingual components</span></a>, <a class="reference internal" href="../faq.html#faq-duplicate-files"><span class="std std-ref">What does mean “There are more files for the single language (en)”?</span></a>, <a class="reference internal" href="#component-manage-units"><span class="std std-ref">Manage strings</span></a></p> </div> </section> <section id="intermediate-language-file"> <span id="component-intermediate"></span><h3>Intermediate language file<a class="headerlink" href="#intermediate-language-file" title="Link to this heading">¶</a></h3> <p>Intermediate language file for <a class="reference internal" href="admin.html#monolingual"><span class="std std-ref">Monolingual components</span></a>. In most cases this is a translation file provided by developers and is used when creating actual source strings.</p> <p>When set, the source strings are based on this file, but all other languages are based on <a class="reference internal" href="#component-template"><span class="std std-ref">Monolingual base language file</span></a>. In case the string is not translated into the source language, translating to other languages is prohibited. This provides <a class="reference internal" href="../workflows.html#source-quality-gateway"><span class="std std-ref">Quality gateway for the source strings</span></a>.</p> <div class="admonition seealso"> <p class="admonition-title">See also</p> <p><a class="reference internal" href="../workflows.html#source-quality-gateway"><span class="std std-ref">Quality gateway for the source strings</span></a>, <a class="reference internal" href="../formats.html#bimono"><span class="std std-ref">Bilingual and monolingual formats</span></a>, <a class="reference internal" href="../faq.html#faq-duplicate-files"><span class="std std-ref">What does mean “There are more files for the single language (en)”?</span></a></p> </div> </section> <section id="template-for-new-translations"> <span id="component-new-base"></span><h3>Template for new translations<a class="headerlink" href="#template-for-new-translations" title="Link to this heading">¶</a></h3> <p>Base file used to generate new translations.</p> <ul class="simple"> <li><p>Keep this field empty for most of the monoligual formats. Those are typically able to start from an empty file.</p></li> <li><p>Choose <code class="docutils literal notranslate"><span class="pre">.pot</span></code> file with GNU gettext PO files.</p></li> <li><p>Choose blank file without translations, if you have one.</p></li> <li><p>Choose <a class="reference internal" href="#component-template"><span class="std std-ref">Monolingual base language file</span></a> for monolingual formats that need a full set of keys present.</p></li> <li><p>Choose <a class="reference internal" href="#component-template"><span class="std std-ref">Monolingual base language file</span></a> for document translations.</p></li> <li><p>Choose any translation file for others.</p></li> <li><p>Template file can be the same as the base file in most cases.</p></li> </ul> <div class="admonition hint"> <p class="admonition-title">Hint</p> <p>In many monolingual formats Weblate starts with empty file by default. Use this in case you want to have all strings present with empty value when creating new translation.</p> </div> <div class="admonition seealso"> <p class="admonition-title">See also</p> <p><a class="reference internal" href="../devel/translations.html#adding-translation"><span class="std std-ref">Adding new translations</span></a>, <a class="reference internal" href="#component-new-lang"><span class="std std-ref">Adding new translation</span></a>, <a class="reference internal" href="../formats.html#bimono"><span class="std std-ref">Bilingual and monolingual formats</span></a>, <a class="reference internal" href="../faq.html#faq-duplicate-files"><span class="std std-ref">What does mean “There are more files for the single language (en)”?</span></a></p> </div> </section> <section id="file-format"> <span id="component-file-format"></span><h3>File format<a class="headerlink" href="#file-format" title="Link to this heading">¶</a></h3> <p>Translation file format, see also <a class="reference internal" href="../formats.html#formats"><span class="std std-ref">Localization file formats</span></a>.</p> </section> <section id="source-string-bug-reporting-address"> <span id="component-report-source-bugs"></span><h3>Source string bug reporting address<a class="headerlink" href="#source-string-bug-reporting-address" title="Link to this heading">¶</a></h3> <p>Email address used for reporting upstream bugs. This address will also receive notification about any source string comments made in Weblate.</p> <p>With the <a class="reference internal" href="../formats/gettext.html#gettext"><span class="std std-ref">GNU gettext PO (Portable Object)</span></a> format, this address is also saved by Weblate in the <em class="mailheader">Report-Msgid-Bugs-To</em> header of the file.</p> </section> <section id="allow-translation-propagation"> <span id="component-allow-translation-propagation"></span><h3>Allow translation propagation<a class="headerlink" href="#allow-translation-propagation" title="Link to this heading">¶</a></h3> <p>You can turn off propagation of translations to this component from other components within same project. This really depends on what you are translating, sometimes it’s desirable to have make use of a translation more than once.</p> <p>It’s usually a good idea to turn this off for monolingual translations, unless you are using the same IDs across the whole project.</p> <p>The default value can be changed by <a class="reference internal" href="config.html#std-setting-DEFAULT_TRANSLATION_PROPAGATION"><code class="xref std std-setting docutils literal notranslate"><span class="pre">DEFAULT_TRANSLATION_PROPAGATION</span></code></a>.</p> <div class="admonition seealso"> <p class="admonition-title">See also</p> <p><a class="reference internal" href="continuous.html#translation-consistency"><span class="std std-ref">Keeping translations same across components</span></a></p> </div> </section> <section id="enable-suggestions"> <span id="component-enable-suggestions"></span><h3>Enable suggestions<a class="headerlink" href="#enable-suggestions" title="Link to this heading">¶</a></h3> <p>Whether translation suggestions are accepted for this component.</p> <div class="admonition seealso"> <p class="admonition-title">See also</p> <p><a class="reference internal" href="../workflows.html#workflow-customization"><span class="std std-ref">Workflow customization</span></a></p> </div> </section> <section id="suggestion-voting"> <span id="component-suggestion-voting"></span><h3>Suggestion voting<a class="headerlink" href="#suggestion-voting" title="Link to this heading">¶</a></h3> <p>Turns on vote casting for suggestions, see <a class="reference internal" href="translating.html#voting"><span class="std std-ref">Suggestion voting</span></a>.</p> <div class="admonition seealso"> <p class="admonition-title">See also</p> <p><a class="reference internal" href="../workflows.html#workflow-customization"><span class="std std-ref">Workflow customization</span></a></p> </div> </section> <section id="automatically-accept-suggestions"> <span id="component-suggestion-autoaccept"></span><h3>Automatically accept suggestions<a class="headerlink" href="#automatically-accept-suggestions" title="Link to this heading">¶</a></h3> <p>Automatically accept voted suggestions, see <a class="reference internal" href="translating.html#voting"><span class="std std-ref">Suggestion voting</span></a>.</p> <div class="admonition seealso"> <p class="admonition-title">See also</p> <p><a class="reference internal" href="../workflows.html#workflow-customization"><span class="std std-ref">Workflow customization</span></a></p> </div> </section> <section id="translation-flags"> <span id="component-check-flags"></span><h3>Translation flags<a class="headerlink" href="#translation-flags" title="Link to this heading">¶</a></h3> <p>Customization of quality checks and other Weblate behavior, see <a class="reference internal" href="checks.html#custom-checks"><span class="std std-ref">Customizing behavior using flags</span></a>.</p> </section> <section id="enforced-checks"> <span id="component-enforced-checks"></span><h3>Enforced checks<a class="headerlink" href="#enforced-checks" title="Link to this heading">¶</a></h3> <p>List of checks which can not be ignored, see <a class="reference internal" href="checks.html#enforcing-checks"><span class="std std-ref">Enforcing checks</span></a>.</p> <div class="admonition note"> <p class="admonition-title">Note</p> <p>Enforcing the check does not automatically enable it, you still should enabled it using <a class="reference internal" href="checks.html#custom-checks"><span class="std std-ref">Customizing behavior using flags</span></a> in <a class="reference internal" href="#component-check-flags"><span class="std std-ref">Translation flags</span></a> or <a class="reference internal" href="translating.html#additional"><span class="std std-ref">Additional info on source strings</span></a>.</p> </div> </section> <section id="translation-license"> <span id="component-license"></span><h3>Translation license<a class="headerlink" href="#translation-license" title="Link to this heading">¶</a></h3> <p>License of the translation (does not need to be the same as the source code license).</p> </section> <section id="contributor-license-agreement"> <span id="component-agreement"></span><h3>Contributor license agreement<a class="headerlink" href="#contributor-license-agreement" title="Link to this heading">¶</a></h3> <p>Contributor license agreement which needs to be approved before a user can translate this component.</p> <p>Markdown can be used for text formatting or inserting links.</p> </section> <section id="adding-new-translation"> <span id="component-new-lang"></span><h3>Adding new translation<a class="headerlink" href="#adding-new-translation" title="Link to this heading">¶</a></h3> <p>How to handle requests for creation of new languages. Available options:</p> <dl class="simple"> <dt>Contact maintainers</dt><dd><p>User can select desired language and the project maintainers will receive a notification about this. It is up to them to add (or not) the language to the repository.</p> </dd> <dt>Point to translation instructions URL</dt><dd><p>User is presented a link to page which describes process of starting new translations. Use this in case more formal process is desired (for example forming a team of people before starting actual translation).</p> </dd> <dt>Create new language file</dt><dd><p>User can select language and Weblate automatically creates the file for it and translation can begin.</p> </dd> <dt>Disable adding new translations</dt><dd><p>There will be no option for user to start new translation.</p> </dd> </dl> <div class="admonition hint"> <p class="admonition-title">Hint</p> <p>The project admins can add new translations even if it is disabled here when it is possible (either <a class="reference internal" href="#component-new-base"><span class="std std-ref">Template for new translations</span></a> or the file format supports starting from an empty file).</p> </div> <div class="admonition seealso"> <p class="admonition-title">See also</p> <p><a class="reference internal" href="../devel/translations.html#adding-translation"><span class="std std-ref">Adding new translations</span></a>, <a class="reference internal" href="#component-new-base"><span class="std std-ref">Template for new translations</span></a></p> </div> </section> <section id="manage-strings"> <span id="component-manage-units"></span><h3>Manage strings<a class="headerlink" href="#manage-strings" title="Link to this heading">¶</a></h3> <div class="versionadded"> <p><span class="versionmodified added">Added in version 4.5.</span></p> </div> <p>Configures whether users in Weblate will be allowed to add new strings and remove existing ones. Adjust this to match your localization workflow - how the new strings are supposed to be introduced.</p> <p>For bilingual formats, the strings are typically extracted from the source code (for example by using <strong class="program">xgettext</strong>) and adding new strings in Weblate should be disabled (they would be discarded next time you update the translation files). In Weblate you can manage strings for every translation and it does not enforce the strings in all translations to be consistent.</p> <p>For monolingual formats, the strings are managed only on source language and are automatically added or removed in the translations. The strings appear in the translation files once they are translated.</p> <div class="admonition hint"> <p class="admonition-title">Hint</p> <p>You might want to turn on <a class="reference internal" href="#component-edit-template"><span class="std std-ref">Edit base file</span></a> together with <span class="guilabel">Manage strings</span> for monolingual formats.</p> </div> <div class="admonition seealso"> <p class="admonition-title">See also</p> <p><a class="reference internal" href="../formats.html#bimono"><span class="std std-ref">Bilingual and monolingual formats</span></a>, <a class="reference internal" href="../devel/integration.html#adding-new-strings"><span class="std std-ref">Adding new strings</span></a>, <a class="reference internal" href="../api.html#post--api-translations-(string-project)-(string-component)-(string-language)-units-" title="POST /api/translations/(string:project)/(string:component)/(string:language)/units/"><code class="xref http http-post docutils literal notranslate"><span class="pre">POST</span> <span class="pre">/api/translations/(string:project)/(string:component)/(string:language)/units/</span></code></a></p> </div> </section> <section id="language-code-style"> <span id="component-language-code-style"></span><h3>Language code style<a class="headerlink" href="#language-code-style" title="Link to this heading">¶</a></h3> <p>Customize language code used to generate the filename for translations created by Weblate.</p> <div class="admonition note"> <p class="admonition-title">Note</p> <p>Weblate recognizes any of the language codes when parsing translation files, following settings only influences how new files are created.</p> </div> <dl class="simple"> <dt>Default based on the file format</dt><dd><p>Dependent on file format, for most of them POSIX is used.</p> </dd> <dt>POSIX style using underscore as a separator</dt><dd><p>Typically used by gettext and related tools, produces language codes like <code class="docutils literal notranslate"><span class="pre">pt_BR</span></code>.</p> </dd> <dt>POSIX style using underscore as a separator, lower cased</dt><dd><p>Typically used by gettext and related tools, produces language codes like <code class="docutils literal notranslate"><span class="pre">pt_BR</span></code>.</p> </dd> <dt>POSIX style using underscore as a separator, including country code</dt><dd><p>POSIX style language code including the country code even when not necessary (for example <code class="docutils literal notranslate"><span class="pre">cs_CZ</span></code>).</p> </dd> <dt>POSIX style using underscore as a separator, including country code, lower cased</dt><dd><p>POSIX style language code including the country code even when not necessary (lowercase) (for example <code class="docutils literal notranslate"><span class="pre">cs_cz</span></code>).</p> </dd> <dt>BCP style using hyphen as a separator</dt><dd><p>Typically used on web platforms, produces language codes like <code class="docutils literal notranslate"><span class="pre">pt-BR</span></code>.</p> </dd> <dt>BCP style using hyphen as a separator, including country code</dt><dd><p>BCP style language code including the country code even when not necessary (for example <code class="docutils literal notranslate"><span class="pre">cs-CZ</span></code>).</p> </dd> <dt>BCP style using hyphen as a separator, legacy language codes</dt><dd><p>Uses legacy codes for Chinese and BCP style notation.</p> </dd> <dt>BCP style using hyphen as a separator, lower cased</dt><dd><p>BCP style notation, all in lower case (for example <code class="docutils literal notranslate"><span class="pre">cs-cz</span></code>).</p> </dd> <dt>Apple App Store metadata style</dt><dd><p>Style suitable for uploading metadata to Apple App Store.</p> </dd> <dt>Google Play metadata style</dt><dd><p>Style suitable for uploading metadata to Google Play Store.</p> </dd> <dt>Android style</dt><dd><p>Only used in Android apps, produces language codes like <code class="docutils literal notranslate"><span class="pre">pt-rBR</span></code>.</p> </dd> <dt>Linux style</dt><dd><p>Locales as used by Linux, uses legacy codes for Chinese and POSIX style notation.</p> </dd> <dt>Linux style, lower cased</dt><dd><p>Locales as used by Linux, uses legacy codes for Chinese and POSIX style notation. Lower cased.</p> </dd> </dl> <div class="admonition seealso"> <p class="admonition-title">See also</p> <p><a class="reference internal" href="../devel/translations.html#adding-translation"><span class="std std-ref">Adding new translations</span></a>, <a class="reference internal" href="languages.html#language-code"><span class="std std-ref">Language code</span></a>, <a class="reference internal" href="languages.html#language-parsing-codes"><span class="std std-ref">Parsing language codes</span></a>, <a class="reference internal" href="#project-language-aliases"><span class="std std-ref">Language aliases</span></a></p> </div> </section> <section id="merge-style"> <span id="component-merge-style"></span><h3>Merge style<a class="headerlink" href="#merge-style" title="Link to this heading">¶</a></h3> <p>You can configure how updates from the upstream repository are handled. The actual implementation depends on VCS, see <a class="reference internal" href="../vcs.html"><span class="doc">Version control integration</span></a>.</p> <dl> <dt>Rebase</dt><dd><p>Rebases Weblate commits on top of upstream repository on update. This provides clean history without extra merge commits.</p> <p>Rebasing can cause you trouble in case of complicated merges, so carefully consider whether or not you want to enable them.</p> <p>You might need to enable force pushing by choosing <a class="reference internal" href="../vcs.html#vcs-git-force-push"><span class="std std-ref">Git with force push</span></a> as <a class="reference internal" href="#component-vcs"><span class="std std-ref">Version control system</span></a>, especially when pushing to a different branch.</p> </dd> <dt>Merge</dt><dd><p>Upstream repository changes are merged into Weblate one. This setting utilizes fast-forward when possible. This is the safest way, but might produce a lot of merge commits.</p> </dd> <dt>Merge without fast-forward</dt><dd><p>Upstream repository changes are merged into Weblate one with doing a merge commit every time (even when fast-forward would be possible). Every Weblate change will appear as a merge commit in Weblate repository.</p> </dd> </dl> <p>The default value can be changed by <a class="reference internal" href="config.html#std-setting-DEFAULT_MERGE_STYLE"><code class="xref std std-setting docutils literal notranslate"><span class="pre">DEFAULT_MERGE_STYLE</span></code></a>.</p> </section> <section id="commit-add-delete-merge-add-on-and-merge-request-messages"> <span id="component-pull-message"></span><span id="component-addon-message"></span><span id="component-merge-message"></span><span id="component-delete-message"></span><span id="component-add-message"></span><span id="component-commit-message"></span><h3>Commit, add, delete, merge, add-on, and merge request messages<a class="headerlink" href="#commit-add-delete-merge-add-on-and-merge-request-messages" title="Link to this heading">¶</a></h3> <p>Message used when committing a translation, see <a class="reference internal" href="#markup"><span class="std std-ref">Template markup</span></a>.</p> <p>The default value can be changed by <a class="reference internal" href="config.html#std-setting-DEFAULT_ADD_MESSAGE"><code class="xref std std-setting docutils literal notranslate"><span class="pre">DEFAULT_ADD_MESSAGE</span></code></a>, <a class="reference internal" href="config.html#std-setting-DEFAULT_ADDON_MESSAGE"><code class="xref std std-setting docutils literal notranslate"><span class="pre">DEFAULT_ADDON_MESSAGE</span></code></a>, <a class="reference internal" href="config.html#std-setting-DEFAULT_COMMIT_MESSAGE"><code class="xref std std-setting docutils literal notranslate"><span class="pre">DEFAULT_COMMIT_MESSAGE</span></code></a>, <a class="reference internal" href="config.html#std-setting-DEFAULT_DELETE_MESSAGE"><code class="xref std std-setting docutils literal notranslate"><span class="pre">DEFAULT_DELETE_MESSAGE</span></code></a>, <a class="reference internal" href="config.html#std-setting-DEFAULT_MERGE_MESSAGE"><code class="xref std std-setting docutils literal notranslate"><span class="pre">DEFAULT_MERGE_MESSAGE</span></code></a>, <a class="reference internal" href="config.html#std-setting-DEFAULT_PULL_MESSAGE"><code class="xref std std-setting docutils literal notranslate"><span class="pre">DEFAULT_PULL_MESSAGE</span></code></a>.</p> </section> <section id="push-on-commit"> <span id="component-push-on-commit"></span><h3>Push on commit<a class="headerlink" href="#push-on-commit" title="Link to this heading">¶</a></h3> <p>Whether committed changes should be automatically pushed to the upstream repository. When enabled, the push is initiated once Weblate commits changes to its underlying repository (see <a class="reference internal" href="continuous.html#lazy-commit"><span class="std std-ref">Lazy commits</span></a>). To actually enable pushing <span class="guilabel">Repository push URL</span> has to be configured as well.</p> </section> <section id="age-of-changes-to-commit"> <span id="component-commit-pending-age"></span><h3>Age of changes to commit<a class="headerlink" href="#age-of-changes-to-commit" title="Link to this heading">¶</a></h3> <p>Sets how old (in hours) changes have to be before they are committed by background task or the <a class="reference internal" href="management.html#weblate-admin-commit_pending"><code class="xref std std-wladmin docutils literal notranslate"><span class="pre">commit_pending</span></code></a> management command. All changes in a component are committed once there is at least one change older than this period.</p> <p>The default value can be changed by <a class="reference internal" href="config.html#std-setting-COMMIT_PENDING_HOURS"><code class="xref std std-setting docutils literal notranslate"><span class="pre">COMMIT_PENDING_HOURS</span></code></a>.</p> <div class="admonition hint"> <p class="admonition-title">Hint</p> <p>There are other situations where pending changes might be committed, see <a class="reference internal" href="continuous.html#lazy-commit"><span class="std std-ref">Lazy commits</span></a>.</p> </div> </section> <section id="lock-on-error"> <span id="component-auto-lock-error"></span><h3>Lock on error<a class="headerlink" href="#lock-on-error" title="Link to this heading">¶</a></h3> <p>Locks the component (and linked components, see <a class="reference internal" href="../vcs.html#internal-urls"><span class="std std-ref">Weblate internal URLs</span></a>) upon the first failed push or merge into its upstream repository, or pull from it. This avoids adding another conflicts, which would have to be resolved manually.</p> <p>The component will be automatically unlocked once there are no repository errors left.</p> </section> <section id="source-language"> <span id="component-source-language"></span><h3>Source language<a class="headerlink" href="#source-language" title="Link to this heading">¶</a></h3> <p>Language used for source strings. Change this if you are translating from something else than English.</p> <div class="admonition hint"> <p class="admonition-title">Hint</p> <p>In case you are translating bilingual files from English, but want to be able to do fixes in the English translation as well, choose <span class="guilabel">English (Developer)</span> as a source language to avoid conflict between the name of the source language and the existing translation.</p> <p>For monolingual translations, you can use intermediate translation in this case, see <a class="reference internal" href="#component-intermediate"><span class="std std-ref">Intermediate language file</span></a>.</p> </div> </section> <section id="language-filter"> <span id="component-language-regex"></span><h3>Language filter<a class="headerlink" href="#language-filter" title="Link to this heading">¶</a></h3> <p>Regular expression used to filter the translation when scanning for file mask. It can be used to limit the list of languages managed by Weblate.</p> <div class="admonition note"> <p class="admonition-title">Note</p> <p>You need to list language codes as they appear in the filename.</p> </div> <p>Some examples of filtering:</p> <div class="table-wrapper docutils container"> <table class="docutils align-default"> <thead> <tr class="row-odd"><th class="head"><p>Filter description</p></th> <th class="head"><p>Regular expression</p></th> </tr> </thead> <tbody> <tr class="row-even"><td><p>Selected languages only</p></td> <td><p><code class="docutils literal notranslate"><span class="pre">^(cs|de|es)$</span></code></p></td> </tr> <tr class="row-odd"><td><p>Exclude languages</p></td> <td><p><code class="docutils literal notranslate"><span class="pre">^(?!(it|fr)$).+$</span></code></p></td> </tr> <tr class="row-even"><td><p>Filter two letter codes only</p></td> <td><p><code class="docutils literal notranslate"><span class="pre">^..$</span></code></p></td> </tr> <tr class="row-odd"><td><p>Exclude non language files</p></td> <td><p><code class="docutils literal notranslate"><span class="pre">^(?!(blank)$).+$</span></code></p></td> </tr> <tr class="row-even"><td><p>Include all files (default)</p></td> <td><p><code class="docutils literal notranslate"><span class="pre">^[^.]+$</span></code></p></td> </tr> </tbody> </table> </div> </section> <section id="key-filter"> <span id="component-key-filter"></span><h3>Key filter<a class="headerlink" href="#key-filter" title="Link to this heading">¶</a></h3> <div class="versionadded"> <p><span class="versionmodified added">Added in version 5.8.</span></p> </div> <p>A regular expression that is used to filter units by their keys. It displays only those units whose keys match the regular expression that was set as the value of this field.</p> <p>Some examples of filtering:</p> <div class="table-wrapper docutils container"> <table class="docutils align-default"> <thead> <tr class="row-odd"><th class="head"><p>Filter description</p></th> <th class="head"><p>Regular expression</p></th> </tr> </thead> <tbody> <tr class="row-even"><td><p>Selected keys only</p></td> <td><p><code class="docutils literal notranslate"><span class="pre">^(one|two|other)$</span></code></p></td> </tr> <tr class="row-odd"><td><p>Exclude app store changelogs</p></td> <td><p><code class="docutils literal notranslate"><span class="pre">^(?!changelogs/.*$).+$</span></code></p></td> </tr> <tr class="row-even"><td><p>Filter prefixed strings</p></td> <td><p><code class="docutils literal notranslate"><span class="pre">^translatable</span></code></p></td> </tr> </tbody> </table> </div> <div class="admonition note"> <p class="admonition-title">Note</p> <p>This filter is only available for components with monolingual file formats.</p> </div> </section> <section id="variants-regular-expression"> <span id="component-variant-regex"></span><h3>Variants regular expression<a class="headerlink" href="#variants-regular-expression" title="Link to this heading">¶</a></h3> <p>Regular expression used to determine the variants of a string, see <a class="reference internal" href="../devel/translations.html#variants"><span class="std std-ref">String variants</span></a>.</p> <div class="admonition note"> <p class="admonition-title">Note</p> <p>Most of the fields can be edited by project owners or administrators, in the Weblate interface.</p> </div> <div class="admonition seealso"> <p class="admonition-title">See also</p> <p><a class="reference internal" href="../faq.html#faq-vcs"><span class="std std-ref">Does Weblate support other VCSes than Git and Mercurial?</span></a>, <a class="reference internal" href="../devel/alerts.html#alerts"><span class="std std-ref">Translation component alerts</span></a></p> </div> </section> <section id="priority"> <span id="component-priority"></span><h3>Priority<a class="headerlink" href="#priority" title="Link to this heading">¶</a></h3> <p>Components with higher priority are offered first to translators.</p> <div class="versionchanged"> <p><span class="versionmodified changed">Changed in version 4.15: </span>This now also affects ordering of matched glossary terms.</p> </div> </section> <section id="restricted-access"> <span id="component-restricted"></span><h3>Restricted access<a class="headerlink" href="#restricted-access" title="Link to this heading">¶</a></h3> <div class="admonition note"> <p class="admonition-title">Note</p> <p>This feature is unavailable on Hosted Weblate.</p> </div> <p>By default the component is visible to anybody who has access to the project, even if the person can not perform any changes in the component. This makes it easier to keep translation consistency within the project.</p> <p>Restricting access at a component, or component-list level takes over access permission to a component, regardless of project-level permissions. You will have to grant access to it explicitly. This can be done through granting access to a new user group and putting users in it, or using the default <cite>custom</cite> or <cite>private</cite> access control groups.</p> <p>The default value can be changed in <a class="reference internal" href="config.html#std-setting-DEFAULT_RESTRICTED_COMPONENT"><code class="xref std std-setting docutils literal notranslate"><span class="pre">DEFAULT_RESTRICTED_COMPONENT</span></code></a>.</p> <div class="admonition hint"> <p class="admonition-title">Hint</p> <p>This applies to project admins as well — please ensure you will not loose access to the component after toggling the status.</p> </div> </section> <section id="share-in-projects"> <span id="component-links"></span><h3>Share in projects<a class="headerlink" href="#share-in-projects" title="Link to this heading">¶</a></h3> <p>You can choose additional projects where the component will be visible. Useful for shared libraries which you use in several projects.</p> <div class="admonition note"> <p class="admonition-title">Note</p> <p>Sharing a component doesn’t change its access control. It only makes it visible when browsing other projects. Users still need access to the actual component to browse or translate it.</p> </div> </section> <section id="use-as-a-glossary"> <span id="component-is-glossary"></span><h3>Use as a glossary<a class="headerlink" href="#use-as-a-glossary" title="Link to this heading">¶</a></h3> <div class="versionadded"> <p><span class="versionmodified added">Added in version 4.5.</span></p> </div> <p>Allows using this component as a glossary. You can configure how it will be listed using <a class="reference internal" href="#component-glossary-color"><span class="std std-ref">Glossary color</span></a>.</p> <p>The glossary will be accessible in all projects defined by <a class="reference internal" href="#component-links"><span class="std std-ref">Share in projects</span></a>.</p> <p>It is recommended to enable <a class="reference internal" href="#component-manage-units"><span class="std std-ref">Manage strings</span></a> on glossaries in order to allow adding new words to them.</p> <div class="admonition seealso"> <p class="admonition-title">See also</p> <p><a class="reference internal" href="../user/glossary.html#glossary"><span class="std std-ref">Glossary</span></a></p> </div> </section> <section id="glossary-color"> <span id="component-glossary-color"></span><h3>Glossary color<a class="headerlink" href="#glossary-color" title="Link to this heading">¶</a></h3> <p>Color used when displaying terms from this glossary. Useful to distinguish glossaries when using more of them.</p> <div class="admonition seealso"> <p class="admonition-title">See also</p> <p><a class="reference internal" href="../user/glossary.html#glossary"><span class="std std-ref">Glossary</span></a></p> </div> </section> </section> <section id="category"> <span id="id5"></span><h2>Category<a class="headerlink" href="#category" title="Link to this heading">¶</a></h2> <p>Categories are there to give structure to components within a project. You can nest them to achieve a more complex structure.</p> </section> <section id="template-markup"> <span id="markup"></span><h2>Template markup<a class="headerlink" href="#template-markup" title="Link to this heading">¶</a></h2> <p>Weblate uses simple markup language in several places where text rendering is needed. It is based on <a class="reference external" href="https://docs.djangoproject.com/en/stable/ref/templates/language/" title="(in Django v5.1)"><span>The Django template language</span></a>, so it can be quite powerful.</p> <p>Currently it is used in:</p> <ul class="simple"> <li><p>Commit message formatting, see <a class="reference internal" href="#component"><span class="std std-ref">Component configuration</span></a></p></li> <li><dl class="simple"> <dt>Several add-ons</dt><dd><ul> <li><p><a class="reference internal" href="addons.html#addon-weblate-discovery-discovery"><span class="std std-ref">Component discovery</span></a></p></li> <li><p><a class="reference internal" href="addons.html#addon-weblate-generate-generate"><span class="std std-ref">Statistics generator</span></a></p></li> <li><p><a class="reference internal" href="addons.html#addon-script"><span class="std std-ref">Executing scripts from add-on</span></a></p></li> </ul> </dd> </dl> </li> </ul> <p>The following variables are available in the component templates:</p> <dl class="simple"> <dt><code class="docutils literal notranslate"><span class="pre">{{</span> <span class="pre">language_code</span> <span class="pre">}}</span></code></dt><dd><p>Language code</p> </dd> <dt><code class="docutils literal notranslate"><span class="pre">{{</span> <span class="pre">language_name</span> <span class="pre">}}</span></code></dt><dd><p>Language name</p> </dd> <dt><code class="docutils literal notranslate"><span class="pre">{{</span> <span class="pre">component_name</span> <span class="pre">}}</span></code></dt><dd><p>Component name</p> </dd> <dt><code class="docutils literal notranslate"><span class="pre">{{</span> <span class="pre">component_slug</span> <span class="pre">}}</span></code></dt><dd><p>Component slug</p> </dd> <dt><code class="docutils literal notranslate"><span class="pre">{{</span> <span class="pre">project_name</span> <span class="pre">}}</span></code></dt><dd><p>Project name</p> </dd> <dt><code class="docutils literal notranslate"><span class="pre">{{</span> <span class="pre">project_slug</span> <span class="pre">}}</span></code></dt><dd><p>Project slug</p> </dd> <dt><code class="docutils literal notranslate"><span class="pre">{{</span> <span class="pre">url</span> <span class="pre">}}</span></code></dt><dd><p>Translation URL</p> </dd> <dt><code class="docutils literal notranslate"><span class="pre">{{</span> <span class="pre">filename</span> <span class="pre">}}</span></code></dt><dd><p>Translation filename</p> </dd> <dt><code class="docutils literal notranslate"><span class="pre">{{</span> <span class="pre">stats</span> <span class="pre">}}</span></code></dt><dd><p>Translation stats, this has further attributes, examples below.</p> </dd> <dt><code class="docutils literal notranslate"><span class="pre">{{</span> <span class="pre">stats.all</span> <span class="pre">}}</span></code></dt><dd><p>Total strings count</p> </dd> <dt><code class="docutils literal notranslate"><span class="pre">{{</span> <span class="pre">stats.fuzzy</span> <span class="pre">}}</span></code></dt><dd><p>Count of strings needing review</p> </dd> <dt><code class="docutils literal notranslate"><span class="pre">{{</span> <span class="pre">stats.fuzzy_percent</span> <span class="pre">}}</span></code></dt><dd><p>Percent of strings needing review</p> </dd> <dt><code class="docutils literal notranslate"><span class="pre">{{</span> <span class="pre">stats.translated</span> <span class="pre">}}</span></code></dt><dd><p>Translated strings count</p> </dd> <dt><code class="docutils literal notranslate"><span class="pre">{{</span> <span class="pre">stats.translated_percent</span> <span class="pre">}}</span></code></dt><dd><p>Translated strings percent</p> </dd> <dt><code class="docutils literal notranslate"><span class="pre">{{</span> <span class="pre">stats.allchecks</span> <span class="pre">}}</span></code></dt><dd><p>Number of strings with failing checks</p> </dd> <dt><code class="docutils literal notranslate"><span class="pre">{{</span> <span class="pre">stats.allchecks_percent</span> <span class="pre">}}</span></code></dt><dd><p>Percent of strings with failing checks</p> </dd> <dt><code class="docutils literal notranslate"><span class="pre">{{</span> <span class="pre">author</span> <span class="pre">}}</span></code></dt><dd><p>Author of current commit, available only in the commit scope.</p> </dd> <dt><code class="docutils literal notranslate"><span class="pre">{{</span> <span class="pre">addon_name</span> <span class="pre">}}</span></code></dt><dd><p>Name of currently executed add-on, available only in the add-on commit message.</p> </dd> </dl> <p>The following variables are available in the repository browser or editor templates:</p> <dl class="simple"> <dt><code class="docutils literal notranslate"><span class="pre">{{branch}}</span></code></dt><dd><p>current branch</p> </dd> <dt><code class="docutils literal notranslate"><span class="pre">{{line}}</span></code></dt><dd><p>line in file</p> </dd> <dt><code class="docutils literal notranslate"><span class="pre">{{filename}}</span></code></dt><dd><p>filename, you can also strip leading parts using the <code class="docutils literal notranslate"><span class="pre">parentdir</span></code> filter, for example <code class="docutils literal notranslate"><span class="pre">{{filename|parentdir}}</span></code></p> </dd> </dl> <div class="admonition hint"> <p class="admonition-title">Hint</p> <p>In some places additional variables can be available, see <a class="reference internal" href="addons.html#addon-weblate-discovery-discovery"><span class="std std-ref">Component discovery</span></a>.</p> </div> <p>You can combine them with filters:</p> <div class="highlight-django notranslate"><div class="highlight"><pre><span></span><span class="cp">{{</span> <span class="nv">component</span><span class="o">|</span><span class="nf">title</span> <span class="cp">}}</span> </pre></div> </div> <p>You can use conditions:</p> <div class="highlight-django notranslate"><div class="highlight"><pre><span></span><span class="cp">{%</span> <span class="k">if</span> <span class="nv">stats.translated_percent</span> <span class="o">&gt;</span> <span class="m">80</span> <span class="cp">%}</span><span class="x">Well translated!</span><span class="cp">{%</span> <span class="k">endif</span> <span class="cp">%}</span> </pre></div> </div> <p>There is additional tag available for replacing characters:</p> <div class="highlight-django notranslate"><div class="highlight"><pre><span></span><span class="cp">{%</span> <span class="k">replace</span> <span class="nv">component</span> <span class="s2">&quot;-&quot;</span> <span class="s2">&quot; &quot;</span> <span class="cp">%}</span> </pre></div> </div> <p>You can combine it with filters:</p> <div class="highlight-django notranslate"><div class="highlight"><pre><span></span><span class="cp">{%</span> <span class="k">replace</span> <span class="nv">component</span><span class="o">|</span><span class="nf">capfirst</span> <span class="s2">&quot;-&quot;</span> <span class="s2">&quot; &quot;</span> <span class="cp">%}</span> </pre></div> </div> <p>There are also additional filter to manipulate with filenames:</p> <div class="highlight-django notranslate"><div class="highlight"><pre><span></span><span class="x">Directory of a file: </span><span class="cp">{{</span> <span class="nv">filename</span><span class="o">|</span><span class="nf">dirname</span> <span class="cp">}}</span> <span class="x">File without extension: </span><span class="cp">{{</span> <span class="nv">filename</span><span class="o">|</span><span class="nf">stripext</span> <span class="cp">}}</span> <span class="x">File in parent dir: </span><span class="cp">{{</span> <span class="nv">filename</span><span class="o">|</span><span class="nf">parentdir</span> <span class="cp">}}</span> <span class="x">It can be used multiple times: </span><span class="cp">{{</span> <span class="nv">filename</span><span class="o">|</span><span class="nf">parentdir</span><span class="o">|</span><span class="nf">parentdir</span> <span class="cp">}}</span> </pre></div> </div> <p>…and other Django template features.</p> </section> <section id="importing-speed"> <span id="import-speed"></span><h2>Importing speed<a class="headerlink" href="#importing-speed" title="Link to this heading">¶</a></h2> <p>Fetching VCS repository and importing translations to Weblate can be a lengthy process, depending on size of your translations. Here are some tips:</p> <section id="optimize-configuration"> <h3>Optimize configuration<a class="headerlink" href="#optimize-configuration" title="Link to this heading">¶</a></h3> <p>The default configuration is useful for testing and debugging Weblate, while for a production setup, you should do some adjustments. Many of them have quite a big impact on performance. Please check <a class="reference internal" href="install.html#production"><span class="std std-ref">Production setup</span></a> for more details, especially:</p> <ul class="simple"> <li><p>Configure Celery for executing background tasks (see <a class="reference internal" href="install.html#celery"><span class="std std-ref">Background tasks using Celery</span></a>)</p></li> <li><p><a class="reference internal" href="install.html#production-cache"><span class="std std-ref">Enable caching</span></a></p></li> <li><p><a class="reference internal" href="install.html#production-database"><span class="std std-ref">Use a powerful database engine</span></a></p></li> <li><p><a class="reference internal" href="install.html#production-debug"><span class="std std-ref">Disable debug mode</span></a></p></li> </ul> </section> <section id="check-resource-limits"> <h3>Check resource limits<a class="headerlink" href="#check-resource-limits" title="Link to this heading">¶</a></h3> <p>If you are importing huge translations or repositories, you might be hit by resource limitations of your server.</p> <ul class="simple"> <li><p>Check the amount of free memory, having translation files cached by the operating system will greatly improve performance.</p></li> <li><p>Disk operations might be bottleneck if there is a lot of strings to process—the disk is pushed by both Weblate and the database.</p></li> <li><p>Additional CPU cores might help improve performance of background tasks (see <a class="reference internal" href="install.html#celery"><span class="std std-ref">Background tasks using Celery</span></a>).</p></li> </ul> </section> <section id="disable-unneeded-checks"> <h3>Disable unneeded checks<a class="headerlink" href="#disable-unneeded-checks" title="Link to this heading">¶</a></h3> <p>Some quality checks can be quite expensive, and if not needed, can save you some time during import if omitted. See <a class="reference internal" href="config.html#std-setting-CHECK_LIST"><code class="xref std std-setting docutils literal notranslate"><span class="pre">CHECK_LIST</span></code></a> for info on configuration.</p> </section> </section> <section id="automatic-creation-of-components"> <span id="autocreate"></span><h2>Automatic creation of components<a class="headerlink" href="#automatic-creation-of-components" title="Link to this heading">¶</a></h2> <p>In case your project has dozen of translation files (e.g. for different gettext domains, or parts of Android apps), you might want to import them automatically. This can either be achieved from the command-line by using <a class="reference internal" href="management.html#weblate-admin-import_project"><code class="xref std std-wladmin docutils literal notranslate"><span class="pre">import_project</span></code></a> or <a class="reference internal" href="management.html#weblate-admin-import_json"><code class="xref std std-wladmin docutils literal notranslate"><span class="pre">import_json</span></code></a>, or by installing the <a class="reference internal" href="addons.html#addon-weblate-discovery-discovery"><span class="std std-ref">Component discovery</span></a> add-on.</p> <p>To use the add-on, you first need to create a component for one translation file (choose the one that is the least likely to be renamed or removed in future), and install the add-on on this component.</p> <p>For the management commands, you need to create a project which will contain all components and then run <a class="reference internal" href="management.html#weblate-admin-import_project"><code class="xref std std-wladmin docutils literal notranslate"><span class="pre">import_project</span></code></a> or <a class="reference internal" href="management.html#weblate-admin-import_json"><code class="xref std std-wladmin docutils literal notranslate"><span class="pre">import_json</span></code></a>.</p> <div class="admonition seealso"> <p class="admonition-title">See also</p> <p><a class="reference internal" href="management.html#manage"><span class="std std-ref">Management commands</span></a>, <a class="reference internal" href="addons.html#addon-weblate-discovery-discovery"><span class="std std-ref">Component discovery</span></a></p> </div> </section> </section> </article> </div> <footer> <div class="related-pages"> <a class="next-page" href="languages.html"> <div class="page-info"> <div class="context"> <span>Next</span> </div> <div class="title">Language definitions</div> </div> <svg class="furo-related-icon"><use href="#svg-arrow-right"></use></svg> </a> <a class="prev-page" href="access.html"> <svg class="furo-related-icon"><use href="#svg-arrow-right"></use></svg> <div class="page-info"> <div class="context"> <span>Previous</span> </div> <div class="title">Access control</div> </div> </a> </div> <div class="bottom-of-page"> <div class="left-details"> <div class="copyright"> Copyright &#169; Michal Čihař </div> Made with <a href="https://www.sphinx-doc.org/">Sphinx</a> and <a class="muted-link" href="https://pradyunsg.me">@pradyunsg</a>'s <a href="https://github.com/pradyunsg/furo">Furo</a> </div> <div class="right-details"> <div class="icons"> </div> </div> </div> </footer> </div> <aside class="toc-drawer"> <div class="toc-sticky toc-scroll"> <div class="toc-title-container"> <span class="toc-title"> On this page </span> </div> <div class="toc-tree-container"> <div class="toc-tree"> <ul> <li><a class="reference internal" href="#">Translation projects</a><ul> <li><a class="reference internal" href="#translation-organization">Translation organization</a></li> <li><a class="reference internal" href="#adding-translation-projects-and-components">Adding translation projects and components</a></li> <li><a class="reference internal" href="#project-configuration">Project configuration</a><ul> <li><a class="reference internal" href="#project-name">Project name</a></li> <li><a class="reference internal" href="#url-slug">URL slug</a></li> <li><a class="reference internal" href="#project-website">Project website</a></li> <li><a class="reference internal" href="#translation-instructions">Translation instructions</a></li> <li><a class="reference internal" href="#set-language-team-header">Set “Language-Team” header</a></li> <li><a class="reference internal" href="#use-shared-translation-memory">Use shared translation memory</a></li> <li><a class="reference internal" href="#contribute-to-shared-translation-memory">Contribute to shared translation memory</a></li> <li><a class="reference internal" href="#access-control">Access control</a></li> <li><a class="reference internal" href="#enforced-two-factor-authentication">Enforced two-factor authentication</a></li> <li><a class="reference internal" href="#enable-reviews">Enable reviews</a></li> <li><a class="reference internal" href="#enable-source-reviews">Enable source reviews</a></li> <li><a class="reference internal" href="#enable-hooks">Enable hooks</a></li> <li><a class="reference internal" href="#language-aliases">Language aliases</a></li> </ul> </li> <li><a class="reference internal" href="#component-configuration">Component configuration</a><ul> <li><a class="reference internal" href="#component-name">Component name</a></li> <li><a class="reference internal" href="#component-slug">Component slug</a></li> <li><a class="reference internal" href="#component-project">Component project</a></li> <li><a class="reference internal" href="#version-control-system">Version control system</a></li> <li><a class="reference internal" href="#source-code-repository">Source code repository</a></li> <li><a class="reference internal" href="#repository-push-url">Repository push URL</a></li> <li><a class="reference internal" href="#repository-browser">Repository browser</a></li> <li><a class="reference internal" href="#exported-repository-url">Exported repository URL</a></li> <li><a class="reference internal" href="#repository-branch">Repository branch</a></li> <li><a class="reference internal" href="#push-branch">Push branch</a></li> <li><a class="reference internal" href="#file-mask">File mask</a></li> <li><a class="reference internal" href="#screenshot-file-mask">Screenshot file mask</a></li> <li><a class="reference internal" href="#monolingual-base-language-file">Monolingual base language file</a></li> <li><a class="reference internal" href="#edit-base-file">Edit base file</a></li> <li><a class="reference internal" href="#intermediate-language-file">Intermediate language file</a></li> <li><a class="reference internal" href="#template-for-new-translations">Template for new translations</a></li> <li><a class="reference internal" href="#file-format">File format</a></li> <li><a class="reference internal" href="#source-string-bug-reporting-address">Source string bug reporting address</a></li> <li><a class="reference internal" href="#allow-translation-propagation">Allow translation propagation</a></li> <li><a class="reference internal" href="#enable-suggestions">Enable suggestions</a></li> <li><a class="reference internal" href="#suggestion-voting">Suggestion voting</a></li> <li><a class="reference internal" href="#automatically-accept-suggestions">Automatically accept suggestions</a></li> <li><a class="reference internal" href="#translation-flags">Translation flags</a></li> <li><a class="reference internal" href="#enforced-checks">Enforced checks</a></li> <li><a class="reference internal" href="#translation-license">Translation license</a></li> <li><a class="reference internal" href="#contributor-license-agreement">Contributor license agreement</a></li> <li><a class="reference internal" href="#adding-new-translation">Adding new translation</a></li> <li><a class="reference internal" href="#manage-strings">Manage strings</a></li> <li><a class="reference internal" href="#language-code-style">Language code style</a></li> <li><a class="reference internal" href="#merge-style">Merge style</a></li> <li><a class="reference internal" href="#commit-add-delete-merge-add-on-and-merge-request-messages">Commit, add, delete, merge, add-on, and merge request messages</a></li> <li><a class="reference internal" href="#push-on-commit">Push on commit</a></li> <li><a class="reference internal" href="#age-of-changes-to-commit">Age of changes to commit</a></li> <li><a class="reference internal" href="#lock-on-error">Lock on error</a></li> <li><a class="reference internal" href="#source-language">Source language</a></li> <li><a class="reference internal" href="#language-filter">Language filter</a></li> <li><a class="reference internal" href="#key-filter">Key filter</a></li> <li><a class="reference internal" href="#variants-regular-expression">Variants regular expression</a></li> <li><a class="reference internal" href="#priority">Priority</a></li> <li><a class="reference internal" href="#restricted-access">Restricted access</a></li> <li><a class="reference internal" href="#share-in-projects">Share in projects</a></li> <li><a class="reference internal" href="#use-as-a-glossary">Use as a glossary</a></li> <li><a class="reference internal" href="#glossary-color">Glossary color</a></li> </ul> </li> <li><a class="reference internal" href="#category">Category</a></li> <li><a class="reference internal" href="#template-markup">Template markup</a></li> <li><a class="reference internal" href="#importing-speed">Importing speed</a><ul> <li><a class="reference internal" href="#optimize-configuration">Optimize configuration</a></li> <li><a class="reference internal" href="#check-resource-limits">Check resource limits</a></li> <li><a class="reference internal" href="#disable-unneeded-checks">Disable unneeded checks</a></li> </ul> </li> <li><a class="reference internal" href="#automatic-creation-of-components">Automatic creation of components</a></li> </ul> </li> </ul> </div> </div> </div> </aside> </div> </div><script src="../_static/documentation_options.js?v=51b2db25"></script> <script src="../_static/doctools.js?v=9bcbadda"></script> <script src="../_static/sphinx_highlight.js?v=dc90522c"></script> <script src="../_static/scripts/furo.js?v=5fa4622c"></script> <script src="../_static/clipboard.min.js?v=a7894cd8"></script> <script src="../_static/copybutton.js?v=f281be69"></script> </body> </html>

Pages: 1 2 3 4 5 6 7 8 9 10