예제 #1
0
def create_so_catalog(locales, domain):
    """
    Creates a message catalog based on list of locales from existing
    GNU message catalog
    """

    TG_Message.dropTable(ifExists=True)
    TG_Domain.dropTable(ifExists=True)

    TG_Domain.createTable(ifNotExists=True)
    TG_Message.createTable(ifNotExists=True)
    localedir = gearshift.config.get("i18n.locale_dir", "locales")

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

    for locale in locales:
        translations = translation(
                domain=domain.name,
                localedir=localedir,
                languages=[locale])
        catalog = translations._catalog
        for k, v in catalog.items():

            TG_Message(domain=domain, locale=locale, name=k, text=v)
예제 #2
0
def create_so_catalog(locales, domain):
    """
    Creates a message catalog based on list of locales from existing
    GNU message catalog
    """

    TG_Message.dropTable(ifExists=True)
    TG_Domain.dropTable(ifExists=True)

    TG_Domain.createTable(ifNotExists=True)
    TG_Message.createTable(ifNotExists=True)
    localedir = gearshift.config.get("i18n.locale_dir", "locales")

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

    for locale in locales:
        translations = translation(domain=domain.name,
                                   localedir=localedir,
                                   languages=[locale])
        catalog = translations._catalog
        for k, v in catalog.items():

            TG_Message(domain=domain, locale=locale, name=k, text=v)
예제 #3
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 = gearshift.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
예제 #4
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 = gearshift.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