Step towards fix of translation in Windows.

svn: r14268
This commit is contained in:
Peter Landgren 2010-02-07 18:01:17 +00:00
parent 22c4ec78cb
commit 34a910ec3a
4 changed files with 92 additions and 41 deletions

View File

@ -34,7 +34,7 @@ import gettext
import sys import sys
import os import os
import locale import locale
import ctypes
#------------------------------------------------------------------------- #-------------------------------------------------------------------------
# #
# gramps modules # gramps modules
@ -83,10 +83,10 @@ def setup_windows_gtk():
""" function to decide if needed on windows """ function to decide if needed on windows
This function should be called on windows instead of locale.bindtextdomain This function should be called on windows instead of locale.bindtextdomain
""" """
from Utils import win from constfunc import win
if win(): if win():
try: try:
libintl = ctypes.cdll.LoadLibrary("C:\\GTK\\gtk-2.18.5\\bin\\intl.dll") libintl = ctypes.cdll.LoadLibrary("intl.dll")
libintl.bindtextdomain(LOCALEDOMAIN, LOCALEDIR) libintl.bindtextdomain(LOCALEDOMAIN, LOCALEDIR)
except: except:
print "Error Loading translations into gtk.builder files" print "Error Loading translations into gtk.builder files"

View File

@ -212,37 +212,6 @@ def family_upper_name(family, db):
name = mother.get_primary_name().get_upper_name() name = mother.get_primary_name().get_upper_name()
return name return name
#-------------------------------------------------------------------------
#
# Platform determination functions
#
#-------------------------------------------------------------------------
def lin():
"""
Return True if a linux system
Note: Normally do as linux in else statement of a check !
"""
if platform.system() in LINUX:
return True
return False
def mac():
"""
Return True if a Macintosh system
"""
if platform.system() in MACOS:
return True
return False
def win():
"""
Return True if a windows system
"""
if platform.system() in WINDOWS:
return True
return False
#------------------------------------------------------------------------- #-------------------------------------------------------------------------
# #
# String Encoding functions # String Encoding functions

80
src/constfunc.py Normal file
View File

@ -0,0 +1,80 @@
#
# Gramps - a GTK+/GNOME based genealogy program
#
# Copyright (C) 2000-2006 Donald N. Allingham
# Copyright (C) 2009 Brian G. Matherly
# Copyright (C) 2009 Peter G. Landgren
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
#
# $Id:TransUtils.py 9912 2008-01-22 09:17:46Z acraphae $
"""
Some independet constants
"""
#------------------------------------------------------------------------
#
# python modules
#
#------------------------------------------------------------------------
import sys
import os
import platform
#import locale
#-------------------------------------------------------------------------
#
# Gramps modules
#
#-------------------------------------------------------------------------
from const import WINDOWS, MACOS, LINUX
#-------------------------------------------------------------------------
#
# Public Functions
#
#-------------------------------------------------------------------------
#-------------------------------------------------------------------------
#
# Platform determination functions
#
#-------------------------------------------------------------------------
def lin():
"""
Return True if a linux system
Note: Normally do as linux in else statement of a check !
"""
if platform.system() in LINUX:
return True
return False
def mac():
"""
Return True if a Macintosh system
"""
if platform.system() in MACOS:
return True
return False
def win():
"""
Return True if a windows system
"""
if platform.system() in WINDOWS:
return True
return False

View File

@ -44,7 +44,7 @@ LOG = logging.getLogger(".")
#------------------------------------------------------------------------- #-------------------------------------------------------------------------
from gen.mime import mime_type_is_defined from gen.mime import mime_type_is_defined
import TransUtils import TransUtils
import constfunc
#------------------------------------------------------------------------- #-------------------------------------------------------------------------
# #
# Load internationalization setup # Load internationalization setup
@ -67,12 +67,14 @@ except ValueError:
gettext.textdomain(TransUtils.LOCALEDOMAIN) gettext.textdomain(TransUtils.LOCALEDOMAIN)
gettext.install(TransUtils.LOCALEDOMAIN, localedir=None, unicode=1) #None is sys default locale gettext.install(TransUtils.LOCALEDOMAIN, localedir=None, unicode=1) #None is sys default locale
try: if not constfunc.win():
try:
locale.bindtextdomain(TransUtils.LOCALEDOMAIN, TransUtils.LOCALEDIR) locale.bindtextdomain(TransUtils.LOCALEDOMAIN, TransUtils.LOCALEDIR)
#locale.textdomain(TransUtils.LOCALEDOMAIN) #locale.textdomain(TransUtils.LOCALEDOMAIN)
except locale.Error: except locale.Error:
print 'No translation in some gtk.Builder strings, '\ print 'No translation in some gtk.Builder strings, '
'call TransUtils.setup_windows_gtk ??' else:
TransUtils.setup_windows_gtk()
LOG.debug('Using locale:', locale.getlocale()) LOG.debug('Using locale:', locale.getlocale())