feat(iot): repackaged Odoo iot modules + Fusion Plating sensor wrapper

Phase A of the IoT initiative — gets the server-side infrastructure
in place before the Raspberry Pi hardware arrives, so the iot admin
UI + /fp/iot/ingest endpoint are ready to accept the first real
temperature reading as soon as the Pi is wired up.

New top-level folder: fusion_iot/

1. **iot_base/** — Odoo S.A. iot_base module, copied from
   RePackaged-Odoo verbatim. LGPL-3 upstream, no changes needed.

2. **iot/** — Odoo S.A. iot module, repackaged:
   - `models/update.py` neutralised (removed the publisher_warranty
     IoT-Box-counting report that phones home to odoo.com for
     enterprise licence enforcement)
   - `iot_handlers/lib/load_worldline_library.sh` deleted (proprietary
     Worldline payment lib fetch from download.odoo.com, not needed)
   - `wizard/add_iot_box.py._connect_iot_box_with_pairing_code` —
     upstream called odoo.com's iot-proxy to resolve pairing codes;
     replaced with a no-op. Pi-side iot_drivers proxy registers
     directly with this Odoo server instead.
   - Manifest rebranded with an explicit changelog preamble.

3. **fusion_plating_iot/** — new plating-specific wrapper:
   - `fp.tank.sensor` — maps an iot.device (or a direct-HTTP-ingest
     sensor) to a fusion.plating.tank + fusion.plating.bath.parameter.
     Supports DS18B20, PT100/1000, pH, conductivity, level. Per-sensor
     alert_min/max overrides.
   - `fp.tank.reading` — append-only time-series. On create, evaluates
     against sensor's alert range. On in-spec → out-of-spec TRANSITION,
     auto-raises a fusion.plating.quality.hold (once per excursion,
     no spam during sustained out-of-spec).
   - `POST /fp/iot/ingest` — shared-secret HTTP endpoint for sensors
     bypassing the Pi proxy. Token via X-FP-IOT-Token header OR body.
     Accepts single-reading or batch payloads.
   - Menu under Plating → Operations → Sensors & Readings.
   - Tank form inherits get a Sensors tab inline.

Deployed to entech. Verified end-to-end:
- Install: iot_base + iot + fusion_plating_iot all 'installed'
- Smoke test: in-spec → out-of-spec → hold raised (HOLD-0010);
  continued excursion → NO duplicate hold; back-in-spec → NEW
  excursion → NEW hold (HOLD-0011) ✓
- HTTP endpoint: correct token → 200 accepted; wrong token → 401;
  unknown device_serial → 404; batch payload → 200 accepted=N ✓

Phase B (when Raspberry Pi hardware arrives): DS18B20 iot_handler
driver for the Pi-side iot_drivers proxy + systemd service on
vanilla Raspberry Pi OS + first live reading from physical probe.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
gsinghpal
2026-04-19 10:46:45 -04:00
parent c118b7c6b5
commit 6e964c230f
419 changed files with 76449 additions and 0 deletions

Binary file not shown.

Binary file not shown.

BIN
fusion_iot/iot/._controllers Executable file

Binary file not shown.

BIN
fusion_iot/iot/._demo Executable file

Binary file not shown.

BIN
fusion_iot/iot/._i18n Executable file

Binary file not shown.

BIN
fusion_iot/iot/._iot_handlers Executable file

Binary file not shown.

BIN
fusion_iot/iot/._models Executable file

Binary file not shown.

BIN
fusion_iot/iot/._security Executable file

Binary file not shown.

BIN
fusion_iot/iot/._static Executable file

Binary file not shown.

BIN
fusion_iot/iot/._tests Executable file

Binary file not shown.

BIN
fusion_iot/iot/._views Executable file

Binary file not shown.

BIN
fusion_iot/iot/._wizard Executable file

Binary file not shown.

View File

@@ -0,0 +1,6 @@
# -*- coding: utf-8 -*-
# Part of Odoo. See LICENSE file for full copyright and licensing details.
from . import models
from . import controllers
from . import wizard

View File

@@ -0,0 +1,52 @@
# -*- coding: utf-8 -*-
# Repackaged for Fusion Apps by Nexa Systems Inc. (2026) — LGPL-3.
# Upstream source: Odoo S.A. `iot` module (tag 19.0).
# Changes from upstream:
# * update.py — publisher_warranty IoT-Box reporter neutralised
# * iot_handlers/lib/load_worldline_library.sh — removed (Worldline lib fetch from odoo.com)
# No other functional changes — the module still runs Odoo's IoT pairing,
# channel, device management UI, and handler-zip endpoint as upstream.
{
'name': 'Internet of Things',
'version': '19.0.1.0.0',
'category': 'Administration/IoT',
'sequence': 250,
'summary': 'IoT Box management + device framework (repackaged for Fusion).',
'description': """
This module provides management of your IoT Boxes inside Odoo.
Repackaged for community use by Nexa Systems Inc. — Fusion Apps product family.
""",
'depends': ['mail', 'iot_base'],
'data': [
'wizard/add_iot_box_views.xml',
'wizard/select_printers_views.xml',
'security/iot_security.xml',
'security/ir.model.access.csv',
'views/iot_views.xml',
],
'demo': [
'demo/iot_demo.xml'
],
'installable': True,
'application': True,
'author': 'Nexa Systems Inc. (repackaged from Odoo S.A.)',
'license': 'LGPL-3',
'assets': {
'web.assets_backend': [
'iot/static/src/**/*',
],
'web.assets_unit_tests': [
'iot/static/src/network_utils/iot_websocket.js',
'iot/static/src/network_utils/iot_webrtc.js',
'iot/static/tests/unit/**/*',
],
'web.assets_tests': [
('include', 'iot.assets_tests'),
],
'iot.assets_tests': [
'iot/static/tests/tours/**/*',
],
}
}

Binary file not shown.

Binary file not shown.

View File

@@ -0,0 +1,4 @@
# -*- coding: utf-8 -*-
# Part of Odoo. See LICENSE file for full copyright and licensing details.
from . import main

View File

@@ -0,0 +1,325 @@
# -*- coding: utf-8 -*-
# Part of Odoo. See LICENSE file for full copyright and licensing details.
import hashlib
import io
import itertools
import json
import logging
import pathlib
import pprint
import textwrap
import werkzeug
import zipfile
from werkzeug.exceptions import NotFound
from odoo import http
from odoo.http import request, Response, Stream
from odoo.modules import get_module_path
from odoo.tools.misc import str2bool
_logger = logging.getLogger(__name__)
_iot_logger = logging.getLogger(__name__ + '.iot_log')
# We want to catch any log level that the IoT send
_iot_logger.setLevel(logging.DEBUG)
_logger = logging.getLogger(__name__)
def ensure_unique_name(name):
existing_names = request.env['iot.box'].sudo().search([('name', 'ilike', name + '%')]).mapped('name')
base_name = name
suffix = 1
while name in existing_names:
name = f"{base_name} ({suffix})"
suffix += 1
return name
class IoTController(http.Controller):
def _search_box(self, identifier):
return request.env['iot.box'].sudo().search([('identifier', '=', identifier)], limit=1)
@http.route('/iot/get_handlers', type='http', auth='public', csrf=False)
def get_handlers(self, identifier, auto):
"""Return a zip file containing all the IoT handlers for the given IoT Box.
:param identifier: The identifier of the IoT Box.
:param auto: If True, the IoT Box will automatically update its handlers.
:return: A zip file containing all the IoT handlers.
"""
# Check if identifier is of one of the IoT Boxes
box = self._search_box(identifier)
if not box or (auto == 'True' and not box.drivers_auto_update):
raise werkzeug.exceptions.Unauthorized(
description="No IoT box found with identifier '%s' or auto update disabled on the box." % identifier
)
# '_L.py' files for Linux and '_W.py' for Windows
incompatible_filename = "_L.py" if box.version[0] == 'W' else "_W.py"
module_ids = request.env['ir.module.module'].sudo().search([('state', '=', 'installed')])
fobj = io.BytesIO()
with zipfile.ZipFile(fobj, 'w', zipfile.ZIP_DEFLATED) as zf:
for module in module_ids.mapped('name') + ['iot_drivers', 'pos_blackbox_be']: # add pos_blackbox_be to detect blackbox devices without the module installed
module_path = get_module_path(module)
if module_path:
iot_handlers = pathlib.Path(module_path) / 'iot_handlers'
for handler in iot_handlers.glob('*/*'):
if handler.name.startswith(('.', '_')) or handler.name.endswith(incompatible_filename):
continue
zf.write(handler, handler.relative_to(iot_handlers)) # In order to remove the absolute path
etag = hashlib.sha256(fobj.getvalue()).hexdigest()
# If the file has not been modified since the last request, return a 304 (Not Modified)
if etag == request.httprequest.headers.get('If-None-Match'):
return request.make_response('', headers=[('ETag', etag)], status=304)
return Stream(
type='data',
data=fobj.getvalue(),
download_name='iot_handlers.zip',
etag=etag,
size=fobj.tell(),
public=True,
).get_response()
@http.route('/iot/keyboard_layouts', type='http', auth='public', csrf=False)
def load_keyboard_layouts(self, available_layouts):
if not request.env['iot.keyboard.layout'].sudo().search_count([]):
request.env['iot.keyboard.layout'].sudo().create(json.loads(available_layouts))
return ''
@http.route('/iot/box/<string:identifier>/display_url', type='http', auth='public')
def get_url(self, identifier):
urls = {}
iotbox = self._search_box(identifier)
if iotbox:
iot_devices = iotbox.device_ids.filtered(lambda device: device.type == 'display')
for device in iot_devices:
urls[device.identifier] = device.display_url
return json.dumps(urls)
@http.route('/iot/box/send_websocket', type='jsonrpc', auth='public')
def iot_box_send_websocket(self, session_id, iot_box_identifier, device_identifier, status, **kwargs):
"""Called by the IoT Box once an operation is over. We then forward
the acknowledgment to the user who made the request to inform him
of the success of the operation.
:param session_id: ID of the operation
:param iot_box_identifier: The IP of the IoT box (used to find the box)
:param device_identifier: The IoT device identifier
:param status: Status of the last action (success, error, ...)
:param kwargs:
"""
box = self._search_box(iot_box_identifier)
if not box:
_logger.warning("No IoT Box found with identifier: '%s'. Request ignored", iot_box_identifier)
return
if (
device_identifier
and not request.env["iot.device"].sudo().search(
[('identifier', '=', device_identifier), ('iot_id', '=', box.id)], limit=1
)
and device_identifier != box.identifier # target the box itself
):
_logger.warning(
"No IoT device found with identifier '%s' (iot_box_identifier: %s). Request ignored",
device_identifier, iot_box_identifier
)
return
request.env['iot.channel'].send_message({
'session_id': session_id or kwargs.get("owner"), # TODO: replace "owner" by "session_id" in drivers
'iot_box_identifier': iot_box_identifier,
'device_identifier': device_identifier,
'message': {
'status': status,
'result': kwargs.get('result', {}),
'action_args': kwargs.get('action_args', {})
},
}, message_type='operation_confirmation')
@http.route('/iot/box/webrtc_answer', type='jsonrpc', auth='public')
def iot_box_webrtc_answer(self, iot_box_identifier, answer):
"""Called by the IoT Box after receiving a WebRTC offer from a user.
The IoT box sends its WebRTC answer and we forward it to the user so
they can establish the connection.
:param iot_box_identifier: The identifier (serial number) of the IoT box
:param answer: The WebRTC answer object
"""
box = self._search_box(iot_box_identifier)
if not box:
_logger.warning("No IoT Box found with identifier: '%s'. Request ignored", iot_box_identifier)
raise NotFound()
request.env['iot.channel'].send_message({
'iot_box_identifier': iot_box_identifier,
'answer': answer,
}, message_type='webrtc_answer')
@http.route('/iot/setup', type='jsonrpc', auth='public')
def update_box(self, iot_box, devices):
"""This function receives a dict from the iot box with information from it
as well as devices connected and supported by this box.
This function create the box and the devices and set the status (connected / disconnected)
of devices linked with this box
:param dict iot_box: IoT Box information
:param dict devices: IoT devices information
:return: IoT websocket channel
"""
# Update or create box
iot_identifier = iot_box['identifier'] # IoT Mac Address
new_iot_ip = iot_box['ip']
new_iot_version = iot_box['version']
box = self._search_box(iot_identifier)
create_update_value = {
'ip': new_iot_ip,
'version': new_iot_version,
}
if box:
if (box.ip, box.version) != (new_iot_ip, new_iot_version):
_logger.info('Updating IoT %s with data: %s', box, create_update_value)
box.write(create_update_value)
else:
name = 'IoT Box' if new_iot_version.startswith('L') else 'Virtual IoT Box'
create_update_value['name'] = ensure_unique_name(name)
icp_sudo = request.env['ir.config_parameter'].sudo()
iot_token = icp_sudo.get_param('iot.iot_token')
if iot_token and iot_token == iot_box['token']:
create_update_value['identifier'] = iot_identifier
_logger.info('Creating IoT with data: %s', create_update_value)
box = request.env['iot.box'].sudo().create(create_update_value)
# Clear the used token to force creating a new one for next IoT Box
icp_sudo.set_param('iot.iot_token', '')
else:
_logger.warning('Token mismatch for IoT %s expected %s got %s', iot_identifier, iot_token, iot_box['token'])
return None
_logger.info('IoT %s devices:\n%s', box, pprint.pformat(devices))
# Update or create devices
if box:
previously_connected_iot_devices = request.env['iot.device'].sudo().search([
('iot_id', '=', box.id),
('connected_status', '=', 'connected')
])
connected_iot_devices = request.env['iot.device'].sudo()
for device_identifier in devices:
available_types = [s[0] for s in request.env['iot.device']._fields['type'].selection]
available_connections = [s[0] for s in request.env['iot.device']._fields['connection'].selection]
data_device = devices[device_identifier]
if data_device['type'] in available_types and data_device['connection'] in available_connections:
# Special case to handle serial port change for blackbox
if data_device['type'] == 'fiscal_data_module' and 'BODO001' in data_device['name']:
existing_blackbox = connected_iot_devices.search([
('iot_id', '=', box.id), ('name', 'like', 'BODO001'), ('type', '=', 'fiscal_data_module')
], limit=1)
if existing_blackbox:
existing_blackbox.write({'identifier': device_identifier})
connected_iot_devices |= existing_blackbox
continue
device = connected_iot_devices.search([
('iot_id', '=', box.id), ('identifier', '=', device_identifier)
])
# If an `iot.device` record isn't found for this `device`, create a new one.
if not device:
device = request.env['iot.device'].sudo().create({
'iot_id': box.id,
'name': data_device['name'],
'identifier': device_identifier,
'type': data_device['type'],
'manufacturer': data_device.get('manufacturer'),
'connection': data_device['connection'],
'subtype': data_device.get('subtype', ''),
})
elif device and device.type != data_device.get('type') or (device.subtype == '' and device.type == 'printer'):
device.write({
'name': data_device.get('name'),
'type': data_device.get('type'),
'manufacturer': data_device.get('manufacturer'),
'subtype': data_device.get('subtype', '')
})
connected_iot_devices |= device
# Mark the received devices as connected, disconnect the others.
connected_iot_devices.write({'connected_status': 'connected'})
(previously_connected_iot_devices - connected_iot_devices).write({'connected_status': 'disconnected'})
iot_channel = request.env['iot.channel'].sudo().get_iot_channel()
return iot_channel
return None
def _is_iot_log_enabled(self):
return str2bool(request.env['ir.config_parameter'].sudo().get_param('iot.should_log_iot_logs', True))
@http.route('/iot/log', type='http', auth='public', csrf=False)
def receive_iot_log(self):
IOT_ELEMENT_SEPARATOR = b'<log/>\n'
IOT_LOG_LINE_SEPARATOR = b','
IOT_IDENTIFIER_PREFIX = b'identifier '
def log_line_transformation(log_line):
split = log_line.split(IOT_LOG_LINE_SEPARATOR, 1)
return {'levelno': int(split[0]), 'line_formatted': split[1].decode('utf-8')}
def log_current_level():
_iot_logger.log(
log_level,
"%s%s",
init_log_message,
textwrap.indent("\n".join(['', *log_lines]), ' | ')
)
def finish_request():
return Response(status=200)
if not self._is_iot_log_enabled():
return finish_request()
request_data = request.httprequest.get_data()
if request_data.endswith(IOT_ELEMENT_SEPARATOR):
# Do not use rstrip as some characters of the separator might be at the end of the log line
request_data = request_data[:-len(IOT_ELEMENT_SEPARATOR)]
request_data_split = request_data.split(IOT_ELEMENT_SEPARATOR)
if len(request_data_split) < 2:
return finish_request()
identifier_details = request_data_split.pop(0)
if not identifier_details.startswith(IOT_IDENTIFIER_PREFIX):
return finish_request()
identifier = identifier_details[len(IOT_IDENTIFIER_PREFIX):]
iot_box = self._search_box(identifier)
if not iot_box:
return finish_request()
log_details = map(log_line_transformation, request_data_split)
init_log_message = "IoT box log '%s' #%d received:" % (iot_box.name, iot_box.id)
for log_level, log_group in itertools.groupby(log_details, key=lambda log: log['levelno']): # noqa: B007
log_lines = [log_line['line_formatted'] for log_line in log_group]
log_current_level()
return finish_request()
@http.route('/iot/box/update_certificate_status', type='jsonrpc', auth='public')
def update_certificate_status(self, identifier, ssl_certificate_end_date):
"""Update the SSL certificate end date for the IoT Box.
:param str identifier: IoT Box identifier
:param str ssl_certificate_end_date: SSL certificate end date
"""
box = self._search_box(identifier)
if not box:
_logger.warning("No IoT Box found with identifier '%s'. Request ignored", identifier)
return
box.write({'ssl_certificate_end_date': ssl_certificate_end_date})

Binary file not shown.

View File

@@ -0,0 +1,125 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<data noupdate="1">
<!-- IoT Boxes -->
<record id="iot_box_shop" model="iot.box">
<field name="name">Shop</field>
<field name="identifier">00:00:00:00:00:00</field>
<field name="ip">0.0.0.0</field>
<field name="version">L19.12-17.0#3bf1a33</field>
</record>
<record id="iot_box_workshop" model="iot.box">
<field name="name">Workshop</field>
<field name="identifier">11:11:11:11:11:11</field>
<field name="ip">1.1.1.1</field>
<field name="version">W19.12</field>
</record>
<!-- IoT Devices -->
<record id="iot_printer" model="iot.device">
<field name="name">Receipt Printer</field>
<field name="iot_id" ref="iot_box_shop"/>
<field name="identifier">printer_identifier</field>
<field name="type">printer</field>
<field name="subtype">receipt_printer</field>
<field name="manufacturer"></field>
<field name="connection">network</field>
<field name="connected_status">disconnected</field>
</record>
<record id="iot_scanner" model="iot.device">
<field name="name">Barcode Scanner</field>
<field name="iot_id" ref="iot_box_shop"/>
<field name="identifier">scanner_identifier</field>
<field name="type">scanner</field>
<field name="manufacturer"></field>
<field name="connection">direct</field>
<field name="connected_status">disconnected</field>
</record>
<record id="iot_payment" model="iot.device">
<field name="name">Payment Terminal</field>
<field name="iot_id" ref="iot_box_shop"/>
<field name="identifier">payment_identifier</field>
<field name="type">payment</field>
<field name="manufacturer"></field>
<field name="connection">network</field>
<field name="connected_status">disconnected</field>
</record>
<record id="iot_scale" model="iot.device">
<field name="name">Scale</field>
<field name="iot_id" ref="iot_box_shop"/>
<field name="identifier">scale_identifier</field>
<field name="type">scale</field>
<field name="manufacturer"></field>
<field name="connection">serial</field>
<field name="connected_status">disconnected</field>
</record>
<record id="iot_display" model="iot.device">
<field name="name">Customer Display</field>
<field name="iot_id" ref="iot_box_shop"/>
<field name="identifier">display_identifier</field>
<field name="type">display</field>
<field name="manufacturer"></field>
<field name="connection">hdmi</field>
<field name="connected_status">disconnected</field>
</record>
<record id="iot_fdm" model="iot.device">
<field name="name">Fiscal Data Module</field>
<field name="iot_id" ref="iot_box_shop"/>
<field name="identifier">fdm_identifier</field>
<field name="type">fiscal_data_module</field>
<field name="manufacturer"></field>
<field name="connection">serial</field>
<field name="connected_status">disconnected</field>
</record>
<record id="iot_keyboard" model="iot.device">
<field name="name">USB Keyboard</field>
<field name="iot_id" ref="iot_box_workshop"/>
<field name="identifier">keyboard_identifier</field>
<field name="type">keyboard</field>
<field name="manufacturer"></field>
<field name="connection">direct</field>
<field name="connected_status">disconnected</field>
</record>
<record id="iot_camera" model="iot.device">
<field name="name">Camera</field>
<field name="iot_id" ref="iot_box_workshop"/>
<field name="identifier">camera_identifier</field>
<field name="type">camera</field>
<field name="manufacturer"></field>
<field name="connection">direct</field>
<field name="connected_status">disconnected</field>
</record>
<record id="iot_device" model="iot.device">
<field name="name">Caliper</field>
<field name="iot_id" ref="iot_box_workshop"/>
<field name="identifier">device_identifier</field>
<field name="type">device</field>
<field name="manufacturer"></field>
<field name="connection">bluetooth</field>
<field name="connected_status">disconnected</field>
</record>
<record id="iot_unsupported_device" model="iot.device">
<field name="name">Unsupported Device</field>
<field name="iot_id" ref="iot_box_workshop"/>
<field name="identifier">unsupported_identifier</field>
<field name="type">unsupported</field>
<field name="manufacturer"></field>
<field name="connection">serial</field>
<field name="connected_status">disconnected</field>
</record>
</data>
</odoo>

BIN
fusion_iot/iot/i18n/._ar.po Normal file

Binary file not shown.

BIN
fusion_iot/iot/i18n/._az.po Normal file

Binary file not shown.

BIN
fusion_iot/iot/i18n/._bg.po Normal file

Binary file not shown.

BIN
fusion_iot/iot/i18n/._bs.po Normal file

Binary file not shown.

BIN
fusion_iot/iot/i18n/._ca.po Normal file

Binary file not shown.

BIN
fusion_iot/iot/i18n/._cs.po Normal file

Binary file not shown.

BIN
fusion_iot/iot/i18n/._da.po Normal file

Binary file not shown.

BIN
fusion_iot/iot/i18n/._de.po Normal file

Binary file not shown.

BIN
fusion_iot/iot/i18n/._el.po Normal file

Binary file not shown.

BIN
fusion_iot/iot/i18n/._es.po Normal file

Binary file not shown.

Binary file not shown.

BIN
fusion_iot/iot/i18n/._et.po Normal file

Binary file not shown.

BIN
fusion_iot/iot/i18n/._fa.po Normal file

Binary file not shown.

BIN
fusion_iot/iot/i18n/._fi.po Normal file

Binary file not shown.

BIN
fusion_iot/iot/i18n/._fr.po Normal file

Binary file not shown.

BIN
fusion_iot/iot/i18n/._gu.po Normal file

Binary file not shown.

BIN
fusion_iot/iot/i18n/._he.po Normal file

Binary file not shown.

BIN
fusion_iot/iot/i18n/._hi.po Normal file

Binary file not shown.

BIN
fusion_iot/iot/i18n/._hr.po Normal file

Binary file not shown.

BIN
fusion_iot/iot/i18n/._hu.po Normal file

Binary file not shown.

BIN
fusion_iot/iot/i18n/._id.po Normal file

Binary file not shown.

Binary file not shown.

BIN
fusion_iot/iot/i18n/._is.po Normal file

Binary file not shown.

BIN
fusion_iot/iot/i18n/._it.po Normal file

Binary file not shown.

BIN
fusion_iot/iot/i18n/._ja.po Normal file

Binary file not shown.

Binary file not shown.

BIN
fusion_iot/iot/i18n/._km.po Normal file

Binary file not shown.

BIN
fusion_iot/iot/i18n/._ko.po Normal file

Binary file not shown.

BIN
fusion_iot/iot/i18n/._ku.po Normal file

Binary file not shown.

BIN
fusion_iot/iot/i18n/._lb.po Normal file

Binary file not shown.

BIN
fusion_iot/iot/i18n/._lt.po Normal file

Binary file not shown.

BIN
fusion_iot/iot/i18n/._lv.po Normal file

Binary file not shown.

BIN
fusion_iot/iot/i18n/._mn.po Normal file

Binary file not shown.

BIN
fusion_iot/iot/i18n/._my.po Normal file

Binary file not shown.

BIN
fusion_iot/iot/i18n/._nb.po Normal file

Binary file not shown.

BIN
fusion_iot/iot/i18n/._nl.po Normal file

Binary file not shown.

BIN
fusion_iot/iot/i18n/._pl.po Normal file

Binary file not shown.

BIN
fusion_iot/iot/i18n/._pt.po Normal file

Binary file not shown.

Binary file not shown.

BIN
fusion_iot/iot/i18n/._ro.po Normal file

Binary file not shown.

BIN
fusion_iot/iot/i18n/._ru.po Normal file

Binary file not shown.

BIN
fusion_iot/iot/i18n/._sk.po Normal file

Binary file not shown.

BIN
fusion_iot/iot/i18n/._sl.po Normal file

Binary file not shown.

Binary file not shown.

BIN
fusion_iot/iot/i18n/._sv.po Normal file

Binary file not shown.

BIN
fusion_iot/iot/i18n/._th.po Normal file

Binary file not shown.

BIN
fusion_iot/iot/i18n/._tr.po Normal file

Binary file not shown.

BIN
fusion_iot/iot/i18n/._uk.po Normal file

Binary file not shown.

BIN
fusion_iot/iot/i18n/._vi.po Normal file

Binary file not shown.

Binary file not shown.

Binary file not shown.

1475
fusion_iot/iot/i18n/ar.po Normal file

File diff suppressed because it is too large Load Diff

1276
fusion_iot/iot/i18n/az.po Normal file

File diff suppressed because it is too large Load Diff

1267
fusion_iot/iot/i18n/bg.po Normal file

File diff suppressed because it is too large Load Diff

1278
fusion_iot/iot/i18n/bs.po Normal file

File diff suppressed because it is too large Load Diff

1466
fusion_iot/iot/i18n/ca.po Normal file

File diff suppressed because it is too large Load Diff

1365
fusion_iot/iot/i18n/cs.po Normal file

File diff suppressed because it is too large Load Diff

1424
fusion_iot/iot/i18n/da.po Normal file

File diff suppressed because it is too large Load Diff

1524
fusion_iot/iot/i18n/de.po Normal file

File diff suppressed because it is too large Load Diff

1282
fusion_iot/iot/i18n/el.po Normal file

File diff suppressed because it is too large Load Diff

1491
fusion_iot/iot/i18n/es.po Normal file

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

1391
fusion_iot/iot/i18n/et.po Normal file

File diff suppressed because it is too large Load Diff

1290
fusion_iot/iot/i18n/fa.po Normal file

File diff suppressed because it is too large Load Diff

1493
fusion_iot/iot/i18n/fi.po Normal file

File diff suppressed because it is too large Load Diff

1523
fusion_iot/iot/i18n/fr.po Normal file

File diff suppressed because it is too large Load Diff

637
fusion_iot/iot/i18n/gu.po Normal file
View File

@@ -0,0 +1,637 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * iot
#
# Translators:
# Qaidjohar Barbhaya, 2023
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 16.0+e\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-05-16 16:01+0000\n"
"PO-Revision-Date: 2022-09-22 05:47+0000\n"
"Last-Translator: Qaidjohar Barbhaya, 2023\n"
"Language-Team: Gujarati (https://app.transifex.com/odoo/teams/41243/gu/)\n"
"Language: gu\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. module: iot
#: model_terms:ir.ui.view,arch_db:iot.view_add_iot_box
msgid ""
"0. Power on the IoT Box<br/><br/>\n"
"\n"
" <strong>A. Ethernet Connection</strong><br/>\n"
" 1. Read the pairing code from a display or thermal printer connected to the IoT Box.<br/>\n"
" 2. Enter the code below and click on \"Pair\".<br/>"
msgstr ""
#. module: iot
#: model_terms:ir.ui.view,arch_db:iot.iot_device_view_kanban
msgid "<span class=\"badge text-bg-secondary\">Disconnected</span>"
msgstr ""
#. module: iot
#: model_terms:ir.ui.view,arch_db:iot.iot_device_view_kanban
msgid "<span class=\"badge text-bg-success\">Connected</span>"
msgstr ""
#. module: iot
#: model_terms:ir.ui.view,arch_db:iot.view_add_iot_box
msgid ""
"<strong>B. WiFi Connection (or Ethernet Connection doesn't work)</strong><br/>\n"
" 1. Make sure no ethernet cable is connected to the IoT Box<br/>\n"
" 2. Copy the token that is below<br/>\n"
" 3. Connect to the IoT Box WiFi network (you should see it in your available WiFi networks)<br/>\n"
" 4. You will be redirected to the IoT Box Homepage<br/>\n"
" 5. Paste the token in token field and follow the steps described on the IoT Box Homepage<br/>"
msgstr ""
#. module: iot
#: model:ir.model,name:iot.model_add_iot_box
msgid "Add IoT Box wizard"
msgstr ""
#. module: iot
#. odoo-javascript
#: code:addons/iot/static/src/view_widgets/iot_restart_odoo.js:0
msgid "Are you sure you want to reboot the IoT box?"
msgstr ""
#. module: iot
#. odoo-javascript
#: code:addons/iot/static/src/view_widgets/iot_restart_odoo.js:0
msgid "Are you sure you want to restart Odoo on the IoT box?"
msgstr ""
#. module: iot
#: model:ir.model.fields,field_description:iot.field_iot_box__drivers_auto_update
msgid "Automatic drivers update"
msgstr ""
#. module: iot
#: model:ir.model.fields,help:iot.field_iot_box__drivers_auto_update
msgid "Automatically update drivers when the IoT Box boots"
msgstr ""
#. module: iot
#: model:ir.model.fields.selection,name:iot.selection__iot_device__type__scanner
msgid "Barcode Scanner"
msgstr ""
#. module: iot
#: model:ir.model.fields.selection,name:iot.selection__iot_device__connection__bluetooth
msgid "Bluetooth"
msgstr ""
#. module: iot
#: model:ir.model.fields.selection,name:iot.selection__iot_device__type__camera
msgid "Camera"
msgstr ""
#. module: iot
#. odoo-javascript
#: code:addons/iot/static/src/views/iot_device_form.js:0
msgid "Check if the device is still connected"
msgstr ""
#. module: iot
#. odoo-javascript
#: code:addons/iot/static/src/iot_report_action.js:0
msgid "Check if the printer is still connected"
msgstr ""
#. module: iot
#. odoo-javascript
#: code:addons/iot/static/src/iot_connection_error_dialog.xml:0
msgid "Click here to open your IoT Homepage"
msgstr ""
#. module: iot
#. odoo-javascript
#: code:addons/iot/static/src/iot_connection_error_dialog.xml:0
msgid "Click on Advanced/Show Details/Details/More information"
msgstr ""
#. module: iot
#. odoo-javascript
#: code:addons/iot/static/src/iot_connection_error_dialog.xml:0
msgid "Click on Proceed to .../Add Exception/Visit this website/Go on to the webpage"
msgstr ""
#. module: iot
#: model_terms:ir.actions.act_window,help:iot.iot_box_action
msgid "Click on the"
msgstr ""
#. module: iot
#. odoo-javascript
#: code:addons/iot/static/src/iot_connection_error_dialog.xml:0
#: model_terms:ir.ui.view,arch_db:iot.view_add_iot_box
msgid "Close"
msgstr "Close"
#. module: iot
#. odoo-javascript
#: code:addons/iot/static/src/iot_connection_error_dialog.xml:0
msgid "Close this window and try again"
msgstr ""
#. module: iot
#: model:ir.model.fields,field_description:iot.field_iot_box__company_id
#: model:ir.model.fields,field_description:iot.field_iot_device__company_id
msgid "Company"
msgstr "Company"
#. module: iot
#: model_terms:ir.ui.view,arch_db:iot.iot_box_view_kanban
#: model_terms:ir.ui.view,arch_db:iot.iot_box_view_list
msgid "Connect"
msgstr "Connect"
#. module: iot
#: model:ir.actions.act_window,name:iot.action_add_iot_box
#: model_terms:ir.ui.view,arch_db:iot.view_add_iot_box
msgid "Connect an IoT Box"
msgstr ""
#. module: iot
#: model:ir.model.fields,field_description:iot.field_iot_device__connection
#: model_terms:ir.ui.view,arch_db:iot.iot_device_search
msgid "Connection"
msgstr ""
#. module: iot
#. odoo-javascript
#: code:addons/iot/static/src/iot_connection_error_dialog.js:0
msgid "Connection to IoT Box failed"
msgstr ""
#. module: iot
#. odoo-javascript
#: code:addons/iot/static/src/views/iot_device_form.js:0
msgid "Connection to device failed"
msgstr ""
#. module: iot
#. odoo-javascript
#: code:addons/iot/static/src/iot_report_action.js:0
msgid "Connection to printer failed"
msgstr ""
#. module: iot
#: model:ir.model.fields,field_description:iot.field_add_iot_box__create_uid
#: model:ir.model.fields,field_description:iot.field_iot_box__create_uid
#: model:ir.model.fields,field_description:iot.field_iot_device__create_uid
#: model:ir.model.fields,field_description:iot.field_iot_keyboard_layout__create_uid
msgid "Created by"
msgstr "Created by"
#. module: iot
#: model:ir.model.fields,field_description:iot.field_add_iot_box__create_date
#: model:ir.model.fields,field_description:iot.field_iot_box__create_date
#: model:ir.model.fields,field_description:iot.field_iot_device__create_date
#: model:ir.model.fields,field_description:iot.field_iot_keyboard_layout__create_date
msgid "Created on"
msgstr "Created on"
#. module: iot
#: model:ir.model.fields.selection,name:iot.selection__iot_device__type__device
msgid "Device"
msgstr ""
#. module: iot
#: model:ir.model.fields,field_description:iot.field_iot_box__device_count
#: model_terms:ir.ui.view,arch_db:iot.iot_box_view_kanban
msgid "Device Count"
msgstr ""
#. module: iot
#: model_terms:ir.ui.view,arch_db:iot.iot_device_search
msgid "Device type"
msgstr ""
#. module: iot
#: model_terms:ir.ui.view,arch_db:iot.iot_device_view_kanban
msgid "Device type is #{record.type.raw_value}"
msgstr ""
#. module: iot
#: model:ir.actions.act_window,name:iot.iot_device_action
#: model:ir.actions.act_window,name:iot.iot_device_action_search_iot_box
#: model:ir.model.fields,field_description:iot.field_iot_box__device_ids
#: model:ir.ui.menu,name:iot.iot_device_menu_action
#: model_terms:ir.ui.view,arch_db:iot.iot_box_view_form
msgid "Devices"
msgstr ""
#. module: iot
#: model:ir.model.fields.selection,name:iot.selection__iot_device__type__display
msgid "Display"
msgstr ""
#. module: iot
#: model:ir.model.fields,field_description:iot.field_add_iot_box__display_name
#: model:ir.model.fields,field_description:iot.field_iot_box__display_name
#: model:ir.model.fields,field_description:iot.field_iot_device__display_name
#: model:ir.model.fields,field_description:iot.field_iot_keyboard_layout__display_name
msgid "Display Name"
msgstr "Display Name"
#. module: iot
#: model:ir.model.fields,field_description:iot.field_iot_device__display_url
msgid "Display URL"
msgstr ""
#. module: iot
#: model:ir.model.fields,field_description:iot.field_iot_box__ip
#: model:ir.model.fields,field_description:iot.field_iot_device__iot_ip
msgid "Domain Address"
msgstr ""
#. module: iot
#. odoo-javascript
#: code:addons/iot/static/src/view_widgets/iot_download_logs.xml:0
msgid "Download Logs"
msgstr ""
#. module: iot
#. odoo-javascript
#: code:addons/iot/static/src/view_widgets/iot_download_logs.xml:0
msgid "Download logs"
msgstr ""
#. module: iot
#. odoo-javascript
#: code:addons/iot/static/src/iot_connection_error_dialog.xml:0
msgid "Firefox only: Click on Confirm Security Exception"
msgstr ""
#. module: iot
#: model:ir.model.fields.selection,name:iot.selection__iot_device__type__fiscal_data_module
msgid "Fiscal Data Module"
msgstr ""
#. module: iot
#: model_terms:ir.ui.view,arch_db:iot.iot_device_search
msgid "Group By"
msgstr "Group By"
#. module: iot
#: model:ir.model.fields.selection,name:iot.selection__iot_device__connection__hdmi
msgid "Hdmi"
msgstr ""
#. module: iot
#: model:ir.model.fields,field_description:iot.field_add_iot_box__id
#: model:ir.model.fields,field_description:iot.field_iot_box__id
#: model:ir.model.fields,field_description:iot.field_iot_device__id
#: model:ir.model.fields,field_description:iot.field_iot_keyboard_layout__id
msgid "ID"
msgstr "ID"
#. module: iot
#: model:ir.model,name:iot.model_iot_device
msgid "IOT Device"
msgstr ""
#. module: iot
#: model:ir.model.fields,field_description:iot.field_iot_device__identifier
msgid "Identifier"
msgstr ""
#. module: iot
#: model:ir.model.fields,field_description:iot.field_iot_box__identifier
msgid "Identifier (Mac Address)"
msgstr ""
#. module: iot
#: model:ir.model.fields,help:iot.field_iot_device__connected
msgid "If device is connected to the IoT Box"
msgstr ""
#. module: iot
#. odoo-javascript
#: code:addons/iot/static/src/iot_connection_error_dialog.xml:0
msgid "If you are on a secure server (HTTPS) check if you accepted the certificate:"
msgstr ""
#. module: iot
#: model:ir.model.fields,field_description:iot.field_iot_box__version
msgid "Image Version"
msgstr ""
#. module: iot
#: model:ir.ui.menu,name:iot.iot_menu_root
msgid "IoT"
msgstr ""
#. module: iot
#: model:ir.model,name:iot.model_iot_box
#: model:ir.model.fields,field_description:iot.field_iot_device__iot_id
#: model_terms:ir.ui.view,arch_db:iot.iot_device_search
msgid "IoT Box"
msgstr ""
#. module: iot
#: model:ir.model.fields,field_description:iot.field_iot_box__ip_url
msgid "IoT Box Home Page"
msgstr ""
#. module: iot
#: model:ir.actions.act_window,name:iot.iot_box_action
#: model:ir.ui.menu,name:iot.iot_box_menu_action
msgid "IoT Boxes"
msgstr ""
#. module: iot
#: model:ir.model.fields,field_description:iot.field_ir_actions_report__device_id
#: model_terms:ir.ui.view,arch_db:iot.iot_device_search
msgid "IoT Device"
msgstr ""
#. module: iot
#: model:ir.model.fields,field_description:iot.field_iot_device__is_scanner
msgid "Is Scanner"
msgstr ""
#. module: iot
#: model:ir.model.fields.selection,name:iot.selection__iot_device__type__keyboard
msgid "Keyboard"
msgstr ""
#. module: iot
#: model:ir.model,name:iot.model_iot_keyboard_layout
#: model:ir.model.fields,field_description:iot.field_iot_device__keyboard_layout
msgid "Keyboard Layout"
msgstr ""
#. module: iot
#: model_terms:ir.ui.view,arch_db:iot.iot_device_view_form
msgid "Last Sent Value"
msgstr ""
#. module: iot
#: model:ir.model.fields,field_description:iot.field_add_iot_box__write_uid
#: model:ir.model.fields,field_description:iot.field_iot_box__write_uid
#: model:ir.model.fields,field_description:iot.field_iot_device__write_uid
#: model:ir.model.fields,field_description:iot.field_iot_keyboard_layout__write_uid
msgid "Last Updated by"
msgstr "Last Updated by"
#. module: iot
#: model:ir.model.fields,field_description:iot.field_add_iot_box__write_date
#: model:ir.model.fields,field_description:iot.field_iot_box__write_date
#: model:ir.model.fields,field_description:iot.field_iot_device__write_date
#: model:ir.model.fields,field_description:iot.field_iot_keyboard_layout__write_date
msgid "Last Updated on"
msgstr "Last Updated on"
#. module: iot
#. odoo-javascript
#: code:addons/iot/static/src/view_widgets/iot_restart_odoo.js:0
msgid "Last restarting process hasn't finished yet"
msgstr ""
#. module: iot
#: model:ir.model.fields,field_description:iot.field_iot_keyboard_layout__layout
msgid "Layout"
msgstr ""
#. module: iot
#: model:ir.model.fields,field_description:iot.field_iot_device__manual_measurement
msgid "Manual Measurement"
msgstr ""
#. module: iot
#: model:ir.model.fields,help:iot.field_iot_device__manual_measurement
msgid "Manually read the measurement from the device"
msgstr ""
#. module: iot
#: model:ir.model.fields,help:iot.field_iot_device__is_scanner
msgid "Manually switch the device type between keyboard and scanner"
msgstr ""
#. module: iot
#: model:ir.model.fields,field_description:iot.field_iot_device__manufacturer
msgid "Manufacturer"
msgstr ""
#. module: iot
#: model:ir.model.fields,field_description:iot.field_iot_box__name
#: model:ir.model.fields,field_description:iot.field_iot_device__name
#: model:ir.model.fields,field_description:iot.field_iot_keyboard_layout__name
msgid "Name"
msgstr "Name"
#. module: iot
#: model:ir.model.fields.selection,name:iot.selection__iot_device__connection__network
msgid "Network"
msgstr ""
#. module: iot
#: model_terms:ir.actions.act_window,help:iot.iot_box_action
msgid "No IoT Box found!"
msgstr ""
#. module: iot
#. odoo-javascript
#: code:addons/iot/static/src/iot_connection_error_dialog.xml:0
msgid "Odoo cannot reach the IoT Box."
msgstr ""
#. module: iot
#: model_terms:ir.ui.view,arch_db:iot.view_add_iot_box
msgid "Pair"
msgstr ""
#. module: iot
#: model:ir.model.fields,field_description:iot.field_add_iot_box__pairing_code
msgid "Pairing Code"
msgstr ""
#. module: iot
#: model:ir.model.fields.selection,name:iot.selection__iot_device__type__payment
msgid "Payment Terminal"
msgstr ""
#. module: iot
#. odoo-javascript
#: code:addons/iot/static/src/iot_connection_error_dialog.xml:0
msgid "Please accept the certificate of your IoT Box (procedure depends on your browser):"
msgstr ""
#. module: iot
#. odoo-javascript
#: code:addons/iot/static/src/iot_connection_error_dialog.xml:0
msgid "Please check if the IoT Box is still connected."
msgstr ""
#. module: iot
#. odoo-javascript
#: code:addons/iot/static/src/view_widgets/iot_restart_odoo.js:0
msgid "Please wait"
msgstr ""
#. module: iot
#: model:ir.model.fields.selection,name:iot.selection__iot_device__type__printer
msgid "Printer"
msgstr ""
#. module: iot
#. odoo-javascript
#: code:addons/iot/static/src/iot_report_action.js:0
msgid "Printer "
msgstr ""
#. module: iot
#: model_terms:ir.ui.view,arch_db:iot.iot_device_view_form
msgid "Printer Reports"
msgstr ""
#. module: iot
#: model:ir.model,name:iot.model_publisher_warranty_contract
msgid "Publisher Warranty Contract For IoT Box"
msgstr ""
#. module: iot
#: model:ir.model,name:iot.model_ir_actions_report
msgid "Report Action"
msgstr "Report Action"
#. module: iot
#: model_terms:ir.ui.view,arch_db:iot.act_report_xml_view_tree_iot
msgid "Report xml"
msgstr ""
#. module: iot
#: model:ir.model.fields,field_description:iot.field_iot_device__report_ids
msgid "Reports"
msgstr "અહેવાલો"
#. module: iot
#. odoo-javascript
#: code:addons/iot/static/src/view_widgets/iot_restart_odoo.js:0
msgid "Restart Failed"
msgstr ""
#. module: iot
#. odoo-javascript
#: code:addons/iot/static/src/view_widgets/iot_restart_odoo.js:0
msgid "Restart finished"
msgstr ""
#. module: iot
#. odoo-javascript
#: code:addons/iot/static/src/view_widgets/iot_restart_odoo.js:0
msgid "Restarting"
msgstr ""
#. module: iot
#: model:ir.model.fields.selection,name:iot.selection__iot_device__type__scale
msgid "Scale"
msgstr ""
#. module: iot
#: model:ir.model.fields.selection,name:iot.selection__iot_device__connection__serial
msgid "Serial"
msgstr ""
#. module: iot
#: model:ir.model.fields,field_description:iot.field_iot_device__connected
msgid "Status"
msgstr "Status"
#. module: iot
#. odoo-javascript
#: code:addons/iot/static/src/view_widgets/iot_restart_odoo.js:0
msgid "Success"
msgstr ""
#. module: iot
#. odoo-javascript
#: code:addons/iot/static/src/iot_report_action.js:0
msgid "Successfully sent to printer!"
msgstr ""
#. module: iot
#. odoo-python
#: code:addons/iot/wizard/add_iot_box.py:0
msgid "The pairing code you provided was not found in our system. Please check that you entered it correctly."
msgstr ""
#. module: iot
#: model_terms:ir.actions.act_window,help:iot.iot_device_action_search_iot_box
msgid "There is no device connected to this IoT Box"
msgstr ""
#. module: iot
#: model_terms:ir.actions.act_window,help:iot.iot_device_action
msgid "There is no device connected to your IoT Boxes"
msgstr ""
#. module: iot
#. odoo-javascript
#: code:addons/iot/static/src/view_widgets/iot_restart_odoo.js:0
msgid "Timed out"
msgstr ""
#. module: iot
#: model:ir.model.fields,field_description:iot.field_add_iot_box__token
msgid "Token"
msgstr ""
#. module: iot
#: model:ir.model.fields,field_description:iot.field_iot_device__type
msgid "Type"
msgstr "Type"
#. module: iot
#: model:ir.model.fields,help:iot.field_iot_device__connection
msgid "Type of connection."
msgstr ""
#. module: iot
#: model:ir.model.fields,help:iot.field_iot_device__type
msgid "Type of device."
msgstr ""
#. module: iot
#: model:ir.model.fields,help:iot.field_iot_device__display_url
msgid "URL of the page that will be displayed by the device, leave empty to use the customer facing display of the POS."
msgstr ""
#. module: iot
#: model:ir.model.fields.selection,name:iot.selection__iot_device__connection__direct
msgid "USB"
msgstr ""
#. module: iot
#: model:ir.model.fields,field_description:iot.field_iot_keyboard_layout__variant
msgid "Variant"
msgstr ""
#. module: iot
#. odoo-python
#: code:addons/iot/wizard/add_iot_box.py:0
msgid "We had troubles pairing your IoT Box. Please try again later."
msgstr ""
#. module: iot
#: model:ir.model.fields,help:iot.field_ir_actions_report__device_id
msgid "When setting a device here, the report will be printed through this device on the IoT Box"
msgstr ""
#. module: iot
#: model_terms:ir.actions.act_window,help:iot.iot_box_action
msgid "connect"
msgstr ""
#. module: iot
#: model_terms:ir.actions.act_window,help:iot.iot_box_action
msgid "to add an IoT Box."
msgstr ""

1339
fusion_iot/iot/i18n/he.po Normal file

File diff suppressed because it is too large Load Diff

1266
fusion_iot/iot/i18n/hi.po Normal file

File diff suppressed because it is too large Load Diff

1313
fusion_iot/iot/i18n/hr.po Normal file

File diff suppressed because it is too large Load Diff

1308
fusion_iot/iot/i18n/hu.po Normal file

File diff suppressed because it is too large Load Diff

1352
fusion_iot/iot/i18n/id.po Normal file

File diff suppressed because it is too large Load Diff

1260
fusion_iot/iot/i18n/iot.pot Normal file

File diff suppressed because it is too large Load Diff

633
fusion_iot/iot/i18n/is.po Normal file
View File

@@ -0,0 +1,633 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * iot
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 16.0beta+e\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-05-16 16:01+0000\n"
"PO-Revision-Date: 2022-09-22 05:47+0000\n"
"Language-Team: Icelandic (https://www.transifex.com/odoo/teams/41243/is/)\n"
"Language: is\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: nplurals=2; plural=(n % 10 != 1 || n % 100 == 11);\n"
#. module: iot
#: model_terms:ir.ui.view,arch_db:iot.view_add_iot_box
msgid ""
"0. Power on the IoT Box<br/><br/>\n"
"\n"
" <strong>A. Ethernet Connection</strong><br/>\n"
" 1. Read the pairing code from a display or thermal printer connected to the IoT Box.<br/>\n"
" 2. Enter the code below and click on \"Pair\".<br/>"
msgstr ""
#. module: iot
#: model_terms:ir.ui.view,arch_db:iot.iot_device_view_kanban
msgid "<span class=\"badge text-bg-secondary\">Disconnected</span>"
msgstr ""
#. module: iot
#: model_terms:ir.ui.view,arch_db:iot.iot_device_view_kanban
msgid "<span class=\"badge text-bg-success\">Connected</span>"
msgstr ""
#. module: iot
#: model_terms:ir.ui.view,arch_db:iot.view_add_iot_box
msgid ""
"<strong>B. WiFi Connection (or Ethernet Connection doesn't work)</strong><br/>\n"
" 1. Make sure no ethernet cable is connected to the IoT Box<br/>\n"
" 2. Copy the token that is below<br/>\n"
" 3. Connect to the IoT Box WiFi network (you should see it in your available WiFi networks)<br/>\n"
" 4. You will be redirected to the IoT Box Homepage<br/>\n"
" 5. Paste the token in token field and follow the steps described on the IoT Box Homepage<br/>"
msgstr ""
#. module: iot
#: model:ir.model,name:iot.model_add_iot_box
msgid "Add IoT Box wizard"
msgstr ""
#. module: iot
#. odoo-javascript
#: code:addons/iot/static/src/view_widgets/iot_restart_odoo.js:0
msgid "Are you sure you want to reboot the IoT box?"
msgstr ""
#. module: iot
#. odoo-javascript
#: code:addons/iot/static/src/view_widgets/iot_restart_odoo.js:0
msgid "Are you sure you want to restart Odoo on the IoT box?"
msgstr ""
#. module: iot
#: model:ir.model.fields,field_description:iot.field_iot_box__drivers_auto_update
msgid "Automatic drivers update"
msgstr ""
#. module: iot
#: model:ir.model.fields,help:iot.field_iot_box__drivers_auto_update
msgid "Automatically update drivers when the IoT Box boots"
msgstr ""
#. module: iot
#: model:ir.model.fields.selection,name:iot.selection__iot_device__type__scanner
msgid "Barcode Scanner"
msgstr ""
#. module: iot
#: model:ir.model.fields.selection,name:iot.selection__iot_device__connection__bluetooth
msgid "Bluetooth"
msgstr ""
#. module: iot
#: model:ir.model.fields.selection,name:iot.selection__iot_device__type__camera
msgid "Camera"
msgstr ""
#. module: iot
#. odoo-javascript
#: code:addons/iot/static/src/views/iot_device_form.js:0
msgid "Check if the device is still connected"
msgstr ""
#. module: iot
#. odoo-javascript
#: code:addons/iot/static/src/iot_report_action.js:0
msgid "Check if the printer is still connected"
msgstr ""
#. module: iot
#. odoo-javascript
#: code:addons/iot/static/src/iot_connection_error_dialog.xml:0
msgid "Click here to open your IoT Homepage"
msgstr ""
#. module: iot
#. odoo-javascript
#: code:addons/iot/static/src/iot_connection_error_dialog.xml:0
msgid "Click on Advanced/Show Details/Details/More information"
msgstr ""
#. module: iot
#. odoo-javascript
#: code:addons/iot/static/src/iot_connection_error_dialog.xml:0
msgid "Click on Proceed to .../Add Exception/Visit this website/Go on to the webpage"
msgstr ""
#. module: iot
#: model_terms:ir.actions.act_window,help:iot.iot_box_action
msgid "Click on the"
msgstr ""
#. module: iot
#. odoo-javascript
#: code:addons/iot/static/src/iot_connection_error_dialog.xml:0
#: model_terms:ir.ui.view,arch_db:iot.view_add_iot_box
msgid "Close"
msgstr ""
#. module: iot
#. odoo-javascript
#: code:addons/iot/static/src/iot_connection_error_dialog.xml:0
msgid "Close this window and try again"
msgstr ""
#. module: iot
#: model:ir.model.fields,field_description:iot.field_iot_box__company_id
#: model:ir.model.fields,field_description:iot.field_iot_device__company_id
msgid "Company"
msgstr ""
#. module: iot
#: model_terms:ir.ui.view,arch_db:iot.iot_box_view_kanban
#: model_terms:ir.ui.view,arch_db:iot.iot_box_view_list
msgid "Connect"
msgstr ""
#. module: iot
#: model:ir.actions.act_window,name:iot.action_add_iot_box
#: model_terms:ir.ui.view,arch_db:iot.view_add_iot_box
msgid "Connect an IoT Box"
msgstr ""
#. module: iot
#: model:ir.model.fields,field_description:iot.field_iot_device__connection
#: model_terms:ir.ui.view,arch_db:iot.iot_device_search
msgid "Connection"
msgstr ""
#. module: iot
#. odoo-javascript
#: code:addons/iot/static/src/iot_connection_error_dialog.js:0
msgid "Connection to IoT Box failed"
msgstr ""
#. module: iot
#. odoo-javascript
#: code:addons/iot/static/src/views/iot_device_form.js:0
msgid "Connection to device failed"
msgstr ""
#. module: iot
#. odoo-javascript
#: code:addons/iot/static/src/iot_report_action.js:0
msgid "Connection to printer failed"
msgstr ""
#. module: iot
#: model:ir.model.fields,field_description:iot.field_add_iot_box__create_uid
#: model:ir.model.fields,field_description:iot.field_iot_box__create_uid
#: model:ir.model.fields,field_description:iot.field_iot_device__create_uid
#: model:ir.model.fields,field_description:iot.field_iot_keyboard_layout__create_uid
msgid "Created by"
msgstr "Búið til af"
#. module: iot
#: model:ir.model.fields,field_description:iot.field_add_iot_box__create_date
#: model:ir.model.fields,field_description:iot.field_iot_box__create_date
#: model:ir.model.fields,field_description:iot.field_iot_device__create_date
#: model:ir.model.fields,field_description:iot.field_iot_keyboard_layout__create_date
msgid "Created on"
msgstr "Stofnað þann"
#. module: iot
#: model:ir.model.fields.selection,name:iot.selection__iot_device__type__device
msgid "Device"
msgstr ""
#. module: iot
#: model:ir.model.fields,field_description:iot.field_iot_box__device_count
#: model_terms:ir.ui.view,arch_db:iot.iot_box_view_kanban
msgid "Device Count"
msgstr ""
#. module: iot
#: model_terms:ir.ui.view,arch_db:iot.iot_device_search
msgid "Device type"
msgstr ""
#. module: iot
#: model_terms:ir.ui.view,arch_db:iot.iot_device_view_kanban
msgid "Device type is #{record.type.raw_value}"
msgstr ""
#. module: iot
#: model:ir.actions.act_window,name:iot.iot_device_action
#: model:ir.actions.act_window,name:iot.iot_device_action_search_iot_box
#: model:ir.model.fields,field_description:iot.field_iot_box__device_ids
#: model:ir.ui.menu,name:iot.iot_device_menu_action
#: model_terms:ir.ui.view,arch_db:iot.iot_box_view_form
msgid "Devices"
msgstr ""
#. module: iot
#: model:ir.model.fields.selection,name:iot.selection__iot_device__type__display
msgid "Display"
msgstr ""
#. module: iot
#: model:ir.model.fields,field_description:iot.field_add_iot_box__display_name
#: model:ir.model.fields,field_description:iot.field_iot_box__display_name
#: model:ir.model.fields,field_description:iot.field_iot_device__display_name
#: model:ir.model.fields,field_description:iot.field_iot_keyboard_layout__display_name
msgid "Display Name"
msgstr "Nafn"
#. module: iot
#: model:ir.model.fields,field_description:iot.field_iot_device__display_url
msgid "Display URL"
msgstr ""
#. module: iot
#: model:ir.model.fields,field_description:iot.field_iot_box__ip
#: model:ir.model.fields,field_description:iot.field_iot_device__iot_ip
msgid "Domain Address"
msgstr ""
#. module: iot
#. odoo-javascript
#: code:addons/iot/static/src/view_widgets/iot_download_logs.xml:0
msgid "Download Logs"
msgstr ""
#. module: iot
#. odoo-javascript
#: code:addons/iot/static/src/view_widgets/iot_download_logs.xml:0
msgid "Download logs"
msgstr ""
#. module: iot
#. odoo-javascript
#: code:addons/iot/static/src/iot_connection_error_dialog.xml:0
msgid "Firefox only: Click on Confirm Security Exception"
msgstr ""
#. module: iot
#: model:ir.model.fields.selection,name:iot.selection__iot_device__type__fiscal_data_module
msgid "Fiscal Data Module"
msgstr ""
#. module: iot
#: model_terms:ir.ui.view,arch_db:iot.iot_device_search
msgid "Group By"
msgstr "Hópa eftir"
#. module: iot
#: model:ir.model.fields.selection,name:iot.selection__iot_device__connection__hdmi
msgid "Hdmi"
msgstr ""
#. module: iot
#: model:ir.model.fields,field_description:iot.field_add_iot_box__id
#: model:ir.model.fields,field_description:iot.field_iot_box__id
#: model:ir.model.fields,field_description:iot.field_iot_device__id
#: model:ir.model.fields,field_description:iot.field_iot_keyboard_layout__id
msgid "ID"
msgstr "Auðkenni"
#. module: iot
#: model:ir.model,name:iot.model_iot_device
msgid "IOT Device"
msgstr ""
#. module: iot
#: model:ir.model.fields,field_description:iot.field_iot_device__identifier
msgid "Identifier"
msgstr ""
#. module: iot
#: model:ir.model.fields,field_description:iot.field_iot_box__identifier
msgid "Identifier (Mac Address)"
msgstr ""
#. module: iot
#: model:ir.model.fields,help:iot.field_iot_device__connected
msgid "If device is connected to the IoT Box"
msgstr ""
#. module: iot
#. odoo-javascript
#: code:addons/iot/static/src/iot_connection_error_dialog.xml:0
msgid "If you are on a secure server (HTTPS) check if you accepted the certificate:"
msgstr ""
#. module: iot
#: model:ir.model.fields,field_description:iot.field_iot_box__version
msgid "Image Version"
msgstr ""
#. module: iot
#: model:ir.ui.menu,name:iot.iot_menu_root
msgid "IoT"
msgstr ""
#. module: iot
#: model:ir.model,name:iot.model_iot_box
#: model:ir.model.fields,field_description:iot.field_iot_device__iot_id
#: model_terms:ir.ui.view,arch_db:iot.iot_device_search
msgid "IoT Box"
msgstr ""
#. module: iot
#: model:ir.model.fields,field_description:iot.field_iot_box__ip_url
msgid "IoT Box Home Page"
msgstr ""
#. module: iot
#: model:ir.actions.act_window,name:iot.iot_box_action
#: model:ir.ui.menu,name:iot.iot_box_menu_action
msgid "IoT Boxes"
msgstr ""
#. module: iot
#: model:ir.model.fields,field_description:iot.field_ir_actions_report__device_id
#: model_terms:ir.ui.view,arch_db:iot.iot_device_search
msgid "IoT Device"
msgstr ""
#. module: iot
#: model:ir.model.fields,field_description:iot.field_iot_device__is_scanner
msgid "Is Scanner"
msgstr ""
#. module: iot
#: model:ir.model.fields.selection,name:iot.selection__iot_device__type__keyboard
msgid "Keyboard"
msgstr ""
#. module: iot
#: model:ir.model,name:iot.model_iot_keyboard_layout
#: model:ir.model.fields,field_description:iot.field_iot_device__keyboard_layout
msgid "Keyboard Layout"
msgstr ""
#. module: iot
#: model_terms:ir.ui.view,arch_db:iot.iot_device_view_form
msgid "Last Sent Value"
msgstr ""
#. module: iot
#: model:ir.model.fields,field_description:iot.field_add_iot_box__write_uid
#: model:ir.model.fields,field_description:iot.field_iot_box__write_uid
#: model:ir.model.fields,field_description:iot.field_iot_device__write_uid
#: model:ir.model.fields,field_description:iot.field_iot_keyboard_layout__write_uid
msgid "Last Updated by"
msgstr "Síðast uppfært af"
#. module: iot
#: model:ir.model.fields,field_description:iot.field_add_iot_box__write_date
#: model:ir.model.fields,field_description:iot.field_iot_box__write_date
#: model:ir.model.fields,field_description:iot.field_iot_device__write_date
#: model:ir.model.fields,field_description:iot.field_iot_keyboard_layout__write_date
msgid "Last Updated on"
msgstr "Síðast uppfært þann"
#. module: iot
#. odoo-javascript
#: code:addons/iot/static/src/view_widgets/iot_restart_odoo.js:0
msgid "Last restarting process hasn't finished yet"
msgstr ""
#. module: iot
#: model:ir.model.fields,field_description:iot.field_iot_keyboard_layout__layout
msgid "Layout"
msgstr ""
#. module: iot
#: model:ir.model.fields,field_description:iot.field_iot_device__manual_measurement
msgid "Manual Measurement"
msgstr ""
#. module: iot
#: model:ir.model.fields,help:iot.field_iot_device__manual_measurement
msgid "Manually read the measurement from the device"
msgstr ""
#. module: iot
#: model:ir.model.fields,help:iot.field_iot_device__is_scanner
msgid "Manually switch the device type between keyboard and scanner"
msgstr ""
#. module: iot
#: model:ir.model.fields,field_description:iot.field_iot_device__manufacturer
msgid "Manufacturer"
msgstr ""
#. module: iot
#: model:ir.model.fields,field_description:iot.field_iot_box__name
#: model:ir.model.fields,field_description:iot.field_iot_device__name
#: model:ir.model.fields,field_description:iot.field_iot_keyboard_layout__name
msgid "Name"
msgstr "Nafn"
#. module: iot
#: model:ir.model.fields.selection,name:iot.selection__iot_device__connection__network
msgid "Network"
msgstr ""
#. module: iot
#: model_terms:ir.actions.act_window,help:iot.iot_box_action
msgid "No IoT Box found!"
msgstr ""
#. module: iot
#. odoo-javascript
#: code:addons/iot/static/src/iot_connection_error_dialog.xml:0
msgid "Odoo cannot reach the IoT Box."
msgstr ""
#. module: iot
#: model_terms:ir.ui.view,arch_db:iot.view_add_iot_box
msgid "Pair"
msgstr ""
#. module: iot
#: model:ir.model.fields,field_description:iot.field_add_iot_box__pairing_code
msgid "Pairing Code"
msgstr ""
#. module: iot
#: model:ir.model.fields.selection,name:iot.selection__iot_device__type__payment
msgid "Payment Terminal"
msgstr ""
#. module: iot
#. odoo-javascript
#: code:addons/iot/static/src/iot_connection_error_dialog.xml:0
msgid "Please accept the certificate of your IoT Box (procedure depends on your browser):"
msgstr ""
#. module: iot
#. odoo-javascript
#: code:addons/iot/static/src/iot_connection_error_dialog.xml:0
msgid "Please check if the IoT Box is still connected."
msgstr ""
#. module: iot
#. odoo-javascript
#: code:addons/iot/static/src/view_widgets/iot_restart_odoo.js:0
msgid "Please wait"
msgstr ""
#. module: iot
#: model:ir.model.fields.selection,name:iot.selection__iot_device__type__printer
msgid "Printer"
msgstr "Prentari"
#. module: iot
#. odoo-javascript
#: code:addons/iot/static/src/iot_report_action.js:0
msgid "Printer "
msgstr ""
#. module: iot
#: model_terms:ir.ui.view,arch_db:iot.iot_device_view_form
msgid "Printer Reports"
msgstr ""
#. module: iot
#: model:ir.model,name:iot.model_publisher_warranty_contract
msgid "Publisher Warranty Contract For IoT Box"
msgstr ""
#. module: iot
#: model:ir.model,name:iot.model_ir_actions_report
msgid "Report Action"
msgstr ""
#. module: iot
#: model_terms:ir.ui.view,arch_db:iot.act_report_xml_view_tree_iot
msgid "Report xml"
msgstr "Report xml"
#. module: iot
#: model:ir.model.fields,field_description:iot.field_iot_device__report_ids
msgid "Reports"
msgstr "Skýrslur"
#. module: iot
#. odoo-javascript
#: code:addons/iot/static/src/view_widgets/iot_restart_odoo.js:0
msgid "Restart Failed"
msgstr ""
#. module: iot
#. odoo-javascript
#: code:addons/iot/static/src/view_widgets/iot_restart_odoo.js:0
msgid "Restart finished"
msgstr ""
#. module: iot
#. odoo-javascript
#: code:addons/iot/static/src/view_widgets/iot_restart_odoo.js:0
msgid "Restarting"
msgstr ""
#. module: iot
#: model:ir.model.fields.selection,name:iot.selection__iot_device__type__scale
msgid "Scale"
msgstr ""
#. module: iot
#: model:ir.model.fields.selection,name:iot.selection__iot_device__connection__serial
msgid "Serial"
msgstr ""
#. module: iot
#: model:ir.model.fields,field_description:iot.field_iot_device__connected
msgid "Status"
msgstr ""
#. module: iot
#. odoo-javascript
#: code:addons/iot/static/src/view_widgets/iot_restart_odoo.js:0
msgid "Success"
msgstr ""
#. module: iot
#. odoo-javascript
#: code:addons/iot/static/src/iot_report_action.js:0
msgid "Successfully sent to printer!"
msgstr ""
#. module: iot
#. odoo-python
#: code:addons/iot/wizard/add_iot_box.py:0
msgid "The pairing code you provided was not found in our system. Please check that you entered it correctly."
msgstr ""
#. module: iot
#: model_terms:ir.actions.act_window,help:iot.iot_device_action_search_iot_box
msgid "There is no device connected to this IoT Box"
msgstr ""
#. module: iot
#: model_terms:ir.actions.act_window,help:iot.iot_device_action
msgid "There is no device connected to your IoT Boxes"
msgstr ""
#. module: iot
#. odoo-javascript
#: code:addons/iot/static/src/view_widgets/iot_restart_odoo.js:0
msgid "Timed out"
msgstr ""
#. module: iot
#: model:ir.model.fields,field_description:iot.field_add_iot_box__token
msgid "Token"
msgstr ""
#. module: iot
#: model:ir.model.fields,field_description:iot.field_iot_device__type
msgid "Type"
msgstr "Gerð"
#. module: iot
#: model:ir.model.fields,help:iot.field_iot_device__connection
msgid "Type of connection."
msgstr ""
#. module: iot
#: model:ir.model.fields,help:iot.field_iot_device__type
msgid "Type of device."
msgstr ""
#. module: iot
#: model:ir.model.fields,help:iot.field_iot_device__display_url
msgid "URL of the page that will be displayed by the device, leave empty to use the customer facing display of the POS."
msgstr ""
#. module: iot
#: model:ir.model.fields.selection,name:iot.selection__iot_device__connection__direct
msgid "USB"
msgstr ""
#. module: iot
#: model:ir.model.fields,field_description:iot.field_iot_keyboard_layout__variant
msgid "Variant"
msgstr ""
#. module: iot
#. odoo-python
#: code:addons/iot/wizard/add_iot_box.py:0
msgid "We had troubles pairing your IoT Box. Please try again later."
msgstr ""
#. module: iot
#: model:ir.model.fields,help:iot.field_ir_actions_report__device_id
msgid "When setting a device here, the report will be printed through this device on the IoT Box"
msgstr ""
#. module: iot
#: model_terms:ir.actions.act_window,help:iot.iot_box_action
msgid "connect"
msgstr ""
#. module: iot
#: model_terms:ir.actions.act_window,help:iot.iot_box_action
msgid "to add an IoT Box."
msgstr ""

1507
fusion_iot/iot/i18n/it.po Normal file

File diff suppressed because it is too large Load Diff

1481
fusion_iot/iot/i18n/ja.po Normal file

File diff suppressed because it is too large Load Diff

1268
fusion_iot/iot/i18n/kab.po Normal file

File diff suppressed because it is too large Load Diff

638
fusion_iot/iot/i18n/km.po Normal file
View File

@@ -0,0 +1,638 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * iot
#
# Translators:
# Sengtha Chay <sengtha@gmail.com>, 2018
# Chan Nath <channath@gmail.com>, 2018
# Samkhann Seang <seangsamkhann@gmail.com>, 2018
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 12.0+e\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-05-16 16:01+0000\n"
"PO-Revision-Date: 2018-10-08 07:14+0000\n"
"Last-Translator: Samkhann Seang <seangsamkhann@gmail.com>, 2018\n"
"Language-Team: Khmer (https://www.transifex.com/odoo/teams/41243/km/)\n"
"Language: km\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: nplurals=1; plural=0;\n"
#. module: iot
#: model_terms:ir.ui.view,arch_db:iot.view_add_iot_box
msgid ""
"0. Power on the IoT Box<br/><br/>\n"
"\n"
" <strong>A. Ethernet Connection</strong><br/>\n"
" 1. Read the pairing code from a display or thermal printer connected to the IoT Box.<br/>\n"
" 2. Enter the code below and click on \"Pair\".<br/>"
msgstr ""
#. module: iot
#: model_terms:ir.ui.view,arch_db:iot.iot_device_view_kanban
msgid "<span class=\"badge text-bg-secondary\">Disconnected</span>"
msgstr ""
#. module: iot
#: model_terms:ir.ui.view,arch_db:iot.iot_device_view_kanban
msgid "<span class=\"badge text-bg-success\">Connected</span>"
msgstr ""
#. module: iot
#: model_terms:ir.ui.view,arch_db:iot.view_add_iot_box
msgid ""
"<strong>B. WiFi Connection (or Ethernet Connection doesn't work)</strong><br/>\n"
" 1. Make sure no ethernet cable is connected to the IoT Box<br/>\n"
" 2. Copy the token that is below<br/>\n"
" 3. Connect to the IoT Box WiFi network (you should see it in your available WiFi networks)<br/>\n"
" 4. You will be redirected to the IoT Box Homepage<br/>\n"
" 5. Paste the token in token field and follow the steps described on the IoT Box Homepage<br/>"
msgstr ""
#. module: iot
#: model:ir.model,name:iot.model_add_iot_box
msgid "Add IoT Box wizard"
msgstr ""
#. module: iot
#. odoo-javascript
#: code:addons/iot/static/src/view_widgets/iot_restart_odoo.js:0
msgid "Are you sure you want to reboot the IoT box?"
msgstr ""
#. module: iot
#. odoo-javascript
#: code:addons/iot/static/src/view_widgets/iot_restart_odoo.js:0
msgid "Are you sure you want to restart Odoo on the IoT box?"
msgstr ""
#. module: iot
#: model:ir.model.fields,field_description:iot.field_iot_box__drivers_auto_update
msgid "Automatic drivers update"
msgstr ""
#. module: iot
#: model:ir.model.fields,help:iot.field_iot_box__drivers_auto_update
msgid "Automatically update drivers when the IoT Box boots"
msgstr ""
#. module: iot
#: model:ir.model.fields.selection,name:iot.selection__iot_device__type__scanner
msgid "Barcode Scanner"
msgstr ""
#. module: iot
#: model:ir.model.fields.selection,name:iot.selection__iot_device__connection__bluetooth
msgid "Bluetooth"
msgstr ""
#. module: iot
#: model:ir.model.fields.selection,name:iot.selection__iot_device__type__camera
msgid "Camera"
msgstr ""
#. module: iot
#. odoo-javascript
#: code:addons/iot/static/src/views/iot_device_form.js:0
msgid "Check if the device is still connected"
msgstr ""
#. module: iot
#. odoo-javascript
#: code:addons/iot/static/src/iot_report_action.js:0
msgid "Check if the printer is still connected"
msgstr ""
#. module: iot
#. odoo-javascript
#: code:addons/iot/static/src/iot_connection_error_dialog.xml:0
msgid "Click here to open your IoT Homepage"
msgstr ""
#. module: iot
#. odoo-javascript
#: code:addons/iot/static/src/iot_connection_error_dialog.xml:0
msgid "Click on Advanced/Show Details/Details/More information"
msgstr ""
#. module: iot
#. odoo-javascript
#: code:addons/iot/static/src/iot_connection_error_dialog.xml:0
msgid "Click on Proceed to .../Add Exception/Visit this website/Go on to the webpage"
msgstr ""
#. module: iot
#: model_terms:ir.actions.act_window,help:iot.iot_box_action
msgid "Click on the"
msgstr ""
#. module: iot
#. odoo-javascript
#: code:addons/iot/static/src/iot_connection_error_dialog.xml:0
#: model_terms:ir.ui.view,arch_db:iot.view_add_iot_box
msgid "Close"
msgstr ""
#. module: iot
#. odoo-javascript
#: code:addons/iot/static/src/iot_connection_error_dialog.xml:0
msgid "Close this window and try again"
msgstr ""
#. module: iot
#: model:ir.model.fields,field_description:iot.field_iot_box__company_id
#: model:ir.model.fields,field_description:iot.field_iot_device__company_id
msgid "Company"
msgstr ""
#. module: iot
#: model_terms:ir.ui.view,arch_db:iot.iot_box_view_kanban
#: model_terms:ir.ui.view,arch_db:iot.iot_box_view_list
msgid "Connect"
msgstr ""
#. module: iot
#: model:ir.actions.act_window,name:iot.action_add_iot_box
#: model_terms:ir.ui.view,arch_db:iot.view_add_iot_box
msgid "Connect an IoT Box"
msgstr ""
#. module: iot
#: model:ir.model.fields,field_description:iot.field_iot_device__connection
#: model_terms:ir.ui.view,arch_db:iot.iot_device_search
msgid "Connection"
msgstr ""
#. module: iot
#. odoo-javascript
#: code:addons/iot/static/src/iot_connection_error_dialog.js:0
msgid "Connection to IoT Box failed"
msgstr ""
#. module: iot
#. odoo-javascript
#: code:addons/iot/static/src/views/iot_device_form.js:0
msgid "Connection to device failed"
msgstr ""
#. module: iot
#. odoo-javascript
#: code:addons/iot/static/src/iot_report_action.js:0
msgid "Connection to printer failed"
msgstr ""
#. module: iot
#: model:ir.model.fields,field_description:iot.field_add_iot_box__create_uid
#: model:ir.model.fields,field_description:iot.field_iot_box__create_uid
#: model:ir.model.fields,field_description:iot.field_iot_device__create_uid
#: model:ir.model.fields,field_description:iot.field_iot_keyboard_layout__create_uid
msgid "Created by"
msgstr "បង្កើតដោយ"
#. module: iot
#: model:ir.model.fields,field_description:iot.field_add_iot_box__create_date
#: model:ir.model.fields,field_description:iot.field_iot_box__create_date
#: model:ir.model.fields,field_description:iot.field_iot_device__create_date
#: model:ir.model.fields,field_description:iot.field_iot_keyboard_layout__create_date
msgid "Created on"
msgstr "បង្កើតនៅ"
#. module: iot
#: model:ir.model.fields.selection,name:iot.selection__iot_device__type__device
msgid "Device"
msgstr ""
#. module: iot
#: model:ir.model.fields,field_description:iot.field_iot_box__device_count
#: model_terms:ir.ui.view,arch_db:iot.iot_box_view_kanban
msgid "Device Count"
msgstr ""
#. module: iot
#: model_terms:ir.ui.view,arch_db:iot.iot_device_search
msgid "Device type"
msgstr ""
#. module: iot
#: model_terms:ir.ui.view,arch_db:iot.iot_device_view_kanban
msgid "Device type is #{record.type.raw_value}"
msgstr ""
#. module: iot
#: model:ir.actions.act_window,name:iot.iot_device_action
#: model:ir.actions.act_window,name:iot.iot_device_action_search_iot_box
#: model:ir.model.fields,field_description:iot.field_iot_box__device_ids
#: model:ir.ui.menu,name:iot.iot_device_menu_action
#: model_terms:ir.ui.view,arch_db:iot.iot_box_view_form
msgid "Devices"
msgstr ""
#. module: iot
#: model:ir.model.fields.selection,name:iot.selection__iot_device__type__display
msgid "Display"
msgstr ""
#. module: iot
#: model:ir.model.fields,field_description:iot.field_add_iot_box__display_name
#: model:ir.model.fields,field_description:iot.field_iot_box__display_name
#: model:ir.model.fields,field_description:iot.field_iot_device__display_name
#: model:ir.model.fields,field_description:iot.field_iot_keyboard_layout__display_name
msgid "Display Name"
msgstr "ឈ្មោះសំរាប់បង្ហាញ"
#. module: iot
#: model:ir.model.fields,field_description:iot.field_iot_device__display_url
msgid "Display URL"
msgstr ""
#. module: iot
#: model:ir.model.fields,field_description:iot.field_iot_box__ip
#: model:ir.model.fields,field_description:iot.field_iot_device__iot_ip
msgid "Domain Address"
msgstr ""
#. module: iot
#. odoo-javascript
#: code:addons/iot/static/src/view_widgets/iot_download_logs.xml:0
msgid "Download Logs"
msgstr ""
#. module: iot
#. odoo-javascript
#: code:addons/iot/static/src/view_widgets/iot_download_logs.xml:0
msgid "Download logs"
msgstr ""
#. module: iot
#. odoo-javascript
#: code:addons/iot/static/src/iot_connection_error_dialog.xml:0
msgid "Firefox only: Click on Confirm Security Exception"
msgstr ""
#. module: iot
#: model:ir.model.fields.selection,name:iot.selection__iot_device__type__fiscal_data_module
msgid "Fiscal Data Module"
msgstr ""
#. module: iot
#: model_terms:ir.ui.view,arch_db:iot.iot_device_search
msgid "Group By"
msgstr "ជា​ក្រុម​តាម"
#. module: iot
#: model:ir.model.fields.selection,name:iot.selection__iot_device__connection__hdmi
msgid "Hdmi"
msgstr ""
#. module: iot
#: model:ir.model.fields,field_description:iot.field_add_iot_box__id
#: model:ir.model.fields,field_description:iot.field_iot_box__id
#: model:ir.model.fields,field_description:iot.field_iot_device__id
#: model:ir.model.fields,field_description:iot.field_iot_keyboard_layout__id
msgid "ID"
msgstr "ID"
#. module: iot
#: model:ir.model,name:iot.model_iot_device
msgid "IOT Device"
msgstr ""
#. module: iot
#: model:ir.model.fields,field_description:iot.field_iot_device__identifier
msgid "Identifier"
msgstr ""
#. module: iot
#: model:ir.model.fields,field_description:iot.field_iot_box__identifier
msgid "Identifier (Mac Address)"
msgstr ""
#. module: iot
#: model:ir.model.fields,help:iot.field_iot_device__connected
msgid "If device is connected to the IoT Box"
msgstr ""
#. module: iot
#. odoo-javascript
#: code:addons/iot/static/src/iot_connection_error_dialog.xml:0
msgid "If you are on a secure server (HTTPS) check if you accepted the certificate:"
msgstr ""
#. module: iot
#: model:ir.model.fields,field_description:iot.field_iot_box__version
msgid "Image Version"
msgstr ""
#. module: iot
#: model:ir.ui.menu,name:iot.iot_menu_root
msgid "IoT"
msgstr ""
#. module: iot
#: model:ir.model,name:iot.model_iot_box
#: model:ir.model.fields,field_description:iot.field_iot_device__iot_id
#: model_terms:ir.ui.view,arch_db:iot.iot_device_search
msgid "IoT Box"
msgstr ""
#. module: iot
#: model:ir.model.fields,field_description:iot.field_iot_box__ip_url
msgid "IoT Box Home Page"
msgstr ""
#. module: iot
#: model:ir.actions.act_window,name:iot.iot_box_action
#: model:ir.ui.menu,name:iot.iot_box_menu_action
msgid "IoT Boxes"
msgstr ""
#. module: iot
#: model:ir.model.fields,field_description:iot.field_ir_actions_report__device_id
#: model_terms:ir.ui.view,arch_db:iot.iot_device_search
msgid "IoT Device"
msgstr ""
#. module: iot
#: model:ir.model.fields,field_description:iot.field_iot_device__is_scanner
msgid "Is Scanner"
msgstr ""
#. module: iot
#: model:ir.model.fields.selection,name:iot.selection__iot_device__type__keyboard
msgid "Keyboard"
msgstr ""
#. module: iot
#: model:ir.model,name:iot.model_iot_keyboard_layout
#: model:ir.model.fields,field_description:iot.field_iot_device__keyboard_layout
msgid "Keyboard Layout"
msgstr ""
#. module: iot
#: model_terms:ir.ui.view,arch_db:iot.iot_device_view_form
msgid "Last Sent Value"
msgstr ""
#. module: iot
#: model:ir.model.fields,field_description:iot.field_add_iot_box__write_uid
#: model:ir.model.fields,field_description:iot.field_iot_box__write_uid
#: model:ir.model.fields,field_description:iot.field_iot_device__write_uid
#: model:ir.model.fields,field_description:iot.field_iot_keyboard_layout__write_uid
msgid "Last Updated by"
msgstr "ផ្លាស់ប្តូរចុងក្រោយ"
#. module: iot
#: model:ir.model.fields,field_description:iot.field_add_iot_box__write_date
#: model:ir.model.fields,field_description:iot.field_iot_box__write_date
#: model:ir.model.fields,field_description:iot.field_iot_device__write_date
#: model:ir.model.fields,field_description:iot.field_iot_keyboard_layout__write_date
msgid "Last Updated on"
msgstr "ផ្លាស់ប្តូរចុងក្រោយ"
#. module: iot
#. odoo-javascript
#: code:addons/iot/static/src/view_widgets/iot_restart_odoo.js:0
msgid "Last restarting process hasn't finished yet"
msgstr ""
#. module: iot
#: model:ir.model.fields,field_description:iot.field_iot_keyboard_layout__layout
msgid "Layout"
msgstr ""
#. module: iot
#: model:ir.model.fields,field_description:iot.field_iot_device__manual_measurement
msgid "Manual Measurement"
msgstr ""
#. module: iot
#: model:ir.model.fields,help:iot.field_iot_device__manual_measurement
msgid "Manually read the measurement from the device"
msgstr ""
#. module: iot
#: model:ir.model.fields,help:iot.field_iot_device__is_scanner
msgid "Manually switch the device type between keyboard and scanner"
msgstr ""
#. module: iot
#: model:ir.model.fields,field_description:iot.field_iot_device__manufacturer
msgid "Manufacturer"
msgstr ""
#. module: iot
#: model:ir.model.fields,field_description:iot.field_iot_box__name
#: model:ir.model.fields,field_description:iot.field_iot_device__name
#: model:ir.model.fields,field_description:iot.field_iot_keyboard_layout__name
msgid "Name"
msgstr "ឈ្មោះ"
#. module: iot
#: model:ir.model.fields.selection,name:iot.selection__iot_device__connection__network
msgid "Network"
msgstr ""
#. module: iot
#: model_terms:ir.actions.act_window,help:iot.iot_box_action
msgid "No IoT Box found!"
msgstr ""
#. module: iot
#. odoo-javascript
#: code:addons/iot/static/src/iot_connection_error_dialog.xml:0
msgid "Odoo cannot reach the IoT Box."
msgstr ""
#. module: iot
#: model_terms:ir.ui.view,arch_db:iot.view_add_iot_box
msgid "Pair"
msgstr ""
#. module: iot
#: model:ir.model.fields,field_description:iot.field_add_iot_box__pairing_code
msgid "Pairing Code"
msgstr ""
#. module: iot
#: model:ir.model.fields.selection,name:iot.selection__iot_device__type__payment
msgid "Payment Terminal"
msgstr ""
#. module: iot
#. odoo-javascript
#: code:addons/iot/static/src/iot_connection_error_dialog.xml:0
msgid "Please accept the certificate of your IoT Box (procedure depends on your browser):"
msgstr ""
#. module: iot
#. odoo-javascript
#: code:addons/iot/static/src/iot_connection_error_dialog.xml:0
msgid "Please check if the IoT Box is still connected."
msgstr ""
#. module: iot
#. odoo-javascript
#: code:addons/iot/static/src/view_widgets/iot_restart_odoo.js:0
msgid "Please wait"
msgstr ""
#. module: iot
#: model:ir.model.fields.selection,name:iot.selection__iot_device__type__printer
msgid "Printer"
msgstr ""
#. module: iot
#. odoo-javascript
#: code:addons/iot/static/src/iot_report_action.js:0
msgid "Printer "
msgstr ""
#. module: iot
#: model_terms:ir.ui.view,arch_db:iot.iot_device_view_form
msgid "Printer Reports"
msgstr ""
#. module: iot
#: model:ir.model,name:iot.model_publisher_warranty_contract
msgid "Publisher Warranty Contract For IoT Box"
msgstr ""
#. module: iot
#: model:ir.model,name:iot.model_ir_actions_report
msgid "Report Action"
msgstr ""
#. module: iot
#: model_terms:ir.ui.view,arch_db:iot.act_report_xml_view_tree_iot
msgid "Report xml"
msgstr ""
#. module: iot
#: model:ir.model.fields,field_description:iot.field_iot_device__report_ids
msgid "Reports"
msgstr "របាយការណ៍"
#. module: iot
#. odoo-javascript
#: code:addons/iot/static/src/view_widgets/iot_restart_odoo.js:0
msgid "Restart Failed"
msgstr ""
#. module: iot
#. odoo-javascript
#: code:addons/iot/static/src/view_widgets/iot_restart_odoo.js:0
msgid "Restart finished"
msgstr ""
#. module: iot
#. odoo-javascript
#: code:addons/iot/static/src/view_widgets/iot_restart_odoo.js:0
msgid "Restarting"
msgstr ""
#. module: iot
#: model:ir.model.fields.selection,name:iot.selection__iot_device__type__scale
msgid "Scale"
msgstr ""
#. module: iot
#: model:ir.model.fields.selection,name:iot.selection__iot_device__connection__serial
msgid "Serial"
msgstr ""
#. module: iot
#: model:ir.model.fields,field_description:iot.field_iot_device__connected
msgid "Status"
msgstr ""
#. module: iot
#. odoo-javascript
#: code:addons/iot/static/src/view_widgets/iot_restart_odoo.js:0
msgid "Success"
msgstr ""
#. module: iot
#. odoo-javascript
#: code:addons/iot/static/src/iot_report_action.js:0
msgid "Successfully sent to printer!"
msgstr ""
#. module: iot
#. odoo-python
#: code:addons/iot/wizard/add_iot_box.py:0
msgid "The pairing code you provided was not found in our system. Please check that you entered it correctly."
msgstr ""
#. module: iot
#: model_terms:ir.actions.act_window,help:iot.iot_device_action_search_iot_box
msgid "There is no device connected to this IoT Box"
msgstr ""
#. module: iot
#: model_terms:ir.actions.act_window,help:iot.iot_device_action
msgid "There is no device connected to your IoT Boxes"
msgstr ""
#. module: iot
#. odoo-javascript
#: code:addons/iot/static/src/view_widgets/iot_restart_odoo.js:0
msgid "Timed out"
msgstr ""
#. module: iot
#: model:ir.model.fields,field_description:iot.field_add_iot_box__token
msgid "Token"
msgstr ""
#. module: iot
#: model:ir.model.fields,field_description:iot.field_iot_device__type
msgid "Type"
msgstr "ប្រភេទ"
#. module: iot
#: model:ir.model.fields,help:iot.field_iot_device__connection
msgid "Type of connection."
msgstr ""
#. module: iot
#: model:ir.model.fields,help:iot.field_iot_device__type
msgid "Type of device."
msgstr ""
#. module: iot
#: model:ir.model.fields,help:iot.field_iot_device__display_url
msgid "URL of the page that will be displayed by the device, leave empty to use the customer facing display of the POS."
msgstr ""
#. module: iot
#: model:ir.model.fields.selection,name:iot.selection__iot_device__connection__direct
msgid "USB"
msgstr ""
#. module: iot
#: model:ir.model.fields,field_description:iot.field_iot_keyboard_layout__variant
msgid "Variant"
msgstr ""
#. module: iot
#. odoo-python
#: code:addons/iot/wizard/add_iot_box.py:0
msgid "We had troubles pairing your IoT Box. Please try again later."
msgstr ""
#. module: iot
#: model:ir.model.fields,help:iot.field_ir_actions_report__device_id
msgid "When setting a device here, the report will be printed through this device on the IoT Box"
msgstr ""
#. module: iot
#: model_terms:ir.actions.act_window,help:iot.iot_box_action
msgid "connect"
msgstr ""
#. module: iot
#: model_terms:ir.actions.act_window,help:iot.iot_box_action
msgid "to add an IoT Box."
msgstr ""

1404
fusion_iot/iot/i18n/ko.po Normal file

File diff suppressed because it is too large Load Diff

1267
fusion_iot/iot/i18n/ku.po Normal file

File diff suppressed because it is too large Load Diff

Some files were not shown because too many files have changed in this diff Show More