Ejemplo n.º 1
0
def get_so_catalog(domain):
    """Retrieves all translations for locale and domain from database and stores in thread data.
    """

    if domain is None:domain = turbogears.config.get("i18n.domain", "messages")
    
    catalog = _catalogs.get(domain)
    if not catalog:
        
        catalog = {}
        
        try:
            domain = TG_Domain.byName(domain)
        except SQLObjectNotFound:
            return catalog
            
        results = TG_Message.selectBy(domain=domain)
        for message in results:
            locale = message.locale    
            messages = catalog.get(locale, {})
            messages[message.name] = message.text
            catalog[locale] = messages
        
        
        _catalogs[domain.name] = catalog
            
    return catalog
Ejemplo n.º 2
0
def get_so_catalog(domain):
    """
    Retrieves all translations for locale and domain from database
    and stores in thread data.
    """

    if domain is None:
        domain = turbogears.config.get("i18n.domain", "messages")

    catalog = _catalogs.get(domain)
    if not catalog:

        catalog = {}

        try:
            domain = TG_Domain.byName(domain)
        except SQLObjectNotFound:
            return catalog

        results = TG_Message.selectBy(domain=domain)
        for message in results:
            locale = message.locale
            messages = catalog.get(locale, {})
            messages[message.name] = message.text
            catalog[locale] = messages

        _catalogs[domain.name] = catalog

    return catalog
Ejemplo n.º 3
0
def dump_so_catalogs(locales):
    """Takes all domains and messages and creates message catalogs
    """
    localedir = turbogears.config.get("i18n.locale_dir", "locales")

    for locale in locales:

        messages_dir = os.path.join(localedir, locale, "LC_MESSAGES")

        for domain in TG_Domain.select():
            pofile=os.path.join(messages_dir, "%s.po" %domain.name)
            f = codecs.open(pofile, "w", "UTF-8")
            f.write("""
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR ORGANIZATION
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\\n"
"POT-Creation-Date: CREATION_DATE\\n"
"PO-Revision-Date: REVISION_DATE\\n"
"Last-Translator: TRANSLATOR <EMAIL@ADDRESS>\\n"
"Language-Team: LANGUAGE <*****@*****.**>\\n"
"MIME-Version: 1.0\\n"
"Content-Type: text/plain; charset=UTF-8\\n"
"Content-Transfer-Encoding: 8bit\\n"
"Generated-By: turbogears\\n"

            """)

            for message in TG_Message.selectBy(domain=domain, locale=locale):

                if message.name == "":
                    continue # descriptive text

                f.write(u"""
msgid "%s"
msgstr "%s"
                """%(message.name, message.text))

            f.close()
Ejemplo n.º 4
0
def dump_so_catalogs(locales):
    """Takes all domains and messages and creates message catalogs
    """
    localedir = turbogears.config.get("i18n.locale_dir", "locales")

    for locale in locales:

        messages_dir = os.path.join(localedir, locale, "LC_MESSAGES")

        for domain in TG_Domain.select():
            pofile = os.path.join(messages_dir, "%s.po" % domain.name)
            f = codecs.open(pofile, "w", "UTF-8")
            f.write("""
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR ORGANIZATION
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\\n"
"POT-Creation-Date: CREATION_DATE\\n"
"PO-Revision-Date: REVISION_DATE\\n"
"Last-Translator: TRANSLATOR <EMAIL@ADDRESS>\\n"
"Language-Team: LANGUAGE <*****@*****.**>\\n"
"MIME-Version: 1.0\\n"
"Content-Type: text/plain; charset=UTF-8\\n"
"Content-Transfer-Encoding: 8bit\\n"
"Generated-By: turbogears\\n"

            """)

            for message in TG_Message.selectBy(domain=domain, locale=locale):

                if message.name == "": continue  # descriptive text

                f.write(u"""
msgid "%s"
msgstr "%s"
                """ % (message.name, message.text))

            f.close()