getdefaultlocale() OS X

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Darii
User
Beiträge: 1177
Registriert: Donnerstag 29. November 2007, 17:02

Ich kenne mich mit py2app nicht aus, aber wenn es ohne geht und mit nicht, dann wird py2app wohl irgendwas falsch packen, vermutlich musst du in der setup-Datei noch irgendwelche Einstellungen machen, da musst du einfach mal sukzessive durchprobieren, was an der Python-Umgebung in der App anders ist als normalerweise.

@Shining-Blue: Wie alt bist du denn?? Simula gibts schon seit den 60ern ;)
Shining-Blue
User
Beiträge: 37
Registriert: Samstag 15. August 2009, 04:36

Darii hat geschrieben:@Shining-Blue: Wie alt bist du denn?? Simula gibts schon seit den 60ern ;)
Na, na ,na - nicht so indeiskret :wink:
Aber soviel sei verraten: Auf meinem guten alten Apple][ euro+ (Eigenbau) habe ich noch die ersten Schritte von Herrn Wirth in Richtung Modula 2 mitbekommen, doch meine Lieblingsumgebung war damals Kyan Pascal mit seinem phantastischen Inlineassembler.

LG SB
Shining-Blue
User
Beiträge: 37
Registriert: Samstag 15. August 2009, 04:36

So, eine kleine Erkenntnis habe ich nun hinzugewonnen.
Die Tatsache, wann es auf dem Mac funktioniert und wann nicht, hängt unter anderem davon ab, ob Eclipse/pydev bzw der Pythoninterpreter gestartet wurden nachdem (!) das Terminal gestartet wurde und ob die Option die LANG-Variable zu setzen aktiviert ist.
Da dies bei einem Start von "Otto Normaluser" aus dem Bundle nicht zwingend gewährleistet ist, werde ich mich wohl um einen neuen Ansatz zur Lokalisierung kümmern müssen.
Ich befürchte es wird wohl auf plattformabhängige Lösungen hinauslaufen - schade, wollte ich eigentlich vermeiden.

LG SB
Shining-Blue
User
Beiträge: 37
Registriert: Samstag 15. August 2009, 04:36

Ich dreh' noch am Rad :evil:
Das kann doch nicht so schwer sein ein Programm platformübergreifend mehrsprachig zu machen.
Unter Linux funktioniert alles wunderbar, unter OS X auch solange es nicht durch py2app gejagt wird, aber unter Windows XP bekomme ich es um's Verrecken nicht gebacken.
Der Languagecode wird richtig erkannt, der Pfad zum Verzeichnis 'local' ebenfalls und dennoch erfolgt keine Übersetzung.
Wenn den jedenfalls irgend eine Fehlermeldung ausgegeben werden würde hätte ich ja noch einen Ansatz, aber so bin ich echt mit meinem Latein am Ende.
Ich glaube ich habe mitlerweile alle Variationen ausprobiert, die so über Google & Co zu diesem Thema zu finden sind, aber wenn dan artete das nur in Verschlimmbesserungen aus.
Wer hat es denn schon einmal geschafft eine Pythonanwendung unter Win mehrsprachig umzusetzen?
Zur Zeit sieht der Code folgendermaßen aus:

Code: Alles auswählen

from MainFrame import MainFrame
import locale
import gettext
import os
import sys
import wx
from AppKit import NSLocale
import platform

APPDIR = os.path.split( os.path.realpath( sys.argv[0] ) )[0]
LOCALEDIR = os.path.join( APPDIR, "locale" )

class MainApp( wx.App ):
	def OnInit( self ):
		wx.InitAllImageHandlers()
		MainWindow = MainFrame( None, -1, "" )
		self.SetTopWindow( MainWindow )
		MainWindow.Show()
		return 1

# end of class MainApp

if __name__ == "__main__":
	#    Plattform erkennen

	if platform.system() == 'Windows':
		locale.setlocale( locale.LC_ALL, '' )
		language_code, encoding = locale.getlocale()

	elif platform.system() == 'Darwin':
		language_code = NSLocale.currentLocale().localeIdentifier()
		encoding = unicode

	else:
		locale.setlocale( locale.LC_ALL, '' )
		language_code, encoding = locale.getlocale()

	# Localelize
	gettext.bindtextdomain( 'ScaleIt4BB', LOCALEDIR )
	gettext.install( 'ScaleIt4BB', LOCALEDIR, language_code, encoding )

	ScaleIt4BB = MainApp( 0 )
	ScaleIt4BB.MainLoop()
Ratlose, hilfesuchende Grüße,

SB
Antworten