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" })
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")
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"
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")
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"
@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"
@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):
#-*- 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",
#-*- 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(
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"
#-*- 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",
#-*- 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
#-*- 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",
#-*- 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")
#-*- 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")
.. 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"
#-*- 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",
#-*- 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."
#-*- 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")
#-*- 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"
#-*- 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",
#-*- 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""",
#-*- 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",
""" 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" )
#-*- 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(
#-*- 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" )
#-*- 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"
@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",
#-*- 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")
#-*- 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")