Public release from ruodoo-project: 19.0 - 2026-11-01 22:52:25 UTC
This commit is contained in:
@@ -0,0 +1,81 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<odoo>
|
||||
<data>
|
||||
<!-- Action to open the wizard (must be declared before the view that references it) -->
|
||||
<record id="action_local_translation_sync_wizard" model="ir.actions.act_window">
|
||||
<field name="name">Загрузка перевода из локального хранилища</field>
|
||||
<field name="type">ir.actions.act_window</field>
|
||||
<field name="res_model">translation.local.sync.wizard</field>
|
||||
<field name="view_mode">form</field>
|
||||
<field name="target">new</field>
|
||||
<field name="help">Загрузить переводы модулей из локальных PO-файлов модуля</field>
|
||||
</record>
|
||||
|
||||
<!-- Form view for Local Translation Sync Wizard -->
|
||||
<record id="local_translation_sync_wizard_form" model="ir.ui.view">
|
||||
<field name="name">translation.local.sync.wizard.form</field>
|
||||
<field name="model">translation.local.sync.wizard</field>
|
||||
<field name="arch" type="xml">
|
||||
<form>
|
||||
<field name="state" invisible="1"/>
|
||||
|
||||
<!-- FORM STATE: list of found local PO files -->
|
||||
<div invisible="state != 'form'">
|
||||
<div class="alert alert-info" role="alert">
|
||||
<p>Найденные локальные PO-файлы перечислены ниже.
|
||||
Удалите крестиком те, что загружать не нужно, затем
|
||||
нажмите «Загрузить». Удаление строки не удаляет файл с диска.</p>
|
||||
</div>
|
||||
|
||||
<group>
|
||||
<field name="language" required="1"/>
|
||||
<field name="overwrite"/>
|
||||
</group>
|
||||
|
||||
<field name="line_ids" nolabel="1">
|
||||
<list editable="bottom" create="false">
|
||||
<field name="module_name"/>
|
||||
<field name="file_date"/>
|
||||
<field name="file_path" optional="hide"/>
|
||||
</list>
|
||||
</field>
|
||||
</div>
|
||||
|
||||
<!-- DONE STATE: results -->
|
||||
<div invisible="state != 'done'">
|
||||
<div class="alert alert-success" role="status">
|
||||
<p>Загрузка завершена!</p>
|
||||
</div>
|
||||
|
||||
<field name="result_message" nolabel="1" readonly="1"
|
||||
widget="text"/>
|
||||
</div>
|
||||
|
||||
<footer>
|
||||
<!-- form state -->
|
||||
<button name="action_sync" type="object"
|
||||
string="Загрузить" class="btn btn-success"
|
||||
invisible="state != 'form'"/>
|
||||
<button name="action_rescan" type="object"
|
||||
string="Обновить список" class="btn btn-secondary"
|
||||
invisible="state != 'form'"/>
|
||||
<!-- done state -->
|
||||
<button string="Закрыть" class="btn btn-primary"
|
||||
special="cancel" invisible="state != 'done'"/>
|
||||
<!-- cancel for form -->
|
||||
<button string="Отмена" class="btn btn-secondary"
|
||||
special="cancel" invisible="state == 'done'"/>
|
||||
</footer>
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<!-- Menu item under Settings > Translations > Import / Export -->
|
||||
<menuitem id="menu_local_translation_sync"
|
||||
name="Загрузка перевода из локального хранилища"
|
||||
action="action_local_translation_sync_wizard"
|
||||
parent="base.menu_translation_export"
|
||||
sequence="31"
|
||||
groups="base.group_system"/>
|
||||
</data>
|
||||
</odoo>
|
||||
@@ -0,0 +1,101 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<odoo>
|
||||
<data>
|
||||
<!-- Action to open the wizard (must be declared before the view that references it) -->
|
||||
<record id="action_remote_translation_sync_wizard" model="ir.actions.act_window">
|
||||
<field name="name">Загрузка перевода из удаленной базы</field>
|
||||
<field name="type">ir.actions.act_window</field>
|
||||
<field name="res_model">translation.remote.sync.wizard</field>
|
||||
<field name="view_mode">form</field>
|
||||
<field name="target">new</field>
|
||||
<field name="help">Загрузить переводы модулей с удалённого сервера Odoo</field>
|
||||
</record>
|
||||
|
||||
<!-- Form view for Remote Translation Sync Wizard -->
|
||||
<record id="remote_translation_sync_wizard_form" model="ir.ui.view">
|
||||
<field name="name">translation.remote.sync.wizard.form</field>
|
||||
<field name="model">translation.remote.sync.wizard</field>
|
||||
<field name="arch" type="xml">
|
||||
<form>
|
||||
<field name="state" invisible="1"/>
|
||||
|
||||
<!-- FORM STATE: Initial form to enter connection parameters -->
|
||||
<div invisible="state != 'form'">
|
||||
<div class="alert alert-info" role="alert">
|
||||
<p>Укажите параметры подключения к удалённому Odoo серверу,
|
||||
выберите модули и язык для синхронизации переводов.</p>
|
||||
</div>
|
||||
|
||||
<group>
|
||||
<group string="Подключение к удалённому серверу">
|
||||
<field name="remote_url" required="1"
|
||||
placeholder="http://example.com:8069"/>
|
||||
<field name="remote_db" required="1"/>
|
||||
<field name="remote_user" required="1"/>
|
||||
<field name="remote_password" required="1" password="True"/>
|
||||
</group>
|
||||
|
||||
<group string="Что синхронизировать">
|
||||
<field name="modules" widget="many2many_tags" required="1"/>
|
||||
<field name="language" required="1"/>
|
||||
</group>
|
||||
|
||||
<group string="Опции">
|
||||
<field name="overwrite"/>
|
||||
<field name="save_credentials"/>
|
||||
</group>
|
||||
</group>
|
||||
</div>
|
||||
|
||||
<!-- PREVIEW STATE: Show what will be imported -->
|
||||
<div invisible="state != 'preview'">
|
||||
<div class="alert alert-info" role="status">
|
||||
<p>Просмотр переводов, которые будут загружены:</p>
|
||||
</div>
|
||||
|
||||
<field name="preview_lines" nolabel="1" readonly="1"
|
||||
widget="text"/>
|
||||
</div>
|
||||
|
||||
<!-- DONE STATE: Show results -->
|
||||
<div invisible="state != 'done'">
|
||||
<div class="alert alert-success" role="status">
|
||||
<p>Синхронизация завершена!</p>
|
||||
</div>
|
||||
|
||||
<field name="result_message" nolabel="1" readonly="1"
|
||||
widget="text"/>
|
||||
</div>
|
||||
|
||||
<footer>
|
||||
<!-- form state -->
|
||||
<button name="action_preview" type="object"
|
||||
string="Просмотр" class="btn-primary"
|
||||
invisible="state != 'form'"/>
|
||||
<button name="action_sync" type="object"
|
||||
string="Загрузить" class="btn btn-success"
|
||||
invisible="state not in ('form', 'preview')"/>
|
||||
<button name="action_open_local_sync" type="object"
|
||||
string="Загрузить из локального хранилища"
|
||||
class="btn btn-secondary"
|
||||
invisible="state != 'form'"/>
|
||||
<!-- done state -->
|
||||
<button string="Закрыть" class="btn btn-primary"
|
||||
special="cancel" invisible="state != 'done'"/>
|
||||
<!-- cancel for form + preview -->
|
||||
<button string="Отмена" class="btn btn-secondary"
|
||||
special="cancel" invisible="state == 'done'"/>
|
||||
</footer>
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<!-- Menu item under Settings > Translations > Import / Export -->
|
||||
<menuitem id="menu_remote_translation_sync"
|
||||
name="Загрузка перевода из удаленной базы"
|
||||
action="action_remote_translation_sync_wizard"
|
||||
parent="base.menu_translation_export"
|
||||
sequence="30"
|
||||
groups="base.group_system"/>
|
||||
</data>
|
||||
</odoo>
|
||||
41
translation_helper/views/res_config_settings_views.xml
Normal file
41
translation_helper/views/res_config_settings_views.xml
Normal file
@@ -0,0 +1,41 @@
|
||||
<?xml version="1.0" encoding="utf-8" ?>
|
||||
<odoo>
|
||||
<record id="res_config_settings_view_form_budget" model="ir.ui.view">
|
||||
<field name="name">res.config.settings.view.form.budget</field>
|
||||
<field name="model">res.config.settings</field>
|
||||
<field name="priority" eval="25" />
|
||||
<field name="inherit_id" ref="base_setup.res_config_settings_view_form" />
|
||||
<field name="arch" type="xml">
|
||||
<xpath expr="//form" position="inside">
|
||||
<app string="Переводы" groups="base.group_system" name="translation_helper" img="/translation_helper/static/description/icon.png">
|
||||
<block title="Translation Helper" name="translation_helper_setting_container">
|
||||
<setting id="translation_weblate_server_protocol">
|
||||
<field name="translation_weblate_server_protocol" />
|
||||
<div class="text-muted">
|
||||
Протокол вашего Weblate сервера
|
||||
</div>
|
||||
</setting>
|
||||
<setting id="translation_weblate_server_address">
|
||||
<field name="translation_weblate_server_address" />
|
||||
<div class="text-muted">
|
||||
Адрес вашего weblate сервера
|
||||
</div>
|
||||
</setting>
|
||||
<setting id="translation_weblate_project_alias">
|
||||
<field name="translation_weblate_project_alias" />
|
||||
<div class="text-muted">
|
||||
Алиас вашего Weblate проекта
|
||||
</div>
|
||||
</setting>
|
||||
<setting id="translation_weblate_project_language">
|
||||
<field name="translation_weblate_project_language" />
|
||||
<div class="text-muted">
|
||||
Язык для вашего Weblate проекта
|
||||
</div>
|
||||
</setting>
|
||||
</block>
|
||||
</app>
|
||||
</xpath>
|
||||
</field>
|
||||
</record>
|
||||
</odoo>
|
||||
9
translation_helper/views/templates.xml
Normal file
9
translation_helper/views/templates.xml
Normal file
@@ -0,0 +1,9 @@
|
||||
<odoo>
|
||||
<template id="translation_helper.layout_with_translate" name="Web layout with translate" inherit_id="web.layout">
|
||||
<xpath expr="//head/script[@id='web.layout.odooscript']" position="after">
|
||||
<script id="translation_helper.layout.odooscript.add.translate" type="text/javascript">
|
||||
odoo.translate = "<t t-esc="translate" />"
|
||||
</script>
|
||||
</xpath>
|
||||
</template>
|
||||
</odoo>
|
||||
Reference in New Issue
Block a user