first commit
This commit is contained in:
6
modules/product_image/__init__.py
Normal file
6
modules/product_image/__init__.py
Normal file
@@ -0,0 +1,6 @@
|
||||
# This file is part of Tryton. The COPYRIGHT file at the top level of
|
||||
# this repository contains the full copyright notices and license terms.
|
||||
|
||||
from . import routes
|
||||
|
||||
__all__ = [routes]
|
||||
BIN
modules/product_image/__pycache__/__init__.cpython-311.pyc
Normal file
BIN
modules/product_image/__pycache__/__init__.cpython-311.pyc
Normal file
Binary file not shown.
BIN
modules/product_image/__pycache__/exceptions.cpython-311.pyc
Normal file
BIN
modules/product_image/__pycache__/exceptions.cpython-311.pyc
Normal file
Binary file not shown.
BIN
modules/product_image/__pycache__/product.cpython-311.pyc
Normal file
BIN
modules/product_image/__pycache__/product.cpython-311.pyc
Normal file
Binary file not shown.
BIN
modules/product_image/__pycache__/routes.cpython-311.pyc
Normal file
BIN
modules/product_image/__pycache__/routes.cpython-311.pyc
Normal file
Binary file not shown.
8
modules/product_image/exceptions.py
Normal file
8
modules/product_image/exceptions.py
Normal file
@@ -0,0 +1,8 @@
|
||||
# This file is part of Tryton. The COPYRIGHT file at the top level of
|
||||
# this repository contains the full copyright notices and license terms.
|
||||
|
||||
from trytond.model.exceptions import ValidationError
|
||||
|
||||
|
||||
class ImageValidationError(ValidationError):
|
||||
pass
|
||||
135
modules/product_image/locale/bg.po
Normal file
135
modules/product_image/locale/bg.po
Normal file
@@ -0,0 +1,135 @@
|
||||
#
|
||||
msgid ""
|
||||
msgstr "Content-Type: text/plain; charset=utf-8\n"
|
||||
|
||||
msgctxt "field:product.category,image_url:"
|
||||
msgid "Image URL"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.category,images:"
|
||||
msgid "Images"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.category.image,cache:"
|
||||
msgid "Cache"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.category.image,category:"
|
||||
msgid "Category"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.category.image,description:"
|
||||
msgid "Description"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.category.image,image:"
|
||||
msgid "Image"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.category.image,image_id:"
|
||||
msgid "Image ID"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.category.image.cache,category_image:"
|
||||
msgid "Category Image"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.category.image.cache,height:"
|
||||
msgid "Height"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.category.image.cache,image:"
|
||||
msgid "Image"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.category.image.cache,image_id:"
|
||||
msgid "Image ID"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.category.image.cache,width:"
|
||||
msgid "Width"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.image,cache:"
|
||||
msgid "Cache"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.image,description:"
|
||||
msgid "Description"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.image,image:"
|
||||
msgid "Image"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.image,image_id:"
|
||||
msgid "Image ID"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.image,product:"
|
||||
msgid "Variant"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.image,template:"
|
||||
msgid "Product"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.image.cache,height:"
|
||||
msgid "Height"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.image.cache,image:"
|
||||
msgid "Image"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.image.cache,image_id:"
|
||||
msgid "Image ID"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.image.cache,product_image:"
|
||||
msgid "Product Image"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.image.cache,width:"
|
||||
msgid "Width"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.product,image_url:"
|
||||
msgid "Image URL"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.product,images:"
|
||||
msgid "Images"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.template,image_url:"
|
||||
msgid "Image URL"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.template,images:"
|
||||
msgid "Images"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:ir.message,text:msg_image_cache_size_unique"
|
||||
msgid "The size of cached image must be unique."
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:ir.message,text:msg_product_image_error"
|
||||
msgid "Can not open or identify the image set for the product."
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:product.category.image,string:"
|
||||
msgid "Product Category Image"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:product.category.image.cache,string:"
|
||||
msgid "Product Category Image Cache"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:product.image,string:"
|
||||
msgid "Product Image"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:product.image.cache,string:"
|
||||
msgid "Product Image Cache"
|
||||
msgstr ""
|
||||
135
modules/product_image/locale/ca.po
Normal file
135
modules/product_image/locale/ca.po
Normal file
@@ -0,0 +1,135 @@
|
||||
#
|
||||
msgid ""
|
||||
msgstr "Content-Type: text/plain; charset=utf-8\n"
|
||||
|
||||
msgctxt "field:product.category,image_url:"
|
||||
msgid "Image URL"
|
||||
msgstr "URL imatge"
|
||||
|
||||
msgctxt "field:product.category,images:"
|
||||
msgid "Images"
|
||||
msgstr "Imatges"
|
||||
|
||||
msgctxt "field:product.category.image,cache:"
|
||||
msgid "Cache"
|
||||
msgstr "Memòria cau"
|
||||
|
||||
msgctxt "field:product.category.image,category:"
|
||||
msgid "Category"
|
||||
msgstr "Categoria"
|
||||
|
||||
msgctxt "field:product.category.image,description:"
|
||||
msgid "Description"
|
||||
msgstr "Descripció"
|
||||
|
||||
msgctxt "field:product.category.image,image:"
|
||||
msgid "Image"
|
||||
msgstr "Imatge"
|
||||
|
||||
msgctxt "field:product.category.image,image_id:"
|
||||
msgid "Image ID"
|
||||
msgstr "ID de la imatge"
|
||||
|
||||
msgctxt "field:product.category.image.cache,category_image:"
|
||||
msgid "Category Image"
|
||||
msgstr "Categoria Imatge"
|
||||
|
||||
msgctxt "field:product.category.image.cache,height:"
|
||||
msgid "Height"
|
||||
msgstr "Altura"
|
||||
|
||||
msgctxt "field:product.category.image.cache,image:"
|
||||
msgid "Image"
|
||||
msgstr "Imatge"
|
||||
|
||||
msgctxt "field:product.category.image.cache,image_id:"
|
||||
msgid "Image ID"
|
||||
msgstr "ID de la imatge"
|
||||
|
||||
msgctxt "field:product.category.image.cache,width:"
|
||||
msgid "Width"
|
||||
msgstr "Amplada"
|
||||
|
||||
msgctxt "field:product.image,cache:"
|
||||
msgid "Cache"
|
||||
msgstr "Memòria cau"
|
||||
|
||||
msgctxt "field:product.image,description:"
|
||||
msgid "Description"
|
||||
msgstr "Descripció"
|
||||
|
||||
msgctxt "field:product.image,image:"
|
||||
msgid "Image"
|
||||
msgstr "Imatge"
|
||||
|
||||
msgctxt "field:product.image,image_id:"
|
||||
msgid "Image ID"
|
||||
msgstr "ID de la imatge"
|
||||
|
||||
msgctxt "field:product.image,product:"
|
||||
msgid "Variant"
|
||||
msgstr "Variant"
|
||||
|
||||
msgctxt "field:product.image,template:"
|
||||
msgid "Product"
|
||||
msgstr "Producte"
|
||||
|
||||
msgctxt "field:product.image.cache,height:"
|
||||
msgid "Height"
|
||||
msgstr "Altura"
|
||||
|
||||
msgctxt "field:product.image.cache,image:"
|
||||
msgid "Image"
|
||||
msgstr "Imatge"
|
||||
|
||||
msgctxt "field:product.image.cache,image_id:"
|
||||
msgid "Image ID"
|
||||
msgstr "ID de la imatge"
|
||||
|
||||
msgctxt "field:product.image.cache,product_image:"
|
||||
msgid "Product Image"
|
||||
msgstr "Imatge del producte"
|
||||
|
||||
msgctxt "field:product.image.cache,width:"
|
||||
msgid "Width"
|
||||
msgstr "Amplada"
|
||||
|
||||
msgctxt "field:product.product,image_url:"
|
||||
msgid "Image URL"
|
||||
msgstr "URL de la imatge"
|
||||
|
||||
msgctxt "field:product.product,images:"
|
||||
msgid "Images"
|
||||
msgstr "Imatges"
|
||||
|
||||
msgctxt "field:product.template,image_url:"
|
||||
msgid "Image URL"
|
||||
msgstr "URL de la imatge"
|
||||
|
||||
msgctxt "field:product.template,images:"
|
||||
msgid "Images"
|
||||
msgstr "Imatges"
|
||||
|
||||
msgctxt "model:ir.message,text:msg_image_cache_size_unique"
|
||||
msgid "The size of cached image must be unique."
|
||||
msgstr "La mida d'una imatge en cache ha de ser única."
|
||||
|
||||
msgctxt "model:ir.message,text:msg_product_image_error"
|
||||
msgid "Can not open or identify the image set for the product."
|
||||
msgstr "No es pot obrir o identificar la imatge del producte."
|
||||
|
||||
msgctxt "model:product.category.image,string:"
|
||||
msgid "Product Category Image"
|
||||
msgstr "Imatge de la categoria del producte"
|
||||
|
||||
msgctxt "model:product.category.image.cache,string:"
|
||||
msgid "Product Category Image Cache"
|
||||
msgstr "Cache imatge categoría"
|
||||
|
||||
msgctxt "model:product.image,string:"
|
||||
msgid "Product Image"
|
||||
msgstr "Imatge del producte"
|
||||
|
||||
msgctxt "model:product.image.cache,string:"
|
||||
msgid "Product Image Cache"
|
||||
msgstr "Cache de la imatge del producte"
|
||||
135
modules/product_image/locale/cs.po
Normal file
135
modules/product_image/locale/cs.po
Normal file
@@ -0,0 +1,135 @@
|
||||
#
|
||||
msgid ""
|
||||
msgstr "Content-Type: text/plain; charset=utf-8\n"
|
||||
|
||||
msgctxt "field:product.category,image_url:"
|
||||
msgid "Image URL"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.category,images:"
|
||||
msgid "Images"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.category.image,cache:"
|
||||
msgid "Cache"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.category.image,category:"
|
||||
msgid "Category"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.category.image,description:"
|
||||
msgid "Description"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.category.image,image:"
|
||||
msgid "Image"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.category.image,image_id:"
|
||||
msgid "Image ID"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.category.image.cache,category_image:"
|
||||
msgid "Category Image"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.category.image.cache,height:"
|
||||
msgid "Height"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.category.image.cache,image:"
|
||||
msgid "Image"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.category.image.cache,image_id:"
|
||||
msgid "Image ID"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.category.image.cache,width:"
|
||||
msgid "Width"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.image,cache:"
|
||||
msgid "Cache"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.image,description:"
|
||||
msgid "Description"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.image,image:"
|
||||
msgid "Image"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.image,image_id:"
|
||||
msgid "Image ID"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.image,product:"
|
||||
msgid "Variant"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.image,template:"
|
||||
msgid "Product"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.image.cache,height:"
|
||||
msgid "Height"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.image.cache,image:"
|
||||
msgid "Image"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.image.cache,image_id:"
|
||||
msgid "Image ID"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.image.cache,product_image:"
|
||||
msgid "Product Image"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.image.cache,width:"
|
||||
msgid "Width"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.product,image_url:"
|
||||
msgid "Image URL"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.product,images:"
|
||||
msgid "Images"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.template,image_url:"
|
||||
msgid "Image URL"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.template,images:"
|
||||
msgid "Images"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:ir.message,text:msg_image_cache_size_unique"
|
||||
msgid "The size of cached image must be unique."
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:ir.message,text:msg_product_image_error"
|
||||
msgid "Can not open or identify the image set for the product."
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:product.category.image,string:"
|
||||
msgid "Product Category Image"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:product.category.image.cache,string:"
|
||||
msgid "Product Category Image Cache"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:product.image,string:"
|
||||
msgid "Product Image"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:product.image.cache,string:"
|
||||
msgid "Product Image Cache"
|
||||
msgstr ""
|
||||
138
modules/product_image/locale/de.po
Normal file
138
modules/product_image/locale/de.po
Normal file
@@ -0,0 +1,138 @@
|
||||
#
|
||||
msgid ""
|
||||
msgstr "Content-Type: text/plain; charset=utf-8\n"
|
||||
|
||||
msgctxt "field:product.category,image_url:"
|
||||
msgid "Image URL"
|
||||
msgstr "Bild-URL"
|
||||
|
||||
msgctxt "field:product.category,images:"
|
||||
msgid "Images"
|
||||
msgstr "Bilder"
|
||||
|
||||
msgctxt "field:product.category.image,cache:"
|
||||
msgid "Cache"
|
||||
msgstr "Cache"
|
||||
|
||||
msgctxt "field:product.category.image,category:"
|
||||
msgid "Category"
|
||||
msgstr "Kategorie"
|
||||
|
||||
msgctxt "field:product.category.image,description:"
|
||||
msgid "Description"
|
||||
msgstr "Beschreibung"
|
||||
|
||||
msgctxt "field:product.category.image,image:"
|
||||
msgid "Image"
|
||||
msgstr "Bild"
|
||||
|
||||
msgctxt "field:product.category.image,image_id:"
|
||||
msgid "Image ID"
|
||||
msgstr "Bild-ID"
|
||||
|
||||
msgctxt "field:product.category.image.cache,category_image:"
|
||||
msgid "Category Image"
|
||||
msgstr "Kategoriebild"
|
||||
|
||||
msgctxt "field:product.category.image.cache,height:"
|
||||
msgid "Height"
|
||||
msgstr "Höhe"
|
||||
|
||||
msgctxt "field:product.category.image.cache,image:"
|
||||
msgid "Image"
|
||||
msgstr "Bild"
|
||||
|
||||
msgctxt "field:product.category.image.cache,image_id:"
|
||||
msgid "Image ID"
|
||||
msgstr "Bild-ID"
|
||||
|
||||
msgctxt "field:product.category.image.cache,width:"
|
||||
msgid "Width"
|
||||
msgstr "Breite"
|
||||
|
||||
msgctxt "field:product.image,cache:"
|
||||
msgid "Cache"
|
||||
msgstr "Cache"
|
||||
|
||||
msgctxt "field:product.image,description:"
|
||||
msgid "Description"
|
||||
msgstr "Beschreibung"
|
||||
|
||||
msgctxt "field:product.image,image:"
|
||||
msgid "Image"
|
||||
msgstr "Bild"
|
||||
|
||||
msgctxt "field:product.image,image_id:"
|
||||
msgid "Image ID"
|
||||
msgstr "Bild ID"
|
||||
|
||||
msgctxt "field:product.image,product:"
|
||||
msgid "Variant"
|
||||
msgstr "Variante"
|
||||
|
||||
msgctxt "field:product.image,template:"
|
||||
msgid "Product"
|
||||
msgstr "Artikel"
|
||||
|
||||
msgctxt "field:product.image.cache,height:"
|
||||
msgid "Height"
|
||||
msgstr "Höhe"
|
||||
|
||||
msgctxt "field:product.image.cache,image:"
|
||||
msgid "Image"
|
||||
msgstr "Bild"
|
||||
|
||||
msgctxt "field:product.image.cache,image_id:"
|
||||
msgid "Image ID"
|
||||
msgstr "Bild ID"
|
||||
|
||||
msgctxt "field:product.image.cache,product_image:"
|
||||
msgid "Product Image"
|
||||
msgstr "Artikelbild"
|
||||
|
||||
msgctxt "field:product.image.cache,width:"
|
||||
msgid "Width"
|
||||
msgstr "Breite"
|
||||
|
||||
msgctxt "field:product.product,image_url:"
|
||||
msgid "Image URL"
|
||||
msgstr "Bild-URL"
|
||||
|
||||
msgctxt "field:product.product,images:"
|
||||
msgid "Images"
|
||||
msgstr "Bilder"
|
||||
|
||||
msgctxt "field:product.template,image_url:"
|
||||
msgid "Image URL"
|
||||
msgstr "Bild-URL"
|
||||
|
||||
msgctxt "field:product.template,images:"
|
||||
msgid "Images"
|
||||
msgstr "Bilder"
|
||||
|
||||
msgctxt "model:ir.message,text:msg_image_cache_size_unique"
|
||||
msgid "The size of cached image must be unique."
|
||||
msgstr ""
|
||||
"Die Größe für zwischengespeicherte Bilder kann nur einmal vergeben werden."
|
||||
|
||||
msgctxt "model:ir.message,text:msg_product_image_error"
|
||||
msgid "Can not open or identify the image set for the product."
|
||||
msgstr ""
|
||||
"Das für den Artikel festgelegte Bild kann nicht geöffnet oder das Bildformat"
|
||||
" nicht erkannt werden."
|
||||
|
||||
msgctxt "model:product.category.image,string:"
|
||||
msgid "Product Category Image"
|
||||
msgstr "Artikelkategorie Bild"
|
||||
|
||||
msgctxt "model:product.category.image.cache,string:"
|
||||
msgid "Product Category Image Cache"
|
||||
msgstr "Artikelkategorie Bild Cache"
|
||||
|
||||
msgctxt "model:product.image,string:"
|
||||
msgid "Product Image"
|
||||
msgstr "Artikelbild"
|
||||
|
||||
msgctxt "model:product.image.cache,string:"
|
||||
msgid "Product Image Cache"
|
||||
msgstr "Artikelbild Cache"
|
||||
135
modules/product_image/locale/es.po
Normal file
135
modules/product_image/locale/es.po
Normal file
@@ -0,0 +1,135 @@
|
||||
#
|
||||
msgid ""
|
||||
msgstr "Content-Type: text/plain; charset=utf-8\n"
|
||||
|
||||
msgctxt "field:product.category,image_url:"
|
||||
msgid "Image URL"
|
||||
msgstr "URL Imagen"
|
||||
|
||||
msgctxt "field:product.category,images:"
|
||||
msgid "Images"
|
||||
msgstr "Imágenes"
|
||||
|
||||
msgctxt "field:product.category.image,cache:"
|
||||
msgid "Cache"
|
||||
msgstr "Caché"
|
||||
|
||||
msgctxt "field:product.category.image,category:"
|
||||
msgid "Category"
|
||||
msgstr "Categoría"
|
||||
|
||||
msgctxt "field:product.category.image,description:"
|
||||
msgid "Description"
|
||||
msgstr "Descripción"
|
||||
|
||||
msgctxt "field:product.category.image,image:"
|
||||
msgid "Image"
|
||||
msgstr "Imagen"
|
||||
|
||||
msgctxt "field:product.category.image,image_id:"
|
||||
msgid "Image ID"
|
||||
msgstr "ID de la Imagen"
|
||||
|
||||
msgctxt "field:product.category.image.cache,category_image:"
|
||||
msgid "Category Image"
|
||||
msgstr "Imagen Categoría"
|
||||
|
||||
msgctxt "field:product.category.image.cache,height:"
|
||||
msgid "Height"
|
||||
msgstr "Alto"
|
||||
|
||||
msgctxt "field:product.category.image.cache,image:"
|
||||
msgid "Image"
|
||||
msgstr "Imagen"
|
||||
|
||||
msgctxt "field:product.category.image.cache,image_id:"
|
||||
msgid "Image ID"
|
||||
msgstr "ID de la Imagen"
|
||||
|
||||
msgctxt "field:product.category.image.cache,width:"
|
||||
msgid "Width"
|
||||
msgstr "Ancho"
|
||||
|
||||
msgctxt "field:product.image,cache:"
|
||||
msgid "Cache"
|
||||
msgstr "Caché"
|
||||
|
||||
msgctxt "field:product.image,description:"
|
||||
msgid "Description"
|
||||
msgstr "Descripción"
|
||||
|
||||
msgctxt "field:product.image,image:"
|
||||
msgid "Image"
|
||||
msgstr "Imagen"
|
||||
|
||||
msgctxt "field:product.image,image_id:"
|
||||
msgid "Image ID"
|
||||
msgstr "ID Imagen"
|
||||
|
||||
msgctxt "field:product.image,product:"
|
||||
msgid "Variant"
|
||||
msgstr "Variante"
|
||||
|
||||
msgctxt "field:product.image,template:"
|
||||
msgid "Product"
|
||||
msgstr "Producto"
|
||||
|
||||
msgctxt "field:product.image.cache,height:"
|
||||
msgid "Height"
|
||||
msgstr "Alto"
|
||||
|
||||
msgctxt "field:product.image.cache,image:"
|
||||
msgid "Image"
|
||||
msgstr "Imagen"
|
||||
|
||||
msgctxt "field:product.image.cache,image_id:"
|
||||
msgid "Image ID"
|
||||
msgstr "ID Imagen"
|
||||
|
||||
msgctxt "field:product.image.cache,product_image:"
|
||||
msgid "Product Image"
|
||||
msgstr "Imagen producto"
|
||||
|
||||
msgctxt "field:product.image.cache,width:"
|
||||
msgid "Width"
|
||||
msgstr "Ancho"
|
||||
|
||||
msgctxt "field:product.product,image_url:"
|
||||
msgid "Image URL"
|
||||
msgstr "URL Imagen"
|
||||
|
||||
msgctxt "field:product.product,images:"
|
||||
msgid "Images"
|
||||
msgstr "Imágenes"
|
||||
|
||||
msgctxt "field:product.template,image_url:"
|
||||
msgid "Image URL"
|
||||
msgstr "URL Imagen"
|
||||
|
||||
msgctxt "field:product.template,images:"
|
||||
msgid "Images"
|
||||
msgstr "Imágenes"
|
||||
|
||||
msgctxt "model:ir.message,text:msg_image_cache_size_unique"
|
||||
msgid "The size of cached image must be unique."
|
||||
msgstr "El tamaño de una imagen en cache debe ser único."
|
||||
|
||||
msgctxt "model:ir.message,text:msg_product_image_error"
|
||||
msgid "Can not open or identify the image set for the product."
|
||||
msgstr "No se puede abrir o identificar la imagen del producto."
|
||||
|
||||
msgctxt "model:product.category.image,string:"
|
||||
msgid "Product Category Image"
|
||||
msgstr "Imagen de categoría de producto"
|
||||
|
||||
msgctxt "model:product.category.image.cache,string:"
|
||||
msgid "Product Category Image Cache"
|
||||
msgstr "Caché imagen categoría"
|
||||
|
||||
msgctxt "model:product.image,string:"
|
||||
msgid "Product Image"
|
||||
msgstr "Imagen producto"
|
||||
|
||||
msgctxt "model:product.image.cache,string:"
|
||||
msgid "Product Image Cache"
|
||||
msgstr "Caché imagen producto"
|
||||
135
modules/product_image/locale/es_419.po
Normal file
135
modules/product_image/locale/es_419.po
Normal file
@@ -0,0 +1,135 @@
|
||||
#
|
||||
msgid ""
|
||||
msgstr "Content-Type: text/plain; charset=utf-8\n"
|
||||
|
||||
msgctxt "field:product.category,image_url:"
|
||||
msgid "Image URL"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.category,images:"
|
||||
msgid "Images"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.category.image,cache:"
|
||||
msgid "Cache"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.category.image,category:"
|
||||
msgid "Category"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.category.image,description:"
|
||||
msgid "Description"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.category.image,image:"
|
||||
msgid "Image"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.category.image,image_id:"
|
||||
msgid "Image ID"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.category.image.cache,category_image:"
|
||||
msgid "Category Image"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.category.image.cache,height:"
|
||||
msgid "Height"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.category.image.cache,image:"
|
||||
msgid "Image"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.category.image.cache,image_id:"
|
||||
msgid "Image ID"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.category.image.cache,width:"
|
||||
msgid "Width"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.image,cache:"
|
||||
msgid "Cache"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.image,description:"
|
||||
msgid "Description"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.image,image:"
|
||||
msgid "Image"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.image,image_id:"
|
||||
msgid "Image ID"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.image,product:"
|
||||
msgid "Variant"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.image,template:"
|
||||
msgid "Product"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.image.cache,height:"
|
||||
msgid "Height"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.image.cache,image:"
|
||||
msgid "Image"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.image.cache,image_id:"
|
||||
msgid "Image ID"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.image.cache,product_image:"
|
||||
msgid "Product Image"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.image.cache,width:"
|
||||
msgid "Width"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.product,image_url:"
|
||||
msgid "Image URL"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.product,images:"
|
||||
msgid "Images"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.template,image_url:"
|
||||
msgid "Image URL"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.template,images:"
|
||||
msgid "Images"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:ir.message,text:msg_image_cache_size_unique"
|
||||
msgid "The size of cached image must be unique."
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:ir.message,text:msg_product_image_error"
|
||||
msgid "Can not open or identify the image set for the product."
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:product.category.image,string:"
|
||||
msgid "Product Category Image"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:product.category.image.cache,string:"
|
||||
msgid "Product Category Image Cache"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:product.image,string:"
|
||||
msgid "Product Image"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:product.image.cache,string:"
|
||||
msgid "Product Image Cache"
|
||||
msgstr ""
|
||||
135
modules/product_image/locale/et.po
Normal file
135
modules/product_image/locale/et.po
Normal file
@@ -0,0 +1,135 @@
|
||||
#
|
||||
msgid ""
|
||||
msgstr "Content-Type: text/plain; charset=utf-8\n"
|
||||
|
||||
msgctxt "field:product.category,image_url:"
|
||||
msgid "Image URL"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.category,images:"
|
||||
msgid "Images"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.category.image,cache:"
|
||||
msgid "Cache"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.category.image,category:"
|
||||
msgid "Category"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.category.image,description:"
|
||||
msgid "Description"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.category.image,image:"
|
||||
msgid "Image"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.category.image,image_id:"
|
||||
msgid "Image ID"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.category.image.cache,category_image:"
|
||||
msgid "Category Image"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.category.image.cache,height:"
|
||||
msgid "Height"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.category.image.cache,image:"
|
||||
msgid "Image"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.category.image.cache,image_id:"
|
||||
msgid "Image ID"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.category.image.cache,width:"
|
||||
msgid "Width"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.image,cache:"
|
||||
msgid "Cache"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.image,description:"
|
||||
msgid "Description"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.image,image:"
|
||||
msgid "Image"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.image,image_id:"
|
||||
msgid "Image ID"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.image,product:"
|
||||
msgid "Variant"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.image,template:"
|
||||
msgid "Product"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.image.cache,height:"
|
||||
msgid "Height"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.image.cache,image:"
|
||||
msgid "Image"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.image.cache,image_id:"
|
||||
msgid "Image ID"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.image.cache,product_image:"
|
||||
msgid "Product Image"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.image.cache,width:"
|
||||
msgid "Width"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.product,image_url:"
|
||||
msgid "Image URL"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.product,images:"
|
||||
msgid "Images"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.template,image_url:"
|
||||
msgid "Image URL"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.template,images:"
|
||||
msgid "Images"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:ir.message,text:msg_image_cache_size_unique"
|
||||
msgid "The size of cached image must be unique."
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:ir.message,text:msg_product_image_error"
|
||||
msgid "Can not open or identify the image set for the product."
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:product.category.image,string:"
|
||||
msgid "Product Category Image"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:product.category.image.cache,string:"
|
||||
msgid "Product Category Image Cache"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:product.image,string:"
|
||||
msgid "Product Image"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:product.image.cache,string:"
|
||||
msgid "Product Image Cache"
|
||||
msgstr ""
|
||||
135
modules/product_image/locale/fa.po
Normal file
135
modules/product_image/locale/fa.po
Normal file
@@ -0,0 +1,135 @@
|
||||
#
|
||||
msgid ""
|
||||
msgstr "Content-Type: text/plain; charset=utf-8\n"
|
||||
|
||||
msgctxt "field:product.category,image_url:"
|
||||
msgid "Image URL"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.category,images:"
|
||||
msgid "Images"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.category.image,cache:"
|
||||
msgid "Cache"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.category.image,category:"
|
||||
msgid "Category"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.category.image,description:"
|
||||
msgid "Description"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.category.image,image:"
|
||||
msgid "Image"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.category.image,image_id:"
|
||||
msgid "Image ID"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.category.image.cache,category_image:"
|
||||
msgid "Category Image"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.category.image.cache,height:"
|
||||
msgid "Height"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.category.image.cache,image:"
|
||||
msgid "Image"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.category.image.cache,image_id:"
|
||||
msgid "Image ID"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.category.image.cache,width:"
|
||||
msgid "Width"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.image,cache:"
|
||||
msgid "Cache"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.image,description:"
|
||||
msgid "Description"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.image,image:"
|
||||
msgid "Image"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.image,image_id:"
|
||||
msgid "Image ID"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.image,product:"
|
||||
msgid "Variant"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.image,template:"
|
||||
msgid "Product"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.image.cache,height:"
|
||||
msgid "Height"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.image.cache,image:"
|
||||
msgid "Image"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.image.cache,image_id:"
|
||||
msgid "Image ID"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.image.cache,product_image:"
|
||||
msgid "Product Image"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.image.cache,width:"
|
||||
msgid "Width"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.product,image_url:"
|
||||
msgid "Image URL"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.product,images:"
|
||||
msgid "Images"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.template,image_url:"
|
||||
msgid "Image URL"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.template,images:"
|
||||
msgid "Images"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:ir.message,text:msg_image_cache_size_unique"
|
||||
msgid "The size of cached image must be unique."
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:ir.message,text:msg_product_image_error"
|
||||
msgid "Can not open or identify the image set for the product."
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:product.category.image,string:"
|
||||
msgid "Product Category Image"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:product.category.image.cache,string:"
|
||||
msgid "Product Category Image Cache"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:product.image,string:"
|
||||
msgid "Product Image"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:product.image.cache,string:"
|
||||
msgid "Product Image Cache"
|
||||
msgstr ""
|
||||
135
modules/product_image/locale/fi.po
Normal file
135
modules/product_image/locale/fi.po
Normal file
@@ -0,0 +1,135 @@
|
||||
#
|
||||
msgid ""
|
||||
msgstr "Content-Type: text/plain; charset=utf-8\n"
|
||||
|
||||
msgctxt "field:product.category,image_url:"
|
||||
msgid "Image URL"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.category,images:"
|
||||
msgid "Images"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.category.image,cache:"
|
||||
msgid "Cache"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.category.image,category:"
|
||||
msgid "Category"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.category.image,description:"
|
||||
msgid "Description"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.category.image,image:"
|
||||
msgid "Image"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.category.image,image_id:"
|
||||
msgid "Image ID"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.category.image.cache,category_image:"
|
||||
msgid "Category Image"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.category.image.cache,height:"
|
||||
msgid "Height"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.category.image.cache,image:"
|
||||
msgid "Image"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.category.image.cache,image_id:"
|
||||
msgid "Image ID"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.category.image.cache,width:"
|
||||
msgid "Width"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.image,cache:"
|
||||
msgid "Cache"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.image,description:"
|
||||
msgid "Description"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.image,image:"
|
||||
msgid "Image"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.image,image_id:"
|
||||
msgid "Image ID"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.image,product:"
|
||||
msgid "Variant"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.image,template:"
|
||||
msgid "Product"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.image.cache,height:"
|
||||
msgid "Height"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.image.cache,image:"
|
||||
msgid "Image"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.image.cache,image_id:"
|
||||
msgid "Image ID"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.image.cache,product_image:"
|
||||
msgid "Product Image"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.image.cache,width:"
|
||||
msgid "Width"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.product,image_url:"
|
||||
msgid "Image URL"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.product,images:"
|
||||
msgid "Images"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.template,image_url:"
|
||||
msgid "Image URL"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.template,images:"
|
||||
msgid "Images"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:ir.message,text:msg_image_cache_size_unique"
|
||||
msgid "The size of cached image must be unique."
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:ir.message,text:msg_product_image_error"
|
||||
msgid "Can not open or identify the image set for the product."
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:product.category.image,string:"
|
||||
msgid "Product Category Image"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:product.category.image.cache,string:"
|
||||
msgid "Product Category Image Cache"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:product.image,string:"
|
||||
msgid "Product Image"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:product.image.cache,string:"
|
||||
msgid "Product Image Cache"
|
||||
msgstr ""
|
||||
135
modules/product_image/locale/fr.po
Normal file
135
modules/product_image/locale/fr.po
Normal file
@@ -0,0 +1,135 @@
|
||||
#
|
||||
msgid ""
|
||||
msgstr "Content-Type: text/plain; charset=utf-8\n"
|
||||
|
||||
msgctxt "field:product.category,image_url:"
|
||||
msgid "Image URL"
|
||||
msgstr "URL de l'image"
|
||||
|
||||
msgctxt "field:product.category,images:"
|
||||
msgid "Images"
|
||||
msgstr "Images"
|
||||
|
||||
msgctxt "field:product.category.image,cache:"
|
||||
msgid "Cache"
|
||||
msgstr "Cache"
|
||||
|
||||
msgctxt "field:product.category.image,category:"
|
||||
msgid "Category"
|
||||
msgstr "Catégorie"
|
||||
|
||||
msgctxt "field:product.category.image,description:"
|
||||
msgid "Description"
|
||||
msgstr "Description"
|
||||
|
||||
msgctxt "field:product.category.image,image:"
|
||||
msgid "Image"
|
||||
msgstr "Image"
|
||||
|
||||
msgctxt "field:product.category.image,image_id:"
|
||||
msgid "Image ID"
|
||||
msgstr "ID de l'image"
|
||||
|
||||
msgctxt "field:product.category.image.cache,category_image:"
|
||||
msgid "Category Image"
|
||||
msgstr "Image de catégorie"
|
||||
|
||||
msgctxt "field:product.category.image.cache,height:"
|
||||
msgid "Height"
|
||||
msgstr "Hauteur"
|
||||
|
||||
msgctxt "field:product.category.image.cache,image:"
|
||||
msgid "Image"
|
||||
msgstr "Image"
|
||||
|
||||
msgctxt "field:product.category.image.cache,image_id:"
|
||||
msgid "Image ID"
|
||||
msgstr "ID de l'image"
|
||||
|
||||
msgctxt "field:product.category.image.cache,width:"
|
||||
msgid "Width"
|
||||
msgstr "Largeur"
|
||||
|
||||
msgctxt "field:product.image,cache:"
|
||||
msgid "Cache"
|
||||
msgstr "Cache"
|
||||
|
||||
msgctxt "field:product.image,description:"
|
||||
msgid "Description"
|
||||
msgstr "Description"
|
||||
|
||||
msgctxt "field:product.image,image:"
|
||||
msgid "Image"
|
||||
msgstr "Image"
|
||||
|
||||
msgctxt "field:product.image,image_id:"
|
||||
msgid "Image ID"
|
||||
msgstr "ID de l'image"
|
||||
|
||||
msgctxt "field:product.image,product:"
|
||||
msgid "Variant"
|
||||
msgstr "Variante"
|
||||
|
||||
msgctxt "field:product.image,template:"
|
||||
msgid "Product"
|
||||
msgstr "Produit"
|
||||
|
||||
msgctxt "field:product.image.cache,height:"
|
||||
msgid "Height"
|
||||
msgstr "Hauteur"
|
||||
|
||||
msgctxt "field:product.image.cache,image:"
|
||||
msgid "Image"
|
||||
msgstr "Image"
|
||||
|
||||
msgctxt "field:product.image.cache,image_id:"
|
||||
msgid "Image ID"
|
||||
msgstr "ID de l'image"
|
||||
|
||||
msgctxt "field:product.image.cache,product_image:"
|
||||
msgid "Product Image"
|
||||
msgstr "Image du produit"
|
||||
|
||||
msgctxt "field:product.image.cache,width:"
|
||||
msgid "Width"
|
||||
msgstr "Largeur"
|
||||
|
||||
msgctxt "field:product.product,image_url:"
|
||||
msgid "Image URL"
|
||||
msgstr "URL de l'image"
|
||||
|
||||
msgctxt "field:product.product,images:"
|
||||
msgid "Images"
|
||||
msgstr "Images"
|
||||
|
||||
msgctxt "field:product.template,image_url:"
|
||||
msgid "Image URL"
|
||||
msgstr "URL de l'image"
|
||||
|
||||
msgctxt "field:product.template,images:"
|
||||
msgid "Images"
|
||||
msgstr "Images"
|
||||
|
||||
msgctxt "model:ir.message,text:msg_image_cache_size_unique"
|
||||
msgid "The size of cached image must be unique."
|
||||
msgstr "La taille de l'image mise en cache doit être unique."
|
||||
|
||||
msgctxt "model:ir.message,text:msg_product_image_error"
|
||||
msgid "Can not open or identify the image set for the product."
|
||||
msgstr "Impossible d'ouvrir ou d'identifier l''image mise pour le produit."
|
||||
|
||||
msgctxt "model:product.category.image,string:"
|
||||
msgid "Product Category Image"
|
||||
msgstr "Image de catégorie de produit"
|
||||
|
||||
msgctxt "model:product.category.image.cache,string:"
|
||||
msgid "Product Category Image Cache"
|
||||
msgstr "Cache d'image de catégorie de produit"
|
||||
|
||||
msgctxt "model:product.image,string:"
|
||||
msgid "Product Image"
|
||||
msgstr "Image du produit"
|
||||
|
||||
msgctxt "model:product.image.cache,string:"
|
||||
msgid "Product Image Cache"
|
||||
msgstr "Cache d'image de produit"
|
||||
145
modules/product_image/locale/hu.po
Normal file
145
modules/product_image/locale/hu.po
Normal file
@@ -0,0 +1,145 @@
|
||||
#
|
||||
msgid ""
|
||||
msgstr "Content-Type: text/plain; charset=utf-8\n"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "field:product.category,image_url:"
|
||||
msgid "Image URL"
|
||||
msgstr "Képek"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "field:product.category,images:"
|
||||
msgid "Images"
|
||||
msgstr "Képek"
|
||||
|
||||
msgctxt "field:product.category.image,cache:"
|
||||
msgid "Cache"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.category.image,category:"
|
||||
msgid "Category"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.category.image,description:"
|
||||
msgid "Description"
|
||||
msgstr ""
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "field:product.category.image,image:"
|
||||
msgid "Image"
|
||||
msgstr "Képek"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "field:product.category.image,image_id:"
|
||||
msgid "Image ID"
|
||||
msgstr "Képek"
|
||||
|
||||
msgctxt "field:product.category.image.cache,category_image:"
|
||||
msgid "Category Image"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.category.image.cache,height:"
|
||||
msgid "Height"
|
||||
msgstr ""
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "field:product.category.image.cache,image:"
|
||||
msgid "Image"
|
||||
msgstr "Képek"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "field:product.category.image.cache,image_id:"
|
||||
msgid "Image ID"
|
||||
msgstr "Képek"
|
||||
|
||||
msgctxt "field:product.category.image.cache,width:"
|
||||
msgid "Width"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.image,cache:"
|
||||
msgid "Cache"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.image,description:"
|
||||
msgid "Description"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.image,image:"
|
||||
msgid "Image"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.image,image_id:"
|
||||
msgid "Image ID"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.image,product:"
|
||||
msgid "Variant"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.image,template:"
|
||||
msgid "Product"
|
||||
msgstr "Termék"
|
||||
|
||||
msgctxt "field:product.image.cache,height:"
|
||||
msgid "Height"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.image.cache,image:"
|
||||
msgid "Image"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.image.cache,image_id:"
|
||||
msgid "Image ID"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.image.cache,product_image:"
|
||||
msgid "Product Image"
|
||||
msgstr "Termékkép"
|
||||
|
||||
msgctxt "field:product.image.cache,width:"
|
||||
msgid "Width"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.product,image_url:"
|
||||
msgid "Image URL"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.product,images:"
|
||||
msgid "Images"
|
||||
msgstr "Képek"
|
||||
|
||||
msgctxt "field:product.template,image_url:"
|
||||
msgid "Image URL"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.template,images:"
|
||||
msgid "Images"
|
||||
msgstr "Képek"
|
||||
|
||||
msgctxt "model:ir.message,text:msg_image_cache_size_unique"
|
||||
msgid "The size of cached image must be unique."
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:ir.message,text:msg_product_image_error"
|
||||
msgid "Can not open or identify the image set for the product."
|
||||
msgstr ""
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "model:product.category.image,string:"
|
||||
msgid "Product Category Image"
|
||||
msgstr "Termékkép"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "model:product.category.image.cache,string:"
|
||||
msgid "Product Category Image Cache"
|
||||
msgstr "Termékkép"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "model:product.image,string:"
|
||||
msgid "Product Image"
|
||||
msgstr "Termékkép"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "model:product.image.cache,string:"
|
||||
msgid "Product Image Cache"
|
||||
msgstr "Termékkép"
|
||||
135
modules/product_image/locale/id.po
Normal file
135
modules/product_image/locale/id.po
Normal file
@@ -0,0 +1,135 @@
|
||||
#
|
||||
msgid ""
|
||||
msgstr "Content-Type: text/plain; charset=utf-8\n"
|
||||
|
||||
msgctxt "field:product.category,image_url:"
|
||||
msgid "Image URL"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.category,images:"
|
||||
msgid "Images"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.category.image,cache:"
|
||||
msgid "Cache"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.category.image,category:"
|
||||
msgid "Category"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.category.image,description:"
|
||||
msgid "Description"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.category.image,image:"
|
||||
msgid "Image"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.category.image,image_id:"
|
||||
msgid "Image ID"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.category.image.cache,category_image:"
|
||||
msgid "Category Image"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.category.image.cache,height:"
|
||||
msgid "Height"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.category.image.cache,image:"
|
||||
msgid "Image"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.category.image.cache,image_id:"
|
||||
msgid "Image ID"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.category.image.cache,width:"
|
||||
msgid "Width"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.image,cache:"
|
||||
msgid "Cache"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.image,description:"
|
||||
msgid "Description"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.image,image:"
|
||||
msgid "Image"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.image,image_id:"
|
||||
msgid "Image ID"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.image,product:"
|
||||
msgid "Variant"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.image,template:"
|
||||
msgid "Product"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.image.cache,height:"
|
||||
msgid "Height"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.image.cache,image:"
|
||||
msgid "Image"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.image.cache,image_id:"
|
||||
msgid "Image ID"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.image.cache,product_image:"
|
||||
msgid "Product Image"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.image.cache,width:"
|
||||
msgid "Width"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.product,image_url:"
|
||||
msgid "Image URL"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.product,images:"
|
||||
msgid "Images"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.template,image_url:"
|
||||
msgid "Image URL"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.template,images:"
|
||||
msgid "Images"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:ir.message,text:msg_image_cache_size_unique"
|
||||
msgid "The size of cached image must be unique."
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:ir.message,text:msg_product_image_error"
|
||||
msgid "Can not open or identify the image set for the product."
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:product.category.image,string:"
|
||||
msgid "Product Category Image"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:product.category.image.cache,string:"
|
||||
msgid "Product Category Image Cache"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:product.image,string:"
|
||||
msgid "Product Image"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:product.image.cache,string:"
|
||||
msgid "Product Image Cache"
|
||||
msgstr ""
|
||||
136
modules/product_image/locale/it.po
Normal file
136
modules/product_image/locale/it.po
Normal file
@@ -0,0 +1,136 @@
|
||||
#
|
||||
msgid ""
|
||||
msgstr "Content-Type: text/plain; charset=utf-8\n"
|
||||
|
||||
msgctxt "field:product.category,image_url:"
|
||||
msgid "Image URL"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.category,images:"
|
||||
msgid "Images"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.category.image,cache:"
|
||||
msgid "Cache"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.category.image,category:"
|
||||
msgid "Category"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.category.image,description:"
|
||||
msgid "Description"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.category.image,image:"
|
||||
msgid "Image"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.category.image,image_id:"
|
||||
msgid "Image ID"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.category.image.cache,category_image:"
|
||||
msgid "Category Image"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.category.image.cache,height:"
|
||||
msgid "Height"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.category.image.cache,image:"
|
||||
msgid "Image"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.category.image.cache,image_id:"
|
||||
msgid "Image ID"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.category.image.cache,width:"
|
||||
msgid "Width"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.image,cache:"
|
||||
msgid "Cache"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.image,description:"
|
||||
msgid "Description"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.image,image:"
|
||||
msgid "Image"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.image,image_id:"
|
||||
msgid "Image ID"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.image,product:"
|
||||
msgid "Variant"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.image,template:"
|
||||
msgid "Product"
|
||||
msgstr "Prodotto"
|
||||
|
||||
msgctxt "field:product.image.cache,height:"
|
||||
msgid "Height"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.image.cache,image:"
|
||||
msgid "Image"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.image.cache,image_id:"
|
||||
msgid "Image ID"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.image.cache,product_image:"
|
||||
msgid "Product Image"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.image.cache,width:"
|
||||
msgid "Width"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.product,image_url:"
|
||||
msgid "Image URL"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.product,images:"
|
||||
msgid "Images"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.template,image_url:"
|
||||
msgid "Image URL"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.template,images:"
|
||||
msgid "Images"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:ir.message,text:msg_image_cache_size_unique"
|
||||
msgid "The size of cached image must be unique."
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:ir.message,text:msg_product_image_error"
|
||||
msgid "Can not open or identify the image set for the product."
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:product.category.image,string:"
|
||||
msgid "Product Category Image"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:product.category.image.cache,string:"
|
||||
msgid "Product Category Image Cache"
|
||||
msgstr ""
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "model:product.image,string:"
|
||||
msgid "Product Image"
|
||||
msgstr "Prodotto"
|
||||
|
||||
msgctxt "model:product.image.cache,string:"
|
||||
msgid "Product Image Cache"
|
||||
msgstr ""
|
||||
135
modules/product_image/locale/lo.po
Normal file
135
modules/product_image/locale/lo.po
Normal file
@@ -0,0 +1,135 @@
|
||||
#
|
||||
msgid ""
|
||||
msgstr "Content-Type: text/plain; charset=utf-8\n"
|
||||
|
||||
msgctxt "field:product.category,image_url:"
|
||||
msgid "Image URL"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.category,images:"
|
||||
msgid "Images"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.category.image,cache:"
|
||||
msgid "Cache"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.category.image,category:"
|
||||
msgid "Category"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.category.image,description:"
|
||||
msgid "Description"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.category.image,image:"
|
||||
msgid "Image"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.category.image,image_id:"
|
||||
msgid "Image ID"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.category.image.cache,category_image:"
|
||||
msgid "Category Image"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.category.image.cache,height:"
|
||||
msgid "Height"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.category.image.cache,image:"
|
||||
msgid "Image"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.category.image.cache,image_id:"
|
||||
msgid "Image ID"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.category.image.cache,width:"
|
||||
msgid "Width"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.image,cache:"
|
||||
msgid "Cache"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.image,description:"
|
||||
msgid "Description"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.image,image:"
|
||||
msgid "Image"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.image,image_id:"
|
||||
msgid "Image ID"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.image,product:"
|
||||
msgid "Variant"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.image,template:"
|
||||
msgid "Product"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.image.cache,height:"
|
||||
msgid "Height"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.image.cache,image:"
|
||||
msgid "Image"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.image.cache,image_id:"
|
||||
msgid "Image ID"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.image.cache,product_image:"
|
||||
msgid "Product Image"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.image.cache,width:"
|
||||
msgid "Width"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.product,image_url:"
|
||||
msgid "Image URL"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.product,images:"
|
||||
msgid "Images"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.template,image_url:"
|
||||
msgid "Image URL"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.template,images:"
|
||||
msgid "Images"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:ir.message,text:msg_image_cache_size_unique"
|
||||
msgid "The size of cached image must be unique."
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:ir.message,text:msg_product_image_error"
|
||||
msgid "Can not open or identify the image set for the product."
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:product.category.image,string:"
|
||||
msgid "Product Category Image"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:product.category.image.cache,string:"
|
||||
msgid "Product Category Image Cache"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:product.image,string:"
|
||||
msgid "Product Image"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:product.image.cache,string:"
|
||||
msgid "Product Image Cache"
|
||||
msgstr ""
|
||||
135
modules/product_image/locale/lt.po
Normal file
135
modules/product_image/locale/lt.po
Normal file
@@ -0,0 +1,135 @@
|
||||
#
|
||||
msgid ""
|
||||
msgstr "Content-Type: text/plain; charset=utf-8\n"
|
||||
|
||||
msgctxt "field:product.category,image_url:"
|
||||
msgid "Image URL"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.category,images:"
|
||||
msgid "Images"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.category.image,cache:"
|
||||
msgid "Cache"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.category.image,category:"
|
||||
msgid "Category"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.category.image,description:"
|
||||
msgid "Description"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.category.image,image:"
|
||||
msgid "Image"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.category.image,image_id:"
|
||||
msgid "Image ID"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.category.image.cache,category_image:"
|
||||
msgid "Category Image"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.category.image.cache,height:"
|
||||
msgid "Height"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.category.image.cache,image:"
|
||||
msgid "Image"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.category.image.cache,image_id:"
|
||||
msgid "Image ID"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.category.image.cache,width:"
|
||||
msgid "Width"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.image,cache:"
|
||||
msgid "Cache"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.image,description:"
|
||||
msgid "Description"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.image,image:"
|
||||
msgid "Image"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.image,image_id:"
|
||||
msgid "Image ID"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.image,product:"
|
||||
msgid "Variant"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.image,template:"
|
||||
msgid "Product"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.image.cache,height:"
|
||||
msgid "Height"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.image.cache,image:"
|
||||
msgid "Image"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.image.cache,image_id:"
|
||||
msgid "Image ID"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.image.cache,product_image:"
|
||||
msgid "Product Image"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.image.cache,width:"
|
||||
msgid "Width"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.product,image_url:"
|
||||
msgid "Image URL"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.product,images:"
|
||||
msgid "Images"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.template,image_url:"
|
||||
msgid "Image URL"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.template,images:"
|
||||
msgid "Images"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:ir.message,text:msg_image_cache_size_unique"
|
||||
msgid "The size of cached image must be unique."
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:ir.message,text:msg_product_image_error"
|
||||
msgid "Can not open or identify the image set for the product."
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:product.category.image,string:"
|
||||
msgid "Product Category Image"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:product.category.image.cache,string:"
|
||||
msgid "Product Category Image Cache"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:product.image,string:"
|
||||
msgid "Product Image"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:product.image.cache,string:"
|
||||
msgid "Product Image Cache"
|
||||
msgstr ""
|
||||
136
modules/product_image/locale/nl.po
Normal file
136
modules/product_image/locale/nl.po
Normal file
@@ -0,0 +1,136 @@
|
||||
#
|
||||
msgid ""
|
||||
msgstr "Content-Type: text/plain; charset=utf-8\n"
|
||||
|
||||
msgctxt "field:product.category,image_url:"
|
||||
msgid "Image URL"
|
||||
msgstr "Afbeelding URL"
|
||||
|
||||
msgctxt "field:product.category,images:"
|
||||
msgid "Images"
|
||||
msgstr "Afbeeldingen"
|
||||
|
||||
msgctxt "field:product.category.image,cache:"
|
||||
msgid "Cache"
|
||||
msgstr "Cache"
|
||||
|
||||
msgctxt "field:product.category.image,category:"
|
||||
msgid "Category"
|
||||
msgstr "Categorie"
|
||||
|
||||
msgctxt "field:product.category.image,description:"
|
||||
msgid "Description"
|
||||
msgstr "Omschrijving"
|
||||
|
||||
msgctxt "field:product.category.image,image:"
|
||||
msgid "Image"
|
||||
msgstr "Afbeelding"
|
||||
|
||||
msgctxt "field:product.category.image,image_id:"
|
||||
msgid "Image ID"
|
||||
msgstr "Afbeelding ID"
|
||||
|
||||
msgctxt "field:product.category.image.cache,category_image:"
|
||||
msgid "Category Image"
|
||||
msgstr "Categorie afbeelding"
|
||||
|
||||
msgctxt "field:product.category.image.cache,height:"
|
||||
msgid "Height"
|
||||
msgstr "Hoogte"
|
||||
|
||||
msgctxt "field:product.category.image.cache,image:"
|
||||
msgid "Image"
|
||||
msgstr "Afbeelding"
|
||||
|
||||
msgctxt "field:product.category.image.cache,image_id:"
|
||||
msgid "Image ID"
|
||||
msgstr "Afbeelding ID"
|
||||
|
||||
msgctxt "field:product.category.image.cache,width:"
|
||||
msgid "Width"
|
||||
msgstr "Breedte"
|
||||
|
||||
msgctxt "field:product.image,cache:"
|
||||
msgid "Cache"
|
||||
msgstr "Cache"
|
||||
|
||||
msgctxt "field:product.image,description:"
|
||||
msgid "Description"
|
||||
msgstr "Omschrijving"
|
||||
|
||||
msgctxt "field:product.image,image:"
|
||||
msgid "Image"
|
||||
msgstr "Afbeelding"
|
||||
|
||||
msgctxt "field:product.image,image_id:"
|
||||
msgid "Image ID"
|
||||
msgstr "Afbeeldings-ID"
|
||||
|
||||
msgctxt "field:product.image,product:"
|
||||
msgid "Variant"
|
||||
msgstr "Variant"
|
||||
|
||||
msgctxt "field:product.image,template:"
|
||||
msgid "Product"
|
||||
msgstr "Product"
|
||||
|
||||
msgctxt "field:product.image.cache,height:"
|
||||
msgid "Height"
|
||||
msgstr "Hoogte"
|
||||
|
||||
msgctxt "field:product.image.cache,image:"
|
||||
msgid "Image"
|
||||
msgstr "Afbeelding"
|
||||
|
||||
msgctxt "field:product.image.cache,image_id:"
|
||||
msgid "Image ID"
|
||||
msgstr "Afbeeldings-ID"
|
||||
|
||||
msgctxt "field:product.image.cache,product_image:"
|
||||
msgid "Product Image"
|
||||
msgstr "Product afbeelding"
|
||||
|
||||
msgctxt "field:product.image.cache,width:"
|
||||
msgid "Width"
|
||||
msgstr "Breedte"
|
||||
|
||||
msgctxt "field:product.product,image_url:"
|
||||
msgid "Image URL"
|
||||
msgstr "Afbeelding URL"
|
||||
|
||||
msgctxt "field:product.product,images:"
|
||||
msgid "Images"
|
||||
msgstr "Afbeeldingen"
|
||||
|
||||
msgctxt "field:product.template,image_url:"
|
||||
msgid "Image URL"
|
||||
msgstr "Afbeelding URL"
|
||||
|
||||
msgctxt "field:product.template,images:"
|
||||
msgid "Images"
|
||||
msgstr "Afbeeldingen"
|
||||
|
||||
msgctxt "model:ir.message,text:msg_image_cache_size_unique"
|
||||
msgid "The size of cached image must be unique."
|
||||
msgstr "De grootte van de in de cache opgeslagen afbeelding moet uniek zijn."
|
||||
|
||||
msgctxt "model:ir.message,text:msg_product_image_error"
|
||||
msgid "Can not open or identify the image set for the product."
|
||||
msgstr ""
|
||||
"Kan de set met afbeeldingen voor het product niet openen of identificeren."
|
||||
|
||||
msgctxt "model:product.category.image,string:"
|
||||
msgid "Product Category Image"
|
||||
msgstr "Product categorie afbeelding"
|
||||
|
||||
msgctxt "model:product.category.image.cache,string:"
|
||||
msgid "Product Category Image Cache"
|
||||
msgstr "Product categorie afbeelding cache"
|
||||
|
||||
msgctxt "model:product.image,string:"
|
||||
msgid "Product Image"
|
||||
msgstr "Product afbeelding"
|
||||
|
||||
msgctxt "model:product.image.cache,string:"
|
||||
msgid "Product Image Cache"
|
||||
msgstr "Product afbeelding cache"
|
||||
135
modules/product_image/locale/pl.po
Normal file
135
modules/product_image/locale/pl.po
Normal file
@@ -0,0 +1,135 @@
|
||||
#
|
||||
msgid ""
|
||||
msgstr "Content-Type: text/plain; charset=utf-8\n"
|
||||
|
||||
msgctxt "field:product.category,image_url:"
|
||||
msgid "Image URL"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.category,images:"
|
||||
msgid "Images"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.category.image,cache:"
|
||||
msgid "Cache"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.category.image,category:"
|
||||
msgid "Category"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.category.image,description:"
|
||||
msgid "Description"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.category.image,image:"
|
||||
msgid "Image"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.category.image,image_id:"
|
||||
msgid "Image ID"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.category.image.cache,category_image:"
|
||||
msgid "Category Image"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.category.image.cache,height:"
|
||||
msgid "Height"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.category.image.cache,image:"
|
||||
msgid "Image"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.category.image.cache,image_id:"
|
||||
msgid "Image ID"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.category.image.cache,width:"
|
||||
msgid "Width"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.image,cache:"
|
||||
msgid "Cache"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.image,description:"
|
||||
msgid "Description"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.image,image:"
|
||||
msgid "Image"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.image,image_id:"
|
||||
msgid "Image ID"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.image,product:"
|
||||
msgid "Variant"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.image,template:"
|
||||
msgid "Product"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.image.cache,height:"
|
||||
msgid "Height"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.image.cache,image:"
|
||||
msgid "Image"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.image.cache,image_id:"
|
||||
msgid "Image ID"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.image.cache,product_image:"
|
||||
msgid "Product Image"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.image.cache,width:"
|
||||
msgid "Width"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.product,image_url:"
|
||||
msgid "Image URL"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.product,images:"
|
||||
msgid "Images"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.template,image_url:"
|
||||
msgid "Image URL"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.template,images:"
|
||||
msgid "Images"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:ir.message,text:msg_image_cache_size_unique"
|
||||
msgid "The size of cached image must be unique."
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:ir.message,text:msg_product_image_error"
|
||||
msgid "Can not open or identify the image set for the product."
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:product.category.image,string:"
|
||||
msgid "Product Category Image"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:product.category.image.cache,string:"
|
||||
msgid "Product Category Image Cache"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:product.image,string:"
|
||||
msgid "Product Image"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:product.image.cache,string:"
|
||||
msgid "Product Image Cache"
|
||||
msgstr ""
|
||||
135
modules/product_image/locale/pt.po
Normal file
135
modules/product_image/locale/pt.po
Normal file
@@ -0,0 +1,135 @@
|
||||
#
|
||||
msgid ""
|
||||
msgstr "Content-Type: text/plain; charset=utf-8\n"
|
||||
|
||||
msgctxt "field:product.category,image_url:"
|
||||
msgid "Image URL"
|
||||
msgstr "URL da Imagem"
|
||||
|
||||
msgctxt "field:product.category,images:"
|
||||
msgid "Images"
|
||||
msgstr "Imagens"
|
||||
|
||||
msgctxt "field:product.category.image,cache:"
|
||||
msgid "Cache"
|
||||
msgstr "Cache"
|
||||
|
||||
msgctxt "field:product.category.image,category:"
|
||||
msgid "Category"
|
||||
msgstr "Categoria"
|
||||
|
||||
msgctxt "field:product.category.image,description:"
|
||||
msgid "Description"
|
||||
msgstr "Descrição"
|
||||
|
||||
msgctxt "field:product.category.image,image:"
|
||||
msgid "Image"
|
||||
msgstr "Imagem"
|
||||
|
||||
msgctxt "field:product.category.image,image_id:"
|
||||
msgid "Image ID"
|
||||
msgstr "ID da Imagem"
|
||||
|
||||
msgctxt "field:product.category.image.cache,category_image:"
|
||||
msgid "Category Image"
|
||||
msgstr "Imagem da Categoria"
|
||||
|
||||
msgctxt "field:product.category.image.cache,height:"
|
||||
msgid "Height"
|
||||
msgstr "Altura"
|
||||
|
||||
msgctxt "field:product.category.image.cache,image:"
|
||||
msgid "Image"
|
||||
msgstr "Imagem"
|
||||
|
||||
msgctxt "field:product.category.image.cache,image_id:"
|
||||
msgid "Image ID"
|
||||
msgstr "ID da Imagem"
|
||||
|
||||
msgctxt "field:product.category.image.cache,width:"
|
||||
msgid "Width"
|
||||
msgstr "Largura"
|
||||
|
||||
msgctxt "field:product.image,cache:"
|
||||
msgid "Cache"
|
||||
msgstr "Cache"
|
||||
|
||||
msgctxt "field:product.image,description:"
|
||||
msgid "Description"
|
||||
msgstr "Descrição"
|
||||
|
||||
msgctxt "field:product.image,image:"
|
||||
msgid "Image"
|
||||
msgstr "Imagem"
|
||||
|
||||
msgctxt "field:product.image,image_id:"
|
||||
msgid "Image ID"
|
||||
msgstr "ID da Imagem"
|
||||
|
||||
msgctxt "field:product.image,product:"
|
||||
msgid "Variant"
|
||||
msgstr "Variante"
|
||||
|
||||
msgctxt "field:product.image,template:"
|
||||
msgid "Product"
|
||||
msgstr "Produto"
|
||||
|
||||
msgctxt "field:product.image.cache,height:"
|
||||
msgid "Height"
|
||||
msgstr "Altura"
|
||||
|
||||
msgctxt "field:product.image.cache,image:"
|
||||
msgid "Image"
|
||||
msgstr "Imagem"
|
||||
|
||||
msgctxt "field:product.image.cache,image_id:"
|
||||
msgid "Image ID"
|
||||
msgstr "ID da Imagem"
|
||||
|
||||
msgctxt "field:product.image.cache,product_image:"
|
||||
msgid "Product Image"
|
||||
msgstr "Imagem do Produto"
|
||||
|
||||
msgctxt "field:product.image.cache,width:"
|
||||
msgid "Width"
|
||||
msgstr "Largura"
|
||||
|
||||
msgctxt "field:product.product,image_url:"
|
||||
msgid "Image URL"
|
||||
msgstr "URL da Imagem"
|
||||
|
||||
msgctxt "field:product.product,images:"
|
||||
msgid "Images"
|
||||
msgstr "Imagens"
|
||||
|
||||
msgctxt "field:product.template,image_url:"
|
||||
msgid "Image URL"
|
||||
msgstr "URL da Imagem"
|
||||
|
||||
msgctxt "field:product.template,images:"
|
||||
msgid "Images"
|
||||
msgstr "Imagens"
|
||||
|
||||
msgctxt "model:ir.message,text:msg_image_cache_size_unique"
|
||||
msgid "The size of cached image must be unique."
|
||||
msgstr "O tamanho das imagens no cache deve ser único."
|
||||
|
||||
msgctxt "model:ir.message,text:msg_product_image_error"
|
||||
msgid "Can not open or identify the image set for the product."
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:product.category.image,string:"
|
||||
msgid "Product Category Image"
|
||||
msgstr "Imagem da Categoria"
|
||||
|
||||
msgctxt "model:product.category.image.cache,string:"
|
||||
msgid "Product Category Image Cache"
|
||||
msgstr "Imagem da Categoria, em Cache"
|
||||
|
||||
msgctxt "model:product.image,string:"
|
||||
msgid "Product Image"
|
||||
msgstr "Imagem do Produto"
|
||||
|
||||
msgctxt "model:product.image.cache,string:"
|
||||
msgid "Product Image Cache"
|
||||
msgstr "Imagem do Produto, em Cache"
|
||||
135
modules/product_image/locale/ro.po
Normal file
135
modules/product_image/locale/ro.po
Normal file
@@ -0,0 +1,135 @@
|
||||
#
|
||||
msgid ""
|
||||
msgstr "Content-Type: text/plain; charset=utf-8\n"
|
||||
|
||||
msgctxt "field:product.category,image_url:"
|
||||
msgid "Image URL"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.category,images:"
|
||||
msgid "Images"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.category.image,cache:"
|
||||
msgid "Cache"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.category.image,category:"
|
||||
msgid "Category"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.category.image,description:"
|
||||
msgid "Description"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.category.image,image:"
|
||||
msgid "Image"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.category.image,image_id:"
|
||||
msgid "Image ID"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.category.image.cache,category_image:"
|
||||
msgid "Category Image"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.category.image.cache,height:"
|
||||
msgid "Height"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.category.image.cache,image:"
|
||||
msgid "Image"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.category.image.cache,image_id:"
|
||||
msgid "Image ID"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.category.image.cache,width:"
|
||||
msgid "Width"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.image,cache:"
|
||||
msgid "Cache"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.image,description:"
|
||||
msgid "Description"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.image,image:"
|
||||
msgid "Image"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.image,image_id:"
|
||||
msgid "Image ID"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.image,product:"
|
||||
msgid "Variant"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.image,template:"
|
||||
msgid "Product"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.image.cache,height:"
|
||||
msgid "Height"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.image.cache,image:"
|
||||
msgid "Image"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.image.cache,image_id:"
|
||||
msgid "Image ID"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.image.cache,product_image:"
|
||||
msgid "Product Image"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.image.cache,width:"
|
||||
msgid "Width"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.product,image_url:"
|
||||
msgid "Image URL"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.product,images:"
|
||||
msgid "Images"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.template,image_url:"
|
||||
msgid "Image URL"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.template,images:"
|
||||
msgid "Images"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:ir.message,text:msg_image_cache_size_unique"
|
||||
msgid "The size of cached image must be unique."
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:ir.message,text:msg_product_image_error"
|
||||
msgid "Can not open or identify the image set for the product."
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:product.category.image,string:"
|
||||
msgid "Product Category Image"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:product.category.image.cache,string:"
|
||||
msgid "Product Category Image Cache"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:product.image,string:"
|
||||
msgid "Product Image"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:product.image.cache,string:"
|
||||
msgid "Product Image Cache"
|
||||
msgstr ""
|
||||
135
modules/product_image/locale/ru.po
Normal file
135
modules/product_image/locale/ru.po
Normal file
@@ -0,0 +1,135 @@
|
||||
#
|
||||
msgid ""
|
||||
msgstr "Content-Type: text/plain; charset=utf-8\n"
|
||||
|
||||
msgctxt "field:product.category,image_url:"
|
||||
msgid "Image URL"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.category,images:"
|
||||
msgid "Images"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.category.image,cache:"
|
||||
msgid "Cache"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.category.image,category:"
|
||||
msgid "Category"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.category.image,description:"
|
||||
msgid "Description"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.category.image,image:"
|
||||
msgid "Image"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.category.image,image_id:"
|
||||
msgid "Image ID"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.category.image.cache,category_image:"
|
||||
msgid "Category Image"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.category.image.cache,height:"
|
||||
msgid "Height"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.category.image.cache,image:"
|
||||
msgid "Image"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.category.image.cache,image_id:"
|
||||
msgid "Image ID"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.category.image.cache,width:"
|
||||
msgid "Width"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.image,cache:"
|
||||
msgid "Cache"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.image,description:"
|
||||
msgid "Description"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.image,image:"
|
||||
msgid "Image"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.image,image_id:"
|
||||
msgid "Image ID"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.image,product:"
|
||||
msgid "Variant"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.image,template:"
|
||||
msgid "Product"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.image.cache,height:"
|
||||
msgid "Height"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.image.cache,image:"
|
||||
msgid "Image"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.image.cache,image_id:"
|
||||
msgid "Image ID"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.image.cache,product_image:"
|
||||
msgid "Product Image"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.image.cache,width:"
|
||||
msgid "Width"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.product,image_url:"
|
||||
msgid "Image URL"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.product,images:"
|
||||
msgid "Images"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.template,image_url:"
|
||||
msgid "Image URL"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.template,images:"
|
||||
msgid "Images"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:ir.message,text:msg_image_cache_size_unique"
|
||||
msgid "The size of cached image must be unique."
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:ir.message,text:msg_product_image_error"
|
||||
msgid "Can not open or identify the image set for the product."
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:product.category.image,string:"
|
||||
msgid "Product Category Image"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:product.category.image.cache,string:"
|
||||
msgid "Product Category Image Cache"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:product.image,string:"
|
||||
msgid "Product Image"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:product.image.cache,string:"
|
||||
msgid "Product Image Cache"
|
||||
msgstr ""
|
||||
147
modules/product_image/locale/sl.po
Normal file
147
modules/product_image/locale/sl.po
Normal file
@@ -0,0 +1,147 @@
|
||||
#
|
||||
msgid ""
|
||||
msgstr "Content-Type: text/plain; charset=utf-8\n"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "field:product.category,image_url:"
|
||||
msgid "Image URL"
|
||||
msgstr "URL podobe"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "field:product.category,images:"
|
||||
msgid "Images"
|
||||
msgstr "Podobe"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "field:product.category.image,cache:"
|
||||
msgid "Cache"
|
||||
msgstr "Predpomnilnik"
|
||||
|
||||
msgctxt "field:product.category.image,category:"
|
||||
msgid "Category"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.category.image,description:"
|
||||
msgid "Description"
|
||||
msgstr ""
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "field:product.category.image,image:"
|
||||
msgid "Image"
|
||||
msgstr "Podoba"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "field:product.category.image,image_id:"
|
||||
msgid "Image ID"
|
||||
msgstr "ID podobe"
|
||||
|
||||
msgctxt "field:product.category.image.cache,category_image:"
|
||||
msgid "Category Image"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.category.image.cache,height:"
|
||||
msgid "Height"
|
||||
msgstr ""
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "field:product.category.image.cache,image:"
|
||||
msgid "Image"
|
||||
msgstr "Podoba"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "field:product.category.image.cache,image_id:"
|
||||
msgid "Image ID"
|
||||
msgstr "ID podobe"
|
||||
|
||||
msgctxt "field:product.category.image.cache,width:"
|
||||
msgid "Width"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.image,cache:"
|
||||
msgid "Cache"
|
||||
msgstr "Predpomnilnik"
|
||||
|
||||
msgctxt "field:product.image,description:"
|
||||
msgid "Description"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.image,image:"
|
||||
msgid "Image"
|
||||
msgstr "Podoba"
|
||||
|
||||
msgctxt "field:product.image,image_id:"
|
||||
msgid "Image ID"
|
||||
msgstr "ID podobe"
|
||||
|
||||
msgctxt "field:product.image,product:"
|
||||
msgid "Variant"
|
||||
msgstr "Različica"
|
||||
|
||||
msgctxt "field:product.image,template:"
|
||||
msgid "Product"
|
||||
msgstr "Izdelek"
|
||||
|
||||
msgctxt "field:product.image.cache,height:"
|
||||
msgid "Height"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.image.cache,image:"
|
||||
msgid "Image"
|
||||
msgstr "Podoba"
|
||||
|
||||
msgctxt "field:product.image.cache,image_id:"
|
||||
msgid "Image ID"
|
||||
msgstr "ID podobe"
|
||||
|
||||
msgctxt "field:product.image.cache,product_image:"
|
||||
msgid "Product Image"
|
||||
msgstr "Podoba produkta"
|
||||
|
||||
msgctxt "field:product.image.cache,width:"
|
||||
msgid "Width"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.product,image_url:"
|
||||
msgid "Image URL"
|
||||
msgstr "URL podobe"
|
||||
|
||||
msgctxt "field:product.product,images:"
|
||||
msgid "Images"
|
||||
msgstr "Podobe"
|
||||
|
||||
msgctxt "field:product.template,image_url:"
|
||||
msgid "Image URL"
|
||||
msgstr "URL podobe"
|
||||
|
||||
msgctxt "field:product.template,images:"
|
||||
msgid "Images"
|
||||
msgstr "Podobe"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "model:ir.message,text:msg_image_cache_size_unique"
|
||||
msgid "The size of cached image must be unique."
|
||||
msgstr "Velikost podobe izdelka mora biti edinstvena."
|
||||
|
||||
msgctxt "model:ir.message,text:msg_product_image_error"
|
||||
msgid "Can not open or identify the image set for the product."
|
||||
msgstr ""
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "model:product.category.image,string:"
|
||||
msgid "Product Category Image"
|
||||
msgstr "Podoba produkta"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "model:product.category.image.cache,string:"
|
||||
msgid "Product Category Image Cache"
|
||||
msgstr "Predpomnilnik podobe izdelka"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "model:product.image,string:"
|
||||
msgid "Product Image"
|
||||
msgstr "Podoba produkta"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "model:product.image.cache,string:"
|
||||
msgid "Product Image Cache"
|
||||
msgstr "Predpomnilnik podobe izdelka"
|
||||
135
modules/product_image/locale/tr.po
Normal file
135
modules/product_image/locale/tr.po
Normal file
@@ -0,0 +1,135 @@
|
||||
#
|
||||
msgid ""
|
||||
msgstr "Content-Type: text/plain; charset=utf-8\n"
|
||||
|
||||
msgctxt "field:product.category,image_url:"
|
||||
msgid "Image URL"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.category,images:"
|
||||
msgid "Images"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.category.image,cache:"
|
||||
msgid "Cache"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.category.image,category:"
|
||||
msgid "Category"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.category.image,description:"
|
||||
msgid "Description"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.category.image,image:"
|
||||
msgid "Image"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.category.image,image_id:"
|
||||
msgid "Image ID"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.category.image.cache,category_image:"
|
||||
msgid "Category Image"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.category.image.cache,height:"
|
||||
msgid "Height"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.category.image.cache,image:"
|
||||
msgid "Image"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.category.image.cache,image_id:"
|
||||
msgid "Image ID"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.category.image.cache,width:"
|
||||
msgid "Width"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.image,cache:"
|
||||
msgid "Cache"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.image,description:"
|
||||
msgid "Description"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.image,image:"
|
||||
msgid "Image"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.image,image_id:"
|
||||
msgid "Image ID"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.image,product:"
|
||||
msgid "Variant"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.image,template:"
|
||||
msgid "Product"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.image.cache,height:"
|
||||
msgid "Height"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.image.cache,image:"
|
||||
msgid "Image"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.image.cache,image_id:"
|
||||
msgid "Image ID"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.image.cache,product_image:"
|
||||
msgid "Product Image"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.image.cache,width:"
|
||||
msgid "Width"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.product,image_url:"
|
||||
msgid "Image URL"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.product,images:"
|
||||
msgid "Images"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.template,image_url:"
|
||||
msgid "Image URL"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.template,images:"
|
||||
msgid "Images"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:ir.message,text:msg_image_cache_size_unique"
|
||||
msgid "The size of cached image must be unique."
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:ir.message,text:msg_product_image_error"
|
||||
msgid "Can not open or identify the image set for the product."
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:product.category.image,string:"
|
||||
msgid "Product Category Image"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:product.category.image.cache,string:"
|
||||
msgid "Product Category Image Cache"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:product.image,string:"
|
||||
msgid "Product Image"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:product.image.cache,string:"
|
||||
msgid "Product Image Cache"
|
||||
msgstr ""
|
||||
135
modules/product_image/locale/uk.po
Normal file
135
modules/product_image/locale/uk.po
Normal file
@@ -0,0 +1,135 @@
|
||||
#
|
||||
msgid ""
|
||||
msgstr "Content-Type: text/plain; charset=utf-8\n"
|
||||
|
||||
msgctxt "field:product.category,image_url:"
|
||||
msgid "Image URL"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.category,images:"
|
||||
msgid "Images"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.category.image,cache:"
|
||||
msgid "Cache"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.category.image,category:"
|
||||
msgid "Category"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.category.image,description:"
|
||||
msgid "Description"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.category.image,image:"
|
||||
msgid "Image"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.category.image,image_id:"
|
||||
msgid "Image ID"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.category.image.cache,category_image:"
|
||||
msgid "Category Image"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.category.image.cache,height:"
|
||||
msgid "Height"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.category.image.cache,image:"
|
||||
msgid "Image"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.category.image.cache,image_id:"
|
||||
msgid "Image ID"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.category.image.cache,width:"
|
||||
msgid "Width"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.image,cache:"
|
||||
msgid "Cache"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.image,description:"
|
||||
msgid "Description"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.image,image:"
|
||||
msgid "Image"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.image,image_id:"
|
||||
msgid "Image ID"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.image,product:"
|
||||
msgid "Variant"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.image,template:"
|
||||
msgid "Product"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.image.cache,height:"
|
||||
msgid "Height"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.image.cache,image:"
|
||||
msgid "Image"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.image.cache,image_id:"
|
||||
msgid "Image ID"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.image.cache,product_image:"
|
||||
msgid "Product Image"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.image.cache,width:"
|
||||
msgid "Width"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.product,image_url:"
|
||||
msgid "Image URL"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.product,images:"
|
||||
msgid "Images"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.template,image_url:"
|
||||
msgid "Image URL"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.template,images:"
|
||||
msgid "Images"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:ir.message,text:msg_image_cache_size_unique"
|
||||
msgid "The size of cached image must be unique."
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:ir.message,text:msg_product_image_error"
|
||||
msgid "Can not open or identify the image set for the product."
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:product.category.image,string:"
|
||||
msgid "Product Category Image"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:product.category.image.cache,string:"
|
||||
msgid "Product Category Image Cache"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:product.image,string:"
|
||||
msgid "Product Image"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:product.image.cache,string:"
|
||||
msgid "Product Image Cache"
|
||||
msgstr ""
|
||||
135
modules/product_image/locale/zh_CN.po
Normal file
135
modules/product_image/locale/zh_CN.po
Normal file
@@ -0,0 +1,135 @@
|
||||
#
|
||||
msgid ""
|
||||
msgstr "Content-Type: text/plain; charset=utf-8\n"
|
||||
|
||||
msgctxt "field:product.category,image_url:"
|
||||
msgid "Image URL"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.category,images:"
|
||||
msgid "Images"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.category.image,cache:"
|
||||
msgid "Cache"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.category.image,category:"
|
||||
msgid "Category"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.category.image,description:"
|
||||
msgid "Description"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.category.image,image:"
|
||||
msgid "Image"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.category.image,image_id:"
|
||||
msgid "Image ID"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.category.image.cache,category_image:"
|
||||
msgid "Category Image"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.category.image.cache,height:"
|
||||
msgid "Height"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.category.image.cache,image:"
|
||||
msgid "Image"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.category.image.cache,image_id:"
|
||||
msgid "Image ID"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.category.image.cache,width:"
|
||||
msgid "Width"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.image,cache:"
|
||||
msgid "Cache"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.image,description:"
|
||||
msgid "Description"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.image,image:"
|
||||
msgid "Image"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.image,image_id:"
|
||||
msgid "Image ID"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.image,product:"
|
||||
msgid "Variant"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.image,template:"
|
||||
msgid "Product"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.image.cache,height:"
|
||||
msgid "Height"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.image.cache,image:"
|
||||
msgid "Image"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.image.cache,image_id:"
|
||||
msgid "Image ID"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.image.cache,product_image:"
|
||||
msgid "Product Image"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.image.cache,width:"
|
||||
msgid "Width"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.product,image_url:"
|
||||
msgid "Image URL"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.product,images:"
|
||||
msgid "Images"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.template,image_url:"
|
||||
msgid "Image URL"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.template,images:"
|
||||
msgid "Images"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:ir.message,text:msg_image_cache_size_unique"
|
||||
msgid "The size of cached image must be unique."
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:ir.message,text:msg_product_image_error"
|
||||
msgid "Can not open or identify the image set for the product."
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:product.category.image,string:"
|
||||
msgid "Product Category Image"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:product.category.image.cache,string:"
|
||||
msgid "Product Category Image Cache"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:product.image,string:"
|
||||
msgid "Product Image"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:product.image.cache,string:"
|
||||
msgid "Product Image Cache"
|
||||
msgstr ""
|
||||
13
modules/product_image/message.xml
Normal file
13
modules/product_image/message.xml
Normal file
@@ -0,0 +1,13 @@
|
||||
<?xml version="1.0"?>
|
||||
<!-- This file is part of Tryton. The COPYRIGHT file at the top level of
|
||||
this repository contains the full copyright notices and license terms. -->
|
||||
<tryton>
|
||||
<data>
|
||||
<record model="ir.message" id="msg_image_cache_size_unique">
|
||||
<field name="text">The size of cached image must be unique.</field>
|
||||
</record>
|
||||
<record model="ir.message" id="msg_product_image_error">
|
||||
<field name="text">Can not open or identify the image set for the product.</field>
|
||||
</record>
|
||||
</data>
|
||||
</tryton>
|
||||
340
modules/product_image/product.py
Normal file
340
modules/product_image/product.py
Normal file
@@ -0,0 +1,340 @@
|
||||
# This file is part of Tryton. The COPYRIGHT file at the top level of
|
||||
# this repository contains the full copyright notices and license terms.
|
||||
import base64
|
||||
import io
|
||||
import math
|
||||
from urllib.parse import quote, urlencode, urljoin
|
||||
|
||||
import PIL
|
||||
import PIL.Image
|
||||
|
||||
import trytond.config as config
|
||||
from trytond.i18n import gettext
|
||||
from trytond.model import (
|
||||
MatchMixin, ModelSQL, ModelView, Unique, fields, sequence_ordered)
|
||||
from trytond.pool import PoolMeta
|
||||
from trytond.pyson import Bool, Eval, If
|
||||
from trytond.tools import slugify
|
||||
from trytond.transaction import Transaction
|
||||
from trytond.url import http_host
|
||||
from trytond.wsgi import Base64Converter
|
||||
|
||||
from .exceptions import ImageValidationError
|
||||
|
||||
if config.getboolean('product', 'image_filestore', default=False):
|
||||
file_id = 'image_id'
|
||||
store_prefix = config.get('product', 'image_prefix', default=None)
|
||||
else:
|
||||
file_id = None
|
||||
store_prefix = None
|
||||
SIZE_MAX = config.getint('product', 'image_size_max', default=2048)
|
||||
|
||||
|
||||
class ImageURLMixin:
|
||||
__slots__ = ()
|
||||
__image_url__ = None
|
||||
images = None
|
||||
image_url = fields.Function(fields.Char("Image URL"), '_get_image_url')
|
||||
|
||||
def _get_image_url(self, name):
|
||||
return self.get_image_url(s=64)
|
||||
|
||||
def _image_url(self, base, **args):
|
||||
if self.code and list(self.images_used):
|
||||
url = urljoin(
|
||||
base, quote('%(prefix)s/%(code)s/%(database)s/%(name)s' % {
|
||||
'prefix': self.__image_url__,
|
||||
'database': Base64Converter(None).to_url(
|
||||
Transaction().database.name),
|
||||
'code': quote(self.code, ''),
|
||||
'name': slugify(self.name),
|
||||
}))
|
||||
if args:
|
||||
size = args.pop('s', None)
|
||||
width = args.pop('w', None)
|
||||
height = args.pop('h', None)
|
||||
index = args.pop('i', None)
|
||||
id = args.pop('id', None)
|
||||
args = {k: int(bool(v)) for k, v in args.items()}
|
||||
if size:
|
||||
args['s'] = size
|
||||
if width:
|
||||
args['w'] = width
|
||||
if height:
|
||||
args['h'] = height
|
||||
if index is not None:
|
||||
args['i'] = index
|
||||
timestamp = int((self.write_date or self.create_date).timestamp())
|
||||
args['t'] = (
|
||||
base64.urlsafe_b64encode(timestamp.to_bytes(8, 'big'))
|
||||
.decode().rstrip('='))
|
||||
if id is not None:
|
||||
args['id'] = id
|
||||
url += '?' + urlencode(args)
|
||||
return url
|
||||
|
||||
def get_image_url(self, _external=False, **args):
|
||||
url_base = config.get(
|
||||
'product', 'image_base', default='')
|
||||
url_external_base = config.get(
|
||||
'product', 'image_base', default=http_host())
|
||||
return self._image_url(
|
||||
url_external_base if _external else url_base, **args)
|
||||
|
||||
@property
|
||||
def images_used(self):
|
||||
yield from self.images
|
||||
|
||||
def get_images(self, pattern):
|
||||
Image = self.__class__.images.get_target()
|
||||
pattern = pattern.copy()
|
||||
for key in set(pattern.keys()) - Image.allowed_match_keys():
|
||||
del pattern[key]
|
||||
pattern = {k: bool(int(v)) for k, v in pattern.items()}
|
||||
for image in self.images_used:
|
||||
if image.match(pattern, match_none=True):
|
||||
yield image
|
||||
|
||||
|
||||
class Template(ImageURLMixin, metaclass=PoolMeta):
|
||||
__name__ = 'product.template'
|
||||
__image_url__ = '/product/image'
|
||||
images = fields.One2Many('product.image', 'template', "Images")
|
||||
|
||||
|
||||
class Product(ImageURLMixin, metaclass=PoolMeta):
|
||||
__name__ = 'product.product'
|
||||
__image_url__ = '/product/variant/image'
|
||||
images = fields.One2Many(
|
||||
'product.image', 'product', "Images",
|
||||
domain=[
|
||||
('template', '=', Eval('template', -1)),
|
||||
])
|
||||
|
||||
@property
|
||||
def images_used(self):
|
||||
yield from super().images_used
|
||||
for image in self.template.images_used:
|
||||
if not image.product:
|
||||
yield image
|
||||
|
||||
|
||||
class _ImageMixin:
|
||||
__slots__ = ()
|
||||
image = fields.Binary(
|
||||
"Image", file_id=file_id, store_prefix=store_prefix, required=True)
|
||||
image_id = fields.Char("Image ID", readonly=True)
|
||||
|
||||
|
||||
class ImageMixin(_ImageMixin):
|
||||
__slots__ = ()
|
||||
cache = None
|
||||
|
||||
description = fields.Char("Description", translate=True)
|
||||
|
||||
@classmethod
|
||||
def allowed_match_keys(cls):
|
||||
return {'id'}
|
||||
|
||||
@classmethod
|
||||
def preprocess_values(cls, mode, values):
|
||||
values = super().preprocess_values(mode, values)
|
||||
if values.get('image'):
|
||||
values['image'] = cls.convert(values['image'])
|
||||
return values
|
||||
|
||||
@classmethod
|
||||
def on_modification(cls, mode, images, field_names=None):
|
||||
super().on_modification(mode, images, field_names=field_names)
|
||||
if mode == 'write':
|
||||
cls.clear_cache(images)
|
||||
|
||||
@classmethod
|
||||
def _round_size(cls, size):
|
||||
return min((
|
||||
2 ** math.ceil(math.log2(size)),
|
||||
10 * math.ceil(size / 10) if size <= 100
|
||||
else 50 * math.ceil(size / 50)))
|
||||
|
||||
def get(self, size=400):
|
||||
if isinstance(size, int):
|
||||
size = (size, size)
|
||||
size = tuple(map(self._round_size, size))
|
||||
if not all(0 < s <= SIZE_MAX for s in size):
|
||||
raise ValueError(f"Invalid size {size}")
|
||||
for cache in self.cache:
|
||||
if (cache.width, cache.height) == size:
|
||||
# re-instantiate to fetch only one image
|
||||
return cache.__class__(cache.id).image
|
||||
with Transaction().new_transaction():
|
||||
cache = self._store_cache(size, self._resize(size))
|
||||
# Save cache only if record is already committed
|
||||
if self.__class__.search([('id', '=', self.id)]):
|
||||
cache.save()
|
||||
return cache.image
|
||||
|
||||
@classmethod
|
||||
def convert(cls, image, **_params):
|
||||
data = io.BytesIO()
|
||||
try:
|
||||
img = PIL.Image.open(io.BytesIO(image))
|
||||
except PIL.UnidentifiedImageError as e:
|
||||
raise ImageValidationError(gettext(
|
||||
'product_image.msg_product_image_error'), str(e)) from e
|
||||
img.thumbnail((SIZE_MAX, SIZE_MAX))
|
||||
if img.mode != 'RGB':
|
||||
img = img.convert('RGBA')
|
||||
background = PIL.Image.new('RGBA', img.size, (255, 255, 255))
|
||||
background.alpha_composite(img)
|
||||
img = background.convert('RGB')
|
||||
img.save(data, format='jpeg', optimize=True, dpi=(300, 300), **_params)
|
||||
return data.getvalue()
|
||||
|
||||
def _resize(self, size=64, **_params):
|
||||
data = io.BytesIO()
|
||||
img = PIL.Image.open(io.BytesIO(self.image))
|
||||
if isinstance(size, int):
|
||||
size = (size, size)
|
||||
img.thumbnail(size)
|
||||
img.save(data, format='jpeg', optimize=True, dpi=(300, 300), **_params)
|
||||
return data.getvalue()
|
||||
|
||||
def _store_cache(self, size, image):
|
||||
Cache = self.__class__.cache.get_target()
|
||||
if isinstance(size, int):
|
||||
width = height = size
|
||||
else:
|
||||
width, height = size
|
||||
return Cache(
|
||||
image=image,
|
||||
width=width,
|
||||
height=height)
|
||||
|
||||
@classmethod
|
||||
def clear_cache(cls, images):
|
||||
Cache = cls.cache.get_target()
|
||||
caches = [c for i in images for c in i.cache]
|
||||
Cache.delete(caches)
|
||||
|
||||
|
||||
class Image(ImageMixin, sequence_ordered(), ModelSQL, ModelView, MatchMixin):
|
||||
__name__ = 'product.image'
|
||||
template = fields.Many2One(
|
||||
'product.template', "Product",
|
||||
required=True, ondelete='CASCADE',
|
||||
domain=[
|
||||
If(Bool(Eval('product')),
|
||||
('products', '=', Eval('product')),
|
||||
()),
|
||||
])
|
||||
product = fields.Many2One(
|
||||
'product.product', "Variant",
|
||||
domain=[
|
||||
If(Bool(Eval('template')),
|
||||
('template', '=', Eval('template')),
|
||||
()),
|
||||
])
|
||||
cache = fields.One2Many(
|
||||
'product.image.cache', 'product_image', "Cache", readonly=True)
|
||||
|
||||
@classmethod
|
||||
def __setup__(cls):
|
||||
super().__setup__()
|
||||
cls.__access__.add('template')
|
||||
|
||||
def _store_cache(self, size, image):
|
||||
cache = super()._store_cache(size, image)
|
||||
cache.product_image = self
|
||||
return cache
|
||||
|
||||
|
||||
class ImageCacheMixin(_ImageMixin):
|
||||
__slots__ = ()
|
||||
|
||||
width = fields.Integer(
|
||||
"Width", required=True,
|
||||
domain=[
|
||||
('width', '>', 0),
|
||||
('width', '<=', SIZE_MAX),
|
||||
])
|
||||
height = fields.Integer(
|
||||
"Height", required=True,
|
||||
domain=[
|
||||
('height', '>', 0),
|
||||
('height', '<=', SIZE_MAX),
|
||||
])
|
||||
|
||||
|
||||
class ImageCache(ImageCacheMixin, ModelSQL):
|
||||
__name__ = 'product.image.cache'
|
||||
product_image = fields.Many2One(
|
||||
'product.image', "Product Image", required=True, ondelete='CASCADE')
|
||||
|
||||
@classmethod
|
||||
def __setup__(cls):
|
||||
super().__setup__()
|
||||
t = cls.__table__()
|
||||
cls._sql_constraints += [
|
||||
('dimension_unique', Unique(t, t.product_image, t.width, t.height),
|
||||
'product_image.msg_image_cache_size_unique'),
|
||||
]
|
||||
|
||||
@classmethod
|
||||
def __register__(cls, module):
|
||||
cursor = Transaction().connection.cursor()
|
||||
table = cls.__table__()
|
||||
table_h = cls.__table_handler__(module)
|
||||
|
||||
super().__register__(module)
|
||||
|
||||
# Migration from 7.0: split size into width and height
|
||||
table_h.drop_constraint('size_unique')
|
||||
if table_h.column_exist('size'):
|
||||
cursor.execute(*table.update(
|
||||
[table.width, table.height],
|
||||
[table.size, table.size]))
|
||||
table_h.drop_column('size')
|
||||
|
||||
|
||||
class Category(ImageURLMixin, metaclass=PoolMeta):
|
||||
__name__ = 'product.category'
|
||||
__image_url__ = '/product-category/image'
|
||||
images = fields.One2Many('product.category.image', 'category', "Images")
|
||||
|
||||
|
||||
class CategoryImage(
|
||||
ImageMixin, sequence_ordered(), ModelSQL, ModelView, MatchMixin):
|
||||
__name__ = 'product.category.image'
|
||||
category = fields.Many2One(
|
||||
'product.category', "Category",
|
||||
required=True, ondelete='CASCADE')
|
||||
cache = fields.One2Many(
|
||||
'product.category.image.cache', 'category_image', "Cache",
|
||||
readonly=True)
|
||||
|
||||
@classmethod
|
||||
def __setup__(cls):
|
||||
super().__setup__()
|
||||
cls.__access__.add('category')
|
||||
|
||||
def _store_cache(self, size, image):
|
||||
cache = super()._store_cache(size, image)
|
||||
cache.category_image = self
|
||||
return cache
|
||||
|
||||
|
||||
class CategoryImageCache(ImageCacheMixin, ModelSQL):
|
||||
__name__ = 'product.category.image.cache'
|
||||
category_image = fields.Many2One(
|
||||
'product.category.image', "Category Image", required=True,
|
||||
ondelete='CASCADE')
|
||||
|
||||
@classmethod
|
||||
def __setup__(cls):
|
||||
super().__setup__()
|
||||
t = cls.__table__()
|
||||
cls._sql_constraints += [
|
||||
('dimension_unique',
|
||||
Unique(t, t.category_image, t.width, t.height),
|
||||
'product_image.msg_image_cache_size_unique'),
|
||||
]
|
||||
66
modules/product_image/product.xml
Normal file
66
modules/product_image/product.xml
Normal file
@@ -0,0 +1,66 @@
|
||||
<?xml version="1.0"?>
|
||||
<!-- This file is part of Tryton. The COPYRIGHT file at the top level of
|
||||
this repository contains the full copyright notices and license terms. -->
|
||||
<tryton>
|
||||
<data>
|
||||
<record model="ir.ui.view" id="template_view_list">
|
||||
<field name="model">product.template</field>
|
||||
<field name="inherit" ref="product.template_view_tree"/>
|
||||
<field name="name">template_list</field>
|
||||
</record>
|
||||
|
||||
<record model="ir.ui.view" id="template_view_form">
|
||||
<field name="model">product.template</field>
|
||||
<field name="inherit" ref="product.template_view_form"/>
|
||||
<field name="name">template_form</field>
|
||||
</record>
|
||||
|
||||
<record model="ir.ui.view" id="image_view_list">
|
||||
<field name="model">product.image</field>
|
||||
<field name="type">tree</field>
|
||||
<field name="name">image_list</field>
|
||||
</record>
|
||||
|
||||
<record model="ir.ui.view" id="image_view_form">
|
||||
<field name="model">product.image</field>
|
||||
<field name="type">form</field>
|
||||
<field name="name">image_form</field>
|
||||
</record>
|
||||
|
||||
<record model="ir.ui.view" id="image_view_list_form">
|
||||
<field name="model">product.image</field>
|
||||
<field name="type">list-form</field>
|
||||
<field name="name">image_form</field>
|
||||
</record>
|
||||
|
||||
<record model="ir.ui.view" id="category_view_list">
|
||||
<field name="model">product.category</field>
|
||||
<field name="inherit" ref="product.category_view_list"/>
|
||||
<field name="name">category_list</field>
|
||||
</record>
|
||||
|
||||
<record model="ir.ui.view" id="category_view_form">
|
||||
<field name="model">product.category</field>
|
||||
<field name="inherit" ref="product.category_view_form"/>
|
||||
<field name="name">category_form</field>
|
||||
</record>
|
||||
|
||||
<record model="ir.ui.view" id="category_image_view_list">
|
||||
<field name="model">product.category.image</field>
|
||||
<field name="type">tree</field>
|
||||
<field name="name">category_image_list</field>
|
||||
</record>
|
||||
|
||||
<record model="ir.ui.view" id="category_image_view_form">
|
||||
<field name="model">product.category.image</field>
|
||||
<field name="type">form</field>
|
||||
<field name="name">category_image_form</field>
|
||||
</record>
|
||||
|
||||
<record model="ir.ui.view" id="category_image_view_list_form">
|
||||
<field name="model">product.category.image</field>
|
||||
<field name="type">list-form</field>
|
||||
<field name="name">category_image_form</field>
|
||||
</record>
|
||||
</data>
|
||||
</tryton>
|
||||
96
modules/product_image/routes.py
Normal file
96
modules/product_image/routes.py
Normal file
@@ -0,0 +1,96 @@
|
||||
# This file is part of Tryton. The COPYRIGHT file at the top level of
|
||||
# this repository contains the full copyright notices and license terms.
|
||||
from urllib.parse import unquote
|
||||
|
||||
import trytond.config as config
|
||||
from trytond.protocols.wrappers import (
|
||||
HTTPStatus, Response, abort, with_pool, with_transaction)
|
||||
from trytond.wsgi import app
|
||||
|
||||
|
||||
@app.route(
|
||||
'/product/image/<code>/<base64:database_name>',
|
||||
methods={'GET'})
|
||||
@app.route(
|
||||
'/product/image/<code>/<base64:database_name>/<name>',
|
||||
methods={'GET'})
|
||||
@with_pool
|
||||
@with_transaction()
|
||||
def product_image(request, pool, code, name=None):
|
||||
Template = pool.get('product.template')
|
||||
try:
|
||||
template, = Template.search([
|
||||
('code', '=', unquote(code)),
|
||||
])
|
||||
except ValueError:
|
||||
abort(HTTPStatus.NOT_FOUND)
|
||||
return _image(request, pool, template)
|
||||
|
||||
|
||||
@app.route(
|
||||
'/product/variant/image/<code>/<base64:database_name>',
|
||||
methods={'GET'})
|
||||
@app.route(
|
||||
'/product/variant/image/<code>/<base64:database_name>/<name>',
|
||||
methods={'GET'})
|
||||
@with_pool
|
||||
@with_transaction()
|
||||
def variant_image(request, pool, code, name=None):
|
||||
Product = pool.get('product.product')
|
||||
try:
|
||||
product, = Product.search([
|
||||
('code', '=', unquote(code)),
|
||||
])
|
||||
except ValueError:
|
||||
abort(HTTPStatus.NOT_FOUND)
|
||||
return _image(request, pool, product)
|
||||
|
||||
|
||||
@app.route(
|
||||
'/product-category/image/<code>/<base64:database_name>',
|
||||
methods={'GET'})
|
||||
@app.route(
|
||||
'/product-category/image/<code>/<base64:database_name>/<name>',
|
||||
methods={'GET'})
|
||||
@with_pool
|
||||
@with_transaction()
|
||||
def category_image(request, pool, code, name=None):
|
||||
Category = pool.get('product.category')
|
||||
try:
|
||||
category, = Category.search([
|
||||
('code', '=', unquote(code)),
|
||||
])
|
||||
except ValueError:
|
||||
abort(HTTPStatus.NOT_FOUND)
|
||||
return _image(request, pool, category)
|
||||
|
||||
|
||||
def _image(request, pool, record):
|
||||
images = record.get_images(request.args)
|
||||
if not images:
|
||||
abort(HTTPStatus.NOT_FOUND)
|
||||
try:
|
||||
image = list(images)[int(request.args.get('i', 0))]
|
||||
except IndexError:
|
||||
abort(HTTPStatus.NOT_FOUND)
|
||||
except ValueError:
|
||||
abort(HTTPStatus.BAD_REQUEST)
|
||||
try:
|
||||
size = int(request.args.get('s', 400))
|
||||
except ValueError:
|
||||
abort(HTTPStatus.BAD_REQUEST)
|
||||
try:
|
||||
width = int(request.args.get('w', size))
|
||||
except ValueError:
|
||||
abort(HTTPStatus.BAD_REQUEST)
|
||||
try:
|
||||
height = int(request.args.get('h', size))
|
||||
except ValueError:
|
||||
abort(HTTPStatus.BAD_REQUEST)
|
||||
|
||||
response = Response(image.get((width, height)), mimetype='image/jpeg')
|
||||
response.headers['Cache-Control'] = (
|
||||
'max-age=%s, public' % config.getint(
|
||||
'product', 'image_timeout', default=365 * 24 * 60 * 60))
|
||||
response.add_etag()
|
||||
return response
|
||||
2
modules/product_image/tests/__init__.py
Normal file
2
modules/product_image/tests/__init__.py
Normal file
@@ -0,0 +1,2 @@
|
||||
# This file is part of Tryton. The COPYRIGHT file at the top level of
|
||||
# this repository contains the full copyright notices and license terms.
|
||||
BIN
modules/product_image/tests/__pycache__/__init__.cpython-311.pyc
Normal file
BIN
modules/product_image/tests/__pycache__/__init__.cpython-311.pyc
Normal file
Binary file not shown.
Binary file not shown.
129
modules/product_image/tests/test_module.py
Normal file
129
modules/product_image/tests/test_module.py
Normal file
@@ -0,0 +1,129 @@
|
||||
# This file is part of Tryton. The COPYRIGHT file at the top level of
|
||||
# this repository contains the full copyright notices and license terms.
|
||||
import datetime as dt
|
||||
import io
|
||||
import unittest
|
||||
import urllib.request
|
||||
|
||||
import PIL.Image
|
||||
|
||||
from trytond.pool import Pool
|
||||
from trytond.tests.test_tryton import (
|
||||
TEST_NETWORK, ModuleTestCase, with_transaction)
|
||||
|
||||
|
||||
class ProductImageTestCase(ModuleTestCase):
|
||||
'Test Product Image module'
|
||||
module = 'product_image'
|
||||
|
||||
@unittest.skipUnless(TEST_NETWORK, "requires network")
|
||||
@with_transaction()
|
||||
def test_image_square(self):
|
||||
"Test image square"
|
||||
pool = Pool()
|
||||
Image = pool.get('product.image')
|
||||
Template = pool.get('product.template')
|
||||
Uom = pool.get('product.uom')
|
||||
|
||||
template = Template(name="Template")
|
||||
template.default_uom, = Uom.search([], limit=1)
|
||||
template.save()
|
||||
|
||||
image = Image(template=template)
|
||||
image.image = urllib.request.urlopen(
|
||||
'https://downloads.tryton.org/tests/product-image/chair.jpg'
|
||||
).read()
|
||||
image.save()
|
||||
|
||||
self.assertEqual(template.image_url, None)
|
||||
template.code = "CODE"
|
||||
template.save()
|
||||
self.assertRegex(
|
||||
template.image_url,
|
||||
r'/product/image/CODE/.*/Template\?s=64')
|
||||
|
||||
img = PIL.Image.open(io.BytesIO(image.get(size=100)))
|
||||
self.assertEqual(img.size, (100, 100))
|
||||
|
||||
img = PIL.Image.open(io.BytesIO(image.get(size=(150, 200))))
|
||||
self.assertEqual(img.size, (150, 150))
|
||||
|
||||
@unittest.skipUnless(TEST_NETWORK, "requires network")
|
||||
@with_transaction()
|
||||
def test_image_non_square(self):
|
||||
"Test image non square"
|
||||
pool = Pool()
|
||||
Image = pool.get('product.image')
|
||||
Template = pool.get('product.template')
|
||||
Uom = pool.get('product.uom')
|
||||
|
||||
template = Template(name="Template")
|
||||
template.default_uom, = Uom.search([], limit=1)
|
||||
template.save()
|
||||
|
||||
image = Image(template=template)
|
||||
image.image = urllib.request.urlopen(
|
||||
'https://downloads.tryton.org/tests/product-image/chair-800.jpg'
|
||||
).read()
|
||||
image.save()
|
||||
|
||||
self.assertEqual(template.image_url, None)
|
||||
template.code = "CODE"
|
||||
template.save()
|
||||
self.assertRegex(
|
||||
template.image_url,
|
||||
r'/product/image/CODE/.*/Template\?s=64')
|
||||
|
||||
img = PIL.Image.open(io.BytesIO(image.get(size=100)))
|
||||
self.assertEqual(img.size, (78, 100))
|
||||
|
||||
img = PIL.Image.open(io.BytesIO(image.get(size=(100, 200))))
|
||||
self.assertEqual(img.size, (100, 128))
|
||||
|
||||
@with_transaction()
|
||||
def test_round_size(self):
|
||||
"Test round size"
|
||||
pool = Pool()
|
||||
Image = pool.get('product.image')
|
||||
for size, result in [
|
||||
(1, 1),
|
||||
(2, 2),
|
||||
(19, 20),
|
||||
(45, 50),
|
||||
(101, 128),
|
||||
(129, 150),
|
||||
]:
|
||||
with self.subTest(size=size):
|
||||
self.assertEqual(Image._round_size(size), result)
|
||||
|
||||
@unittest.skipUnless(TEST_NETWORK, "requires network")
|
||||
@with_transaction()
|
||||
def test_get_image_url(self):
|
||||
"Test get_image_url"
|
||||
pool = Pool()
|
||||
Image = pool.get('product.image')
|
||||
Template = pool.get('product.template')
|
||||
Uom = pool.get('product.uom')
|
||||
|
||||
template = Template(name="Template", code="CODE")
|
||||
template.default_uom, = Uom.search([], limit=1)
|
||||
template.save()
|
||||
|
||||
for _ in range(3):
|
||||
image = Image(template=template)
|
||||
image.image = urllib.request.urlopen(
|
||||
'https://downloads.tryton.org/tests/product-image/chair.jpg'
|
||||
).read()
|
||||
image.save()
|
||||
|
||||
template.write_date = dt.datetime(2025, 1, 1) # fix timestamp
|
||||
|
||||
self.assertRegex(
|
||||
template.get_image_url(i=2),
|
||||
r'^/product/image/CODE/.*/Template\?i=2&t=AAAAAGd0hYA$')
|
||||
self.assertRegex(
|
||||
template.get_image_url(s=400),
|
||||
r'^/product/image/CODE/.*/Template\?s=400&t=AAAAAGd0hYA$')
|
||||
|
||||
|
||||
del ModuleTestCase
|
||||
18
modules/product_image/tryton.cfg
Normal file
18
modules/product_image/tryton.cfg
Normal file
@@ -0,0 +1,18 @@
|
||||
[tryton]
|
||||
version=7.8.0
|
||||
depends:
|
||||
ir
|
||||
product
|
||||
xml:
|
||||
product.xml
|
||||
message.xml
|
||||
|
||||
[register]
|
||||
model:
|
||||
product.Template
|
||||
product.Product
|
||||
product.Image
|
||||
product.ImageCache
|
||||
product.Category
|
||||
product.CategoryImage
|
||||
product.CategoryImageCache
|
||||
10
modules/product_image/view/category_form.xml
Normal file
10
modules/product_image/view/category_form.xml
Normal file
@@ -0,0 +1,10 @@
|
||||
<?xml version="1.0"?>
|
||||
<!-- This file is part of Tryton. The COPYRIGHT file at the top level of
|
||||
this repository contains the full copyright notices and license terms. -->
|
||||
<data>
|
||||
<xpath expr="//notebook" position="inside">
|
||||
<page name="images">
|
||||
<field name="images" colspan="4" mode="list-form,tree,form"/>
|
||||
</page>
|
||||
</xpath>
|
||||
</data>
|
||||
20
modules/product_image/view/category_image_form.xml
Normal file
20
modules/product_image/view/category_image_form.xml
Normal file
@@ -0,0 +1,20 @@
|
||||
<?xml version="1.0"?>
|
||||
<!-- This file is part of Tryton. The COPYRIGHT file at the top level of
|
||||
this repository contains the full copyright notices and license terms. -->
|
||||
<form>
|
||||
<field name="image" widget="image" height="200" width="200" xexpand="0" colspan="2"/>
|
||||
<group id="category" col="2" colspan="2" yalign="0" yexpand="0">
|
||||
<label name="sequence"/>
|
||||
<field name="sequence"/>
|
||||
|
||||
<group colspan="2" col="-1" id="checkboxes">
|
||||
<!-- Add checkboxes here -->
|
||||
</group>
|
||||
|
||||
<label name="category"/>
|
||||
<field name="category"/>
|
||||
|
||||
<label name="description"/>
|
||||
<field name="description"/>
|
||||
</group>
|
||||
</form>
|
||||
8
modules/product_image/view/category_image_list.xml
Normal file
8
modules/product_image/view/category_image_list.xml
Normal file
@@ -0,0 +1,8 @@
|
||||
<?xml version="1.0"?>
|
||||
<!-- This file is part of Tryton. The COPYRIGHT file at the top level of
|
||||
this repository contains the full copyright notices and license terms. -->
|
||||
<tree sequence="sequence">
|
||||
<field name="category" expand="1"/>
|
||||
<field name="image" expand="2"/>
|
||||
<field name="description" expand="1" optional="1"/>
|
||||
</tree>
|
||||
8
modules/product_image/view/category_list.xml
Normal file
8
modules/product_image/view/category_list.xml
Normal file
@@ -0,0 +1,8 @@
|
||||
<?xml version="1.0"?>
|
||||
<!-- This file is part of Tryton. The COPYRIGHT file at the top level of
|
||||
this repository contains the full copyright notices and license terms. -->
|
||||
<data>
|
||||
<xpath expr="//field[@name='code']" position="inside">
|
||||
<prefix id="image" icon="image_url" icon_type="url" url_size="s"/>
|
||||
</xpath>
|
||||
</data>
|
||||
23
modules/product_image/view/image_form.xml
Normal file
23
modules/product_image/view/image_form.xml
Normal file
@@ -0,0 +1,23 @@
|
||||
<?xml version="1.0"?>
|
||||
<!-- This file is part of Tryton. The COPYRIGHT file at the top level of
|
||||
this repository contains the full copyright notices and license terms. -->
|
||||
<form>
|
||||
<field name="image" widget="image" height="200" width="200" xexpand="0" colspan="2"/>
|
||||
<group id="product" col="2" colspan="2" yalign="0" yexpand="0">
|
||||
<label name="sequence"/>
|
||||
<field name="sequence"/>
|
||||
|
||||
<group colspan="2" col="-1" id="checkboxes">
|
||||
<!-- Add checkboxes here -->
|
||||
</group>
|
||||
|
||||
<label name="template"/>
|
||||
<field name="template"/>
|
||||
|
||||
<label name="product"/>
|
||||
<field name="product"/>
|
||||
|
||||
<label name="description"/>
|
||||
<field name="description"/>
|
||||
</group>
|
||||
</form>
|
||||
9
modules/product_image/view/image_list.xml
Normal file
9
modules/product_image/view/image_list.xml
Normal file
@@ -0,0 +1,9 @@
|
||||
<?xml version="1.0"?>
|
||||
<!-- This file is part of Tryton. The COPYRIGHT file at the top level of
|
||||
this repository contains the full copyright notices and license terms. -->
|
||||
<tree sequence="sequence">
|
||||
<field name="template" expand="1"/>
|
||||
<field name="product" expand="1"/>
|
||||
<field name="image" expand="2"/>
|
||||
<field name="description" expand="1" optional="1"/>
|
||||
</tree>
|
||||
10
modules/product_image/view/template_form.xml
Normal file
10
modules/product_image/view/template_form.xml
Normal file
@@ -0,0 +1,10 @@
|
||||
<?xml version="1.0"?>
|
||||
<!-- This file is part of Tryton. The COPYRIGHT file at the top level of
|
||||
this repository contains the full copyright notices and license terms. -->
|
||||
<data>
|
||||
<xpath expr="//notebook" position="inside">
|
||||
<page name="images">
|
||||
<field name="images" colspan="4" mode="list-form,tree,form"/>
|
||||
</page>
|
||||
</xpath>
|
||||
</data>
|
||||
8
modules/product_image/view/template_list.xml
Normal file
8
modules/product_image/view/template_list.xml
Normal file
@@ -0,0 +1,8 @@
|
||||
<?xml version="1.0"?>
|
||||
<!-- This file is part of Tryton. The COPYRIGHT file at the top level of
|
||||
this repository contains the full copyright notices and license terms. -->
|
||||
<data>
|
||||
<xpath expr="//field[@name='code']" position="inside">
|
||||
<prefix id="image" icon="image_url" icon_type="url" url_size="s"/>
|
||||
</xpath>
|
||||
</data>
|
||||
Reference in New Issue
Block a user