2
0
mirror of https://github.com/inventree/inventree-website.git synced 2025-05-02 07:26:49 +00:00

deploy: 2c377701b33a0806c9de65cdd6e343127f4c541a

This commit is contained in:
SchrodingersGat 2022-11-24 22:26:36 +00:00
parent 4ff5f8baaf
commit a04804bc22
11 changed files with 258 additions and 11 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 52 KiB

View File

@ -64,6 +64,14 @@
<div class="p-6 md:w-1/2 flex flex-col items-start">
<h2 class="header-text title-font mb-4 cm-gray-1">
<a href="/blog/2021/11/22/translation">Translating InvenTree</a>
</h2>
<span class="leading-relaxed mb-4">How we provide translation support for InvenTree in multiple languages</span>
<span>22 Nov 2021 | oliver</span>
</div>
<div class="p-6 md:w-1/2 flex flex-col items-start">
<h2 class="header-text title-font mb-4 cm-gray-1">
<a href="/blog/2021/10/25/starting">Starting with templates</a>

View File

@ -0,0 +1,231 @@
<!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>
<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 framweork</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=&amp;labels=enhancement%2Ctriage%3Anot-checked&amp;template=feature_request.yaml&amp;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>

View File

@ -1 +1 @@
<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom" ><generator uri="https://jekyllrb.com/" version="4.2.2">Jekyll</generator><link href="/blog/feed.atom" rel="self" type="application/atom+xml" /><link href="/" rel="alternate" type="text/html" /><updated>2022-11-18T23:30:32+00:00</updated><id>/blog/feed.atom</id><title type="html">InvenTree</title><subtitle>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 addins for EDA tools, API wrapper, deeply integrated plugins and 3rd party tools.</subtitle><entry><title type="html">Starting with templates</title><link href="/blog/2021/10/25/starting" rel="alternate" type="text/html" title="Starting with templates" /><published>2021-10-25T00:00:00+00:00</published><updated>2021-10-25T00:00:00+00:00</updated><id>/blog/2021/10/25/starting</id><author><name>matmair</name></author><summary type="html"><![CDATA[A good starting-point for developing your own plugin is taking a look at the documentation.]]></summary></entry></feed>
<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom" ><generator uri="https://jekyllrb.com/" version="4.2.2">Jekyll</generator><link href="/blog/feed.atom" rel="self" type="application/atom+xml" /><link href="/" rel="alternate" type="text/html" /><updated>2022-11-24T22:26:28+00:00</updated><id>/blog/feed.atom</id><title type="html">InvenTree</title><subtitle>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 addins for EDA tools, API wrapper, deeply integrated plugins and 3rd party tools.</subtitle><entry><title type="html">Translating InvenTree</title><link href="/blog/2021/11/22/translation" rel="alternate" type="text/html" title="Translating InvenTree" /><published>2021-11-22T00:00:00+00:00</published><updated>2021-11-22T00:00:00+00:00</updated><id>/blog/2021/11/22/translation</id><author><name>oliver</name></author><summary type="html"><![CDATA[How we provide translation support for InvenTree in multiple languages]]></summary></entry><entry><title type="html">Starting with templates</title><link href="/blog/2021/10/25/starting" rel="alternate" type="text/html" title="Starting with templates" /><published>2021-10-25T00:00:00+00:00</published><updated>2021-10-25T00:00:00+00:00</updated><id>/blog/2021/10/25/starting</id><author><name>matmair</name></author><summary type="html"><![CDATA[A good starting-point for developing your own plugin is taking a look at the documentation.]]></summary></entry></feed>

View File

@ -263,6 +263,8 @@

View File

@ -174,6 +174,8 @@

View File

@ -27,11 +27,11 @@
<meta property="og:url" content="/matmair" />
<meta property="og:site_name" content="InvenTree" />
<meta property="og:type" content="article" />
<meta property="article:published_time" content="2022-11-18T23:30:32+00:00" />
<meta property="article:published_time" content="2022-11-24T22:26:28+00:00" />
<meta name="twitter:card" content="summary" />
<meta property="twitter:title" content="Matmair" />
<script type="application/ld+json">
{"@context":"https://schema.org","@type":"BlogPosting","dateModified":"2022-11-18T23:30:32+00:00","datePublished":"2022-11-18T23:30:32+00:00","description":"I try to build an ecosystem of reusable plugins and integrations for InvenTree. Code once and KISS!","headline":"Matmair","mainEntityOfPage":{"@type":"WebPage","@id":"/matmair"},"url":"/matmair"}</script>
{"@context":"https://schema.org","@type":"BlogPosting","dateModified":"2022-11-24T22:26:28+00:00","datePublished":"2022-11-24T22:26:28+00:00","description":"I try to build an ecosystem of reusable plugins and integrations for InvenTree. Code once and KISS!","headline":"Matmair","mainEntityOfPage":{"@type":"WebPage","@id":"/matmair"},"url":"/matmair"}</script>
<!-- End Jekyll SEO tag -->
<script async src="https://offen.inventree.org/script.js" data-account-id="2c8697da-bb92-441b-82ee-ece2622295b2"></script>

View File

@ -1 +1 @@
<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom" ><generator uri="https://jekyllrb.com/" version="4.2.2">Jekyll</generator><link href="/news/feed.atom" rel="self" type="application/atom+xml" /><link href="/" rel="alternate" type="text/html" /><updated>2022-11-18T23:30:32+00:00</updated><id>/news/feed.atom</id><title type="html">InvenTree | News</title><subtitle>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 addins for EDA tools, API wrapper, deeply integrated plugins and 3rd party tools.</subtitle><entry><title type="html">New Website</title><link href="/news/2022/11/14/website" rel="alternate" type="text/html" title="New Website" /><published>2022-11-14T00:00:00+00:00</published><updated>2022-11-14T00:00:00+00:00</updated><id>/news/2022/11/14/website</id><author><name>oliver</name></author><summary type="html"><![CDATA[Introducing the new InvenTree website!]]></summary></entry><entry><title type="html">We have news now!</title><link href="/news/2022/04/23/news-are-starting" rel="alternate" type="text/html" title="We have news now!" /><published>2022-04-23T00:00:00+00:00</published><updated>2022-04-23T00:00:00+00:00</updated><id>/news/2022/04/23/news-are-starting</id><author><name>matmair</name></author><summary type="html"><![CDATA[News!]]></summary></entry></feed>
<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom" ><generator uri="https://jekyllrb.com/" version="4.2.2">Jekyll</generator><link href="/news/feed.atom" rel="self" type="application/atom+xml" /><link href="/" rel="alternate" type="text/html" /><updated>2022-11-24T22:26:28+00:00</updated><id>/news/feed.atom</id><title type="html">InvenTree | News</title><subtitle>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 addins for EDA tools, API wrapper, deeply integrated plugins and 3rd party tools.</subtitle><entry><title type="html">New Website</title><link href="/news/2022/11/14/website" rel="alternate" type="text/html" title="New Website" /><published>2022-11-14T00:00:00+00:00</published><updated>2022-11-14T00:00:00+00:00</updated><id>/news/2022/11/14/website</id><author><name>oliver</name></author><summary type="html"><![CDATA[Introducing the new InvenTree website!]]></summary></entry><entry><title type="html">We have news now!</title><link href="/news/2022/04/23/news-are-starting" rel="alternate" type="text/html" title="We have news now!" /><published>2022-04-23T00:00:00+00:00</published><updated>2022-04-23T00:00:00+00:00</updated><id>/news/2022/04/23/news-are-starting</id><author><name>matmair</name></author><summary type="html"><![CDATA[News!]]></summary></entry></feed>

View File

@ -27,11 +27,11 @@
<meta property="og:url" content="/repo/shopify.html" />
<meta property="og:site_name" content="InvenTree" />
<meta property="og:type" content="article" />
<meta property="article:published_time" content="2022-11-18T23:30:32+00:00" />
<meta property="article:published_time" content="2022-11-24T22:26:28+00:00" />
<meta name="twitter:card" content="summary" />
<meta property="twitter:title" content="Shopify" />
<script type="application/ld+json">
{"@context":"https://schema.org","@type":"BlogPosting","dateModified":"2022-11-18T23:30:32+00:00","datePublished":"2022-11-18T23:30:32+00:00","description":"A simple Integration into Shopify.","headline":"Shopify","mainEntityOfPage":{"@type":"WebPage","@id":"/repo/shopify.html"},"url":"/repo/shopify.html"}</script>
{"@context":"https://schema.org","@type":"BlogPosting","dateModified":"2022-11-24T22:26:28+00:00","datePublished":"2022-11-24T22:26:28+00:00","description":"A simple Integration into Shopify.","headline":"Shopify","mainEntityOfPage":{"@type":"WebPage","@id":"/repo/shopify.html"},"url":"/repo/shopify.html"}</script>
<!-- End Jekyll SEO tag -->
<script async src="https://offen.inventree.org/script.js" data-account-id="2c8697da-bb92-441b-82ee-ece2622295b2"></script>

View File

@ -27,11 +27,11 @@
<meta property="og:url" content="/schrodingersgat" />
<meta property="og:site_name" content="InvenTree" />
<meta property="og:type" content="article" />
<meta property="article:published_time" content="2022-11-18T23:30:32+00:00" />
<meta property="article:published_time" content="2022-11-24T22:26:28+00:00" />
<meta name="twitter:card" content="summary" />
<meta property="twitter:title" content="Schrodingersgat" />
<script type="application/ld+json">
{"@context":"https://schema.org","@type":"BlogPosting","dateModified":"2022-11-18T23:30:32+00:00","datePublished":"2022-11-18T23:30:32+00:00","description":"Maintainer of InvenTree.","headline":"Schrodingersgat","mainEntityOfPage":{"@type":"WebPage","@id":"/schrodingersgat"},"url":"/schrodingersgat"}</script>
{"@context":"https://schema.org","@type":"BlogPosting","dateModified":"2022-11-24T22:26:28+00:00","datePublished":"2022-11-24T22:26:28+00:00","description":"Maintainer of InvenTree.","headline":"Schrodingersgat","mainEntityOfPage":{"@type":"WebPage","@id":"/schrodingersgat"},"url":"/schrodingersgat"}</script>
<!-- End Jekyll SEO tag -->
<script async src="https://offen.inventree.org/script.js" data-account-id="2c8697da-bb92-441b-82ee-ece2622295b2"></script>

View File

@ -13,16 +13,20 @@
<lastmod>2021-10-25T00:00:00+00:00</lastmod>
</url>
<url>
<loc>/blog/2021/11/22/translation</loc>
<lastmod>2021-11-22T00:00:00+00:00</lastmod>
</url>
<url>
<loc>/matmair</loc>
<lastmod>2022-11-18T23:30:32+00:00</lastmod>
<lastmod>2022-11-24T22:26:28+00:00</lastmod>
</url>
<url>
<loc>/schrodingersgat</loc>
<lastmod>2022-11-18T23:30:32+00:00</lastmod>
<lastmod>2022-11-24T22:26:28+00:00</lastmod>
</url>
<url>
<loc>/repo/shopify.html</loc>
<lastmod>2022-11-18T23:30:32+00:00</lastmod>
<lastmod>2022-11-24T22:26:28+00:00</lastmod>
</url>
<url>
<loc>/404</loc>