util/TranslationCatalogs.py
author Andrey Skvortsov <andrej.skvortzov@gmail.com>
Thu, 28 Sep 2017 12:20:40 +0300
changeset 1831 56b48961cc68
parent 1813 c18adf359d21
child 1838 646245c1c0d9
permissions -rw-r--r--
fix (old-style-class) Old-style class defined error for most parts of
the code

only PyJS code is left, because it does some fancy tricks and can't be
easily fixed. So far PyJS doesn't support Python3 anyway.
815
e4f24593a758 Adding support for extending internationalization to extensions
laurent
parents:
diff changeset
     1
#!/usr/bin/env python
e4f24593a758 Adding support for extending internationalization to extensions
laurent
parents:
diff changeset
     2
# -*- coding: utf-8 -*-
e4f24593a758 Adding support for extending internationalization to extensions
laurent
parents:
diff changeset
     3
1511
91538d0c242c add copyright notices to python files where there were missing, that
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents: 817
diff changeset
     4
# This file is part of Beremiz, a Integrated Development Environment for
91538d0c242c add copyright notices to python files where there were missing, that
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents: 817
diff changeset
     5
# programming IEC 61131-3 automates supporting plcopen standard and CanFestival.
91538d0c242c add copyright notices to python files where there were missing, that
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents: 817
diff changeset
     6
#
91538d0c242c add copyright notices to python files where there were missing, that
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents: 817
diff changeset
     7
# Copyright (C) 2007: Edouard TISSERANT and Laurent BESSARD
91538d0c242c add copyright notices to python files where there were missing, that
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents: 817
diff changeset
     8
#
91538d0c242c add copyright notices to python files where there were missing, that
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents: 817
diff changeset
     9
# See COPYING file for copyrights details.
91538d0c242c add copyright notices to python files where there were missing, that
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents: 817
diff changeset
    10
#
91538d0c242c add copyright notices to python files where there were missing, that
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents: 817
diff changeset
    11
# This program is free software; you can redistribute it and/or
91538d0c242c add copyright notices to python files where there were missing, that
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents: 817
diff changeset
    12
# modify it under the terms of the GNU General Public License
91538d0c242c add copyright notices to python files where there were missing, that
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents: 817
diff changeset
    13
# as published by the Free Software Foundation; either version 2
91538d0c242c add copyright notices to python files where there were missing, that
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents: 817
diff changeset
    14
# of the License, or (at your option) any later version.
91538d0c242c add copyright notices to python files where there were missing, that
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents: 817
diff changeset
    15
#
91538d0c242c add copyright notices to python files where there were missing, that
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents: 817
diff changeset
    16
# This program is distributed in the hope that it will be useful,
91538d0c242c add copyright notices to python files where there were missing, that
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents: 817
diff changeset
    17
# but WITHOUT ANY WARRANTY; without even the implied warranty of
91538d0c242c add copyright notices to python files where there were missing, that
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents: 817
diff changeset
    18
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
91538d0c242c add copyright notices to python files where there were missing, that
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents: 817
diff changeset
    19
# GNU General Public License for more details.
91538d0c242c add copyright notices to python files where there were missing, that
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents: 817
diff changeset
    20
#
91538d0c242c add copyright notices to python files where there were missing, that
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents: 817
diff changeset
    21
# You should have received a copy of the GNU General Public License
91538d0c242c add copyright notices to python files where there were missing, that
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents: 817
diff changeset
    22
# along with this program; if not, write to the Free Software
91538d0c242c add copyright notices to python files where there were missing, that
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents: 817
diff changeset
    23
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
91538d0c242c add copyright notices to python files where there were missing, that
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents: 817
diff changeset
    24
1730
64d8f52bc8c8 clean-up for PEP8: fix W291 trailing whitespace
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents: 1511
diff changeset
    25
import os
1806
6b4d0f4f2fbc add '_' function to builtin dictionary at import time
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents: 1762
diff changeset
    26
import __builtin__
815
e4f24593a758 Adding support for extending internationalization to extensions
laurent
parents:
diff changeset
    27
import wx
e4f24593a758 Adding support for extending internationalization to extensions
laurent
parents:
diff changeset
    28
1813
c18adf359d21 lazy locale initialization
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents: 1806
diff changeset
    29
locale = None
815
e4f24593a758 Adding support for extending internationalization to extensions
laurent
parents:
diff changeset
    30
1736
7e61baa047f0 clean-up: fix PEP8 E302 expected 2 blank lines, found 1
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents: 1730
diff changeset
    31
1806
6b4d0f4f2fbc add '_' function to builtin dictionary at import time
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents: 1762
diff changeset
    32
__builtin__.__dict__['_'] = wx.GetTranslation
6b4d0f4f2fbc add '_' function to builtin dictionary at import time
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents: 1762
diff changeset
    33
6b4d0f4f2fbc add '_' function to builtin dictionary at import time
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents: 1762
diff changeset
    34
815
e4f24593a758 Adding support for extending internationalization to extensions
laurent
parents:
diff changeset
    35
def GetDomain(path):
e4f24593a758 Adding support for extending internationalization to extensions
laurent
parents:
diff changeset
    36
    for name in os.listdir(path):
e4f24593a758 Adding support for extending internationalization to extensions
laurent
parents:
diff changeset
    37
        filepath = os.path.join(path, name)
e4f24593a758 Adding support for extending internationalization to extensions
laurent
parents:
diff changeset
    38
        basename, fileext = os.path.splitext(name)
e4f24593a758 Adding support for extending internationalization to extensions
laurent
parents:
diff changeset
    39
        if os.path.isdir(filepath):
e4f24593a758 Adding support for extending internationalization to extensions
laurent
parents:
diff changeset
    40
            result = GetDomain(filepath)
e4f24593a758 Adding support for extending internationalization to extensions
laurent
parents:
diff changeset
    41
            if result is not None:
e4f24593a758 Adding support for extending internationalization to extensions
laurent
parents:
diff changeset
    42
                return result
e4f24593a758 Adding support for extending internationalization to extensions
laurent
parents:
diff changeset
    43
        elif fileext == ".mo":
e4f24593a758 Adding support for extending internationalization to extensions
laurent
parents:
diff changeset
    44
            return basename
e4f24593a758 Adding support for extending internationalization to extensions
laurent
parents:
diff changeset
    45
    return None
e4f24593a758 Adding support for extending internationalization to extensions
laurent
parents:
diff changeset
    46
1736
7e61baa047f0 clean-up: fix PEP8 E302 expected 2 blank lines, found 1
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents: 1730
diff changeset
    47
815
e4f24593a758 Adding support for extending internationalization to extensions
laurent
parents:
diff changeset
    48
def AddCatalog(locale_dir):
e4f24593a758 Adding support for extending internationalization to extensions
laurent
parents:
diff changeset
    49
    if os.path.exists(locale_dir) and os.path.isdir(locale_dir):
e4f24593a758 Adding support for extending internationalization to extensions
laurent
parents:
diff changeset
    50
        domain = GetDomain(locale_dir)
e4f24593a758 Adding support for extending internationalization to extensions
laurent
parents:
diff changeset
    51
        if domain is not None:
1813
c18adf359d21 lazy locale initialization
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents: 1806
diff changeset
    52
            global locale
c18adf359d21 lazy locale initialization
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents: 1806
diff changeset
    53
            if locale is None:
c18adf359d21 lazy locale initialization
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents: 1806
diff changeset
    54
                # Define locale for wx
c18adf359d21 lazy locale initialization
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents: 1806
diff changeset
    55
                locale = wx.Locale(wx.LANGUAGE_DEFAULT)
c18adf359d21 lazy locale initialization
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents: 1806
diff changeset
    56
815
e4f24593a758 Adding support for extending internationalization to extensions
laurent
parents:
diff changeset
    57
            locale.AddCatalogLookupPathPrefix(locale_dir)
e4f24593a758 Adding support for extending internationalization to extensions
laurent
parents:
diff changeset
    58
            locale.AddCatalog(domain)
1762
fcc406143e5b clean-up: fix PEP8 E731 do not assign a lambda expression, use a def
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents: 1736
diff changeset
    59
fcc406143e5b clean-up: fix PEP8 E731 do not assign a lambda expression, use a def
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents: 1736
diff changeset
    60
fcc406143e5b clean-up: fix PEP8 E731 do not assign a lambda expression, use a def
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents: 1736
diff changeset
    61
def NoTranslate(x):
fcc406143e5b clean-up: fix PEP8 E731 do not assign a lambda expression, use a def
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents: 1736
diff changeset
    62
        return x