mirror of
https://github.com/inventree/InvenTree
synced 2024-08-30 18:33:04 +00:00
Merge branch 'maintenance-mode-fix' into api-docs
This commit is contained in:
commit
fa5f04bfda
63
.github/workflows/qc_checks.yaml
vendored
63
.github/workflows/qc_checks.yaml
vendored
@ -30,6 +30,7 @@ jobs:
|
||||
server: ${{ steps.filter.outputs.server }}
|
||||
migrations: ${{ steps.filter.outputs.migrations }}
|
||||
frontend: ${{ steps.filter.outputs.frontend }}
|
||||
api: ${{ steps.filter.outputs.api }}
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # pin@v4.1.1
|
||||
@ -44,6 +45,8 @@ jobs:
|
||||
migrations:
|
||||
- '**/migrations/**'
|
||||
- '.github/workflows**'
|
||||
api:
|
||||
- 'InvenTree/InvenTree/api_version.py'
|
||||
frontend:
|
||||
- 'src/frontend/**'
|
||||
|
||||
@ -126,6 +129,8 @@ jobs:
|
||||
INVENTREE_PYTHON_TEST_SERVER: http://localhost:12345
|
||||
INVENTREE_PYTHON_TEST_USERNAME: testuser
|
||||
INVENTREE_PYTHON_TEST_PASSWORD: testpassword
|
||||
outputs:
|
||||
version: ${{ steps.version.outputs.version }}
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # pin@v4.1.1
|
||||
@ -136,8 +141,64 @@ jobs:
|
||||
dev-install: true
|
||||
update: true
|
||||
- name: Export API Documentation
|
||||
run: invoke schema --ignore-warnings
|
||||
- name: Upload schema
|
||||
uses: actions/upload-artifact@a8a3f3ad30e3422c9c7b888a15615d19a852ae32 # pin@v3.1.3
|
||||
with:
|
||||
name: schema.yml
|
||||
path: InvenTree/schema.yml
|
||||
- name: Download public schema
|
||||
if: needs.paths-filter.outputs.api == 'false'
|
||||
run: |
|
||||
invoke schema --ignore-warnings
|
||||
pip install requests >/dev/null 2>&1
|
||||
version="$(python3 ci/version_check.py only_version 2>&1)"
|
||||
echo "Version: $version"
|
||||
url="https://raw.githubusercontent.com/inventree/schema/main/export/${version}/api.yaml"
|
||||
echo "URL: $url"
|
||||
curl -s -o api.yaml $url
|
||||
echo "Downloaded api.yaml"
|
||||
- name: Check for differences in schemas
|
||||
if: needs.paths-filter.outputs.api == 'false'
|
||||
run: |
|
||||
diff --color -u InvenTree/schema.yml api.yaml
|
||||
diff -u InvenTree/schema.yml api.yaml && echo "no difference in API schema " || echo "differences in API schema" && exit 2
|
||||
- name: Check schema - including warnings
|
||||
run: invoke schema
|
||||
continue-on-error: true
|
||||
- name: Extract version for publishing
|
||||
id: version
|
||||
if: github.ref == 'refs/heads/master' && needs.paths-filter.outputs.api == 'true'
|
||||
run: |
|
||||
pip install requests >/dev/null 2>&1
|
||||
version="$(python3 ci/version_check.py only_version 2>&1)"
|
||||
echo "Version: $version"
|
||||
echo "version=$version" >> "$GITHUB_OUTPUT"
|
||||
|
||||
schema-push:
|
||||
name: Push new schema
|
||||
runs-on: ubuntu-20.04
|
||||
needs: [paths-filter, schema]
|
||||
if: needs.schema.result == 'success' && github.ref == 'refs/heads/master' && needs.paths-filter.outputs.api == 'true'
|
||||
env:
|
||||
version: ${{ needs.schema.outputs.version }}
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
with:
|
||||
repository: inventree/schema
|
||||
token: ${{ secrets.SCHEMA_PAT }}
|
||||
- name: Download schema artifact
|
||||
uses: actions/download-artifact@v3
|
||||
with:
|
||||
name: schema.yml
|
||||
- name: Move schema to correct location
|
||||
run: |
|
||||
echo "Version: $version"
|
||||
mkdir export/${version}
|
||||
mv schema.yml export/${version}/api.yaml
|
||||
- uses: stefanzweifel/git-auto-commit-action@v5
|
||||
with:
|
||||
commit_message: "Update API schema for ${version}"
|
||||
|
||||
python:
|
||||
name: Tests - inventree-python
|
||||
|
@ -1,11 +1,14 @@
|
||||
"""InvenTree API version information."""
|
||||
|
||||
# InvenTree API version
|
||||
INVENTREE_API_VERSION = 166
|
||||
INVENTREE_API_VERSION = 167
|
||||
"""Increment this API version number whenever there is a significant change to the API that any clients need to know about."""
|
||||
|
||||
INVENTREE_API_TEXT = """
|
||||
|
||||
v167 -> 2024-02-07: https://github.com/inventree/InvenTree/pull/6440
|
||||
- Fixes for OpenAPI schema generation
|
||||
|
||||
v166 -> 2024-02-04 : https://github.com/inventree/InvenTree/pull/6400
|
||||
- Adds package_name to plugin API
|
||||
- Adds mechanism for uninstalling plugins via the API
|
||||
|
@ -1,5 +1,6 @@
|
||||
"""Custom backend implementations."""
|
||||
|
||||
import datetime
|
||||
import logging
|
||||
import time
|
||||
|
||||
@ -8,7 +9,6 @@ from django.db.utils import IntegrityError, OperationalError, ProgrammingError
|
||||
from maintenance_mode.backends import AbstractStateBackend
|
||||
|
||||
import common.models
|
||||
import InvenTree.ready
|
||||
|
||||
logger = logging.getLogger('inventree')
|
||||
|
||||
@ -16,8 +16,7 @@ logger = logging.getLogger('inventree')
|
||||
class InvenTreeMaintenanceModeBackend(AbstractStateBackend):
|
||||
"""Custom backend for managing state of maintenance mode.
|
||||
|
||||
Stores the current state of the maintenance mode in the database,
|
||||
using an InvenTreeSetting object.
|
||||
Stores a timestamp in the database to determine when maintenance mode will elapse.
|
||||
"""
|
||||
|
||||
SETTING_KEY = '_MAINTENANCE_MODE'
|
||||
@ -30,26 +29,45 @@ class InvenTreeMaintenanceModeBackend(AbstractStateBackend):
|
||||
"""
|
||||
try:
|
||||
setting = common.models.InvenTreeSetting.objects.get(key=self.SETTING_KEY)
|
||||
value = InvenTree.helpers.str2bool(setting.value)
|
||||
value = str(setting.value).strip()
|
||||
except common.models.InvenTreeSetting.DoesNotExist:
|
||||
# Database is accessible, but setting is not available - assume False
|
||||
value = False
|
||||
return False
|
||||
except (IntegrityError, OperationalError, ProgrammingError):
|
||||
# Database is inaccessible - assume we are not in maintenance mode
|
||||
logger.warning('Failed to read maintenance mode state - assuming True')
|
||||
value = True
|
||||
logger.debug('Failed to read maintenance mode state - assuming True')
|
||||
return True
|
||||
|
||||
logger.debug('Maintenance mode state: %s', value)
|
||||
# Extract timestamp from string
|
||||
try:
|
||||
# If the timestamp is in the past, we are now *out* of maintenance mode
|
||||
timestamp = datetime.datetime.fromisoformat(value)
|
||||
return timestamp > datetime.datetime.now()
|
||||
except ValueError:
|
||||
# If the value is not a valid timestamp, assume maintenance mode is not active
|
||||
return False
|
||||
|
||||
return value
|
||||
def set_value(self, value: bool, retries: int = 5, minutes: int = 5):
|
||||
"""Set the state of the maintenance mode.
|
||||
|
||||
def set_value(self, value: bool, retries: int = 5):
|
||||
"""Set the state of the maintenance mode."""
|
||||
Instead of simply writing "true" or "false" to the setting,
|
||||
we write a timestamp to the setting, which is used to determine
|
||||
when maintenance mode will elapse.
|
||||
This ensures that we will always *exit* maintenance mode after a certain time period.
|
||||
"""
|
||||
logger.debug('Setting maintenance mode state: %s', value)
|
||||
|
||||
if value:
|
||||
# Save as isoformat
|
||||
timestamp = datetime.datetime.now() + datetime.timedelta(minutes=minutes)
|
||||
timestamp = timestamp.isoformat()
|
||||
else:
|
||||
# Blank timestamp means maintenance mode is not active
|
||||
timestamp = ''
|
||||
|
||||
while retries > 0:
|
||||
try:
|
||||
common.models.InvenTreeSetting.set_setting(self.SETTING_KEY, value)
|
||||
common.models.InvenTreeSetting.set_setting(self.SETTING_KEY, timestamp)
|
||||
|
||||
# Read the value back to confirm
|
||||
if self.get_value() == value:
|
||||
|
@ -19,6 +19,7 @@ import pint.errors
|
||||
from djmoney.contrib.exchange.exceptions import MissingRate
|
||||
from djmoney.contrib.exchange.models import Rate, convert_money
|
||||
from djmoney.money import Money
|
||||
from maintenance_mode.core import get_maintenance_mode, set_maintenance_mode
|
||||
from sesame.utils import get_user
|
||||
|
||||
import InvenTree.conversion
|
||||
@ -1264,3 +1265,55 @@ class MagicLoginTest(InvenTreeTestCase):
|
||||
self.assertEqual(resp.url, '/api/auth/login-redirect/')
|
||||
# And we should be logged in again
|
||||
self.assertEqual(resp.wsgi_request.user, self.user)
|
||||
|
||||
|
||||
class MaintenanceModeTest(InvenTreeTestCase):
|
||||
"""Unit tests for maintenance mode."""
|
||||
|
||||
def test_basic(self):
|
||||
"""Test basic maintenance mode operation."""
|
||||
for value in [False, True, False]:
|
||||
set_maintenance_mode(value)
|
||||
self.assertEqual(get_maintenance_mode(), value)
|
||||
|
||||
# API request is blocked in maintenance mode
|
||||
set_maintenance_mode(True)
|
||||
|
||||
response = self.client.get('/api/')
|
||||
self.assertEqual(response.status_code, 503)
|
||||
|
||||
set_maintenance_mode(False)
|
||||
|
||||
response = self.client.get('/api/')
|
||||
self.assertEqual(response.status_code, 200)
|
||||
|
||||
def test_timestamp(self):
|
||||
"""Test that the timestamp value is interpreted correctly."""
|
||||
KEY = '_MAINTENANCE_MODE'
|
||||
|
||||
# Deleting the setting means maintenance mode is off
|
||||
InvenTreeSetting.objects.filter(key=KEY).delete()
|
||||
|
||||
self.assertFalse(get_maintenance_mode())
|
||||
|
||||
def set_timestamp(value):
|
||||
InvenTreeSetting.set_setting(KEY, value, None)
|
||||
|
||||
# Test blank value
|
||||
set_timestamp('')
|
||||
self.assertFalse(get_maintenance_mode())
|
||||
|
||||
# Test timestamp in the past
|
||||
ts = datetime.now() - timedelta(minutes=10)
|
||||
set_timestamp(ts.isoformat())
|
||||
self.assertFalse(get_maintenance_mode())
|
||||
|
||||
# Test timestamp in the future
|
||||
ts = datetime.now() + timedelta(minutes=10)
|
||||
set_timestamp(ts.isoformat())
|
||||
self.assertTrue(get_maintenance_mode())
|
||||
|
||||
# Set to false, check for empty string
|
||||
set_maintenance_mode(False)
|
||||
self.assertFalse(get_maintenance_mode())
|
||||
self.assertEqual(InvenTreeSetting.get_setting(KEY, None), '')
|
||||
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@ -224,9 +224,9 @@ class SupplierBarcodeMixin(BarcodeMixin):
|
||||
return None
|
||||
|
||||
if supplier_pk := self.get_setting('SUPPLIER_ID'):
|
||||
if supplier := Company.objects.get(pk=supplier_pk):
|
||||
return supplier
|
||||
else:
|
||||
try:
|
||||
return Company.objects.get(pk=supplier_pk)
|
||||
except Company.DoesNotExist:
|
||||
logger.error(
|
||||
'No company with pk %d (set "SUPPLIER_ID" setting to a valid value)',
|
||||
supplier_pk,
|
||||
|
@ -2,6 +2,7 @@
|
||||
|
||||
import json as json_pkg
|
||||
import logging
|
||||
from collections.abc import Iterable
|
||||
|
||||
import requests
|
||||
|
||||
@ -107,7 +108,9 @@ class APICallMixin:
|
||||
"""Returns an encoded path for the provided dict."""
|
||||
groups = []
|
||||
for key, val in arguments.items():
|
||||
groups.append(f'{key}={",".join([str(a) for a in val])}')
|
||||
if isinstance(val, Iterable) and not isinstance(val, str):
|
||||
val = ','.join([str(a) for a in val])
|
||||
groups.append(f'{key}={val}')
|
||||
return f'?{"&".join(groups)}'
|
||||
|
||||
def api_call(
|
||||
|
@ -263,14 +263,17 @@ class APICallMixinTest(BaseMixinDefinition, TestCase):
|
||||
"""Test that building up args work."""
|
||||
# api_build_url_args
|
||||
# 1 arg
|
||||
result = self.mixin.api_build_url_args({'a': 'b'})
|
||||
self.assertEqual(result, '?a=b')
|
||||
result = self.mixin.api_build_url_args({'a': 'abc123'})
|
||||
self.assertEqual(result, '?a=abc123')
|
||||
# non string arg
|
||||
result = self.mixin.api_build_url_args({'a': 1})
|
||||
self.assertEqual(result, '?a=1')
|
||||
# more args
|
||||
result = self.mixin.api_build_url_args({'a': 'b', 'c': 'd'})
|
||||
self.assertEqual(result, '?a=b&c=d')
|
||||
result = self.mixin.api_build_url_args({'a': 'b', 'c': 42})
|
||||
self.assertEqual(result, '?a=b&c=42')
|
||||
# list args
|
||||
result = self.mixin.api_build_url_args({'a': 'b', 'c': ['d', 'e', 'f']})
|
||||
self.assertEqual(result, '?a=b&c=d,e,f')
|
||||
result = self.mixin.api_build_url_args({'a': 'b', 'c': ['d', 'efgh', 1337]})
|
||||
self.assertEqual(result, '?a=b&c=d,efgh,1337')
|
||||
|
||||
def test_api_call(self):
|
||||
"""Test that api calls work."""
|
||||
|
@ -337,6 +337,8 @@ class PluginsRegistry:
|
||||
collect,
|
||||
)
|
||||
|
||||
_maintenance_mode = get_maintenance_mode()
|
||||
|
||||
with maintenance_mode_on():
|
||||
if collect:
|
||||
logger.info('Collecting plugins')
|
||||
@ -347,6 +349,10 @@ class PluginsRegistry:
|
||||
self.plugins_loaded = True
|
||||
self._load_plugins(full_reload=full_reload)
|
||||
|
||||
# Check if we wish to exit maintenance mode
|
||||
if not _maintenance_mode:
|
||||
set_maintenance_mode(False)
|
||||
|
||||
self.update_plugin_hash()
|
||||
|
||||
self.loading_lock.release()
|
||||
|
@ -7,8 +7,13 @@
|
||||
{% block content %}
|
||||
<h3>{% trans "Sign Up" %}</h3>
|
||||
|
||||
<p>{% blocktrans with provider_name=account.get_provider.name site_name=site.name %}You are about to use your {{provider_name}} account to login to
|
||||
{{site_name}}.<br>As a final step, please complete the following form:{% endblocktrans %}</p>
|
||||
<p>
|
||||
{% blocktrans with provider_name=account.get_provider.name site_name=site.name %}
|
||||
You are about to use your {{provider_name}} account to login to {{site_name}}.
|
||||
{% endblocktrans %}
|
||||
<br>
|
||||
{% trans "As a final step, please complete the following form" %}:
|
||||
</p>
|
||||
|
||||
<form class="signup" id="signup_form" method="post" action="{% url 'socialaccount_signup' %}">
|
||||
{% csrf_token %}
|
||||
|
@ -90,6 +90,13 @@ def check_version_number(version_string, allow_duplicate=False):
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
if 'only_version' in sys.argv:
|
||||
here = Path(__file__).parent.absolute()
|
||||
version_file = here.joinpath('..', 'InvenTree', 'InvenTree', 'api_version.py')
|
||||
text = version_file.read_text()
|
||||
results = re.findall(r"""INVENTREE_API_VERSION = (.*)""", text)
|
||||
print(results[0])
|
||||
exit(0)
|
||||
# GITHUB_REF_TYPE may be either 'branch' or 'tag'
|
||||
GITHUB_REF_TYPE = os.environ['GITHUB_REF_TYPE']
|
||||
|
||||
|
@ -68,7 +68,7 @@ a parameter shall be transferred . The result will look like that:
|
||||
First we need to write the plugin code, similar as in the example above.
|
||||
|
||||
```python
|
||||
from django.conf.urls import url
|
||||
from django.urls import re_path
|
||||
from django.http import HttpResponse
|
||||
|
||||
from order.views import PurchaseOrderDetail
|
||||
@ -99,7 +99,7 @@ class MouserCartPanel(PanelMixin, InvenTreePlugin, UrlsMixin):
|
||||
|
||||
def setup_urls(self):
|
||||
return [
|
||||
url(r'transfercart/(?P<pk>\d+)/', self.TransferCart, name='get-cart')
|
||||
re_path(r'transfercart/(?P<pk>\d+)/', self.TransferCart, name='get-cart')
|
||||
]
|
||||
|
||||
#----------------------------------------------------------------------------
|
||||
@ -294,14 +294,14 @@ does the rest of the work.
|
||||
The python code in the plugin also needs minor changes:
|
||||
|
||||
```python
|
||||
from django.conf.urls import url
|
||||
from django.urls import re_path
|
||||
import json
|
||||
|
||||
...
|
||||
|
||||
def setup_urls(self):
|
||||
return [
|
||||
url(r'example(?:\.(?P<format>json))?$', self.do_something, name='transfer'),
|
||||
re_path(r'example(?:\.(?P<format>json))?$', self.do_something, name='transfer'),
|
||||
]
|
||||
|
||||
# Define the function that will be called.
|
||||
|
@ -14,7 +14,7 @@ class MyUrlsPlugin(UrlsMixin, InvenTreePlugin):
|
||||
NAME = "UrlsMixin"
|
||||
|
||||
URLS = [
|
||||
url(r'increase/(?P<location>\d+)/(?P<pk>\d+)/', self.view_increase, name='increase-level'),
|
||||
re_path(r'increase/(?P<location>\d+)/(?P<pk>\d+)/', self.view_increase, name='increase-level'),
|
||||
]
|
||||
```
|
||||
|
||||
|
@ -8,7 +8,7 @@ msgstr ""
|
||||
"Language: bg\n"
|
||||
"Project-Id-Version: inventree\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"PO-Revision-Date: 2024-02-07 12:22\n"
|
||||
"PO-Revision-Date: 2024-02-10 14:55\n"
|
||||
"Last-Translator: \n"
|
||||
"Language-Team: Bulgarian\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
|
@ -8,7 +8,7 @@ msgstr ""
|
||||
"Language: cs\n"
|
||||
"Project-Id-Version: inventree\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"PO-Revision-Date: 2024-02-07 12:22\n"
|
||||
"PO-Revision-Date: 2024-02-10 14:55\n"
|
||||
"Last-Translator: \n"
|
||||
"Language-Team: Czech\n"
|
||||
"Plural-Forms: nplurals=4; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 3;\n"
|
||||
|
@ -8,7 +8,7 @@ msgstr ""
|
||||
"Language: da\n"
|
||||
"Project-Id-Version: inventree\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"PO-Revision-Date: 2024-02-07 12:22\n"
|
||||
"PO-Revision-Date: 2024-02-10 14:55\n"
|
||||
"Last-Translator: \n"
|
||||
"Language-Team: Danish\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
|
@ -8,7 +8,7 @@ msgstr ""
|
||||
"Language: de\n"
|
||||
"Project-Id-Version: inventree\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"PO-Revision-Date: 2024-02-07 12:22\n"
|
||||
"PO-Revision-Date: 2024-02-10 14:55\n"
|
||||
"Last-Translator: \n"
|
||||
"Language-Team: German\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
|
@ -8,7 +8,7 @@ msgstr ""
|
||||
"Language: el\n"
|
||||
"Project-Id-Version: inventree\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"PO-Revision-Date: 2024-02-07 12:22\n"
|
||||
"PO-Revision-Date: 2024-02-10 14:55\n"
|
||||
"Last-Translator: \n"
|
||||
"Language-Team: Greek\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
|
@ -5,16 +5,16 @@ msgstr ""
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Generator: @lingui/cli\n"
|
||||
"Language: es_MX\n"
|
||||
"Language: es\n"
|
||||
"Project-Id-Version: inventree\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"PO-Revision-Date: 2024-02-07 12:23\n"
|
||||
"PO-Revision-Date: 2024-02-10 14:55\n"
|
||||
"Last-Translator: \n"
|
||||
"Language-Team: Spanish, Mexico\n"
|
||||
"Language-Team: Spanish\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
"X-Crowdin-Project: inventree\n"
|
||||
"X-Crowdin-Project-ID: 452300\n"
|
||||
"X-Crowdin-Language: es-MX\n"
|
||||
"X-Crowdin-Language: es-ES\n"
|
||||
"X-Crowdin-File: /[inventree.InvenTree] l10/src/frontend/src/locales/en/messages.po\n"
|
||||
"X-Crowdin-File-ID: 205\n"
|
||||
|
||||
@ -68,11 +68,11 @@ msgstr ""
|
||||
|
||||
#: src/components/forms/AuthenticationForm.tsx:50
|
||||
msgid "Login successful"
|
||||
msgstr "Inicio de sesión exitoso"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/forms/AuthenticationForm.tsx:51
|
||||
msgid "Welcome back!"
|
||||
msgstr "¡Bienvenido de vuelta!"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/forms/AuthenticationForm.tsx:53
|
||||
#~ msgid "Login successfull"
|
||||
@ -80,7 +80,7 @@ msgstr "¡Bienvenido de vuelta!"
|
||||
|
||||
#: src/components/forms/AuthenticationForm.tsx:58
|
||||
msgid "Login failed"
|
||||
msgstr "Error al iniciar sesión"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/forms/AuthenticationForm.tsx:59
|
||||
#: src/components/forms/AuthenticationForm.tsx:79
|
||||
@ -97,16 +97,16 @@ msgstr ""
|
||||
#: src/components/forms/AuthenticationForm.tsx:70
|
||||
#: src/functions/auth.tsx:103
|
||||
msgid "Mail delivery successful"
|
||||
msgstr "Envío de correo exitoso"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/forms/AuthenticationForm.tsx:71
|
||||
msgid "Check your inbox for the login link. If you have an account, you will receive a login link. Check in spam too."
|
||||
msgstr "Revisa tu bandeja de entrada para el enlace de inicio de sesión. Si tienes una cuenta, recibirás un enlace de inicio de sesión. Revisa también el correo no deseado."
|
||||
msgstr ""
|
||||
|
||||
#: src/components/forms/AuthenticationForm.tsx:78
|
||||
#: src/components/forms/AuthenticationForm.tsx:215
|
||||
msgid "Input error"
|
||||
msgstr "Error de entrada"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/forms/AuthenticationForm.tsx:98
|
||||
msgid "Or continue with other methods"
|
||||
@ -115,7 +115,7 @@ msgstr ""
|
||||
#: src/components/forms/AuthenticationForm.tsx:109
|
||||
#: src/components/forms/AuthenticationForm.tsx:233
|
||||
msgid "Username"
|
||||
msgstr "Nombre de usuario"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/forms/AuthenticationForm.tsx:110
|
||||
#: src/components/forms/AuthenticationForm.tsx:234
|
||||
@ -126,17 +126,17 @@ msgstr ""
|
||||
#: src/components/forms/AuthenticationForm.tsx:246
|
||||
#: src/pages/Auth/Set-Password.tsx:106
|
||||
msgid "Password"
|
||||
msgstr "Contraseña"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/forms/AuthenticationForm.tsx:116
|
||||
#: src/components/forms/AuthenticationForm.tsx:247
|
||||
msgid "Your password"
|
||||
msgstr "Tu contraseña"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/forms/AuthenticationForm.tsx:128
|
||||
#: src/pages/Auth/Reset.tsx:26
|
||||
msgid "Reset password"
|
||||
msgstr "Restablecer contraseña"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/forms/AuthenticationForm.tsx:131
|
||||
#~ msgid "Log in"
|
||||
@ -151,17 +151,17 @@ msgstr "Restablecer contraseña"
|
||||
#: src/pages/Auth/Reset.tsx:31
|
||||
#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:49
|
||||
msgid "Email"
|
||||
msgstr "Correo electrónico"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/forms/AuthenticationForm.tsx:138
|
||||
#: src/pages/Auth/Reset.tsx:32
|
||||
#: src/pages/Auth/Set-Password.tsx:107
|
||||
msgid "We will send you a link to login - if you are registered"
|
||||
msgstr "Te enviaremos un enlace para iniciar sesión - si estás registrado"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/forms/AuthenticationForm.tsx:154
|
||||
msgid "Send me an email"
|
||||
msgstr "Envíame un correo electrónico"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/forms/AuthenticationForm.tsx:156
|
||||
msgid "Use username and password"
|
||||
@ -225,11 +225,11 @@ msgstr ""
|
||||
#: src/tables/settings/GroupTable.tsx:103
|
||||
#: src/tables/settings/PendingTasksTable.tsx:26
|
||||
msgid "Name"
|
||||
msgstr "Nombre"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/forms/HostOptionsForm.tsx:74
|
||||
msgid "No one here..."
|
||||
msgstr "Nadie aquí..."
|
||||
msgstr ""
|
||||
|
||||
#: src/components/forms/HostOptionsForm.tsx:85
|
||||
msgid "Add Host"
|
||||
@ -238,11 +238,11 @@ msgstr ""
|
||||
#: src/components/forms/HostOptionsForm.tsx:89
|
||||
#: src/components/widgets/MarkdownEditor.tsx:73
|
||||
msgid "Save"
|
||||
msgstr "Guardar"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/forms/InstanceOptions.tsx:43
|
||||
msgid "Select destination instance"
|
||||
msgstr "Seleccionar instancia de destino"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/forms/InstanceOptions.tsx:71
|
||||
msgid "Edit possible host options"
|
||||
@ -250,15 +250,15 @@ msgstr ""
|
||||
|
||||
#: src/components/forms/InstanceOptions.tsx:98
|
||||
msgid "Version: {0}"
|
||||
msgstr "Versión: {0}"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/forms/InstanceOptions.tsx:100
|
||||
msgid "API:{0}"
|
||||
msgstr "API:{0}"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/forms/InstanceOptions.tsx:102
|
||||
msgid "Name: {0}"
|
||||
msgstr "Nombre: {0}"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/forms/InstanceOptions.tsx:104
|
||||
msgid "State: <0>worker</0> ({0}), <1>plugins</1>{1}"
|
||||
@ -944,7 +944,7 @@ msgstr ""
|
||||
#: src/pages/part/PartDetail.tsx:547
|
||||
#: src/pages/purchasing/PurchasingIndex.tsx:20
|
||||
msgid "Purchase Orders"
|
||||
msgstr "Órdenes de compra"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/render/ModelType.tsx:112
|
||||
msgid "Purchase Order Line"
|
||||
@ -985,7 +985,7 @@ msgstr ""
|
||||
#: src/pages/company/CompanyDetail.tsx:122
|
||||
#: src/pages/sales/SalesIndex.tsx:27
|
||||
msgid "Return Orders"
|
||||
msgstr "Ordenes de devolución"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/render/ModelType.tsx:140
|
||||
#: src/tables/company/AddressTable.tsx:47
|
||||
@ -1801,7 +1801,7 @@ msgstr ""
|
||||
|
||||
#: src/defaults/links.tsx:11
|
||||
msgid "Website"
|
||||
msgstr "Sitio web"
|
||||
msgstr ""
|
||||
|
||||
#: src/defaults/links.tsx:16
|
||||
msgid "GitHub"
|
||||
@ -2203,7 +2203,7 @@ msgstr ""
|
||||
|
||||
#: src/pages/Auth/Login.tsx:75
|
||||
msgid "Welcome, log in below"
|
||||
msgstr "Bienvenido, inicia sesión a continuación"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/Auth/Login.tsx:77
|
||||
msgid "Register below"
|
||||
@ -2579,7 +2579,7 @@ msgstr ""
|
||||
|
||||
#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:144
|
||||
msgid "Primary"
|
||||
msgstr "Primario"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:149
|
||||
msgid "Verified"
|
||||
@ -2757,17 +2757,17 @@ msgstr ""
|
||||
|
||||
#: src/pages/Index/Settings/SystemSettings.tsx:66
|
||||
msgid "Login"
|
||||
msgstr "Ingresar"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/Index/Settings/SystemSettings.tsx:88
|
||||
msgid "Barcodes"
|
||||
msgstr "Códigos de barras"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/Index/Settings/SystemSettings.tsx:107
|
||||
#: src/pages/company/SupplierPartDetail.tsx:55
|
||||
#: src/pages/part/PartDetail.tsx:516
|
||||
msgid "Pricing"
|
||||
msgstr "Precios"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/Index/Settings/SystemSettings.tsx:118
|
||||
#~ msgid "Physical Units"
|
||||
@ -2775,16 +2775,16 @@ msgstr "Precios"
|
||||
|
||||
#: src/pages/Index/Settings/SystemSettings.tsx:136
|
||||
msgid "Exchange Rates"
|
||||
msgstr "Tasas de cambio"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/Index/Settings/SystemSettings.tsx:144
|
||||
msgid "Labels"
|
||||
msgstr "Etiquetas"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/Index/Settings/SystemSettings.tsx:150
|
||||
#: src/pages/Index/Settings/UserSettings.tsx:99
|
||||
msgid "Reporting"
|
||||
msgstr "Informes"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/Index/Settings/SystemSettings.tsx:224
|
||||
#: src/pages/part/PartDetail.tsx:565
|
||||
@ -2797,23 +2797,23 @@ msgstr ""
|
||||
#: src/pages/part/PartDetail.tsx:502
|
||||
#: src/pages/sales/SalesOrderDetail.tsx:62
|
||||
msgid "Build Orders"
|
||||
msgstr "Ordenes de Producción"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/Index/Settings/SystemSettings.tsx:286
|
||||
msgid "Switch to User Setting"
|
||||
msgstr "Cambiar a Configuración de Usuario"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/Index/Settings/UserSettings.tsx:29
|
||||
msgid "Account"
|
||||
msgstr "Cuenta"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/Index/Settings/UserSettings.tsx:35
|
||||
msgid "Security"
|
||||
msgstr "Seguridad"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/Index/Settings/UserSettings.tsx:46
|
||||
msgid "Display Options"
|
||||
msgstr "Opciones de visualización"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/Index/Settings/UserSettings.tsx:115
|
||||
msgid "Account Settings"
|
||||
@ -2833,7 +2833,7 @@ msgstr ""
|
||||
|
||||
#: src/pages/NotFound.tsx:17
|
||||
msgid "Not Found"
|
||||
msgstr "No encontrado"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/NotFound.tsx:20
|
||||
msgid "Sorry, this page is not known or was moved."
|
||||
@ -2940,7 +2940,7 @@ msgstr ""
|
||||
|
||||
#: src/pages/build/BuildDetail.tsx:222
|
||||
msgid "Report"
|
||||
msgstr "Informe"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/build/BuildDetail.tsx:223
|
||||
msgid "Print build report"
|
||||
@ -2972,7 +2972,7 @@ msgstr ""
|
||||
#: src/pages/part/PartDetail.tsx:449
|
||||
#: src/pages/stock/StockDetail.tsx:70
|
||||
msgid "Details"
|
||||
msgstr "Detalles"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/company/CompanyDetail.tsx:81
|
||||
msgid "Manufactured Parts"
|
||||
@ -3017,13 +3017,13 @@ msgstr ""
|
||||
#: src/pages/part/CategoryDetail.tsx:71
|
||||
#: src/pages/part/PartDetail.tsx:464
|
||||
msgid "Parameters"
|
||||
msgstr "Parámetros"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/company/ManufacturerPartDetail.tsx:54
|
||||
#: src/pages/part/PartDetail.tsx:534
|
||||
#: src/pages/purchasing/PurchasingIndex.tsx:26
|
||||
msgid "Suppliers"
|
||||
msgstr "Proveedores"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/company/ManufacturerPartDetail.tsx:98
|
||||
msgid "ManufacturerPart"
|
||||
@ -3033,7 +3033,7 @@ msgstr ""
|
||||
#: src/pages/company/SupplierPartDetail.tsx:68
|
||||
#: src/tables/purchasing/PurchaseOrderTable.tsx:73
|
||||
msgid "Supplier"
|
||||
msgstr "Proveedor"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/company/SupplierPartDetail.tsx:40
|
||||
#: src/pages/purchasing/PurchaseOrderDetail.tsx:66
|
||||
@ -3064,7 +3064,7 @@ msgstr ""
|
||||
#: src/pages/part/PartDetail.tsx:145
|
||||
#: src/tables/stock/StockItemTable.tsx:264
|
||||
msgid "In Stock"
|
||||
msgstr "En Stock"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/part/PartDetail.tsx:155
|
||||
msgid "Minimum Stock"
|
||||
@ -3287,31 +3287,31 @@ msgstr ""
|
||||
|
||||
#: src/pages/stock/StockDetail.tsx:174
|
||||
msgid "Count stock"
|
||||
msgstr "Contar stock"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/stock/StockDetail.tsx:178
|
||||
msgid "Add"
|
||||
msgstr "Agregar"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/stock/StockDetail.tsx:179
|
||||
msgid "Add stock"
|
||||
msgstr "Agregar stock"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/stock/StockDetail.tsx:184
|
||||
msgid "Remove stock"
|
||||
msgstr "Remover stock"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/stock/StockDetail.tsx:188
|
||||
msgid "Transfer"
|
||||
msgstr "Transferir"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/stock/StockDetail.tsx:189
|
||||
msgid "Transfer stock"
|
||||
msgstr "Transferir stock"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/stock/StockDetail.tsx:201
|
||||
msgid "Duplicate stock item"
|
||||
msgstr "Duplicar artículo de stock"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/stock/StockDetail.tsx:205
|
||||
#~ msgid "Edit stock item"
|
||||
@ -3662,7 +3662,7 @@ msgstr ""
|
||||
#: src/tables/plugin/PluginListTable.tsx:627
|
||||
#: src/tables/stock/StockItemTable.tsx:228
|
||||
msgid "Active"
|
||||
msgstr "Activo"
|
||||
msgstr ""
|
||||
|
||||
#: src/tables/bom/UsedInTable.tsx:67
|
||||
msgid "Show active assemblies"
|
||||
@ -3672,11 +3672,11 @@ msgstr ""
|
||||
#: src/tables/part/PartTable.tsx:194
|
||||
#: src/tables/part/PartVariantTable.tsx:30
|
||||
msgid "Trackable"
|
||||
msgstr "Rastreable"
|
||||
msgstr ""
|
||||
|
||||
#: src/tables/bom/UsedInTable.tsx:72
|
||||
msgid "Show trackable assemblies"
|
||||
msgstr "Mostrar ensamblajes rastreables"
|
||||
msgstr ""
|
||||
|
||||
#: src/tables/build/BuildLineTable.tsx:34
|
||||
msgid "Show allocated lines"
|
||||
@ -3732,14 +3732,14 @@ msgstr ""
|
||||
|
||||
#: src/tables/build/BuildOrderTable.tsx:103
|
||||
msgid "Show active orders"
|
||||
msgstr "Mostrar órdenes activas"
|
||||
msgstr ""
|
||||
|
||||
#: src/tables/build/BuildOrderTable.tsx:107
|
||||
#: src/tables/purchasing/PurchaseOrderTable.tsx:56
|
||||
#: src/tables/sales/ReturnOrderTable.tsx:46
|
||||
#: src/tables/sales/SalesOrderTable.tsx:53
|
||||
msgid "Filter by order status"
|
||||
msgstr "Filtrar por estado de la orden"
|
||||
msgstr ""
|
||||
|
||||
#: src/tables/build/BuildOrderTable.tsx:113
|
||||
msgid "Show overdue status"
|
||||
@ -3753,23 +3753,23 @@ msgstr ""
|
||||
#: src/tables/company/AddressTable.tsx:121
|
||||
#: src/tables/company/AddressTable.tsx:185
|
||||
msgid "Add Address"
|
||||
msgstr "Añadir Dirección"
|
||||
msgstr ""
|
||||
|
||||
#: src/tables/company/AddressTable.tsx:126
|
||||
msgid "Address created"
|
||||
msgstr "Dirección creada"
|
||||
msgstr ""
|
||||
|
||||
#: src/tables/company/AddressTable.tsx:135
|
||||
msgid "Edit Address"
|
||||
msgstr "Editar Dirección"
|
||||
msgstr ""
|
||||
|
||||
#: src/tables/company/AddressTable.tsx:143
|
||||
msgid "Delete Address"
|
||||
msgstr "Eliminar Dirección"
|
||||
msgstr ""
|
||||
|
||||
#: src/tables/company/AddressTable.tsx:145
|
||||
msgid "Are you sure you want to delete this address?"
|
||||
msgstr "¿Estás seguro de que deseas eliminar esta dirección?"
|
||||
msgstr ""
|
||||
|
||||
#: src/tables/company/CompanyTable.tsx:62
|
||||
msgid "New Company"
|
||||
@ -3781,7 +3781,7 @@ msgstr ""
|
||||
|
||||
#: src/tables/company/ContactTable.tsx:73
|
||||
msgid "Edit Contact"
|
||||
msgstr "Editar contacto"
|
||||
msgstr ""
|
||||
|
||||
#: src/tables/company/ContactTable.tsx:80
|
||||
msgid "Add Contact"
|
||||
@ -3789,23 +3789,23 @@ msgstr ""
|
||||
|
||||
#: src/tables/company/ContactTable.tsx:91
|
||||
msgid "Delete Contact"
|
||||
msgstr "Eliminar contacto"
|
||||
msgstr ""
|
||||
|
||||
#: src/tables/company/ContactTable.tsx:131
|
||||
msgid "Add contact"
|
||||
msgstr "Agregar contacto"
|
||||
msgstr ""
|
||||
|
||||
#: src/tables/general/AttachmentTable.tsx:157
|
||||
msgid "File uploaded"
|
||||
msgstr "Archivo subido"
|
||||
msgstr ""
|
||||
|
||||
#: src/tables/general/AttachmentTable.tsx:158
|
||||
msgid "File {0} uploaded successfully"
|
||||
msgstr "Archivo {0} se subió correctamente"
|
||||
msgstr ""
|
||||
|
||||
#: src/tables/general/AttachmentTable.tsx:169
|
||||
msgid "Upload Error"
|
||||
msgstr "Error al subir"
|
||||
msgstr ""
|
||||
|
||||
#: src/tables/general/AttachmentTable.tsx:170
|
||||
msgid "File could not be uploaded"
|
||||
@ -3931,7 +3931,7 @@ msgstr ""
|
||||
|
||||
#: src/tables/part/PartTable.tsx:80
|
||||
msgid "Minimum stock"
|
||||
msgstr "Stock mínimo"
|
||||
msgstr ""
|
||||
|
||||
#: src/tables/part/PartTable.tsx:89
|
||||
msgid "On Order"
|
||||
@ -4403,11 +4403,11 @@ msgstr ""
|
||||
|
||||
#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:245
|
||||
msgid "Add line item"
|
||||
msgstr "Añadir Artículo de Línea"
|
||||
msgstr ""
|
||||
|
||||
#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:251
|
||||
msgid "Receive items"
|
||||
msgstr "Recibir artículos"
|
||||
msgstr ""
|
||||
|
||||
#: src/tables/purchasing/PurchaseOrderTable.tsx:55
|
||||
#: src/tables/sales/ReturnOrderTable.tsx:45
|
||||
@ -4427,7 +4427,7 @@ msgstr ""
|
||||
|
||||
#: src/tables/purchasing/SupplierPartTable.tsx:114
|
||||
msgid "Base units"
|
||||
msgstr "Unidades base"
|
||||
msgstr ""
|
||||
|
||||
#: src/tables/purchasing/SupplierPartTable.tsx:140
|
||||
msgid "Updated"
|
||||
@ -4480,11 +4480,11 @@ msgstr ""
|
||||
|
||||
#: src/tables/settings/CurrencyTable.tsx:28
|
||||
msgid "Rate"
|
||||
msgstr "Tarifa"
|
||||
msgstr ""
|
||||
|
||||
#: src/tables/settings/CurrencyTable.tsx:40
|
||||
msgid "Exchange rates updated"
|
||||
msgstr "Tipos de cambio actualizados"
|
||||
msgstr ""
|
||||
|
||||
#: src/tables/settings/CurrencyTable.tsx:46
|
||||
msgid "Exchange rate update error"
|
||||
@ -4576,7 +4576,7 @@ msgstr ""
|
||||
|
||||
#: src/tables/settings/GroupTable.tsx:126
|
||||
msgid "Delete group"
|
||||
msgstr "Eliminar grupo"
|
||||
msgstr ""
|
||||
|
||||
#: src/tables/settings/GroupTable.tsx:127
|
||||
msgid "Group deleted"
|
||||
@ -4589,11 +4589,11 @@ msgstr ""
|
||||
#: src/tables/settings/GroupTable.tsx:134
|
||||
#: src/tables/settings/GroupTable.tsx:146
|
||||
msgid "Add group"
|
||||
msgstr "Agregar grupo"
|
||||
msgstr ""
|
||||
|
||||
#: src/tables/settings/GroupTable.tsx:158
|
||||
msgid "Edit group"
|
||||
msgstr "Editar grupo"
|
||||
msgstr ""
|
||||
|
||||
#: src/tables/settings/PendingTasksTable.tsx:30
|
||||
msgid "Created"
|
||||
@ -4617,7 +4617,7 @@ msgstr ""
|
||||
|
||||
#: src/tables/settings/ProjectCodeTable.tsx:94
|
||||
msgid "Add project code"
|
||||
msgstr "Agregar código de proyecto"
|
||||
msgstr ""
|
||||
|
||||
#: src/tables/settings/ScheduledTasksTable.tsx:25
|
||||
msgid "Last Run"
|
||||
@ -4686,11 +4686,11 @@ msgstr ""
|
||||
|
||||
#: src/tables/settings/UserTable.tsx:222
|
||||
msgid "Added user"
|
||||
msgstr "Usuario agregado"
|
||||
msgstr ""
|
||||
|
||||
#: src/tables/settings/UserTable.tsx:239
|
||||
msgid "Edit user"
|
||||
msgstr "Editar usuario"
|
||||
msgstr ""
|
||||
|
||||
#: src/tables/stock/StockItemTable.tsx:59
|
||||
msgid "This stock item is in production"
|
||||
@ -4779,7 +4779,7 @@ msgstr ""
|
||||
|
||||
#: src/tables/stock/StockItemTable.tsx:269
|
||||
msgid "In Production"
|
||||
msgstr "En producción"
|
||||
msgstr ""
|
||||
|
||||
#: src/tables/stock/StockItemTable.tsx:270
|
||||
msgid "Show items which are in production"
|
||||
@ -4876,5 +4876,5 @@ msgstr ""
|
||||
|
||||
#: src/views/MobileAppView.tsx:23
|
||||
msgid "Read the docs"
|
||||
msgstr "Leer la documentación"
|
||||
msgstr ""
|
||||
|
||||
|
@ -4877,4 +4877,3 @@ msgstr ""
|
||||
#: src/views/MobileAppView.tsx:23
|
||||
msgid "Read the docs"
|
||||
msgstr ""
|
||||
|
||||
|
@ -8,7 +8,7 @@ msgstr ""
|
||||
"Language: fi\n"
|
||||
"Project-Id-Version: inventree\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"PO-Revision-Date: 2024-02-07 12:22\n"
|
||||
"PO-Revision-Date: 2024-02-10 14:55\n"
|
||||
"Last-Translator: \n"
|
||||
"Language-Team: Finnish\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
|
@ -8,7 +8,7 @@ msgstr ""
|
||||
"Language: fr\n"
|
||||
"Project-Id-Version: inventree\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"PO-Revision-Date: 2024-02-07 12:22\n"
|
||||
"PO-Revision-Date: 2024-02-09 13:35\n"
|
||||
"Last-Translator: \n"
|
||||
"Language-Team: French\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
|
||||
@ -110,7 +110,7 @@ msgstr "Erreur d'entrée"
|
||||
|
||||
#: src/components/forms/AuthenticationForm.tsx:98
|
||||
msgid "Or continue with other methods"
|
||||
msgstr ""
|
||||
msgstr "Ou continuer avec d'autres méthodes"
|
||||
|
||||
#: src/components/forms/AuthenticationForm.tsx:109
|
||||
#: src/components/forms/AuthenticationForm.tsx:233
|
||||
@ -202,7 +202,7 @@ msgstr "S'enregistrer"
|
||||
|
||||
#: src/components/forms/AuthenticationForm.tsx:271
|
||||
msgid "Or use SSO"
|
||||
msgstr ""
|
||||
msgstr "Ou utiliser SSO"
|
||||
|
||||
#: src/components/forms/AuthenticationForm.tsx:302
|
||||
msgid "Don't have an account?"
|
||||
@ -295,18 +295,18 @@ msgstr "Aucun résultat trouvé"
|
||||
|
||||
#: src/components/images/DetailsImage.tsx:61
|
||||
msgid "Remove Image"
|
||||
msgstr ""
|
||||
msgstr "Supprimer l'image"
|
||||
|
||||
#: src/components/images/DetailsImage.tsx:64
|
||||
msgid "Remove the associated image from this item?"
|
||||
msgstr ""
|
||||
msgstr "Supprimer l'image associée de cet élément ?"
|
||||
|
||||
#: src/components/images/DetailsImage.tsx:67
|
||||
#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:192
|
||||
#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:299
|
||||
#: src/pages/stock/StockDetail.tsx:183
|
||||
msgid "Remove"
|
||||
msgstr ""
|
||||
msgstr "Supprimer"
|
||||
|
||||
#: src/components/images/DetailsImage.tsx:67
|
||||
#: src/contexts/ThemeContext.tsx:64
|
||||
@ -320,35 +320,35 @@ msgstr "Annuler"
|
||||
|
||||
#: src/components/images/DetailsImage.tsx:95
|
||||
msgid "Drag and drop to upload"
|
||||
msgstr ""
|
||||
msgstr "Glisser et déposer pour télécharger"
|
||||
|
||||
#: src/components/images/DetailsImage.tsx:98
|
||||
msgid "Click to select file(s)"
|
||||
msgstr ""
|
||||
msgstr "Cliquer pour sélectionner le(s) fichier(s)"
|
||||
|
||||
#: src/components/images/DetailsImage.tsx:220
|
||||
msgid "Clear"
|
||||
msgstr ""
|
||||
msgstr "Effacer"
|
||||
|
||||
#: src/components/images/DetailsImage.tsx:252
|
||||
msgid "Select image"
|
||||
msgstr ""
|
||||
msgstr "Sélectionner une image"
|
||||
|
||||
#: src/components/images/DetailsImage.tsx:263
|
||||
msgid "Select from existing images"
|
||||
msgstr ""
|
||||
msgstr "Sélectionner parmi les images existantes"
|
||||
|
||||
#: src/components/images/DetailsImage.tsx:273
|
||||
msgid "Upload new image"
|
||||
msgstr ""
|
||||
msgstr "Téléverser une nouvelle image"
|
||||
|
||||
#: src/components/images/DetailsImage.tsx:279
|
||||
msgid "Upload Image"
|
||||
msgstr ""
|
||||
msgstr "Charger une image"
|
||||
|
||||
#: src/components/images/DetailsImage.tsx:292
|
||||
msgid "Delete image"
|
||||
msgstr ""
|
||||
msgstr "Supprimer l'image"
|
||||
|
||||
#: src/components/images/Thumbnail.tsx:14
|
||||
#: src/components/images/Thumbnail.tsx:51
|
||||
@ -489,7 +489,7 @@ msgstr "Version d'InvenTree"
|
||||
|
||||
#: src/components/modals/AboutInvenTreeModal.tsx:131
|
||||
msgid "Commit Hash"
|
||||
msgstr ""
|
||||
msgstr "Hash du commit"
|
||||
|
||||
#: src/components/modals/AboutInvenTreeModal.tsx:136
|
||||
msgid "Commit Date"
|
||||
@ -675,11 +675,11 @@ msgstr "Configuration mail non effectuée"
|
||||
#: src/tables/plugin/PluginListTable.tsx:185
|
||||
#: src/tables/plugin/PluginListTable.tsx:310
|
||||
msgid "Version"
|
||||
msgstr ""
|
||||
msgstr "Version"
|
||||
|
||||
#: src/components/modals/ServerInfoModal.tsx:127
|
||||
msgid "Server Version"
|
||||
msgstr ""
|
||||
msgstr "Version du serveur"
|
||||
|
||||
#: src/components/nav/MainMenu.tsx:39
|
||||
#: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:26
|
||||
@ -700,13 +700,13 @@ msgstr "Paramètres du compte"
|
||||
#: src/defaults/menuItems.tsx:58
|
||||
#: src/pages/Index/Settings/SystemSettings.tsx:283
|
||||
msgid "System Settings"
|
||||
msgstr ""
|
||||
msgstr "Les paramètres du système"
|
||||
|
||||
#: src/components/nav/MainMenu.tsx:60
|
||||
#: src/defaults/menuItems.tsx:63
|
||||
#: src/pages/Index/Settings/AdminCenter/Index.tsx:128
|
||||
msgid "Admin Center"
|
||||
msgstr ""
|
||||
msgstr "Centre Admin"
|
||||
|
||||
#: src/components/nav/MainMenu.tsx:68
|
||||
#~ msgid "Current language {locale}"
|
||||
@ -735,7 +735,7 @@ msgstr "Commencez"
|
||||
|
||||
#: src/components/nav/NavHoverMenu.tsx:96
|
||||
msgid "Overview over high-level objects, functions and possible usecases."
|
||||
msgstr ""
|
||||
msgstr "Aperçu des objets de haut niveau, des fonctions et des cas d'usages."
|
||||
|
||||
#: src/components/nav/NavigationDrawer.tsx:59
|
||||
msgid "Navigation"
|
||||
@ -769,18 +769,18 @@ msgstr "Notifications"
|
||||
|
||||
#: src/components/nav/NotificationDrawer.tsx:87
|
||||
msgid "You have no unread notifications."
|
||||
msgstr ""
|
||||
msgstr "Vous n'avez pas de notifications non lues."
|
||||
|
||||
#: src/components/nav/NotificationDrawer.tsx:102
|
||||
#: src/components/nav/NotificationDrawer.tsx:108
|
||||
#: src/tables/notifications/NotificationsTable.tsx:34
|
||||
msgid "Notification"
|
||||
msgstr ""
|
||||
msgstr "Notification"
|
||||
|
||||
#: src/components/nav/NotificationDrawer.tsx:131
|
||||
#: src/pages/Notifications.tsx:36
|
||||
msgid "Mark as read"
|
||||
msgstr ""
|
||||
msgstr "Marqué comme lu"
|
||||
|
||||
#: src/components/nav/PartCategoryTree.tsx:80
|
||||
#: src/components/render/ModelType.tsx:53
|
||||
@ -829,14 +829,14 @@ msgstr "Emplacements de stock"
|
||||
|
||||
#: src/components/render/Instance.tsx:135
|
||||
msgid "Unknown model: {model}"
|
||||
msgstr ""
|
||||
msgstr "Modèle inconnu : {model}"
|
||||
|
||||
#: src/components/render/ModelType.tsx:21
|
||||
#: src/pages/part/PartDetail.tsx:703
|
||||
#: src/tables/part/RelatedPartTable.tsx:45
|
||||
#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:59
|
||||
msgid "Part"
|
||||
msgstr ""
|
||||
msgstr "Pièce"
|
||||
|
||||
#: src/components/render/ModelType.tsx:22
|
||||
#: src/defaults/links.tsx:28
|
||||
@ -850,17 +850,17 @@ msgstr "Composants"
|
||||
|
||||
#: src/components/render/ModelType.tsx:29
|
||||
msgid "Part Parameter Template"
|
||||
msgstr ""
|
||||
msgstr "Modèle de paramètre de pièce"
|
||||
|
||||
#: src/components/render/ModelType.tsx:30
|
||||
msgid "Part Parameter Templates"
|
||||
msgstr ""
|
||||
msgstr "Modèles de paramètres de pièce"
|
||||
|
||||
#: src/components/render/ModelType.tsx:36
|
||||
#: src/pages/company/SupplierPartDetail.tsx:78
|
||||
#: src/tables/purchasing/SupplierPartTable.tsx:66
|
||||
msgid "Supplier Part"
|
||||
msgstr ""
|
||||
msgstr "Pièce fournisseur"
|
||||
|
||||
#: src/components/render/ModelType.tsx:37
|
||||
msgid "Supplier Parts"
|
||||
@ -868,7 +868,7 @@ msgstr "Pièces du fournisseur"
|
||||
|
||||
#: src/components/render/ModelType.tsx:44
|
||||
msgid "Manufacturer Part"
|
||||
msgstr ""
|
||||
msgstr "Pièces du fabricant"
|
||||
|
||||
#: src/components/render/ModelType.tsx:45
|
||||
msgid "Manufacturer Parts"
|
||||
@ -877,12 +877,12 @@ msgstr "Pièces du fabricant"
|
||||
#: src/components/render/ModelType.tsx:52
|
||||
#: src/pages/part/CategoryDetail.tsx:101
|
||||
msgid "Part Category"
|
||||
msgstr ""
|
||||
msgstr "Catégorie de composant"
|
||||
|
||||
#: src/components/render/ModelType.tsx:60
|
||||
#: src/pages/stock/StockDetail.tsx:225
|
||||
msgid "Stock Item"
|
||||
msgstr ""
|
||||
msgstr "Article en stock"
|
||||
|
||||
#: src/components/render/ModelType.tsx:61
|
||||
#: src/pages/company/CompanyDetail.tsx:106
|
||||
@ -893,30 +893,30 @@ msgstr "Articles en stock"
|
||||
|
||||
#: src/components/render/ModelType.tsx:68
|
||||
msgid "Stock Location"
|
||||
msgstr ""
|
||||
msgstr "Emplacement du stock"
|
||||
|
||||
#: src/components/render/ModelType.tsx:76
|
||||
msgid "Stock History"
|
||||
msgstr ""
|
||||
msgstr "Historique du stock"
|
||||
|
||||
#: src/components/render/ModelType.tsx:77
|
||||
msgid "Stock Histories"
|
||||
msgstr ""
|
||||
msgstr "Historique du stock"
|
||||
|
||||
#: src/components/render/ModelType.tsx:81
|
||||
#: src/defaults/links.tsx:30
|
||||
#: src/defaults/menuItems.tsx:43
|
||||
msgid "Build"
|
||||
msgstr ""
|
||||
msgstr "Construction"
|
||||
|
||||
#: src/components/render/ModelType.tsx:82
|
||||
msgid "Builds"
|
||||
msgstr ""
|
||||
msgstr "Construction"
|
||||
|
||||
#: src/components/render/ModelType.tsx:89
|
||||
#: src/pages/company/CompanyDetail.tsx:212
|
||||
msgid "Company"
|
||||
msgstr ""
|
||||
msgstr "Société"
|
||||
|
||||
#: src/components/render/ModelType.tsx:90
|
||||
msgid "Companies"
|
||||
@ -925,17 +925,17 @@ msgstr "Sociétés"
|
||||
#: src/components/render/ModelType.tsx:97
|
||||
#: src/tables/TableHoverCard.tsx:58
|
||||
msgid "Project Code"
|
||||
msgstr ""
|
||||
msgstr "Code du projet"
|
||||
|
||||
#: src/components/render/ModelType.tsx:98
|
||||
#: src/pages/Index/Settings/AdminCenter/Index.tsx:71
|
||||
msgid "Project Codes"
|
||||
msgstr ""
|
||||
msgstr "Codes du projet"
|
||||
|
||||
#: src/components/render/ModelType.tsx:104
|
||||
#: src/pages/purchasing/PurchaseOrderDetail.tsx:131
|
||||
msgid "Purchase Order"
|
||||
msgstr ""
|
||||
msgstr "Commande d’achat"
|
||||
|
||||
#: src/components/render/ModelType.tsx:105
|
||||
#: src/pages/Index/Settings/SystemSettings.tsx:235
|
||||
@ -948,16 +948,16 @@ msgstr "Ordres d'achat"
|
||||
|
||||
#: src/components/render/ModelType.tsx:112
|
||||
msgid "Purchase Order Line"
|
||||
msgstr ""
|
||||
msgstr "Ligne de commande d'achat"
|
||||
|
||||
#: src/components/render/ModelType.tsx:113
|
||||
msgid "Purchase Order Lines"
|
||||
msgstr ""
|
||||
msgstr "Lignes de commande d'achat"
|
||||
|
||||
#: src/components/render/ModelType.tsx:117
|
||||
#: src/pages/sales/SalesOrderDetail.tsx:102
|
||||
msgid "Sales Order"
|
||||
msgstr ""
|
||||
msgstr "Ventes"
|
||||
|
||||
#: src/components/render/ModelType.tsx:118
|
||||
#: src/pages/Index/Settings/SystemSettings.tsx:249
|
||||
@ -969,16 +969,16 @@ msgstr "Ordres de vente"
|
||||
|
||||
#: src/components/render/ModelType.tsx:125
|
||||
msgid "Sales Order Shipment"
|
||||
msgstr ""
|
||||
msgstr "Expédition de la commande"
|
||||
|
||||
#: src/components/render/ModelType.tsx:126
|
||||
msgid "Sales Order Shipments"
|
||||
msgstr ""
|
||||
msgstr "Expéditions de la commande"
|
||||
|
||||
#: src/components/render/ModelType.tsx:132
|
||||
#: src/pages/sales/ReturnOrderDetail.tsx:68
|
||||
msgid "Return Order"
|
||||
msgstr ""
|
||||
msgstr "Retour de commande"
|
||||
|
||||
#: src/components/render/ModelType.tsx:133
|
||||
#: src/pages/Index/Settings/SystemSettings.tsx:263
|
||||
@ -990,25 +990,25 @@ msgstr "Retours"
|
||||
#: src/components/render/ModelType.tsx:140
|
||||
#: src/tables/company/AddressTable.tsx:47
|
||||
msgid "Address"
|
||||
msgstr ""
|
||||
msgstr "Adresse"
|
||||
|
||||
#: src/components/render/ModelType.tsx:141
|
||||
#: src/pages/company/CompanyDetail.tsx:148
|
||||
msgid "Addresses"
|
||||
msgstr ""
|
||||
msgstr "Adresses"
|
||||
|
||||
#: src/components/render/ModelType.tsx:147
|
||||
msgid "Contact"
|
||||
msgstr ""
|
||||
msgstr "Contact"
|
||||
|
||||
#: src/components/render/ModelType.tsx:148
|
||||
#: src/pages/company/CompanyDetail.tsx:142
|
||||
msgid "Contacts"
|
||||
msgstr ""
|
||||
msgstr "Contacts"
|
||||
|
||||
#: src/components/render/ModelType.tsx:154
|
||||
msgid "Owner"
|
||||
msgstr ""
|
||||
msgstr "Propriétaire"
|
||||
|
||||
#: src/components/render/ModelType.tsx:155
|
||||
msgid "Owners"
|
||||
@ -1708,56 +1708,56 @@ msgstr ""
|
||||
|
||||
#: src/contexts/LanguageContext.tsx:45
|
||||
msgid "Turkish"
|
||||
msgstr ""
|
||||
msgstr "Turc"
|
||||
|
||||
#: src/contexts/LanguageContext.tsx:46
|
||||
msgid "Vietnamese"
|
||||
msgstr ""
|
||||
msgstr "Vietnamien"
|
||||
|
||||
#: src/contexts/LanguageContext.tsx:47
|
||||
msgid "Chinese (Simplified)"
|
||||
msgstr ""
|
||||
msgstr "Chinois (Simplifié)"
|
||||
|
||||
#: src/contexts/LanguageContext.tsx:48
|
||||
msgid "Chinese (Traditional)"
|
||||
msgstr ""
|
||||
msgstr "Chinois (Traditionnel)"
|
||||
|
||||
#: src/defaults/dashboardItems.tsx:15
|
||||
msgid "Subscribed Parts"
|
||||
msgstr ""
|
||||
msgstr "Pièces suivies"
|
||||
|
||||
#: src/defaults/dashboardItems.tsx:22
|
||||
msgid "Subscribed Categories"
|
||||
msgstr ""
|
||||
msgstr "Catégories suivies"
|
||||
|
||||
#: src/defaults/dashboardItems.tsx:29
|
||||
msgid "Latest Parts"
|
||||
msgstr ""
|
||||
msgstr "Dernières pièces"
|
||||
|
||||
#: src/defaults/dashboardItems.tsx:36
|
||||
msgid "BOM Waiting Validation"
|
||||
msgstr ""
|
||||
msgstr "BOM en attente de validation"
|
||||
|
||||
#: src/defaults/dashboardItems.tsx:43
|
||||
msgid "Recently Updated"
|
||||
msgstr ""
|
||||
msgstr "Mis à jour récemment"
|
||||
|
||||
#: src/defaults/dashboardItems.tsx:50
|
||||
#: src/tables/part/PartTable.tsx:218
|
||||
msgid "Low Stock"
|
||||
msgstr ""
|
||||
msgstr "Stock faible"
|
||||
|
||||
#: src/defaults/dashboardItems.tsx:57
|
||||
msgid "Depleted Stock"
|
||||
msgstr ""
|
||||
msgstr "Stock épuisé"
|
||||
|
||||
#: src/defaults/dashboardItems.tsx:64
|
||||
msgid "Required for Build Orders"
|
||||
msgstr ""
|
||||
msgstr "Requis pour les commandes de construction"
|
||||
|
||||
#: src/defaults/dashboardItems.tsx:71
|
||||
msgid "Expired Stock"
|
||||
msgstr ""
|
||||
msgstr "Stock expiré"
|
||||
|
||||
#: src/defaults/dashboardItems.tsx:78
|
||||
msgid "Stale Stock"
|
||||
@ -1765,11 +1765,11 @@ msgstr ""
|
||||
|
||||
#: src/defaults/dashboardItems.tsx:85
|
||||
msgid "Build Orders In Progress"
|
||||
msgstr ""
|
||||
msgstr "Ordre de construction en cours"
|
||||
|
||||
#: src/defaults/dashboardItems.tsx:92
|
||||
msgid "Overdue Build Orders"
|
||||
msgstr ""
|
||||
msgstr "Ordres de construction en retard"
|
||||
|
||||
#: src/defaults/dashboardItems.tsx:99
|
||||
msgid "Outstanding Purchase Orders"
|
||||
@ -1777,7 +1777,7 @@ msgstr ""
|
||||
|
||||
#: src/defaults/dashboardItems.tsx:106
|
||||
msgid "Overdue Purchase Orders"
|
||||
msgstr ""
|
||||
msgstr "Commandes d'achat en retard"
|
||||
|
||||
#: src/defaults/dashboardItems.tsx:113
|
||||
msgid "Outstanding Sales Orders"
|
||||
@ -1785,11 +1785,11 @@ msgstr ""
|
||||
|
||||
#: src/defaults/dashboardItems.tsx:120
|
||||
msgid "Overdue Sales Orders"
|
||||
msgstr ""
|
||||
msgstr "Vente en retard"
|
||||
|
||||
#: src/defaults/dashboardItems.tsx:127
|
||||
msgid "Current News"
|
||||
msgstr ""
|
||||
msgstr "Actualités en cours"
|
||||
|
||||
#: src/defaults/defaultHostList.tsx:8
|
||||
#~ msgid "InvenTree Demo"
|
||||
@ -1805,7 +1805,7 @@ msgstr "Site web"
|
||||
|
||||
#: src/defaults/links.tsx:16
|
||||
msgid "GitHub"
|
||||
msgstr ""
|
||||
msgstr "GitHub"
|
||||
|
||||
#: src/defaults/links.tsx:21
|
||||
msgid "Demo"
|
||||
@ -1814,14 +1814,14 @@ msgstr "Démo"
|
||||
#: src/defaults/links.tsx:26
|
||||
#: src/defaults/menuItems.tsx:9
|
||||
msgid "Home"
|
||||
msgstr ""
|
||||
msgstr "Page d’accueil"
|
||||
|
||||
#: src/defaults/links.tsx:27
|
||||
#: src/defaults/menuItems.tsx:28
|
||||
#: src/pages/Index/Dashboard.tsx:19
|
||||
#: src/pages/Index/Settings/UserSettings.tsx:41
|
||||
msgid "Dashboard"
|
||||
msgstr ""
|
||||
msgstr "Tableau de bord"
|
||||
|
||||
#: src/defaults/links.tsx:31
|
||||
#: src/defaults/menuItems.tsx:48
|
||||
@ -1832,7 +1832,7 @@ msgstr ""
|
||||
#: src/pages/purchasing/PurchaseOrderDetail.tsx:134
|
||||
#: src/pages/purchasing/PurchasingIndex.tsx:52
|
||||
msgid "Purchasing"
|
||||
msgstr ""
|
||||
msgstr "Achat en cours"
|
||||
|
||||
#: src/defaults/links.tsx:32
|
||||
#: src/defaults/menuItems.tsx:53
|
||||
@ -1841,13 +1841,13 @@ msgstr ""
|
||||
#: src/pages/sales/SalesIndex.tsx:45
|
||||
#: src/pages/sales/SalesOrderDetail.tsx:105
|
||||
msgid "Sales"
|
||||
msgstr ""
|
||||
msgstr "Ventes"
|
||||
|
||||
#: src/defaults/links.tsx:35
|
||||
#: src/defaults/menuItems.tsx:71
|
||||
#: src/pages/Index/Playground.tsx:192
|
||||
msgid "Playground"
|
||||
msgstr ""
|
||||
msgstr "Le terrain de jeux"
|
||||
|
||||
#: src/defaults/links.tsx:49
|
||||
msgid "Getting Started"
|
||||
@ -1888,7 +1888,7 @@ msgstr "Foire aux questions"
|
||||
#: src/defaults/links.tsx:79
|
||||
#: src/defaults/links.tsx:104
|
||||
msgid "System Information"
|
||||
msgstr ""
|
||||
msgstr "Informations système"
|
||||
|
||||
#: src/defaults/links.tsx:83
|
||||
#~ msgid "InvenTree"
|
||||
@ -1897,11 +1897,11 @@ msgstr ""
|
||||
#: src/defaults/links.tsx:92
|
||||
#: src/defaults/links.tsx:110
|
||||
msgid "About InvenTree"
|
||||
msgstr ""
|
||||
msgstr "À propos d'InvenTree"
|
||||
|
||||
#: src/defaults/links.tsx:105
|
||||
msgid "About this Inventree instance"
|
||||
msgstr ""
|
||||
msgstr "À propos de cette instance Inventree"
|
||||
|
||||
#: src/defaults/links.tsx:111
|
||||
msgid "About the InvenTree org"
|
||||
@ -1913,7 +1913,7 @@ msgstr "Licences"
|
||||
|
||||
#: src/defaults/links.tsx:117
|
||||
msgid "Licenses for packages used by InvenTree"
|
||||
msgstr ""
|
||||
msgstr "Licences pour les paquets utilisés par InvenTree"
|
||||
|
||||
#: src/defaults/menuItems.tsx:7
|
||||
#~ msgid "Open sourcea"
|
||||
@ -1941,7 +1941,7 @@ msgstr ""
|
||||
|
||||
#: src/defaults/menuItems.tsx:17
|
||||
msgid "User attributes and design settings."
|
||||
msgstr ""
|
||||
msgstr "Attributs utilisateur et paramètres de conception."
|
||||
|
||||
#: src/defaults/menuItems.tsx:21
|
||||
#~ msgid "Free for everyone"
|
||||
@ -1993,47 +1993,47 @@ msgstr ""
|
||||
|
||||
#: src/forms/AttachmentForms.tsx:57
|
||||
msgid "Add File"
|
||||
msgstr ""
|
||||
msgstr "Ajouter un fichier"
|
||||
|
||||
#: src/forms/AttachmentForms.tsx:57
|
||||
msgid "Add Link"
|
||||
msgstr ""
|
||||
msgstr "Ajouter un lien"
|
||||
|
||||
#: src/forms/AttachmentForms.tsx:58
|
||||
msgid "File added"
|
||||
msgstr ""
|
||||
msgstr "Fichier ajouté"
|
||||
|
||||
#: src/forms/AttachmentForms.tsx:58
|
||||
msgid "Link added"
|
||||
msgstr ""
|
||||
msgstr "Lien ajouté"
|
||||
|
||||
#: src/forms/AttachmentForms.tsx:99
|
||||
msgid "Edit File"
|
||||
msgstr ""
|
||||
msgstr "Éditer le fichier"
|
||||
|
||||
#: src/forms/AttachmentForms.tsx:99
|
||||
msgid "Edit Link"
|
||||
msgstr ""
|
||||
msgstr "Modifier le lien"
|
||||
|
||||
#: src/forms/AttachmentForms.tsx:100
|
||||
msgid "File updated"
|
||||
msgstr ""
|
||||
msgstr "Fichier mis à jour"
|
||||
|
||||
#: src/forms/AttachmentForms.tsx:100
|
||||
msgid "Link updated"
|
||||
msgstr ""
|
||||
msgstr "Lien mis à jour"
|
||||
|
||||
#: src/forms/AttachmentForms.tsx:124
|
||||
msgid "Delete Attachment"
|
||||
msgstr ""
|
||||
msgstr "Supprimer la pièce jointe"
|
||||
|
||||
#: src/forms/AttachmentForms.tsx:125
|
||||
msgid "Attachment deleted"
|
||||
msgstr ""
|
||||
msgstr "Pièce jointe supprimée"
|
||||
|
||||
#: src/forms/AttachmentForms.tsx:128
|
||||
msgid "Are you sure you want to delete this attachment?"
|
||||
msgstr ""
|
||||
msgstr "Êtes-vous sûr de vouloir supprimer cette pièce jointe ?"
|
||||
|
||||
#: src/forms/CompanyForms.tsx:150
|
||||
#~ msgid "Company updated"
|
||||
@ -2041,7 +2041,7 @@ msgstr ""
|
||||
|
||||
#: src/forms/PartForms.tsx:105
|
||||
msgid "Parent part category"
|
||||
msgstr ""
|
||||
msgstr "Catégorie de pièce parente"
|
||||
|
||||
#: src/forms/PartForms.tsx:106
|
||||
#~ msgid "Create Part"
|
||||
@ -2057,23 +2057,23 @@ msgstr ""
|
||||
|
||||
#: src/forms/StockForms.tsx:44
|
||||
msgid "Add given quantity as packs instead of individual items"
|
||||
msgstr ""
|
||||
msgstr "Ajouter une quantité en paquet au lieu de pièces individuelles"
|
||||
|
||||
#: src/forms/StockForms.tsx:55
|
||||
msgid "Enter initial quantity for this stock item"
|
||||
msgstr ""
|
||||
msgstr "Entrez la quantité initiale pour cet article en stock"
|
||||
|
||||
#: src/forms/StockForms.tsx:60
|
||||
msgid "Serial Numbers"
|
||||
msgstr ""
|
||||
msgstr "Numéros de Série"
|
||||
|
||||
#: src/forms/StockForms.tsx:61
|
||||
msgid "Enter serial numbers for new stock (or leave blank)"
|
||||
msgstr ""
|
||||
msgstr "Entrez les numéros de série pour le nouveau stock (ou laisser vide)"
|
||||
|
||||
#: src/forms/StockForms.tsx:110
|
||||
msgid "Add Stock Item"
|
||||
msgstr ""
|
||||
msgstr "Ajouter un article en stock"
|
||||
|
||||
#: src/forms/StockForms.tsx:110
|
||||
#~ msgid "Create Stock Item"
|
||||
@ -2494,47 +2494,47 @@ msgstr ""
|
||||
|
||||
#: src/pages/Index/Scan.tsx:430
|
||||
msgid "No history"
|
||||
msgstr ""
|
||||
msgstr "Aucun historique"
|
||||
|
||||
#: src/pages/Index/Scan.tsx:449
|
||||
msgid "Item"
|
||||
msgstr ""
|
||||
msgstr "Élément"
|
||||
|
||||
#: src/pages/Index/Scan.tsx:452
|
||||
msgid "Type"
|
||||
msgstr ""
|
||||
msgstr "Type"
|
||||
|
||||
#: src/pages/Index/Scan.tsx:455
|
||||
msgid "Source"
|
||||
msgstr ""
|
||||
msgstr "Source"
|
||||
|
||||
#: src/pages/Index/Scan.tsx:458
|
||||
msgid "Scanned at"
|
||||
msgstr ""
|
||||
msgstr "Scanné le"
|
||||
|
||||
#: src/pages/Index/Scan.tsx:510
|
||||
msgid "Enter item serial or data"
|
||||
msgstr ""
|
||||
msgstr "Entrez le numéro de série ou les données de l'élément"
|
||||
|
||||
#: src/pages/Index/Scan.tsx:522
|
||||
msgid "Add dummy item"
|
||||
msgstr ""
|
||||
msgstr "Ajouter un élément factice"
|
||||
|
||||
#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:32
|
||||
msgid "Account Details"
|
||||
msgstr ""
|
||||
msgstr "Détails du compte"
|
||||
|
||||
#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:41
|
||||
msgid "First name"
|
||||
msgstr ""
|
||||
msgstr "Prénom"
|
||||
|
||||
#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:46
|
||||
msgid "Last name"
|
||||
msgstr ""
|
||||
msgstr "Nom de famille"
|
||||
|
||||
#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:58
|
||||
msgid "First name:"
|
||||
msgstr ""
|
||||
msgstr "Prénom:"
|
||||
|
||||
#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:58
|
||||
#~ msgid "First name: {0}"
|
||||
@ -2546,11 +2546,11 @@ msgstr ""
|
||||
|
||||
#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:62
|
||||
msgid "Last name:"
|
||||
msgstr ""
|
||||
msgstr "Nom de famille:"
|
||||
|
||||
#: src/pages/Index/Settings/AccountSettings/DisplaySettingsPanel.tsx:39
|
||||
msgid "Use pseudo language"
|
||||
msgstr ""
|
||||
msgstr "Utiliser une pseudo langue"
|
||||
|
||||
#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:53
|
||||
msgid "Single Sign On Accounts"
|
||||
@ -2559,7 +2559,7 @@ msgstr ""
|
||||
#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:60
|
||||
#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:78
|
||||
msgid "Not enabled"
|
||||
msgstr ""
|
||||
msgstr "Non activé"
|
||||
|
||||
#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:63
|
||||
msgid "Single Sign On is not enabled for this server"
|
||||
@ -2567,67 +2567,67 @@ msgstr ""
|
||||
|
||||
#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:67
|
||||
msgid "Multifactor"
|
||||
msgstr ""
|
||||
msgstr "Multifacteur"
|
||||
|
||||
#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:81
|
||||
msgid "Multifactor authentication is not configured for your account"
|
||||
msgstr ""
|
||||
msgstr "L'authentification multifacteurs n'est pas configurée pour votre compte"
|
||||
|
||||
#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:132
|
||||
msgid "The following email addresses are associated with your account:"
|
||||
msgstr ""
|
||||
msgstr "Les adresses de messagerie suivantes sont associées à votre compte :"
|
||||
|
||||
#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:144
|
||||
msgid "Primary"
|
||||
msgstr ""
|
||||
msgstr "Principale"
|
||||
|
||||
#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:149
|
||||
msgid "Verified"
|
||||
msgstr ""
|
||||
msgstr "Vérifiée"
|
||||
|
||||
#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:153
|
||||
msgid "Unverified"
|
||||
msgstr ""
|
||||
msgstr "Non vérifiée"
|
||||
|
||||
#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:166
|
||||
msgid "Add Email Address"
|
||||
msgstr ""
|
||||
msgstr "Ajouter une adresse email"
|
||||
|
||||
#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:169
|
||||
msgid "E-Mail"
|
||||
msgstr ""
|
||||
msgstr "E-mail"
|
||||
|
||||
#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:170
|
||||
msgid "E-Mail address"
|
||||
msgstr ""
|
||||
msgstr "Adresse e-mail"
|
||||
|
||||
#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:182
|
||||
msgid "Make Primary"
|
||||
msgstr ""
|
||||
msgstr "Rendre Principale"
|
||||
|
||||
#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:187
|
||||
msgid "Re-send Verification"
|
||||
msgstr ""
|
||||
msgstr "Renvoyer le message de vérification"
|
||||
|
||||
#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:198
|
||||
msgid "Add Email"
|
||||
msgstr ""
|
||||
msgstr "Ajouter l’e-mail"
|
||||
|
||||
#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:263
|
||||
msgid "Provider has not been configured"
|
||||
msgstr ""
|
||||
msgstr "Le fournisseur n'a pas été configuré"
|
||||
|
||||
#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:273
|
||||
msgid "Not configured"
|
||||
msgstr ""
|
||||
msgstr "Non configuré"
|
||||
|
||||
#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:276
|
||||
msgid "There are no social network accounts connected to this account."
|
||||
msgstr ""
|
||||
msgstr "Aucun compte de réseau social n'est connecté à ce compte."
|
||||
|
||||
#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:286
|
||||
msgid "You can sign in to your account using any of the following third party accounts"
|
||||
msgstr ""
|
||||
msgstr "Vous pouvez vous connecter à votre compte, utilisez l’un des comptes tiers suivants"
|
||||
|
||||
#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:68
|
||||
msgid "bars"
|
||||
@ -2643,7 +2643,7 @@ msgstr "points"
|
||||
|
||||
#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:81
|
||||
msgid "Theme"
|
||||
msgstr ""
|
||||
msgstr "Thème"
|
||||
|
||||
#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:87
|
||||
msgid "Primary color"
|
||||
@ -2659,11 +2659,11 @@ msgstr "Couleur noire"
|
||||
|
||||
#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:116
|
||||
msgid "Border Radius"
|
||||
msgstr ""
|
||||
msgstr "Rayon de bordure"
|
||||
|
||||
#: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:132
|
||||
msgid "Loader"
|
||||
msgstr ""
|
||||
msgstr "Chargeur"
|
||||
|
||||
#: src/pages/Index/Settings/AdminCenter.tsx:30
|
||||
#~ msgid "User Management"
|
||||
@ -2675,40 +2675,40 @@ msgstr ""
|
||||
|
||||
#: src/pages/Index/Settings/AdminCenter/Index.tsx:59
|
||||
msgid "Background Tasks"
|
||||
msgstr ""
|
||||
msgstr "Tâches en arrière plan"
|
||||
|
||||
#: src/pages/Index/Settings/AdminCenter/Index.tsx:65
|
||||
msgid "Error Reports"
|
||||
msgstr ""
|
||||
msgstr "Rapports d'erreur"
|
||||
|
||||
#: src/pages/Index/Settings/AdminCenter/Index.tsx:83
|
||||
msgid "Custom Units"
|
||||
msgstr ""
|
||||
msgstr "Unités personnalisées"
|
||||
|
||||
#: src/pages/Index/Settings/AdminCenter/Index.tsx:89
|
||||
msgid "Part Parameters"
|
||||
msgstr ""
|
||||
msgstr "Paramètres de la pièce"
|
||||
|
||||
#: src/pages/Index/Settings/AdminCenter/Index.tsx:105
|
||||
msgid "Quick Actions"
|
||||
msgstr ""
|
||||
msgstr "Actions rapides"
|
||||
|
||||
#: src/pages/Index/Settings/AdminCenter/Index.tsx:110
|
||||
msgid "Add a new user"
|
||||
msgstr ""
|
||||
msgstr "Ajouter un utilisateur"
|
||||
|
||||
#: src/pages/Index/Settings/AdminCenter/Index.tsx:129
|
||||
msgid "Advanced Options"
|
||||
msgstr ""
|
||||
msgstr "Options avancées"
|
||||
|
||||
#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:28
|
||||
#: src/tables/settings/UserTable.tsx:103
|
||||
msgid "Info"
|
||||
msgstr ""
|
||||
msgstr "Info"
|
||||
|
||||
#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:32
|
||||
msgid "External plugins are not enabled for this InvenTree installation."
|
||||
msgstr ""
|
||||
msgstr "Les extensions tierces ne sont pas activées pour cette installation d'InvenTree."
|
||||
|
||||
#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:33
|
||||
#~ msgid "Plugin Error Stack"
|
||||
@ -2724,28 +2724,28 @@ msgstr ""
|
||||
|
||||
#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:50
|
||||
msgid "Plugin Errors"
|
||||
msgstr ""
|
||||
msgstr "Erreurs du plugin"
|
||||
|
||||
#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:59
|
||||
msgid "Plugin Settings"
|
||||
msgstr ""
|
||||
msgstr "Paramètres du plug-in"
|
||||
|
||||
#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:25
|
||||
msgid "Pending Tasks"
|
||||
msgstr ""
|
||||
msgstr "Tâches en attente"
|
||||
|
||||
#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:33
|
||||
msgid "Scheduled Tasks"
|
||||
msgstr ""
|
||||
msgstr "Tâches planifiées"
|
||||
|
||||
#: src/pages/Index/Settings/AdminCenter/TaskManagementPanel.tsx:41
|
||||
msgid "Failed Tasks"
|
||||
msgstr ""
|
||||
msgstr "Tâches en échec"
|
||||
|
||||
#: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:18
|
||||
#: src/tables/settings/UserTable.tsx:121
|
||||
msgid "Groups"
|
||||
msgstr ""
|
||||
msgstr "Groupes"
|
||||
|
||||
#: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:30
|
||||
msgid "Select settings relevant for user lifecycle. More available in"
|
||||
@ -3068,7 +3068,7 @@ msgstr ""
|
||||
|
||||
#: src/pages/part/PartDetail.tsx:155
|
||||
msgid "Minimum Stock"
|
||||
msgstr ""
|
||||
msgstr "Stock Minimum"
|
||||
|
||||
#: src/pages/part/PartDetail.tsx:165
|
||||
#: src/tables/bom/BomTable.tsx:180
|
||||
@ -3078,11 +3078,11 @@ msgstr "Sur commande"
|
||||
|
||||
#: src/pages/part/PartDetail.tsx:181
|
||||
msgid "Allocated to Build Orders"
|
||||
msgstr ""
|
||||
msgstr "Alloué à l'ordre de construction"
|
||||
|
||||
#: src/pages/part/PartDetail.tsx:196
|
||||
msgid "Allocated to Sales Orders"
|
||||
msgstr ""
|
||||
msgstr "Alloué aux ordres de ventes"
|
||||
|
||||
#: src/pages/part/PartDetail.tsx:207
|
||||
#: src/tables/bom/BomTable.tsx:204
|
||||
@ -3098,7 +3098,7 @@ msgstr "Construire"
|
||||
#: src/pages/part/PartDetail.tsx:228
|
||||
#: src/tables/notifications/NotificationsTable.tsx:29
|
||||
msgid "Category"
|
||||
msgstr ""
|
||||
msgstr "Catégorie"
|
||||
|
||||
#: src/pages/part/PartDetail.tsx:239
|
||||
msgid "IPN"
|
||||
@ -3106,17 +3106,17 @@ msgstr ""
|
||||
|
||||
#: src/pages/part/PartDetail.tsx:250
|
||||
msgid "Revision"
|
||||
msgstr ""
|
||||
msgstr "Révision"
|
||||
|
||||
#: src/pages/part/PartDetail.tsx:261
|
||||
#: src/tables/purchasing/ManufacturerPartParameterTable.tsx:39
|
||||
msgid "Units"
|
||||
msgstr ""
|
||||
msgstr "Unités"
|
||||
|
||||
#: src/pages/part/PartDetail.tsx:271
|
||||
#: src/tables/settings/PendingTasksTable.tsx:40
|
||||
msgid "Keywords"
|
||||
msgstr ""
|
||||
msgstr "Mots-clés"
|
||||
|
||||
#: src/pages/part/PartDetail.tsx:281
|
||||
msgid "Creation Date"
|
||||
@ -3142,19 +3142,19 @@ msgstr "Échelle des prix"
|
||||
|
||||
#: src/pages/part/PartDetail.tsx:332
|
||||
msgid "Last Stocktake"
|
||||
msgstr ""
|
||||
msgstr "Dernier inventaire"
|
||||
|
||||
#: src/pages/part/PartDetail.tsx:393
|
||||
msgid "Default Location"
|
||||
msgstr ""
|
||||
msgstr "Emplacement par défaut"
|
||||
|
||||
#: src/pages/part/PartDetail.tsx:404
|
||||
msgid "Default Supplier"
|
||||
msgstr ""
|
||||
msgstr "Fournisseur par Défaut"
|
||||
|
||||
#: src/pages/part/PartDetail.tsx:415
|
||||
msgid "Link"
|
||||
msgstr ""
|
||||
msgstr "Lien"
|
||||
|
||||
#: src/pages/part/PartDetail.tsx:427
|
||||
msgid "Responsible"
|
||||
@ -3162,12 +3162,12 @@ msgstr "Responsable"
|
||||
|
||||
#: src/pages/part/PartDetail.tsx:482
|
||||
msgid "Variants"
|
||||
msgstr ""
|
||||
msgstr "Variants"
|
||||
|
||||
#: src/pages/part/PartDetail.tsx:489
|
||||
#: src/pages/stock/StockDetail.tsx:82
|
||||
msgid "Allocations"
|
||||
msgstr ""
|
||||
msgstr "Allocations"
|
||||
|
||||
#: src/pages/part/PartDetail.tsx:495
|
||||
msgid "Bill of Materials"
|
||||
|
@ -8,7 +8,7 @@ msgstr ""
|
||||
"Language: he\n"
|
||||
"Project-Id-Version: inventree\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"PO-Revision-Date: 2024-02-07 12:22\n"
|
||||
"PO-Revision-Date: 2024-02-10 14:55\n"
|
||||
"Last-Translator: \n"
|
||||
"Language-Team: Hebrew\n"
|
||||
"Plural-Forms: nplurals=4; plural=n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3;\n"
|
||||
|
@ -4877,4 +4877,3 @@ msgstr ""
|
||||
#: src/views/MobileAppView.tsx:23
|
||||
msgid "Read the docs"
|
||||
msgstr ""
|
||||
|
||||
|
@ -8,7 +8,7 @@ msgstr ""
|
||||
"Language: hu\n"
|
||||
"Project-Id-Version: inventree\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"PO-Revision-Date: 2024-02-07 12:22\n"
|
||||
"PO-Revision-Date: 2024-02-10 14:55\n"
|
||||
"Last-Translator: \n"
|
||||
"Language-Team: Hungarian\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
|
@ -8,7 +8,7 @@ msgstr ""
|
||||
"Language: it\n"
|
||||
"Project-Id-Version: inventree\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"PO-Revision-Date: 2024-02-07 12:22\n"
|
||||
"PO-Revision-Date: 2024-02-10 14:55\n"
|
||||
"Last-Translator: \n"
|
||||
"Language-Team: Italian\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
|
@ -8,7 +8,7 @@ msgstr ""
|
||||
"Language: ja\n"
|
||||
"Project-Id-Version: inventree\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"PO-Revision-Date: 2024-02-07 12:22\n"
|
||||
"PO-Revision-Date: 2024-02-10 14:55\n"
|
||||
"Last-Translator: \n"
|
||||
"Language-Team: Japanese\n"
|
||||
"Plural-Forms: nplurals=1; plural=0;\n"
|
||||
|
@ -8,7 +8,7 @@ msgstr ""
|
||||
"Language: ko\n"
|
||||
"Project-Id-Version: inventree\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"PO-Revision-Date: 2024-02-07 12:22\n"
|
||||
"PO-Revision-Date: 2024-02-10 14:55\n"
|
||||
"Last-Translator: \n"
|
||||
"Language-Team: Korean\n"
|
||||
"Plural-Forms: nplurals=1; plural=0;\n"
|
||||
|
@ -8,7 +8,7 @@ msgstr ""
|
||||
"Language: nl\n"
|
||||
"Project-Id-Version: inventree\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"PO-Revision-Date: 2024-02-07 12:23\n"
|
||||
"PO-Revision-Date: 2024-02-10 14:55\n"
|
||||
"Last-Translator: \n"
|
||||
"Language-Team: Dutch\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
|
@ -8,7 +8,7 @@ msgstr ""
|
||||
"Language: no\n"
|
||||
"Project-Id-Version: inventree\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"PO-Revision-Date: 2024-02-07 12:23\n"
|
||||
"PO-Revision-Date: 2024-02-10 14:55\n"
|
||||
"Last-Translator: \n"
|
||||
"Language-Team: Norwegian\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
|
@ -8,7 +8,7 @@ msgstr ""
|
||||
"Language: pl\n"
|
||||
"Project-Id-Version: inventree\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"PO-Revision-Date: 2024-02-07 12:23\n"
|
||||
"PO-Revision-Date: 2024-02-10 14:55\n"
|
||||
"Last-Translator: \n"
|
||||
"Language-Team: Polish\n"
|
||||
"Plural-Forms: nplurals=4; plural=(n==1 ? 0 : (n%10>=2 && n%10<=4) && (n%100<12 || n%100>14) ? 1 : n!=1 && (n%10>=0 && n%10<=1) || (n%10>=5 && n%10<=9) || (n%100>=12 && n%100<=14) ? 2 : 3);\n"
|
||||
|
@ -8,7 +8,7 @@ msgstr ""
|
||||
"Language: pt\n"
|
||||
"Project-Id-Version: inventree\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"PO-Revision-Date: 2024-02-07 12:23\n"
|
||||
"PO-Revision-Date: 2024-02-10 14:55\n"
|
||||
"Last-Translator: \n"
|
||||
"Language-Team: Portuguese\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
|
@ -8,7 +8,7 @@ msgstr ""
|
||||
"Language: ru\n"
|
||||
"Project-Id-Version: inventree\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"PO-Revision-Date: 2024-02-07 12:23\n"
|
||||
"PO-Revision-Date: 2024-02-10 14:55\n"
|
||||
"Last-Translator: \n"
|
||||
"Language-Team: Russian\n"
|
||||
"Plural-Forms: nplurals=4; plural=((n%10==1 && n%100!=11) ? 0 : ((n%10 >= 2 && n%10 <=4 && (n%100 < 12 || n%100 > 14)) ? 1 : ((n%10 == 0 || (n%10 >= 5 && n%10 <=9)) || (n%100 >= 11 && n%100 <= 14)) ? 2 : 3));\n"
|
||||
|
@ -8,7 +8,7 @@ msgstr ""
|
||||
"Language: sk\n"
|
||||
"Project-Id-Version: inventree\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"PO-Revision-Date: 2024-02-07 12:23\n"
|
||||
"PO-Revision-Date: 2024-02-10 14:55\n"
|
||||
"Last-Translator: \n"
|
||||
"Language-Team: Slovak\n"
|
||||
"Plural-Forms: nplurals=4; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 3;\n"
|
||||
|
@ -8,7 +8,7 @@ msgstr ""
|
||||
"Language: sl\n"
|
||||
"Project-Id-Version: inventree\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"PO-Revision-Date: 2024-02-07 12:23\n"
|
||||
"PO-Revision-Date: 2024-02-10 14:55\n"
|
||||
"Last-Translator: \n"
|
||||
"Language-Team: Slovenian\n"
|
||||
"Plural-Forms: nplurals=4; plural=(n%100==1 ? 1 : n%100==2 ? 2 : n%100==3 || n%100==4 ? 3 : 0);\n"
|
||||
|
@ -4877,4 +4877,3 @@ msgstr ""
|
||||
#: src/views/MobileAppView.tsx:23
|
||||
msgid "Read the docs"
|
||||
msgstr ""
|
||||
|
||||
|
@ -8,7 +8,7 @@ msgstr ""
|
||||
"Language: sv\n"
|
||||
"Project-Id-Version: inventree\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"PO-Revision-Date: 2024-02-07 12:23\n"
|
||||
"PO-Revision-Date: 2024-02-10 14:55\n"
|
||||
"Last-Translator: \n"
|
||||
"Language-Team: Swedish\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
@ -202,7 +202,7 @@ msgstr ""
|
||||
|
||||
#: src/components/forms/AuthenticationForm.tsx:271
|
||||
msgid "Or use SSO"
|
||||
msgstr ""
|
||||
msgstr "Eller använd SSO"
|
||||
|
||||
#: src/components/forms/AuthenticationForm.tsx:302
|
||||
msgid "Don't have an account?"
|
||||
@ -250,7 +250,7 @@ msgstr "Redigera möjliga värdalternativ"
|
||||
|
||||
#: src/components/forms/InstanceOptions.tsx:98
|
||||
msgid "Version: {0}"
|
||||
msgstr "Version {0}"
|
||||
msgstr "Version: {0}"
|
||||
|
||||
#: src/components/forms/InstanceOptions.tsx:100
|
||||
msgid "API:{0}"
|
||||
@ -1600,7 +1600,7 @@ msgstr ""
|
||||
|
||||
#: src/contexts/LanguageContext.tsx:18
|
||||
msgid "Bulgarian"
|
||||
msgstr ""
|
||||
msgstr "Bulgariska"
|
||||
|
||||
#: src/contexts/LanguageContext.tsx:19
|
||||
msgid "Czech"
|
||||
@ -1608,23 +1608,23 @@ msgstr ""
|
||||
|
||||
#: src/contexts/LanguageContext.tsx:20
|
||||
msgid "Danish"
|
||||
msgstr ""
|
||||
msgstr "Danska"
|
||||
|
||||
#: src/contexts/LanguageContext.tsx:21
|
||||
msgid "German"
|
||||
msgstr ""
|
||||
msgstr "Tyska"
|
||||
|
||||
#: src/contexts/LanguageContext.tsx:22
|
||||
msgid "Greek"
|
||||
msgstr ""
|
||||
msgstr "Grekiska"
|
||||
|
||||
#: src/contexts/LanguageContext.tsx:23
|
||||
msgid "English"
|
||||
msgstr ""
|
||||
msgstr "Engelska"
|
||||
|
||||
#: src/contexts/LanguageContext.tsx:24
|
||||
msgid "Spanish"
|
||||
msgstr ""
|
||||
msgstr "Spanska"
|
||||
|
||||
#: src/contexts/LanguageContext.tsx:25
|
||||
msgid "Spanish (Mexican)"
|
||||
@ -1636,11 +1636,11 @@ msgstr ""
|
||||
|
||||
#: src/contexts/LanguageContext.tsx:27
|
||||
msgid "Finnish"
|
||||
msgstr ""
|
||||
msgstr "Finska"
|
||||
|
||||
#: src/contexts/LanguageContext.tsx:28
|
||||
msgid "French"
|
||||
msgstr ""
|
||||
msgstr "Franska"
|
||||
|
||||
#: src/contexts/LanguageContext.tsx:29
|
||||
msgid "Hebrew"
|
||||
@ -1648,19 +1648,19 @@ msgstr ""
|
||||
|
||||
#: src/contexts/LanguageContext.tsx:30
|
||||
msgid "Hindi"
|
||||
msgstr ""
|
||||
msgstr "Hindi"
|
||||
|
||||
#: src/contexts/LanguageContext.tsx:31
|
||||
msgid "Hungarian"
|
||||
msgstr ""
|
||||
msgstr "Ungerska"
|
||||
|
||||
#: src/contexts/LanguageContext.tsx:32
|
||||
msgid "Italian"
|
||||
msgstr ""
|
||||
msgstr "Italienska"
|
||||
|
||||
#: src/contexts/LanguageContext.tsx:33
|
||||
msgid "Japanese"
|
||||
msgstr ""
|
||||
msgstr "Japanska"
|
||||
|
||||
#: src/contexts/LanguageContext.tsx:34
|
||||
msgid "Korean"
|
||||
@ -1672,11 +1672,11 @@ msgstr ""
|
||||
|
||||
#: src/contexts/LanguageContext.tsx:36
|
||||
msgid "Norwegian"
|
||||
msgstr ""
|
||||
msgstr "Norska"
|
||||
|
||||
#: src/contexts/LanguageContext.tsx:37
|
||||
msgid "Polish"
|
||||
msgstr ""
|
||||
msgstr "Polska"
|
||||
|
||||
#: src/contexts/LanguageContext.tsx:38
|
||||
msgid "Portuguese"
|
||||
@ -1688,11 +1688,11 @@ msgstr ""
|
||||
|
||||
#: src/contexts/LanguageContext.tsx:40
|
||||
msgid "Russian"
|
||||
msgstr ""
|
||||
msgstr "Ryska"
|
||||
|
||||
#: src/contexts/LanguageContext.tsx:41
|
||||
msgid "Slovak"
|
||||
msgstr ""
|
||||
msgstr "Slovakiska"
|
||||
|
||||
#: src/contexts/LanguageContext.tsx:42
|
||||
msgid "Slovenian"
|
||||
@ -1700,7 +1700,7 @@ msgstr ""
|
||||
|
||||
#: src/contexts/LanguageContext.tsx:43
|
||||
msgid "Swedish"
|
||||
msgstr ""
|
||||
msgstr "Svenska"
|
||||
|
||||
#: src/contexts/LanguageContext.tsx:44
|
||||
msgid "Thai"
|
||||
@ -1708,7 +1708,7 @@ msgstr ""
|
||||
|
||||
#: src/contexts/LanguageContext.tsx:45
|
||||
msgid "Turkish"
|
||||
msgstr ""
|
||||
msgstr "Turkiska"
|
||||
|
||||
#: src/contexts/LanguageContext.tsx:46
|
||||
msgid "Vietnamese"
|
||||
@ -3463,7 +3463,7 @@ msgstr "Lägg till filter"
|
||||
|
||||
#: src/tables/FilterSelectDrawer.tsx:228
|
||||
msgid "Clear Filters"
|
||||
msgstr ""
|
||||
msgstr "Rensa filter"
|
||||
|
||||
#: src/tables/InvenTreeTable.tsx:88
|
||||
#: src/tables/InvenTreeTable.tsx:352
|
||||
@ -4049,7 +4049,7 @@ msgstr ""
|
||||
|
||||
#: src/tables/part/PartThumbTable.tsx:202
|
||||
msgid "Search..."
|
||||
msgstr ""
|
||||
msgstr "Sök..."
|
||||
|
||||
#: src/tables/part/PartVariantTable.tsx:16
|
||||
msgid "Show active variants"
|
||||
|
@ -4877,4 +4877,3 @@ msgstr ""
|
||||
#: src/views/MobileAppView.tsx:23
|
||||
msgid "Read the docs"
|
||||
msgstr ""
|
||||
|
||||
|
@ -4877,4 +4877,3 @@ msgstr ""
|
||||
#: src/views/MobileAppView.tsx:23
|
||||
msgid "Read the docs"
|
||||
msgstr "Belgeleri okuyun"
|
||||
|
||||
|
@ -4877,4 +4877,3 @@ msgstr "Giao diện nền tảng được tối ưu cho máy tính bảng và m
|
||||
#: src/views/MobileAppView.tsx:23
|
||||
msgid "Read the docs"
|
||||
msgstr "Đọc tài liệu"
|
||||
|
||||
|
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue
Block a user