[Pymoul-svn] SF.net SVN: pymoul: [95] pymoul/trunk
Status: Alpha
Brought to you by:
tiran
|
From: <ti...@us...> - 2007-01-28 23:51:55
|
Revision: 95
http://pymoul.svn.sourceforge.net/pymoul/?rev=95&view=rev
Author: tiran
Date: 2007-01-28 15:51:53 -0800 (Sun, 28 Jan 2007)
Log Message:
-----------
Enhanced supported for IS script
Modified Paths:
--------------
pymoul/trunk/Makefile.in
pymoul/trunk/distutils_upx.py
Added Paths:
-----------
pymoul/trunk/src/moul/qt/i18n/pymoul_nl.qm
pymoul/trunk/src/moul/qt/i18n/pymoul_nl.ts
Modified: pymoul/trunk/Makefile.in
===================================================================
--- pymoul/trunk/Makefile.in 2007-01-28 21:14:23 UTC (rev 94)
+++ pymoul/trunk/Makefile.in 2007-01-28 23:51:53 UTC (rev 95)
@@ -6,7 +6,7 @@
FINDQT=find src/moul/qt \( -name '*.py' -o -name '*.ui' \) $(NOTSVN)
FINDTEXT=find src/moul \( -name '*.py' -o -name '*.txt' -o -name '*.qrc' -o -name '*.ui' -o -name '*.ts' \) $(NOTSVN)
FINDHASH= find . -not \( -name '*.txt' -o -name '*.asc' \) -a -not -type d
-LANGS=de fr it es
+LANGS=de es fr it nl
TESTFLAGS=-v
TESTOPTS=
SETUPFLAGS=
Modified: pymoul/trunk/distutils_upx.py
===================================================================
--- pymoul/trunk/distutils_upx.py 2007-01-28 21:14:23 UTC (rev 94)
+++ pymoul/trunk/distutils_upx.py 2007-01-28 23:51:53 UTC (rev 95)
@@ -12,6 +12,7 @@
from distutils import log
from stat import ST_SIZE
from fnmatch import fnmatch
+from ConfigParser import RawConfigParser
class UpxCommand:
"""Upx packer mixin class for distutils
@@ -184,38 +185,59 @@
self.dist_dir = dist_dir
# TODO: better name mangling
self.pathname = os.path.join(dist_dir, name.replace(' ', '_')+'.iss')
+ self.cfg = ISSConfigParser()
if not self.dist_dir[-1] in "\\/":
self.dist_dir += "\\"
self.name = name
self.version = version
self.windows_exe_files = [self.chop(p) for p in windows_exe_files]
self.lib_files = [self.chop(p) for p in lib_files]
+ self.setup_kwargs = {
+ }
+ self.languages = ["dutch", "french", "german", "italian", "spanish"]
def chop(self, pathname):
assert pathname.startswith(self.dist_dir)
return pathname[len(self.dist_dir):]
def create(self):
- ofi = self.file = open(self.pathname, "w")
- print >> ofi, "; WARNING: This script has been created by py2exe. Changes to this script"
- print >> ofi, "; will be overwritten the next time py2exe is run!"
- print >> ofi, r"[Setup]"
- print >> ofi, r"AppName=%s" % self.name
- print >> ofi, r"AppVerName=%s %s" % (self.name, self.version)
- print >> ofi, r"DefaultDirName={pf}\%s" % self.name
- print >> ofi, r"DefaultGroupName=%s" % self.name
- print >> ofi
-
- print >> ofi, r"[Files]"
+ fd = self.file = open(self.pathname, "w")
+ cfg = self.cfg
+ cfg.add_header("; WARNING: This script has been created by py2exe. Changes to this script")
+ cfg.add_header("; will be overwritten the next time py2exe is run!\n")
+ cfg.add_section('Setup')
+ cfg.add_section('Files')
+ cfg.add_section('Icons')
+ cfg.add_section('Languages')
+ cfg.add_section('Tasks')
+ cfg.add_section('Run')
+
+ # Setup
+ cfg.set("Setup", "AppName", self.name)
+ cfg.set("Setup", "AppVerName", "%s %s" % (self.name, self.version))
+ cfg.set("Setup", "DefaultDirName", "{pf}\%s" % self.name)
+ cfg.set("Setup", "DefaultGroupName", self.name)
+ for key, value in self.setup_kwargs.items():
+ cfg.set("Setup", key, value)
+ # Languages
+ cfg.set_raw('Languages',
+ 'Name: "english"; MessagesFile: "compiler:Default.isl"')
+ for lang in self.languages:
+ cfg.set_raw("Languages",
+ 'Name: "%s"; MessagesFile: "compiler:Languages/%s.isl"'
+ % (lang, lang.capitalize()))
+
for path in self.windows_exe_files + self.lib_files:
- print >> ofi, r'Source: "%s"; DestDir: "{app}\%s"; Flags: ignoreversion' % (path, os.path.dirname(path))
- print >> ofi
-
- print >> ofi, r"[Icons]"
+ cfg.set_raw("Files",
+ r'Source: "%s"; DestDir: "{app}\%s"; Flags: ignoreversion'
+ % (path, os.path.dirname(path))
+ )
for path in self.windows_exe_files:
- print >> ofi, r'Name: "{group}\%s"; Filename: "{app}\%s"' % \
- (self.name, path)
- print >> ofi, 'Name: "{group}\Uninstall %s"; Filename: "{uninstallexe}"' % self.name
+ cfg.set_raw("Icons",
+ 'Name: "{group}\%s"; Filename: "{app}\%s"' %
+ (self.name, path)
+ )
+ cfg.set_raw("Icons", 'Name: "{group}\Uninstall %s"; Filename: "{uninstallexe}"' % self.name)
def compile(self):
try:
@@ -243,7 +265,68 @@
if res < 32:
raise RuntimeError("ShellExecute failed, error %d" % res)
+class ISSConfigParser(RawConfigParser):
+ """Config parser for InnoSetupScripts
+ Supports *only* writing and no parsing!
+ """
+ def __init__(self, defaults=None):
+ RawConfigParser__init__(self, defaults)
+ self._raw = {}
+ self._header = []
+
+ def add_header(self, value):
+ """Add a header comment
+ """
+ self._header.append(value)
+
+ def add_section(self, section):
+ """Create a new section in the configuration.
+ """
+ RawConfigParser.add_section(self, section)
+ self._raw[section]= []
+
+ def set_raw(self, section, raw):
+ """Add a raw string to a section
+
+ TODO: use NoSectionError
+ """
+ self._raw[section] = raw
+
+ def _read(self, fp, fpname):
+ """Read and parse a filename or a list of filenames.
+ """
+ raise NotImplementedError
+
+ def optionxform(self, optionstr):
+ return optionstr
+
+ def write(self, fp):
+ """Write an .ini-format representation of the configuration state."""
+ for header in self._headers:
+ fp.write("; %s\n" % header.replace('\n', '; \n'))
+ if self._defaults:
+ fp.write("[%s]\n" % DEFAULTSECT)
+ for (key, value) in self._defaults.items():
+ fp.write("%s = %s\n" % (key, str(value).replace('\n', '\n\t')))
+ fp.write("\n")
+ for section in self._sections:
+ fp.write("[%s]\n" % section)
+ for (key, value) in self._sections[section].items():
+ if key != "__name__":
+ fp.write("%s = %s\n" %
+ (key, str(value).replace('\n', '\n\t')))
+ for raw in self._raw['section']:
+ fp.write(str(raw).replace('\n', '\n\t') +'\n')
+ fp.write("\n")
+
+ def remove_section(self, section):
+ """Remove a file section."""
+ existed = RawConfigParser.remove_section(self, section)
+ if existed:
+ del self._raw[section]
+ return existed
+
try:
from py2exe.build_exe import py2exe
except ImportError:
Added: pymoul/trunk/src/moul/qt/i18n/pymoul_nl.qm
===================================================================
(Binary files differ)
Property changes on: pymoul/trunk/src/moul/qt/i18n/pymoul_nl.qm
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: pymoul/trunk/src/moul/qt/i18n/pymoul_nl.ts
===================================================================
--- pymoul/trunk/src/moul/qt/i18n/pymoul_nl.ts (rev 0)
+++ pymoul/trunk/src/moul/qt/i18n/pymoul_nl.ts 2007-01-28 23:51:53 UTC (rev 95)
@@ -0,0 +1,248 @@
+<!DOCTYPE TS><TS>
+<context>
+ <name>MainWindow</name>
+ <message>
+ <source>Tool for Myst Online</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Configure</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Windowed</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Vertical Sync</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Display Shadows</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Screen Resolution</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>800x600 (4:3)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Quality</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Texture Quality</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Low</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>High</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Anti-Aliasing</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Graphics Quality</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Med.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Ultra</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Shadow Quality</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Anisotropic-Filtering</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Graphics</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Level</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>NPC Voices</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Sound FX</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Ambience Sound</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Music</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Mute all</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Hardware</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Sound Priority</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Audio Modes</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Generic Software</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Enable EAX</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Voice chat</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Microphon Level</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Enable Voice Chat</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Audio</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Time zones</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Cavern time:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Cyan time:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>UTC -0</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>(Mountain Standard Time)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>(Pacific Standard Time)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>D'ni time</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Time</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Ping servers</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Ping</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source><html><head><meta name="qrichtext" content="1" /><style type="text/css">
+p, li { white-space: pre-wrap; }
+</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal; text-decoration:none;">
+<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"></p></body></html></source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Servers</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Browse in game documents</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Age</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Element</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Language</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Set</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Documents</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>pyMoul tools</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>About</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>MOUL is running</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>MOUL</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>MOUL is not running</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Not Implemented</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Sorry, this feature is not implemented yet!</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Error opening graphics.ini</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Error opening audio.ini</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+</TS>
Property changes on: pymoul/trunk/src/moul/qt/i18n/pymoul_nl.ts
___________________________________________________________________
Name: svn:eol-style
+ native
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|