mirror of
				https://github.com/inventree/inventree-website.git
				synced 2025-11-03 23:15:45 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			234 lines
		
	
	
		
			11 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
			
		
		
	
	
			234 lines
		
	
	
		
			11 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
<!DOCTYPE html>
 | 
						|
<html lang=" en-US ">
 | 
						|
 | 
						|
<head>
 | 
						|
    <meta charset="UTF-8">
 | 
						|
<meta http-equiv="X-UA-Compatible" content="IE=edge">
 | 
						|
<meta name="viewport" content="width=device-width, initial-scale=1">
 | 
						|
 | 
						|
<link rel="stylesheet" href="/assets/splide/css/splide.min.css">
 | 
						|
<link rel="stylesheet" href="/assets/index.css">
 | 
						|
<link rel="shortcut icon" type="image/png" href="/assets/icon/favicon.ico">
 | 
						|
 | 
						|
<script src="/assets/splide/js/splide.min.js"></script>
 | 
						|
 | 
						|
<!-- Fontawesome integration -->
 | 
						|
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.2.1/css/all.min.css">
 | 
						|
 | 
						|
<title>InvenTree - Translating InvenTree</title>
 | 
						|
<meta itemprop="description" name="description"
 | 
						|
    content="InvenTree is an open-source inventory management system which provides intuitive parts management and stock control. It is at the center of an ecosystem of a..." />
 | 
						|
 | 
						|
<!-- Begin Jekyll SEO tag v2.8.0 -->
 | 
						|
<title>Translating InvenTree | InvenTree</title>
 | 
						|
<meta name="generator" content="Jekyll v4.2.2" />
 | 
						|
<meta property="og:title" content="Translating InvenTree" />
 | 
						|
<meta name="author" content="oliver" />
 | 
						|
<meta property="og:locale" content="en_US" />
 | 
						|
<meta name="description" content="How we provide translation support for InvenTree in multiple languages" />
 | 
						|
<meta property="og:description" content="How we provide translation support for InvenTree in multiple languages" />
 | 
						|
<link rel="canonical" href="/blog/2021/11/22/translation" />
 | 
						|
<meta property="og:url" content="/blog/2021/11/22/translation" />
 | 
						|
<meta property="og:site_name" content="InvenTree" />
 | 
						|
<meta property="og:type" content="article" />
 | 
						|
<meta property="article:published_time" content="2021-11-22T00:00:00+00:00" />
 | 
						|
<meta name="twitter:card" content="summary" />
 | 
						|
<meta property="twitter:title" content="Translating InvenTree" />
 | 
						|
<script type="application/ld+json">
 | 
						|
{"@context":"https://schema.org","@type":"BlogPosting","author":{"@type":"Person","name":"oliver"},"dateModified":"2021-11-22T00:00:00+00:00","datePublished":"2021-11-22T00:00:00+00:00","description":"How we provide translation support for InvenTree in multiple languages","headline":"Translating InvenTree","mainEntityOfPage":{"@type":"WebPage","@id":"/blog/2021/11/22/translation"},"url":"/blog/2021/11/22/translation"}</script>
 | 
						|
<!-- End Jekyll SEO tag -->
 | 
						|
 | 
						|
    <script async src="https://offen.inventree.org/script.js" data-account-id="2c8697da-bb92-441b-82ee-ece2622295b2"></script>
 | 
						|
</head>
 | 
						|
 | 
						|
<body class="flex flex-col antialiased cm-gray-1 min-h-screen">
 | 
						|
    <div class="flex-none">
 | 
						|
        <header class="cm-gray-2 body-font sticky top-0 z-50 bg-gradient-to-r from-white to-secondary">
 | 
						|
    <div class="container mx-auto flex flex-wrap p-5 flex-row items-center">
 | 
						|
        <a class="flex title-font font-medium items-center cm-gray-1 mb-0 mr-2" href="/">
 | 
						|
            <img src="/assets/logo.png" alt="logo" height="32" width="32" class="h-8">
 | 
						|
            <span class="ml-3 text-xl">InvenTree</span>
 | 
						|
        </a>
 | 
						|
 | 
						|
        <div class="flex-grow xs:flex-none"></div>
 | 
						|
 | 
						|
        <nav class="md:mr-auto md:py-1 xs:ml-4 xs:pl-4 xs:border-l xs:border-gray-400	flex flex-wrap items-center text-base justify-center">
 | 
						|
            <a class="mr-5 hover:cm-gray-1" href="/deploy.html">Deploy</a>
 | 
						|
            <a class="mr-5 hover:cm-gray-1" href="https://docs.inventree.org/en/latest/">Docs</a>
 | 
						|
            <a class="mr-5 hover:cm-gray-1" href="/blog">Blog</a>
 | 
						|
        </nav>
 | 
						|
 | 
						|
        
 | 
						|
    </div>
 | 
						|
</header> <header>
 | 
						|
    
 | 
						|
    <a href="/blog" class="flex items-center m-5 text-xl hover:underline">
 | 
						|
        <img class="w-6 h-6" alt="go back" src="/assets/back.svg">
 | 
						|
        <span>Back</span>
 | 
						|
    </a>
 | 
						|
    
 | 
						|
</header>
 | 
						|
 | 
						|
<article>
 | 
						|
    <h1>Translating InvenTree</h1>
 | 
						|
    <p>
 | 
						|
      22 Nov 2021
 | 
						|
      
 | 
						|
      
 | 
						|
        - <a href="/schrodingersgat">Oliver</a>
 | 
						|
      
 | 
						|
    </p>
 | 
						|
    <p>How we provide translation support for InvenTree in multiple languages</p>
 | 
						|
 | 
						|
<h3 id="community-contributed-translations">Community Contributed Translations</h3>
 | 
						|
 | 
						|
<p>At the time of writing, InvenTree provides language translations for 25 languages (in addition to English), with over 11,000 translated words! This is thanks to the sustained efforts of 130+ InvenTree users, who have contributed their time to make our software better for everyone.</p>
 | 
						|
 | 
						|
<p>Translation progress can be viewed on our <a href="https://crowdin.com/project/inventree">Crowdin project page</a>. Here you can view the current status of the translation efforts:</p>
 | 
						|
 | 
						|
<p><img src="/assets/blog/2022-11-22-translation.png" alt="Translations"></p>
 | 
						|
 | 
						|
<h3 id="translation-pipeline">Translation Pipeline</h3>
 | 
						|
 | 
						|
<p>As translations are entirely community contributed, we need a software framework that allows non-technical users to submit and proofread translations, and a way to bring those translations back into the InvenTree software.</p>
 | 
						|
 | 
						|
<h4 id="backend---django">Backend - Django</h4>
 | 
						|
 | 
						|
<p>At its core, InvenTree is built on the <a href="https://www.djangoproject.com/">Django</a> framework, which provides a <a href="https://docs.djangoproject.com/en/4.1/topics/i18n/translation/">translation framework</a> “out of the box”.</p>
 | 
						|
 | 
						|
<p>The Django translation framework provides a toolkit for marking certain text strings as “translatable”. Translation strings are able to be replaced by a translated string from a language specified by the user - <em>if a translation for the text is available in that language</em>.</p>
 | 
						|
 | 
						|
<p>There are many files within the InvenTree project which can provide these translation strings:</p>
 | 
						|
 | 
						|
<ul>
 | 
						|
  <li>Python source files</li>
 | 
						|
  <li>Javascript source files</li>
 | 
						|
  <li>HTML template files</li>
 | 
						|
</ul>
 | 
						|
 | 
						|
<p>Additionally, translation support is provided for the <a href="/extend/app.md">InvenTree Mobile App</a>!</p>
 | 
						|
 | 
						|
<h4 id="exporting-translations---github">Exporting Translations - GitHub</h4>
 | 
						|
 | 
						|
<p>On every commit to the InvenTree main branch, the source code is analyzed to discover and extract translation strings. This information is then pushed to a separate code branch, which is monitored by the <a href="#community-translation---crowdin">translation service</a></p>
 | 
						|
 | 
						|
<h4 id="community-translation---crowdin">Community Translation - Crowdin</h4>
 | 
						|
 | 
						|
<p>The crucial piece of the puzzle is the integration with <a href="https://crowdin.com/">Crowdin</a> - an online translation service which provides community contributed translation, and supports open source projects.</p>
 | 
						|
 | 
						|
<p>Crowdin monitors the <a href="https://github.com/inventree/inventree">InvenTree GitHub repository</a> for any changes to translation files, and provides a user interface for translators to suggest appropriate translated strings.</p>
 | 
						|
 | 
						|
<p>Suggested translations are then approved (again, by the InvenTree user community), and periodically pushed back to the InvenTree GitHub repo.</p>
 | 
						|
 | 
						|
<h4 id="merging-translations---github">Merging Translations - GitHub</h4>
 | 
						|
 | 
						|
<p>Updated translated strings are periodically merged back into the main code branch, keeping the InvenTree code base up to date.</p>
 | 
						|
 | 
						|
<h3 id="contributing">Contributing</h3>
 | 
						|
 | 
						|
<p>The translation framework is provided by the InvenTree team to make our software more useful and appealing to a greater number of people. The entire translation effort is driven by the InvenTree community. Any contributions, no matter how large or small, are greatly encouraged!</p>
 | 
						|
 | 
						|
<p>If you would like to see improved translations in a particular language, read the <a href="/contribute.md#translate">contribution guide</a>! The InvenTree project benefits greatly from your efforts, and you get a great piece of open source software in your native language.</p>
 | 
						|
 | 
						|
<h4 id="adding-new-languages">Adding New Languages</h4>
 | 
						|
 | 
						|
<p>If you would like to see support for a new language, <a href="https://github.com/inventree/InvenTree/issues/new?assignees=&labels=enhancement%2Ctriage%3Anot-checked&template=feature_request.yaml&title=%5BFR%5D+title">raise an issue on our GitHub page</a>.</p>
 | 
						|
 | 
						|
 | 
						|
</article>
 | 
						|
    </div>
 | 
						|
 | 
						|
    <div class="flex-grow"></div>
 | 
						|
    <div class="flex-none">
 | 
						|
        <footer class="cm-gray-2 body-font">
 | 
						|
  <div class="container px-5 pt-8 mx-auto flex md:flex-row md:flex-nowrap flex-wrap flex-col">
 | 
						|
    <div class="w-64 flex-shrink-0 md:mx-0 mx-auto text-center md:text-left">
 | 
						|
      <a class="flex title-font font-medium items-center md:justify-start justify-center cm-gray-1">
 | 
						|
        <img src="/assets/logo.png" alt="logo" height="32" width="32" class="h-8">
 | 
						|
        <span class="ml-3 text-xl">InvenTree</span>
 | 
						|
      </a>
 | 
						|
      <p class="mt-2 text-sm cm-gray-3">Intuitive Inventory Management</p>
 | 
						|
    </div>
 | 
						|
 | 
						|
    <div class="flex-grow flex flex-wrap md:pl-10 mb-1 md:mt-0 mt-10 md:text-left text-center md:justify-left justify-center">
 | 
						|
    
 | 
						|
    
 | 
						|
      <div class="md:w-1/4 px-4">
 | 
						|
        <h2 class="footer-categorie title-font">
 | 
						|
          Quick
 | 
						|
        </h2>
 | 
						|
        <nav class="list-none mb-10"><ul>
 | 
						|
          
 | 
						|
          <li><a href="/demo.html" class="footer-link">Demo</a></li>
 | 
						|
          
 | 
						|
          <li><a href="/deploy.html" class="footer-link">Deploy</a></li>
 | 
						|
          
 | 
						|
          <li><a href="https://docs.inventree.org/en/latest/" class="footer-link">Docs</a></li>
 | 
						|
          
 | 
						|
          <li><a href="/news" class="footer-link">News</a></li>
 | 
						|
          
 | 
						|
        </ul></nav>
 | 
						|
      </div>
 | 
						|
    
 | 
						|
      <div class="md:w-1/4 px-4">
 | 
						|
        <h2 class="footer-categorie title-font">
 | 
						|
          <a href="/extend/">Ecosystem</a>
 | 
						|
        </h2>
 | 
						|
        <nav class="list-none mb-10"><ul>
 | 
						|
          
 | 
						|
          <li><a href="/extend/api.html" class="footer-link">API</a></li>
 | 
						|
          
 | 
						|
          <li><a href="/extend/app.html" class="footer-link">App</a></li>
 | 
						|
          
 | 
						|
          <li><a href="/extend/integrate/" class="footer-link">Integrate</a></li>
 | 
						|
          
 | 
						|
          <li><a href="/extend/plugin/" class="footer-link">Plugins</a></li>
 | 
						|
          
 | 
						|
          <li><a href="https://github.com/sparkmicro/Ki-nTree" class="footer-link">KiCad</a></li>
 | 
						|
          
 | 
						|
        </ul></nav>
 | 
						|
      </div>
 | 
						|
    
 | 
						|
      <div class="md:w-1/4 px-4">
 | 
						|
        <h2 class="footer-categorie title-font">
 | 
						|
          Sitemap
 | 
						|
        </h2>
 | 
						|
        <nav class="list-none mb-10"><ul>
 | 
						|
          
 | 
						|
          <li><a href="/about/" class="footer-link">About</a></li>
 | 
						|
          
 | 
						|
          <li><a href="/alternatives/" class="footer-link">Alternatives</a></li>
 | 
						|
          
 | 
						|
          <li><a href="/blog" class="footer-link">Blog</a></li>
 | 
						|
          
 | 
						|
          <li><a href="/contribute.html" class="footer-link">Contribute</a></li>
 | 
						|
          
 | 
						|
          <li><a href="/support.html" class="footer-link">Support</a></li>
 | 
						|
          
 | 
						|
        </ul></nav>
 | 
						|
      </div>
 | 
						|
    
 | 
						|
    </div>
 | 
						|
  </div>
 | 
						|
 | 
						|
  <div class="bg-gray-100">
 | 
						|
    <div class="container mx-auto py-4 px-5 flex flex-wrap flex-col sm:flex-row">
 | 
						|
      <p class="cm-gray-2 text-sm text-center sm:text-left">© 2021-now InvenTree by<a href="https://github.com/inventree" rel="noopener" class="cm-gray-2 ml-1" target="_blank">@inventree</a>— website made with ♥ by<a href="https://github.com/matmair" rel="noopener" class="cm-gray-2 ml-1" target="_blank">@matmair</a></p>
 | 
						|
      <span class="inline-flex sm:ml-auto sm:mt-0 mt-2 justify-center sm:justify-start">
 | 
						|
        <a href="https://github.com/inventree/inventree" alt="github repo" class="ml-3 cm-gray-3">
 | 
						|
          <img class="h-5 w-5" alt="GitHub logo" src="/assets/github.svg">
 | 
						|
        </a>
 | 
						|
        <a href="https://reddit.com/r/inventree" alt="Reddit" class="ml-3 cm-gray-3">
 | 
						|
          <img class="h-5 w-5" alt="Reddit logo" src="/assets/reddit.svg">
 | 
						|
        </a>
 | 
						|
        <a href="https://twitter.com/inventreedb" alt="Twitter" class="ml-3 cm-gray-3">
 | 
						|
          <img class="h-5 w-5" alt="Twitter logo" src="/assets/twitter.svg">
 | 
						|
        </a>
 | 
						|
      </span>
 | 
						|
    </div>
 | 
						|
  </div>
 | 
						|
</footer>
 | 
						|
    </div>
 | 
						|
</body>
 | 
						|
 | 
						|
</html> |