Exemplo n.º 1
0
    def test_extraction_languages_default_to_object_translations(self):

        from cocktail import schema
        from cocktail.translations import translations

        class Model(schema.SchemaObject):
            field1 = schema.String()
            field2 = schema.String(translated=True)
            field3 = schema.String(enumeration=["icecream", "pie"])

        translations.define(Model.full_name +
                            ".members.field3.values.icecream",
                            es="Helado",
                            en="Ice cream")

        translations.define(Model.full_name + ".members.field3.values.pie",
                            es="Pastel",
                            en="Pie")

        obj = Model()
        obj.field1 = "Foobar"
        obj.set("field2", "Dog", "en")
        obj.set("field2", "Perro", "es")
        obj.field3 = "pie"

        assert (set(obj.get_searchable_text().split()) == {
            "Foobar", "Dog", "Perro", "Pastel", "Pie"
        })
Exemplo n.º 2
0
    def test_enumerations_produce_translated_text(self):

        from cocktail import schema
        from cocktail.translations import translations

        class Model1(schema.SchemaObject):
            field1 = schema.String(enumeration=["cat", "dog"])

        translations.define(Model1.full_name + ".members.field1.values.cat",
                            es="Gato",
                            en="Cat")

        translations.define(Model1.full_name + ".members.field1.values.dog",
                            es="Perro",
                            en="Dog")

        obj1 = Model1()

        obj1.field1 = "cat"
        self.assert_text(obj1, ["en"], "Cat")
        self.assert_text(obj1, ["es"], "Gato")
        self.assert_text(obj1, [None], set())

        obj1.field1 = "dog"
        self.assert_text(obj1, ["en"], "Dog")
        self.assert_text(obj1, ["es"], "Perro")
        self.assert_text(obj1, [None], "")

        Model1.field1.translatable_enumeration = False
        self.assert_text(obj1, ["en"], "")
        self.assert_text(obj1, ["es"], "")
        self.assert_text(obj1, [None], "dog")
Exemplo n.º 3
0
    def test_uses_implicit_language(self):

        from cocktail.translations import translations, set_language

        translations.define("parrot", ca="Lloro", es="Loro", en="Parrot")

        set_language("ca")
        assert translations("parrot") == "Lloro"
Exemplo n.º 4
0
    def test_fails_with_undefined_implicit_language(self):

        from cocktail.translations import (translations, get_language,
                                           NoActiveLanguageError)

        translations.define("parrot", ca="Lloro", es="Loro", en="Parrot")

        assert_raises(NoActiveLanguageError, translations, "parrot")
Exemplo n.º 5
0
    def test_translates_keys(self):

        from cocktail.translations import translations

        translations.define("parrot", ca="Lloro", es="Loro", en="Parrot")

        assert translations("parrot", "ca") == "Lloro"
        assert translations("parrot", "es") == "Loro"
        assert translations("parrot", "en") == "Parrot"
Exemplo n.º 6
0
@contact:		[email protected]
@organization:	Whads/Accent SL
@since:			September 2010
"""
import cherrypy
from cocktail.events import when
from cocktail import schema
from cocktail.translations import translations
from cocktail.controllers import context
from woost.models import Extension, Document, Template, User
from woost.models.permission import DeletePermission, ModifyPermission


translations.define("MailerExtension",
    ca = u"Enviament de documents per correu electrònic",
    es = u"Envio de documentos por correo electrónico",
    en = u"Sending documents by email"
)

translations.define("MailerExtension-plural",
    ca = u"Enviament de documents per correu electrònic",
    es = u"Envio de documentos por correo electrónico",
    en = u"Sending documents by email"
)


class MailerExtension(Extension):

    def __init__(self, **values):
        Extension.__init__(self, **values)
        self.extension_author = u"Whads/Accent SL"
Exemplo n.º 7
0
@author:		Jordi Fernández
@contact:		[email protected]
@organization:	Whads/Accent SL
@since:			October 2009
"""
from __future__ import with_statement
import cherrypy
from cocktail import schema
from cocktail.events import when
from cocktail.translations import translations
from cocktail.controllers import Location
from woost.models import Extension

translations.define("CommentsExtension",
                    ca=u"Comentaris",
                    es=u"Comentarios",
                    en=u"Comments")

translations.define("CommentsExtension-plural",
                    ca=u"Comentaris",
                    es=u"Comentarios",
                    en=u"Comments")

translations.define("CommentsExtension.captcha_enabled",
                    ca=u"Captcha activat",
                    es=u"Captcha activado",
                    en=u"Captcha enabled")


class CommentsExtension(Extension):
    def __init__(self, **values):
Exemplo n.º 8
0
#-*- coding: utf-8 -*-
u"""

.. moduleauthor:: Jordi Fernández <*****@*****.**>
"""
from cocktail.translations import translations

# IssuuDocument
#------------------------------------------------------------------------------
translations.define("IssuuDocument",
                    ca=u"Document Issuu",
                    es=u"Documento Issuu",
                    en=u"Issuu document")

translations.define("IssuuDocument-plural",
                    ca=u"Documents Issuu",
                    es=u"Documentos Issuu",
                    en=u"Issuu documents")

translations.define("IssuuDocument.content",
                    ca=u"Contingut",
                    es=u"Contingut",
                    en=u"Contingut")

translations.define("IssuuDocument.title",
                    ca=u"Títol",
                    es=u"Título",
                    en=u"Title")

translations.define("IssuuDocument.issuu_document_url",
                    ca=u"URL document Issuu",
Exemplo n.º 9
0
#-*- coding: utf-8 -*-
u"""Defines an extension that allows end users to define their own data models.

.. moduleauthor:: Martí Congost <*****@*****.**>
"""
import cherrypy
from cocktail.translations import translations
from woost.models import Extension

translations.define("UserModelsExtension",
                    ca=u"Models d'usuari",
                    es=u"Modelos de usuario",
                    en=u"User models")

translations.define("CountriesExtension-plural",
                    ca=u"Models d'usuari",
                    es=u"Modelos de usuario",
                    en=u"User models")

models_access = None


class UserModelsExtension(Extension):
    def __init__(self, **values):
        Extension.__init__(self, **values)
        self.extension_author = u"Whads/Accent SL"
        self.set(
            "description",
            u"""Permet als usuaris del gestor definir els seus propis models de
            dades.""", "ca")
        self.set(
Exemplo n.º 10
0
    Configuration,
    Extension,
    Publishable,
    Document,
    StandardPage,
    Template,
    Controller,
    EmailTemplate,
    User    
)
from woost.models.rendering import ImageFactory, Thumbnail
from woost.models.triggerresponse import SendEmailTriggerResponse

translations.define("ECommerceExtension",
    ca = u"Comerç online",
    es = u"Comercio online",
    en = u"E-commerce"
)

translations.define("ECommerceExtension-plural",
    ca = u"Comerç online",
    es = u"Comercio online",
    en = u"E-commerce"
)


class ECommerceExtension(Extension):

    def __init__(self, **values):
        Extension.__init__(self, **values)
        self.extension_author = u"Whads/Accent SL"
Exemplo n.º 11
0
#-*- coding: utf-8 -*-
u"""

.. moduleauthor:: Jordi Fernández <*****@*****.**>
"""
from cocktail.translations import translations


# YouTubeVideo
#------------------------------------------------------------------------------
translations.define("YouTubeVideo",
    ca = u"Vídeo de YouTube",
    es = u"Video de YouTube",
    en = u"YouTube video"
)

translations.define("YouTubeVideo-plural",
    ca = u"Vídeos de YouTube",
    es = u"Videos de YouTube",
    en = u"YouTube videos"
)

translations.define("YouTubeVideo.content",
    ca = u"Contingut",
    es = u"Contenido",
    en = u"Content"
)

translations.define("YouTubeVideo.title",
    ca = u"Títol",
    es = u"Título",
Exemplo n.º 12
0
#-*- coding: utf-8 -*-
u"""

.. moduleauthor:: Martí Congost <*****@*****.**>
"""
from cocktail.translations import translations
from woost.models import Extension

translations.define("TextFileExtension",
                    ca=u"Fitxers de text",
                    es=u"Ficheros de texto",
                    en=u"Text files")


class TextFileExtension(Extension):
    def __init__(self, **values):
        Extension.__init__(self, **values)
        self.extension_author = u"Whads/Accent SL"
        self.set("description",
                 u"Permet editar fitxers de text directament des del gestor.",
                 "ca")
        self.set(
            "description",
            u"Permite editar ficheros de texto directamente desde el gestor.",
            "es")
        self.set("description",
                 u"Makes it possible to edit text files from the backoffice.",
                 "en")

    def _load(self):
        from woost.extensions.textfile import textfile, strings
Exemplo n.º 13
0
#-*- coding: utf-8 -*-
u"""

.. moduleauthor:: Martí Congost <*****@*****.**>
"""
from cocktail.translations import translations

translations.define("Configuration.google_analytics_api",
                    ca=u"API de Google Analytics",
                    es=u"API de Google Analytics",
                    en=u"Google Analytics API")

for cls_name in ("Configuration", "Website"):
    translations.define(cls_name + ".services.google_analytics",
                        ca=u"Google Analytics",
                        es=u"Google Analytics",
                        en=u"Google Analytics")

    translations.define(cls_name + ".google_analytics_account",
                        ca=u"Compte de Google Analytics",
                        es=u"Cuenta de Google Analytics",
                        en=u"Google Analytics account")

translations.define("Document.ga_tracking_enabled",
                    ca=u"Habilitar seguiment amb Google Analytics",
                    es=u"Habilitar seguimiento con Google Analytics",
                    en=u"Track with Google Analytics")

# Client redirections
#------------------------------------------------------------------------------
translations.define("woost.extensions.googleanalytics.redirection_title",
Exemplo n.º 14
0
#-*- coding: utf-8 -*-
u"""

.. moduleauthor:: Jordi Fernández <*****@*****.**>
"""
from cocktail.translations import translations
from cocktail import schema
from woost.models import Extension, Controller, Configuration
from woost.models.rendering import ChainRenderer

translations.define("IssuuExtension",
                    ca=u"Documents Issuu",
                    es=u"Documentos Issuu",
                    en=u"Issuu documents")

translations.define("IssuuExtension-plural",
                    ca=u"Documents Issuu",
                    es=u"Documentos Issuu",
                    en=u"Issuu documents")


class IssuuExtension(Extension):
    def __init__(self, **values):
        Extension.__init__(self, **values)
        self.extension_author = u"Whads/Accent SL"
        self.set("description", u"""Afegeix suport per documents Issuu""",
                 "ca")
        self.set("description", u"""Añade soporte para documentos Issuu""",
                 "es")
        self.set("description", u"""Adds support for Issuu documents""", "en")
Exemplo n.º 15
0
#-*- coding: utf-8 -*-
"""

@author:		Jordi Fernández
@contact:		[email protected]
@organization:	Whads/Accent SL
@since:			September 2010
"""
from cocktail.translations import translations
from cocktail.translations.strings import member_identifier

# UI
#------------------------------------------------------------------------------
translations.define("Action send_email",
                    ca=u"Enviar",
                    es=u"Enviar",
                    en=u"Send")

translations.define("Action create_mailing",
                    ca=u"Enviar per correu",
                    es=u"Enviar por correo",
                    en=u"Send by e-mail")

translations.define("woost.extensions.mailer users",
                    ca=u"usuaris",
                    es=u"usuarios",
                    en=u"usuarios")

# Mailing
#------------------------------------------------------------------------------
translations.define("Mailing", ca=u"Enviament", es=u"Envio", en=u"Mailing")
Exemplo n.º 16
0
.. moduleauthor:: Martí Congost <*****@*****.**>
"""
from cocktail.translations import translations
from cocktail.translations.helpers import (
    plural2,
    ca_join,
    es_join,
    en_join
)

# FacebookPublicationExtension
#------------------------------------------------------------------------------
translations.define("FacebookPublicationExtension.targets",
    ca = u"Destins",
    es = u"Destinos",
    en = u"Destinations"
)

# FacebookPublicationTarget
#------------------------------------------------------------------------------
translations.define("FacebookPublicationTarget",
    ca = u"Destí de publicació Facebook",
    es = u"Destino de publicación Facebook",
    en = u"Facebook publication target"
)

translations.define("FacebookPublicationTarget-plural",
    ca = u"Destins de publicació Facebook",
    es = u"Destinos de publicación Facebook",
    en = u"Facebook publication targets"
Exemplo n.º 17
0
#-*- coding: utf-8 -*-
"""

@author:		Martí Congost
@contact:		[email protected]
@organization:	Whads/Accent SL
@since:			October 2009
"""
from cocktail.translations import translations

# TransactionNotifiedTrigger
#------------------------------------------------------------------------------
translations.define("TransactionNotifiedTrigger",
                    ca=u"Disparador de notificació de pagament",
                    es=u"Disparador de notificación de pago",
                    en=u"Payment notification trigger")

translations.define("TransactionNotifiedTrigger-plural",
                    ca=u"Disparadors de notificació de pagament",
                    es=u"Disparadores de notificación de pago",
                    en=u"Payment notification triggers")

# PaymentGateway
#------------------------------------------------------------------------------
translations.define("PaymentGateway",
                    ca=u"Passarel·la de pagaments",
                    es=u"Pasarela de pagos",
                    en=u"Payment gateway")

translations.define("PaymentGateway-plural",
                    ca=u"Passarel·les de pagaments",
Exemplo n.º 18
0
#-*- coding: utf-8 -*-
u"""

.. moduleauthor:: Martí Congost <*****@*****.**>
"""
from time import time
from simplejson import loads
from urllib import urlopen
from cocktail.iteration import first
from cocktail.translations import translations
from cocktail import schema
from cocktail.persistence import transaction
from woost.models import Extension

translations.define("LocationsExtension",
                    ca=u"Localitats",
                    es=u"Localidad",
                    en=u"Locations")

translations.define("LocationsExtension.service_uri",
                    ca=u"URL del repositori de dades",
                    es=u"URL del repositorio de datos",
                    en=u"URL of the data repository")

translations.define("LocationsExtension.update_frequency",
                    ca=u"Freqüència d'actualització",
                    es=u"Frecuencia de actualización",
                    en=u"Update frequency")

translations.define(
    "LocationsExtension.update_frequency-explanation",
    ca=u"El nombre de dies entre actualitzacions de la llista de localitats."
Exemplo n.º 19
0
#-*- coding: utf-8 -*-
"""

@author:		Martí Congost
@contact:		[email protected]
@organization:	Whads/Accent SL
@since:			September 2009
"""
from cocktail.translations import translations, DATE_STYLE_TEXT
from cocktail.translations.helpers import plural2

# ECommerceExtension
#------------------------------------------------------------------------------
translations.define("ECommerceExtension.pricing",
                    ca=u"Preus",
                    es=u"Precios",
                    en=u"Pricing",
                    fr=u"Prix")

translations.define("ECommerceExtension.shipping_costs",
                    ca=u"Costos d'enviament",
                    es=u"Costes de envío",
                    en=u"Shipping costs",
                    fr=u"Frais d'expédition")

translations.define("ECommerceExtension.taxes",
                    ca=u"Taxes",
                    es=u"Tasas",
                    en=u"Taxes",
                    fr=u"Taux")
Exemplo n.º 20
0
#-*- coding: utf-8 -*-
u"""

.. moduleauthor:: Jordi Fernández <*****@*****.**>
"""
from cocktail.translations import translations
from woost.models import Extension, Configuration
from woost.models.rendering import ChainRenderer


translations.define("YouTubeExtension",
    ca = u"YouTube",
    es = u"YouTube",
    en = u"YouTube"
)

translations.define("YouTubeExtension-plural",
    ca = u"YouTube",
    es = u"YouTube",
    en = u"YouTube"
)


class YouTubeExtension(Extension):

    def __init__(self, **values):
        Extension.__init__(self, **values)
        self.extension_author = u"Whads/Accent SL"
        self.set("description",
            u"""Afegeix suport per vídeos de YouTube""",
            "ca"
Exemplo n.º 21
0
#-*- coding: utf-8 -*-
u"""

.. moduleauthor:: Martí Congost <*****@*****.**>
"""
from cocktail.translations import translations

# Publishable
#------------------------------------------------------------------------------
translations.define("Publishable.access_restriction",
    ca = u"Restricció d'accés",
    es = u"Restricción de acceso",
    en = u"Access restriction"
)

translations.define("Publishable.access_restriction=None",
    ca = u"Sense restricció",
    es = u"Sin restricción",
    en = u"Unrestricted"
)

# AccessRestriction
#------------------------------------------------------------------------------
translations.define("AccessRestriction",
    ca = u"Restricció d'accés",
    es = u"Restricción de acceso",
    en = u"Access restriction"
)

translations.define("AccessRestriction-plural",
    ca = u"Restriccions d'accés",
Exemplo n.º 22
0
#-*- coding: utf-8 -*-
u"""

.. moduleauthor:: Jordi Fernández <*****@*****.**>
"""
from cocktail.translations import translations
from cocktail import schema
from woost.models import Extension, Controller, Configuration
from woost.models.rendering import ChainRenderer


translations.define("CampaignMonitor3Extension",
    ca = u"Campaign Monitor v3",
    es = u"Campaign Monitor v3",
    en = u"Campaign Monitor v3"
)

translations.define("CampaignMonitor3Extension-plural",
    ca = u"Campaign Monitor v3",
    es = u"Campaign Monitor v3",
    en = u"Campaign Monitor v3"
)


class CampaignMonitor3Extension(Extension):

    def __init__(self, **values):
        Extension.__init__(self, **values)
        self.extension_author = u"Whads/Accent SL"
        self.set("description",
            u"""Permet la integració amb el sistema de mailing Campaign Monitor""",
Exemplo n.º 23
0
#-*- coding: utf-8 -*-
u"""

.. moduleauthor:: Jordi Fernández <*****@*****.**>
"""
from cocktail.translations import translations

# TV3ALaCartaVideo
#------------------------------------------------------------------------------
translations.define("TV3ALaCartaVideo",
                    ca=u"Vídeo de TV3 a la carta",
                    es=u"Video de TV3 a la carta",
                    en=u"TV3 a la carta video")

translations.define("TV3ALaCartaVideo-plural",
                    ca=u"Vídeos de TV3 a la carta",
                    es=u"Videos de TV3 a la carta",
                    en=u"TV3 a la carta videos")

translations.define("TV3ALaCartaVideo.content",
                    ca=u"Contingut",
                    es=u"Contenido",
                    en=u"Content")

translations.define("TV3ALaCartaVideo.title",
                    ca=u"Títol",
                    es=u"Título",
                    en=u"Title")

translations.define("TV3ALaCartaVideo.video_id",
                    ca=u"Identificador del vídeo",
Exemplo n.º 24
0
"""
from cocktail.translations import translations
from cocktail import schema
from cocktail.html import templates
from cocktail.persistence import datastore
from woost.models import (
    Configuration,
    File,
    Extension,
    extension_translations,
    rendering
)

translations.define("OpenGraphExtension",
    ca = u"OpenGraph",
    es = u"OpenGraph",
    en = u"OpenGraph"
)

translations.define("OpenGraphExtension-plural",
    ca = u"OpenGraph",
    es = u"OpenGraph",
    en = u"OpenGraph"
)

translations.define("OpenGraphExtension.open_graph",
    ca = u"Integració amb OpenGraph/Facebook",
    es = u"Integración con OpenGraph/Facebook",
    en = u"OpenGraph/Facebook integration"
)
Exemplo n.º 25
0
#-*- coding: utf-8 -*-
u"""

.. moduleauthor:: Jordi Fernández <*****@*****.**>
"""
from cocktail.translations import translations
from woost.models import Extension, Configuration
from woost.models.rendering import ChainRenderer

translations.define("TV3ALaCartaExtension",
                    ca=u"TV3 a la carta",
                    es=u"TV3 a la carta",
                    en=u"TV3 a la carta")

translations.define("TV3ALaCartaExtension-plural",
                    ca=u"TV3 a la carta",
                    es=u"TV3 a la carta",
                    en=u"TV3 a la carta")


class TV3ALaCartaExtension(Extension):
    def __init__(self, **values):
        Extension.__init__(self, **values)
        self.extension_author = u"Whads/Accent SL"
        self.set("description",
                 u"""Afegeix suport per vídeos del 'TV3 a la carta'""", "ca")
        self.set(
            "description",
            u"""Añade soporte para videos del servicio 'TV3 a la carta'""",
            "es")
        self.set(
Exemplo n.º 26
0
#-*- coding: utf-8 -*-
"""

@author:		Martí Congost
@contact:		[email protected]
@organization:	Whads/Accent SL
@since:			December 2009
"""
from cocktail.translations import translations
from woost.translations.strings import content_permission_translation_factory

# UI
#------------------------------------------------------------------------------
translations.define("Action export_static",
    ca = u"Exportar contingut estàtic",
    es = u"Exportar contenido estático",
    en = u"Export static content"
)

translations.define("woost.extensions.staticsite any destination",
    ca = u"Tots els destins",
    es = u"Todos los destinos",
    en = u"All destinations"
)

translations.define("woost.extensions.staticsite Export button",
    ca = u"Exportar",
    es = u"Exportar",
    en = u"Export"
)
Exemplo n.º 27
0
#-*- coding: utf-8 -*-
u"""

.. moduleauthor:: Martí Congost <*****@*****.**>
"""
from cocktail.translations import translations

# Location
#------------------------------------------------------------------------------
translations.define("Location",
    ca = u"Ubicació",
    es = u"Ubicación",
    en = u"Location"
)

translations.define("Location-plural",
    ca = u"Ubicacions",
    es = u"Ubicaciones",
    en = u"Locations"
)

translations.define("Location.location_name",
    ca = u"Nom",
    es = u"Nombre",
    en = u"Name"
)

translations.define("Location.location_type",
    ca = u"Tipus d'ubicació",
    es = u"Tipo de ubicación",
    en = u"Location type"
Exemplo n.º 28
0
@contact:		[email protected]
@organization:	Whads/Accent SL
@since:			September 2009
"""
import re
import sys
from time import time
from simplejson import loads
from urllib import urlopen
from cocktail.translations import translations
from cocktail import schema
from cocktail.persistence import datastore
from woost.models import Extension, Configuration

translations.define("CountriesExtension",
                    ca=u"Països",
                    es=u"Países",
                    en=u"Countries")

translations.define("CountriesExtension-plural",
                    ca=u"Països",
                    es=u"Países",
                    en=u"Countries")

translations.define("CountriesExtension.update_frequency",
                    ca=u"Freqüència d'actualització",
                    es=u"Frecuencia de actualización",
                    en=u"Update frequency")

translations.define(
    "CountriesExtension.update_frequency-explanation",
    ca=u"El nombre de dies entre actualitzacions de la llista de paisos",
Exemplo n.º 29
0
#-*- coding: utf-8 -*-
u"""

.. moduleauthor:: Jordi Fernández <*****@*****.**>
"""
from cocktail.translations import translations

for cls_name in ("Configuration", "Website"):
    translations.define(cls_name + ".external_files_host",
                        ca=u"Domini fitxers externs",
                        es=u"Dominio ficheros externos",
                        en=u"External files host")
Exemplo n.º 30
0
#-*- coding: utf-8 -*-
u"""

.. moduleauthor:: Martí Congost <*****@*****.**>
"""
from cocktail.translations import translations

# Configuration
#------------------------------------------------------------------------------
translations.define("Configuration.media.audio",
                    ca=u"Audio",
                    es=u"Audio",
                    en=u"Audio")

translations.define("Configuration.audio_decoders",
                    ca=u"Decodificadors d'àudio",
                    es=u"Decodificadores de audio",
                    en=u"Audio decoders")

translations.define("Configuration.audio_encoders",
                    ca=u"Codificadors d'àudio",
                    es=u"Codificadores de audio",
                    en=u"Audio encoders")

# AudioDecoder
#------------------------------------------------------------------------------
translations.define("AudioDecoder",
                    ca=u"Decodificador d'àudio",
                    es=u"Decodificador de audio",
                    en=u"Audio decoder")