Hud localizations for OS X
parent
7da85df98b
commit
b813dcadcd
|
@ -97,12 +97,12 @@ static CelestiaCore *appCore;
|
|||
NSMutableDictionary* newDict;
|
||||
newDict = [NSMutableDictionary dictionaryWithCapacity: rootSize];
|
||||
|
||||
[newDict setObject: @"Sol" forKey: @"Home (Sol)"];
|
||||
[newDict setObject: @"Sol" forKey: NSLocalizedString(@"Home (Sol)",@"")];
|
||||
|
||||
[newDict setObject: [self starDict: StarBrowser::NearestStars ] forKey: @"Nearest Stars"];
|
||||
[newDict setObject: [self starDict: StarBrowser::BrighterStars ] forKey: @"Brightest Stars"];
|
||||
[newDict setObject: [self starDict: StarBrowser::StarsWithPlanets ] forKey: @"Stars With Planets"];
|
||||
[newDict setObject: [self deepSkyDict ] forKey: @"Deep Sky Objects"];
|
||||
[newDict setObject: [self starDict: StarBrowser::NearestStars ] forKey: NSLocalizedString(@"Nearest Stars",@"")];
|
||||
[newDict setObject: [self starDict: StarBrowser::BrighterStars ] forKey: NSLocalizedString(@"Brightest Stars",@"")];
|
||||
[newDict setObject: [self starDict: StarBrowser::StarsWithPlanets ] forKey: NSLocalizedString(@"Stars With Planets",@"")];
|
||||
[newDict setObject: [self deepSkyDict ] forKey: NSLocalizedString(@"Deep Sky Objects",@"")];
|
||||
|
||||
[newDict setObject: [[newDict allKeys]sortedArrayUsingSelector:@selector(caseInsensitiveCompare:)] forKey: @"_keys" ];
|
||||
[newDict setObject: @"" forKey: @"_path" ];
|
||||
|
@ -114,7 +114,7 @@ static CelestiaCore *appCore;
|
|||
{ // creates browser dictionary for star or planet
|
||||
NSMutableDictionary* newDict = NULL;
|
||||
PlanetarySystem* sys = nil;
|
||||
Selection sel = appCore->getSimulation()->findObjectFromPath([objPath stdString]);
|
||||
Selection sel = appCore->getSimulation()->findObjectFromPath([objPath stdString], true);
|
||||
if ( sel.getType() == Selection::Type_Body )
|
||||
{
|
||||
sys = sel.body()->getSatellites();
|
||||
|
@ -137,7 +137,7 @@ static CelestiaCore *appCore;
|
|||
for ( i=0; i<sysSize; i++)
|
||||
{
|
||||
Body* body = sys->getBody(i);
|
||||
NSString* bodName = [NSString stringWithStdString: sys->getBody(i)->getName()];
|
||||
NSString* bodName = [NSString stringWithStdString: body->getName(true)];
|
||||
NSString* bodPath = [[objPath stringByAppendingString: @"/"] stringByAppendingString: bodName];
|
||||
subDict = newDict;
|
||||
int bodyClass = body->getClassification();
|
||||
|
@ -181,20 +181,20 @@ static CelestiaCore *appCore;
|
|||
{
|
||||
[minorMoonDict setObject: [[minorMoonDict allKeys]sortedArrayUsingSelector:@selector(caseInsensitiveCompare:)] forKey: @"_keys" ];
|
||||
[minorMoonDict setObject: @"" forKey: @"_path" ];
|
||||
[newDict setObject: minorMoonDict forKey: @"Minor Moons"];
|
||||
[newDict setObject: minorMoonDict forKey: NSLocalizedString(@"Minor Moons",@"")];
|
||||
}
|
||||
}
|
||||
if (asteroidDict)
|
||||
{
|
||||
[asteroidDict setObject: [[asteroidDict allKeys]sortedArrayUsingSelector:@selector(caseInsensitiveCompare:)] forKey: @"_keys" ];
|
||||
[asteroidDict setObject: @"" forKey: @"_path" ];
|
||||
[newDict setObject: asteroidDict forKey: @"Asteroids"];
|
||||
[newDict setObject: asteroidDict forKey: NSLocalizedString(@"Asteroids",@"")];
|
||||
}
|
||||
if (cometDict)
|
||||
{
|
||||
[cometDict setObject: [[cometDict allKeys]sortedArrayUsingSelector:@selector(caseInsensitiveCompare:)] forKey: @"_keys" ];
|
||||
[cometDict setObject: @"" forKey: @"_path" ];
|
||||
[newDict setObject: cometDict forKey: @"Comets"];
|
||||
[newDict setObject: cometDict forKey: NSLocalizedString(@"Comets",@"")];
|
||||
}
|
||||
if (spacecraftDict)
|
||||
{
|
||||
|
@ -204,7 +204,7 @@ static CelestiaCore *appCore;
|
|||
{
|
||||
[spacecraftDict setObject: [[spacecraftDict allKeys]sortedArrayUsingSelector:@selector(caseInsensitiveCompare:)] forKey: @"_keys" ];
|
||||
[spacecraftDict setObject: @"" forKey: @"_path" ];
|
||||
[newDict setObject: spacecraftDict forKey: @"Spacecraft"];
|
||||
[newDict setObject: spacecraftDict forKey: NSLocalizedString(@"Spacecrafts",@"")];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -219,7 +219,7 @@ static CelestiaCore *appCore;
|
|||
for (vector<Location*>::const_iterator iter = locations->begin();
|
||||
iter != locations->end(); iter++)
|
||||
{
|
||||
NSString* locName = [NSString stringWithStdString: (*iter)->getName()];
|
||||
NSString* locName = [NSString stringWithStdString: (*iter)->getName(true)];
|
||||
NSString* locPath = [[objPath stringByAppendingString: @"/"] stringByAppendingString: locName];
|
||||
[locationDict setObject: locPath forKey: locName];
|
||||
}
|
||||
|
@ -229,7 +229,7 @@ static CelestiaCore *appCore;
|
|||
{
|
||||
[locationDict setObject: [[locationDict allKeys]sortedArrayUsingSelector:@selector(caseInsensitiveCompare:)] forKey: @"_keys" ];
|
||||
[locationDict setObject: @"" forKey: @"_path" ];
|
||||
[newDict setObject: locationDict forKey: @"Locations"];
|
||||
[newDict setObject: locationDict forKey: NSLocalizedString(@"Locations",@"")];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -243,7 +243,7 @@ static CelestiaCore *appCore;
|
|||
- (NSDictionary*) dictForPathArray: (NSArray*) pathNames
|
||||
{ //returns dictionary for path array
|
||||
NSMutableDictionary* lastDict = [self rootDict];
|
||||
NSMutableDictionary* nextDict = lastDict;
|
||||
id nextDict = lastDict;
|
||||
NSString* lastKey = nil;
|
||||
unsigned i;
|
||||
for (i=1;i<[pathNames count];i++)
|
||||
|
@ -290,7 +290,7 @@ static CelestiaCore *appCore;
|
|||
objPath = (NSString*)obj;
|
||||
}
|
||||
|
||||
Selection sel = appCore->getSimulation()->findObjectFromPath(objPath ? [objPath stdString] : std::string());
|
||||
Selection sel = appCore->getSimulation()->findObjectFromPath(objPath ? [objPath stdString] : std::string(), true);
|
||||
|
||||
// if (sel == nil) NSLog([NSString stringWithFormat: @"obj %@ not found", objPath]);
|
||||
return sel;
|
||||
|
@ -320,7 +320,7 @@ static CelestiaCore *appCore;
|
|||
if ([obj isKindOfClass: [NSDictionary class]]) return NO;
|
||||
if ([obj isKindOfClass: [NSString class]])
|
||||
{
|
||||
Selection sel = appCore->getSimulation()->findObjectFromPath([obj stdString]);
|
||||
Selection sel = appCore->getSimulation()->findObjectFromPath([obj stdString], true);
|
||||
if ( sel.getType() == Selection::Type_Body )
|
||||
{
|
||||
if ( sel.body()->getSatellites() || sel.body()->getLocations()) return NO;
|
||||
|
|
|
@ -39,28 +39,28 @@
|
|||
switch ([self body]->getClassification())
|
||||
{
|
||||
case (Body::Planet):
|
||||
return @"Planet";
|
||||
return NSLocalizedString(@"Planet",@"");
|
||||
break;
|
||||
case (Body::Moon):
|
||||
return @"Moon";
|
||||
return NSLocalizedString(@"Moon",@"");
|
||||
break;
|
||||
case (Body::Asteroid):
|
||||
return @"Asteroid";
|
||||
return NSLocalizedString(@"Asteroid",@"");
|
||||
break;
|
||||
case (Body::Comet):
|
||||
return @"Comet";
|
||||
return NSLocalizedString(@"Comet",@"");
|
||||
break;
|
||||
case (Body::Spacecraft):
|
||||
return @"Spacecraft";
|
||||
return NSLocalizedString(@"Spacecraft",@"");
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
return @"Unknown";
|
||||
return NSLocalizedString(@"Unknown",@"");
|
||||
}
|
||||
-(NSString *)name
|
||||
{
|
||||
return [NSString stringWithStdString:[self body]->getName()];
|
||||
return [NSString stringWithStdString:[self body]->getName(true)];
|
||||
}
|
||||
-(NSNumber *)radius
|
||||
{
|
||||
|
|
|
@ -120,7 +120,7 @@ NSString* fatalErrorMessage;
|
|||
{
|
||||
if (![fileManager fileExistsAtPath: path = [[ mainBundle resourcePath ] stringByAppendingPathComponent: CELESTIA_RESOURCES_FOLDER ] isDirectory: &isFolder] || !isFolder)
|
||||
{
|
||||
[self fatalError: @"It appears that the \"CelestiaResources\" directory has not been properly installed in the correct location as indicated in the installation instructions. \n\nPlease correct this and try again."];
|
||||
[self fatalError: NSLocalizedString(@"It appears that the \"CelestiaResources\" directory has not been properly installed in the correct location as indicated in the installation instructions. \n\nPlease correct this and try again.",@"")];
|
||||
[self fatalError: nil];
|
||||
}
|
||||
}
|
||||
|
@ -149,7 +149,7 @@ NSString* fatalErrorMessage;
|
|||
#ifdef DEBUG
|
||||
[pool release];
|
||||
#endif
|
||||
[self fatalError: @"Error loading data files. Celestia will now quit."];
|
||||
[self fatalError: NSLocalizedString(@"Error loading data files. Celestia will now quit.",@"")];
|
||||
#ifndef USE_THREADEDLOAD
|
||||
[self fatalError: nil];
|
||||
#else
|
||||
|
@ -183,7 +183,7 @@ NSString* fatalErrorMessage;
|
|||
{
|
||||
if (fatalErrorMessage == nil) return;
|
||||
[splashWindowController close];
|
||||
NSRunAlertPanel(@"Fatal Error", fatalErrorMessage, nil, nil, nil);
|
||||
NSRunAlertPanel(NSLocalizedString(@"Fatal Error",@""), fatalErrorMessage, nil, nil, nil);
|
||||
fatalErrorMessage = nil; // user could cancel the terminate
|
||||
[NSApp terminate:self];
|
||||
return;
|
||||
|
@ -234,19 +234,7 @@ NSString* fatalErrorMessage;
|
|||
[[CelestiaFavorites sharedFavorites] setSynchronize:menuCallback];
|
||||
[[CelestiaFavorites sharedFavorites] synchronize];
|
||||
}
|
||||
/*
|
||||
-(void) setupRenderPanel
|
||||
{
|
||||
// [[renderPanelController window] setAlphaValue: 0.8f];
|
||||
// [[renderPanelController window] setLevel: NSFloatingWindowLevel];
|
||||
// [[glView window] addChildWindow: [renderPanelController window] ordered: NSWindowAbove];
|
||||
[[renderPanelController window] setMovableByWindowBackground: YES];
|
||||
[[renderPanelController window] setHidesOnDeactivate: YES];
|
||||
[[renderPanelController window] setReleasedWhenClosed: NO];
|
||||
[[renderPanelController window] setOneShot: NO];
|
||||
// [renderPanelController finishSetup];
|
||||
}
|
||||
*/
|
||||
|
||||
-(void) startGLView
|
||||
{
|
||||
[[glView window] setAutodisplay:YES];
|
||||
|
@ -271,7 +259,6 @@ NSString* fatalErrorMessage;
|
|||
settings = [CelestiaSettings shared];
|
||||
[settings setControl: self];
|
||||
[settings scanForKeys: [renderPanelController window]];
|
||||
// [self setupRenderPanel];
|
||||
[settings validateItems];
|
||||
|
||||
// load settings
|
||||
|
@ -378,7 +365,11 @@ NSString* fatalErrorMessage;
|
|||
{
|
||||
[self pauseFullScreen]; // allow dialog to show
|
||||
|
||||
if ( NSRunAlertPanel(@"Quit Celestia?",@"Are you sure you want to quit Celestia?",@"Quit",@"Cancel",nil) != NSAlertDefaultReturn )
|
||||
if ( NSRunAlertPanel(NSLocalizedString(@"Quit Celestia?",@""),
|
||||
NSLocalizedString(@"Are you sure you want to quit Celestia?",@""),
|
||||
NSLocalizedString(@"Quit",@""),
|
||||
NSLocalizedString(@"Cancel",@""),
|
||||
nil) != NSAlertDefaultReturn )
|
||||
{
|
||||
[self unpauseFullScreen];
|
||||
return NO;
|
||||
|
@ -570,7 +561,7 @@ NSString* fatalErrorMessage;
|
|||
// so user can still quit the program
|
||||
[[self window] orderOut: self];
|
||||
ShowMenuBar();
|
||||
[self fatalError: @"Unable to properly exit full screen mode. Celestia will now quit."];
|
||||
[self fatalError: NSLocalizedString(@"Unable to properly exit full screen mode. Celestia will now quit.",@"")];
|
||||
[self performSelector:@selector(fatalError:) withObject:nil afterDelay:0.1];
|
||||
return;
|
||||
}
|
||||
|
@ -741,13 +732,13 @@ NSString* fatalErrorMessage;
|
|||
- (IBAction) captureMovie: (id) sender
|
||||
{
|
||||
// Remove following line to enable movie capture...
|
||||
NSRunAlertPanel(@"No Movie Capture",@"Movie capture is not available in this version of Celestia.",nil,nil,nil); return;
|
||||
NSRunAlertPanel(NSLocalizedString(@"No Movie Capture",@""), NSLocalizedString(@"Movie capture is not available in this version of Celestia.",@""),nil,nil,nil); return;
|
||||
|
||||
NSSavePanel* panel = [NSSavePanel savePanel];
|
||||
NSString* lastMovie = nil; // temporary; should be saved in defaults
|
||||
|
||||
[panel setRequiredFileType: @"mov"];
|
||||
[panel setTitle: @"Capture Movie"];
|
||||
[panel setTitle: NSLocalizedString(@"Capture Movie",@"")];
|
||||
[ panel beginSheetForDirectory: [lastMovie stringByDeletingLastPathComponent]
|
||||
file: [lastMovie lastPathComponent]
|
||||
modalForWindow: [glView window]
|
||||
|
|
|
@ -103,7 +103,7 @@
|
|||
FavoritesEntry* fav = new FavoritesEntry();
|
||||
NSString *parentFolder = (folder == nil) ? @"" : [folder name];
|
||||
if (name == nil || [name isEqualToString:@""])
|
||||
name = @"untitled folder";
|
||||
name = NSLocalizedString(@"untitled folder",@"");
|
||||
fav->name = [name stdString];
|
||||
fav->isFolder = true;
|
||||
fav->parentFolder = [parentFolder stdString];
|
||||
|
|
|
@ -35,11 +35,12 @@
|
|||
-(NSNumber*)vertexShaderEnabled;
|
||||
-(void)setVertexShaderEnabled:(NSNumber*)enable;
|
||||
-(BOOL)isVertexShaderSupported;
|
||||
|
||||
/*
|
||||
-(NSNumber*)saturationMagnitude;
|
||||
-(void)setSaturationMagnitude:(NSNumber*)mag;
|
||||
-(NSNumber*)brightnessBias;
|
||||
-(void)setBrightnessBias:(NSNumber*)bias;
|
||||
*/
|
||||
-(NSNumber*)resolution;
|
||||
-(void)setResolution:(NSNumber*)res;
|
||||
- (int) getOrbitmask;
|
||||
|
|
|
@ -172,7 +172,7 @@ numberWithInt:Renderer::ShowPlanets],@"Planets",[NSNumber numberWithInt:Renderer
|
|||
{
|
||||
return (BOOL)[self renderer]->vertexShaderSupported();
|
||||
}
|
||||
|
||||
/*
|
||||
-(NSNumber*)saturationMagnitude
|
||||
{
|
||||
return [NSNumber numberWithFloat:[self renderer]->getSaturationMagnitude()];
|
||||
|
@ -192,7 +192,7 @@ numberWithInt:Renderer::ShowPlanets],@"Planets",[NSNumber numberWithInt:Renderer
|
|||
{
|
||||
[self renderer]->setBrightnessBias([bias floatValue]);
|
||||
}
|
||||
|
||||
*/
|
||||
-(NSNumber*)resolution
|
||||
{
|
||||
return [NSNumber numberWithUnsignedInt:[self renderer]->getResolution()];
|
||||
|
@ -243,7 +243,7 @@ numberWithInt:Renderer::ShowPlanets],@"Planets",[NSNumber numberWithInt:Renderer
|
|||
|
||||
-(void)archive
|
||||
{
|
||||
[[NSUserDefaults standardUserDefaults] setObject:[NSDictionary dictionaryWithObjectsAndKeys:[self labelFlags],@"labelFlags",[self renderFlags],@"renderFlags",[self brightnessBias],@"brightnessBias",[self resolution],@"resolution",[self saturationMagnitude],@"saturationMagnitude",[self vertexShaderEnabled],@"vertexShaderEnabled",[self fragmentShaderEnabled],@"fragmentShaderEnabled",
|
||||
[[NSUserDefaults standardUserDefaults] setObject:[NSDictionary dictionaryWithObjectsAndKeys:[self labelFlags],@"labelFlags",[self renderFlags],@"renderFlags",[self resolution],@"resolution",[self vertexShaderEnabled],@"vertexShaderEnabled",[self fragmentShaderEnabled],@"fragmentShaderEnabled",
|
||||
[NSNumber numberWithInt: [self getOrbitmask]], @"orbitMask",
|
||||
|
||||
nil,nil] forKey:@"renderPreferences"];
|
||||
|
|
|
@ -37,19 +37,19 @@
|
|||
|
||||
// Time Settings
|
||||
|
||||
-(NSNumber *) time ;
|
||||
-(void) setTime: (NSNumber *) value ;
|
||||
-(double) time ;
|
||||
-(void) setTime: (double) value ;
|
||||
|
||||
-(NSNumber *) timeScale ;
|
||||
-(void) setTimeScale: (NSNumber *) value ;
|
||||
-(double) timeScale ;
|
||||
-(void) setTimeScale: (double) value ;
|
||||
|
||||
-(BOOL) synchTime;
|
||||
-(void) setSynchTime: (BOOL) value ;
|
||||
|
||||
// Gaze Settings
|
||||
|
||||
-(NSNumber *) fieldOfView ;
|
||||
-(void) setFieldOfView: (NSNumber *) value ;
|
||||
-(float) fieldOfView ;
|
||||
-(void) setFieldOfView: (float) value ;
|
||||
|
||||
// situation
|
||||
|
||||
|
@ -93,9 +93,6 @@
|
|||
-(BOOL) showEclipseShadows ;
|
||||
-(void) setShowEclipseShadows: (BOOL) value ;
|
||||
|
||||
-(BOOL) showStarsAsPoints ;
|
||||
-(void) setShowStarsAsPoints: (BOOL) value ;
|
||||
|
||||
-(BOOL) showRingShadows ;
|
||||
-(void) setShowRingShadows: (BOOL) value ;
|
||||
|
||||
|
@ -166,36 +163,28 @@
|
|||
-(BOOL) showSpacecraftOrbits ;
|
||||
-(void) setShowSpacecraftOrbits: (BOOL) value ;
|
||||
|
||||
-(NSNumber *) minimumOrbitSize ;
|
||||
-(void) setMinimumOrbitSize: (NSNumber *) value ;
|
||||
-(float) minimumOrbitSize ;
|
||||
-(void) setMinimumOrbitSize: (float) value ;
|
||||
|
||||
// Location Visibility Settings
|
||||
|
||||
// Feature Settings
|
||||
|
||||
-(NSNumber *) minimumFeatureSize ;
|
||||
-(void) setMinimumFeatureSize: (NSNumber *) value ;
|
||||
-(float) minimumFeatureSize ;
|
||||
-(void) setMinimumFeatureSize: (float) value ;
|
||||
|
||||
// Lighting Settings
|
||||
|
||||
-(NSNumber *) ambientLightLevel ;
|
||||
-(void) setAmbientLightLevel: (NSNumber *) value ;
|
||||
-(float) ambientLightLevel ;
|
||||
-(void) setAmbientLightLevel: (float) value ;
|
||||
|
||||
// Star Settings
|
||||
|
||||
-(NSNumber *) distanceLimit ;
|
||||
-(void) setDistanceLimit: (NSNumber *) value ;
|
||||
-(float) distanceLimit ;
|
||||
-(void) setDistanceLimit: (float) value ;
|
||||
|
||||
-(NSNumber *) faintestVisible ;
|
||||
-(void) setFaintestVisible: (NSNumber *) value ;
|
||||
|
||||
// Brightness Settings
|
||||
|
||||
-(NSNumber *) saturationMagnitude ;
|
||||
-(void) setSaturationMagnitude: (NSNumber *) value ;
|
||||
|
||||
-(NSNumber *) brightnessBias ;
|
||||
-(void) setBrightnessBias: (NSNumber *) value ;
|
||||
-(float) faintestVisible ;
|
||||
-(void) setFaintestVisible: (float) value ;
|
||||
|
||||
-(int) starStyle ;
|
||||
-(void) setStarStyle: (int) value ;
|
||||
|
|
|
@ -106,7 +106,7 @@ static NSMutableDictionary* tagMap;
|
|||
TAGDEF(409,@"showSmoothLines")
|
||||
TAGDEF(410,@"showEclipseShadows")
|
||||
TAGDEF(412,@"showRingShadows")
|
||||
TAGDEF(411,@"showStarsAsPoints")
|
||||
// TAGDEF(411,@"showStarsAsPoints")
|
||||
TAGDEF(414,@"showAutoMag")
|
||||
TAGDEF(406,@"showCelestialSphere")
|
||||
// object labels
|
||||
|
@ -121,6 +121,7 @@ static NSMutableDictionary* tagMap;
|
|||
TAGDEF(508,@"showCometLabels")
|
||||
TAGDEF(509,@"showNebulaLabels")
|
||||
TAGDEF(510,@"showOpenClusterLabels")
|
||||
TAGDEF(511,@"showLatinConstellationLabels")
|
||||
// popups
|
||||
TAGDEF(600,@"altSurface")
|
||||
TAGDEF(610,@"hudDetail")
|
||||
|
@ -168,7 +169,7 @@ static NSMutableDictionary* tagMap;
|
|||
// stars
|
||||
// TAGDEF(999,@"distanceLimit")
|
||||
TAGDEF(900,@"ambientLightLevel")
|
||||
TAGDEF(901,@"brightnessBias")
|
||||
// TAGDEF(901,@"brightnessBias")
|
||||
TAGDEF(902,@"faintestVisible")
|
||||
TAGDEF(904,@"galaxyBrightness")
|
||||
// TAGDEF(999,@"saturationMagnitude")
|
||||
|
@ -258,7 +259,11 @@ static NSMutableDictionary* tagMap;
|
|||
while ( nil != (key = [keys nextObject]) )
|
||||
{
|
||||
// NSLog([NSString stringWithFormat: @"loading default dict entry %@ %@", key, [defaultsDictionary objectForKey: key] ]);
|
||||
#if MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_3
|
||||
[self setValue: [defaultsDictionary objectForKey: key] forKey: key];
|
||||
#else
|
||||
[self takeValue: [defaultsDictionary objectForKey: key] forKey: key];
|
||||
#endif
|
||||
// NSLog([NSString stringWithFormat: @"loaded default dict entry %@ %@", key, [self valueForKey: key] ]);
|
||||
}
|
||||
// NSLog(@"loaded user defaults");
|
||||
|
@ -299,47 +304,86 @@ static NSMutableDictionary* tagMap;
|
|||
|
||||
-(id) valueForTag: (int) tag {
|
||||
return [self valueForKey: [tagDict objectForKey: [NSNumber numberWithInt: tag] ] ];
|
||||
};
|
||||
}
|
||||
|
||||
-(void) takeValue: (id) value forTag: (int) tag
|
||||
{
|
||||
// NSLog([NSString stringWithFormat: @"take value for tag %@ %d", value, tag]);
|
||||
id key = [tagDict objectForKey: [NSNumber numberWithInt: tag] ];
|
||||
// NSLog([NSString stringWithFormat: @"take value for key %@ %@", value, key]);
|
||||
if (key!= nil) [self takeValue: value forKey: key ];
|
||||
};
|
||||
if (key!= nil)
|
||||
{
|
||||
#if MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_3
|
||||
[self setValue: value forKey: key ];
|
||||
#else
|
||||
[self takeValue: value forKey: key ];
|
||||
#endif
|
||||
}
|
||||
}
|
||||
|
||||
#if MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_3
|
||||
- (id)valueForUndefinedKey: (NSString *) key
|
||||
{
|
||||
#ifdef DEBUG
|
||||
if ( key ) NSLog(@"unbound value for %@", key);
|
||||
#endif
|
||||
return nil;
|
||||
}
|
||||
|
||||
- (void)setValue: (id) value forUndefinedKey: (NSString *) key
|
||||
{
|
||||
#ifdef DEBUG
|
||||
NSLog(@"unbound key set for %@", key);
|
||||
#endif
|
||||
}
|
||||
|
||||
- (void)setNilValueForKey: (NSString *) key
|
||||
{
|
||||
#ifdef DEBUG
|
||||
NSLog(@"nil value for %@", key);
|
||||
#endif
|
||||
}
|
||||
|
||||
#else
|
||||
|
||||
-(id)handleQueryWithUnboundKey: (NSString*) key
|
||||
{
|
||||
if ( key != NULL) NSLog([NSString stringWithFormat: @"unbound key query for %@",key]);
|
||||
#ifdef DEBUG
|
||||
if ( key ) NSLog(@"unbound key query for %@", key);
|
||||
#endif
|
||||
return nil;
|
||||
};
|
||||
}
|
||||
|
||||
-(void)handleTakeValue: (id) value forUnboundKey: (NSString*) key
|
||||
{
|
||||
NSLog([NSString stringWithFormat: @"unbound key set for %@",key]);
|
||||
};
|
||||
#ifdef DEBUG
|
||||
NSLog(@"unbound key set for %@", key);
|
||||
#endif
|
||||
}
|
||||
|
||||
-(void)unableToSetNilForKey: (NSString*) key
|
||||
{
|
||||
NSLog([NSString stringWithFormat: @"nl key for %@",key]);
|
||||
};
|
||||
#ifdef DEBUG
|
||||
NSLog(@"nil key for %@", key);
|
||||
#endif
|
||||
}
|
||||
#endif
|
||||
|
||||
// Time Settings
|
||||
|
||||
-(NSNumber *) time { return [NSNumber numberWithDouble: appCore->getSimulation()->getTime()]; }
|
||||
-(void) setTime: (NSNumber *) value { appCore->getSimulation()->setTime(value ? [value doubleValue] : 0.0); }
|
||||
-(double) time { return appCore->getSimulation()->getTime(); }
|
||||
-(void) setTime: (double) value { appCore->getSimulation()->setTime(value); }
|
||||
|
||||
-(NSNumber *) timeScale { return [NSNumber numberWithDouble: appCore->getSimulation()->getTimeScale()]; }
|
||||
-(void) setTimeScale: (NSNumber *) value { appCore->getSimulation()->setTimeScale(value ? [value doubleValue] : 0.0); }
|
||||
-(double) timeScale { return appCore->getSimulation()->getTimeScale(); }
|
||||
-(void) setTimeScale: (double) value { appCore->getSimulation()->setTimeScale(value); }
|
||||
|
||||
-(BOOL) synchTime { return appCore->getSimulation()->getSyncTime(); };
|
||||
-(void) setSynchTime: (BOOL) value { appCore->getSimulation()->setSyncTime(value); };
|
||||
-(BOOL) synchTime { return appCore->getSimulation()->getSyncTime(); }
|
||||
-(void) setSynchTime: (BOOL) value { appCore->getSimulation()->setSyncTime(value); }
|
||||
|
||||
// Gaze Settings
|
||||
|
||||
-(NSNumber *) fieldOfView { return [NSNumber numberWithFloat: appCore->getSimulation()->getObserver().getFOV()]; }
|
||||
-(void) setFieldOfView: (NSNumber *) value { appCore->getSimulation()->getObserver().setFOV(value ? [value floatValue] : 0.0f); }
|
||||
-(float) fieldOfView { return appCore->getSimulation()->getObserver().getFOV(); }
|
||||
-(void) setFieldOfView: (float) value { appCore->getSimulation()->getObserver().setFOV(value); }
|
||||
|
||||
// Observer Settings
|
||||
|
||||
|
@ -356,7 +400,7 @@ static NSMutableDictionary* tagMap;
|
|||
// NSLog([NSString stringWithFormat: @"setValue %d forBit: %d inSet: %d = %d",value,bit,set,result]);
|
||||
// NSLog([NSString stringWithFormat: @"bit was: %d bit is: %d ",(set&bit),(result&bit)]);
|
||||
return result;
|
||||
};
|
||||
}
|
||||
|
||||
// Visibility Settings
|
||||
|
||||
|
@ -377,7 +421,6 @@ RENDERMETHODS(PartialTrajectories)
|
|||
RENDERMETHODS(SmoothLines)
|
||||
RENDERMETHODS(EclipseShadows)
|
||||
RENDERMETHODS(RingShadows)
|
||||
RENDERMETHODS(StarsAsPoints)
|
||||
RENDERMETHODS(AutoMag)
|
||||
RENDERMETHODS(CelestialSphere)
|
||||
RENDERMETHODS(Nebulae)
|
||||
|
@ -399,6 +442,13 @@ LABELMETHODS(Comet)
|
|||
LABELMETHODS(Nebula)
|
||||
LABELMETHODS(OpenCluster)
|
||||
|
||||
-(BOOL) showLatinConstellationLabels {
|
||||
return (appCore->getRenderer()->getLabelMode() & Renderer::I18nConstellationLabels) == 0;
|
||||
}
|
||||
-(void) setShowLatinConstellationLabels : (BOOL) value {
|
||||
appCore->getRenderer()->setLabelMode( [self setValue: (!value) forBit: Renderer::I18nConstellationLabels inSet: appCore->getRenderer()->getLabelMode()] );
|
||||
}
|
||||
|
||||
// Orbit Settings
|
||||
|
||||
#define ORBITMETHODS(flag) -(BOOL) show##flag##Orbits { return (appCore->getRenderer()->getOrbitMask()&Body::flag) != 0; } -(void) setShow##flag##Orbits: (BOOL) value { appCore->getRenderer()->setOrbitMask([self setValue: value forBit: Body::flag inSet: appCore->getRenderer()->getOrbitMask()]); }
|
||||
|
@ -410,8 +460,8 @@ ORBITMETHODS(Spacecraft)
|
|||
ORBITMETHODS(Comet)
|
||||
|
||||
|
||||
-(NSNumber *) minimumOrbitSize { return [NSNumber numberWithFloat: appCore->getRenderer()->getMinimumOrbitSize()]; }
|
||||
-(void) setMinimumOrbitSize: (NSNumber *) value { appCore->getRenderer()->setMinimumOrbitSize(value ? [value floatValue] : 0.0f); }
|
||||
-(float) minimumOrbitSize { return appCore->getRenderer()->getMinimumOrbitSize(); }
|
||||
-(void) setMinimumOrbitSize: (float) value { appCore->getRenderer()->setMinimumOrbitSize(value); }
|
||||
|
||||
// Feature Settings
|
||||
|
||||
|
@ -447,78 +497,75 @@ FEATUREMETHODS(Fluctus)
|
|||
FEATUREMETHODS(Farrum)
|
||||
FEATUREMETHODS(Other)
|
||||
|
||||
-(NSNumber *) minimumFeatureSize { return [NSNumber numberWithFloat: appCore->getRenderer()->getMinimumFeatureSize()]; }
|
||||
-(void) setMinimumFeatureSize: (NSNumber *) value { appCore->getRenderer()->setMinimumFeatureSize(value ? [value floatValue] : 0.0f); }
|
||||
-(float) minimumFeatureSize { return appCore->getRenderer()->getMinimumFeatureSize(); }
|
||||
-(void) setMinimumFeatureSize: (float) value { appCore->getRenderer()->setMinimumFeatureSize(value); }
|
||||
|
||||
// Lighting Settings
|
||||
|
||||
-(NSNumber *) ambientLightLevel { return [NSNumber numberWithFloat: appCore->getRenderer()->getAmbientLightLevel()]; }
|
||||
-(void) setAmbientLightLevel: (NSNumber *) value { appCore->getRenderer()->setAmbientLightLevel(value ? [value floatValue] : 0.0f); }
|
||||
-(float) ambientLightLevel { return appCore->getRenderer()->getAmbientLightLevel(); }
|
||||
-(void) setAmbientLightLevel: (float) value { appCore->getRenderer()->setAmbientLightLevel(value); }
|
||||
|
||||
-(NSNumber *) galaxyBrightness { return [NSNumber numberWithFloat: Galaxy::getLightGain()]; }
|
||||
-(void) setGalaxyBrightness: (NSNumber *) value { Galaxy::setLightGain(value ? [value floatValue] : 0.0f); }
|
||||
-(float) galaxyBrightness { return Galaxy::getLightGain(); }
|
||||
-(void) setGalaxyBrightness: (float) value { Galaxy::setLightGain(value); }
|
||||
|
||||
// Star Settings
|
||||
|
||||
-(NSNumber *) distanceLimit { return [NSNumber numberWithFloat: appCore->getRenderer()->getDistanceLimit()]; }
|
||||
-(void) setDistanceLimit: (NSNumber *) value { appCore->getRenderer()->setDistanceLimit(value ? [value floatValue] : 0.0f); }
|
||||
-(float) distanceLimit { return appCore->getRenderer()->getDistanceLimit(); }
|
||||
-(void) setDistanceLimit: (float) value { appCore->getRenderer()->setDistanceLimit(value); }
|
||||
|
||||
-(NSNumber *) faintestVisible
|
||||
-(float) faintestVisible
|
||||
{
|
||||
// return appCore->getSimulation()->getFaintestVisible();
|
||||
if ((appCore->getRenderer()->getRenderFlags() & Renderer::ShowAutoMag) == 0)
|
||||
{
|
||||
return [NSNumber numberWithFloat: appCore->getSimulation()->getFaintestVisible()];
|
||||
return appCore->getSimulation()->getFaintestVisible();
|
||||
}
|
||||
else
|
||||
{
|
||||
return [NSNumber numberWithFloat: appCore->getRenderer()->getFaintestAM45deg()];
|
||||
return appCore->getRenderer()->getFaintestAM45deg();
|
||||
}
|
||||
}
|
||||
|
||||
-(void) setFaintestVisible: (NSNumber *) value
|
||||
-(void) setFaintestVisible: (float) value
|
||||
{
|
||||
float theValue = value ? [value floatValue] : 0.0f;
|
||||
|
||||
if ((appCore->getRenderer()->getRenderFlags() & Renderer::ShowAutoMag) == 0)
|
||||
{
|
||||
appCore->setFaintest(theValue);
|
||||
appCore->setFaintest(value);
|
||||
}
|
||||
else
|
||||
{
|
||||
appCore->getRenderer()->setFaintestAM45deg(theValue);
|
||||
appCore->getRenderer()->setFaintestAM45deg(value);
|
||||
appCore->setFaintestAutoMag();
|
||||
}
|
||||
}
|
||||
|
||||
// Brightness Settings
|
||||
|
||||
-(NSNumber *) saturationMagnitude { return [NSNumber numberWithFloat: appCore->getRenderer()->getSaturationMagnitude()]; }
|
||||
-(void) setSaturationMagnitude: (NSNumber *) value { appCore->getRenderer()->setSaturationMagnitude(value ? [value floatValue] : 0.0f); }
|
||||
|
||||
-(NSNumber *) brightnessBias { return [NSNumber numberWithFloat: appCore->getRenderer()->getBrightnessBias()]; }
|
||||
-(void) setBrightnessBias: (NSNumber *) value { appCore->getRenderer()->setBrightnessBias(value ? [value floatValue] : 0.0f); }
|
||||
|
||||
-(int) starStyle { return appCore->getRenderer()->getStarStyle(); } ;
|
||||
-(void) setStarStyle: (int) value { appCore->getRenderer()->setStarStyle((Renderer::StarStyle)value); };
|
||||
-(int) starStyle { return appCore->getRenderer()->getStarStyle(); }
|
||||
-(void) setStarStyle: (int) value { appCore->getRenderer()->setStarStyle((Renderer::StarStyle)value); }
|
||||
|
||||
// Texture Settings
|
||||
|
||||
-(int) resolution { return appCore->getRenderer()->getResolution(); } ;
|
||||
-(void) setResolution: (int) value { appCore->getRenderer()->setResolution(value); };
|
||||
-(int) resolution { return appCore->getRenderer()->getResolution(); }
|
||||
-(void) setResolution: (int) value { appCore->getRenderer()->setResolution(value); }
|
||||
|
||||
// Overlay Settings
|
||||
|
||||
-(int) hudDetail { return appCore->getHudDetail(); } ;
|
||||
-(void) setHudDetail: (int) value { appCore->setHudDetail(value); };
|
||||
-(int) hudDetail { return appCore->getHudDetail(); }
|
||||
-(void) setHudDetail: (int) value { appCore->setHudDetail(value); }
|
||||
|
||||
// Other Settings
|
||||
|
||||
-(int) renderPath { return appCore->getRenderer()->getGLContext()->getRenderPath(); } ;
|
||||
-(void) setRenderPath: (int) value { appCore->getRenderer()->getGLContext()->setRenderPath((GLContext::GLRenderPath)value); };
|
||||
-(int) renderPath { return appCore->getRenderer()->getGLContext()->getRenderPath(); }
|
||||
-(void) setRenderPath: (int) value { appCore->getRenderer()->getGLContext()->setRenderPath((GLContext::GLRenderPath)value); }
|
||||
|
||||
-(int) fullScreenMode { return [[control valueForKey: @"isFullScreen"] intValue]; }
|
||||
-(void) setFullScreenMode: (int) value { [control takeValue: [NSNumber numberWithBool: (value != 0)] forKey: @"isFullScreen"]; }
|
||||
-(void) setFullScreenMode: (int) value
|
||||
{
|
||||
#if MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_3
|
||||
[control setValue: [NSNumber numberWithBool: (value != 0)] forKey: @"isFullScreen"];
|
||||
#else
|
||||
[control takeValue: [NSNumber numberWithBool: (value != 0)] forKey: @"isFullScreen"];
|
||||
#endif
|
||||
}
|
||||
|
||||
// Alt Surface Setting
|
||||
|
||||
|
@ -602,14 +649,19 @@ FEATUREMETHODS(Other)
|
|||
}
|
||||
}
|
||||
|
||||
- (NSMenuItem *) getSurfaceMenuItem: (NSMenu*) contextMenu
|
||||
{
|
||||
NSMenuItem *surfaceItem = [contextMenu itemWithTitle: NSLocalizedString(@"Show Alternate Surface",@"")];
|
||||
if (surfaceItem == nil)
|
||||
surfaceItem = [contextMenu itemWithTitle: @"Show Alternate Surface"];
|
||||
return surfaceItem;
|
||||
}
|
||||
|
||||
- (void) disableSurfaceMenu: (NSMenu*) contextMenu
|
||||
{
|
||||
NSMenuItem* surfaceItem = [ contextMenu itemWithTitle: @"Show Alternate Surface"];
|
||||
// [ surfaceItem setSubmenu: NULL ];
|
||||
// [ surfaceItem setAction: NULL ];
|
||||
// [ contextMenu setAutoenablesItems: NO ];
|
||||
[ surfaceItem setEnabled: NO ];
|
||||
NSLog(@"disabling surface menu\n");
|
||||
NSMenuItem *surfaceItem = [self getSurfaceMenuItem: contextMenu];
|
||||
[ surfaceItem setEnabled: NO ];
|
||||
// NSLog(@"disabling surface menu\n");
|
||||
}
|
||||
|
||||
- (void) addSurfaceMenu: (NSMenu*) contextMenu
|
||||
|
@ -622,8 +674,9 @@ FEATUREMETHODS(Other)
|
|||
}
|
||||
else
|
||||
{
|
||||
NSMenuItem* firstItem = [ contextMenu itemAtIndex: 0];
|
||||
NSMenuItem* surfaceItem = [ contextMenu itemWithTitle: @"Show Alternate Surface"];
|
||||
NSMenuItem* firstItem = [contextMenu itemAtIndex: 0];
|
||||
NSMenuItem *surfaceItem = [self getSurfaceMenuItem: contextMenu];
|
||||
[surfaceItem setTitle: NSLocalizedString(@"Show Alternate Surface",@"")];
|
||||
NSMenu* surfaceMenu = [[NSMenu alloc ] initWithTitle: @"altsurf" ];
|
||||
vector<string>* surfaces = sel.body()->getAlternateSurfaceNames();
|
||||
if ( surfaces->size() == 0 )
|
||||
|
@ -635,7 +688,7 @@ FEATUREMETHODS(Other)
|
|||
[ contextMenu setAutoenablesItems: YES ];
|
||||
[ surfaceMenu setAutoenablesItems: YES ];
|
||||
NSMenuItem* newItem = [ [NSMenuItem alloc] init ];
|
||||
[newItem setTitle: @"default" ];
|
||||
[newItem setTitle: NSLocalizedString(@"default",@"") ];
|
||||
[newItem setTag: 600 ];
|
||||
[newItem setTarget: [firstItem target] ];
|
||||
[newItem setAction: [firstItem action] ];
|
||||
|
@ -691,7 +744,7 @@ FEATUREMETHODS(Other)
|
|||
id value;
|
||||
|
||||
if ( tag <= 128 ) tag = [self tagForKey: tag ]; // handle menu item for setting; obsolete?
|
||||
if ( tag <= 128 ) { appCore->charEntered(tag); return; };
|
||||
if ( tag <= 128 ) { appCore->charEntered(tag); return; }
|
||||
switch ( tag/100)
|
||||
{
|
||||
case 4: case 5: case 7: case 8: // 400, 500, 700, 800
|
||||
|
@ -817,7 +870,7 @@ FEATUREMETHODS(Other)
|
|||
case 25: tag = 414; break; // AutoMag
|
||||
case 20: tag = 415; break; // CometTails
|
||||
case 11: tag = 416; break; // Markers
|
||||
case 19: tag = 411; break; // StarsAsPoints
|
||||
// case 19: tag = 411; break; // StarsAsPoints
|
||||
case 24: tag = 409; break; // SmoothLines
|
||||
default : tag = key; break; // Special or not a setting
|
||||
}
|
||||
|
@ -956,7 +1009,7 @@ FEATUREMETHODS(Other)
|
|||
// NSLog(@"subviews items = %@\n", [item subviews]);
|
||||
item = [ [item subviews] objectEnumerator ];
|
||||
// NSLog(@"view items = %@\n", item);
|
||||
};
|
||||
}
|
||||
|
||||
if ( [item isKindOfClass: [NSEnumerator class] ] )
|
||||
{
|
||||
|
|
|
@ -141,7 +141,7 @@ FrameOfReference getFrame() const;
|
|||
|
||||
-(CelestiaSelection*)findObjectFromPath:(NSString*)s
|
||||
{
|
||||
return [[[CelestiaSelection alloc] initWithSelection:[self simulation]->findObjectFromPath([s stdString])] autorelease];
|
||||
return [[[CelestiaSelection alloc] initWithSelection:[self simulation]->findObjectFromPath([s stdString], true)] autorelease];
|
||||
}
|
||||
|
||||
-(void)gotoSelection:(NSNumber*)gotoTime up:(CelestiaVector*)up coordinateSystem:(NSString*)csysName
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
{\rtf1\mac\ansicpg10000\cocoartf102
|
||||
{\rtf1\mac\ansicpg10000\cocoartf824\cocoasubrtf330
|
||||
\readonlydoc1{\fonttbl\f0\fswiss\fcharset77 Helvetica-Bold;\f1\fswiss\fcharset77 Helvetica;}
|
||||
{\colortbl;\red255\green255\blue255;}
|
||||
\vieww8780\viewh7500\viewkind0
|
||||
\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\sl320\ql\qnatural
|
||||
\pard\tx680\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\li120\sl320\ql\qnatural
|
||||
|
||||
\f0\b\fs24 \cf0 Web Site:
|
||||
\f1\b0 \
|
||||
|
|
Binary file not shown.
Binary file not shown.
|
@ -3,7 +3,7 @@
|
|||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>IBDocumentLocation</key>
|
||||
<string>2 42 701 386 0 0 1280 832 </string>
|
||||
<string>3 42 701 386 0 0 1280 832 </string>
|
||||
<key>IBEditorPositions</key>
|
||||
<dict>
|
||||
<key>242</key>
|
||||
|
@ -21,126 +21,82 @@
|
|||
<string>443.0</string>
|
||||
<key>IBGroupedObjects</key>
|
||||
<dict>
|
||||
<key>0</key>
|
||||
<key>10</key>
|
||||
<array>
|
||||
<string>1449</string>
|
||||
<string>1450</string>
|
||||
<string>1451</string>
|
||||
<string>1452</string>
|
||||
<string>1673</string>
|
||||
<string>1672</string>
|
||||
<string>1662</string>
|
||||
<string>1667</string>
|
||||
</array>
|
||||
<key>1</key>
|
||||
<key>11</key>
|
||||
<array>
|
||||
<string>1480</string>
|
||||
<string>1479</string>
|
||||
<string>1477</string>
|
||||
<string>1472</string>
|
||||
<string>1478</string>
|
||||
<string>1481</string>
|
||||
<string>1694</string>
|
||||
<string>1688</string>
|
||||
<string>1691</string>
|
||||
<string>1690</string>
|
||||
<string>1692</string>
|
||||
<string>1693</string>
|
||||
<string>1689</string>
|
||||
<string>1695</string>
|
||||
</array>
|
||||
<key>3</key>
|
||||
<key>12</key>
|
||||
<array>
|
||||
<string>1491</string>
|
||||
<string>1490</string>
|
||||
<string>1487</string>
|
||||
<string>1489</string>
|
||||
<string>1488</string>
|
||||
<string>1486</string>
|
||||
<string>1484</string>
|
||||
<string>1685</string>
|
||||
<string>1678</string>
|
||||
<string>1684</string>
|
||||
<string>1679</string>
|
||||
<string>1677</string>
|
||||
<string>1676</string>
|
||||
</array>
|
||||
<key>4</key>
|
||||
<key>13</key>
|
||||
<array>
|
||||
<string>1445</string>
|
||||
<string>1446</string>
|
||||
<string>1465</string>
|
||||
<string>1460</string>
|
||||
<string>1730</string>
|
||||
<string>1727</string>
|
||||
<string>1726</string>
|
||||
<string>1713</string>
|
||||
<string>1729</string>
|
||||
<string>1718</string>
|
||||
<string>1723</string>
|
||||
<string>1724</string>
|
||||
<string>1715</string>
|
||||
<string>1707</string>
|
||||
<string>1712</string>
|
||||
<string>1705</string>
|
||||
<string>1719</string>
|
||||
<string>1709</string>
|
||||
<string>1731</string>
|
||||
<string>1703</string>
|
||||
<string>1722</string>
|
||||
<string>1704</string>
|
||||
<string>1725</string>
|
||||
<string>1711</string>
|
||||
<string>1717</string>
|
||||
<string>1708</string>
|
||||
<string>1702</string>
|
||||
<string>1721</string>
|
||||
<string>1714</string>
|
||||
<string>1716</string>
|
||||
<string>1710</string>
|
||||
<string>1706</string>
|
||||
<string>1720</string>
|
||||
<string>1728</string>
|
||||
</array>
|
||||
<key>6</key>
|
||||
<key>14</key>
|
||||
<array>
|
||||
<string>1494</string>
|
||||
<string>1528</string>
|
||||
<string>1495</string>
|
||||
<string>1734</string>
|
||||
<string>1733</string>
|
||||
<string>1732</string>
|
||||
</array>
|
||||
<key>7</key>
|
||||
<key>9</key>
|
||||
<array>
|
||||
<string>1501</string>
|
||||
<string>1514</string>
|
||||
<string>1506</string>
|
||||
<string>1499</string>
|
||||
<string>1516</string>
|
||||
<string>1524</string>
|
||||
<string>1526</string>
|
||||
<string>1522</string>
|
||||
<string>1498</string>
|
||||
<string>1519</string>
|
||||
<string>1513</string>
|
||||
<string>1520</string>
|
||||
<string>1512</string>
|
||||
<string>1527</string>
|
||||
<string>1518</string>
|
||||
<string>1505</string>
|
||||
<string>1515</string>
|
||||
<string>1508</string>
|
||||
<string>1523</string>
|
||||
<string>1500</string>
|
||||
<string>1511</string>
|
||||
<string>1503</string>
|
||||
<string>1521</string>
|
||||
<string>1502</string>
|
||||
<string>1509</string>
|
||||
<string>1517</string>
|
||||
<string>1504</string>
|
||||
<string>1507</string>
|
||||
<string>1510</string>
|
||||
<string>1525</string>
|
||||
</array>
|
||||
<key>8</key>
|
||||
<array>
|
||||
<string>1436</string>
|
||||
<string>1437</string>
|
||||
<string>1438</string>
|
||||
<string>1440</string>
|
||||
<string>1415</string>
|
||||
<string>1413</string>
|
||||
<string>1432</string>
|
||||
<string>1434</string>
|
||||
<string>1439</string>
|
||||
<string>1441</string>
|
||||
<string>1411</string>
|
||||
<string>1414</string>
|
||||
<string>1430</string>
|
||||
<string>1409</string>
|
||||
<string>1428</string>
|
||||
<string>1431</string>
|
||||
<string>1426</string>
|
||||
<string>1412</string>
|
||||
<string>1427</string>
|
||||
<string>1404</string>
|
||||
<string>1419</string>
|
||||
<string>1421</string>
|
||||
<string>1420</string>
|
||||
<string>1408</string>
|
||||
<string>1429</string>
|
||||
<string>1433</string>
|
||||
<string>1405</string>
|
||||
<string>1417</string>
|
||||
<string>1418</string>
|
||||
<string>1403</string>
|
||||
<string>1425</string>
|
||||
<string>1435</string>
|
||||
<string>1410</string>
|
||||
<string>1401</string>
|
||||
<string>1402</string>
|
||||
<string>1422</string>
|
||||
<string>1406</string>
|
||||
<string>1423</string>
|
||||
<string>1407</string>
|
||||
<string>1424</string>
|
||||
<string>1416</string>
|
||||
<string>1442</string>
|
||||
<string>1660</string>
|
||||
<string>1661</string>
|
||||
<string>1659</string>
|
||||
<string>1651</string>
|
||||
</array>
|
||||
</dict>
|
||||
<key>IBLastGroupID</key>
|
||||
<string>9</string>
|
||||
<string>15</string>
|
||||
<key>IBLockedObjects</key>
|
||||
<array>
|
||||
<integer>352</integer>
|
||||
|
@ -151,6 +107,6 @@
|
|||
<integer>1566</integer>
|
||||
</array>
|
||||
<key>IBSystem Version</key>
|
||||
<string>8G32</string>
|
||||
<string>8I127</string>
|
||||
</dict>
|
||||
</plist>
|
||||
|
|
Binary file not shown.
|
@ -114,7 +114,7 @@
|
|||
CelestiaFavorites* favs = [CelestiaFavorites sharedFavorites];
|
||||
MyTree* node = nil;
|
||||
//NSLog(@"[FavoritesDrawerController addNewFavorite:%@]",sender);
|
||||
node = [favs addNewFolder:@"untitled folder"];
|
||||
node = [favs addNewFolder:NSLocalizedString(@"untitled folder",@"")];
|
||||
[[CelestiaFavorites sharedFavorites] synchronize];
|
||||
[self outlineView:outlineView editItem:node];
|
||||
}
|
||||
|
|
|
@ -56,13 +56,17 @@
|
|||
//NSLog(@"[objectField stringValue] = '%@'",[objectField stringValue]);
|
||||
if (![[objectField stringValue] length])
|
||||
{
|
||||
NSRunAlertPanel(@"No Object Name Entered", @"Please enter an object name.",nil,nil,nil);
|
||||
NSRunAlertPanel(NSLocalizedString(@"No Object Name Entered",@""),
|
||||
NSLocalizedString(@"Please enter an object name.",@""),
|
||||
nil,nil,nil);
|
||||
return;
|
||||
}
|
||||
csel = [sim findObjectFromPath:[objectField stringValue]];
|
||||
if ((csel == nil) || [csel isEmpty])
|
||||
{
|
||||
NSRunAlertPanel(@"Object Not Found",@"Please check that the object name is correct.",nil,nil,nil);
|
||||
NSRunAlertPanel(NSLocalizedString(@"Object Not Found",@""),
|
||||
NSLocalizedString(@"Please check that the object name is correct.",@""),
|
||||
nil,nil,nil);
|
||||
return;
|
||||
}
|
||||
[sim setSelection:csel];
|
||||
|
|
|
@ -50,7 +50,7 @@
|
|||
</dict>
|
||||
</array>
|
||||
<key>CFBundleShortVersionString</key>
|
||||
<string>1.4.1</string>
|
||||
<string>1.4.2</string>
|
||||
<key>CFBundleVersion</key>
|
||||
<string>0</string>
|
||||
<key>NSMainNibFile</key>
|
||||
|
|
|
@ -0,0 +1,600 @@
|
|||
/*
|
||||
* POConverter.m
|
||||
*
|
||||
* Created by Da Woon Jung on Wed March 09 2005.
|
||||
* Copyright (c) 2005 dwj. All rights reserved.
|
||||
*
|
||||
* 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.
|
||||
*/
|
||||
|
||||
#import <Foundation/Foundation.h>
|
||||
|
||||
|
||||
#define POCONV_DEFAULT_STRINGS_FILENAME @"po.strings"
|
||||
#define POCONV_DEBUG_LEVEL 1
|
||||
|
||||
BOOL gIgnoreFuzzy; /*! -n cmdline arg, set to ignore fuzzy entries */
|
||||
int gDebugLevel; /*! -v cmdline arg, 0 = no console messages */
|
||||
NSAutoreleasePool *gPool;
|
||||
|
||||
|
||||
/*! Returns NO if line is a comment. range and result are modified. */
|
||||
static BOOL readLine(NSString *string, NSRange *range, NSString **outString)
|
||||
{
|
||||
// Using -lineRangeForRange: because it reliably detects all sorts of line endings
|
||||
NSRange lineRange = [string lineRangeForRange: *range];
|
||||
NSString *lineString = (NSNotFound != lineRange.location && lineRange.length > 0) ? [string substringWithRange: lineRange] : nil;
|
||||
range->location = NSMaxRange(lineRange);
|
||||
range->length = 0;
|
||||
*outString = lineString;
|
||||
|
||||
// Detect comment lines
|
||||
return lineString ? ![lineString hasPrefix: @"#"] : YES;
|
||||
}
|
||||
|
||||
|
||||
/*! Scans data (from a po file) in ascii mode, looking for the charset specification */
|
||||
static NSStringEncoding getCharset(NSData *data)
|
||||
{
|
||||
NSString *string = [[[NSString alloc] initWithData:data encoding:NSASCIIStringEncoding] autorelease];
|
||||
if (nil == string)
|
||||
return 0;
|
||||
|
||||
CFStringEncoding enc = kCFStringEncodingUTF8;
|
||||
NSString *line = nil;
|
||||
NSString *encName = nil;
|
||||
NSRange encRange;
|
||||
NSRange range = NSMakeRange(0, 0);
|
||||
BOOL notComment = YES;
|
||||
|
||||
while (YES)
|
||||
{
|
||||
notComment = readLine(string, &range, &line);
|
||||
if (nil == line)
|
||||
break;
|
||||
|
||||
if (notComment)
|
||||
{
|
||||
encRange = [line rangeOfString: @"Content-Type:"];
|
||||
if (NSNotFound != encRange.location && encRange.length > 0)
|
||||
{
|
||||
encRange = [line rangeOfString: @"charset="];
|
||||
if (NSNotFound != encRange.location && encRange.length > 0)
|
||||
{
|
||||
encName = [line substringWithRange: NSMakeRange(NSMaxRange(encRange), [line length] - NSMaxRange(encRange))];
|
||||
if (encName)
|
||||
{
|
||||
encRange = [encName rangeOfString:@"\\n\"" options:NSBackwardsSearch];
|
||||
if (NSNotFound != encRange.location && encRange.location > 0 && encRange.length > 0)
|
||||
encName = [encName substringToIndex: encRange.location];
|
||||
|
||||
// Some special cases
|
||||
if (NSOrderedSame == [encName caseInsensitiveCompare:@"gbk"])
|
||||
enc = kCFStringEncodingGBK_95;
|
||||
else if (NSOrderedSame == [encName caseInsensitiveCompare:@"ISO_8859-15"])
|
||||
enc = kCFStringEncodingISOLatin9;
|
||||
else
|
||||
enc = CFStringConvertIANACharSetNameToEncoding((CFStringRef)encName);
|
||||
}
|
||||
|
||||
if (gDebugLevel)
|
||||
CFShow(line);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return (kCFStringEncodingInvalidId == enc) ? NSUTF8StringEncoding : CFStringConvertEncodingToNSStringEncoding(enc);
|
||||
}
|
||||
|
||||
|
||||
static NSString *extractStringFromLine(NSString *line)
|
||||
{
|
||||
NSMutableString *result = [NSMutableString stringWithCapacity: [line length]];
|
||||
NSString *aString;
|
||||
NSScanner *scanner = [NSScanner scannerWithString: line];
|
||||
NSRange escRange;
|
||||
NSMutableString *escString = [NSMutableString string];
|
||||
|
||||
NSMutableCharacterSet *newLineSet = [[[scanner charactersToBeSkipped] mutableCopy] autorelease];
|
||||
[newLineSet formIntersectionWithCharacterSet:
|
||||
[[NSCharacterSet whitespaceCharacterSet] invertedSet]];
|
||||
|
||||
while (![scanner isAtEnd])
|
||||
{
|
||||
aString = nil;
|
||||
|
||||
[scanner scanUpToString:@"\"" intoString: nil];
|
||||
if ([scanner scanString:@"\"" intoString: nil])
|
||||
{
|
||||
while (YES)
|
||||
{
|
||||
// Make sure we don't skip leading spaces (but skip newlines)
|
||||
NSCharacterSet *origSkip = [scanner charactersToBeSkipped];
|
||||
[scanner setCharactersToBeSkipped: newLineSet];
|
||||
[scanner scanUpToString:@"\"" intoString: &aString];
|
||||
[scanner setCharactersToBeSkipped: origSkip];
|
||||
|
||||
if (aString)
|
||||
{
|
||||
[escString appendString: aString];
|
||||
|
||||
escRange = [aString rangeOfString:@"\\" options:(NSBackwardsSearch|NSAnchoredSearch)];
|
||||
|
||||
if (NSNotFound != escRange.location && escRange.length > 0)
|
||||
{
|
||||
[scanner scanString:@"\"" intoString: &aString];
|
||||
[escString appendString: aString];
|
||||
aString = nil;
|
||||
continue;
|
||||
}
|
||||
}
|
||||
|
||||
aString = nil;
|
||||
break;
|
||||
}
|
||||
|
||||
if ([scanner scanString:@"\"" intoString: nil])
|
||||
{
|
||||
if (escString)
|
||||
[result appendString: escString];
|
||||
}
|
||||
}
|
||||
else
|
||||
break;
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
|
||||
/*! Get all parts of a quoted string is possibly broken across multiple lines, and returns the concatenated result. */
|
||||
static NSString *getQuotedString(NSString *fileString, NSRange *range, NSString *line)
|
||||
{
|
||||
NSMutableString *result = [NSMutableString stringWithString:extractStringFromLine(line)];
|
||||
NSString *aString;
|
||||
NSRange origRange;
|
||||
|
||||
// Loop until no more string parts found
|
||||
BOOL notComment = YES;
|
||||
while (YES)
|
||||
{
|
||||
origRange = *range;
|
||||
notComment = readLine(fileString, range, &line);
|
||||
if (nil == line || ([line length] == 0))
|
||||
break;
|
||||
|
||||
if (!notComment || [line hasPrefix: @"msgid"] || [line hasPrefix: @"msgstr"])
|
||||
{
|
||||
// Back up the cursor
|
||||
*range = origRange;
|
||||
break;
|
||||
}
|
||||
|
||||
aString = extractStringFromLine(line);
|
||||
[result appendString: aString];
|
||||
}
|
||||
|
||||
return ([result length] > 0) ? result : nil;
|
||||
}
|
||||
|
||||
|
||||
/*! Pass any comment line. If the line is a flag line (#, ...) and contains the "fuzzy" flag, returns YES */
|
||||
static BOOL isFuzzy(NSString *line)
|
||||
{
|
||||
NSRange flagRange = [line rangeOfString:@"#," options:NSAnchoredSearch];
|
||||
if (NSNotFound != flagRange.location && flagRange.length > 0)
|
||||
{
|
||||
// Parse comma-delimited list of flags
|
||||
NSString *aString = [line substringWithRange: NSMakeRange(NSMaxRange(flagRange), [line length] - NSMaxRange(flagRange))];
|
||||
if (aString)
|
||||
{
|
||||
NSArray *flags;
|
||||
NSEnumerator *flagEnum;
|
||||
NSScanner *scanner;
|
||||
|
||||
flags = [aString componentsSeparatedByString: @","];
|
||||
flagEnum = [flags objectEnumerator];
|
||||
while ((aString = [flagEnum nextObject]))
|
||||
{
|
||||
scanner = [NSScanner scannerWithString: aString];
|
||||
if ([scanner scanString:@"fuzzy" intoString: nil])
|
||||
{
|
||||
// Check if fuzzy is the entire word
|
||||
if ([scanner isAtEnd])
|
||||
return YES;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return NO;
|
||||
}
|
||||
|
||||
#ifdef TARGET_CELESTIA
|
||||
/*! Celestia: Returns YES if the line contains source file entries */
|
||||
static BOOL isSource(NSString *line, BOOL *containsNonKde)
|
||||
{
|
||||
BOOL isSource = NO;
|
||||
|
||||
NSRange range = [line rangeOfString:@"#:" options:NSAnchoredSearch];
|
||||
if (NSNotFound != range.location && range.length > 0)
|
||||
{
|
||||
BOOL nonKdeFound = NO;
|
||||
BOOL kdeFound = NO;
|
||||
isSource = YES;
|
||||
|
||||
NSString *aString = [line substringWithRange: NSMakeRange(NSMaxRange(range), [line length] - NSMaxRange(range))];
|
||||
|
||||
if (aString)
|
||||
{
|
||||
NSArray *sources;
|
||||
NSEnumerator *sourceEnum;
|
||||
|
||||
sources = [aString componentsSeparatedByString: @" "];
|
||||
sourceEnum = [sources objectEnumerator];
|
||||
|
||||
while ((aString = [sourceEnum nextObject]))
|
||||
{
|
||||
if (0 == [aString length])
|
||||
continue;
|
||||
range = [aString rangeOfString: @"kde"];
|
||||
if (NSNotFound == range.location)
|
||||
{
|
||||
nonKdeFound = YES;
|
||||
break;
|
||||
}
|
||||
else if (range.length > 0)
|
||||
kdeFound = YES;
|
||||
}
|
||||
}
|
||||
|
||||
if (nonKdeFound || !kdeFound)
|
||||
*containsNonKde = YES;
|
||||
}
|
||||
|
||||
return isSource;
|
||||
}
|
||||
#endif TARGET_CELESTIA
|
||||
|
||||
/*! The method that does all the work of reading, converting, and writing. Returns the number of lines successfully converted. */
|
||||
static long convertData(NSData *data, NSStringEncoding encoding, NSFileHandle *ofh)
|
||||
{
|
||||
long numConverted = 0;
|
||||
NSString *fileString = [[[NSString alloc] initWithData:data encoding:encoding] autorelease];
|
||||
if (nil == fileString)
|
||||
return 0;
|
||||
|
||||
BOOL notComment = YES;
|
||||
NSString *line;
|
||||
NSString **aString;
|
||||
NSRange range = NSMakeRange(0, 0);
|
||||
long fileStringLength = [fileString length];
|
||||
|
||||
BOOL acceptEntry = YES;
|
||||
#ifdef TARGET_CELESTIA
|
||||
BOOL parsingSources = NO;
|
||||
BOOL containsNonKde = NO;
|
||||
#endif
|
||||
NSString *msgid = nil;
|
||||
NSString *msgstr = nil;
|
||||
|
||||
while (range.location < fileStringLength)
|
||||
{
|
||||
notComment = readLine(fileString, &range, &line);
|
||||
if (nil == line)
|
||||
break;
|
||||
|
||||
if (notComment)
|
||||
{
|
||||
aString = nil;
|
||||
|
||||
if ([line hasPrefix: @"msgid"])
|
||||
aString = &msgid;
|
||||
else if ([line hasPrefix: @"msgstr"])
|
||||
{
|
||||
if (nil == msgid)
|
||||
{
|
||||
if (gDebugLevel>2)
|
||||
CFShow(@"Ignoring msgstr without msgid (probably the po header)");
|
||||
continue;
|
||||
}
|
||||
aString = &msgstr;
|
||||
}
|
||||
else
|
||||
{
|
||||
// Blank line cancels fuzzy flag
|
||||
acceptEntry = YES;
|
||||
}
|
||||
|
||||
#ifdef TARGET_CELESTIA
|
||||
if (parsingSources)
|
||||
acceptEntry = containsNonKde;
|
||||
parsingSources = NO;
|
||||
containsNonKde = NO;
|
||||
#endif
|
||||
if (aString)
|
||||
{
|
||||
*aString = getQuotedString(fileString, &range, line);
|
||||
|
||||
if (*aString == msgstr && msgid)
|
||||
{
|
||||
if (nil == *aString)
|
||||
{
|
||||
if (gDebugLevel>1)
|
||||
CFShow((CFStringRef)[NSString stringWithFormat:@"Ignoring msgid \"%@\" without msgstr", msgid]);
|
||||
continue;
|
||||
}
|
||||
|
||||
if (acceptEntry)
|
||||
{
|
||||
NSString *ofhString = [NSString stringWithFormat:@"\"%@\" = \"%@\";\n", msgid, msgstr];
|
||||
if (ofhString)
|
||||
{
|
||||
NSData *ofhData;
|
||||
if (numConverted > 0)
|
||||
{
|
||||
size_t ofhBufSize = [ofhString length]*sizeof(unichar);
|
||||
unichar *ofhBuf = malloc(ofhBufSize);
|
||||
[ofhString getCharacters: ofhBuf]; // gets utf-16 chars
|
||||
ofhData = [NSData dataWithBytesNoCopy:ofhBuf length:ofhBufSize];
|
||||
}
|
||||
else
|
||||
{
|
||||
// Before overwriting an existing file, have to zero it
|
||||
if (ofh)
|
||||
[ofh truncateFileAtOffset: 0];
|
||||
|
||||
// Output bom for first entry
|
||||
ofhData = [ofhString dataUsingEncoding:NSUnicodeStringEncoding];
|
||||
}
|
||||
|
||||
[ofh writeData:ofhData];
|
||||
}
|
||||
else if (gDebugLevel)
|
||||
CFShow(@"***Couldn't write data***");
|
||||
|
||||
++numConverted;
|
||||
|
||||
if (gDebugLevel>2 && *aString)
|
||||
CFShow(*aString);
|
||||
}
|
||||
else if (gDebugLevel)
|
||||
CFShow((CFStringRef)[NSString stringWithFormat:@"Ignoring entry \"%@\"", *aString]);
|
||||
|
||||
msgid = nil;
|
||||
msgstr = nil;
|
||||
acceptEntry = YES;
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
#ifdef TARGET_CELESTIA
|
||||
// Celestia: filter out kde entries
|
||||
// This looks complicated, but is needed because
|
||||
// source entries (#:) may span multiple lines
|
||||
if (!parsingSources)
|
||||
{
|
||||
containsNonKde = NO;
|
||||
parsingSources = isSource(line, &containsNonKde);
|
||||
}
|
||||
else
|
||||
{
|
||||
BOOL tempKdeCheck = NO;
|
||||
if (isSource(line, &tempKdeCheck))
|
||||
containsNonKde = containsNonKde || tempKdeCheck;
|
||||
}
|
||||
#endif
|
||||
// Filter out fuzzy entries if specified by the caller
|
||||
if (gIgnoreFuzzy && isFuzzy(line))
|
||||
acceptEntry = NO;
|
||||
}
|
||||
}
|
||||
|
||||
return numConverted;
|
||||
}
|
||||
|
||||
|
||||
static void usage()
|
||||
{
|
||||
printf("Poconverter converts a GNU gettext po file to Mac OS-native\n"
|
||||
"UTF-16 Localized.strings format.\n"
|
||||
"\n"
|
||||
"Usage: Poconverter [-nv] file.po [destination filename]\n"
|
||||
"\n"
|
||||
" -n Ignore entries tagged with fuzzy flag\n"
|
||||
" -s Silent mode (existing file overwritten without warning)\n"
|
||||
" -v Verbose output on stderr\n"
|
||||
"\n");
|
||||
}
|
||||
|
||||
static void ctrl_c_handler(int sig)
|
||||
{
|
||||
fprintf(stderr, "\nGot Ctrl-C, cleaning up...\n");
|
||||
[gPool release];
|
||||
exit(1);
|
||||
}
|
||||
|
||||
int main(int argc, const char **argv)
|
||||
{
|
||||
NSAutoreleasePool *gPool = [[NSAutoreleasePool alloc] init];
|
||||
|
||||
// Catch ctrl-c so we can release the autorelease pool
|
||||
signal(SIGINT, ctrl_c_handler);
|
||||
|
||||
gIgnoreFuzzy = NO;
|
||||
gDebugLevel = 0;
|
||||
BOOL isSilent = NO;
|
||||
|
||||
BOOL isErr = NO;
|
||||
NSProcessInfo *theProcess = [NSProcessInfo processInfo];
|
||||
NSArray *args = [theProcess arguments];
|
||||
NSString *arg;
|
||||
NSEnumerator *argEnum = [args objectEnumerator];
|
||||
[argEnum nextObject]; // advance past args[0] (the program full path)
|
||||
|
||||
NSString *poFilename = nil;
|
||||
NSString *resultFilename = nil;
|
||||
NSFileHandle *ofh;
|
||||
|
||||
do
|
||||
{
|
||||
if (argc < 2 || argc > 5)
|
||||
{
|
||||
usage(); break;
|
||||
}
|
||||
|
||||
// Parse options
|
||||
long j;
|
||||
|
||||
while ((arg = [argEnum nextObject]) && [arg hasPrefix: @"-"])
|
||||
{
|
||||
if ([arg length] > 1)
|
||||
{
|
||||
for (j = 1; j < [arg length]; ++j)
|
||||
{
|
||||
switch ([arg characterAtIndex: j])
|
||||
{
|
||||
case 'n':
|
||||
gIgnoreFuzzy = YES; break;
|
||||
case 's':
|
||||
isSilent = YES; break;
|
||||
case 'v':
|
||||
gDebugLevel = POCONV_DEBUG_LEVEL; break;
|
||||
default:
|
||||
isErr = YES;
|
||||
}
|
||||
|
||||
if (isErr)
|
||||
break;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
isErr = YES;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (isErr)
|
||||
{
|
||||
usage(); break;
|
||||
}
|
||||
|
||||
// Can't just have options, need filename(s) too
|
||||
if (nil == arg)//i == argc)
|
||||
{
|
||||
usage(); break;
|
||||
}
|
||||
|
||||
poFilename = arg;
|
||||
|
||||
// Check if po file exists and isn't a directory
|
||||
BOOL isDirectory;
|
||||
BOOL fileExists;
|
||||
NSFileManager *fm = [NSFileManager defaultManager];
|
||||
|
||||
if (![fm fileExistsAtPath:poFilename isDirectory:&isDirectory] || isDirectory)
|
||||
{
|
||||
usage(); break;
|
||||
}
|
||||
|
||||
// Destination path - can be either a filename or a directory
|
||||
// If unspecified, defaults to stdout
|
||||
resultFilename = [argEnum nextObject];
|
||||
|
||||
if (resultFilename)
|
||||
{
|
||||
if ([argEnum nextObject])
|
||||
{
|
||||
// Too many filenames
|
||||
usage(); break;
|
||||
}
|
||||
|
||||
// If directory, append default filename
|
||||
fileExists = [fm fileExistsAtPath:resultFilename isDirectory:&isDirectory];
|
||||
if (fileExists && isDirectory)
|
||||
{
|
||||
resultFilename = [resultFilename stringByAppendingPathComponent:POCONV_DEFAULT_STRINGS_FILENAME];
|
||||
fileExists = [fm fileExistsAtPath: resultFilename];
|
||||
}
|
||||
|
||||
if (!fileExists)
|
||||
{
|
||||
[fm createFileAtPath:resultFilename contents:nil attributes:nil];
|
||||
}
|
||||
|
||||
if(!isSilent && fileExists)
|
||||
{
|
||||
printf("\nDestination file exists, overwrite (y/n)? [y] ");
|
||||
int confirm = getchar();
|
||||
fflush(stdout);
|
||||
|
||||
switch (confirm)
|
||||
{
|
||||
case 'y':
|
||||
case 'Y':
|
||||
case '\n':
|
||||
break;
|
||||
default:
|
||||
printf("Destination file not overwritten.\n\n");
|
||||
[gPool release];
|
||||
exit(0);
|
||||
}
|
||||
}
|
||||
|
||||
ofh = [NSFileHandle fileHandleForWritingAtPath: resultFilename];
|
||||
// Delay truncating file and wiping it out until we actually
|
||||
// get something to write ou
|
||||
}
|
||||
else
|
||||
{
|
||||
// Output filename not specified, use stdout
|
||||
ofh = [NSFileHandle fileHandleWithStandardOutput];
|
||||
}
|
||||
|
||||
if (nil == ofh)
|
||||
{
|
||||
CFShow(@"***Could not write output. Please check if directory exists, and you have permissions.***");
|
||||
[gPool release];
|
||||
exit(1);
|
||||
}
|
||||
|
||||
if (gDebugLevel)
|
||||
CFShow((CFStringRef)[NSString stringWithFormat:@"poFile='%@', result='%@', ignoreFuzzy=%d, debugLevel=%d, silent=%d", poFilename, (resultFilename ? resultFilename : @"stdout"), gIgnoreFuzzy, gDebugLevel, isSilent]);
|
||||
|
||||
NSData *data = [NSData dataWithContentsOfMappedFile: poFilename];
|
||||
|
||||
// First detect the file encoding
|
||||
NSStringEncoding encoding = getCharset(data);
|
||||
if (gDebugLevel)
|
||||
CFShow((CFStringRef)[NSString stringWithFormat:@"NSStringEncoding = %#lx", encoding]);
|
||||
|
||||
// Reread the file again, in the correct encoding
|
||||
long numConverted = 0;
|
||||
if (encoding)
|
||||
{
|
||||
numConverted = convertData(data, encoding, ofh);
|
||||
}
|
||||
|
||||
if (gDebugLevel)
|
||||
CFShow((CFStringRef)[NSString stringWithFormat:@"%ld entries converted.", numConverted]);
|
||||
} while (NO);
|
||||
|
||||
[gPool release];
|
||||
return 0;
|
||||
}
|
|
@ -0,0 +1,31 @@
|
|||
/*
|
||||
* POSupport.h
|
||||
* Celestia
|
||||
*
|
||||
* Created by Da Woon Jung on 3/14/05.
|
||||
* Copyright 2005 dwj. All rights reserved.
|
||||
*
|
||||
* 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.
|
||||
*/
|
||||
|
||||
#ifndef __OBJC__
|
||||
extern "C" {
|
||||
#endif
|
||||
extern const char *localizedUTF8String(const char *key);
|
||||
extern const char *localizedUTF8StringWithDomain(const char *domain, const char *key);
|
||||
#ifndef __OBJC__
|
||||
}
|
||||
#endif
|
||||
|
|
@ -0,0 +1,50 @@
|
|||
/*
|
||||
* POSupport.m
|
||||
* Celestia
|
||||
*
|
||||
* Created by Da Woon Jung on 3/14/05.
|
||||
* Copyright 2005 dwj. All rights reserved.
|
||||
*
|
||||
* 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.
|
||||
*/
|
||||
|
||||
#import "POSupport.h"
|
||||
|
||||
|
||||
const char *localizedUTF8String(const char *key)
|
||||
{
|
||||
return localizedUTF8StringWithDomain("po", key);
|
||||
}
|
||||
|
||||
const char *localizedUTF8StringWithDomain(const char *domain, const char *key)
|
||||
{
|
||||
static char zero = 0;
|
||||
NSString *str = NSLocalizedStringFromTable([NSString stringWithUTF8String:key], [NSString stringWithUTF8String:domain], nil);
|
||||
|
||||
if (str)
|
||||
{
|
||||
NSMutableData *data = [NSMutableData dataWithData:
|
||||
[str dataUsingEncoding: NSUTF8StringEncoding]];
|
||||
if ([data length] > 0)
|
||||
{
|
||||
[data appendBytes:&zero length:sizeof(char)];
|
||||
return [data bytes];
|
||||
}
|
||||
|
||||
return key;
|
||||
}
|
||||
|
||||
return key;
|
||||
}
|
|
@ -26,7 +26,9 @@
|
|||
sim = [[CelestiaAppCore sharedAppCore] simulation];
|
||||
if ( [dateString isEqualToString: @""] && [timeString isEqualToString: @""])
|
||||
{
|
||||
NSRunAlertPanel(@"No Date or Time Entered",@"Please enter a date and/or time.",nil,nil,nil);
|
||||
NSRunAlertPanel(NSLocalizedString(@"No Date or Time Entered",@""),
|
||||
NSLocalizedString(@"Please enter a date and/or time.",@""),
|
||||
nil,nil,nil);
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -53,7 +55,9 @@
|
|||
if ( cdate == NULL )
|
||||
{
|
||||
// NSLog(@"bad date");
|
||||
NSRunAlertPanel(@"Improper Date or Time Format",@"Please enter the date as \"mm/dd/yyyy\" and the time as \"hh:mm:ss\".",nil,nil,nil);
|
||||
NSRunAlertPanel(NSLocalizedString(@"Improper Date or Time Format",@""),
|
||||
NSLocalizedString(@"Please enter the date as \"mm/dd/yyyy\" and the time as \"hh:mm:ss\".",@""),
|
||||
nil,nil,nil);
|
||||
return;
|
||||
}
|
||||
// NSLog( [cdate description] );
|
||||
|
|
|
@ -7,7 +7,9 @@
|
|||
//
|
||||
|
||||
#ifndef gettext
|
||||
#define gettext(s) s
|
||||
#include "POSupport.h"
|
||||
#define gettext(s) localizedUTF8String(s)
|
||||
#define dgettext(d,s) localizedUTF8StringWithDomain(d,s)
|
||||
#endif
|
||||
|
||||
#ifdef __OBJC__
|
||||
|
|
|
@ -40,6 +40,7 @@
|
|||
E5E8FFA30965975B00A0A304,
|
||||
F578B79D02B3E2AD0100020A,
|
||||
F55A246702B2D4FF0100020A,
|
||||
E587027609CD833B00AE4536,
|
||||
);
|
||||
isa = PBXGroup;
|
||||
name = Classes;
|
||||
|
@ -174,6 +175,7 @@
|
|||
19C28FACFE9D520D11CA2CBB = {
|
||||
children = (
|
||||
E564312E07769C9000E2C4A3,
|
||||
E587026F09CD827600AE4536,
|
||||
);
|
||||
isa = PBXGroup;
|
||||
name = Products;
|
||||
|
@ -211,6 +213,7 @@
|
|||
projectDirPath = "";
|
||||
targets = (
|
||||
E564302B07769C9000E2C4A3,
|
||||
E587026E09CD827600AE4536,
|
||||
);
|
||||
};
|
||||
29B97314FDCFA39411CA2CEA = {
|
||||
|
@ -268,6 +271,7 @@
|
|||
E54343100783C3F200053094,
|
||||
E5C29C920982A8EC00ED06B8,
|
||||
089C165CFE840E0CC02AAC07,
|
||||
E5C5B24C0A0FF75C0078C6ED,
|
||||
);
|
||||
includeInIndex = 0;
|
||||
isa = PBXGroup;
|
||||
|
@ -340,7 +344,7 @@
|
|||
GCC_GENERATE_DEBUGGING_SYMBOLS = YES;
|
||||
GCC_OPTIMIZATION_LEVEL = 0;
|
||||
GCC_PRECOMPILE_PREFIX_HEADER = YES;
|
||||
GCC_PREPROCESSOR_DEFINITIONS = "WORDS_BIGENDIAN=1 MACOSX=1 MACOSX_PB=1 PNG_SUPPORT CELX DEBUG=1";
|
||||
GCC_PREPROCESSOR_DEFINITIONS = "WORDS_BIGENDIAN=1 MACOSX=1 MACOSX_PB=1 PNG_SUPPORT CELX DEBUG=1 TARGET_CELESTIA";
|
||||
PREBINDING = NO;
|
||||
ZERO_LINK = NO;
|
||||
};
|
||||
|
@ -1156,7 +1160,7 @@
|
|||
GCC_ENABLE_FIX_AND_CONTINUE = NO;
|
||||
GCC_GENERATE_DEBUGGING_SYMBOLS = NO;
|
||||
GCC_MODEL_TUNING = G5;
|
||||
GCC_PREPROCESSOR_DEFINITIONS = "NDEBUG WORDS_BIGENDIAN=1 MACOSX=1 MACOSX_PB=1 PNG_SUPPORT CELX";
|
||||
GCC_PREPROCESSOR_DEFINITIONS = "NDEBUG WORDS_BIGENDIAN=1 MACOSX=1 MACOSX_PB=1 PNG_SUPPORT CELX TARGET_CELESTIA";
|
||||
GCC_WARN_UNINITIALIZED_AUTOS = YES;
|
||||
MACOSX_DEPLOYMENT_TARGET = 10.2;
|
||||
PREBINDING = YES;
|
||||
|
@ -1173,6 +1177,7 @@
|
|||
E56430C007769C9000E2C4A3,
|
||||
E564312907769C9000E2C4A3,
|
||||
E56917DA0778217300F0F0AF,
|
||||
E587027F09CD844700AE4536,
|
||||
E57283A00793F93500C1F239,
|
||||
E572837407939F2500C1F239,
|
||||
E52E106209919AA000621C3D,
|
||||
|
@ -1201,6 +1206,7 @@
|
|||
WRAPPER_EXTENSION = app;
|
||||
};
|
||||
dependencies = (
|
||||
E587027209CD82CF00AE4536,
|
||||
);
|
||||
isa = PBXNativeTarget;
|
||||
name = Celestia;
|
||||
|
@ -1378,6 +1384,7 @@
|
|||
E5AACCF10935FEB100136FCD,
|
||||
E5E5ED5D095BC4A5003DC829,
|
||||
E5E8FFA50965975B00A0A304,
|
||||
E587027C09CD83B200AE4536,
|
||||
);
|
||||
isa = PBXHeadersBuildPhase;
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
|
@ -2223,6 +2230,7 @@
|
|||
E5BF7F48096DA07B00DB7C65,
|
||||
E5C3C423097DBA1D0048AF44,
|
||||
E5C29C940982A8EC00ED06B8,
|
||||
E5C5B24E0A0FF75C0078C6ED,
|
||||
);
|
||||
isa = PBXResourcesBuildPhase;
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
|
@ -2365,6 +2373,7 @@
|
|||
E5AACCF00935FEB100136FCD,
|
||||
E5E5ED5E095BC4A5003DC829,
|
||||
E5E8FFA60965975B00A0A304,
|
||||
E587027B09CD83AA00AE4536,
|
||||
);
|
||||
isa = PBXSourcesBuildPhase;
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
|
@ -3483,6 +3492,129 @@
|
|||
settings = {
|
||||
};
|
||||
};
|
||||
E587026C09CD827600AE4536 = {
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
E587027D09CD83B600AE4536,
|
||||
);
|
||||
isa = PBXSourcesBuildPhase;
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
E587026D09CD827600AE4536 = {
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
);
|
||||
isa = PBXFrameworksBuildPhase;
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
E587026E09CD827600AE4536 = {
|
||||
buildPhases = (
|
||||
E587026C09CD827600AE4536,
|
||||
E587026D09CD827600AE4536,
|
||||
);
|
||||
buildRules = (
|
||||
);
|
||||
buildSettings = {
|
||||
OTHER_CFLAGS = "";
|
||||
OTHER_LDFLAGS = "-framework Foundation";
|
||||
PRODUCT_NAME = POConverter;
|
||||
SECTORDER_FLAGS = "";
|
||||
WARNING_CFLAGS = "-Wmost -Wno-four-char-constants -Wno-unknown-pragmas";
|
||||
};
|
||||
dependencies = (
|
||||
);
|
||||
isa = PBXNativeTarget;
|
||||
name = POConverter;
|
||||
productName = POConverter;
|
||||
productReference = E587026F09CD827600AE4536;
|
||||
productType = "com.apple.product-type.tool";
|
||||
};
|
||||
E587026F09CD827600AE4536 = {
|
||||
explicitFileType = "compiled.mach-o.executable";
|
||||
includeInIndex = 0;
|
||||
isa = PBXFileReference;
|
||||
path = POConverter;
|
||||
refType = 3;
|
||||
sourceTree = BUILT_PRODUCTS_DIR;
|
||||
};
|
||||
E587027109CD82CF00AE4536 = {
|
||||
containerPortal = 29B97313FDCFA39411CA2CEA;
|
||||
isa = PBXContainerItemProxy;
|
||||
proxyType = 1;
|
||||
remoteGlobalIDString = E587026E09CD827600AE4536;
|
||||
remoteInfo = POConverter;
|
||||
};
|
||||
E587027209CD82CF00AE4536 = {
|
||||
isa = PBXTargetDependency;
|
||||
target = E587026E09CD827600AE4536;
|
||||
targetProxy = E587027109CD82CF00AE4536;
|
||||
};
|
||||
E587027609CD833B00AE4536 = {
|
||||
children = (
|
||||
E587027709CD839700AE4536,
|
||||
E587027809CD839700AE4536,
|
||||
E587027909CD839700AE4536,
|
||||
);
|
||||
isa = PBXGroup;
|
||||
name = POConverter;
|
||||
refType = 4;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
E587027709CD839700AE4536 = {
|
||||
fileEncoding = 4;
|
||||
isa = PBXFileReference;
|
||||
lastKnownFileType = sourcecode.c.objc;
|
||||
path = POConverter.m;
|
||||
refType = 4;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
E587027809CD839700AE4536 = {
|
||||
fileEncoding = 4;
|
||||
isa = PBXFileReference;
|
||||
lastKnownFileType = sourcecode.c.h;
|
||||
path = POSupport.h;
|
||||
refType = 4;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
E587027909CD839700AE4536 = {
|
||||
fileEncoding = 4;
|
||||
isa = PBXFileReference;
|
||||
lastKnownFileType = sourcecode.c.objc;
|
||||
path = POSupport.m;
|
||||
refType = 4;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
E587027B09CD83AA00AE4536 = {
|
||||
fileRef = E587027909CD839700AE4536;
|
||||
isa = PBXBuildFile;
|
||||
settings = {
|
||||
};
|
||||
};
|
||||
E587027C09CD83B200AE4536 = {
|
||||
fileRef = E587027809CD839700AE4536;
|
||||
isa = PBXBuildFile;
|
||||
settings = {
|
||||
};
|
||||
};
|
||||
E587027D09CD83B600AE4536 = {
|
||||
fileRef = E587027709CD839700AE4536;
|
||||
isa = PBXBuildFile;
|
||||
settings = {
|
||||
};
|
||||
};
|
||||
E587027F09CD844700AE4536 = {
|
||||
buildActionMask = 8;
|
||||
files = (
|
||||
);
|
||||
inputPaths = (
|
||||
);
|
||||
isa = PBXShellScriptBuildPhase;
|
||||
outputPaths = (
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 1;
|
||||
shellPath = /bin/sh;
|
||||
shellScript = "for po in $SRCROOT/../po/*.po; do\n s=`echo $po |sed -n 's/^.*\\/\\([^\\/]\\{1,\\}\\).po$/\\1/p'`\n if [ $s == 'en' ];then s='English';\n else mkdir -p $SRCROOT/$s.lproj;\n fi\n $BUILT_PRODUCTS_DIR/POConverter -sn $po $SRCROOT/$s.lproj\n cp -R $SRCROOT/$s.lproj $BUILT_PRODUCTS_DIR/$UNLOCALIZED_RESOURCES_FOLDER_PATH\ndone\n\nfor po in $SRCROOT/../po2/*.po; do\n s=`echo $po |sed -n 's/^.*\\/\\([^\\/]\\{1,\\}\\).po$/\\1/p'`\n if [ $s == 'en' ];then s='English';\n else mkdir -p $SRCROOT/$s.lproj;\n fi\n $BUILT_PRODUCTS_DIR/POConverter -sn $po $SRCROOT/$s.lproj/celestia_constellations.strings\n cp -R $SRCROOT/$s.lproj $BUILT_PRODUCTS_DIR/$UNLOCALIZED_RESOURCES_FOLDER_PATH\ndone";
|
||||
};
|
||||
E589B6D9078AC511005B8DD9 = {
|
||||
fileEncoding = 4;
|
||||
isa = PBXFileReference;
|
||||
|
@ -4643,6 +4775,49 @@
|
|||
settings = {
|
||||
};
|
||||
};
|
||||
E5C5B24C0A0FF75C0078C6ED = {
|
||||
children = (
|
||||
E5C5B24D0A0FF75C0078C6ED,
|
||||
E5C5B24F0A0FF7830078C6ED,
|
||||
E5C5B2500A0FF7950078C6ED,
|
||||
);
|
||||
isa = PBXVariantGroup;
|
||||
name = Localizable.strings;
|
||||
path = "";
|
||||
refType = 4;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
E5C5B24D0A0FF75C0078C6ED = {
|
||||
fileEncoding = 10;
|
||||
isa = PBXFileReference;
|
||||
lastKnownFileType = text.plist.strings;
|
||||
name = English;
|
||||
path = English.lproj/Localizable.strings;
|
||||
refType = 4;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
E5C5B24E0A0FF75C0078C6ED = {
|
||||
fileRef = E5C5B24C0A0FF75C0078C6ED;
|
||||
isa = PBXBuildFile;
|
||||
settings = {
|
||||
};
|
||||
};
|
||||
E5C5B24F0A0FF7830078C6ED = {
|
||||
isa = PBXFileReference;
|
||||
lastKnownFileType = text.plist.strings;
|
||||
name = fr;
|
||||
path = fr.lproj/Localizable.strings;
|
||||
refType = 4;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
E5C5B2500A0FF7950078C6ED = {
|
||||
isa = PBXFileReference;
|
||||
lastKnownFileType = text.plist.strings;
|
||||
name = es;
|
||||
path = es.lproj/Localizable.strings;
|
||||
refType = 4;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
E5C9ADE10848FFEF0071B1EE = {
|
||||
fileRef = F5040B0602A47B91014901DC;
|
||||
isa = PBXBuildFile;
|
||||
|
|
|
@ -190,6 +190,9 @@
|
|||
E5B615070777307F001BB2BF /* celestia.icns in Resources */ = {isa = PBXBuildFile; fileRef = E5B615060777307F001BB2BF /* celestia.icns */; };
|
||||
E5C9ADE10848FFEF0071B1EE /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F5040B0602A47B91014901DC /* Carbon.framework */; };
|
||||
E5C9B478084909E40071B1EE /* README for Mac OS X.rtf in CopyFiles */ = {isa = PBXBuildFile; fileRef = E5C9B46B084909B90071B1EE /* README for Mac OS X.rtf */; };
|
||||
E5CC203609AA836700CFFF2C /* POSupport.m in Sources */ = {isa = PBXBuildFile; fileRef = E5CC203409AA834B00CFFF2C /* POSupport.m */; };
|
||||
E5CC203709AA836E00CFFF2C /* POConverter.m in Sources */ = {isa = PBXBuildFile; fileRef = E5CC203209AA834B00CFFF2C /* POConverter.m */; };
|
||||
E5CC204709AA843300CFFF2C /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = E5CC204509AA843300CFFF2C /* Localizable.strings */; };
|
||||
E5D3196B096C91A6007FA87F /* vp_patch.sh in Resources */ = {isa = PBXBuildFile; fileRef = E5D3196A096C91A6007FA87F /* vp_patch.sh */; };
|
||||
E5D446660777291700A1577D /* utf8.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E5D446640777291700A1577D /* utf8.cpp */; };
|
||||
E5D4467607772B6C00A1577D /* CelestiaSettings.mm in Sources */ = {isa = PBXBuildFile; fileRef = E5D4467407772B6C00A1577D /* CelestiaSettings.mm */; };
|
||||
|
@ -306,6 +309,16 @@
|
|||
};
|
||||
/* End PBXBuildStyle section */
|
||||
|
||||
/* Begin PBXContainerItemProxy section */
|
||||
E5CC205909AA8C7100CFFF2C /* PBXContainerItemProxy */ = {
|
||||
isa = PBXContainerItemProxy;
|
||||
containerPortal = 29B97313FDCFA39411CA2CEA /* Project object */;
|
||||
proxyType = 1;
|
||||
remoteGlobalIDString = E5CC202809AA823400CFFF2C;
|
||||
remoteInfo = POConverter;
|
||||
};
|
||||
/* End PBXContainerItemProxy section */
|
||||
|
||||
/* Begin PBXCopyFilesBuildPhase section */
|
||||
E567F018099110C000D05031 /* CopyFiles */ = {
|
||||
isa = PBXCopyFilesBuildPhase;
|
||||
|
@ -586,6 +599,12 @@
|
|||
E5B61B2E077737A6001BB2BF /* png.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = png.h; sourceTree = "<group>"; };
|
||||
E5B61B2F077737A6001BB2BF /* pngconf.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = pngconf.h; sourceTree = "<group>"; };
|
||||
E5C9B46B084909B90071B1EE /* README for Mac OS X.rtf */ = {isa = PBXFileReference; lastKnownFileType = text.rtf; path = "README for Mac OS X.rtf"; sourceTree = "<group>"; };
|
||||
E5CC202909AA823400CFFF2C /* POConverter */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = POConverter; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
E5CC203209AA834B00CFFF2C /* POConverter.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = POConverter.m; sourceTree = "<group>"; };
|
||||
E5CC203309AA834B00CFFF2C /* POSupport.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = POSupport.h; sourceTree = "<group>"; };
|
||||
E5CC203409AA834B00CFFF2C /* POSupport.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = POSupport.m; sourceTree = "<group>"; };
|
||||
E5CC204609AA843300CFFF2C /* English */ = {isa = PBXFileReference; fileEncoding = 10; lastKnownFileType = text.plist.strings; name = English; path = English.lproj/Localizable.strings; sourceTree = "<group>"; };
|
||||
E5CC204809AA846600CFFF2C /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr; path = fr.lproj/Localizable.strings; sourceTree = "<group>"; };
|
||||
E5D3196A096C91A6007FA87F /* vp_patch.sh */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.script.sh; path = vp_patch.sh; sourceTree = "<group>"; };
|
||||
E5D446640777291700A1577D /* utf8.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = utf8.cpp; path = ../src/celutil/utf8.cpp; sourceTree = SOURCE_ROOT; };
|
||||
E5D446650777291700A1577D /* utf8.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = utf8.h; path = ../src/celutil/utf8.h; sourceTree = SOURCE_ROOT; };
|
||||
|
@ -655,6 +674,7 @@
|
|||
E5E365B2095C12D200B14224 /* es */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = es; path = es.lproj/InfoPlist.strings; sourceTree = "<group>"; };
|
||||
E5F8C9E30795235E00D1DAF2 /* liblua.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = liblua.dylib; path = Frameworks/liblua.dylib; sourceTree = "<group>"; };
|
||||
E5F8C9E40795235E00D1DAF2 /* liblualib.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = liblualib.dylib; path = Frameworks/liblualib.dylib; sourceTree = "<group>"; };
|
||||
E5FB63B20A0F80FA00A60759 /* es */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = es; path = es.lproj/Localizable.strings; sourceTree = "<group>"; };
|
||||
F5040AF602A46404014901DC /* OpenGL.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = OpenGL.framework; path = /System/Library/Frameworks/OpenGL.framework; sourceTree = "<absolute>"; };
|
||||
F5040AFE02A46BDB014901DC /* CGBuffer.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = CGBuffer.h; path = ../src/celengine/CGBuffer.h; sourceTree = SOURCE_ROOT; };
|
||||
F5040B0602A47B91014901DC /* Carbon.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Carbon.framework; path = /System/Library/Frameworks/Carbon.framework; sourceTree = "<absolute>"; };
|
||||
|
@ -965,6 +985,7 @@
|
|||
E5D956DE096651DF00CB02B2 /* SplashWindowController.h */,
|
||||
F578B79D02B3E2AD0100020A /* Cocoa Extensions */,
|
||||
F55A246702B2D4FF0100020A /* Wrappers */,
|
||||
E5CC203109AA832000CFFF2C /* POConverter */,
|
||||
);
|
||||
name = Classes;
|
||||
sourceTree = "<group>";
|
||||
|
@ -995,6 +1016,7 @@
|
|||
isa = PBXGroup;
|
||||
children = (
|
||||
E564312E07769C9000E2C4A3 /* Celestia.app */,
|
||||
E5CC202909AA823400CFFF2C /* POConverter */,
|
||||
);
|
||||
name = Products;
|
||||
sourceTree = "<group>";
|
||||
|
@ -1044,6 +1066,7 @@
|
|||
E54343100783C3F200053094 /* BrowserWindow.nib */,
|
||||
E5D7660E0982B1860099DBBD /* HelpWindow.nib */,
|
||||
089C165CFE840E0CC02AAC07 /* InfoPlist.strings */,
|
||||
E5CC204509AA843300CFFF2C /* Localizable.strings */,
|
||||
);
|
||||
includeInIndex = 0;
|
||||
name = Resources;
|
||||
|
@ -1117,6 +1140,16 @@
|
|||
path = ../extras;
|
||||
sourceTree = SOURCE_ROOT;
|
||||
};
|
||||
E5CC203109AA832000CFFF2C /* POConverter */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
E5CC203209AA834B00CFFF2C /* POConverter.m */,
|
||||
E5CC203309AA834B00CFFF2C /* POSupport.h */,
|
||||
E5CC203409AA834B00CFFF2C /* POSupport.m */,
|
||||
);
|
||||
name = POConverter;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
E5D766250982B3300099DBBD /* models */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
|
@ -1564,6 +1597,7 @@
|
|||
E56430C007769C9000E2C4A3 /* Sources */,
|
||||
E564312907769C9000E2C4A3 /* Frameworks */,
|
||||
E56917DA0778217300F0F0AF /* CopyFiles */,
|
||||
E5CC203B09AA83A900CFFF2C /* Convert PO */,
|
||||
E57283A00793F93500C1F239 /* CopyFiles */,
|
||||
E572837407939F2500C1F239 /* CopyFiles */,
|
||||
E567F018099110C000D05031 /* CopyFiles */,
|
||||
|
@ -1595,6 +1629,7 @@
|
|||
WRAPPER_EXTENSION = app;
|
||||
};
|
||||
dependencies = (
|
||||
E5CC205A09AA8C7100CFFF2C /* PBXTargetDependency */,
|
||||
);
|
||||
name = Celestia;
|
||||
productInstallPath = "$(HOME)/Applications";
|
||||
|
@ -1602,6 +1637,37 @@
|
|||
productReference = E564312E07769C9000E2C4A3 /* Celestia.app */;
|
||||
productType = "com.apple.product-type.application";
|
||||
};
|
||||
E5CC202809AA823400CFFF2C /* POConverter */ = {
|
||||
isa = PBXNativeTarget;
|
||||
buildConfigurationList = E5CC202B09AA829B00CFFF2C /* Build configuration list for PBXNativeTarget "POConverter" */;
|
||||
buildPhases = (
|
||||
E5CC202609AA823400CFFF2C /* Sources */,
|
||||
);
|
||||
buildRules = (
|
||||
);
|
||||
buildSettings = {
|
||||
GCC_ENABLE_FIX_AND_CONTINUE = YES;
|
||||
GCC_MODEL_TUNING = G5;
|
||||
GCC_PRECOMPILE_PREFIX_HEADER = YES;
|
||||
GCC_PREFIX_HEADER = "$(SYSTEM_LIBRARY_DIR)/Frameworks/AppKit.framework/Headers/AppKit.h";
|
||||
INSTALL_PATH = "$(HOME)/bin";
|
||||
OTHER_LDFLAGS = (
|
||||
"-framework",
|
||||
Foundation,
|
||||
"-framework",
|
||||
AppKit,
|
||||
);
|
||||
PREBINDING = NO;
|
||||
PRODUCT_NAME = POConverter;
|
||||
ZERO_LINK = YES;
|
||||
};
|
||||
dependencies = (
|
||||
);
|
||||
name = POConverter;
|
||||
productName = POConverter;
|
||||
productReference = E5CC202909AA823400CFFF2C /* POConverter */;
|
||||
productType = "com.apple.product-type.tool";
|
||||
};
|
||||
/* End PBXNativeTarget section */
|
||||
|
||||
/* Begin PBXProject section */
|
||||
|
@ -1627,6 +1693,7 @@
|
|||
projectDirPath = "";
|
||||
targets = (
|
||||
E564302B07769C9000E2C4A3 /* Celestia */,
|
||||
E5CC202809AA823400CFFF2C /* POConverter */,
|
||||
);
|
||||
};
|
||||
/* End PBXProject section */
|
||||
|
@ -1646,6 +1713,7 @@
|
|||
E5D3196B096C91A6007FA87F /* vp_patch.sh in Resources */,
|
||||
E599A78E097CAB390079C254 /* Credits.rtf in Resources */,
|
||||
E5D766140982B1860099DBBD /* HelpWindow.nib in Resources */,
|
||||
E5CC204709AA843300CFFF2C /* Localizable.strings in Resources */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
|
@ -1668,6 +1736,20 @@
|
|||
shellPath = /bin/sh;
|
||||
shellScript = "mkdir -p $BUILT_PRODUCTS_DIR/Celestia/CelestiaResources/textures/hires\nfind $BUILT_PRODUCTS_DIR/Celestia -name 'Makefile*' -delete\nhdiutil create -srcfolder $BUILT_PRODUCTS_DIR/Celestia -format UDRW -ov $TARGET_BUILD_DIR/$PRODUCT_NAME.dmg\n";
|
||||
};
|
||||
E5CC203B09AA83A900CFFF2C /* Convert PO */ = {
|
||||
isa = PBXShellScriptBuildPhase;
|
||||
buildActionMask = 8;
|
||||
files = (
|
||||
);
|
||||
inputPaths = (
|
||||
);
|
||||
name = "Convert PO";
|
||||
outputPaths = (
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 1;
|
||||
shellPath = /bin/sh;
|
||||
shellScript = "for po in $SRCROOT/../po/*.po; do\n s=`echo $po |sed -n 's/^.*\\/\\([^\\/]\\{1,\\}\\).po$/\\1/p'`\n if [ $s == 'en' ];then s='English';\n else mkdir -p $SRCROOT/$s.lproj;\n fi\n $BUILT_PRODUCTS_DIR/POConverter -sn $po $SRCROOT/$s.lproj\n cp -R $SRCROOT/$s.lproj $BUILT_PRODUCTS_DIR/$UNLOCALIZED_RESOURCES_FOLDER_PATH\ndone\n\nfor po in $SRCROOT/../po2/*.po; do\n s=`echo $po |sed -n 's/^.*\\/\\([^\\/]\\{1,\\}\\).po$/\\1/p'`\n if [ $s == 'en' ];then s='English';\n else mkdir -p $SRCROOT/$s.lproj;\n fi\n $BUILT_PRODUCTS_DIR/POConverter -sn $po $SRCROOT/$s.lproj/celestia_constellations.strings\n cp -R $SRCROOT/$s.lproj $BUILT_PRODUCTS_DIR/$UNLOCALIZED_RESOURCES_FOLDER_PATH\ndone";
|
||||
};
|
||||
/* End PBXShellScriptBuildPhase section */
|
||||
|
||||
/* Begin PBXSourcesBuildPhase section */
|
||||
|
@ -1798,11 +1880,28 @@
|
|||
E532F4F80933331800D7D5B3 /* staroctree.cpp in Sources */,
|
||||
E5E365AD095C11B500B14224 /* SplashScreen.m in Sources */,
|
||||
E5D956E00966520700CB02B2 /* SplashWindowController.m in Sources */,
|
||||
E5CC203609AA836700CFFF2C /* POSupport.m in Sources */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
E5CC202609AA823400CFFF2C /* Sources */ = {
|
||||
isa = PBXSourcesBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
E5CC203709AA836E00CFFF2C /* POConverter.m in Sources */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
/* End PBXSourcesBuildPhase section */
|
||||
|
||||
/* Begin PBXTargetDependency section */
|
||||
E5CC205A09AA8C7100CFFF2C /* PBXTargetDependency */ = {
|
||||
isa = PBXTargetDependency;
|
||||
target = E5CC202809AA823400CFFF2C /* POConverter */;
|
||||
targetProxy = E5CC205909AA8C7100CFFF2C /* PBXContainerItemProxy */;
|
||||
};
|
||||
/* End PBXTargetDependency section */
|
||||
|
||||
/* Begin PBXVariantGroup section */
|
||||
089C165CFE840E0CC02AAC07 /* InfoPlist.strings */ = {
|
||||
isa = PBXVariantGroup;
|
||||
|
@ -1844,6 +1943,16 @@
|
|||
name = Credits.rtf;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
E5CC204509AA843300CFFF2C /* Localizable.strings */ = {
|
||||
isa = PBXVariantGroup;
|
||||
children = (
|
||||
E5CC204609AA843300CFFF2C /* English */,
|
||||
E5CC204809AA846600CFFF2C /* fr */,
|
||||
E5FB63B20A0F80FA00A60759 /* es */,
|
||||
);
|
||||
name = Localizable.strings;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
E5D7660E0982B1860099DBBD /* HelpWindow.nib */ = {
|
||||
isa = PBXVariantGroup;
|
||||
children = (
|
||||
|
@ -2100,6 +2209,101 @@
|
|||
};
|
||||
name = Universal_Debug;
|
||||
};
|
||||
E5CC202C09AA829B00CFFF2C /* Development */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
COPY_PHASE_STRIP = NO;
|
||||
GCC_PREPROCESSOR_DEFINITIONS = (
|
||||
"$(GCC_PREPROCESSOR_DEFINITIONS)",
|
||||
TARGET_CELESTIA,
|
||||
);
|
||||
INSTALL_PATH = "$(HOME)/bin";
|
||||
OTHER_LDFLAGS = (
|
||||
"-framework",
|
||||
Foundation,
|
||||
);
|
||||
PREBINDING = NO;
|
||||
PRODUCT_NAME = POConverter;
|
||||
ZERO_LINK = NO;
|
||||
};
|
||||
name = Development;
|
||||
};
|
||||
E5CC202D09AA829B00CFFF2C /* Deployment */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
COPY_PHASE_STRIP = NO;
|
||||
GCC_PREPROCESSOR_DEFINITIONS = (
|
||||
"$(GCC_PREPROCESSOR_DEFINITIONS)",
|
||||
TARGET_CELESTIA,
|
||||
);
|
||||
INSTALL_PATH = "$(HOME)/bin";
|
||||
OTHER_LDFLAGS = (
|
||||
"-framework",
|
||||
Foundation,
|
||||
);
|
||||
PREBINDING = NO;
|
||||
PRODUCT_NAME = POConverter;
|
||||
ZERO_LINK = NO;
|
||||
};
|
||||
name = Deployment;
|
||||
};
|
||||
E5CC202E09AA829B00CFFF2C /* Universal_Release */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
COPY_PHASE_STRIP = NO;
|
||||
GCC_PREPROCESSOR_DEFINITIONS = (
|
||||
"$(GCC_PREPROCESSOR_DEFINITIONS)",
|
||||
TARGET_CELESTIA,
|
||||
);
|
||||
INSTALL_PATH = "$(HOME)/bin";
|
||||
OTHER_LDFLAGS = (
|
||||
"-framework",
|
||||
Foundation,
|
||||
);
|
||||
PREBINDING = NO;
|
||||
PRODUCT_NAME = POConverter;
|
||||
ZERO_LINK = NO;
|
||||
};
|
||||
name = Universal_Release;
|
||||
};
|
||||
E5CC202F09AA829B00CFFF2C /* Universal_Debug */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
COPY_PHASE_STRIP = NO;
|
||||
GCC_PREPROCESSOR_DEFINITIONS = (
|
||||
"$(GCC_PREPROCESSOR_DEFINITIONS)",
|
||||
TARGET_CELESTIA,
|
||||
);
|
||||
INSTALL_PATH = "$(HOME)/bin";
|
||||
OTHER_LDFLAGS = (
|
||||
"-framework",
|
||||
Foundation,
|
||||
);
|
||||
PREBINDING = NO;
|
||||
PRODUCT_NAME = POConverter;
|
||||
ZERO_LINK = NO;
|
||||
};
|
||||
name = Universal_Debug;
|
||||
};
|
||||
E5CC203009AA829B00CFFF2C /* Default */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
COPY_PHASE_STRIP = NO;
|
||||
GCC_PREPROCESSOR_DEFINITIONS = (
|
||||
"$(GCC_PREPROCESSOR_DEFINITIONS)",
|
||||
TARGET_CELESTIA,
|
||||
);
|
||||
INSTALL_PATH = "$(HOME)/bin";
|
||||
OTHER_LDFLAGS = (
|
||||
"-framework",
|
||||
Foundation,
|
||||
);
|
||||
PREBINDING = NO;
|
||||
PRODUCT_NAME = POConverter;
|
||||
ZERO_LINK = NO;
|
||||
};
|
||||
name = Default;
|
||||
};
|
||||
/* End XCBuildConfiguration section */
|
||||
|
||||
/* Begin XCConfigurationList section */
|
||||
|
@ -2127,6 +2331,18 @@
|
|||
defaultConfigurationIsVisible = 0;
|
||||
defaultConfigurationName = Default;
|
||||
};
|
||||
E5CC202B09AA829B00CFFF2C /* Build configuration list for PBXNativeTarget "POConverter" */ = {
|
||||
isa = XCConfigurationList;
|
||||
buildConfigurations = (
|
||||
E5CC202C09AA829B00CFFF2C /* Development */,
|
||||
E5CC202D09AA829B00CFFF2C /* Deployment */,
|
||||
E5CC202E09AA829B00CFFF2C /* Universal_Release */,
|
||||
E5CC202F09AA829B00CFFF2C /* Universal_Debug */,
|
||||
E5CC203009AA829B00CFFF2C /* Default */,
|
||||
);
|
||||
defaultConfigurationIsVisible = 0;
|
||||
defaultConfigurationName = Default;
|
||||
};
|
||||
/* End XCConfigurationList section */
|
||||
};
|
||||
rootObject = 29B97313FDCFA39411CA2CEA /* Project object */;
|
||||
|
|
|
@ -8,8 +8,6 @@
|
|||
<integer>0</integer>
|
||||
<key>ambientLightLevel</key>
|
||||
<real>0.1</real>
|
||||
<key>brightnessBias</key>
|
||||
<real>0.1</real>
|
||||
<key>faintestVisible</key>
|
||||
<real>7</real>
|
||||
<key>fullScreenMode</key>
|
||||
|
@ -76,6 +74,8 @@
|
|||
<integer>1</integer>
|
||||
<key>showGalaxyLabels</key>
|
||||
<integer>0</integer>
|
||||
<key>showLatinConstellationLabels</key>
|
||||
<integer>1</integer>
|
||||
<key>showLandingSiteLabels</key>
|
||||
<integer>1</integer>
|
||||
<key>showLineaLabels</key>
|
||||
|
@ -142,8 +142,6 @@
|
|||
<integer>0</integer>
|
||||
<key>showStars</key>
|
||||
<integer>1</integer>
|
||||
<key>showStarsAsPoints</key>
|
||||
<integer>0</integer>
|
||||
<key>showTerraLabels</key>
|
||||
<integer>1</integer>
|
||||
<key>showTesseraLabels</key>
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
{\rtf1\mac\ansicpg10000\cocoartf824\cocoasubrtf330
|
||||
\readonlydoc1{\fonttbl\f0\fswiss\fcharset77 Helvetica-Bold;\f1\fswiss\fcharset77 Helvetica;}
|
||||
{\colortbl;\red255\green255\blue255;}
|
||||
\paperw11900\paperh16840\margl1440\margr1440\vieww9000\viewh9000\viewkind0
|
||||
\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\sl320\ql\qnatural
|
||||
\paperw11904\paperh16836\margl1440\margr1440\vieww9000\viewh9000\viewkind0
|
||||
\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\li120\sl320\ql\qnatural
|
||||
|
||||
\f0\b\fs24 \cf0 Sitio Web :
|
||||
\f1\b0 \
|
||||
|
|
Binary file not shown.
Binary file not shown.
|
@ -15,7 +15,7 @@
|
|||
<key>342</key>
|
||||
<string>282 595 128 68 0 0 1024 746 </string>
|
||||
<key>792</key>
|
||||
<string>131 409 257 287 0 0 1024 746 </string>
|
||||
<string>176 486 272 287 0 0 1280 832 </string>
|
||||
</dict>
|
||||
<key>IBFramework Version</key>
|
||||
<string>443.0</string>
|
||||
|
@ -25,10 +25,10 @@
|
|||
</array>
|
||||
<key>IBOpenObjects</key>
|
||||
<array>
|
||||
<integer>1659</integer>
|
||||
<integer>29</integer>
|
||||
<integer>1659</integer>
|
||||
</array>
|
||||
<key>IBSystem Version</key>
|
||||
<string>8G32</string>
|
||||
<string>8I127</string>
|
||||
</dict>
|
||||
</plist>
|
||||
|
|
Binary file not shown.
|
@ -1,8 +1,8 @@
|
|||
{\rtf1\mac\ansicpg10000\cocoartf824\cocoasubrtf330
|
||||
\readonlydoc1{\fonttbl\f0\fswiss\fcharset77 Helvetica-Bold;\f1\fswiss\fcharset77 Helvetica;}
|
||||
{\colortbl;\red255\green255\blue255;}
|
||||
\paperw11900\paperh16840\margl1440\margr1440\vieww9000\viewh9000\viewkind0
|
||||
\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\sl320\ql\qnatural
|
||||
\paperw11904\paperh16836\margl1440\margr1440\vieww9000\viewh9000\viewkind0
|
||||
\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\li120\sl320\ql\qnatural
|
||||
|
||||
\f0\b\fs24 \cf0 Site Web :
|
||||
\f1\b0 \
|
||||
|
|
|
@ -11,6 +11,6 @@
|
|||
<integer>16</integer>
|
||||
</array>
|
||||
<key>IBSystem Version</key>
|
||||
<string>8G32</string>
|
||||
<string>8I127</string>
|
||||
</dict>
|
||||
</plist>
|
||||
|
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
@ -11,11 +11,11 @@
|
|||
<key>29</key>
|
||||
<string>11 788 871 44 0 0 1280 832 </string>
|
||||
<key>335</key>
|
||||
<string>458 586 117 118 0 0 1024 746 </string>
|
||||
<string>588 666 123 118 0 0 1280 832 </string>
|
||||
<key>342</key>
|
||||
<string>282 595 141 68 0 0 1024 746 </string>
|
||||
<key>792</key>
|
||||
<string>131 409 261 287 0 0 1024 746 </string>
|
||||
<string>179 486 320 287 0 0 1280 832 </string>
|
||||
</dict>
|
||||
<key>IBFramework Version</key>
|
||||
<string>443.0</string>
|
||||
|
@ -25,10 +25,10 @@
|
|||
</array>
|
||||
<key>IBOpenObjects</key>
|
||||
<array>
|
||||
<integer>29</integer>
|
||||
<integer>1662</integer>
|
||||
<integer>29</integer>
|
||||
</array>
|
||||
<key>IBSystem Version</key>
|
||||
<string>8G32</string>
|
||||
<string>8I127</string>
|
||||
</dict>
|
||||
</plist>
|
||||
|
|
Binary file not shown.
Loading…
Reference in New Issue