Documents preview, binary field widget, menu control center changes

This commit is contained in:
Pranay 2025-12-03 10:16:19 +05:30
parent d362ef87aa
commit bfd7890cbc
257 changed files with 7418 additions and 51 deletions

View File

@ -1 +1 @@
from . import models
from . import controllers, models

View File

@ -10,10 +10,12 @@
'category': 'Tools',
'author': 'PRANAY',
'website': 'https://ftprotech.in',
'depends': ['base','hr'],
'depends': ['base','hr','web','one2many_search_widget'],
'data': [
'security/ir.model.access.csv',
'data/data.xml',
'views/masters.xml',
'views/login.xml',
'views/menu_access_control_views.xml',
],
# 'assets': {

View File

@ -0,0 +1 @@
from . import main

View File

@ -0,0 +1,26 @@
from odoo import http, _
from odoo.http import request
from odoo.addons.web.controllers.home import Home
import werkzeug
class CustomMasterLogin(Home):
@http.route()
def web_login(self, *args, **kw):
# Call the original Odoo login
master_selected = kw.get('master_select')
response = super(CustomMasterLogin, self).web_login(*args, **kw)
# We only modify the QWeb response (GET request)
if response.is_qweb:
# load your masters
masters = request.env['master.control'].sudo().search([])
response.qcontext['masters'] = masters
# After successful login
if request.session.uid and master_selected:
request.session['active_master'] = master_selected
return response

View File

@ -1,2 +1,3 @@
from . import masters
from . import models
from . import menu

View File

@ -0,0 +1,95 @@
from odoo import models, fields, _
class MasterControl(models.Model):
_name = 'master.control'
_description = 'Master Control'
sequence = fields.Integer()
name = fields.Char(string='Master Name', required=True)
code = fields.Char(string='Code', required=True)
default_show = fields.Boolean(default=True)
access_group_ids = fields.One2many('group.access.line','master_control_id',string='Roles')
def action_generate_groups(self):
"""Generate category → groups list"""
for rec in self:
# Clear old groups
rec.access_group_ids.unlink()
groups = self.env['res.groups'].sudo().search([],order='category_id')
show_group = True if rec.default_show else False
print(show_group)
for grp in groups:
self.env['group.access.line'].create({
'master_control_id': rec.id,
'group_id': grp.id,
'show_group': show_group,
})
return {
'type': 'ir.actions.client',
'tag': 'display_notification',
'params': {
'title': _('Success'),
'message': _('Groups generated successfully!'),
'type': 'success',
}
}
# -----------------------------------------
# UPDATE GROUPS (Detect new groups)
# -----------------------------------------
def action_update_groups(self):
for rec in self:
created_count = 0
existing_ids = set(rec.access_group_ids.mapped('group_id.id'))
categories = self.env['ir.module.category'].search([])
for category in categories:
groups = self.env['res.groups'].search([
('category_id', '=', category.id)
])
for grp in groups:
# create only missing group
if grp.id not in existing_ids:
rec.access_group_ids.create({
'master_control_id': rec.id,
'category_id': category.id,
'group_id': grp.id,
'show_group': True if rec.default_show else False,
})
created_count += 1
existing_ids.add(grp.id)
if created_count:
message = f"Added {created_count} new groups."
msg_type = "success"
else:
message = "No new groups found."
msg_type = "info"
return {
'type': 'ir.actions.client',
'tag': 'display_notification',
'params': {
'title': _('Group Update'),
'message': _(message),
'type': msg_type,
}
}
class GroupsAccessLine(models.Model):
_name = 'group.access.line'
_description = 'Group Access Line'
_rec_name = 'group_id'
category_id = fields.Many2one('ir.module.category', related='group_id.category_id')
group_id = fields.Many2one('res.groups', string="Role")
show_group = fields.Boolean(string="Show", default=True)
master_control_id = fields.Many2one('master.control')

View File

@ -17,7 +17,10 @@ class IrUiMenu(models.Model):
group_ids = set(self.env.user._get_group_ids())
if not debug:
hide_menus_list = self.env['menu.access.control'].sudo().search([('user_ids','ilike',self.env.user.id)]).access_menu_line_ids.filtered(lambda menu: not(menu.is_main_menu)).menu_id.ids
parent_menus = self.env['menu.access.control'].sudo().search([('user_ids','ilike',self.env.user.id)]).access_menu_line_ids.filtered(lambda menu: not(menu.is_main_menu)).menu_id.ids
sub_menus = self.env['menu.access.control'].sudo().search([('user_ids','ilike',self.env.user.id)]).access_sub_menu_line_ids.filtered(lambda menu: not(menu.is_main_menu)).menu_id.ids
hide_menus_list = list(set(parent_menus + sub_menus))
menus = menus.filtered(lambda menu: (menu.id not in hide_menus_list))
group_ids = group_ids - {

View File

@ -37,61 +37,124 @@ class MenuAccessControl(models.Model):
access_menu_line_ids = fields.One2many(
'menu.access.line', 'access_control_id',
string="Accessible Menus"
string="Accessible Menus", domain=[('menu_id.parent_id','=',False)]
)
access_sub_menu_line_ids = fields.One2many('menu.access.line', 'access_control_id',
string="Accessible Menus", domain=[('menu_id.parent_id','!=',False)]
)
def _get_all_submenus(self, menu):
"""Returns all submenus recursively for a given menu."""
submenus = self.env['ir.ui.menu'].search([('parent_id', '=', menu.id), ('active', '=', True)])
all_subs = submenus
for sm in submenus:
all_subs |= self._get_all_submenus(sm)
return all_subs
def action_generate_menus(self):
"""Button to fetch active top-level menus and populate access lines."""
menu_lines = []
"""
Generate main menus and all submenus (recursive),
and set access_line_id for every submenu.
"""
for rec in self:
# clear old menus
rec.access_menu_line_ids.unlink()
rec.access_sub_menu_line_ids.unlink()
active_menus = self.env['ir.ui.menu'].search([
('parent_id', '=', False), # top-level menus
('parent_id', '=', False),
('active', '=', True)
])
for menu in active_menus:
menu_lines.append((0, 0, {
# 1⃣ Create main menu line
main_line = self.env['menu.access.line'].create({
'access_control_id': rec.id,
'menu_id': menu.id,
'is_main_menu': True
}))
self.access_menu_line_ids = menu_lines
'is_main_menu': True,
})
# 2⃣ Fetch all recursive submenus
submenus = self._get_all_submenus(menu)
# 3⃣ Create submenu lines with correct parent
for sm in submenus:
self.env['menu.access.line'].create({
'access_control_id': rec.id,
'menu_id': sm.id,
'is_main_menu': True,
'access_line_id': main_line.id, # important
})
def action_update_menus(self):
"""Button to add new top-level menus that are not already in the list."""
for record in self:
# Get existing menu IDs in the current record
existing_menu_ids = record.access_menu_line_ids.mapped('menu_id').ids
line = self.env['menu.access.line']
menu = self.env['ir.ui.menu']
# Find new top-level menus that are not in existing_menu_ids
new_menus = self.env['ir.ui.menu'].search([
for rec in self:
created_count = 0
# All existing menu IDs across BOTH One2manys
existing_menu_ids = set(
rec.access_menu_line_ids.mapped('menu_id.id') +
rec.access_sub_menu_line_ids.mapped('menu_id.id')
)
# ---------- Step 1: Ensure all top-level menus exist ----------
top_menus = menu.search([
('parent_id', '=', False),
('active', '=', True),
('id', 'not in', existing_menu_ids)
])
# Create new lines for the new menus
new_lines = []
for menu in new_menus:
new_lines.append((0, 0, {
'menu_id': menu.id,
'is_main_menu': True # Default to True as requested
}))
for menu in top_menus:
if new_lines:
record.write({
'access_menu_line_ids': new_lines
# Create missing MAIN MENU
main_line = line.search([
('access_control_id', '=', rec.id),
('menu_id', '=', menu.id),
('access_line_id', '=', False)
], limit=1)
if not main_line:
main_line = line.create({
'access_control_id': rec.id,
'menu_id': menu.id,
'is_main_menu': True,
})
# Show success message
created_count += 1
existing_menu_ids.add(menu.id)
# ---------- Step 2: Ensure all SUBMENUS exist ----------
submenus = rec._get_all_submenus(menu)
for sm in submenus:
# If submenu is missing → create it
if sm.id not in existing_menu_ids:
line.create({
'access_control_id': rec.id,
'menu_id': sm.id,
'is_main_menu': True,
'access_line_id': main_line.id,
})
created_count += 1
existing_menu_ids.add(sm.id)
# ---------- Notification ----------
if created_count:
return {
'type': 'ir.actions.client',
'tag': 'display_notification',
'params': {
'title': _('Success'),
'message': _('Added %s new menu(s)') % len(new_menus),
'message': _('Added %s new menu(s) (including submenus)') % created_count,
'type': 'success',
'sticky': False,
}
}
else:
# Show info message if no new menus found
return {
'type': 'ir.actions.client',
'tag': 'display_notification',
@ -103,6 +166,7 @@ class MenuAccessControl(models.Model):
}
}
class MenuAccessLine(models.Model):
_name = 'menu.access.line'
_description = 'Menu Access Line'
@ -111,3 +175,29 @@ class MenuAccessLine(models.Model):
access_control_id = fields.Many2one('menu.access.control', ondelete='cascade')
menu_id = fields.Many2one('ir.ui.menu', string="Menu")
is_main_menu = fields.Boolean(string="Is Main Menu", default=True)
parent_menu = fields.Many2one('ir.ui.menu',related='menu_id.parent_id')
access_line_id = fields.Many2one('menu.access.line')
control_unit = fields.Many2one(
'menu.control.units',
related='access_control_id.control_unit',
store=True
)
def open_submenus_popup_view(self):
self.ensure_one()
return {
"name": _("Sub Menus"),
"type": "ir.actions.act_window",
"res_model": "menu.access.line",
"view_mode": "list,form",
"views": [
(self.env.ref("menu_control_center.view_submenu_line_list").id, "list"),
],
"target": "new",
"domain": [("access_line_id", "=", self.id)],
"context": {"default_access_line_id": self.id},
}

View File

@ -2,3 +2,6 @@ id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
access_menu_access_control,access.menu.access.control,model_menu_access_control,hr.group_hr_manager,1,1,1,1
access_menu_access_line,access.menu.access.line,model_menu_access_line,hr.group_hr_manager,1,1,1,1
access_menu_control_units,access.menu.control.units,model_menu_control_units,hr.group_hr_manager,1,1,1,1
access_master_control_public,master.control.public,model_master_control,base.group_public,1,0,0,0
access_master_control_hr,master.control.hr,model_master_control,hr.group_hr_manager,1,1,1,1
group_access_line_access,group_access_line_access,model_group_access_line,,1,1,1,1

1 id name model_id:id group_id:id perm_read perm_write perm_create perm_unlink
2 access_menu_access_control access.menu.access.control model_menu_access_control hr.group_hr_manager 1 1 1 1
3 access_menu_access_line access.menu.access.line model_menu_access_line hr.group_hr_manager 1 1 1 1
4 access_menu_control_units access.menu.control.units model_menu_control_units hr.group_hr_manager 1 1 1 1
5 access_master_control_public master.control.public model_master_control base.group_public 1 0 0 0
6 access_master_control_hr master.control.hr model_master_control hr.group_hr_manager 1 1 1 1
7 group_access_line_access group_access_line_access model_group_access_line 1 1 1 1

View File

@ -0,0 +1,17 @@
<?xml version="1.0" encoding="UTF-8" ?>
<odoo>
<template id="login_master_inherit" inherit_id="web.login">
<xpath expr="//form" position="inside">
<div class="form-group mt-2">
<label>Select Module</label>
<select name="master_select" class="form-control">
<t t-foreach="masters" t-as="m">
<option t-att-value="m.code">
<t t-esc="m.name"/>
</option>
</t>
</select>
</div>
</xpath>
</template>
</odoo>

View File

@ -0,0 +1,76 @@
<?xml version="1.0" encoding="UTF-8" ?>
<odoo>
<record id="view_master_control_list" model="ir.ui.view">
<field name="name">master.control.list</field>
<field name="model">master.control</field>
<field name="arch" type="xml">
<list>
<field name="sequence" widget="handle"/>
<field name="name"/>
<field name="code"/>
</list>
</field>
</record>
<record id="view_master_control_form" model="ir.ui.view">
<field name="name">master.control.form</field>
<field name="model">master.control</field>
<field name="arch" type="xml">
<form>
<header>
<button name="action_generate_groups"
type="object"
string="Generate Groups"
class="btn-primary"/>
<button name="action_update_groups"
type="object"
string="Update Groups"
class="btn-secondary"/>
</header>
<sheet>
<group>
<field name="name"/>
<field name="code"/>
<field name="default_show" help="Upon Generating this value be placed in Show Option"/>
</group>
<notebook>
<page string="Roles">
<field name="access_group_ids" widget="one2many_search">
<list editable="bottom">
<field name="category_id"/>
<field name="group_id"/>
<field name="show_group"/>
</list>
</field>
</page>
</notebook>
</sheet>
</form>
</field>
</record>
<record id="action_master_module_control" model="ir.actions.act_window">
<field name="name">Master Control</field>
<field name="res_model">master.control</field>
<field name="view_mode">list,form</field>
</record>
<menuitem id="master_module_access_root"
name="Masters"
parent="base.menu_custom"
sequence="9"/>
<menuitem id="master_module_control_units"
name="Login Masters"
parent="master_module_access_root"
action="action_master_module_control"
sequence="19"/>
</odoo>

View File

@ -1,5 +1,26 @@
<?xml version="1.0" encoding="UTF-8" ?>
<odoo>
<record id="view_submenu_line_list" model="ir.ui.view">
<field name="name">menu.access.line.submenu.list</field>
<field name="model">menu.access.line</field>
<field name="arch" type="xml">
<list editable="bottom" create="0">
<field name="menu_id" readonly="1" force_save="1"/>
<field name="parent_menu"/>
<field name="is_main_menu" string="Show Menu"/>
<field name="access_line_id" optional="hide" readonly="1" force_save="1"/>
<field name="control_unit" optional="hide" readonly="1"/>
</list>
</field>
</record>
<record id="action_submenus_popup" model="ir.actions.act_window">
<field name="name">Sub Menus</field>
<field name="res_model">menu.access.line</field>
<field name="view_mode">list</field>
<field name="target">new</field>
</record>
<record id="view_menu_control_units_list" model="ir.ui.view">
<field name="name">menu.control.units.list</field>
<field name="model">menu.control.units</field>
@ -71,12 +92,29 @@
</div>
</div>
</group>
<notebook>
<page name="main_menus" string="Menus">
<field name="access_menu_line_ids">
<list editable="bottom">
<field name="menu_id"/>
<field name="is_main_menu"/>
<button name="open_submenus_popup_view" string="Sub Menus" type="object"
class="btn-primary"/>
</list>
</field>
</page>
<page name="sub_menus" string="Sub Menus">
<field name="access_sub_menu_line_ids">
<list create="0" default_group_by="parent_menu">
<field name="menu_id" readonly="1" force_save="1"/>
<field name="parent_menu"/>
<field name="is_main_menu" string="Show Menu"/>
<field name="access_line_id" optional="hide" readonly="1" force_save="1"/>
<field name="control_unit" optional="hide" readonly="1"/>
</list>
</field>
</page>
</notebook>
</sheet>
</form>
</field>

View File

@ -0,0 +1,2 @@
from . import controllers
from . import models

View File

@ -0,0 +1,37 @@
# pylint: disable=pointless-statement
{
"name": "ONLYOFFICE",
"summary": "Edit and collaborate on office files within Odoo Documents.",
"description": "The ONLYOFFICE app allows users to edit and collaborate on office files within Odoo Documents using ONLYOFFICE Docs. You can work with text documents, spreadsheets, and presentations, co-author documents in real time using two co-editing modes (Fast and Strict), Track Changes, comments, and built-in chat.", # noqa: E501
"author": "ONLYOFFICE",
"website": "https://github.com/ONLYOFFICE/onlyoffice_odoo",
"category": "Productivity",
"version": "5.3.0",
"depends": ["base", "mail"],
"external_dependencies": {"python": ["pyjwt"]},
# always loaded
"data": [
"views/templates.xml",
"views/res_config_settings_views.xml",
],
"license": "LGPL-3",
"support": "support@onlyoffice.com",
"images": [
"static/description/main_screenshot.png",
"static/description/document.png",
"static/description/sales_section.png",
"static/description/discuss_section.png",
"static/description/settings.png",
],
"installable": True,
"application": True,
"assets": {
"web.assets_backend": [
"onlyoffice_odoo/static/src/actions/*",
"onlyoffice_odoo/static/src/components/*/*.xml",
"onlyoffice_odoo/static/src/models/*.js",
"onlyoffice_odoo/static/src/views/**/*",
"onlyoffice_odoo/static/src/css/*",
],
},
}

View File

@ -0,0 +1 @@
from . import controllers

View File

@ -0,0 +1,654 @@
#
# (c) Copyright Ascensio System SIA 2024
#
import base64
import json
import logging
import os
import re
import string
import time
from mimetypes import guess_type
from urllib.request import urlopen
import markupsafe
import requests
from werkzeug.exceptions import Forbidden
from odoo import _, fields, http
from odoo.exceptions import AccessError, UserError
from odoo.http import request
from odoo.addons.onlyoffice_odoo.utils import config_utils, file_utils, jwt_utils, url_utils
_logger = logging.getLogger(__name__)
_mobile_regex = r"android|avantgo|playbook|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od|ad)|iris|kindle|lge |maemo|midp|mmp|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\\/|plucker|pocket|psp|symbian|treo|up\\.(browser|link)|vodafone|wap|windows (ce|phone)|xda|xiino" # noqa: E501
def onlyoffice_urlopen(url, timeout=120, context=None):
url = url_utils.replace_public_url_to_internal(request.env, url)
cert_verify_disabled = config_utils.get_certificate_verify_disabled(request.env)
if cert_verify_disabled and url.startswith("https://"):
import ssl
context = context or ssl._create_unverified_context()
return urlopen(url, timeout=timeout, context=context)
def onlyoffice_request(url, method, opts=None):
_logger.info("External request: %s %s", method.upper(), url)
url = url_utils.replace_public_url_to_internal(request.env, url)
cert_verify_disabled = config_utils.get_certificate_verify_disabled(request.env)
if opts is None:
opts = {}
if url.startswith("https://") and cert_verify_disabled and "verify" not in opts:
opts["verify"] = False
if "timeout" not in opts and "timeout" not in url:
opts["timeout"] = 120
try:
if method.lower() == "post":
response = requests.post(url, **opts)
else:
response = requests.get(url, **opts)
_logger.info("External request completed: %s %s - status: %s", method.upper(), url, response.status_code)
response.raise_for_status()
return response
except requests.exceptions.RequestException as e:
error_details = {
"error_type": type(e).__name__,
"url": url,
"method": method.upper(),
"request_options": opts,
"original_error": str(e),
}
_logger.error("ONLYOFFICE request failed: %s", error_details)
raise requests.exceptions.RequestException(
f"ONLYOFFICE request failed to {method.upper()} {url}: {str(e)}"
) from e
except Exception as e:
error_details = {
"error_type": type(e).__name__,
"url": url,
"method": method.upper(),
"request_options": opts,
"original_error": str(e),
}
_logger.error("Unexpected error in ONLYOFFICE request: %s", error_details)
raise requests.exceptions.RequestException(
f"Unexpected error in ONLYOFFICE request to {method.upper()} {url}: {str(e)}"
) from e
class Onlyoffice_Connector(http.Controller):
@http.route("/onlyoffice/editor/get_config", auth="user", methods=["POST"], type="json", csrf=False)
def get_config(self, document_id=None, attachment_id=None, access_token=None):
_logger.info("POST /onlyoffice/editor/get_config - document: %s, attachment: %s", document_id, attachment_id)
document = None
if document_id:
document = request.env["documents.document"].browse(int(document_id))
attachment_id = document.attachment_id.id
attachment = self.get_attachment(attachment_id)
if not attachment:
_logger.warning("POST /onlyoffice/editor/get_config - attachment not found: %s", attachment_id)
return request.not_found()
attachment.validate_access(access_token)
if attachment.res_model == "documents.document" and not document:
document = request.env["documents.document"].browse(int(attachment.res_id))
if document:
self._check_document_access(document)
data = attachment.read(["id", "checksum", "public", "name", "access_token"])[0]
filename = data["name"]
can_read = attachment.check_access_rights("read", raise_exception=False) and file_utils.can_view(filename)
if not can_read:
_logger.warning("POST /onlyoffice/editor/get_config - no read access: %s", attachment_id)
raise Exception("cant read")
can_write = attachment.check_access_rights("write", raise_exception=False) and file_utils.can_edit(filename)
config = self.prepare_editor_values(attachment, access_token, can_write)
_logger.info("POST /onlyoffice/editor/get_config - success: %s", attachment_id)
return config
@http.route("/onlyoffice/file/content/test.txt", auth="public")
def get_test_file(self):
_logger.info("GET /onlyoffice/file/content/test.txt")
content = "test"
headers = [
("Content-Length", len(content)),
("Content-Type", "text/plain"),
("Content-Disposition", "attachment; filename=test.txt"),
]
response = request.make_response(content, headers)
return response
@http.route("/onlyoffice/file/content/<int:attachment_id>", auth="public")
def get_file_content(self, attachment_id, oo_security_token=None, access_token=None):
_logger.info("GET /onlyoffice/file/content/%s", attachment_id)
attachment = self.get_attachment(attachment_id, self.get_user_from_token(oo_security_token))
if not attachment:
_logger.warning("GET /onlyoffice/file/content/%s - attachment not found", attachment_id)
return request.not_found()
attachment.validate_access(access_token)
attachment.has_access("read")
if jwt_utils.is_jwt_enabled(request.env):
token = request.httprequest.headers.get(config_utils.get_jwt_header(request.env))
if token:
token = token[len("Bearer ") :]
if not token:
_logger.warning("GET /onlyoffice/file/content/%s - JWT token missing", attachment_id)
raise Exception("expected JWT")
jwt_utils.decode_token(request.env, token)
stream = request.env["ir.binary"]._get_stream_from(attachment, "datas", None, "name", None)
send_file_kwargs = {"as_attachment": True, "max_age": None}
_logger.info("GET /onlyoffice/file/content/%s - success", attachment_id)
return stream.get_response(**send_file_kwargs)
@http.route("/onlyoffice/editor/<int:attachment_id>", auth="public", type="http", website=True)
def render_editor(self, attachment_id, access_token=None):
_logger.info("GET /onlyoffice/editor/%s", attachment_id)
attachment = self.get_attachment(attachment_id)
if not attachment:
_logger.warning("GET /onlyoffice/editor/%s - attachment not found", attachment_id)
return request.not_found()
attachment.validate_access(access_token)
if attachment.res_model == "documents.document":
document = request.env["documents.document"].browse(int(attachment.res_id))
self._check_document_access(document)
data = attachment.read(["id", "checksum", "public", "name", "access_token"])[0]
filename = data["name"]
can_read = attachment.has_access("read") and file_utils.can_view(filename)
can_write = attachment.has_access("write") and file_utils.can_edit(filename)
if not can_read:
_logger.warning("GET /onlyoffice/editor/%s - no read access", attachment_id)
raise Exception("cant read")
_logger.info("GET /onlyoffice/editor/%s - success", attachment_id)
return request.render(
"onlyoffice_odoo.onlyoffice_editor", self.prepare_editor_values(attachment, access_token, can_write)
)
@http.route(
"/onlyoffice/editor/callback/<int:attachment_id>", auth="public", methods=["POST"], type="http", csrf=False
)
def editor_callback(self, attachment_id, oo_security_token=None, access_token=None):
_logger.info("POST /onlyoffice/editor/callback/%s", attachment_id)
response_json = {"error": 0}
try:
body = request.get_json_data()
user = self.get_user_from_token(oo_security_token)
attachment = self.get_attachment(attachment_id, user)
if not attachment:
_logger.warning("POST /onlyoffice/editor/callback/%s - attachment not found", attachment_id)
raise Exception("attachment not found")
attachment.validate_access(access_token)
attachment.has_access("write")
if jwt_utils.is_jwt_enabled(request.env):
token = body.get("token")
if not token:
token = request.httprequest.headers.get(config_utils.get_jwt_header(request.env))
if token:
token = token[len("Bearer ") :]
if not token:
_logger.warning("POST /onlyoffice/editor/callback/%s - JWT token missing", attachment_id)
raise Exception("expected JWT")
body = jwt_utils.decode_token(request.env, token)
if body.get("payload"):
body = body["payload"]
status = body["status"]
_logger.info("POST /onlyoffice/editor/callback/%s - status: %s", attachment_id, status)
if (status == 2) | (status == 3): # mustsave, corrupted
file_url = url_utils.replace_public_url_to_internal(request.env, body.get("url"))
datas = onlyoffice_urlopen(file_url).read()
if attachment.res_model == "documents.document":
datas = base64.encodebytes(datas)
document = request.env["documents.document"].browse(int(attachment.res_id))
document.with_user(user).write(
{
"name": attachment.name,
"datas": datas,
"mimetype": guess_type(file_url)[0],
}
)
attachment_version = attachment.oo_attachment_version
attachment.write({"oo_attachment_version": attachment_version + 1})
document.sudo().message_post(body=_("Document edited by %(user)s", user=user.name))
previous_attachments = (
request.env["ir.attachment"]
.sudo()
.search(
[
("res_model", "=", "documents.document"),
("res_id", "=", document.id),
("oo_attachment_version", "=", attachment_version),
],
limit=1,
)
)
name = attachment.name
filename, ext = os.path.splitext(attachment.name)
name = f"{filename} ({attachment_version}){ext}"
previous_attachments.sudo().write({"name": name})
else:
attachment.write({"raw": datas, "mimetype": guess_type(file_url)[0]})
_logger.info("POST /onlyoffice/editor/callback/%s - file saved successfully", attachment_id)
except Exception as ex:
_logger.error("POST /onlyoffice/editor/callback/%s - error: %s", attachment_id, str(ex))
response_json["error"] = 1
response_json["message"] = http.serialize_exception(ex)
return request.make_response(
data=json.dumps(response_json),
status=500 if response_json["error"] == 1 else 200,
headers=[("Content-Type", "application/json")],
)
def prepare_editor_values(self, attachment, access_token, can_write):
_logger.info("prepare_editor_values - attachment: %s", attachment.id)
data = attachment.read(["id", "checksum", "public", "name", "access_token"])[0]
key = str(data["id"]) + str(data["checksum"])
docserver_url = config_utils.get_doc_server_public_url(request.env)
odoo_url = config_utils.get_base_or_odoo_url(request.env)
filename = self.filter_xss(data["name"])
security_token = jwt_utils.encode_payload(
request.env, {"id": request.env.user.id}, config_utils.get_internal_jwt_secret(request.env)
)
security_token = security_token.decode("utf-8") if isinstance(security_token, bytes) else security_token
access_token = access_token.decode("utf-8") if isinstance(access_token, bytes) else access_token
path_part = (
str(data["id"])
+ "?oo_security_token="
+ security_token
+ ("&access_token=" + access_token if access_token else "")
+ "&shardkey="
+ key
)
document_type = file_utils.get_file_type(filename)
is_mobile = bool(re.search(_mobile_regex, request.httprequest.headers.get("User-Agent"), re.IGNORECASE))
root_config = {
"width": "100%",
"height": "100%",
"type": "mobile" if is_mobile else "desktop",
"documentType": document_type,
"document": {
"title": filename,
"url": odoo_url + "onlyoffice/file/content/" + path_part,
"fileType": file_utils.get_file_ext(filename),
"key": key,
"permissions": {},
},
"editorConfig": {
"lang": request.env.user.lang,
"user": {"id": str(request.env.user.id), "name": request.env.user.name},
"customization": {},
},
}
if can_write:
root_config["editorConfig"]["callbackUrl"] = odoo_url + "onlyoffice/editor/callback/" + path_part
if attachment.res_model != "documents.document":
root_config["editorConfig"]["mode"] = "edit" if can_write else "view"
root_config["document"]["permissions"]["edit"] = can_write
elif attachment.res_model == "documents.document":
root_config = self.get_documents_permissions(attachment, can_write, root_config)
if jwt_utils.is_jwt_enabled(request.env):
root_config["token"] = jwt_utils.encode_payload(request.env, root_config)
_logger.info("prepare_editor_values - success: %s", attachment.id)
return {
"docTitle": filename,
"docIcon": f"/onlyoffice_odoo/static/description/editor_icons/{document_type}.ico",
"docApiJS": docserver_url + "web-apps/apps/api/documents/api.js",
"editorConfig": markupsafe.Markup(json.dumps(root_config)),
}
def get_documents_permissions(self, attachment, can_write, root_config): # noqa: C901
_logger.info("get_documents_permissions - attachment: %s", attachment.id)
role = None
document = request.env["documents.document"].browse(int(attachment.res_id))
now = fields.Datetime.now()
document_access_id = document.access_ids.filtered(lambda a: a.partner_id == request.env.user.partner_id)
expired_timer = False
if document_access_id and document_access_id.exists():
if document_access_id.expiration_date:
expired_timer = document_access_id.expiration_date < now
if document.attachment_id.id != attachment.id: # history files
root_config["editorConfig"]["mode"] = "view"
root_config["document"]["permissions"]["edit"] = False
return root_config
if document.owner_id.id == request.env.user.id: # owner
if can_write:
role = "edit"
else:
role = "view"
else:
access_user = request.env["onlyoffice.odoo.documents.access.user"].search(
[("document_id", "=", document.id), ("user_id", "=", request.env.user.partner_id.id)], limit=1
)
if access_user and not expired_timer:
if access_user.role == "none":
raise AccessError(_("User has no read access rights to open this document"))
elif access_user.role == "edit" and can_write:
role = "edit"
else:
role = access_user.role
if not role:
access = request.env["onlyoffice.odoo.documents.access"].search(
[("document_id", "=", document.id)], limit=1
)
if access:
if access.internal_users == "none":
raise AccessError(_("User has no read access rights to open this document"))
elif access.internal_users == "edit" and can_write:
role = "edit"
else:
role = access.internal_users
else:
role = "view" # default role for internal users
if not role:
raise AccessError(_("User has no read access rights to open this document"))
elif role == "view":
root_config["editorConfig"]["mode"] = "view"
root_config["document"]["permissions"]["edit"] = False
elif role == "commenter":
root_config["editorConfig"]["mode"] = "edit"
root_config["document"]["permissions"]["edit"] = False
root_config["document"]["permissions"]["comment"] = True
elif role == "reviewer":
root_config["editorConfig"]["mode"] = "edit"
root_config["document"]["permissions"]["edit"] = False
root_config["document"]["permissions"]["review"] = True
elif role == "edit":
root_config["editorConfig"]["mode"] = "edit"
root_config["document"]["permissions"]["edit"] = True
elif role == "form_filling":
root_config["editorConfig"]["mode"] = "edit"
root_config["document"]["permissions"]["edit"] = False
root_config["document"]["permissions"]["fillForms"] = True
elif role == "custom_filter":
root_config["editorConfig"]["mode"] = "edit"
root_config["document"]["permissions"]["edit"] = True
root_config["document"]["permissions"]["modifyFilter"] = False
_logger.info("get_documents_permissions - role: %s", role)
return root_config
def get_attachment(self, attachment_id, user=None):
IrAttachment = request.env["ir.attachment"]
if user:
IrAttachment = IrAttachment.with_user(user)
try:
attachment = IrAttachment.browse([attachment_id]).exists().ensure_one()
_logger.debug("get_attachment - found: %s", attachment_id)
return attachment
except Exception:
_logger.debug("get_attachment - not found: %s", attachment_id)
return None
def get_user_from_token(self, token):
_logger.info("get_user_from_token")
if not token:
raise Exception("missing security token")
user_id = jwt_utils.decode_token(request.env, token, config_utils.get_internal_jwt_secret(request.env))["id"]
user = request.env["res.users"].sudo().browse(user_id).exists().ensure_one()
_logger.info("get_user_from_token - user: %s", user.name)
return user
def filter_xss(self, text):
allowed_symbols = set(string.digits + " _-,.:@+")
text = "".join(char for char in text if char.isalpha() or char in allowed_symbols)
return text
def _check_document_access(self, document):
if document.is_locked and document.lock_uid.id != request.env.user.id:
_logger.error("Document is locked by another user")
raise Forbidden()
try:
document.check_access_rule("read")
except AccessError as e:
_logger.error("User has no read access rights to open this document")
raise Forbidden() from e
@http.route("/onlyoffice/preview", type="http", auth="user")
def preview(self, url, title):
_logger.info("GET /onlyoffice/preview - url: %s, title: %s", url, title)
docserver_url = config_utils.get_doc_server_public_url(request.env)
odoo_url = config_utils.get_base_or_odoo_url(request.env)
if url and url.startswith("/onlyoffice/file/content/"):
internal_jwt_secret = config_utils.get_internal_jwt_secret(request.env)
user_id = request.env.user.id
security_token = jwt_utils.encode_payload(request.env, {"id": user_id}, internal_jwt_secret)
security_token = security_token.decode("utf-8") if isinstance(security_token, bytes) else security_token
url = url + "?oo_security_token=" + security_token
if url and not url.startswith(("http://", "https://")):
url = odoo_url.rstrip("/") + "/" + url.lstrip("/")
document_type = file_utils.get_file_type(title)
key = str(int(time.time() * 1000))
root_config = {
"width": "100%",
"height": "100%",
"type": "embedded",
"documentType": document_type,
"document": {
"title": self.filter_xss(title),
"url": url,
"fileType": file_utils.get_file_ext(title),
"key": key,
"permissions": {"edit": False},
},
"editorConfig": {
"mode": "view",
"lang": request.env.user.lang,
"user": {"id": str(request.env.user.id), "name": request.env.user.name},
"customization": {},
},
}
if jwt_utils.is_jwt_enabled(request.env):
root_config["token"] = jwt_utils.encode_payload(request.env, root_config)
_logger.info("GET /onlyoffice/preview - success")
return request.render(
"onlyoffice_odoo.onlyoffice_editor",
{
"docTitle": title,
"docIcon": f"/onlyoffice_odoo/static/description/editor_icons/{document_type}.ico",
"docApiJS": docserver_url + "web-apps/apps/api/documents/api.js",
"editorConfig": markupsafe.Markup(json.dumps(root_config)),
},
)
class OnlyOfficeOFormsDocumentsController(http.Controller):
CMSOFORMS_URL = "https://cmsoforms.onlyoffice.com/api"
OFORMS_URL = "https://oforms.onlyoffice.com/dashboard/api"
TIMEOUT = 20 # seconds
def _make_api_request(self, url, endpoint, params=None, method="GET", data=None, files=None):
url = f"{url}/{endpoint}"
try:
if method == "GET":
response = requests.get(url, params=params, timeout=self.TIMEOUT)
elif method == "POST":
response = requests.post(url, data=data, files=files, timeout=self.TIMEOUT)
else:
raise ValueError(f"Unsupported HTTP method: {method}")
response.raise_for_status()
return response.json()
except requests.exceptions.RequestException as e:
_logger.error(f"API request failed to {url}: {str(e)}")
raise UserError(f"Failed to connect to Forms API: {str(e)}") from e
@http.route("/onlyoffice/oforms/locales", type="json", auth="user")
def get_oform_locales(self):
url = self.OFORMS_URL
endpoint = "i18n/locales"
response = self._make_api_request(url, endpoint)
locales = response if isinstance(response, list) else []
return {
"data": [
{
"code": locale.get("code"),
"name": locale.get("name", locale.get("code")),
}
for locale in locales
]
}
@http.route("/onlyoffice/oforms/category-types", type="json", auth="user")
def get_category_types(self, locale="en"):
url = self.OFORMS_URL
endpoint = "menu-translations"
params = {"populate": "*", "locale": locale}
response = self._make_api_request(url, endpoint, params=params)
categories = []
for item in response.get("data", []):
attrs = item.get("attributes", {})
localized_name = next(
(
loc["attributes"]["name"]
for loc in attrs.get("localizations", {}).get("data", [])
if loc["attributes"]["locale"] == locale
),
None,
) or attrs.get("name", "")
categories.append(
{
"id": item["id"],
"categoryId": attrs.get("categoryId"),
"name": localized_name,
"type": attrs.get("categoryTitle"),
}
)
return {"data": categories}
@http.route("/onlyoffice/oforms/subcategories", type="json", auth="user")
def get_subcategories(self, category_type, locale="en"):
url = self.OFORMS_URL
endpoint_map = {"categorie": "categories", "type": "types", "compilation": "compilations"}
if category_type not in endpoint_map:
return {"data": []}
endpoint = f"{endpoint_map[category_type]}"
params = {"populate": "*", "locale": locale}
response = self._make_api_request(url, endpoint, params=params)
subcategories = []
for item in response.get("data", []):
attrs = item.get("attributes", {})
localized_name = next(
(
loc["attributes"][category_type]
for loc in attrs.get("localizations", {}).get("data", [])
if loc["attributes"]["locale"] == locale
),
None,
) or attrs.get(category_type, "")
subcategories.append(
{
"id": item["id"],
"name": localized_name,
"category_type": endpoint_map[category_type],
}
)
return {"data": subcategories}
@http.route("/onlyoffice/oforms", type="json", auth="user")
def get_oforms(self, params=None, **kwargs):
url = self.CMSOFORMS_URL
if params is None:
params = {}
api_params = {
"fields[0]": "name_form",
"fields[1]": "updatedAt",
"fields[2]": "description_card",
"fields[3]": "template_desc",
"filters[form_exts][ext][$eq]": params.get("type", "pdf"),
"locale": params.get("locale", "en"),
"pagination[page]": params.get("pagination[page]", 1),
"pagination[pageSize]": params.get("pagination[pageSize]", 12),
"populate[card_prewiew][fields][0]": "url",
"populate[template_image][fields][0]": "formats",
"populate[file_oform][fields][0]": "url",
"populate[file_oform][fields][1]": "name",
"populate[file_oform][fields][2]": "ext",
"populate[file_oform][filters][url][$endsWith]": "." + params.get("type", "pdf"),
}
if "filters[name_form][$containsi]" in params:
api_params["filters[name_form][$containsi]"] = params["filters[name_form][$containsi]"]
if "filters[categories][$eq]" in params:
api_params["filters[categories][id][$eq]"] = params["filters[categories][$eq]"]
elif "filters[types][$eq]" in params:
api_params["filters[types][id][$eq]"] = params["filters[types][$eq]"]
elif "filters[compilations][$eq]" in params:
api_params["filters[compilations][id][$eq]"] = params["filters[compilations][$eq]"]
response = self._make_api_request(url, "oforms", params=api_params)
return response

View File

@ -0,0 +1,31 @@
Prerequisites
=============
To be able to work with office files within Odoo, you will need an instance of ONLYOFFICE Docs. You can install the `self-hosted version`_ of the editors (free Community build or scalable Enterprise version), or opt for `ONLYOFFICE Docs`_ Cloud which doesn't require downloading and installation.
ONLYOFFICE app configuration
============================
After the app installation, adjust its settings within your Odoo (*Home menu -> Settings -> ONLYOFFICE*).
In the **Document Server Url**, specify the URL of the installed ONLYOFFICE Docs or the address of ONLYOFFICE Docs Cloud.
**Document Server JWT Secret**: JWT is enabled by default and the secret key is generated automatically to restrict the access to ONLYOFFICE Docs. if you want to specify your own secret key in this field, also specify the same secret key in the ONLYOFFICE Docs `config file`_ to enable the validation.
**Document Server JWT Header**: Standard JWT header used in ONLYOFFICE is Authorization. In case this header is in conflict with your setup, you can change the header to the custom one.
In case your network configuration doesn't allow requests between the servers via public addresses, specify the ONLYOFFICE Docs address for internal requests from the Odoo server and vice versa.
If you would like the editors to open in the same tab instead of a new one, check the corresponding setting "Open file in the same tab".
.. image:: settings.png
:width: 800
Contact us
==========
If you have any questions or suggestions regarding the ONLYOFFICE app for Odoo, please let us know at https://forum.onlyoffice.com
.. _self-hosted version: https://www.onlyoffice.com/download-docs.aspx
.. _ONLYOFFICE Docs: https://www.onlyoffice.com/docs-registration.aspx
.. _config file: https://api.onlyoffice.com/docs/docs-api/additional-api/signature/

Binary file not shown.

After

Width:  |  Height:  |  Size: 44 KiB

View File

@ -0,0 +1,368 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * onlyoffice_odoo
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 18.0+e-20250520\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-11-12 16:18+0000\n"
"PO-Revision-Date: 2025-11-12 16:18+0000\n"
"Last-Translator: \n"
"Language-Team: \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);"
#. module: onlyoffice_odoo
#: model_terms:ir.ui.view,arch_db:onlyoffice_odoo.res_config_settings_view_form
msgid "<i class=\"fa fa-arrow-right\"/> Learn more"
msgstr "<i class=\"fa fa-arrow-right\"/> Mehr erfahren"
#. module: onlyoffice_odoo
#: model_terms:ir.ui.view,arch_db:onlyoffice_odoo.res_config_settings_view_form
msgid "<i class=\"fa fa-arrow-right\"/> Suggest a feature"
msgstr "<i class=\"fa fa-arrow-right\"/> Funktion vorschlagen"
#. module: onlyoffice_odoo
#: model_terms:ir.ui.view,arch_db:onlyoffice_odoo.res_config_settings_view_form
msgid ""
"<span searchabletext=\"Connect to demo ONLYOFFICE Docs server\">\n"
" Connect to demo ONLYOFFICE Docs server\n"
" </span>"
msgstr ""
"<span searchabletext=\"Zum Demoserver von ONLYOFFICE Docs verbinden\">\n"
" Zum Demoserver von ONLYOFFICE Docs verbinden\n"
" </span>"
#. module: onlyoffice_odoo
#: model_terms:ir.ui.view,arch_db:onlyoffice_odoo.res_config_settings_view_form
msgid ""
"<span searchabletext=\"This is a public test server, please do not use it for private sensitive data. The server will be available during a 30-day period.\">\n"
" This is a public test server, please do not use it for private sensitive data.\n"
" The server will be available during a 30-day period.\n"
" </span>"
msgstr ""
"<span searchabletext=\"Dies ist ein öffentlicher Testserver, bitte verwenden Sie ihn nicht für private sensible Daten. Der Server wird für einen Zeitraum von 30 Tagen verfügbar sein.\">\n"
" Dies ist ein öffentlicher Testserver, bitte verwenden Sie ihn nicht für private sensible Daten.\n"
" Der Server wird für einen Zeitraum von 30 Tagen verfügbar sein.\n"
" </span>"
#. module: onlyoffice_odoo
#: model_terms:ir.ui.view,arch_db:onlyoffice_odoo.res_config_settings_view_form
msgid "About"
msgstr "Info"
#. module: onlyoffice_odoo
#. odoo-javascript
#: code:addons/onlyoffice_odoo/static/src/views/form_gallery/form_gallery.xml:0
msgid "Back"
msgstr "Zurück"
#. module: onlyoffice_odoo
#. odoo-javascript
#: code:addons/onlyoffice_odoo/static/src/views/form_gallery/form_gallery.xml:0
msgid "Categories"
msgstr "Kategorien"
#. module: onlyoffice_odoo
#: model:ir.model,name:onlyoffice_odoo.model_res_config_settings
msgid "Config Settings"
msgstr "Konfigurationseinstellungen"
#. module: onlyoffice_odoo
#: model:ir.model.fields,field_description:onlyoffice_odoo.field_res_config_settings__doc_server_demo
msgid "Connect to demo ONLYOFFICE Docs server"
msgstr "Zum Demoserver von ONLYOFFICE Docs verbinden"
#. module: onlyoffice_odoo
#. odoo-javascript
#: code:addons/onlyoffice_odoo/static/src/views/form_gallery/form_gallery.xml:0
msgid "Create"
msgstr "Erstellen"
#. module: onlyoffice_odoo
#: model:ir.model.fields,field_description:onlyoffice_odoo.field_onlyoffice_odoo__create_uid
msgid "Created by"
msgstr "Erstellt von"
#. module: onlyoffice_odoo
#: model:ir.model.fields,field_description:onlyoffice_odoo.field_onlyoffice_odoo__create_date
msgid "Created on"
msgstr "Erstellt am"
#. module: onlyoffice_odoo
#: model:ir.model.fields,field_description:onlyoffice_odoo.field_res_config_settings__doc_server_disable_certificate
#: model_terms:ir.ui.view,arch_db:onlyoffice_odoo.res_config_settings_view_form
msgid "Disable certificate verification"
msgstr "Zertifikatsüberprüfung deaktivieren"
#. module: onlyoffice_odoo
#: model:ir.model.fields,field_description:onlyoffice_odoo.field_onlyoffice_odoo__display_name
msgid "Display Name"
msgstr "Anzeigename"
#. module: onlyoffice_odoo
#. odoo-javascript
#: code:addons/onlyoffice_odoo/static/src/views/form_gallery/form_gallery.xml:0
msgid "Document"
msgstr "Dokument"
#. module: onlyoffice_odoo
#: model:ir.model.fields,field_description:onlyoffice_odoo.field_res_config_settings__doc_server_inner_url
msgid "Document Server Inner URL"
msgstr "Innere URL von Document Server"
#. module: onlyoffice_odoo
#: model:ir.model.fields,field_description:onlyoffice_odoo.field_res_config_settings__doc_server_jwt_header
msgid "Document Server JWT Header"
msgstr "JWT-Header von Document Server"
#. module: onlyoffice_odoo
#: model:ir.model.fields,field_description:onlyoffice_odoo.field_res_config_settings__doc_server_jwt_secret
msgid "Document Server JWT Secret"
msgstr "JWT-Geheimschlüssel von Document Server"
#. module: onlyoffice_odoo
#: model:ir.model.fields,field_description:onlyoffice_odoo.field_res_config_settings__doc_server_public_url
msgid "Document Server Public URL"
msgstr "Öffentliche URL von Document Server"
#. module: onlyoffice_odoo
#. odoo-python
#: code:addons/onlyoffice_odoo/controllers/controllers.py:0
msgid "Document edited by %(user)s"
msgstr ""
#. module: onlyoffice_odoo
#. odoo-javascript
#: code:addons/onlyoffice_odoo/static/src/views/form_gallery/form_gallery.js:0
msgid "Document templates"
msgstr "Dokumentvorlagen"
#. module: onlyoffice_odoo
#. odoo-javascript
#: code:addons/onlyoffice_odoo/static/src/views/form_gallery/form_gallery.js:0
msgid "Error loading forms"
msgstr "Fehler beim Laden der Formulare"
#. module: onlyoffice_odoo
#. odoo-javascript
#: code:addons/onlyoffice_odoo/static/src/views/form_gallery/form_gallery.js:0
msgid "Failed to load categories"
msgstr "Kategorien konnten nicht geladen werden"
#. module: onlyoffice_odoo
#. odoo-javascript
#: code:addons/onlyoffice_odoo/static/src/views/form_gallery/form_gallery.js:0
msgid "Failed to load forms"
msgstr "Formulare konnten nicht geladen werden"
#. module: onlyoffice_odoo
#. odoo-javascript
#: code:addons/onlyoffice_odoo/static/src/views/form_gallery/form_gallery.xml:0
msgid "Form"
msgstr "Formular"
#. module: onlyoffice_odoo
#: model_terms:ir.ui.view,arch_db:onlyoffice_odoo.res_config_settings_view_form
msgid "GET NOW"
msgstr "JETZT ERHALTEN"
#. module: onlyoffice_odoo
#: model_terms:ir.ui.view,arch_db:onlyoffice_odoo.res_config_settings_view_form
msgid "General Settings"
msgstr "Allgemeine Einstellungen"
#. module: onlyoffice_odoo
#: model:ir.model.fields,field_description:onlyoffice_odoo.field_onlyoffice_odoo__id
msgid "ID"
msgstr "ID"
#. module: onlyoffice_odoo
#: model:ir.model.fields,field_description:onlyoffice_odoo.field_res_config_settings__internal_jwt_secret
msgid "Internal JWT Secret"
msgstr "Interner JWT-Geheimschlüssel"
#. module: onlyoffice_odoo
#: model_terms:ir.ui.view,arch_db:onlyoffice_odoo.res_config_settings_view_form
msgid "JWT Header"
msgstr "JWT-Header"
#. module: onlyoffice_odoo
#. odoo-javascript
#: code:addons/onlyoffice_odoo/static/src/views/form_gallery/form_gallery.xml:0
msgid "Language"
msgstr "Sprache"
#. module: onlyoffice_odoo
#: model:ir.model.fields,field_description:onlyoffice_odoo.field_onlyoffice_odoo__write_uid
msgid "Last Updated by"
msgstr "Zuletzt aktualisiert von"
#. module: onlyoffice_odoo
#: model:ir.model.fields,field_description:onlyoffice_odoo.field_onlyoffice_odoo__write_date
msgid "Last Updated on"
msgstr "Zuletzt aktualisiert am"
#. module: onlyoffice_odoo
#. odoo-javascript
#: code:addons/onlyoffice_odoo/static/src/views/form_gallery/form_gallery.xml:0
msgid "Loading forms..."
msgstr "Formulare werden geladen..."
#. module: onlyoffice_odoo
#. odoo-javascript
#: code:addons/onlyoffice_odoo/static/src/views/form_gallery/form_gallery.xml:0
msgid "No forms found"
msgstr "Keine Formulare gefunden"
#. module: onlyoffice_odoo
#: model:ir.model,name:onlyoffice_odoo.model_onlyoffice_odoo
#: model_terms:ir.ui.view,arch_db:onlyoffice_odoo.res_config_settings_view_form
msgid "ONLYOFFICE"
msgstr "ONLYOFFICE"
#. module: onlyoffice_odoo
#: model_terms:ir.ui.view,arch_db:onlyoffice_odoo.res_config_settings_view_form
msgid "ONLYOFFICE Docs address"
msgstr "ONLYOFFICE Docs-Adresse"
#. module: onlyoffice_odoo
#: model_terms:ir.ui.view,arch_db:onlyoffice_odoo.res_config_settings_view_form
msgid "ONLYOFFICE Docs address for internal requests from the server"
msgstr "ONLYOFFICE Docs-Adresse für interne Anfragen vom Server"
#. module: onlyoffice_odoo
#: model_terms:ir.ui.view,arch_db:onlyoffice_odoo.res_config_settings_view_form
msgid "ONLYOFFICE Docs secret key"
msgstr "ONLYOFFICE Docs Geheimschlüssel"
#. module: onlyoffice_odoo
#. odoo-javascript
#: code:addons/onlyoffice_odoo/static/src/models/attachment_card_onlyoffice.js:0
msgid "ONLYOFFICE Docs server"
msgstr "ONLYOFFICE Docs-Server"
#. module: onlyoffice_odoo
#: model_terms:ir.ui.view,arch_db:onlyoffice_odoo.res_config_settings_view_form
msgid ""
"ONLYOFFICE Templates requires a properly licensed Document Server connected "
"with Odoo. Contact sales at sales@onlyoffice.com to acquire the proper "
"license."
msgstr "Für ONLYOFFICE Templates benötigen Sie einen ordnungsgemäß lizenzierten Document Server, der mit Odoo verbunden ist. Kontaktieren Sie das Sales-Team unter sales@onlyoffice.com, um die entsprechende Lizenz zu erwerben."
#. module: onlyoffice_odoo
#. odoo-javascript
#: code:addons/onlyoffice_odoo/static/src/actions/documents_action.xml:0
#: model_terms:ir.ui.view,arch_db:onlyoffice_odoo.onlyoffice_editor
msgid "ONLYOFFICE cannot be reached. Please contact admin."
msgstr "ONLYOFFICE kann nicht erreicht werden. Bitte kontaktieren Sie den Administrator."
#. module: onlyoffice_odoo
#. odoo-javascript
#: code:addons/onlyoffice_odoo/static/src/actions/documents_action.xml:0
#: model_terms:ir.ui.view,arch_db:onlyoffice_odoo.onlyoffice_editor
msgid "ONLYOFFICE logo"
msgstr "ONLYOFFICE-Logo"
#. module: onlyoffice_odoo
#: model:ir.model.fields,field_description:onlyoffice_odoo.field_res_config_settings__doc_server_odoo_url
msgid "Odoo URL"
msgstr "Odoo-URL"
#. module: onlyoffice_odoo
#: model:ir.model.fields,field_description:onlyoffice_odoo.field_res_config_settings__same_tab
#: model_terms:ir.ui.view,arch_db:onlyoffice_odoo.res_config_settings_view_form
msgid "Open file in the same tab"
msgstr "Datei im selben Tab öffnen"
#. module: onlyoffice_odoo
#. odoo-javascript
#: code:addons/onlyoffice_odoo/static/src/components/attachment_card_onlyoffice/attachment_card_onlyoffice.xml:0
msgid "Open in ONLYOFFICE"
msgstr "In ONLYOFFICE öffnen"
#. module: onlyoffice_odoo
#: model_terms:ir.ui.view,arch_db:onlyoffice_odoo.res_config_settings_view_form
msgid "Other"
msgstr ""
#. module: onlyoffice_odoo
#. odoo-javascript
#: code:addons/onlyoffice_odoo/static/src/views/form_gallery/form_gallery.xml:0
msgid "Presentation"
msgstr "Präsentation"
#. module: onlyoffice_odoo
#. odoo-javascript
#: code:addons/onlyoffice_odoo/static/src/views/form_gallery/form_gallery.xml:0
msgid "Search..."
msgstr "Suchen..."
#. module: onlyoffice_odoo
#. odoo-javascript
#: code:addons/onlyoffice_odoo/static/src/views/form_gallery/form_gallery.xml:0
msgid "Select document"
msgstr "Dokument auswählen"
#. module: onlyoffice_odoo
#: model_terms:ir.ui.view,arch_db:onlyoffice_odoo.res_config_settings_view_form
msgid "Server address for internal requests from ONLYOFFICE Docs"
msgstr "Serveradresse für interne Anfragen von ONLYOFFICE Docs"
#. module: onlyoffice_odoo
#: model:ir.actions.act_window,name:onlyoffice_odoo.action_onlyoffice_config_settings
msgid "Settings"
msgstr "Einstellungen"
#. module: onlyoffice_odoo
#. odoo-javascript
#: code:addons/onlyoffice_odoo/static/src/views/form_gallery/form_gallery.xml:0
msgid "Spreadsheet"
msgstr "Kalkulationstabelle"
#. module: onlyoffice_odoo
#. odoo-javascript
#: code:addons/onlyoffice_odoo/static/src/models/attachment_card_onlyoffice.js:0
msgid ""
"The 30-day test period is over, you can no longer connect to demo ONLYOFFICE"
" Docs server"
msgstr "Der 30-tägige Testzeitraum ist vorbei. Sie können sich nicht mehr mit dem Demo-Server von ONLYOFFICE Docs verbinden"
#. module: onlyoffice_odoo
#: model_terms:ir.ui.view,arch_db:onlyoffice_odoo.res_config_settings_view_form
msgid ""
"This app enables creating, editing, and collaborating on fillable forms, "
"office files, and attached documents in Odoo using ONLYOFFICE Docs."
msgstr "Diese App ermöglicht das Erstellen, Bearbeiten und gemeinsame Bearbeiten von ausfüllbaren Formularen, Office-Dateien und angehängten Dokumenten in Odoo mithilfe von ONLYOFFICE Docs."
#. module: onlyoffice_odoo
#. odoo-javascript
#: code:addons/onlyoffice_odoo/static/src/views/form_gallery/form_gallery.xml:0
msgid "Try changing your search or filters"
msgstr "Versuchen Sie, Ihre Suche oder Filter zu ändern"
#. module: onlyoffice_odoo
#. odoo-javascript
#: code:addons/onlyoffice_odoo/static/src/views/form_gallery/form_gallery.xml:0
msgid "Type"
msgstr "Typ"
#. module: onlyoffice_odoo
#. odoo-python
#: code:addons/onlyoffice_odoo/controllers/controllers.py:0
msgid "User has no read access rights to open this document"
msgstr "Benutzer hat keine Leserechte zum Öffnen dieses Dokuments"
#. module: onlyoffice_odoo
#. odoo-javascript
#: code:addons/onlyoffice_odoo/static/src/views/form_gallery/form_gallery.xml:0
msgid "View all templates"
msgstr "Alle Vorlagen anzeigen"
#. module: onlyoffice_odoo
#: model_terms:ir.ui.view,arch_db:onlyoffice_odoo.res_config_settings_view_form
msgid "Welcome to ONLYOFFICE!"
msgstr "Willkommen bei ONLYOFFICE!"

View File

@ -0,0 +1,361 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * onlyoffice_odoo
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 18.0+e-20250520\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-11-12 16:18+0000\n"
"PO-Revision-Date: 2025-11-12 16:18+0000\n"
"Last-Translator: \n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: \n"
#. module: onlyoffice_odoo
#: model_terms:ir.ui.view,arch_db:onlyoffice_odoo.res_config_settings_view_form
msgid "<i class=\"fa fa-arrow-right\"/> Learn more"
msgstr ""
#. module: onlyoffice_odoo
#: model_terms:ir.ui.view,arch_db:onlyoffice_odoo.res_config_settings_view_form
msgid "<i class=\"fa fa-arrow-right\"/> Suggest a feature"
msgstr ""
#. module: onlyoffice_odoo
#: model_terms:ir.ui.view,arch_db:onlyoffice_odoo.res_config_settings_view_form
msgid ""
"<span searchabletext=\"Connect to demo ONLYOFFICE Docs server\">\n"
" Connect to demo ONLYOFFICE Docs server\n"
" </span>"
msgstr ""
#. module: onlyoffice_odoo
#: model_terms:ir.ui.view,arch_db:onlyoffice_odoo.res_config_settings_view_form
msgid ""
"<span searchabletext=\"This is a public test server, please do not use it for private sensitive data. The server will be available during a 30-day period.\">\n"
" This is a public test server, please do not use it for private sensitive data.\n"
" The server will be available during a 30-day period.\n"
" </span>"
msgstr ""
#. module: onlyoffice_odoo
#: model_terms:ir.ui.view,arch_db:onlyoffice_odoo.res_config_settings_view_form
msgid "About"
msgstr ""
#. module: onlyoffice_odoo
#. odoo-javascript
#: code:addons/onlyoffice_odoo/static/src/views/form_gallery/form_gallery.xml:0
msgid "Back"
msgstr ""
#. module: onlyoffice_odoo
#. odoo-javascript
#: code:addons/onlyoffice_odoo/static/src/views/form_gallery/form_gallery.xml:0
msgid "Categories"
msgstr ""
#. module: onlyoffice_odoo
#: model:ir.model,name:onlyoffice_odoo.model_res_config_settings
msgid "Config Settings"
msgstr ""
#. module: onlyoffice_odoo
#: model:ir.model.fields,field_description:onlyoffice_odoo.field_res_config_settings__doc_server_demo
msgid "Connect to demo ONLYOFFICE Docs server"
msgstr ""
#. module: onlyoffice_odoo
#. odoo-javascript
#: code:addons/onlyoffice_odoo/static/src/views/form_gallery/form_gallery.xml:0
msgid "Create"
msgstr ""
#. module: onlyoffice_odoo
#: model:ir.model.fields,field_description:onlyoffice_odoo.field_onlyoffice_odoo__create_uid
msgid "Created by"
msgstr ""
#. module: onlyoffice_odoo
#: model:ir.model.fields,field_description:onlyoffice_odoo.field_onlyoffice_odoo__create_date
msgid "Created on"
msgstr ""
#. module: onlyoffice_odoo
#: model:ir.model.fields,field_description:onlyoffice_odoo.field_res_config_settings__doc_server_disable_certificate
#: model_terms:ir.ui.view,arch_db:onlyoffice_odoo.res_config_settings_view_form
msgid "Disable certificate verification"
msgstr ""
#. module: onlyoffice_odoo
#: model:ir.model.fields,field_description:onlyoffice_odoo.field_onlyoffice_odoo__display_name
msgid "Display Name"
msgstr ""
#. module: onlyoffice_odoo
#. odoo-javascript
#: code:addons/onlyoffice_odoo/static/src/views/form_gallery/form_gallery.xml:0
msgid "Document"
msgstr ""
#. module: onlyoffice_odoo
#: model:ir.model.fields,field_description:onlyoffice_odoo.field_res_config_settings__doc_server_inner_url
msgid "Document Server Inner URL"
msgstr ""
#. module: onlyoffice_odoo
#: model:ir.model.fields,field_description:onlyoffice_odoo.field_res_config_settings__doc_server_jwt_header
msgid "Document Server JWT Header"
msgstr ""
#. module: onlyoffice_odoo
#: model:ir.model.fields,field_description:onlyoffice_odoo.field_res_config_settings__doc_server_jwt_secret
msgid "Document Server JWT Secret"
msgstr ""
#. module: onlyoffice_odoo
#: model:ir.model.fields,field_description:onlyoffice_odoo.field_res_config_settings__doc_server_public_url
msgid "Document Server Public URL"
msgstr ""
#. module: onlyoffice_odoo
#. odoo-python
#: code:addons/onlyoffice_odoo/controllers/controllers.py:0
msgid "Document edited by %(user)s"
msgstr ""
#. module: onlyoffice_odoo
#. odoo-javascript
#: code:addons/onlyoffice_odoo/static/src/views/form_gallery/form_gallery.js:0
msgid "Document templates"
msgstr ""
#. module: onlyoffice_odoo
#. odoo-javascript
#: code:addons/onlyoffice_odoo/static/src/views/form_gallery/form_gallery.js:0
msgid "Error loading forms"
msgstr ""
#. module: onlyoffice_odoo
#. odoo-javascript
#: code:addons/onlyoffice_odoo/static/src/views/form_gallery/form_gallery.js:0
msgid "Failed to load categories"
msgstr ""
#. module: onlyoffice_odoo
#. odoo-javascript
#: code:addons/onlyoffice_odoo/static/src/views/form_gallery/form_gallery.js:0
msgid "Failed to load forms"
msgstr ""
#. module: onlyoffice_odoo
#. odoo-javascript
#: code:addons/onlyoffice_odoo/static/src/views/form_gallery/form_gallery.xml:0
msgid "Form"
msgstr ""
#. module: onlyoffice_odoo
#: model_terms:ir.ui.view,arch_db:onlyoffice_odoo.res_config_settings_view_form
msgid "GET NOW"
msgstr ""
#. module: onlyoffice_odoo
#: model_terms:ir.ui.view,arch_db:onlyoffice_odoo.res_config_settings_view_form
msgid "General Settings"
msgstr ""
#. module: onlyoffice_odoo
#: model:ir.model.fields,field_description:onlyoffice_odoo.field_onlyoffice_odoo__id
msgid "ID"
msgstr ""
#. module: onlyoffice_odoo
#: model:ir.model.fields,field_description:onlyoffice_odoo.field_res_config_settings__internal_jwt_secret
msgid "Internal JWT Secret"
msgstr ""
#. module: onlyoffice_odoo
#: model_terms:ir.ui.view,arch_db:onlyoffice_odoo.res_config_settings_view_form
msgid "JWT Header"
msgstr ""
#. module: onlyoffice_odoo
#. odoo-javascript
#: code:addons/onlyoffice_odoo/static/src/views/form_gallery/form_gallery.xml:0
msgid "Language"
msgstr ""
#. module: onlyoffice_odoo
#: model:ir.model.fields,field_description:onlyoffice_odoo.field_onlyoffice_odoo__write_uid
msgid "Last Updated by"
msgstr ""
#. module: onlyoffice_odoo
#: model:ir.model.fields,field_description:onlyoffice_odoo.field_onlyoffice_odoo__write_date
msgid "Last Updated on"
msgstr ""
#. module: onlyoffice_odoo
#. odoo-javascript
#: code:addons/onlyoffice_odoo/static/src/views/form_gallery/form_gallery.xml:0
msgid "Loading forms..."
msgstr ""
#. module: onlyoffice_odoo
#. odoo-javascript
#: code:addons/onlyoffice_odoo/static/src/views/form_gallery/form_gallery.xml:0
msgid "No forms found"
msgstr ""
#. module: onlyoffice_odoo
#: model:ir.model,name:onlyoffice_odoo.model_onlyoffice_odoo
#: model_terms:ir.ui.view,arch_db:onlyoffice_odoo.res_config_settings_view_form
msgid "ONLYOFFICE"
msgstr ""
#. module: onlyoffice_odoo
#: model_terms:ir.ui.view,arch_db:onlyoffice_odoo.res_config_settings_view_form
msgid "ONLYOFFICE Docs address"
msgstr ""
#. module: onlyoffice_odoo
#: model_terms:ir.ui.view,arch_db:onlyoffice_odoo.res_config_settings_view_form
msgid "ONLYOFFICE Docs address for internal requests from the server"
msgstr ""
#. module: onlyoffice_odoo
#: model_terms:ir.ui.view,arch_db:onlyoffice_odoo.res_config_settings_view_form
msgid "ONLYOFFICE Docs secret key"
msgstr ""
#. module: onlyoffice_odoo
#. odoo-javascript
#: code:addons/onlyoffice_odoo/static/src/models/attachment_card_onlyoffice.js:0
msgid "ONLYOFFICE Docs server"
msgstr ""
#. module: onlyoffice_odoo
#: model_terms:ir.ui.view,arch_db:onlyoffice_odoo.res_config_settings_view_form
msgid ""
"ONLYOFFICE Templates requires a properly licensed Document Server connected "
"with Odoo. Contact sales at sales@onlyoffice.com to acquire the proper "
"license."
msgstr ""
#. module: onlyoffice_odoo
#. odoo-javascript
#: code:addons/onlyoffice_odoo/static/src/actions/documents_action.xml:0
#: model_terms:ir.ui.view,arch_db:onlyoffice_odoo.onlyoffice_editor
msgid "ONLYOFFICE cannot be reached. Please contact admin."
msgstr ""
#. module: onlyoffice_odoo
#. odoo-javascript
#: code:addons/onlyoffice_odoo/static/src/actions/documents_action.xml:0
#: model_terms:ir.ui.view,arch_db:onlyoffice_odoo.onlyoffice_editor
msgid "ONLYOFFICE logo"
msgstr ""
#. module: onlyoffice_odoo
#: model:ir.model.fields,field_description:onlyoffice_odoo.field_res_config_settings__doc_server_odoo_url
msgid "Odoo URL"
msgstr ""
#. module: onlyoffice_odoo
#: model:ir.model.fields,field_description:onlyoffice_odoo.field_res_config_settings__same_tab
#: model_terms:ir.ui.view,arch_db:onlyoffice_odoo.res_config_settings_view_form
msgid "Open file in the same tab"
msgstr ""
#. module: onlyoffice_odoo
#. odoo-javascript
#: code:addons/onlyoffice_odoo/static/src/components/attachment_card_onlyoffice/attachment_card_onlyoffice.xml:0
msgid "Open in ONLYOFFICE"
msgstr ""
#. module: onlyoffice_odoo
#: model_terms:ir.ui.view,arch_db:onlyoffice_odoo.res_config_settings_view_form
msgid "Other"
msgstr ""
#. module: onlyoffice_odoo
#. odoo-javascript
#: code:addons/onlyoffice_odoo/static/src/views/form_gallery/form_gallery.xml:0
msgid "Presentation"
msgstr ""
#. module: onlyoffice_odoo
#. odoo-javascript
#: code:addons/onlyoffice_odoo/static/src/views/form_gallery/form_gallery.xml:0
msgid "Search..."
msgstr ""
#. module: onlyoffice_odoo
#. odoo-javascript
#: code:addons/onlyoffice_odoo/static/src/views/form_gallery/form_gallery.xml:0
msgid "Select document"
msgstr ""
#. module: onlyoffice_odoo
#: model_terms:ir.ui.view,arch_db:onlyoffice_odoo.res_config_settings_view_form
msgid "Server address for internal requests from ONLYOFFICE Docs"
msgstr ""
#. module: onlyoffice_odoo
#: model:ir.actions.act_window,name:onlyoffice_odoo.action_onlyoffice_config_settings
msgid "Settings"
msgstr ""
#. module: onlyoffice_odoo
#. odoo-javascript
#: code:addons/onlyoffice_odoo/static/src/views/form_gallery/form_gallery.xml:0
msgid "Spreadsheet"
msgstr ""
#. module: onlyoffice_odoo
#. odoo-javascript
#: code:addons/onlyoffice_odoo/static/src/models/attachment_card_onlyoffice.js:0
msgid ""
"The 30-day test period is over, you can no longer connect to demo ONLYOFFICE"
" Docs server"
msgstr ""
#. module: onlyoffice_odoo
#: model_terms:ir.ui.view,arch_db:onlyoffice_odoo.res_config_settings_view_form
msgid ""
"This app enables creating, editing, and collaborating on fillable forms, "
"office files, and attached documents in Odoo using ONLYOFFICE Docs."
msgstr ""
#. module: onlyoffice_odoo
#. odoo-javascript
#: code:addons/onlyoffice_odoo/static/src/views/form_gallery/form_gallery.xml:0
msgid "Try changing your search or filters"
msgstr ""
#. module: onlyoffice_odoo
#. odoo-javascript
#: code:addons/onlyoffice_odoo/static/src/views/form_gallery/form_gallery.xml:0
msgid "Type"
msgstr ""
#. module: onlyoffice_odoo
#. odoo-python
#: code:addons/onlyoffice_odoo/controllers/controllers.py:0
msgid "User has no read access rights to open this document"
msgstr ""
#. module: onlyoffice_odoo
#. odoo-javascript
#: code:addons/onlyoffice_odoo/static/src/views/form_gallery/form_gallery.xml:0
msgid "View all templates"
msgstr ""
#. module: onlyoffice_odoo
#: model_terms:ir.ui.view,arch_db:onlyoffice_odoo.res_config_settings_view_form
msgid "Welcome to ONLYOFFICE!"
msgstr ""

View File

@ -0,0 +1,368 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * onlyoffice_odoo
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 18.0+e-20250520\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-11-12 16:18+0000\n"
"PO-Revision-Date: 2025-11-12 16:18+0000\n"
"Last-Translator: \n"
"Language-Team: \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);"
#. module: onlyoffice_odoo
#: model_terms:ir.ui.view,arch_db:onlyoffice_odoo.res_config_settings_view_form
msgid "<i class=\"fa fa-arrow-right\"/> Learn more"
msgstr "<i class=\"fa fa-arrow-right\"/> Más información"
#. module: onlyoffice_odoo
#: model_terms:ir.ui.view,arch_db:onlyoffice_odoo.res_config_settings_view_form
msgid "<i class=\"fa fa-arrow-right\"/> Suggest a feature"
msgstr "<i class=\"fa fa-arrow-right\"/> Sugerir una función"
#. module: onlyoffice_odoo
#: model_terms:ir.ui.view,arch_db:onlyoffice_odoo.res_config_settings_view_form
msgid ""
"<span searchabletext=\"Connect to demo ONLYOFFICE Docs server\">\n"
" Connect to demo ONLYOFFICE Docs server\n"
" </span>"
msgstr ""
"<span searchabletext=\"Conectarse al servidor demo de ONLYOFFICE Docs\">\n"
" Conectarse al servidor demo de ONLYOFFICE Docs\n"
" </span>"
#. module: onlyoffice_odoo
#: model_terms:ir.ui.view,arch_db:onlyoffice_odoo.res_config_settings_view_form
msgid ""
"<span searchabletext=\"This is a public test server, please do not use it for private sensitive data. The server will be available during a 30-day period.\">\n"
" This is a public test server, please do not use it for private sensitive data.\n"
" The server will be available during a 30-day period.\n"
" </span>"
msgstr ""
"<span searchabletext=\"Este es un servidor público de prueba, por favor no lo utilice para datos privados. El servidor estará disponible durante un período de 30 días.\">\n"
" Este es un servidor público de prueba, por favor no lo utilice para datos privados.\n"
" El servidor estará disponible durante un período de 30 días.\n"
" </span>"
#. module: onlyoffice_odoo
#: model_terms:ir.ui.view,arch_db:onlyoffice_odoo.res_config_settings_view_form
msgid "About"
msgstr "Acerca de"
#. module: onlyoffice_odoo
#. odoo-javascript
#: code:addons/onlyoffice_odoo/static/src/views/form_gallery/form_gallery.xml:0
msgid "Back"
msgstr "Atrás"
#. module: onlyoffice_odoo
#. odoo-javascript
#: code:addons/onlyoffice_odoo/static/src/views/form_gallery/form_gallery.xml:0
msgid "Categories"
msgstr "Categorías"
#. module: onlyoffice_odoo
#: model:ir.model,name:onlyoffice_odoo.model_res_config_settings
msgid "Config Settings"
msgstr "Parámetros de configuración"
#. module: onlyoffice_odoo
#: model:ir.model.fields,field_description:onlyoffice_odoo.field_res_config_settings__doc_server_demo
msgid "Connect to demo ONLYOFFICE Docs server"
msgstr "Conectarse al servidor demo de ONLYOFFICE Docs"
#. module: onlyoffice_odoo
#. odoo-javascript
#: code:addons/onlyoffice_odoo/static/src/views/form_gallery/form_gallery.xml:0
msgid "Create"
msgstr "Crear"
#. module: onlyoffice_odoo
#: model:ir.model.fields,field_description:onlyoffice_odoo.field_onlyoffice_odoo__create_uid
msgid "Created by"
msgstr "Creado por"
#. module: onlyoffice_odoo
#: model:ir.model.fields,field_description:onlyoffice_odoo.field_onlyoffice_odoo__create_date
msgid "Created on"
msgstr "Creado"
#. module: onlyoffice_odoo
#: model:ir.model.fields,field_description:onlyoffice_odoo.field_res_config_settings__doc_server_disable_certificate
#: model_terms:ir.ui.view,arch_db:onlyoffice_odoo.res_config_settings_view_form
msgid "Disable certificate verification"
msgstr "Desactivar la verificación de certificados"
#. module: onlyoffice_odoo
#: model:ir.model.fields,field_description:onlyoffice_odoo.field_onlyoffice_odoo__display_name
msgid "Display Name"
msgstr "Mostrar nombre"
#. module: onlyoffice_odoo
#. odoo-javascript
#: code:addons/onlyoffice_odoo/static/src/views/form_gallery/form_gallery.xml:0
msgid "Document"
msgstr "Documento"
#. module: onlyoffice_odoo
#: model:ir.model.fields,field_description:onlyoffice_odoo.field_res_config_settings__doc_server_inner_url
msgid "Document Server Inner URL"
msgstr "URL interna del Servidor de documentos"
#. module: onlyoffice_odoo
#: model:ir.model.fields,field_description:onlyoffice_odoo.field_res_config_settings__doc_server_jwt_header
msgid "Document Server JWT Header"
msgstr "Encabezado JWT del Servidor de documentos"
#. module: onlyoffice_odoo
#: model:ir.model.fields,field_description:onlyoffice_odoo.field_res_config_settings__doc_server_jwt_secret
msgid "Document Server JWT Secret"
msgstr "Secreto JWT del Servidor de documentos"
#. module: onlyoffice_odoo
#: model:ir.model.fields,field_description:onlyoffice_odoo.field_res_config_settings__doc_server_public_url
msgid "Document Server Public URL"
msgstr "URL pública del Servidor de Documentos"
#. module: onlyoffice_odoo
#. odoo-python
#: code:addons/onlyoffice_odoo/controllers/controllers.py:0
msgid "Document edited by %(user)s"
msgstr ""
#. module: onlyoffice_odoo
#. odoo-javascript
#: code:addons/onlyoffice_odoo/static/src/views/form_gallery/form_gallery.js:0
msgid "Document templates"
msgstr "Plantillas de documentos"
#. module: onlyoffice_odoo
#. odoo-javascript
#: code:addons/onlyoffice_odoo/static/src/views/form_gallery/form_gallery.js:0
msgid "Error loading forms"
msgstr "Error al cargar los formularios"
#. module: onlyoffice_odoo
#. odoo-javascript
#: code:addons/onlyoffice_odoo/static/src/views/form_gallery/form_gallery.js:0
msgid "Failed to load categories"
msgstr "No se han podido cargar las categorías"
#. module: onlyoffice_odoo
#. odoo-javascript
#: code:addons/onlyoffice_odoo/static/src/views/form_gallery/form_gallery.js:0
msgid "Failed to load forms"
msgstr "No se han podido cargar los formularios"
#. module: onlyoffice_odoo
#. odoo-javascript
#: code:addons/onlyoffice_odoo/static/src/views/form_gallery/form_gallery.xml:0
msgid "Form"
msgstr "Formulario"
#. module: onlyoffice_odoo
#: model_terms:ir.ui.view,arch_db:onlyoffice_odoo.res_config_settings_view_form
msgid "GET NOW"
msgstr "OBTENER AHORA"
#. module: onlyoffice_odoo
#: model_terms:ir.ui.view,arch_db:onlyoffice_odoo.res_config_settings_view_form
msgid "General Settings"
msgstr "Ajustes generales"
#. module: onlyoffice_odoo
#: model:ir.model.fields,field_description:onlyoffice_odoo.field_onlyoffice_odoo__id
msgid "ID"
msgstr "ID"
#. module: onlyoffice_odoo
#: model:ir.model.fields,field_description:onlyoffice_odoo.field_res_config_settings__internal_jwt_secret
msgid "Internal JWT Secret"
msgstr "Secreto JWT interno"
#. module: onlyoffice_odoo
#: model_terms:ir.ui.view,arch_db:onlyoffice_odoo.res_config_settings_view_form
msgid "JWT Header"
msgstr "Encabezado JWT"
#. module: onlyoffice_odoo
#. odoo-javascript
#: code:addons/onlyoffice_odoo/static/src/views/form_gallery/form_gallery.xml:0
msgid "Language"
msgstr "Idioma"
#. module: onlyoffice_odoo
#: model:ir.model.fields,field_description:onlyoffice_odoo.field_onlyoffice_odoo__write_uid
msgid "Last Updated by"
msgstr "Última actualización por"
#. module: onlyoffice_odoo
#: model:ir.model.fields,field_description:onlyoffice_odoo.field_onlyoffice_odoo__write_date
msgid "Last Updated on"
msgstr "Última actualización"
#. module: onlyoffice_odoo
#. odoo-javascript
#: code:addons/onlyoffice_odoo/static/src/views/form_gallery/form_gallery.xml:0
msgid "Loading forms..."
msgstr "Loading forms..."
#. module: onlyoffice_odoo
#. odoo-javascript
#: code:addons/onlyoffice_odoo/static/src/views/form_gallery/form_gallery.xml:0
msgid "No forms found"
msgstr "No se han encontrado formularios"
#. module: onlyoffice_odoo
#: model:ir.model,name:onlyoffice_odoo.model_onlyoffice_odoo
#: model_terms:ir.ui.view,arch_db:onlyoffice_odoo.res_config_settings_view_form
msgid "ONLYOFFICE"
msgstr "ONLYOFFICE"
#. module: onlyoffice_odoo
#: model_terms:ir.ui.view,arch_db:onlyoffice_odoo.res_config_settings_view_form
msgid "ONLYOFFICE Docs address"
msgstr "Dirección de ONLYOFFICE Docs"
#. module: onlyoffice_odoo
#: model_terms:ir.ui.view,arch_db:onlyoffice_odoo.res_config_settings_view_form
msgid "ONLYOFFICE Docs address for internal requests from the server"
msgstr "Dirección de ONLYOFFICE Docs para solicitudes internas desde el servidor"
#. module: onlyoffice_odoo
#: model_terms:ir.ui.view,arch_db:onlyoffice_odoo.res_config_settings_view_form
msgid "ONLYOFFICE Docs secret key"
msgstr "Clave secreta de ONLYOFFICE Docs"
#. module: onlyoffice_odoo
#. odoo-javascript
#: code:addons/onlyoffice_odoo/static/src/models/attachment_card_onlyoffice.js:0
msgid "ONLYOFFICE Docs server"
msgstr "Servidor de ONLYOFFICE Docs"
#. module: onlyoffice_odoo
#: model_terms:ir.ui.view,arch_db:onlyoffice_odoo.res_config_settings_view_form
msgid ""
"ONLYOFFICE Templates requires a properly licensed Document Server connected "
"with Odoo. Contact sales at sales@onlyoffice.com to acquire the proper "
"license."
msgstr "ONLYOFFICE Templates requiere un servidor de documentos con la licencia adecuada conectado a Odoo. Para obtener la licencia adecuada, póngase en contacto con el departamento de ventas a través de sales@onlyoffice.com."
#. module: onlyoffice_odoo
#. odoo-javascript
#: code:addons/onlyoffice_odoo/static/src/actions/documents_action.xml:0
#: model_terms:ir.ui.view,arch_db:onlyoffice_odoo.onlyoffice_editor
msgid "ONLYOFFICE cannot be reached. Please contact admin."
msgstr "ONLYOFFICE no puede ser alcanzado. Por favor, póngase en contacto con el administrador."
#. module: onlyoffice_odoo
#. odoo-javascript
#: code:addons/onlyoffice_odoo/static/src/actions/documents_action.xml:0
#: model_terms:ir.ui.view,arch_db:onlyoffice_odoo.onlyoffice_editor
msgid "ONLYOFFICE logo"
msgstr "Logo de ONLYOFFICE"
#. module: onlyoffice_odoo
#: model:ir.model.fields,field_description:onlyoffice_odoo.field_res_config_settings__doc_server_odoo_url
msgid "Odoo URL"
msgstr "URL de Odoo"
#. module: onlyoffice_odoo
#: model:ir.model.fields,field_description:onlyoffice_odoo.field_res_config_settings__same_tab
#: model_terms:ir.ui.view,arch_db:onlyoffice_odoo.res_config_settings_view_form
msgid "Open file in the same tab"
msgstr "Abrir archivo en la misma pestaña"
#. module: onlyoffice_odoo
#. odoo-javascript
#: code:addons/onlyoffice_odoo/static/src/components/attachment_card_onlyoffice/attachment_card_onlyoffice.xml:0
msgid "Open in ONLYOFFICE"
msgstr "Abrir en ONLYOFFICE"
#. module: onlyoffice_odoo
#: model_terms:ir.ui.view,arch_db:onlyoffice_odoo.res_config_settings_view_form
msgid "Other"
msgstr ""
#. module: onlyoffice_odoo
#. odoo-javascript
#: code:addons/onlyoffice_odoo/static/src/views/form_gallery/form_gallery.xml:0
msgid "Presentation"
msgstr "Presentación"
#. module: onlyoffice_odoo
#. odoo-javascript
#: code:addons/onlyoffice_odoo/static/src/views/form_gallery/form_gallery.xml:0
msgid "Search..."
msgstr "Búsqueda..."
#. module: onlyoffice_odoo
#. odoo-javascript
#: code:addons/onlyoffice_odoo/static/src/views/form_gallery/form_gallery.xml:0
msgid "Select document"
msgstr "Seleccionar documento"
#. module: onlyoffice_odoo
#: model_terms:ir.ui.view,arch_db:onlyoffice_odoo.res_config_settings_view_form
msgid "Server address for internal requests from ONLYOFFICE Docs"
msgstr "Dirección del servidor para solicitudes internas de ONLYOFFICE Docs"
#. module: onlyoffice_odoo
#: model:ir.actions.act_window,name:onlyoffice_odoo.action_onlyoffice_config_settings
msgid "Settings"
msgstr "Ajustes"
#. module: onlyoffice_odoo
#. odoo-javascript
#: code:addons/onlyoffice_odoo/static/src/views/form_gallery/form_gallery.xml:0
msgid "Spreadsheet"
msgstr "Hoja de cálculo"
#. module: onlyoffice_odoo
#. odoo-javascript
#: code:addons/onlyoffice_odoo/static/src/models/attachment_card_onlyoffice.js:0
msgid ""
"The 30-day test period is over, you can no longer connect to demo ONLYOFFICE"
" Docs server"
msgstr "El período de prueba de 30 días ha terminado, ya no se puede conectar al servidor de ONLYOFFICE Docs"
#. module: onlyoffice_odoo
#: model_terms:ir.ui.view,arch_db:onlyoffice_odoo.res_config_settings_view_form
msgid ""
"This app enables creating, editing, and collaborating on fillable forms, "
"office files, and attached documents in Odoo using ONLYOFFICE Docs."
msgstr "Esta aplicación permite crear, editar y colaborar en formularios rellenables, archivos ofimáticos y documentos adjuntos en Odoo utilizando ONLYOFFICE Docs."
#. module: onlyoffice_odoo
#. odoo-javascript
#: code:addons/onlyoffice_odoo/static/src/views/form_gallery/form_gallery.xml:0
msgid "Try changing your search or filters"
msgstr "Intente cambiar su búsqueda o filtros"
#. module: onlyoffice_odoo
#. odoo-javascript
#: code:addons/onlyoffice_odoo/static/src/views/form_gallery/form_gallery.xml:0
msgid "Type"
msgstr "Tipo"
#. module: onlyoffice_odoo
#. odoo-python
#: code:addons/onlyoffice_odoo/controllers/controllers.py:0
msgid "User has no read access rights to open this document"
msgstr "El usuario no tiene derechos de acceso de lectura para abrir este documento"
#. module: onlyoffice_odoo
#. odoo-javascript
#: code:addons/onlyoffice_odoo/static/src/views/form_gallery/form_gallery.xml:0
msgid "View all templates"
msgstr "Ver todas las plantillas"
#. module: onlyoffice_odoo
#: model_terms:ir.ui.view,arch_db:onlyoffice_odoo.res_config_settings_view_form
msgid "Welcome to ONLYOFFICE!"
msgstr "¡Bienvenido/a a ONLYOFFICE!"

View File

@ -0,0 +1,368 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * onlyoffice_odoo
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 18.0+e-20250520\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-11-12 16:18+0000\n"
"PO-Revision-Date: 2025-11-12 16:18+0000\n"
"Last-Translator: \n"
"Language-Team: \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);"
#. module: onlyoffice_odoo
#: model_terms:ir.ui.view,arch_db:onlyoffice_odoo.res_config_settings_view_form
msgid "<i class=\"fa fa-arrow-right\"/> Learn more"
msgstr "<i class=\"fa fa-arrow-right\"/> En savoir plus"
#. module: onlyoffice_odoo
#: model_terms:ir.ui.view,arch_db:onlyoffice_odoo.res_config_settings_view_form
msgid "<i class=\"fa fa-arrow-right\"/> Suggest a feature"
msgstr "<i class=\"fa fa-arrow-right\"/> Suggérer une fonctionnalité"
#. module: onlyoffice_odoo
#: model_terms:ir.ui.view,arch_db:onlyoffice_odoo.res_config_settings_view_form
msgid ""
"<span searchabletext=\"Connect to demo ONLYOFFICE Docs server\">\n"
" Connect to demo ONLYOFFICE Docs server\n"
" </span>"
msgstr ""
"<span searchabletext=\"Connexion au serveur de démonstration ONLYOFFICE Docs\">\n"
" Connexion au serveur de démonstration ONLYOFFICE Docs\n"
" </span>"
#. module: onlyoffice_odoo
#: model_terms:ir.ui.view,arch_db:onlyoffice_odoo.res_config_settings_view_form
msgid ""
"<span searchabletext=\"This is a public test server, please do not use it for private sensitive data. The server will be available during a 30-day period.\">\n"
" This is a public test server, please do not use it for private sensitive data.\n"
" The server will be available during a 30-day period.\n"
" </span>"
msgstr ""
"<span searchabletext=\"Il s'agit d'un serveur de test public, veuillez ne pas l'utiliser pour des données sensibles privées. Le serveur sera disponible pendant une période de 30 jours.\">\n"
" Il s'agit d'un serveur de test public, veuillez ne pas l'utiliser pour des données sensibles privées.\n"
" Le serveur sera disponible pendant une période de 30 jours.\n"
" </span>"
#. module: onlyoffice_odoo
#: model_terms:ir.ui.view,arch_db:onlyoffice_odoo.res_config_settings_view_form
msgid "About"
msgstr "À propos"
#. module: onlyoffice_odoo
#. odoo-javascript
#: code:addons/onlyoffice_odoo/static/src/views/form_gallery/form_gallery.xml:0
msgid "Back"
msgstr "Retour"
#. module: onlyoffice_odoo
#. odoo-javascript
#: code:addons/onlyoffice_odoo/static/src/views/form_gallery/form_gallery.xml:0
msgid "Categories"
msgstr "Catégories"
#. module: onlyoffice_odoo
#: model:ir.model,name:onlyoffice_odoo.model_res_config_settings
msgid "Config Settings"
msgstr "Paramètres de configuration"
#. module: onlyoffice_odoo
#: model:ir.model.fields,field_description:onlyoffice_odoo.field_res_config_settings__doc_server_demo
msgid "Connect to demo ONLYOFFICE Docs server"
msgstr "Connexion au serveur de démonstration ONLYOFFICE Docs"
#. module: onlyoffice_odoo
#. odoo-javascript
#: code:addons/onlyoffice_odoo/static/src/views/form_gallery/form_gallery.xml:0
msgid "Create"
msgstr "Créer"
#. module: onlyoffice_odoo
#: model:ir.model.fields,field_description:onlyoffice_odoo.field_onlyoffice_odoo__create_uid
msgid "Created by"
msgstr "Créé par"
#. module: onlyoffice_odoo
#: model:ir.model.fields,field_description:onlyoffice_odoo.field_onlyoffice_odoo__create_date
msgid "Created on"
msgstr "Créé le"
#. module: onlyoffice_odoo
#: model:ir.model.fields,field_description:onlyoffice_odoo.field_res_config_settings__doc_server_disable_certificate
#: model_terms:ir.ui.view,arch_db:onlyoffice_odoo.res_config_settings_view_form
msgid "Disable certificate verification"
msgstr "Désactiver la vérification du certificat"
#. module: onlyoffice_odoo
#: model:ir.model.fields,field_description:onlyoffice_odoo.field_onlyoffice_odoo__display_name
msgid "Display Name"
msgstr "Afficher le nom"
#. module: onlyoffice_odoo
#. odoo-javascript
#: code:addons/onlyoffice_odoo/static/src/views/form_gallery/form_gallery.xml:0
msgid "Document"
msgstr "Document texte"
#. module: onlyoffice_odoo
#: model:ir.model.fields,field_description:onlyoffice_odoo.field_res_config_settings__doc_server_inner_url
msgid "Document Server Inner URL"
msgstr "URL interne de Document Server"
#. module: onlyoffice_odoo
#: model:ir.model.fields,field_description:onlyoffice_odoo.field_res_config_settings__doc_server_jwt_header
msgid "Document Server JWT Header"
msgstr "En-tête JWT du Document Server"
#. module: onlyoffice_odoo
#: model:ir.model.fields,field_description:onlyoffice_odoo.field_res_config_settings__doc_server_jwt_secret
msgid "Document Server JWT Secret"
msgstr "Secret JWT du Document Server"
#. module: onlyoffice_odoo
#: model:ir.model.fields,field_description:onlyoffice_odoo.field_res_config_settings__doc_server_public_url
msgid "Document Server Public URL"
msgstr "URL public de Document Server"
#. module: onlyoffice_odoo
#. odoo-python
#: code:addons/onlyoffice_odoo/controllers/controllers.py:0
msgid "Document edited by %(user)s"
msgstr ""
#. module: onlyoffice_odoo
#. odoo-javascript
#: code:addons/onlyoffice_odoo/static/src/views/form_gallery/form_gallery.js:0
msgid "Document templates"
msgstr "Modèles de documents"
#. module: onlyoffice_odoo
#. odoo-javascript
#: code:addons/onlyoffice_odoo/static/src/views/form_gallery/form_gallery.js:0
msgid "Error loading forms"
msgstr "Erreur lors du chargement des formulaires"
#. module: onlyoffice_odoo
#. odoo-javascript
#: code:addons/onlyoffice_odoo/static/src/views/form_gallery/form_gallery.js:0
msgid "Failed to load categories"
msgstr "Échec du chargement des catégories"
#. module: onlyoffice_odoo
#. odoo-javascript
#: code:addons/onlyoffice_odoo/static/src/views/form_gallery/form_gallery.js:0
msgid "Failed to load forms"
msgstr "Échec du chargement des formulaires"
#. module: onlyoffice_odoo
#. odoo-javascript
#: code:addons/onlyoffice_odoo/static/src/views/form_gallery/form_gallery.xml:0
msgid "Form"
msgstr "Formulaire"
#. module: onlyoffice_odoo
#: model_terms:ir.ui.view,arch_db:onlyoffice_odoo.res_config_settings_view_form
msgid "GET NOW"
msgstr "OBTENIR MAINTENANT"
#. module: onlyoffice_odoo
#: model_terms:ir.ui.view,arch_db:onlyoffice_odoo.res_config_settings_view_form
msgid "General Settings"
msgstr "Paramètres généraux"
#. module: onlyoffice_odoo
#: model:ir.model.fields,field_description:onlyoffice_odoo.field_onlyoffice_odoo__id
msgid "ID"
msgstr "ID"
#. module: onlyoffice_odoo
#: model:ir.model.fields,field_description:onlyoffice_odoo.field_res_config_settings__internal_jwt_secret
msgid "Internal JWT Secret"
msgstr "Secret JWT interne"
#. module: onlyoffice_odoo
#: model_terms:ir.ui.view,arch_db:onlyoffice_odoo.res_config_settings_view_form
msgid "JWT Header"
msgstr "En-tête JWT"
#. module: onlyoffice_odoo
#. odoo-javascript
#: code:addons/onlyoffice_odoo/static/src/views/form_gallery/form_gallery.xml:0
msgid "Language"
msgstr "Langue"
#. module: onlyoffice_odoo
#: model:ir.model.fields,field_description:onlyoffice_odoo.field_onlyoffice_odoo__write_uid
msgid "Last Updated by"
msgstr "Dernière mise à jour par"
#. module: onlyoffice_odoo
#: model:ir.model.fields,field_description:onlyoffice_odoo.field_onlyoffice_odoo__write_date
msgid "Last Updated on"
msgstr "Dernière mise à jour le"
#. module: onlyoffice_odoo
#. odoo-javascript
#: code:addons/onlyoffice_odoo/static/src/views/form_gallery/form_gallery.xml:0
msgid "Loading forms..."
msgstr "Chargement des formulaires..."
#. module: onlyoffice_odoo
#. odoo-javascript
#: code:addons/onlyoffice_odoo/static/src/views/form_gallery/form_gallery.xml:0
msgid "No forms found"
msgstr "Aucun formulaire trouvé"
#. module: onlyoffice_odoo
#: model:ir.model,name:onlyoffice_odoo.model_onlyoffice_odoo
#: model_terms:ir.ui.view,arch_db:onlyoffice_odoo.res_config_settings_view_form
msgid "ONLYOFFICE"
msgstr "ONLYOFFICE"
#. module: onlyoffice_odoo
#: model_terms:ir.ui.view,arch_db:onlyoffice_odoo.res_config_settings_view_form
msgid "ONLYOFFICE Docs address"
msgstr "Adresse ONLYOFFICE Docs"
#. module: onlyoffice_odoo
#: model_terms:ir.ui.view,arch_db:onlyoffice_odoo.res_config_settings_view_form
msgid "ONLYOFFICE Docs address for internal requests from the server"
msgstr "Adresse ONLYOFFICE Docs pour les requêtes internes depuis le serveur"
#. module: onlyoffice_odoo
#: model_terms:ir.ui.view,arch_db:onlyoffice_odoo.res_config_settings_view_form
msgid "ONLYOFFICE Docs secret key"
msgstr "Clé secrète ONLYOFFICE Docs"
#. module: onlyoffice_odoo
#. odoo-javascript
#: code:addons/onlyoffice_odoo/static/src/models/attachment_card_onlyoffice.js:0
msgid "ONLYOFFICE Docs server"
msgstr "Serveur ONLYOFFICE Docs"
#. module: onlyoffice_odoo
#: model_terms:ir.ui.view,arch_db:onlyoffice_odoo.res_config_settings_view_form
msgid ""
"ONLYOFFICE Templates requires a properly licensed Document Server connected "
"with Odoo. Contact sales at sales@onlyoffice.com to acquire the proper "
"license."
msgstr "ONLYOFFICE Templates nécessite un serveur de documents correctement licencié et connecté à Odoo. Contactez le service des ventes à sales@onlyoffice.com pour obtenir la licence appropriée."
#. module: onlyoffice_odoo
#. odoo-javascript
#: code:addons/onlyoffice_odoo/static/src/actions/documents_action.xml:0
#: model_terms:ir.ui.view,arch_db:onlyoffice_odoo.onlyoffice_editor
msgid "ONLYOFFICE cannot be reached. Please contact admin."
msgstr "ONLYOFFICE n'est pas joignable. Veuillez contacter l'administrateur."
#. module: onlyoffice_odoo
#. odoo-javascript
#: code:addons/onlyoffice_odoo/static/src/actions/documents_action.xml:0
#: model_terms:ir.ui.view,arch_db:onlyoffice_odoo.onlyoffice_editor
msgid "ONLYOFFICE logo"
msgstr "Logo ONLYOFFICE"
#. module: onlyoffice_odoo
#: model:ir.model.fields,field_description:onlyoffice_odoo.field_res_config_settings__doc_server_odoo_url
msgid "Odoo URL"
msgstr "URL de Odoo"
#. module: onlyoffice_odoo
#: model:ir.model.fields,field_description:onlyoffice_odoo.field_res_config_settings__same_tab
#: model_terms:ir.ui.view,arch_db:onlyoffice_odoo.res_config_settings_view_form
msgid "Open file in the same tab"
msgstr "Ouvrir le fichier dans le même onglet"
#. module: onlyoffice_odoo
#. odoo-javascript
#: code:addons/onlyoffice_odoo/static/src/components/attachment_card_onlyoffice/attachment_card_onlyoffice.xml:0
msgid "Open in ONLYOFFICE"
msgstr "Ouvrir dans ONLYOFFICE"
#. module: onlyoffice_odoo
#: model_terms:ir.ui.view,arch_db:onlyoffice_odoo.res_config_settings_view_form
msgid "Other"
msgstr ""
#. module: onlyoffice_odoo
#. odoo-javascript
#: code:addons/onlyoffice_odoo/static/src/views/form_gallery/form_gallery.xml:0
msgid "Presentation"
msgstr "Présentation"
#. module: onlyoffice_odoo
#. odoo-javascript
#: code:addons/onlyoffice_odoo/static/src/views/form_gallery/form_gallery.xml:0
msgid "Search..."
msgstr "Recherche..."
#. module: onlyoffice_odoo
#. odoo-javascript
#: code:addons/onlyoffice_odoo/static/src/views/form_gallery/form_gallery.xml:0
msgid "Select document"
msgstr "Sélectionner un document"
#. module: onlyoffice_odoo
#: model_terms:ir.ui.view,arch_db:onlyoffice_odoo.res_config_settings_view_form
msgid "Server address for internal requests from ONLYOFFICE Docs"
msgstr "Adresse du serveur pour les requêtes internes depuis ONLYOFFICE Docs"
#. module: onlyoffice_odoo
#: model:ir.actions.act_window,name:onlyoffice_odoo.action_onlyoffice_config_settings
msgid "Settings"
msgstr "Paramètres"
#. module: onlyoffice_odoo
#. odoo-javascript
#: code:addons/onlyoffice_odoo/static/src/views/form_gallery/form_gallery.xml:0
msgid "Spreadsheet"
msgstr "Feuille de calcul"
#. module: onlyoffice_odoo
#. odoo-javascript
#: code:addons/onlyoffice_odoo/static/src/models/attachment_card_onlyoffice.js:0
msgid ""
"The 30-day test period is over, you can no longer connect to demo ONLYOFFICE"
" Docs server"
msgstr "La période de test de 30 jours est terminée, vous ne pouvez plus vous connecter à la démo ONLYOFFICE Serveur Docs"
#. module: onlyoffice_odoo
#: model_terms:ir.ui.view,arch_db:onlyoffice_odoo.res_config_settings_view_form
msgid ""
"This app enables creating, editing, and collaborating on fillable forms, "
"office files, and attached documents in Odoo using ONLYOFFICE Docs."
msgstr "Cette application permet de créer, modifier et coéditer des formulaires à remplir, des fichiers bureautiques et des documents joints dans Odoo à l'aide d'ONLYOFFICE Docs."
#. module: onlyoffice_odoo
#. odoo-javascript
#: code:addons/onlyoffice_odoo/static/src/views/form_gallery/form_gallery.xml:0
msgid "Try changing your search or filters"
msgstr "Essayez de modifier votre recherche ou vos filtres"
#. module: onlyoffice_odoo
#. odoo-javascript
#: code:addons/onlyoffice_odoo/static/src/views/form_gallery/form_gallery.xml:0
msgid "Type"
msgstr "Type"
#. module: onlyoffice_odoo
#. odoo-python
#: code:addons/onlyoffice_odoo/controllers/controllers.py:0
msgid "User has no read access rights to open this document"
msgstr "L'utilisateur n'a pas les droits d'accès en lecture pour ouvrir ce document"
#. module: onlyoffice_odoo
#. odoo-javascript
#: code:addons/onlyoffice_odoo/static/src/views/form_gallery/form_gallery.xml:0
msgid "View all templates"
msgstr "Voir tous les modèles"
#. module: onlyoffice_odoo
#: model_terms:ir.ui.view,arch_db:onlyoffice_odoo.res_config_settings_view_form
msgid "Welcome to ONLYOFFICE!"
msgstr "Bienvenue dans ONLYOFFICE !"

View File

@ -0,0 +1,368 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * onlyoffice_odoo
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 18.0+e-20250520\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-11-12 16:18+0000\n"
"PO-Revision-Date: 2025-11-12 16:18+0000\n"
"Last-Translator: \n"
"Language-Team: \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);"
#. module: onlyoffice_odoo
#: model_terms:ir.ui.view,arch_db:onlyoffice_odoo.res_config_settings_view_form
msgid "<i class=\"fa fa-arrow-right\"/> Learn more"
msgstr "<i class=\"fa fa-arrow-right\"/> Scopri di più"
#. module: onlyoffice_odoo
#: model_terms:ir.ui.view,arch_db:onlyoffice_odoo.res_config_settings_view_form
msgid "<i class=\"fa fa-arrow-right\"/> Suggest a feature"
msgstr "<i class=\"fa fa-arrow-right\"/> Suggerisci una funzione"
#. module: onlyoffice_odoo
#: model_terms:ir.ui.view,arch_db:onlyoffice_odoo.res_config_settings_view_form
msgid ""
"<span searchabletext=\"Connect to demo ONLYOFFICE Docs server\">\n"
" Connect to demo ONLYOFFICE Docs server\n"
" </span>"
msgstr ""
"<span searchabletext=\"Connessione al server demo ONLYOFFICE Docs\">\n"
" Connessione al server demo ONLYOFFICE Docs\n"
" </span>"
#. module: onlyoffice_odoo
#: model_terms:ir.ui.view,arch_db:onlyoffice_odoo.res_config_settings_view_form
msgid ""
"<span searchabletext=\"This is a public test server, please do not use it for private sensitive data. The server will be available during a 30-day period.\">\n"
" This is a public test server, please do not use it for private sensitive data.\n"
" The server will be available during a 30-day period.\n"
" </span>"
msgstr ""
"<span searchabletext=\"Questo è un server di test pubblico, si prega di non usarlo per dati privati e sensibili. Il server sarà disponibile per un periodo di 30 giorni.\">\n"
" Questo è un server di test pubblico, si prega di non usarlo per dati privati e sensibili.\n"
" Il server sarà disponibile per un periodo di 30 giorni.\n"
" </span>"
#. module: onlyoffice_odoo
#: model_terms:ir.ui.view,arch_db:onlyoffice_odoo.res_config_settings_view_form
msgid "About"
msgstr "Informazioni"
#. module: onlyoffice_odoo
#. odoo-javascript
#: code:addons/onlyoffice_odoo/static/src/views/form_gallery/form_gallery.xml:0
msgid "Back"
msgstr "Indietro"
#. module: onlyoffice_odoo
#. odoo-javascript
#: code:addons/onlyoffice_odoo/static/src/views/form_gallery/form_gallery.xml:0
msgid "Categories"
msgstr "Categorie"
#. module: onlyoffice_odoo
#: model:ir.model,name:onlyoffice_odoo.model_res_config_settings
msgid "Config Settings"
msgstr "Impostazioni di configurazione"
#. module: onlyoffice_odoo
#: model:ir.model.fields,field_description:onlyoffice_odoo.field_res_config_settings__doc_server_demo
msgid "Connect to demo ONLYOFFICE Docs server"
msgstr "Connessione al server demo ONLYOFFICE Docs"
#. module: onlyoffice_odoo
#. odoo-javascript
#: code:addons/onlyoffice_odoo/static/src/views/form_gallery/form_gallery.xml:0
msgid "Create"
msgstr "Crea"
#. module: onlyoffice_odoo
#: model:ir.model.fields,field_description:onlyoffice_odoo.field_onlyoffice_odoo__create_uid
msgid "Created by"
msgstr "Creato da"
#. module: onlyoffice_odoo
#: model:ir.model.fields,field_description:onlyoffice_odoo.field_onlyoffice_odoo__create_date
msgid "Created on"
msgstr "Creato il"
#. module: onlyoffice_odoo
#: model:ir.model.fields,field_description:onlyoffice_odoo.field_res_config_settings__doc_server_disable_certificate
#: model_terms:ir.ui.view,arch_db:onlyoffice_odoo.res_config_settings_view_form
msgid "Disable certificate verification"
msgstr "Disabilita verifica certificato"
#. module: onlyoffice_odoo
#: model:ir.model.fields,field_description:onlyoffice_odoo.field_onlyoffice_odoo__display_name
msgid "Display Name"
msgstr "Visualizza nome"
#. module: onlyoffice_odoo
#. odoo-javascript
#: code:addons/onlyoffice_odoo/static/src/views/form_gallery/form_gallery.xml:0
msgid "Document"
msgstr "Documento"
#. module: onlyoffice_odoo
#: model:ir.model.fields,field_description:onlyoffice_odoo.field_res_config_settings__doc_server_inner_url
msgid "Document Server Inner URL"
msgstr "URL interno del server dei documenti"
#. module: onlyoffice_odoo
#: model:ir.model.fields,field_description:onlyoffice_odoo.field_res_config_settings__doc_server_jwt_header
msgid "Document Server JWT Header"
msgstr "Intestazione JWT del Document Server"
#. module: onlyoffice_odoo
#: model:ir.model.fields,field_description:onlyoffice_odoo.field_res_config_settings__doc_server_jwt_secret
msgid "Document Server JWT Secret"
msgstr "Segreto JWT del Document Server"
#. module: onlyoffice_odoo
#: model:ir.model.fields,field_description:onlyoffice_odoo.field_res_config_settings__doc_server_public_url
msgid "Document Server Public URL"
msgstr "URL pubblico del server dei documenti"
#. module: onlyoffice_odoo
#. odoo-python
#: code:addons/onlyoffice_odoo/controllers/controllers.py:0
msgid "Document edited by %(user)s"
msgstr ""
#. module: onlyoffice_odoo
#. odoo-javascript
#: code:addons/onlyoffice_odoo/static/src/views/form_gallery/form_gallery.js:0
msgid "Document templates"
msgstr "Modelli di documento"
#. module: onlyoffice_odoo
#. odoo-javascript
#: code:addons/onlyoffice_odoo/static/src/views/form_gallery/form_gallery.js:0
msgid "Error loading forms"
msgstr "Errore durante il caricamento dei moduli"
#. module: onlyoffice_odoo
#. odoo-javascript
#: code:addons/onlyoffice_odoo/static/src/views/form_gallery/form_gallery.js:0
msgid "Failed to load categories"
msgstr "Impossibile caricare le categorie"
#. module: onlyoffice_odoo
#. odoo-javascript
#: code:addons/onlyoffice_odoo/static/src/views/form_gallery/form_gallery.js:0
msgid "Failed to load forms"
msgstr "Impossibile caricare i moduli"
#. module: onlyoffice_odoo
#. odoo-javascript
#: code:addons/onlyoffice_odoo/static/src/views/form_gallery/form_gallery.xml:0
msgid "Form"
msgstr "Modulo"
#. module: onlyoffice_odoo
#: model_terms:ir.ui.view,arch_db:onlyoffice_odoo.res_config_settings_view_form
msgid "GET NOW"
msgstr "OTTIENI ORA"
#. module: onlyoffice_odoo
#: model_terms:ir.ui.view,arch_db:onlyoffice_odoo.res_config_settings_view_form
msgid "General Settings"
msgstr "Impostazioni generali"
#. module: onlyoffice_odoo
#: model:ir.model.fields,field_description:onlyoffice_odoo.field_onlyoffice_odoo__id
msgid "ID"
msgstr "ID"
#. module: onlyoffice_odoo
#: model:ir.model.fields,field_description:onlyoffice_odoo.field_res_config_settings__internal_jwt_secret
msgid "Internal JWT Secret"
msgstr "Segreto JWT interno"
#. module: onlyoffice_odoo
#: model_terms:ir.ui.view,arch_db:onlyoffice_odoo.res_config_settings_view_form
msgid "JWT Header"
msgstr "Intestazione JWT"
#. module: onlyoffice_odoo
#. odoo-javascript
#: code:addons/onlyoffice_odoo/static/src/views/form_gallery/form_gallery.xml:0
msgid "Language"
msgstr "Lingua"
#. module: onlyoffice_odoo
#: model:ir.model.fields,field_description:onlyoffice_odoo.field_onlyoffice_odoo__write_uid
msgid "Last Updated by"
msgstr "Ultimo aggiornamento effettuato da"
#. module: onlyoffice_odoo
#: model:ir.model.fields,field_description:onlyoffice_odoo.field_onlyoffice_odoo__write_date
msgid "Last Updated on"
msgstr "Ultimo aggiornamento effettuato il"
#. module: onlyoffice_odoo
#. odoo-javascript
#: code:addons/onlyoffice_odoo/static/src/views/form_gallery/form_gallery.xml:0
msgid "Loading forms..."
msgstr "Caricamento moduli..."
#. module: onlyoffice_odoo
#. odoo-javascript
#: code:addons/onlyoffice_odoo/static/src/views/form_gallery/form_gallery.xml:0
msgid "No forms found"
msgstr "Nessun modulo trovato"
#. module: onlyoffice_odoo
#: model:ir.model,name:onlyoffice_odoo.model_onlyoffice_odoo
#: model_terms:ir.ui.view,arch_db:onlyoffice_odoo.res_config_settings_view_form
msgid "ONLYOFFICE"
msgstr "ONLYOFFICE"
#. module: onlyoffice_odoo
#: model_terms:ir.ui.view,arch_db:onlyoffice_odoo.res_config_settings_view_form
msgid "ONLYOFFICE Docs address"
msgstr "Indirizzo di ONLYOFFICE Docs"
#. module: onlyoffice_odoo
#: model_terms:ir.ui.view,arch_db:onlyoffice_odoo.res_config_settings_view_form
msgid "ONLYOFFICE Docs address for internal requests from the server"
msgstr "Indirizzo di ONLYOFFICE Docs per richieste interne dal server"
#. module: onlyoffice_odoo
#: model_terms:ir.ui.view,arch_db:onlyoffice_odoo.res_config_settings_view_form
msgid "ONLYOFFICE Docs secret key"
msgstr "Chiave segreta di ONLYOFFICE Docs"
#. module: onlyoffice_odoo
#. odoo-javascript
#: code:addons/onlyoffice_odoo/static/src/models/attachment_card_onlyoffice.js:0
msgid "ONLYOFFICE Docs server"
msgstr "Server ONLYOFFICE Docs"
#. module: onlyoffice_odoo
#: model_terms:ir.ui.view,arch_db:onlyoffice_odoo.res_config_settings_view_form
msgid ""
"ONLYOFFICE Templates requires a properly licensed Document Server connected "
"with Odoo. Contact sales at sales@onlyoffice.com to acquire the proper "
"license."
msgstr "ONLYOFFICE Templates richiede un Document Server con licenza valida collegato a Odoo. Contatta il reparto vendite allindirizzo sales@onlyoffice.com per ottenere una licenza adeguata."
#. module: onlyoffice_odoo
#. odoo-javascript
#: code:addons/onlyoffice_odoo/static/src/actions/documents_action.xml:0
#: model_terms:ir.ui.view,arch_db:onlyoffice_odoo.onlyoffice_editor
msgid "ONLYOFFICE cannot be reached. Please contact admin."
msgstr "ONLYOFFICE non può essere raggiunto. Si prega di contattare l'amministratore."
#. module: onlyoffice_odoo
#. odoo-javascript
#: code:addons/onlyoffice_odoo/static/src/actions/documents_action.xml:0
#: model_terms:ir.ui.view,arch_db:onlyoffice_odoo.onlyoffice_editor
msgid "ONLYOFFICE logo"
msgstr "Logo di ONLYOFFICE"
#. module: onlyoffice_odoo
#: model:ir.model.fields,field_description:onlyoffice_odoo.field_res_config_settings__doc_server_odoo_url
msgid "Odoo URL"
msgstr "URL di Odoo"
#. module: onlyoffice_odoo
#: model:ir.model.fields,field_description:onlyoffice_odoo.field_res_config_settings__same_tab
#: model_terms:ir.ui.view,arch_db:onlyoffice_odoo.res_config_settings_view_form
msgid "Open file in the same tab"
msgstr "Apri il file nella stessa scheda"
#. module: onlyoffice_odoo
#. odoo-javascript
#: code:addons/onlyoffice_odoo/static/src/components/attachment_card_onlyoffice/attachment_card_onlyoffice.xml:0
msgid "Open in ONLYOFFICE"
msgstr "Aprire in ONLYOFFICE"
#. module: onlyoffice_odoo
#: model_terms:ir.ui.view,arch_db:onlyoffice_odoo.res_config_settings_view_form
msgid "Other"
msgstr ""
#. module: onlyoffice_odoo
#. odoo-javascript
#: code:addons/onlyoffice_odoo/static/src/views/form_gallery/form_gallery.xml:0
msgid "Presentation"
msgstr "Presentazione"
#. module: onlyoffice_odoo
#. odoo-javascript
#: code:addons/onlyoffice_odoo/static/src/views/form_gallery/form_gallery.xml:0
msgid "Search..."
msgstr "Cerca..."
#. module: onlyoffice_odoo
#. odoo-javascript
#: code:addons/onlyoffice_odoo/static/src/views/form_gallery/form_gallery.xml:0
msgid "Select document"
msgstr "Seleziona documento"
#. module: onlyoffice_odoo
#: model_terms:ir.ui.view,arch_db:onlyoffice_odoo.res_config_settings_view_form
msgid "Server address for internal requests from ONLYOFFICE Docs"
msgstr "Indirizzo del server per richieste interne da ONLYOFFICE Docs"
#. module: onlyoffice_odoo
#: model:ir.actions.act_window,name:onlyoffice_odoo.action_onlyoffice_config_settings
msgid "Settings"
msgstr "Impostazioni"
#. module: onlyoffice_odoo
#. odoo-javascript
#: code:addons/onlyoffice_odoo/static/src/views/form_gallery/form_gallery.xml:0
msgid "Spreadsheet"
msgstr "Foglio di calcolo"
#. module: onlyoffice_odoo
#. odoo-javascript
#: code:addons/onlyoffice_odoo/static/src/models/attachment_card_onlyoffice.js:0
msgid ""
"The 30-day test period is over, you can no longer connect to demo ONLYOFFICE"
" Docs server"
msgstr "Il periodo di prova di 30 giorni è terminato, non puoi più connetterti alla demo ONLYOFFICE Docs Server"
#. module: onlyoffice_odoo
#: model_terms:ir.ui.view,arch_db:onlyoffice_odoo.res_config_settings_view_form
msgid ""
"This app enables creating, editing, and collaborating on fillable forms, "
"office files, and attached documents in Odoo using ONLYOFFICE Docs."
msgstr "Questa app consente di creare, modificare e collaborare su moduli compilabili, file office e documenti allegati in Odoo usando ONLYOFFICE Docs."
#. module: onlyoffice_odoo
#. odoo-javascript
#: code:addons/onlyoffice_odoo/static/src/views/form_gallery/form_gallery.xml:0
msgid "Try changing your search or filters"
msgstr "Prova a cambiare la ricerca o i filtri"
#. module: onlyoffice_odoo
#. odoo-javascript
#: code:addons/onlyoffice_odoo/static/src/views/form_gallery/form_gallery.xml:0
msgid "Type"
msgstr "Tipo"
#. module: onlyoffice_odoo
#. odoo-python
#: code:addons/onlyoffice_odoo/controllers/controllers.py:0
msgid "User has no read access rights to open this document"
msgstr "Lutente non ha i diritti di lettura per aprire questo documento"
#. module: onlyoffice_odoo
#. odoo-javascript
#: code:addons/onlyoffice_odoo/static/src/views/form_gallery/form_gallery.xml:0
msgid "View all templates"
msgstr "Visualizza tutti i modelli"
#. module: onlyoffice_odoo
#: model_terms:ir.ui.view,arch_db:onlyoffice_odoo.res_config_settings_view_form
msgid "Welcome to ONLYOFFICE!"
msgstr "Benvenuto in ONLYOFFICE!"

View File

@ -0,0 +1,379 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * onlyoffice_odoo
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 18.0+e-20250520\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-11-12 16:18+0000\n"
"PO-Revision-Date: 2025-11-12 16:18+0000\n"
"Last-Translator: \n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: nplurals=1; plural=0;"
#. module: onlyoffice_odoo
#: model_terms:ir.ui.view,arch_db:onlyoffice_odoo.res_config_settings_view_form
msgid "<i class=\"fa fa-arrow-right\"/> Learn more"
msgstr "<i class=\"fa fa-arrow-right\"/> 詳細を見る"
#. module: onlyoffice_odoo
#: model_terms:ir.ui.view,arch_db:onlyoffice_odoo.res_config_settings_view_form
msgid "<i class=\"fa fa-arrow-right\"/> Suggest a feature"
msgstr "<i class=\"fa fa-arrow-right\"/> 機能を提案"
#. module: onlyoffice_odoo
#: model_terms:ir.ui.view,arch_db:onlyoffice_odoo.res_config_settings_view_form
msgid ""
"<span searchabletext=\"Connect to demo ONLYOFFICE Docs server\">\n"
" Connect to demo ONLYOFFICE Docs server\n"
" </span>"
msgstr ""
"<span searchabletext=\"ONLYOFFICE Docsのデモサーバーへの接続\">\n"
" ONLYOFFICE Docsのデモサーバーへの接続\n"
" </span>"
#. module: onlyoffice_odoo
#: model_terms:ir.ui.view,arch_db:onlyoffice_odoo.res_config_settings_view_form
msgid ""
"<span searchabletext=\"This is a public test server, please do not use it for private sensitive data. The server will be available during a 30-day period.\">\n"
" This is a public test server, please do not use it for private sensitive data.\n"
" The server will be available during a 30-day period.\n"
" </span>"
msgstr ""
"<span searchabletext=\"このサーバーは公開テストサーバーですので、個人の機密データには使用しないでください。このサーバーは30日間利用可能です。\">\n"
" このサーバーは公開テストサーバーですので、個人の機密データには使用しないでください。このサーバーは30日間利用可能です。\n"
" </span>"
#. module: onlyoffice_odoo
#: model_terms:ir.ui.view,arch_db:onlyoffice_odoo.res_config_settings_view_form
msgid "About"
msgstr "概要"
#. module: onlyoffice_odoo
#. odoo-javascript
#: code:addons/onlyoffice_odoo/static/src/views/form_gallery/form_gallery.xml:0
msgid "Back"
msgstr "戻る"
#. module: onlyoffice_odoo
#. odoo-javascript
#: code:addons/onlyoffice_odoo/static/src/views/form_gallery/form_gallery.xml:0
msgid "Categories"
msgstr "カテゴリ"
#. module: onlyoffice_odoo
#: model_terms:ir.ui.view,arch_db:onlyoffice_odoo.res_config_settings_view_form
msgid "Common settings"
msgstr "共通設定"
#. module: onlyoffice_odoo
#: model:ir.model,name:onlyoffice_odoo.model_res_config_settings
msgid "Config Settings"
msgstr "構成の設定"
#. module: onlyoffice_odoo
#: model:ir.model.fields,field_description:onlyoffice_odoo.field_res_config_settings__doc_server_demo
msgid "Connect to demo ONLYOFFICE Docs server"
msgstr "ONLYOFFICE Docsのデモサーバーへの接続"
#. module: onlyoffice_odoo
#. odoo-javascript
#: code:addons/onlyoffice_odoo/static/src/views/form_gallery/form_gallery.xml:0
msgid "Create"
msgstr "作成"
#. module: onlyoffice_odoo
#: model:ir.model.fields,field_description:onlyoffice_odoo.field_onlyoffice_odoo__create_uid
msgid "Created by"
msgstr "作成者"
#. module: onlyoffice_odoo
#: model:ir.model.fields,field_description:onlyoffice_odoo.field_onlyoffice_odoo__create_date
msgid "Created on"
msgstr "作成日"
#. module: onlyoffice_odoo
#: model:ir.model.fields,field_description:onlyoffice_odoo.field_res_config_settings__doc_server_disable_certificate
#: model_terms:ir.ui.view,arch_db:onlyoffice_odoo.res_config_settings_view_form
msgid "Disable certificate verification"
msgstr "証明書検証を無効化"
#. module: onlyoffice_odoo
#: model:ir.model.fields,field_description:onlyoffice_odoo.field_onlyoffice_odoo__display_name
msgid "Display Name"
msgstr "表示名"
#. module: onlyoffice_odoo
#. odoo-javascript
#: code:addons/onlyoffice_odoo/static/src/views/form_gallery/form_gallery.xml:0
msgid "Document"
msgstr "ドキュメント"
#. module: onlyoffice_odoo
#: model:ir.model.fields,field_description:onlyoffice_odoo.field_res_config_settings__doc_server_inner_url
msgid "Document Server Inner URL"
msgstr "ドキュメントサーバ内部URL"
#. module: onlyoffice_odoo
#: model:ir.model.fields,field_description:onlyoffice_odoo.field_res_config_settings__doc_server_jwt_header
msgid "Document Server JWT Header"
msgstr "Document ServerのJWTヘッダー"
#. module: onlyoffice_odoo
#: model:ir.model.fields,field_description:onlyoffice_odoo.field_res_config_settings__doc_server_jwt_secret
msgid "Document Server JWT Secret"
msgstr "Document ServerのJWTシクレット"
#. module: onlyoffice_odoo
#: model:ir.model.fields,field_description:onlyoffice_odoo.field_res_config_settings__doc_server_public_url
msgid "Document Server Public URL"
msgstr "ドキュメントサーバ公開URL"
#. module: onlyoffice_odoo
#. odoo-python
#: code:addons/onlyoffice_odoo/controllers/controllers.py:0
msgid "Document edited by %(user)s"
msgstr ""
#. module: onlyoffice_odoo
#. odoo-javascript
#: code:addons/onlyoffice_odoo/static/src/views/form_gallery/form_gallery.js:0
msgid "Document templates"
msgstr "ドキュメントテンプレート"
#. module: onlyoffice_odoo
#. odoo-javascript
#: code:addons/onlyoffice_odoo/static/src/views/form_gallery/form_gallery.js:0
msgid "Error loading forms"
msgstr "フォームの読み込みエラー"
#. module: onlyoffice_odoo
#. odoo-javascript
#: code:addons/onlyoffice_odoo/static/src/views/form_gallery/form_gallery.js:0
msgid "Failed to load categories"
msgstr "カテゴリの読み込みに失敗しました"
#. module: onlyoffice_odoo
#. odoo-javascript
#: code:addons/onlyoffice_odoo/static/src/views/form_gallery/form_gallery.js:0
msgid "Failed to load forms"
msgstr "フォームの読み込みに失敗しました"
#. module: onlyoffice_odoo
#. odoo-javascript
#: code:addons/onlyoffice_odoo/static/src/views/form_gallery/form_gallery.xml:0
msgid "Form"
msgstr "フォーム"
#. module: onlyoffice_odoo
#: model_terms:ir.ui.view,arch_db:onlyoffice_odoo.res_config_settings_view_form
msgid "GET NOW"
msgstr "今すぐ入手"
#. module: onlyoffice_odoo
#: model_terms:ir.ui.view,arch_db:onlyoffice_odoo.res_config_settings_view_form
msgid "General Settings"
msgstr "一般設定"
#. module: onlyoffice_odoo
#: model:ir.model.fields,field_description:onlyoffice_odoo.field_onlyoffice_odoo__id
msgid "ID"
msgstr "ID"
#. module: onlyoffice_odoo
#: model:ir.model.fields,field_description:onlyoffice_odoo.field_res_config_settings__internal_jwt_secret
msgid "Internal JWT Secret"
msgstr "内部JWTシクレット"
#. module: onlyoffice_odoo
#: model_terms:ir.ui.view,arch_db:onlyoffice_odoo.res_config_settings_view_form
msgid "JWT Header"
msgstr "JWTヘッダー"
#. module: onlyoffice_odoo
#. odoo-javascript
#: code:addons/onlyoffice_odoo/static/src/views/form_gallery/form_gallery.xml:0
msgid "Language"
msgstr "言語"
#. module: onlyoffice_odoo
#: model:ir.model.fields,field_description:onlyoffice_odoo.field_onlyoffice_odoo__write_uid
msgid "Last Updated by"
msgstr "最終更新したユーザー"
#. module: onlyoffice_odoo
#: model:ir.model.fields,field_description:onlyoffice_odoo.field_onlyoffice_odoo__write_date
msgid "Last Updated on"
msgstr "最終更新日"
#. module: onlyoffice_odoo
#. odoo-javascript
#: code:addons/onlyoffice_odoo/static/src/views/form_gallery/form_gallery.xml:0
msgid "Loading forms..."
msgstr "フォームを読み込み中..."
#. module: onlyoffice_odoo
#. odoo-javascript
#: code:addons/onlyoffice_odoo/static/src/views/form_gallery/form_gallery.xml:0
msgid "No forms found"
msgstr "フォームが見つかりません"
#. module: onlyoffice_odoo
#: model:ir.model,name:onlyoffice_odoo.model_onlyoffice_odoo
#: model_terms:ir.ui.view,arch_db:onlyoffice_odoo.res_config_settings_view_form
msgid "ONLYOFFICE"
msgstr "ONLYOFFICE"
#. module: onlyoffice_odoo
#: model_terms:ir.ui.view,arch_db:onlyoffice_odoo.res_config_settings_view_form
msgid "ONLYOFFICE Docs address"
msgstr "ONLYOFFICE Docsアドレス"
#. module: onlyoffice_odoo
#: model_terms:ir.ui.view,arch_db:onlyoffice_odoo.res_config_settings_view_form
msgid "ONLYOFFICE Docs address for internal requests from the server"
msgstr "サーバーからの内部リクエスト用ONLYOFFICE Docsアドレス"
#. module: onlyoffice_odoo
#: model_terms:ir.ui.view,arch_db:onlyoffice_odoo.res_config_settings_view_form
msgid "ONLYOFFICE Docs secret key"
msgstr "ONLYOFFICE Docsシークレットキー"
#. module: onlyoffice_odoo
#. odoo-javascript
#: code:addons/onlyoffice_odoo/static/src/models/attachment_card_onlyoffice.js:0
msgid "ONLYOFFICE Docs server"
msgstr "ONLYOFFICE Docsサーバ"
#. module: onlyoffice_odoo
#: model_terms:ir.ui.view,arch_db:onlyoffice_odoo.res_config_settings_view_form
msgid ""
"ONLYOFFICE Templates requires a properly licensed Document Server connected "
"with Odoo. Contact sales at sales@onlyoffice.com to acquire the proper "
"license."
msgstr "ONLYOFFICEテンプレートを使用するには、Odooと接続された適切なライセンスを持つドキュメントサーバーが必要です。ライセンスを取得するには、sales@onlyoffice.comまでお問い合わせください。"
#. module: onlyoffice_odoo
#. odoo-javascript
#: code:addons/onlyoffice_odoo/static/src/actions/documents_action.xml:0
#: model_terms:ir.ui.view,arch_db:onlyoffice_odoo.onlyoffice_editor
msgid "ONLYOFFICE cannot be reached. Please contact admin."
msgstr "ONLYOFFICEにアクセスできません。管理者にご連絡ください。"
#. module: onlyoffice_odoo
#. odoo-javascript
#: code:addons/onlyoffice_odoo/static/src/actions/documents_action.xml:0
#: model_terms:ir.ui.view,arch_db:onlyoffice_odoo.onlyoffice_editor
msgid "ONLYOFFICE logo"
msgstr "ONLYOFFICEロゴ"
#. module: onlyoffice_odoo
#: model:ir.model.fields,field_description:onlyoffice_odoo.field_res_config_settings__doc_server_odoo_url
msgid "Odoo URL"
msgstr "Odoo URL"
#. module: onlyoffice_odoo
#: model_terms:ir.ui.view,arch_db:onlyoffice_odoo.res_config_settings_view_form
msgid "Only use when accessing Document Server with a self-signed certificate"
msgstr "自己署名証明書使用時のみ有効"
#. module: onlyoffice_odoo
#: model:ir.model.fields,field_description:onlyoffice_odoo.field_res_config_settings__same_tab
#: model_terms:ir.ui.view,arch_db:onlyoffice_odoo.res_config_settings_view_form
msgid "Open file in the same tab"
msgstr "同じタブでファイルを開く"
#. module: onlyoffice_odoo
#. odoo-javascript
#: code:addons/onlyoffice_odoo/static/src/components/attachment_card_onlyoffice/attachment_card_onlyoffice.xml:0
msgid "Open in ONLYOFFICE"
msgstr "ONLYOFFICEで開く"
#. module: onlyoffice_odoo
#: model_terms:ir.ui.view,arch_db:onlyoffice_odoo.res_config_settings_view_form
msgid "Other"
msgstr "その他"
#. module: onlyoffice_odoo
#. odoo-javascript
#: code:addons/onlyoffice_odoo/static/src/views/form_gallery/form_gallery.xml:0
msgid "Presentation"
msgstr "プレゼンテーション"
#. module: onlyoffice_odoo
#. odoo-javascript
#: code:addons/onlyoffice_odoo/static/src/views/form_gallery/form_gallery.xml:0
msgid "Search..."
msgstr "検索..."
#. module: onlyoffice_odoo
#. odoo-javascript
#: code:addons/onlyoffice_odoo/static/src/views/form_gallery/form_gallery.xml:0
msgid "Select document"
msgstr "ドキュメントを選択"
#. module: onlyoffice_odoo
#: model_terms:ir.ui.view,arch_db:onlyoffice_odoo.res_config_settings_view_form
msgid "Server address for internal requests from ONLYOFFICE Docs"
msgstr "ONLYOFFICE Docsからの内部リクエスト用サーバーアドレス"
#. module: onlyoffice_odoo
#: model:ir.actions.act_window,name:onlyoffice_odoo.action_onlyoffice_config_settings
msgid "Settings"
msgstr "設定"
#. module: onlyoffice_odoo
#. odoo-javascript
#: code:addons/onlyoffice_odoo/static/src/views/form_gallery/form_gallery.xml:0
msgid "Spreadsheet"
msgstr "スプレッドシート"
#. module: onlyoffice_odoo
#. odoo-javascript
#: code:addons/onlyoffice_odoo/static/src/models/attachment_card_onlyoffice.js:0
msgid ""
"The 30-day test period is over, you can no longer connect to demo ONLYOFFICE"
" Docs server"
msgstr "30日間のテスト期間が終了し、ONLYOFFICE Docsのデモサーバーに接続できなくなりました"
#. module: onlyoffice_odoo
#: model_terms:ir.ui.view,arch_db:onlyoffice_odoo.res_config_settings_view_form
msgid ""
"This app enables creating, editing, and collaborating on fillable forms, "
"office files, and attached documents in Odoo using ONLYOFFICE Docs."
msgstr ""
"このアプリを使用すると、Odoo内でONLYOFFICE Docsを使って、入力可能なフォームや"
"オフィスファイル、添付ドキュメントを作成・編集・共同編集できます。"
#. module: onlyoffice_odoo
#. odoo-javascript
#: code:addons/onlyoffice_odoo/static/src/views/form_gallery/form_gallery.xml:0
msgid "Try changing your search or filters"
msgstr "検索条件やフィルターを変更してみてください"
#. module: onlyoffice_odoo
#. odoo-javascript
#: code:addons/onlyoffice_odoo/static/src/views/form_gallery/form_gallery.xml:0
msgid "Type"
msgstr "種類"
#. module: onlyoffice_odoo
#. odoo-python
#: code:addons/onlyoffice_odoo/controllers/controllers.py:0
msgid "User has no read access rights to open this document"
msgstr "ユーザーにはこのドキュメントを開く権限がありません"
#. module: onlyoffice_odoo
#. odoo-javascript
#: code:addons/onlyoffice_odoo/static/src/views/form_gallery/form_gallery.xml:0
msgid "View all templates"
msgstr "すべてのテンプレートを見る"
#. module: onlyoffice_odoo
#: model_terms:ir.ui.view,arch_db:onlyoffice_odoo.res_config_settings_view_form
msgid "Welcome to ONLYOFFICE!"
msgstr "ONLYOFFICEへようこそ"

View File

@ -0,0 +1,367 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * onlyoffice_odoo
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 18.0+e-20250520\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-11-12 16:18+0000\n"
"PO-Revision-Date: 2025-11-12 16:18+0000\n"
"Last-Translator: \n"
"Language-Team: \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);"
#. module: onlyoffice_odoo
#: model_terms:ir.ui.view,arch_db:onlyoffice_odoo.res_config_settings_view_form
msgid "<i class=\"fa fa-arrow-right\"/> Learn more"
msgstr "<i class=\"fa fa-arrow-right\"/> Saiba mais"
#. module: onlyoffice_odoo
#: model_terms:ir.ui.view,arch_db:onlyoffice_odoo.res_config_settings_view_form
msgid "<i class=\"fa fa-arrow-right\"/> Suggest a feature"
msgstr "<i class=\"fa fa-arrow-right\"/> Sugerir um recurso"
#. module: onlyoffice_odoo
#: model_terms:ir.ui.view,arch_db:onlyoffice_odoo.res_config_settings_view_form
msgid ""
"<span searchabletext=\"Connect to demo ONLYOFFICE Docs server\">\n"
" Connect to demo ONLYOFFICE Docs server\n"
" </span>"
msgstr ""
"<span searchabletext=\"Conecte-se ao servidor de demonstração do ONLYOFFICE Docs\">\n"
" Conecte-se ao servidor de demonstração do ONLYOFFICE Docs\n"
" </span>"
#. module: onlyoffice_odoo
#: model_terms:ir.ui.view,arch_db:onlyoffice_odoo.res_config_settings_view_form
msgid ""
"<span searchabletext=\"This is a public test server, please do not use it for private sensitive data. The server will be available during a 30-day period.\">\n"
" This is a public test server, please do not use it for private sensitive data.\n"
" The server will be available during a 30-day period.\n"
" </span>"
msgstr ""
"<span searchabletext=\"Este é um servidor de teste público, por favor, não o use para dados confidenciais. O servidor estará disponível durante um período de 30 dias.\">\n"
" Este é um servidor de teste público, por favor, não o use para dados confidenciais. O servidor estará disponível durante um período de 30 dias.\n"
" </span>"
#. module: onlyoffice_odoo
#: model_terms:ir.ui.view,arch_db:onlyoffice_odoo.res_config_settings_view_form
msgid "About"
msgstr "Sobre"
#. module: onlyoffice_odoo
#. odoo-javascript
#: code:addons/onlyoffice_odoo/static/src/views/form_gallery/form_gallery.xml:0
msgid "Back"
msgstr "Voltar"
#. module: onlyoffice_odoo
#. odoo-javascript
#: code:addons/onlyoffice_odoo/static/src/views/form_gallery/form_gallery.xml:0
msgid "Categories"
msgstr "Categorias"
#. module: onlyoffice_odoo
#: model:ir.model,name:onlyoffice_odoo.model_res_config_settings
msgid "Config Settings"
msgstr "Configurações de configuração"
#. module: onlyoffice_odoo
#: model:ir.model.fields,field_description:onlyoffice_odoo.field_res_config_settings__doc_server_demo
msgid "Connect to demo ONLYOFFICE Docs server"
msgstr "Conecte-se ao servidor de demonstração do ONLYOFFICE Docs"
#. module: onlyoffice_odoo
#. odoo-javascript
#: code:addons/onlyoffice_odoo/static/src/views/form_gallery/form_gallery.xml:0
msgid "Create"
msgstr "Criar"
#. module: onlyoffice_odoo
#: model:ir.model.fields,field_description:onlyoffice_odoo.field_onlyoffice_odoo__create_uid
msgid "Created by"
msgstr "Criado por"
#. module: onlyoffice_odoo
#: model:ir.model.fields,field_description:onlyoffice_odoo.field_onlyoffice_odoo__create_date
msgid "Created on"
msgstr "Criado em"
#. module: onlyoffice_odoo
#: model:ir.model.fields,field_description:onlyoffice_odoo.field_res_config_settings__doc_server_disable_certificate
#: model_terms:ir.ui.view,arch_db:onlyoffice_odoo.res_config_settings_view_form
msgid "Disable certificate verification"
msgstr "Desativar verificação de certificado"
#. module: onlyoffice_odoo
#: model:ir.model.fields,field_description:onlyoffice_odoo.field_onlyoffice_odoo__display_name
msgid "Display Name"
msgstr "Nome de exibição"
#. module: onlyoffice_odoo
#. odoo-javascript
#: code:addons/onlyoffice_odoo/static/src/views/form_gallery/form_gallery.xml:0
msgid "Document"
msgstr "Documento"
#. module: onlyoffice_odoo
#: model:ir.model.fields,field_description:onlyoffice_odoo.field_res_config_settings__doc_server_inner_url
msgid "Document Server Inner URL"
msgstr "URL interno do servidor de documentos"
#. module: onlyoffice_odoo
#: model:ir.model.fields,field_description:onlyoffice_odoo.field_res_config_settings__doc_server_jwt_header
msgid "Document Server JWT Header"
msgstr "Cabeçalho JWT do servidor de documentos"
#. module: onlyoffice_odoo
#: model:ir.model.fields,field_description:onlyoffice_odoo.field_res_config_settings__doc_server_jwt_secret
msgid "Document Server JWT Secret"
msgstr "Segredo JWT do servidor de documentos"
#. module: onlyoffice_odoo
#: model:ir.model.fields,field_description:onlyoffice_odoo.field_res_config_settings__doc_server_public_url
msgid "Document Server Public URL"
msgstr "URL pública do servidor de documentos"
#. module: onlyoffice_odoo
#. odoo-python
#: code:addons/onlyoffice_odoo/controllers/controllers.py:0
msgid "Document edited by %(user)s"
msgstr ""
#. module: onlyoffice_odoo
#. odoo-javascript
#: code:addons/onlyoffice_odoo/static/src/views/form_gallery/form_gallery.js:0
msgid "Document templates"
msgstr "Modelos de documento"
#. module: onlyoffice_odoo
#. odoo-javascript
#: code:addons/onlyoffice_odoo/static/src/views/form_gallery/form_gallery.js:0
msgid "Error loading forms"
msgstr "Erro ao carregar formulários"
#. module: onlyoffice_odoo
#. odoo-javascript
#: code:addons/onlyoffice_odoo/static/src/views/form_gallery/form_gallery.js:0
msgid "Failed to load categories"
msgstr "Falha ao carregar categorias"
#. module: onlyoffice_odoo
#. odoo-javascript
#: code:addons/onlyoffice_odoo/static/src/views/form_gallery/form_gallery.js:0
msgid "Failed to load forms"
msgstr "Falha ao carregar formulários"
#. module: onlyoffice_odoo
#. odoo-javascript
#: code:addons/onlyoffice_odoo/static/src/views/form_gallery/form_gallery.xml:0
msgid "Form"
msgstr "Formulário"
#. module: onlyoffice_odoo
#: model_terms:ir.ui.view,arch_db:onlyoffice_odoo.res_config_settings_view_form
msgid "GET NOW"
msgstr "OBTENHA AGORA"
#. module: onlyoffice_odoo
#: model_terms:ir.ui.view,arch_db:onlyoffice_odoo.res_config_settings_view_form
msgid "General Settings"
msgstr "Configurações gerais"
#. module: onlyoffice_odoo
#: model:ir.model.fields,field_description:onlyoffice_odoo.field_onlyoffice_odoo__id
msgid "ID"
msgstr "ID"
#. module: onlyoffice_odoo
#: model:ir.model.fields,field_description:onlyoffice_odoo.field_res_config_settings__internal_jwt_secret
msgid "Internal JWT Secret"
msgstr "Segredo JWT Interno"
#. module: onlyoffice_odoo
#: model_terms:ir.ui.view,arch_db:onlyoffice_odoo.res_config_settings_view_form
msgid "JWT Header"
msgstr "Cabeçalho JWT"
#. module: onlyoffice_odoo
#. odoo-javascript
#: code:addons/onlyoffice_odoo/static/src/views/form_gallery/form_gallery.xml:0
msgid "Language"
msgstr "Idioma"
#. module: onlyoffice_odoo
#: model:ir.model.fields,field_description:onlyoffice_odoo.field_onlyoffice_odoo__write_uid
msgid "Last Updated by"
msgstr "Última atualização por"
#. module: onlyoffice_odoo
#: model:ir.model.fields,field_description:onlyoffice_odoo.field_onlyoffice_odoo__write_date
msgid "Last Updated on"
msgstr "Última atualização em"
#. module: onlyoffice_odoo
#. odoo-javascript
#: code:addons/onlyoffice_odoo/static/src/views/form_gallery/form_gallery.xml:0
msgid "Loading forms..."
msgstr "Carregando formulários..."
#. module: onlyoffice_odoo
#. odoo-javascript
#: code:addons/onlyoffice_odoo/static/src/views/form_gallery/form_gallery.xml:0
msgid "No forms found"
msgstr "Nenhum formulário encontrado"
#. module: onlyoffice_odoo
#: model:ir.model,name:onlyoffice_odoo.model_onlyoffice_odoo
#: model_terms:ir.ui.view,arch_db:onlyoffice_odoo.res_config_settings_view_form
msgid "ONLYOFFICE"
msgstr "ONLYOFFICE"
#. module: onlyoffice_odoo
#: model_terms:ir.ui.view,arch_db:onlyoffice_odoo.res_config_settings_view_form
msgid "ONLYOFFICE Docs address"
msgstr "Endereço do ONLYOFFICE Docs"
#. module: onlyoffice_odoo
#: model_terms:ir.ui.view,arch_db:onlyoffice_odoo.res_config_settings_view_form
msgid "ONLYOFFICE Docs address for internal requests from the server"
msgstr "Endereço do ONLYOFFICE Docs para solicitações internas do servidor"
#. module: onlyoffice_odoo
#: model_terms:ir.ui.view,arch_db:onlyoffice_odoo.res_config_settings_view_form
msgid "ONLYOFFICE Docs secret key"
msgstr "Chave secreta do ONLYOFFICE Docs"
#. module: onlyoffice_odoo
#. odoo-javascript
#: code:addons/onlyoffice_odoo/static/src/models/attachment_card_onlyoffice.js:0
msgid "ONLYOFFICE Docs server"
msgstr "Servidor ONLYOFFICE Docs"
#. module: onlyoffice_odoo
#: model_terms:ir.ui.view,arch_db:onlyoffice_odoo.res_config_settings_view_form
msgid ""
"ONLYOFFICE Templates requires a properly licensed Document Server connected "
"with Odoo. Contact sales at sales@onlyoffice.com to acquire the proper "
"license."
msgstr "Os Modelos do ONLYOFFICE requerem um Servidor de Documentos devidamente licenciado e conectado ao Odoo. Entre em contato com o departamento de vendas pelo e-mail sales@onlyoffice.com para adquirir a licença adequada."
#. module: onlyoffice_odoo
#. odoo-javascript
#: code:addons/onlyoffice_odoo/static/src/actions/documents_action.xml:0
#: model_terms:ir.ui.view,arch_db:onlyoffice_odoo.onlyoffice_editor
msgid "ONLYOFFICE cannot be reached. Please contact admin."
msgstr "ONLYOFFICE não pode ser alcançado. Entre em contato com o administrador."
#. module: onlyoffice_odoo
#. odoo-javascript
#: code:addons/onlyoffice_odoo/static/src/actions/documents_action.xml:0
#: model_terms:ir.ui.view,arch_db:onlyoffice_odoo.onlyoffice_editor
msgid "ONLYOFFICE logo"
msgstr "Logotipo ONLYOFFICE"
#. module: onlyoffice_odoo
#: model:ir.model.fields,field_description:onlyoffice_odoo.field_res_config_settings__doc_server_odoo_url
msgid "Odoo URL"
msgstr "URL Odoo"
#. module: onlyoffice_odoo
#: model:ir.model.fields,field_description:onlyoffice_odoo.field_res_config_settings__same_tab
#: model_terms:ir.ui.view,arch_db:onlyoffice_odoo.res_config_settings_view_form
msgid "Open file in the same tab"
msgstr "Abra o arquivo na mesma aba."
#. module: onlyoffice_odoo
#. odoo-javascript
#: code:addons/onlyoffice_odoo/static/src/components/attachment_card_onlyoffice/attachment_card_onlyoffice.xml:0
msgid "Open in ONLYOFFICE"
msgstr "Abrir no ONLYOFFICE"
#. module: onlyoffice_odoo
#: model_terms:ir.ui.view,arch_db:onlyoffice_odoo.res_config_settings_view_form
msgid "Other"
msgstr ""
#. module: onlyoffice_odoo
#. odoo-javascript
#: code:addons/onlyoffice_odoo/static/src/views/form_gallery/form_gallery.xml:0
msgid "Presentation"
msgstr "Apresentação"
#. module: onlyoffice_odoo
#. odoo-javascript
#: code:addons/onlyoffice_odoo/static/src/views/form_gallery/form_gallery.xml:0
msgid "Search..."
msgstr "Pesquisar..."
#. module: onlyoffice_odoo
#. odoo-javascript
#: code:addons/onlyoffice_odoo/static/src/views/form_gallery/form_gallery.xml:0
msgid "Select document"
msgstr "Selecionar documento"
#. module: onlyoffice_odoo
#: model_terms:ir.ui.view,arch_db:onlyoffice_odoo.res_config_settings_view_form
msgid "Server address for internal requests from ONLYOFFICE Docs"
msgstr "Endereço do servidor para solicitações internas do ONLYOFFICE Docs"
#. module: onlyoffice_odoo
#: model:ir.actions.act_window,name:onlyoffice_odoo.action_onlyoffice_config_settings
msgid "Settings"
msgstr "Configurações"
#. module: onlyoffice_odoo
#. odoo-javascript
#: code:addons/onlyoffice_odoo/static/src/views/form_gallery/form_gallery.xml:0
msgid "Spreadsheet"
msgstr "Planilha"
#. module: onlyoffice_odoo
#. odoo-javascript
#: code:addons/onlyoffice_odoo/static/src/models/attachment_card_onlyoffice.js:0
msgid ""
"The 30-day test period is over, you can no longer connect to demo ONLYOFFICE"
" Docs server"
msgstr "O período de teste de 30 dias acabou, você não pode mais se conectar ao ONLYOFFICE de demonstração Servidor Docs"
#. module: onlyoffice_odoo
#: model_terms:ir.ui.view,arch_db:onlyoffice_odoo.res_config_settings_view_form
msgid ""
"This app enables creating, editing, and collaborating on fillable forms, "
"office files, and attached documents in Odoo using ONLYOFFICE Docs."
msgstr "Este aplicativo permite criar, editar e colaborar em formulários preenchíveis, arquivos do Office e documentos anexados no Odoo usando o ONLYOFFICE Docs."
#. module: onlyoffice_odoo
#. odoo-javascript
#: code:addons/onlyoffice_odoo/static/src/views/form_gallery/form_gallery.xml:0
msgid "Try changing your search or filters"
msgstr "Tente alterar sua pesquisa ou filtros"
#. module: onlyoffice_odoo
#. odoo-javascript
#: code:addons/onlyoffice_odoo/static/src/views/form_gallery/form_gallery.xml:0
msgid "Type"
msgstr "Tipo"
#. module: onlyoffice_odoo
#. odoo-python
#: code:addons/onlyoffice_odoo/controllers/controllers.py:0
msgid "User has no read access rights to open this document"
msgstr "O usuário não tem direitos de acesso de leitura para abrir este documento"
#. module: onlyoffice_odoo
#. odoo-javascript
#: code:addons/onlyoffice_odoo/static/src/views/form_gallery/form_gallery.xml:0
msgid "View all templates"
msgstr "Ver todos os modelos"
#. module: onlyoffice_odoo
#: model_terms:ir.ui.view,arch_db:onlyoffice_odoo.res_config_settings_view_form
msgid "Welcome to ONLYOFFICE!"
msgstr "Bem-vindo ao ONLYOFFICE!"

View File

@ -0,0 +1,375 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * onlyoffice_odoo
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 18.0+e-20250520\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-11-12 16:18+0000\n"
"PO-Revision-Date: 2025-11-12 16:18+0000\n"
"Last-Translator: \n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : 2);"
#. module: onlyoffice_odoo
#: model_terms:ir.ui.view,arch_db:onlyoffice_odoo.res_config_settings_view_form
msgid "<i class=\"fa fa-arrow-right\"/> Learn more"
msgstr "<i class=\"fa fa-arrow-right\"/> Подробнее"
#. module: onlyoffice_odoo
#: model_terms:ir.ui.view,arch_db:onlyoffice_odoo.res_config_settings_view_form
msgid "<i class=\"fa fa-arrow-right\"/> Suggest a feature"
msgstr "<i class=\"fa fa-arrow-right\"/> Предложить функцию"
#. module: onlyoffice_odoo
#: model_terms:ir.ui.view,arch_db:onlyoffice_odoo.res_config_settings_view_form
msgid ""
"<span searchabletext=\"Connect to demo ONLYOFFICE Docs server\">\n"
" Connect to demo ONLYOFFICE Docs server\n"
" </span>"
msgstr ""
"<span searchabletext=\"Подключиться к демо-серверу ONLYOFFICE Docs\">\n"
" Подключиться к демо-серверу ONLYOFFICE Docs\n"
" </span>"
#. module: onlyoffice_odoo
#: model_terms:ir.ui.view,arch_db:onlyoffice_odoo.res_config_settings_view_form
msgid ""
"<span searchabletext=\"This is a public test server, please do not use it for private sensitive data. The server will be available during a 30-day period.\">\n"
" This is a public test server, please do not use it for private sensitive data.\n"
" The server will be available during a 30-day period.\n"
" </span>"
msgstr ""
"<span searchabletext=\"Это общедоступный тестовый сервер, не используйте его для конфиденциальных данных. Сервер будет доступен в течение 30-дневного периода.\">\n"
" Это общедоступный тестовый сервер, не используйте его для конфиденциальных данных.\n"
" Сервер будет доступен в течение 30-дневного периода.\n"
" </span>"
#. module: onlyoffice_odoo
#: model_terms:ir.ui.view,arch_db:onlyoffice_odoo.res_config_settings_view_form
msgid "About"
msgstr "О проекте"
#. module: onlyoffice_odoo
#. odoo-javascript
#: code:addons/onlyoffice_odoo/static/src/views/form_gallery/form_gallery.xml:0
msgid "Back"
msgstr "Назад"
#. module: onlyoffice_odoo
#. odoo-javascript
#: code:addons/onlyoffice_odoo/static/src/views/form_gallery/form_gallery.xml:0
msgid "Categories"
msgstr "Группы"
#. module: onlyoffice_odoo
#: model:ir.model,name:onlyoffice_odoo.model_res_config_settings
msgid "Config Settings"
msgstr "Настройки конфигурации"
#. module: onlyoffice_odoo
#: model:ir.model.fields,field_description:onlyoffice_odoo.field_res_config_settings__doc_server_demo
msgid "Connect to demo ONLYOFFICE Docs server"
msgstr "Подключиться к демо-серверу ONLYOFFICE Docs"
#. module: onlyoffice_odoo
#. odoo-javascript
#: code:addons/onlyoffice_odoo/static/src/views/form_gallery/form_gallery.xml:0
msgid "Create"
msgstr "Создать"
#. module: onlyoffice_odoo
#: model:ir.model.fields,field_description:onlyoffice_odoo.field_onlyoffice_odoo__create_uid
msgid "Created by"
msgstr "Создано"
#. module: onlyoffice_odoo
#: model:ir.model.fields,field_description:onlyoffice_odoo.field_onlyoffice_odoo__create_date
msgid "Created on"
msgstr "Дата создания"
#. module: onlyoffice_odoo
#: model:ir.model.fields,field_description:onlyoffice_odoo.field_res_config_settings__doc_server_disable_certificate
#: model_terms:ir.ui.view,arch_db:onlyoffice_odoo.res_config_settings_view_form
msgid "Disable certificate verification"
msgstr "Отключить проверку сертификата"
#. module: onlyoffice_odoo
#: model:ir.model.fields,field_description:onlyoffice_odoo.field_onlyoffice_odoo__display_name
msgid "Display Name"
msgstr "Отображаемое имя"
#. module: onlyoffice_odoo
#. odoo-javascript
#: code:addons/onlyoffice_odoo/static/src/views/form_gallery/form_gallery.xml:0
msgid "Document"
msgstr "Документ"
#. module: onlyoffice_odoo
#: model:ir.model.fields,field_description:onlyoffice_odoo.field_res_config_settings__doc_server_inner_url
msgid "Document Server Inner URL"
msgstr "Внутренний URL сервера документов"
#. module: onlyoffice_odoo
#: model:ir.model.fields,field_description:onlyoffice_odoo.field_res_config_settings__doc_server_jwt_header
msgid "Document Server JWT Header"
msgstr "Заголовок JWT сервера документов"
#. module: onlyoffice_odoo
#: model:ir.model.fields,field_description:onlyoffice_odoo.field_res_config_settings__doc_server_jwt_secret
msgid "Document Server JWT Secret"
msgstr "Секретный JWT ключ сервера документов"
#. module: onlyoffice_odoo
#: model:ir.model.fields,field_description:onlyoffice_odoo.field_res_config_settings__doc_server_public_url
msgid "Document Server Public URL"
msgstr "Публичный URL сервера документов"
#. module: onlyoffice_odoo
#. odoo-python
#: code:addons/onlyoffice_odoo/controllers/controllers.py:0
msgid "Document edited by %(user)s"
msgstr ""
#. module: onlyoffice_odoo
#. odoo-javascript
#: code:addons/onlyoffice_odoo/static/src/views/form_gallery/form_gallery.js:0
msgid "Document templates"
msgstr "Шаблоны документов"
#. module: onlyoffice_odoo
#. odoo-javascript
#: code:addons/onlyoffice_odoo/static/src/views/form_gallery/form_gallery.js:0
msgid "Error loading forms"
msgstr "Ошибка загрузки форм"
#. module: onlyoffice_odoo
#. odoo-javascript
#: code:addons/onlyoffice_odoo/static/src/views/form_gallery/form_gallery.js:0
msgid "Failed to load categories"
msgstr "Не удалось загрузить категории"
#. module: onlyoffice_odoo
#. odoo-javascript
#: code:addons/onlyoffice_odoo/static/src/views/form_gallery/form_gallery.js:0
msgid "Failed to load forms"
msgstr "Не удалось загрузить формы"
#. module: onlyoffice_odoo
#. odoo-javascript
#: code:addons/onlyoffice_odoo/static/src/views/form_gallery/form_gallery.xml:0
msgid "Form"
msgstr "Форма"
#. module: onlyoffice_odoo
#: model_terms:ir.ui.view,arch_db:onlyoffice_odoo.res_config_settings_view_form
msgid "GET NOW"
msgstr "ПОЛУЧИТЬ СЕЙЧАС"
#. module: onlyoffice_odoo
#: model_terms:ir.ui.view,arch_db:onlyoffice_odoo.res_config_settings_view_form
msgid "General Settings"
msgstr "Основные настройки"
#. module: onlyoffice_odoo
#: model:ir.model.fields,field_description:onlyoffice_odoo.field_onlyoffice_odoo__id
msgid "ID"
msgstr "ID"
#. module: onlyoffice_odoo
#: model:ir.model.fields,field_description:onlyoffice_odoo.field_res_config_settings__internal_jwt_secret
msgid "Internal JWT Secret"
msgstr "Внутренний секретный JWT ключ"
#. module: onlyoffice_odoo
#: model_terms:ir.ui.view,arch_db:onlyoffice_odoo.res_config_settings_view_form
msgid "JWT Header"
msgstr "Заголовок JWT"
#. module: onlyoffice_odoo
#. odoo-javascript
#: code:addons/onlyoffice_odoo/static/src/views/form_gallery/form_gallery.xml:0
msgid "Language"
msgstr "Язык"
#. module: onlyoffice_odoo
#: model:ir.model.fields,field_description:onlyoffice_odoo.field_onlyoffice_odoo__write_uid
msgid "Last Updated by"
msgstr "Последнее обновление"
#. module: onlyoffice_odoo
#: model:ir.model.fields,field_description:onlyoffice_odoo.field_onlyoffice_odoo__write_date
msgid "Last Updated on"
msgstr "Дата последнего обновления"
#. module: onlyoffice_odoo
#. odoo-javascript
#: code:addons/onlyoffice_odoo/static/src/views/form_gallery/form_gallery.xml:0
msgid "Loading forms..."
msgstr "Загрузка форм..."
#. module: onlyoffice_odoo
#. odoo-javascript
#: code:addons/onlyoffice_odoo/static/src/views/form_gallery/form_gallery.xml:0
msgid "No forms found"
msgstr "Формы не найдены"
#. module: onlyoffice_odoo
#: model:ir.model,name:onlyoffice_odoo.model_onlyoffice_odoo
#: model_terms:ir.ui.view,arch_db:onlyoffice_odoo.res_config_settings_view_form
msgid "ONLYOFFICE"
msgstr "ONLYOFFICE"
#. module: onlyoffice_odoo
#: model_terms:ir.ui.view,arch_db:onlyoffice_odoo.res_config_settings_view_form
msgid "ONLYOFFICE Docs address"
msgstr "Адрес ONLYOFFICE Docs"
#. module: onlyoffice_odoo
#: model_terms:ir.ui.view,arch_db:onlyoffice_odoo.res_config_settings_view_form
msgid "ONLYOFFICE Docs address for internal requests from the server"
msgstr "Адрес ONLYOFFICE Docs для внутренних запросов от сервера"
#. module: onlyoffice_odoo
#: model_terms:ir.ui.view,arch_db:onlyoffice_odoo.res_config_settings_view_form
msgid "ONLYOFFICE Docs secret key"
msgstr "Секретный ключ ONLYOFFICE Docs"
#. module: onlyoffice_odoo
#. odoo-javascript
#: code:addons/onlyoffice_odoo/static/src/models/attachment_card_onlyoffice.js:0
msgid "ONLYOFFICE Docs server"
msgstr "Сервер ONLYOFFICE Docs"
#. module: onlyoffice_odoo
#: model_terms:ir.ui.view,arch_db:onlyoffice_odoo.res_config_settings_view_form
msgid ""
"ONLYOFFICE Templates requires a properly licensed Document Server connected "
"with Odoo. Contact sales at sales@onlyoffice.com to acquire the proper "
"license."
msgstr ""
"Для шаблонов ONLYOFFICE требуется надлежащим образом лицензированный сервер документов, подключенный "
"к Odoo. Чтобы получить соответствующую лицензию, свяжитесь с отделом продаж по адресу "
"sales@onlyoffice.com."
#. module: onlyoffice_odoo
#. odoo-javascript
#: code:addons/onlyoffice_odoo/static/src/actions/documents_action.xml:0
#: model_terms:ir.ui.view,arch_db:onlyoffice_odoo.onlyoffice_editor
msgid "ONLYOFFICE cannot be reached. Please contact admin."
msgstr "ONLYOFFICE недоступен. Пожалуйста, свяжитесь с администратором."
#. module: onlyoffice_odoo
#. odoo-javascript
#: code:addons/onlyoffice_odoo/static/src/actions/documents_action.xml:0
#: model_terms:ir.ui.view,arch_db:onlyoffice_odoo.onlyoffice_editor
msgid "ONLYOFFICE logo"
msgstr "Логотип ONLYOFFICE"
#. module: onlyoffice_odoo
#: model:ir.model.fields,field_description:onlyoffice_odoo.field_res_config_settings__doc_server_odoo_url
msgid "Odoo URL"
msgstr "URL Odoo"
#. module: onlyoffice_odoo
#: model:ir.model.fields,field_description:onlyoffice_odoo.field_res_config_settings__same_tab
#: model_terms:ir.ui.view,arch_db:onlyoffice_odoo.res_config_settings_view_form
msgid "Open file in the same tab"
msgstr "Открыть файл в той же вкладке"
#. module: onlyoffice_odoo
#. odoo-javascript
#: code:addons/onlyoffice_odoo/static/src/components/attachment_card_onlyoffice/attachment_card_onlyoffice.xml:0
msgid "Open in ONLYOFFICE"
msgstr "Открыть в ONLYOFFICE"
#. module: onlyoffice_odoo
#: model_terms:ir.ui.view,arch_db:onlyoffice_odoo.res_config_settings_view_form
msgid "Other"
msgstr ""
#. module: onlyoffice_odoo
#. odoo-javascript
#: code:addons/onlyoffice_odoo/static/src/views/form_gallery/form_gallery.xml:0
msgid "Presentation"
msgstr "Презентация"
#. module: onlyoffice_odoo
#. odoo-javascript
#: code:addons/onlyoffice_odoo/static/src/views/form_gallery/form_gallery.xml:0
msgid "Search..."
msgstr "Поиск..."
#. module: onlyoffice_odoo
#. odoo-javascript
#: code:addons/onlyoffice_odoo/static/src/views/form_gallery/form_gallery.xml:0
msgid "Select document"
msgstr "Выбрать документ"
#. module: onlyoffice_odoo
#: model_terms:ir.ui.view,arch_db:onlyoffice_odoo.res_config_settings_view_form
msgid "Server address for internal requests from ONLYOFFICE Docs"
msgstr "Адрес сервера для внутренних запросов от ONLYOFFICE Docs"
#. module: onlyoffice_odoo
#: model:ir.actions.act_window,name:onlyoffice_odoo.action_onlyoffice_config_settings
msgid "Settings"
msgstr "Настройки"
#. module: onlyoffice_odoo
#. odoo-javascript
#: code:addons/onlyoffice_odoo/static/src/views/form_gallery/form_gallery.xml:0
msgid "Spreadsheet"
msgstr "Электронная таблица"
#. module: onlyoffice_odoo
#. odoo-javascript
#: code:addons/onlyoffice_odoo/static/src/models/attachment_card_onlyoffice.js:0
msgid ""
"The 30-day test period is over, you can no longer connect to demo ONLYOFFICE"
" Docs server"
msgstr ""
"30-дневный тестовый период закончился, вы больше не можете подключиться к демо-серверу ONLYOFFICE"
" Docs."
#. module: onlyoffice_odoo
#: model_terms:ir.ui.view,arch_db:onlyoffice_odoo.res_config_settings_view_form
msgid ""
"This app enables creating, editing, and collaborating on fillable forms, "
"office files, and attached documents in Odoo using ONLYOFFICE Docs."
msgstr ""
"Это приложение позволяет создавать, редактировать заполняемые формы, офисные файлы и вложенные документы "
"и совместно работать над ними в Odoo с помощью ONLYOFFICE Docs."
#. module: onlyoffice_odoo
#. odoo-javascript
#: code:addons/onlyoffice_odoo/static/src/views/form_gallery/form_gallery.xml:0
msgid "Try changing your search or filters"
msgstr "Попробуйте изменить параметры поиска или фильтры"
#. module: onlyoffice_odoo
#. odoo-javascript
#: code:addons/onlyoffice_odoo/static/src/views/form_gallery/form_gallery.xml:0
msgid "Type"
msgstr "Тип"
#. module: onlyoffice_odoo
#. odoo-python
#: code:addons/onlyoffice_odoo/controllers/controllers.py:0
msgid "User has no read access rights to open this document"
msgstr "У пользователя нет прав на чтение этого документа"
#. module: onlyoffice_odoo
#. odoo-javascript
#: code:addons/onlyoffice_odoo/static/src/views/form_gallery/form_gallery.xml:0
msgid "View all templates"
msgstr "Посмотреть все шаблоны"
#. module: onlyoffice_odoo
#: model_terms:ir.ui.view,arch_db:onlyoffice_odoo.res_config_settings_view_form
msgid "Welcome to ONLYOFFICE!"
msgstr "Добро пожаловать в ONLYOFFICE!"

View File

@ -0,0 +1,367 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * onlyoffice_odoo
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 18.0+e-20250520\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-11-12 16:18+0000\n"
"PO-Revision-Date: 2025-11-12 16:18+0000\n"
"Last-Translator: \n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: nplurals=1; plural=0;"
#. module: onlyoffice_odoo
#: model_terms:ir.ui.view,arch_db:onlyoffice_odoo.res_config_settings_view_form
msgid "<i class=\"fa fa-arrow-right\"/> Learn more"
msgstr "<i class=\"fa fa-arrow-right\"/> 了解更多"
#. module: onlyoffice_odoo
#: model_terms:ir.ui.view,arch_db:onlyoffice_odoo.res_config_settings_view_form
msgid "<i class=\"fa fa-arrow-right\"/> Suggest a feature"
msgstr "<i class=\"fa fa-arrow-right\"/> 建议功能"
#. module: onlyoffice_odoo
#: model_terms:ir.ui.view,arch_db:onlyoffice_odoo.res_config_settings_view_form
msgid ""
"<span searchabletext=\"Connect to demo ONLYOFFICE Docs server\">\n"
" Connect to demo ONLYOFFICE Docs server\n"
" </span>"
msgstr ""
"<span searchabletext=\"连接到 ONLYOFFICE 文档服务器演示版\">\n"
" 连接到 ONLYOFFICE 文档服务器演示版\n"
" </span>"
#. module: onlyoffice_odoo
#: model_terms:ir.ui.view,arch_db:onlyoffice_odoo.res_config_settings_view_form
msgid ""
"<span searchabletext=\"This is a public test server, please do not use it for private sensitive data. The server will be available during a 30-day period.\">\n"
" This is a public test server, please do not use it for private sensitive data.\n"
" The server will be available during a 30-day period.\n"
" </span>"
msgstr ""
"<span searchabletext=\"这是公共测试服务器,请勿用于私人敏感 数据。服务器将在 30 天内可用。\">\n"
" 这是公共测试服务器,请勿用于私人敏感 数据。服务器将在 30 天内可用。\n"
" </span>"
#. module: onlyoffice_odoo
#: model_terms:ir.ui.view,arch_db:onlyoffice_odoo.res_config_settings_view_form
msgid "About"
msgstr "关于"
#. module: onlyoffice_odoo
#. odoo-javascript
#: code:addons/onlyoffice_odoo/static/src/views/form_gallery/form_gallery.xml:0
msgid "Back"
msgstr "返回"
#. module: onlyoffice_odoo
#. odoo-javascript
#: code:addons/onlyoffice_odoo/static/src/views/form_gallery/form_gallery.xml:0
msgid "Categories"
msgstr "分类"
#. module: onlyoffice_odoo
#: model:ir.model,name:onlyoffice_odoo.model_res_config_settings
msgid "Config Settings"
msgstr "配置设置"
#. module: onlyoffice_odoo
#: model:ir.model.fields,field_description:onlyoffice_odoo.field_res_config_settings__doc_server_demo
msgid "Connect to demo ONLYOFFICE Docs server"
msgstr "连接到 ONLYOFFICE 文档服务器演示版"
#. module: onlyoffice_odoo
#. odoo-javascript
#: code:addons/onlyoffice_odoo/static/src/views/form_gallery/form_gallery.xml:0
msgid "Create"
msgstr "创建"
#. module: onlyoffice_odoo
#: model:ir.model.fields,field_description:onlyoffice_odoo.field_onlyoffice_odoo__create_uid
msgid "Created by"
msgstr "创建者"
#. module: onlyoffice_odoo
#: model:ir.model.fields,field_description:onlyoffice_odoo.field_onlyoffice_odoo__create_date
msgid "Created on"
msgstr "创建于"
#. module: onlyoffice_odoo
#: model:ir.model.fields,field_description:onlyoffice_odoo.field_res_config_settings__doc_server_disable_certificate
#: model_terms:ir.ui.view,arch_db:onlyoffice_odoo.res_config_settings_view_form
msgid "Disable certificate verification"
msgstr "禁用证书验证"
#. module: onlyoffice_odoo
#: model:ir.model.fields,field_description:onlyoffice_odoo.field_onlyoffice_odoo__display_name
msgid "Display Name"
msgstr "显示名称"
#. module: onlyoffice_odoo
#. odoo-javascript
#: code:addons/onlyoffice_odoo/static/src/views/form_gallery/form_gallery.xml:0
msgid "Document"
msgstr "文档"
#. module: onlyoffice_odoo
#: model:ir.model.fields,field_description:onlyoffice_odoo.field_res_config_settings__doc_server_inner_url
msgid "Document Server Inner URL"
msgstr "文档服务器内部 URL"
#. module: onlyoffice_odoo
#: model:ir.model.fields,field_description:onlyoffice_odoo.field_res_config_settings__doc_server_jwt_header
msgid "Document Server JWT Header"
msgstr "文档服务器 JWT 头"
#. module: onlyoffice_odoo
#: model:ir.model.fields,field_description:onlyoffice_odoo.field_res_config_settings__doc_server_jwt_secret
msgid "Document Server JWT Secret"
msgstr "文档服务器 JWT 秘密"
#. module: onlyoffice_odoo
#: model:ir.model.fields,field_description:onlyoffice_odoo.field_res_config_settings__doc_server_public_url
msgid "Document Server Public URL"
msgstr "文档服务器公共 URL"
#. module: onlyoffice_odoo
#. odoo-python
#: code:addons/onlyoffice_odoo/controllers/controllers.py:0
msgid "Document edited by %(user)s"
msgstr ""
#. module: onlyoffice_odoo
#. odoo-javascript
#: code:addons/onlyoffice_odoo/static/src/views/form_gallery/form_gallery.js:0
msgid "Document templates"
msgstr "文档模板"
#. module: onlyoffice_odoo
#. odoo-javascript
#: code:addons/onlyoffice_odoo/static/src/views/form_gallery/form_gallery.js:0
msgid "Error loading forms"
msgstr "加载表单时出错"
#. module: onlyoffice_odoo
#. odoo-javascript
#: code:addons/onlyoffice_odoo/static/src/views/form_gallery/form_gallery.js:0
msgid "Failed to load categories"
msgstr "加载分类失败"
#. module: onlyoffice_odoo
#. odoo-javascript
#: code:addons/onlyoffice_odoo/static/src/views/form_gallery/form_gallery.js:0
msgid "Failed to load forms"
msgstr "加载表单失败"
#. module: onlyoffice_odoo
#. odoo-javascript
#: code:addons/onlyoffice_odoo/static/src/views/form_gallery/form_gallery.xml:0
msgid "Form"
msgstr "表单"
#. module: onlyoffice_odoo
#: model_terms:ir.ui.view,arch_db:onlyoffice_odoo.res_config_settings_view_form
msgid "GET NOW"
msgstr "立即获取"
#. module: onlyoffice_odoo
#: model_terms:ir.ui.view,arch_db:onlyoffice_odoo.res_config_settings_view_form
msgid "General Settings"
msgstr "一般设置"
#. module: onlyoffice_odoo
#: model:ir.model.fields,field_description:onlyoffice_odoo.field_onlyoffice_odoo__id
msgid "ID"
msgstr "ID"
#. module: onlyoffice_odoo
#: model:ir.model.fields,field_description:onlyoffice_odoo.field_res_config_settings__internal_jwt_secret
msgid "Internal JWT Secret"
msgstr "内部 JWT 秘密"
#. module: onlyoffice_odoo
#: model_terms:ir.ui.view,arch_db:onlyoffice_odoo.res_config_settings_view_form
msgid "JWT Header"
msgstr "JWT 头部"
#. module: onlyoffice_odoo
#. odoo-javascript
#: code:addons/onlyoffice_odoo/static/src/views/form_gallery/form_gallery.xml:0
msgid "Language"
msgstr "语言"
#. module: onlyoffice_odoo
#: model:ir.model.fields,field_description:onlyoffice_odoo.field_onlyoffice_odoo__write_uid
msgid "Last Updated by"
msgstr "上次更新者"
#. module: onlyoffice_odoo
#: model:ir.model.fields,field_description:onlyoffice_odoo.field_onlyoffice_odoo__write_date
msgid "Last Updated on"
msgstr "上次更新日期"
#. module: onlyoffice_odoo
#. odoo-javascript
#: code:addons/onlyoffice_odoo/static/src/views/form_gallery/form_gallery.xml:0
msgid "Loading forms..."
msgstr "正在加载表单..."
#. module: onlyoffice_odoo
#. odoo-javascript
#: code:addons/onlyoffice_odoo/static/src/views/form_gallery/form_gallery.xml:0
msgid "No forms found"
msgstr "未找到表单"
#. module: onlyoffice_odoo
#: model:ir.model,name:onlyoffice_odoo.model_onlyoffice_odoo
#: model_terms:ir.ui.view,arch_db:onlyoffice_odoo.res_config_settings_view_form
msgid "ONLYOFFICE"
msgstr "ONLYOFFICE"
#. module: onlyoffice_odoo
#: model_terms:ir.ui.view,arch_db:onlyoffice_odoo.res_config_settings_view_form
msgid "ONLYOFFICE Docs address"
msgstr "ONLYOFFICE 文档地址"
#. module: onlyoffice_odoo
#: model_terms:ir.ui.view,arch_db:onlyoffice_odoo.res_config_settings_view_form
msgid "ONLYOFFICE Docs address for internal requests from the server"
msgstr "ONLYOFFICE 文档服务器内部请求地址"
#. module: onlyoffice_odoo
#: model_terms:ir.ui.view,arch_db:onlyoffice_odoo.res_config_settings_view_form
msgid "ONLYOFFICE Docs secret key"
msgstr "ONLYOFFICE 文档密钥"
#. module: onlyoffice_odoo
#. odoo-javascript
#: code:addons/onlyoffice_odoo/static/src/models/attachment_card_onlyoffice.js:0
msgid "ONLYOFFICE Docs server"
msgstr "ONLYOFFICE 文档服务器"
#. module: onlyoffice_odoo
#: model_terms:ir.ui.view,arch_db:onlyoffice_odoo.res_config_settings_view_form
msgid ""
"ONLYOFFICE Templates requires a properly licensed Document Server connected "
"with Odoo. Contact sales at sales@onlyoffice.com to acquire the proper "
"license."
msgstr "ONLYOFFICE 模板需通过具有正确授权的文档服务器与 Odoo 连接。请邮件联系 sales@onlyoffice.com 获取相应授权许可。"
#. module: onlyoffice_odoo
#. odoo-javascript
#: code:addons/onlyoffice_odoo/static/src/actions/documents_action.xml:0
#: model_terms:ir.ui.view,arch_db:onlyoffice_odoo.onlyoffice_editor
msgid "ONLYOFFICE cannot be reached. Please contact admin."
msgstr "ONLYOFFICE 无法访问,请联系管理员。"
#. module: onlyoffice_odoo
#. odoo-javascript
#: code:addons/onlyoffice_odoo/static/src/actions/documents_action.xml:0
#: model_terms:ir.ui.view,arch_db:onlyoffice_odoo.onlyoffice_editor
msgid "ONLYOFFICE logo"
msgstr "ONLYOFFICE logo"
#. module: onlyoffice_odoo
#: model:ir.model.fields,field_description:onlyoffice_odoo.field_res_config_settings__doc_server_odoo_url
msgid "Odoo URL"
msgstr "Odoo URL"
#. module: onlyoffice_odoo
#: model:ir.model.fields,field_description:onlyoffice_odoo.field_res_config_settings__same_tab
#: model_terms:ir.ui.view,arch_db:onlyoffice_odoo.res_config_settings_view_form
msgid "Open file in the same tab"
msgstr "在同一标签页中打开文件"
#. module: onlyoffice_odoo
#. odoo-javascript
#: code:addons/onlyoffice_odoo/static/src/components/attachment_card_onlyoffice/attachment_card_onlyoffice.xml:0
msgid "Open in ONLYOFFICE"
msgstr "用 ONLYOFFICE 打开"
#. module: onlyoffice_odoo
#: model_terms:ir.ui.view,arch_db:onlyoffice_odoo.res_config_settings_view_form
msgid "Other"
msgstr ""
#. module: onlyoffice_odoo
#. odoo-javascript
#: code:addons/onlyoffice_odoo/static/src/views/form_gallery/form_gallery.xml:0
msgid "Presentation"
msgstr "演示文稿"
#. module: onlyoffice_odoo
#. odoo-javascript
#: code:addons/onlyoffice_odoo/static/src/views/form_gallery/form_gallery.xml:0
msgid "Search..."
msgstr "搜索..."
#. module: onlyoffice_odoo
#. odoo-javascript
#: code:addons/onlyoffice_odoo/static/src/views/form_gallery/form_gallery.xml:0
msgid "Select document"
msgstr "选择文档"
#. module: onlyoffice_odoo
#: model_terms:ir.ui.view,arch_db:onlyoffice_odoo.res_config_settings_view_form
msgid "Server address for internal requests from ONLYOFFICE Docs"
msgstr "ONLYOFFICE 文档内部请求的服务器地址"
#. module: onlyoffice_odoo
#: model:ir.actions.act_window,name:onlyoffice_odoo.action_onlyoffice_config_settings
msgid "Settings"
msgstr "设置"
#. module: onlyoffice_odoo
#. odoo-javascript
#: code:addons/onlyoffice_odoo/static/src/views/form_gallery/form_gallery.xml:0
msgid "Spreadsheet"
msgstr "电子表格"
#. module: onlyoffice_odoo
#. odoo-javascript
#: code:addons/onlyoffice_odoo/static/src/models/attachment_card_onlyoffice.js:0
msgid ""
"The 30-day test period is over, you can no longer connect to demo ONLYOFFICE"
" Docs server"
msgstr "30 天测试期结束后,您将无法再访问 ONLYOFFICE文档服务器演示版"
#. module: onlyoffice_odoo
#: model_terms:ir.ui.view,arch_db:onlyoffice_odoo.res_config_settings_view_form
msgid ""
"This app enables creating, editing, and collaborating on fillable forms, "
"office files, and attached documents in Odoo using ONLYOFFICE Docs."
msgstr "此应用可在 Odoo 中通过 ONLYOFFICE 文档创建、编辑和协作处理可填写表单、办公文件及附件。"
#. module: onlyoffice_odoo
#. odoo-javascript
#: code:addons/onlyoffice_odoo/static/src/views/form_gallery/form_gallery.xml:0
msgid "Try changing your search or filters"
msgstr "请尝试更改搜索条件或筛选项"
#. module: onlyoffice_odoo
#. odoo-javascript
#: code:addons/onlyoffice_odoo/static/src/views/form_gallery/form_gallery.xml:0
msgid "Type"
msgstr "类型"
#. module: onlyoffice_odoo
#. odoo-python
#: code:addons/onlyoffice_odoo/controllers/controllers.py:0
msgid "User has no read access rights to open this document"
msgstr "用户没有查看权限,无法打开此文档"
#. module: onlyoffice_odoo
#. odoo-javascript
#: code:addons/onlyoffice_odoo/static/src/views/form_gallery/form_gallery.xml:0
msgid "View all templates"
msgstr "查看所有模板"
#. module: onlyoffice_odoo
#: model_terms:ir.ui.view,arch_db:onlyoffice_odoo.res_config_settings_view_form
msgid "Welcome to ONLYOFFICE!"
msgstr "欢迎使用 ONLYOFFICE!"

View File

@ -0,0 +1,2 @@
from . import res_config_settings
from . import onlyoffice_odoo

View File

@ -0,0 +1,21 @@
import json
from odoo import api, models
from odoo.addons.onlyoffice_odoo.utils import config_constants
class OnlyOfficeTemplate(models.Model):
_name = "onlyoffice.odoo"
_description = "ONLYOFFICE"
@api.model
def get_demo(self):
mode = self.env["ir.config_parameter"].sudo().get_param(config_constants.DOC_SERVER_DEMO)
date = self.env["ir.config_parameter"].sudo().get_param(config_constants.DOC_SERVER_DEMO_DATE)
return json.dumps({"mode": mode, "date": date})
@api.model
def get_same_tab(self):
same_tab = self.env["ir.config_parameter"].sudo().get_param(config_constants.SAME_TAB)
return json.dumps({"same_tab": same_tab})

View File

@ -0,0 +1,97 @@
#
# (c) Copyright Ascensio System SIA 2024
#
from odoo import api, fields, models
from odoo.addons.onlyoffice_odoo.utils import config_utils, validation_utils
class ResConfigSettings(models.TransientModel):
_inherit = "res.config.settings"
doc_server_public_url = fields.Char("Document Server Public URL")
doc_server_odoo_url = fields.Char("Odoo URL")
doc_server_inner_url = fields.Char("Document Server Inner URL")
doc_server_jwt_secret = fields.Char("Document Server JWT Secret")
doc_server_jwt_header = fields.Char("Document Server JWT Header")
doc_server_demo = fields.Boolean("Connect to demo ONLYOFFICE Docs server")
doc_server_disable_certificate = fields.Boolean("Disable certificate verification")
same_tab = fields.Boolean("Open file in the same tab")
internal_jwt_secret = fields.Char("Internal JWT Secret")
@api.onchange("doc_server_public_url")
def onchange_doc_server_public_url(self):
if self.doc_server_public_url and not validation_utils.valid_url(self.doc_server_public_url):
return {"warning": {"title": "Warning", "message": "Incorrect Document Server URL"}}
@api.model
def save_config_values(self):
if validation_utils.valid_url(self.doc_server_public_url):
config_utils.set_doc_server_public_url(self.env, self.doc_server_public_url)
if validation_utils.valid_url(self.doc_server_odoo_url):
config_utils.set_doc_server_odoo_url(self.env, self.doc_server_odoo_url)
if validation_utils.valid_url(self.doc_server_inner_url):
config_utils.set_doc_server_inner_url(self.env, self.doc_server_inner_url)
config_utils.set_jwt_secret(self.env, self.doc_server_jwt_secret)
config_utils.set_jwt_header(self.env, self.doc_server_jwt_header)
config_utils.set_demo(self.env, self.doc_server_demo)
config_utils.set_certificate_verify_disabled(self.env, self.doc_server_disable_certificate)
config_utils.set_same_tab(self.env, self.same_tab)
def set_values(self):
res = super().set_values()
current_demo_state = config_utils.get_demo(self.env)
current_public_url = config_utils.get_doc_server_public_url(self.env)
current_odoo_url = config_utils.get_base_or_odoo_url(self.env)
current_inner_url = config_utils.get_doc_server_inner_url(self.env)
current_jwt_secret = config_utils.get_jwt_secret(self.env)
current_jwt_header = config_utils.get_jwt_header(self.env)
current_disable_certificate = config_utils.get_certificate_verify_disabled(self.env)
current_same_tab = config_utils.get_same_tab(self.env)
settings_changed = (
self.doc_server_public_url != current_public_url
or self.doc_server_odoo_url != current_odoo_url
or self.doc_server_inner_url != current_inner_url
or self.doc_server_jwt_secret != current_jwt_secret
or self.doc_server_jwt_header != current_jwt_header
or self.doc_server_demo != current_demo_state
or self.doc_server_disable_certificate != current_disable_certificate
or self.same_tab != current_same_tab
)
if settings_changed:
if not current_demo_state and not self.doc_server_demo:
validation_utils.settings_validation(self)
self.save_config_values()
return res
def get_values(self):
res = super().get_values()
doc_server_public_url = config_utils.get_doc_server_public_url(self.env)
doc_server_odoo_url = config_utils.get_base_or_odoo_url(self.env)
doc_server_inner_url = config_utils.get_doc_server_inner_url(self.env)
doc_server_jwt_secret = config_utils.get_jwt_secret(self.env)
doc_server_jwt_header = config_utils.get_jwt_header(self.env)
doc_server_demo = config_utils.get_demo(self.env)
doc_server_disable_certificate = config_utils.get_certificate_verify_disabled(self.env)
same_tab = config_utils.get_same_tab(self.env)
res.update(
doc_server_public_url=doc_server_public_url,
doc_server_odoo_url=doc_server_odoo_url,
doc_server_inner_url=doc_server_inner_url,
doc_server_jwt_secret=doc_server_jwt_secret,
doc_server_jwt_header=doc_server_jwt_header,
doc_server_demo=doc_server_demo,
doc_server_disable_certificate=doc_server_disable_certificate,
same_tab=same_tab,
)
return res

View File

@ -0,0 +1,3 @@
[build-system]
requires = ["whool"]
build-backend = "whool.buildapi"

View File

@ -0,0 +1,4 @@
# Authors
* Ascensio System SIA: <integration@onlyoffice.com>

View File

@ -0,0 +1,35 @@
# Change Log
- comment for docm, docx, dotm, dotx, odt, ott, rtf, ods, ots, xlsb, xlsm, xlsx, xltm, xltx, odp, otp, potm, potx, ppsm, ppsx, pptm, pptx, pdf
- gdoc, gsheet, gslide
- encrypt for docm, docx, dotm, dotx, odt, ott, ods, ots, xlsb, xlsm, xlsx, xltm, xltx, odp, otp, potm, potx, ppsm, ppsx, pptm, pptx, pdf
- customfilter for csv, ods, ots, xlsb, xlsm, xlsx, xltm, xltx
- review for docm, docx, dotm, dotx, odt, ott, rtf
## 3.1.0
- converting slide type to txt extension
- hml format
- added image extensions heic, heif, webp
## 3.0.0
- diagram documentType for vsdx, vssx, vstx, vsdm, vssm, vstm
- view odg, md
- edit xlsb
## 2.1.0
- hwp, hwpx formats
- pages, numbers, key formats
## 2.0.0
- pdf documentType for djvu, docxf, oform, oxps, pdf, xps
- fb2 additional mime
## 1.1.0
- filling pdf
- conversion formats for txt, csv
- formats for auto conversion
## 1.0.0
- formats for viewing, editing and lossy editing
- formats for conversions
- mime-types of formats

View File

@ -0,0 +1,201 @@
Apache License
Version 2.0, January 2004
http://www.apache.org/licenses/
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
1. Definitions.
"License" shall mean the terms and conditions for use, reproduction,
and distribution as defined by Sections 1 through 9 of this document.
"Licensor" shall mean the copyright owner or entity authorized by
the copyright owner that is granting the License.
"Legal Entity" shall mean the union of the acting entity and all
other entities that control, are controlled by, or are under common
control with that entity. For the purposes of this definition,
"control" means (i) the power, direct or indirect, to cause the
direction or management of such entity, whether by contract or
otherwise, or (ii) ownership of fifty percent (50%) or more of the
outstanding shares, or (iii) beneficial ownership of such entity.
"You" (or "Your") shall mean an individual or Legal Entity
exercising permissions granted by this License.
"Source" form shall mean the preferred form for making modifications,
including but not limited to software source code, documentation
source, and configuration files.
"Object" form shall mean any form resulting from mechanical
transformation or translation of a Source form, including but
not limited to compiled object code, generated documentation,
and conversions to other media types.
"Work" shall mean the work of authorship, whether in Source or
Object form, made available under the License, as indicated by a
copyright notice that is included in or attached to the work
(an example is provided in the Appendix below).
"Derivative Works" shall mean any work, whether in Source or Object
form, that is based on (or derived from) the Work and for which the
editorial revisions, annotations, elaborations, or other modifications
represent, as a whole, an original work of authorship. For the purposes
of this License, Derivative Works shall not include works that remain
separable from, or merely link (or bind by name) to the interfaces of,
the Work and Derivative Works thereof.
"Contribution" shall mean any work of authorship, including
the original version of the Work and any modifications or additions
to that Work or Derivative Works thereof, that is intentionally
submitted to Licensor for inclusion in the Work by the copyright owner
or by an individual or Legal Entity authorized to submit on behalf of
the copyright owner. For the purposes of this definition, "submitted"
means any form of electronic, verbal, or written communication sent
to the Licensor or its representatives, including but not limited to
communication on electronic mailing lists, source code control systems,
and issue tracking systems that are managed by, or on behalf of, the
Licensor for the purpose of discussing and improving the Work, but
excluding communication that is conspicuously marked or otherwise
designated in writing by the copyright owner as "Not a Contribution."
"Contributor" shall mean Licensor and any individual or Legal Entity
on behalf of whom a Contribution has been received by Licensor and
subsequently incorporated within the Work.
2. Grant of Copyright License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
copyright license to reproduce, prepare Derivative Works of,
publicly display, publicly perform, sublicense, and distribute the
Work and such Derivative Works in Source or Object form.
3. Grant of Patent License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
(except as stated in this section) patent license to make, have made,
use, offer to sell, sell, import, and otherwise transfer the Work,
where such license applies only to those patent claims licensable
by such Contributor that are necessarily infringed by their
Contribution(s) alone or by combination of their Contribution(s)
with the Work to which such Contribution(s) was submitted. If You
institute patent litigation against any entity (including a
cross-claim or counterclaim in a lawsuit) alleging that the Work
or a Contribution incorporated within the Work constitutes direct
or contributory patent infringement, then any patent licenses
granted to You under this License for that Work shall terminate
as of the date such litigation is filed.
4. Redistribution. You may reproduce and distribute copies of the
Work or Derivative Works thereof in any medium, with or without
modifications, and in Source or Object form, provided that You
meet the following conditions:
(a) You must give any other recipients of the Work or
Derivative Works a copy of this License; and
(b) You must cause any modified files to carry prominent notices
stating that You changed the files; and
(c) You must retain, in the Source form of any Derivative Works
that You distribute, all copyright, patent, trademark, and
attribution notices from the Source form of the Work,
excluding those notices that do not pertain to any part of
the Derivative Works; and
(d) If the Work includes a "NOTICE" text file as part of its
distribution, then any Derivative Works that You distribute must
include a readable copy of the attribution notices contained
within such NOTICE file, excluding those notices that do not
pertain to any part of the Derivative Works, in at least one
of the following places: within a NOTICE text file distributed
as part of the Derivative Works; within the Source form or
documentation, if provided along with the Derivative Works; or,
within a display generated by the Derivative Works, if and
wherever such third-party notices normally appear. The contents
of the NOTICE file are for informational purposes only and
do not modify the License. You may add Your own attribution
notices within Derivative Works that You distribute, alongside
or as an addendum to the NOTICE text from the Work, provided
that such additional attribution notices cannot be construed
as modifying the License.
You may add Your own copyright statement to Your modifications and
may provide additional or different license terms and conditions
for use, reproduction, or distribution of Your modifications, or
for any such Derivative Works as a whole, provided Your use,
reproduction, and distribution of the Work otherwise complies with
the conditions stated in this License.
5. Submission of Contributions. Unless You explicitly state otherwise,
any Contribution intentionally submitted for inclusion in the Work
by You to the Licensor shall be under the terms and conditions of
this License, without any additional terms or conditions.
Notwithstanding the above, nothing herein shall supersede or modify
the terms of any separate license agreement you may have executed
with Licensor regarding such Contributions.
6. Trademarks. This License does not grant permission to use the trade
names, trademarks, service marks, or product names of the Licensor,
except as required for reasonable and customary use in describing the
origin of the Work and reproducing the content of the NOTICE file.
7. Disclaimer of Warranty. Unless required by applicable law or
agreed to in writing, Licensor provides the Work (and each
Contributor provides its Contributions) on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
implied, including, without limitation, any warranties or conditions
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
PARTICULAR PURPOSE. You are solely responsible for determining the
appropriateness of using or redistributing the Work and assume any
risks associated with Your exercise of permissions under this License.
8. Limitation of Liability. In no event and under no legal theory,
whether in tort (including negligence), contract, or otherwise,
unless required by applicable law (such as deliberate and grossly
negligent acts) or agreed to in writing, shall any Contributor be
liable to You for damages, including any direct, indirect, special,
incidental, or consequential damages of any character arising as a
result of this License or out of the use or inability to use the
Work (including but not limited to damages for loss of goodwill,
work stoppage, computer failure or malfunction, or any and all
other commercial damages or losses), even if such Contributor
has been advised of the possibility of such damages.
9. Accepting Warranty or Additional Liability. While redistributing
the Work or Derivative Works thereof, You may choose to offer,
and charge a fee for, acceptance of support, warranty, indemnity,
or other liability obligations and/or rights consistent with this
License. However, in accepting such obligations, You may act only
on Your own behalf and on Your sole responsibility, not on behalf
of any other Contributor, and only if You agree to indemnify,
defend, and hold each Contributor harmless for any liability
incurred by, or claims asserted against, such Contributor by reason
of your accepting any such warranty or additional liability.
END OF TERMS AND CONDITIONS
APPENDIX: How to apply the Apache License to your work.
To apply the Apache License to your work, attach the following
boilerplate notice, with the fields enclosed by brackets "[]"
replaced with your own identifying information. (Don't include
the brackets!) The text should be enclosed in the appropriate
comment syntax for the file format. We also recommend that a
file or class name and description of purpose be included on the
same "printed page" as the copyright notice for easier
identification within third-party archives.
Copyright [yyyy] [name of copyright owner]
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

View File

@ -0,0 +1,86 @@
## Overview
This repository contains the list of file formats (electronic documents, forms, spreadsheets, presentations) supported by ONLYOFFICE editors and describes the properties of each file format type.
The repository is used in:
* [Document Server integration example](https://github.com/ONLYOFFICE/document-server-integration)
* [ONLYOFFICE addon for Plone](https://github.com/ONLYOFFICE/onlyoffice-plone)
* [ONLYOFFICE app for Box](https://github.com/ONLYOFFICE/onlyoffice-box)
* [ONLYOFFICE app for Confluence Cloud](https://github.com/ONLYOFFICE/onlyoffice-confluence-cloud)
* [ONLYOFFICE app for Dropbox](https://github.com/ONLYOFFICE/onlyoffice-dropbox)
* [ONLYOFFICE app for Mattermost](https://github.com/ONLYOFFICE/onlyoffice-mattermost)
* [ONLYOFFICE app for Miro](https://github.com/ONLYOFFICE/onlyoffice-miro)
* [ONLYOFFICE app for Nextcloud](https://github.com/ONLYOFFICE/onlyoffice-nextcloud)
* [ONLYOFFICE app for Odoo](https://github.com/ONLYOFFICE/onlyoffice_odoo)
* [ONLYOFFICE app for ownCloud](https://github.com/ONLYOFFICE/onlyoffice-owncloud)
* [ONLYOFFICE app for Slack](https://github.com/ONLYOFFICE/onlyoffice-slack)
* [ONLYOFFICE bot for Telegram](https://github.com/ONLYOFFICE/onlyoffice-telegram)
* [ONLYOFFICE DocSpace](https://github.com/ONLYOFFICE/DocSpace)
* [ONLYOFFICE Docs Integration Java SDK](https://github.com/ONLYOFFICE/docs-integration-sdk-java)
* [ONLYOFFICE Docs Integration PHP SDK](https://github.com/ONLYOFFICE/docs-integration-sdk-php)
* [ONLYOFFICE extension for Directus](https://github.com/ONLYOFFICE/onlyoffice-directus)
* [ONLYOFFICE module for HumHub](https://github.com/ONLYOFFICE/onlyoffice-humhub)
* [ONLYOFFICE plugin for Redmine](https://github.com/ONLYOFFICE/onlyoffice-redmine)
* [ONLYOFFICE plugin for WordPress](https://github.com/ONLYOFFICE/onlyoffice-wordpress)
## Project info
ONLYOFFICE Docs (Document Server): [github.com/ONLYOFFICE/DocumentServer](https://github.com/ONLYOFFICE/DocumentServer)
Official website: [www.onlyoffice.com](https://www.onlyoffice.com/)
## Supported formats
**For viewing:**
* **WORD**: DOC, DOCM, DOCX, DOT, DOTM, DOTX, EPUB, FB2, FODT, GDOC, HML, HTM, HTML, HWP, HWPX, MD, MHT, MHTML, ODT, OTT, PAGES, RTF, STW, SXW, TXT, WPS, WPT, XML
* **CELL**: CSV, ET, ETT, FODS, GSHEET, NUMBERS, ODS, OTS, SXC, XLS, XLSM, XLSX, XLT, XLTM, XLTX
* **SLIDE**: DPS, DPT, FODP, GSLIDE, KEY, ODG, ODP, OTP, POT, POTM, POTX, PPS, PPSM, PPSX, PPT, PPTM, PPTX, SXI
* **PDF**: DJVU, DOCXF, OFORM, OXPS, PDF, XPS
* **DIAGRAM**: VSDM, VSDX, VSSM, VSSX, VSTM, VSTX
**For editing:**
* **WORD**: DOCM, DOCX, DOTM, DOTX
* **CELL**: XLSB, XLSM, XLSX, XLTM, XLTX
* **SLIDE**: POTM, POTX, PPSM, PPSX, PPTM, PPTX
* **PDF**: PDF
**For editing with possible loss of information:**
* **WORD**: EPUB, FB2, HTML, ODT, OTT, RTF, TXT
* **CELL**: CSV
* **SLIDE**: ODP, OTP
**For editing with custom filter:**
* **CELL**: CSV, ODS, OTS, XLSB, XLSM, XLSX, XLTM, XLTX
**For reviewing:**
* **WORD**: DOCM, DOCX, DOTM, DOTX, ODT, OTT, RTF
**For commenting:**
* **WORD**: DOCM, DOCX, DOTM, DOTX, ODT, OTT, RTF
* **CELL**: ODS, OTS, XLSB, XLSM, XLSX, XLTM, XLTX
* **SLIDE**: ODP, OTP, POTM, POTX, PPSM, PPSX, PPTM, PPTX
* **PDF**: PDF
**For filling:**
* **PDF**: PDF
**For encrypting:**
* **WORD**: DOCM, DOCX, DOTM, DOTX, ODT, OTT
* **CELL**: ODS, OTS, XLSB, XLSM, XLSX, XLTM, XLTX
* **SLIDE**: ODP, OTP, POTM, POTX, PPSM, PPSX, PPTM, PPTX
* **PDF**: PDF
**For converting to Office Open XML formats:**
* **WORD**: DOC, DOCM, DOCX, DOT, DOTM, DOTX, EPUB, FB2, FODT, HML, HTM, HTML, HWP, HWPX, MD, MHT, MHTML, ODT, OTT, PAGES, RTF, STW, SXW, TXT, WPS, WPT, XML
* **CELL**: CSV, ET, ETT, FODS, NUMBERS, ODS, OTS, SXC, XLS, XLSB, XLSM, XLSX, XLT, XLTM, XLTX
* **SLIDE**: DPS, DPT, FODP, KEY, ODG, ODP, OTP, POT, POTM, POTX, PPS, PPSM, PPSX, PPT, PPTM, PPTX, SXI
* **PDF**: DOCXF, OXPS, PDF, XPS

View File

@ -0,0 +1,597 @@
[
{
"name": "doc",
"type": "word",
"actions": ["view", "auto-convert"],
"convert": ["docx", "bmp", "docm", "dotm", "dotx", "epub", "fb2", "gif", "html", "jpg", "odt", "ott", "pdf", "pdfa", "png", "rtf", "txt"],
"mime": ["application/msword"]
},
{
"name": "docm",
"type": "word",
"actions": ["view", "edit", "review", "comment", "encrypt"],
"convert": ["docx", "bmp", "dotm", "dotx", "epub", "fb2", "gif", "html", "jpg", "odt", "ott", "pdf", "pdfa", "png", "rtf", "txt"],
"mime": ["application/vnd.ms-word.document.macroenabled.12"]
},
{
"name": "docx",
"type": "word",
"actions": ["view", "edit", "review", "comment", "encrypt"],
"convert": ["bmp", "docm", "dotm", "dotx", "epub", "fb2", "gif", "html", "jpg", "odt", "ott", "pdf", "pdfa", "png", "rtf", "txt"],
"mime": ["application/vnd.openxmlformats-officedocument.wordprocessingml.document"]
},
{
"name": "dot",
"type": "word",
"actions": ["view", "auto-convert"],
"convert": ["docx", "bmp", "docm", "dotm", "dotx", "epub", "fb2", "gif", "html", "jpg", "odt", "ott", "pdf", "pdfa", "png", "rtf", "txt"],
"mime": ["application/msword"]
},
{
"name": "dotm",
"type": "word",
"actions": ["view", "edit", "review", "comment", "encrypt"],
"convert": ["docx", "bmp", "docm", "dotx", "epub", "fb2", "gif", "html", "jpg", "odt", "ott", "pdf", "pdfa", "png", "rtf", "txt"],
"mime": ["application/vnd.ms-word.template.macroenabled.12"]
},
{
"name": "dotx",
"type": "word",
"actions": ["view", "edit", "review", "comment", "encrypt"],
"convert": ["docx", "bmp", "docm", "dotm", "epub", "fb2", "gif", "html", "jpg", "odt", "ott", "pdf", "pdfa", "png", "rtf", "txt"],
"mime": ["application/vnd.openxmlformats-officedocument.wordprocessingml.template"]
},
{
"name": "epub",
"type": "word",
"actions": ["view", "lossy-edit", "auto-convert"],
"convert":["docx", "bmp", "docm", "dotm", "dotx", "fb2", "gif", "html", "jpg", "odt", "ott", "pdf", "pdfa", "png", "rtf", "txt"],
"mime": ["application/epub+zip"]
},
{
"name": "fb2",
"type": "word",
"actions": ["view", "lossy-edit", "auto-convert"],
"convert": ["docx", "bmp", "docm", "dotm", "dotx", "epub", "gif", "html", "jpg", "odt", "ott", "pdf", "pdfa", "png", "rtf", "txt"],
"mime": ["text/fb2+xml", "application/x-fictionbook+xml"]
},
{
"name": "fodt",
"type": "word",
"actions": ["view", "auto-convert"],
"convert": ["docx", "bmp", "docm", "dotm", "dotx", "epub", "fb2", "gif", "html", "jpg", "odt", "ott", "pdf", "pdfa", "png", "rtf", "txt"],
"mime": ["application/vnd.oasis.opendocument.text-flat-xml"]
},
{
"name": "gdoc",
"type": "word",
"actions": ["view"],
"convert": [],
"mime": ["application/vnd.google-apps.document"]
},
{
"name": "hml",
"type": "word",
"actions": ["view", "auto-convert"],
"convert": ["docx", "bmp", "docm", "dotm", "dotx", "epub", "fb2", "gif", "html", "jpg", "odt", "ott", "pdf", "pdfa", "png", "rtf", "txt"],
"mime": ["multipart/related"]
},
{
"name": "htm",
"type": "word",
"actions": ["view", "auto-convert"],
"convert": ["docx", "bmp", "docm", "dotm", "dotx", "epub", "fb2", "gif", "jpg", "odt", "ott", "pdf", "pdfa", "png", "rtf", "txt"],
"mime": ["text/html"]
},
{
"name": "html",
"type": "word",
"actions": ["view", "lossy-edit", "auto-convert"],
"convert": ["docx", "bmp", "docm", "dotm", "dotx", "epub", "fb2", "gif", "jpg", "odt", "ott", "pdf", "pdfa", "png", "rtf", "txt"],
"mime": ["text/html"]
},
{
"name": "hwp",
"type": "word",
"actions": ["view", "auto-convert"],
"convert": ["docx", "bmp", "docm", "dotm", "dotx", "epub", "fb2", "gif", "html", "jpg", "odt", "ott", "pdf", "pdfa", "png", "rtf", "txt"],
"mime": ["application/x-hwp"]
},
{
"name": "hwpx",
"type": "word",
"actions": ["view", "auto-convert"],
"convert": ["docx", "bmp", "docm", "dotm", "dotx", "epub", "fb2", "gif", "html", "jpg", "odt", "ott", "pdf", "pdfa", "png", "rtf", "txt"],
"mime": ["application/x-hwpx"]
},
{
"name": "md",
"type": "word",
"actions": ["view", "auto-convert"],
"convert": ["docx", "bmp", "docm", "dotm", "dotx", "epub", "fb2", "gif", "html", "jpg", "odt", "ott", "pdf", "pdfa", "png", "rtf", "txt"],
"mime": ["text/markdown"]
},
{
"name": "mht",
"type": "word",
"actions": ["view", "auto-convert"],
"convert": ["docx", "bmp", "docm", "dotm", "dotx", "epub", "fb2", "gif", "html", "jpg", "odt", "ott", "pdf", "pdfa", "png", "rtf", "txt"],
"mime": ["message/rfc822"]
},
{
"name": "mhtml",
"type": "word",
"actions": ["view", "auto-convert"],
"convert": ["docx", "bmp", "docm", "dotm", "dotx", "epub", "fb2", "gif", "html", "jpg", "odt", "ott", "pdf", "pdfa", "png", "rtf", "txt"],
"mime": ["message/rfc822"]
},
{
"name": "odt",
"type": "word",
"actions": ["view", "lossy-edit", "auto-convert", "review", "comment", "encrypt"],
"convert": ["docx", "bmp", "docm", "dotm", "dotx", "epub", "fb2", "gif", "html", "jpg", "ott", "pdf", "pdfa", "png", "rtf", "txt"],
"mime": ["application/vnd.oasis.opendocument.text"]
},
{
"name": "ott",
"type": "word",
"actions": ["view", "lossy-edit", "auto-convert", "review", "comment", "encrypt"],
"convert": ["docx", "bmp", "docm", "dotm", "dotx", "epub", "fb2", "gif", "html", "jpg", "odt", "pdf", "pdfa", "png", "rtf", "txt"],
"mime": ["application/vnd.oasis.opendocument.text-template"]
},
{
"name": "pages",
"type": "word",
"actions": ["view", "auto-convert"],
"convert": ["docx", "bmp", "docm", "dotm", "dotx", "epub", "fb2", "gif", "html", "jpg", "odt", "ott", "pdf", "pdfa", "png", "rtf", "txt"],
"mime": ["application/vnd.apple.pages", "application/x-iwork-pages-sffpages"]
},
{
"name": "rtf",
"type": "word",
"actions": ["view", "lossy-edit", "auto-convert", "review", "comment"],
"convert": ["docx", "bmp", "docm", "dotm", "dotx", "epub", "fb2", "gif", "html", "jpg", "odt", "ott", "pdf", "pdfa", "png", "txt"],
"mime": ["application/rtf", "text/rtf"]
},
{
"name": "stw",
"type": "word",
"actions": ["view", "auto-convert"],
"convert": ["docx", "bmp", "docm", "dotm", "dotx", "epub", "fb2", "gif", "html", "jpg", "odt", "ott", "pdf", "pdfa", "png", "rtf", "txt"],
"mime": ["application/vnd.sun.xml.writer.template"]
},
{
"name": "sxw",
"type": "word",
"actions": ["view", "auto-convert"],
"convert": ["docx", "bmp", "docm", "dotm", "dotx", "epub", "fb2", "gif", "html", "jpg", "odt", "ott", "pdf", "pdfa", "png", "rtf", "txt"],
"mime": ["application/vnd.sun.xml.writer"]
},
{
"name": "txt",
"type": "word",
"actions": ["view", "lossy-edit"],
"convert": ["docx", "bmp", "docm", "dotm", "dotx", "epub", "fb2", "gif", "html", "jpg", "odt", "ott", "pdf", "pdfa", "png", "rtf"],
"mime": ["text/plain"]
},
{
"name": "wps",
"type": "word",
"actions": ["view", "auto-convert"],
"convert": ["docx", "bmp", "docm", "dotm", "dotx", "epub", "fb2", "gif", "html", "jpg", "odt", "ott", "pdf", "pdfa", "png", "rtf", "txt"],
"mime": ["application/vnd.ms-works"]
},
{
"name": "wpt",
"type": "word",
"actions": ["view", "auto-convert"],
"convert": ["docx", "bmp", "docm", "dotm", "dotx", "epub", "fb2", "gif", "html", "jpg", "odt", "ott", "pdf", "pdfa", "png", "rtf", "txt"],
"mime": []
},
{
"name": "xml",
"type": "word",
"actions": ["view", "auto-convert"],
"convert": ["docx", "xlsx", "bmp", "csv", "docm", "dotm", "dotx", "epub", "fb2", "gif", "html", "jpg", "ods", "odt", "ots", "ott", "pdf", "pdfa", "png", "rtf", "txt", "xlsm", "xltm", "xltx"],
"mime": ["application/xml", "text/xml"]
},
{
"name": "csv",
"type": "cell",
"actions": ["view", "lossy-edit", "customfilter"],
"convert": ["xlsx", "bmp", "gif", "jpg", "ods", "ots", "pdf", "pdfa", "png", "xlsm", "xltm", "xltx"],
"mime": ["text/csv", "application/csv", "text/x-comma-separated-values", "text/x-csv"]
},
{
"name": "et",
"type": "cell",
"actions": ["view", "auto-convert"],
"convert": ["xlsx", "bmp", "csv", "gif", "jpg", "ods", "ots", "pdf", "pdfa", "png", "xlsm", "xltm", "xltx"],
"mime": []
},
{
"name": "ett",
"type": "cell",
"actions": ["view", "auto-convert"],
"convert": ["xlsx", "bmp", "csv", "gif", "jpg", "ods", "ots", "pdf", "pdfa", "png", "xlsm", "xltm", "xltx"],
"mime": []
},
{
"name": "fods",
"type": "cell",
"actions": ["view", "auto-convert"],
"convert": ["xlsx", "bmp", "csv", "gif", "jpg", "ods", "ots", "pdf", "pdfa", "png", "xlsm", "xltm", "xltx"],
"mime": ["application/vnd.oasis.opendocument.spreadsheet-flat-xml"]
},
{
"name": "gsheet",
"type": "word",
"actions": ["view"],
"convert": [],
"mime": ["application/vnd.google-apps.spreadsheet"]
},
{
"name": "numbers",
"type": "cell",
"actions": ["view", "auto-convert"],
"convert": ["xlsx", "bmp", "csv", "gif", "jpg", "ods", "ots", "pdf", "pdfa", "png", "xlsm", "xltm", "xltx"],
"mime": ["application/vnd.apple.numbers", "application/x-iwork-numbers-sffnumbers"]
},
{
"name": "ods",
"type": "cell",
"actions": ["view", "lossy-edit", "auto-convert", "customfilter", "comment", "encrypt"],
"convert": ["xlsx", "bmp", "csv", "gif", "jpg", "ots", "pdf", "pdfa", "png", "xlsm", "xltm", "xltx"],
"mime": ["application/vnd.oasis.opendocument.spreadsheet"]
},
{
"name": "ots",
"type": "cell",
"actions": ["view", "lossy-edit", "auto-convert", "customfilter", "comment", "encrypt"],
"convert": ["xlsx", "bmp", "csv", "gif", "jpg", "ods", "pdf", "pdfa", "png", "xlsm", "xltm", "xltx"],
"mime": ["application/vnd.oasis.opendocument.spreadsheet-template"]
},
{
"name": "sxc",
"type": "cell",
"actions": ["view", "auto-convert"],
"convert": ["xlsx", "bmp", "csv", "gif", "jpg", "ods", "ots", "pdf", "pdfa", "png", "xlsm", "xltm", "xltx"],
"mime": ["application/vnd.sun.xml.calc"]
},
{
"name": "xls",
"type": "cell",
"actions": ["view", "auto-convert"],
"convert": ["xlsx", "bmp", "csv", "gif", "jpg", "ods", "ots", "pdf", "pdfa", "png", "xlsm", "xltm", "xltx"],
"mime": ["application/vnd.ms-excel"]
},
{
"name": "xlsb",
"type": "cell",
"actions": ["view", "edit", "customfilter", "comment", "encrypt"],
"convert": ["xlsx", "bmp", "csv", "gif", "jpg", "ods", "ots", "pdf", "pdfa", "png", "xlsm", "xltm", "xltx"],
"mime": ["application/vnd.ms-excel.sheet.binary.macroenabled.12"]
},
{
"name": "xlsm",
"type": "cell",
"actions": ["view", "edit", "customfilter", "comment", "encrypt"],
"convert": ["xlsx", "bmp", "csv", "gif", "jpg", "ods", "ots", "pdf", "pdfa", "png", "xltm", "xltx"],
"mime": ["application/vnd.ms-excel.sheet.macroenabled.12", "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"]
},
{
"name": "xlsx",
"type": "cell",
"actions": ["view", "edit", "customfilter", "comment", "encrypt"],
"convert": ["bmp", "csv", "gif", "jpg", "ods", "ots", "pdf", "pdfa", "png", "xlsm", "xltm", "xltx"],
"mime": ["application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"]
},
{
"name": "xlt",
"type": "cell",
"actions": ["view", "auto-convert"],
"convert": ["xlsx", "bmp", "csv", "gif", "jpg", "ods", "ots", "pdf", "pdfa", "png", "xlsm", "xltm", "xltx"],
"mime": ["application/vnd.ms-excel"]
},
{
"name": "xltm",
"type": "cell",
"actions": ["view", "edit", "customfilter", "comment", "encrypt"],
"convert": ["xlsx", "bmp", "csv", "gif", "jpg", "ods", "ots", "pdf", "pdfa", "png", "xlsm", "xltx"],
"mime": ["application/vnd.ms-excel.template.macroenabled.12"]
},
{
"name": "xltx",
"type": "cell",
"actions": ["view", "edit", "customfilter", "comment", "encrypt"],
"convert": ["xlsx", "bmp", "csv", "gif", "jpg", "ods", "ots", "pdf", "pdfa", "png", "xlsm", "xltm"],
"mime": ["application/vnd.openxmlformats-officedocument.spreadsheetml.template"]
},
{
"name": "dps",
"type": "slide",
"actions": ["view", "auto-convert"],
"convert": ["pptx", "bmp", "gif", "jpg", "odp", "otp", "pdf", "pdfa", "png", "potm", "potx", "ppsm", "ppsx", "pptm"],
"mime": []
},
{
"name": "dpt",
"type": "slide",
"actions": ["view", "auto-convert"],
"convert": ["pptx", "bmp", "gif", "jpg", "odp", "otp", "pdf", "pdfa", "png", "potm", "potx", "ppsm", "ppsx", "pptm"],
"mime": []
},
{
"name": "fodp",
"type": "slide",
"actions": ["view", "auto-convert"],
"convert": ["pptx", "bmp", "gif", "jpg", "odp", "otp", "pdf", "pdfa", "png", "potm", "potx", "ppsm", "ppsx", "pptm"],
"mime": ["application/vnd.oasis.opendocument.presentation-flat-xml"]
},
{
"name": "gslides",
"type": "word",
"actions": ["view"],
"convert": [],
"mime": ["application/vnd.google-apps.presentation"]
},
{
"name": "key",
"type": "slide",
"actions": ["view", "auto-convert"],
"convert": ["pptx", "bmp", "gif", "jpg", "odp", "otp", "pdf", "pdfa", "png", "potm", "potx", "ppsm", "ppsx", "pptm", "txt"],
"mime": ["application/vnd.apple.keynote", "application/x-iwork-keynote-sffkey"]
},
{
"name": "odg",
"type": "slide",
"actions": ["view", "auto-convert"],
"convert": ["pptx", "bmp", "gif", "jpg", "odp", "otp", "pdf", "pdfa", "png", "potm", "potx", "ppsm", "ppsx", "pptm", "txt"],
"mime": ["application/vnd.oasis.opendocument.presentationapplication/vnd.oasis.opendocument.graphics", "application/x-vnd.oasis.opendocument.graphics"]
},
{
"name": "odp",
"type": "slide",
"actions": ["view", "lossy-edit", "auto-convert", "comment", "encrypt"],
"convert": ["pptx", "bmp", "gif", "jpg", "otp", "pdf", "pdfa", "png", "potm", "potx", "ppsm", "ppsx", "pptm", "txt"],
"mime": ["application/vnd.oasis.opendocument.presentation"]
},
{
"name": "otp",
"type": "slide",
"actions": ["view", "lossy-edit", "auto-convert", "comment", "encrypt"],
"convert": ["pptx", "bmp", "gif", "jpg", "odp", "pdf", "pdfa", "png", "potm", "potx", "ppsm", "ppsx", "pptm", "txt"],
"mime": ["application/vnd.oasis.opendocument.presentation-template"]
},
{
"name": "pot",
"type": "slide",
"actions": ["view", "auto-convert"],
"convert": ["pptx", "bmp", "gif", "jpg", "odp", "otp", "pdf", "pdfa", "png", "potm", "potx", "ppsm", "ppsx", "pptm", "txt"],
"mime": ["application/vnd.ms-powerpoint"]
},
{
"name": "potm",
"type": "slide",
"actions": ["view", "edit", "comment", "encrypt"],
"convert": ["pptx", "bmp", "gif", "jpg", "odp", "otp", "pdf", "pdfa", "png", "potx", "ppsm", "ppsx", "pptm", "txt"],
"mime": ["application/vnd.ms-powerpoint.template.macroenabled.12"]
},
{
"name": "potx",
"type": "slide",
"actions": ["view", "edit", "comment", "encrypt"],
"convert": ["pptx", "bmp", "gif", "jpg", "odp", "otp", "pdf", "pdfa", "png", "potm", "ppsm", "ppsx", "pptm", "txt"],
"mime": ["application/vnd.openxmlformats-officedocument.presentationml.template"]
},
{
"name": "pps",
"type": "slide",
"actions": ["view", "auto-convert"],
"convert": ["pptx", "bmp", "gif", "jpg", "odp", "otp", "pdf", "pdfa", "png", "potm", "potx", "ppsm", "ppsx", "pptm", "txt"],
"mime": ["application/vnd.ms-powerpoint"]
},
{
"name": "ppsm",
"type": "slide",
"actions": ["view", "edit", "comment", "encrypt"],
"convert": ["pptx", "bmp", "gif", "jpg", "odp", "otp", "pdf", "pdfa", "png", "potm", "potx", "ppsx", "pptm", "txt"],
"mime": ["application/vnd.ms-powerpoint.slideshow.macroenabled.12"]
},
{
"name": "ppsx",
"type": "slide",
"actions": ["view", "edit", "comment", "encrypt"],
"convert": ["pptx", "bmp", "gif", "jpg", "odp", "otp", "pdf", "pdfa", "png", "potm", "potx", "ppsm", "pptm", "txt"],
"mime": ["application/vnd.openxmlformats-officedocument.presentationml.slideshow"]
},
{
"name": "ppt",
"type": "slide",
"actions": ["view", "auto-convert"],
"convert": ["pptx", "bmp", "gif", "jpg", "odp", "otp", "pdf", "pdfa", "png", "potm", "potx", "ppsm", "ppsx", "pptm", "txt"],
"mime": ["application/vnd.ms-powerpoint"]
},
{
"name": "pptm",
"type": "slide",
"actions": ["view", "edit", "comment", "encrypt"],
"convert": ["pptx", "bmp", "gif", "jpg", "odp", "otp", "pdf", "pdfa", "png", "potm", "potx", "ppsm", "ppsx", "txt"],
"mime": ["application/vnd.ms-powerpoint.presentation.macroenabled.12"]
},
{
"name": "pptx",
"type": "slide",
"actions": ["view", "edit", "comment", "encrypt"],
"convert": ["bmp", "gif", "jpg", "odp", "otp", "pdf", "pdfa", "png", "potm", "potx", "ppsm", "ppsx", "pptm", "txt"],
"mime": ["application/vnd.openxmlformats-officedocument.presentationml.presentation"]
},
{
"name": "sxi",
"type": "slide",
"actions": ["view", "auto-convert"],
"convert": ["pptx", "bmp", "gif", "jpg", "odp", "otp", "pdf", "pdfa", "png", "potm", "potx", "ppsm", "ppsx", "pptm", "txt"],
"mime": ["application/vnd.sun.xml.impress"]
},
{
"name": "djvu",
"type": "pdf",
"actions": ["view"],
"convert": ["bmp", "gif", "jpg", "pdf", "pdfa", "png"],
"mime": ["image/vnd.djvu"]
},
{
"name": "docxf",
"type": "pdf",
"actions": ["view"],
"convert": ["docx", "bmp", "docm", "dotm", "dotx", "epub", "fb2", "gif", "html", "jpg", "odt", "ott", "pdf", "pdfa", "png", "rtf", "txt"],
"mime": ["application/vnd.openxmlformats-officedocument.wordprocessingml.document.docxf"]
},
{
"name": "oform",
"type": "pdf",
"actions": ["view"],
"convert": ["pdf"],
"mime": ["application/vnd.openxmlformats-officedocument.wordprocessingml.document.oform"]
},
{
"name": "oxps",
"type": "pdf",
"actions": ["view"],
"convert": ["docx", "bmp", "docm", "dotm", "dotx", "epub", "fb2", "gif", "html", "jpg", "odt", "ott", "pdf", "pdfa", "png", "rtf", "txt"],
"mime": ["application/oxps"]
},
{
"name": "pdf",
"type": "pdf",
"actions": ["view", "edit", "comment", "fill", "encrypt"],
"convert": ["docx", "bmp", "docm", "dotm", "dotx", "epub", "fb2", "gif", "html", "jpg", "odt", "ott", "pdfa", "png", "rtf", "txt"],
"mime": ["application/pdf", "application/acrobat", "application/nappdf", "application/x-pdf", "image/pdf"]
},
{
"name": "xps",
"type": "pdf",
"actions": ["view"],
"convert": ["docx", "bmp", "docm", "dotm", "dotx", "epub", "fb2", "gif", "html", "jpg", "odt", "ott", "pdf", "pdfa", "png", "rtf", "txt"],
"mime": ["application/vnd.ms-xpsdocument", "application/xps"]
},
{
"name": "vsdx",
"type": "diagram",
"actions": ["view"],
"convert": ["bmp", "gif", "jpg", "pdf", "pdfa", "png"],
"mime": ["application/vnd.ms-visio.drawing, application/vnd.visio2013", "application/vnd.visio"]
},
{
"name": "vsdm",
"type": "diagram",
"actions": ["view"],
"convert": ["bmp", "gif", "jpg", "pdf", "pdfa", "png"],
"mime": ["application/vnd.ms-visio.drawing.macroEnabled.12"]
},
{
"name": "vssm",
"type": "diagram",
"actions": ["view"],
"convert": ["bmp", "gif", "jpg", "pdf", "pdfa", "png"],
"mime": ["application/vnd.ms-visio.stencil.macroEnabled.12"]
},
{
"name": "vssx",
"type": "diagram",
"actions": ["view"],
"convert": ["bmp", "gif", "jpg", "pdf", "pdfa", "png"],
"mime": ["application/vnd.ms-visio.stencil"]
},
{
"name": "vstm",
"type": "diagram",
"actions": ["view"],
"convert": ["bmp", "gif", "jpg", "pdf", "pdfa", "png"],
"mime": ["application/vnd.ms-visio.template.macroEnabled.12"]
},
{
"name": "vstx",
"type": "diagram",
"actions": ["view"],
"convert": ["bmp", "gif", "jpg", "pdf", "pdfa", "png"],
"mime": ["application/vnd.ms-visio.template"]
},
{
"name": "bmp",
"type": "",
"actions": [],
"convert": [],
"mime": ["image/bmp"]
},
{
"name": "gif",
"type": "",
"actions": [],
"convert": [],
"mime": ["image/gif"]
},
{
"name": "heiс",
"type": "",
"actions": [],
"convert": [],
"mime": ["image/heiс"]
},
{
"name": "heif",
"type": "",
"actions": [],
"convert": [],
"mime": ["image/heif"]
},
{
"name": "jpg",
"type": "",
"actions": [],
"convert": [],
"mime": ["image/jpeg"]
},
{
"name": "pdfa",
"type": "",
"actions": [],
"convert": [],
"mime": ["application/pdf", "application/acrobat", "application/nappdf", "application/x-pdf", "image/pdf"]
},
{
"name": "png",
"type": "",
"actions": [],
"convert": [],
"mime": ["image/png"]
},
{
"name": "tif",
"type": "",
"actions": [],
"convert": [],
"mime": ["image/tif", "image/x-tif", "application/tif", "application/x-tif"]
},
{
"name": "tiff",
"type": "",
"actions": [],
"convert": [],
"mime": ["image/tiff", "image/x-tiff", "application/tiff", "application/x-tiff"]
},
{
"name": "webp",
"type": "",
"actions": [],
"convert": [],
"mime": ["image/webp"]
},
{
"name": "zip",
"type": "",
"actions": [],
"convert": [],
"mime": ["application/zip"]
}
]

View File

@ -0,0 +1,3 @@
# Authors
* Ascensio System SIA: <integration@onlyoffice.com>

View File

@ -0,0 +1,201 @@
Apache License
Version 2.0, January 2004
http://www.apache.org/licenses/
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
1. Definitions.
"License" shall mean the terms and conditions for use, reproduction,
and distribution as defined by Sections 1 through 9 of this document.
"Licensor" shall mean the copyright owner or entity authorized by
the copyright owner that is granting the License.
"Legal Entity" shall mean the union of the acting entity and all
other entities that control, are controlled by, or are under common
control with that entity. For the purposes of this definition,
"control" means (i) the power, direct or indirect, to cause the
direction or management of such entity, whether by contract or
otherwise, or (ii) ownership of fifty percent (50%) or more of the
outstanding shares, or (iii) beneficial ownership of such entity.
"You" (or "Your") shall mean an individual or Legal Entity
exercising permissions granted by this License.
"Source" form shall mean the preferred form for making modifications,
including but not limited to software source code, documentation
source, and configuration files.
"Object" form shall mean any form resulting from mechanical
transformation or translation of a Source form, including but
not limited to compiled object code, generated documentation,
and conversions to other media types.
"Work" shall mean the work of authorship, whether in Source or
Object form, made available under the License, as indicated by a
copyright notice that is included in or attached to the work
(an example is provided in the Appendix below).
"Derivative Works" shall mean any work, whether in Source or Object
form, that is based on (or derived from) the Work and for which the
editorial revisions, annotations, elaborations, or other modifications
represent, as a whole, an original work of authorship. For the purposes
of this License, Derivative Works shall not include works that remain
separable from, or merely link (or bind by name) to the interfaces of,
the Work and Derivative Works thereof.
"Contribution" shall mean any work of authorship, including
the original version of the Work and any modifications or additions
to that Work or Derivative Works thereof, that is intentionally
submitted to Licensor for inclusion in the Work by the copyright owner
or by an individual or Legal Entity authorized to submit on behalf of
the copyright owner. For the purposes of this definition, "submitted"
means any form of electronic, verbal, or written communication sent
to the Licensor or its representatives, including but not limited to
communication on electronic mailing lists, source code control systems,
and issue tracking systems that are managed by, or on behalf of, the
Licensor for the purpose of discussing and improving the Work, but
excluding communication that is conspicuously marked or otherwise
designated in writing by the copyright owner as "Not a Contribution."
"Contributor" shall mean Licensor and any individual or Legal Entity
on behalf of whom a Contribution has been received by Licensor and
subsequently incorporated within the Work.
2. Grant of Copyright License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
copyright license to reproduce, prepare Derivative Works of,
publicly display, publicly perform, sublicense, and distribute the
Work and such Derivative Works in Source or Object form.
3. Grant of Patent License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
(except as stated in this section) patent license to make, have made,
use, offer to sell, sell, import, and otherwise transfer the Work,
where such license applies only to those patent claims licensable
by such Contributor that are necessarily infringed by their
Contribution(s) alone or by combination of their Contribution(s)
with the Work to which such Contribution(s) was submitted. If You
institute patent litigation against any entity (including a
cross-claim or counterclaim in a lawsuit) alleging that the Work
or a Contribution incorporated within the Work constitutes direct
or contributory patent infringement, then any patent licenses
granted to You under this License for that Work shall terminate
as of the date such litigation is filed.
4. Redistribution. You may reproduce and distribute copies of the
Work or Derivative Works thereof in any medium, with or without
modifications, and in Source or Object form, provided that You
meet the following conditions:
(a) You must give any other recipients of the Work or
Derivative Works a copy of this License; and
(b) You must cause any modified files to carry prominent notices
stating that You changed the files; and
(c) You must retain, in the Source form of any Derivative Works
that You distribute, all copyright, patent, trademark, and
attribution notices from the Source form of the Work,
excluding those notices that do not pertain to any part of
the Derivative Works; and
(d) If the Work includes a "NOTICE" text file as part of its
distribution, then any Derivative Works that You distribute must
include a readable copy of the attribution notices contained
within such NOTICE file, excluding those notices that do not
pertain to any part of the Derivative Works, in at least one
of the following places: within a NOTICE text file distributed
as part of the Derivative Works; within the Source form or
documentation, if provided along with the Derivative Works; or,
within a display generated by the Derivative Works, if and
wherever such third-party notices normally appear. The contents
of the NOTICE file are for informational purposes only and
do not modify the License. You may add Your own attribution
notices within Derivative Works that You distribute, alongside
or as an addendum to the NOTICE text from the Work, provided
that such additional attribution notices cannot be construed
as modifying the License.
You may add Your own copyright statement to Your modifications and
may provide additional or different license terms and conditions
for use, reproduction, or distribution of Your modifications, or
for any such Derivative Works as a whole, provided Your use,
reproduction, and distribution of the Work otherwise complies with
the conditions stated in this License.
5. Submission of Contributions. Unless You explicitly state otherwise,
any Contribution intentionally submitted for inclusion in the Work
by You to the Licensor shall be under the terms and conditions of
this License, without any additional terms or conditions.
Notwithstanding the above, nothing herein shall supersede or modify
the terms of any separate license agreement you may have executed
with Licensor regarding such Contributions.
6. Trademarks. This License does not grant permission to use the trade
names, trademarks, service marks, or product names of the Licensor,
except as required for reasonable and customary use in describing the
origin of the Work and reproducing the content of the NOTICE file.
7. Disclaimer of Warranty. Unless required by applicable law or
agreed to in writing, Licensor provides the Work (and each
Contributor provides its Contributions) on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
implied, including, without limitation, any warranties or conditions
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
PARTICULAR PURPOSE. You are solely responsible for determining the
appropriateness of using or redistributing the Work and assume any
risks associated with Your exercise of permissions under this License.
8. Limitation of Liability. In no event and under no legal theory,
whether in tort (including negligence), contract, or otherwise,
unless required by applicable law (such as deliberate and grossly
negligent acts) or agreed to in writing, shall any Contributor be
liable to You for damages, including any direct, indirect, special,
incidental, or consequential damages of any character arising as a
result of this License or out of the use or inability to use the
Work (including but not limited to damages for loss of goodwill,
work stoppage, computer failure or malfunction, or any and all
other commercial damages or losses), even if such Contributor
has been advised of the possibility of such damages.
9. Accepting Warranty or Additional Liability. While redistributing
the Work or Derivative Works thereof, You may choose to offer,
and charge a fee for, acceptance of support, warranty, indemnity,
or other liability obligations and/or rights consistent with this
License. However, in accepting such obligations, You may act only
on Your own behalf and on Your sole responsibility, not on behalf
of any other Contributor, and only if You agree to indemnify,
defend, and hold each Contributor harmless for any liability
incurred by, or claims asserted against, such Contributor by reason
of your accepting any such warranty or additional liability.
END OF TERMS AND CONDITIONS
APPENDIX: How to apply the Apache License to your work.
To apply the Apache License to your work, attach the following
boilerplate notice, with the fields enclosed by brackets "[]"
replaced with your own identifying information. (Don't include
the brackets!) The text should be enclosed in the appropriate
comment syntax for the file format. We also recommend that a
file or class name and description of purpose be included on the
same "printed page" as the copyright notice for easier
identification within third-party archives.
Copyright [yyyy] [name of copyright owner]
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

View File

@ -0,0 +1,12 @@
## Overview
Template files used to create new documents and documents with sample content in:
- [ONLYOFFICE app for Nextcloud](https://github.com/ONLYOFFICE/onlyoffice-nextcloud)
- [ONLYOFFICE app for Odoo](https://github.com/onlyoffice/onlyoffice-odoo)
- [ONLYOFFICE app for ownCloud](https://github.com/onlyoffice/onlyoffice-owncloud)
- [ONLYOFFICE app for Pipedrive](https://github.com/onlyoffice/onlyoffice-pipedrive)
- [ONLYOFFICE addon for Plone](https://github.com/onlyoffice/onlyoffice-plone)
- [ONLYOFFICE Docs Integration PHP SDK](https://github.com/ONLYOFFICE/docs-integration-sdk-php)
- [ONLYOFFICE DocSpace app for Zoom](https://github.com/onlyoffice/onlyoffice-docspace-zoom)
- [ONLYOFFICE module for HumHub](https://github.com/ONLYOFFICE/onlyoffice-humhub)

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