kaluznyo / Murky_i18n

fork of murky

Create an i18n version for Murky ( French Version)

Clone this repository (size: 1017.0 KB): HTTPS / SSH
$ hg clone http://bitbucket.org/kaluznyo/murky_i18n/
commit 53: 0794437170b7
parent 52: 80e5645c5444
branch: default
Create i18n ( Localized.string, and code)
oli...@MacBook-de-Olivier-Kaluzny-2.local
10 months ago

Changed (Δ39.0 KB):

raw changeset »

English.lproj/Info.plist (45 lines added, 0 lines removed)

English.lproj/Localized.strings (210 lines added, 0 lines removed)

French.lproj/Info.plist (45 lines added, 0 lines removed)

French.lproj/Localized.strings (210 lines added, 0 lines removed)

German.lproj/Localized.strings (binary file changed)

Murky.xcodeproj/project.pbxproj (30 lines added, 4 lines removed)

Resources/English.lproj/Info.plist (45 lines added, 0 lines removed)

Resources/French.lproj/Info.plist (45 lines added, 0 lines removed)

Source/HgDir.m (2 lines added, 2 lines removed)

Source/HgLogOperation.m (7 lines added, 7 lines removed)

Source/HgOperation.m (3 lines added, 3 lines removed)

Source/HgRepository.m (9 lines added, 9 lines removed)

Source/HgRevision.m (1 lines added, 1 lines removed)

Source/HgUncommittedRevision.m (2 lines added, 2 lines removed)

Source/MercurialApp.m (6 lines added, 6 lines removed)

Source/ProjectsController.m (1 lines added, 1 lines removed)

Source/RepoController.m (13 lines added, 20 lines removed)

Source/RepoController_Actions.m (20 lines added, 20 lines removed)

Source/RevisionGraphColumn.m (4 lines added, 4 lines removed)

Source/URLFormatter.m (3 lines added, 3 lines removed)

Up to file-list English.lproj/Info.plist:

1
<?xml version="1.0" encoding="UTF-8"?>
2
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
3
<plist version="1.0">
4
<dict>
5
	<key>CFBundleDevelopmentRegion</key>
6
	<string>English</string>
7
	<key>CFBundleDocumentTypes</key>
8
	<array>
9
		<dict>
10
			<key>CFBundleTypeName</key>
11
			<string>Repository</string>
12
			<key>CFBundleTypeRole</key>
13
			<string>Editor</string>
14
			<key>LSItemContentTypes</key>
15
			<array>
16
				<string>public.folder</string>
17
			</array>
18
			<key>LSTypeIsPackage</key>
19
			<false/>
20
			<key>NSPersistentStoreTypeKey</key>
21
			<string>XML</string>
22
		</dict>
23
	</array>
24
	<key>CFBundleExecutable</key>
25
	<string>${EXECUTABLE_NAME}</string>
26
	<key>CFBundleIconFile</key>
27
	<string>mercurial-logo-official</string>
28
	<key>CFBundleIdentifier</key>
29
	<string>com.mooseyard.Murky</string>
30
	<key>CFBundleInfoDictionaryVersion</key>
31
	<string>6.0</string>
32
	<key>CFBundleName</key>
33
	<string>${PRODUCT_NAME}</string>
34
	<key>CFBundlePackageType</key>
35
	<string>APPL</string>
36
	<key>CFBundleSignature</key>
37
	<string>????</string>
38
	<key>CFBundleVersion</key>
39
	<string>0.4</string>
40
	<key>NSMainNibFile</key>
41
	<string>MainMenu</string>
42
	<key>NSPrincipalClass</key>
43
	<string>MYExceptionReportingApplication</string>
44
</dict>
45
</plist>

Up to file-list English.lproj/Localized.strings:

1
/* No comment provided by engineer. */
2
"%@ is not a directory" = "%@ is not a directory";
3
4
/* No comment provided by engineer. */
5
"%i file(s) you're trying to check in have not yet been added to the repository (status is '?'). These won't be checked in. Proceed anyway?" = "%i file(s) you're trying to check in have not yet been added to the repository (status is '?'). These won't be checked in. Proceed anyway?";
6
7
/* No comment provided by engineer. */
8
"(no changes)" = "(no changes)";
9
10
/* No comment provided by engineer. */
11
"--locally modified--" = "--locally modified--";
12
13
/* No comment provided by engineer. */
14
"-[HgRevision root] failed! %@" = "-[HgRevision root] failed! %@";
15
16
/* No comment provided by engineer. */
17
"Are you sure you want to discard all uncommitted changes to the selected files?" = "Are you sure you want to discard all uncommitted changes to the selected files?";
18
19
/* No comment provided by engineer. */
20
"Are you sure you want to remove the selected files from the repository?" = "Are you sure you want to remove the selected files from the repository?";
21
22
/* No comment provided by engineer. */
23
"Are you sure you want to update the source tree to revision %i?" = "Are you sure you want to update the source tree to revision %i?";
24
25
/* No comment provided by engineer. */
26
"Bad absolutePath for %@ %@" = "Bad absolutePath for %1$@ %2$@";
27
28
/* No comment provided by engineer. */
29
"bad rev0: %i" = "bad rev0: %i";
30
31
/* No comment provided by engineer. */
32
"bad rev1: %i" = "bad rev1: %i";
33
34
/* No comment provided by engineer. */
35
"Can't call Mercurial" = "Can't call Mercurial";
36
37
/* No comment provided by engineer. */
38
"Can't update to uncommitted revision" = "Can't update to uncommitted revision";
39
40
/* No comment provided by engineer. */
41
"Cancel" = "Cancel";
42
43
/* No comment provided by engineer. */
44
"Clone" = "Clone";
45
46
/* No comment provided by engineer. */
47
"Clone repository to URL/file:" = "Clone repository to URL/file:";
48
49
/* No comment provided by engineer. */
50
"Cloned Repository" = "Cloned Repository";
51
52
/* No comment provided by engineer. */
53
"Cloning to <%@>" = "Cloning to <%@>";
54
55
/* No comment provided by engineer. */
56
"Close" = "Close";
57
58
/* No comment provided by engineer. */
59
"Convert to Mercurial repository?" = "Convert to Mercurial repository?";
60
61
/* No comment provided by engineer. */
62
"Couldn't locate hg via shell ... assuming it's at %@" = "Couldn't locate hg via shell ... assuming it's at %@";
63
64
/* No comment provided by engineer. */
65
"dir changed: %@" = "dir changed: %@";
66
67
/* No comment provided by engineer. */
68
"Discard" = "Discard";
69
70
/* No comment provided by engineer. */
71
"Discard file changes?" = "Discard file changes?";
72
73
/* No comment provided by engineer. */
74
"Exception re-opening recent repository %@" = "Exception re-opening recent repository %@";
75
76
/* No comment provided by engineer. */
77
"Failed to parse date '%@'" = "Failed to parse date '%@'";
78
79
/* No comment provided by engineer. */
80
"Getting details of revisions [%u..%u]" = "Getting details of revisions [%1$u..%2$u]";
81
82
/* No comment provided by engineer. */
83
"HgLogOperation couldn't get changeset ID for rev #%i" = "HgLogOperation couldn't get changeset ID for rev #%i";
84
85
/* No comment provided by engineer. */
86
"HgLogOperation couldn't get changesets from XML: %@" = "HgLogOperation couldn't get changesets from XML: %@";
87
88
/* No comment provided by engineer. */
89
"HgLogOperation couldn't parse XML: %@" = "HgLogOperation couldn't parse XML: %@";
90
91
/* No comment provided by engineer. */
92
"HgLogOperation: Couldn't parse XPath '%@': %@" = "HgLogOperation: Couldn't parse XPath '%1$@': %2$@";
93
94
/* No comment provided by engineer. */
95
"HgRepository: Couldn't start MYDirectoryWatcher on %@" = "HgRepository: Couldn't start MYDirectoryWatcher on %@";
96
97
/* No comment provided by engineer. */
98
"Hide Unmodified" = "Hide Unmodified";
99
100
/* No comment provided by engineer. */
101
"Ignoring backup: %@" = "Ignoring backup: %@";
102
103
/* No comment provided by engineer. */
104
"Illegal n=%i" = "Illegal n=%i";
105
106
/* No comment provided by engineer. */
107
"Illegal revision number %i" = "Illegal revision number %i";
108
109
/* No comment provided by engineer. */
110
"Invalid filesystem path" = "Invalid filesystem path";
111
112
/* No comment provided by engineer. */
113
"Invalid op %i" = "Invalid op %i";
114
115
/* No comment provided by engineer. */
116
"Invalid revision ID '%@'" = "Invalid revision ID '%@'";
117
118
/* No comment provided by engineer. */
119
"Invalid start revision" = "Invalid start revision";
120
121
/* No comment provided by engineer. */
122
"Invalid URL" = "Invalid URL";
123
124
/* No comment provided by engineer. */
125
"No such directory %@" = "No such directory %@";
126
127
/* No comment provided by engineer. */
128
"OK" = "OK";
129
130
/* No comment provided by engineer. */
131
"Pull" = "Pull";
132
133
/* No comment provided by engineer. */
134
"Pull revisions from repository at URL/file:" = "Pull revisions from repository at URL/file:";
135
136
/* No comment provided by engineer. */
137
"Pulling from <%@>" = "Pulling from <%@>";
138
139
/* No comment provided by engineer. */
140
"Push" = "Push";
141
142
/* No comment provided by engineer. */
143
"Push revisions to repository at URL/file:" = "Push revisions to repository at URL/file:";
144
145
/* No comment provided by engineer. */
146
"Pushing to <%@>" = "Pushing to <%@>";
147
148
/* No comment provided by engineer. */
149
"Remove" = "Remove";
150
151
/* No comment provided by engineer. */
152
"Remove files from repository?" = "Remove files from repository?";
153
154
/* No comment provided by engineer. */
155
"Revision ID has wrong length (%u)" = "Revision ID has wrong length (%u)";
156
157
/* No comment provided by engineer. */
158
"Shell command '%@' failed with output: '%@'" = "Shell command '%1$@' failed with output: '%2$@'";
159
160
/* No comment provided by engineer. */
161
"Show Unmodified" = "Show Unmodified";
162
163
/* No comment provided by engineer. */
164
"Some files aren't in the repository" = "Some files aren't in the repository";
165
166
/* No comment provided by engineer. */
167
"Sorry" = "Sorry";
168
169
/* No comment provided by engineer. */
170
"Stop" = "Stop";
171
172
/* No comment provided by engineer. */
173
"Successfully created a cloned repository at \n\n%@" = "Successfully created a cloned repository at \n\n%@";
174
175
/* No comment provided by engineer. */
176
"The directory <%@> is not already a Mercurial repository. Would you like to make it one?" = "The directory <%@> is not already a Mercurial repository. Would you like to make it one?";
177
178
/* No comment provided by engineer. */
179
"The path to clone into is already inside a Mercurial repository at %@" = "The path to clone into is already inside a Mercurial repository at %@";
180
181
/* No comment provided by engineer. */
182
"Tip changed from %i to %i ... updating revisions" = "Tip changed from %1$i to %2$i ... updating revisions";
183
184
/* No comment provided by engineer. */
185
"Unable to find or run the 'hg' command.\n\n%@" = "Unable to find or run the 'hg' command.\n\n%@";
186
187
/* No comment provided by engineer. */
188
"Unexpected revision numbers from log: expected starting %u, got %u" = "Unexpected revision numbers from log: expected starting %1$u, got %2$u";
189
190
/* No comment provided by engineer. */
191
"Unknown line from hg status: \"%@\"" = "Unknown line from hg status: \"%@\"";
192
193
/* No comment provided by engineer. */
194
"untitled project" = "untitled project";
195
196
/* No comment provided by engineer. */
197
"Update" = "Update";
198
199
/* No comment provided by engineer. */
200
"Update Completed" = "Update Completed";
201
202
/* No comment provided by engineer. */
203
"Update to revision?" = "Update to revision?";
204
205
/* No comment provided by engineer. */
206
"Updating changed dirs %@" = "Updating changed dirs %@";
207
208
/* No comment provided by engineer. */
209
"URL protocol must be %@" = "URL protocol must be %@";
210

Up to file-list French.lproj/Info.plist:

1
<?xml version="1.0" encoding="UTF-8"?>
2
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
3
<plist version="1.0">
4
<dict>
5
	<key>CFBundleDevelopmentRegion</key>
6
	<string>French</string>
7
	<key>CFBundleDocumentTypes</key>
8
	<array>
9
		<dict>
10
			<key>CFBundleTypeName</key>
11
			<string>Repository</string>
12
			<key>CFBundleTypeRole</key>
13
			<string>Editor</string>
14
			<key>LSItemContentTypes</key>
15
			<array>
16
				<string>public.folder</string>
17
			</array>
18
			<key>LSTypeIsPackage</key>
19
			<false/>
20
			<key>NSPersistentStoreTypeKey</key>
21
			<string>XML</string>
22
		</dict>
23
	</array>
24
	<key>CFBundleExecutable</key>
25
	<string>${EXECUTABLE_NAME}</string>
26
	<key>CFBundleIconFile</key>
27
	<string>mercurial-logo-official</string>
28
	<key>CFBundleIdentifier</key>
29
	<string>com.mooseyard.Murky</string>
30
	<key>CFBundleInfoDictionaryVersion</key>
31
	<string>6.0</string>
32
	<key>CFBundleName</key>
33
	<string>${PRODUCT_NAME}</string>
34
	<key>CFBundlePackageType</key>
35
	<string>APPL</string>
36
	<key>CFBundleSignature</key>
37
	<string>????</string>
38
	<key>CFBundleVersion</key>
39
	<string>0.4</string>
40
	<key>NSMainNibFile</key>
41
	<string>MainMenu</string>
42
	<key>NSPrincipalClass</key>
43
	<string>MYExceptionReportingApplication</string>
44
</dict>
45
</plist>

Up to file-list French.lproj/Localized.strings:

1
/* No comment provided by engineer. */
2
"%@ is not a directory" = "%@ is not a directory";
3
4
/* No comment provided by engineer. */
5
"%i file(s) you're trying to check in have not yet been added to the repository (status is '?'). These won't be checked in. Proceed anyway?" = "%i file(s) you're trying to check in have not yet been added to the repository (status is '?'). These won't be checked in. Proceed anyway?";
6
7
/* No comment provided by engineer. */
8
"(no changes)" = "(no changes)";
9
10
/* No comment provided by engineer. */
11
"--locally modified--" = "--locally modified--";
12
13
/* No comment provided by engineer. */
14
"-[HgRevision root] failed! %@" = "-[HgRevision root] failed! %@";
15
16
/* No comment provided by engineer. */
17
"Are you sure you want to discard all uncommitted changes to the selected files?" = "Are you sure you want to discard all uncommitted changes to the selected files?";
18
19
/* No comment provided by engineer. */
20
"Are you sure you want to remove the selected files from the repository?" = "Are you sure you want to remove the selected files from the repository?";
21
22
/* No comment provided by engineer. */
23
"Are you sure you want to update the source tree to revision %i?" = "Are you sure you want to update the source tree to revision %i?";
24
25
/* No comment provided by engineer. */
26
"Bad absolutePath for %@ %@" = "Bad absolutePath for %1$@ %2$@";
27
28
/* No comment provided by engineer. */
29
"bad rev0: %i" = "bad rev0: %i";
30
31
/* No comment provided by engineer. */
32
"bad rev1: %i" = "bad rev1: %i";
33
34
/* No comment provided by engineer. */
35
"Can't call Mercurial" = "Can't call Mercurial";
36
37
/* No comment provided by engineer. */
38
"Can't update to uncommitted revision" = "Can't update to uncommitted revision";
39
40
/* No comment provided by engineer. */
41
"Cancel" = "Cancel";
42
43
/* No comment provided by engineer. */
44
"Clone" = "Clone";
45
46
/* No comment provided by engineer. */
47
"Clone repository to URL/file:" = "Clone repository to URL/file:";
48
49
/* No comment provided by engineer. */
50
"Cloned Repository" = "Cloned Repository";
51
52
/* No comment provided by engineer. */
53
"Cloning to <%@>" = "Cloning to <%@>";
54
55
/* No comment provided by engineer. */
56
"Close" = "Close";
57
58
/* No comment provided by engineer. */
59
"Convert to Mercurial repository?" = "Convert to Mercurial repository?";
60
61
/* No comment provided by engineer. */
62
"Couldn't locate hg via shell ... assuming it's at %@" = "Couldn't locate hg via shell ... assuming it's at %@";
63
64
/* No comment provided by engineer. */
65
"dir changed: %@" = "dir changed: %@";
66
67
/* No comment provided by engineer. */
68
"Discard" = "Discard";
69
70
/* No comment provided by engineer. */
71
"Discard file changes?" = "Discard file changes?";
72
73
/* No comment provided by engineer. */
74
"Exception re-opening recent repository %@" = "Exception re-opening recent repository %@";
75
76
/* No comment provided by engineer. */
77
"Failed to parse date '%@'" = "Failed to parse date '%@'";
78
79
/* No comment provided by engineer. */
80
"Getting details of revisions [%u..%u]" = "Getting details of revisions [%1$u..%2$u]";
81
82
/* No comment provided by engineer. */
83
"HgLogOperation couldn't get changeset ID for rev #%i" = "HgLogOperation couldn't get changeset ID for rev #%i";
84
85
/* No comment provided by engineer. */
86
"HgLogOperation couldn't get changesets from XML: %@" = "HgLogOperation couldn't get changesets from XML: %@";
87
88
/* No comment provided by engineer. */
89
"HgLogOperation couldn't parse XML: %@" = "HgLogOperation couldn't parse XML: %@";
90
91
/* No comment provided by engineer. */
92
"HgLogOperation: Couldn't parse XPath '%@': %@" = "HgLogOperation: Couldn't parse XPath '%1$@': %2$@";
93
94
/* No comment provided by engineer. */
95
"HgRepository: Couldn't start MYDirectoryWatcher on %@" = "HgRepository: Couldn't start MYDirectoryWatcher on %@";
96
97
/* No comment provided by engineer. */
98
"Hide Unmodified" = "Hide Unmodified";
99
100
/* No comment provided by engineer. */
101
"Ignoring backup: %@" = "Ignoring backup: %@";
102
103
/* No comment provided by engineer. */
104
"Illegal n=%i" = "Illegal n=%i";
105
106
/* No comment provided by engineer. */
107
"Illegal revision number %i" = "Illegal revision number %i";
108
109
/* No comment provided by engineer. */
110
"Invalid filesystem path" = "Invalid filesystem path";
111
112
/* No comment provided by engineer. */
113
"Invalid op %i" = "Invalid op %i";
114
115
/* No comment provided by engineer. */
116
"Invalid revision ID '%@'" = "Invalid revision ID '%@'";
117
118
/* No comment provided by engineer. */
119
"Invalid start revision" = "Invalid start revision";
120
121
/* No comment provided by engineer. */
122
"Invalid URL" = "Invalid URL";
123
124
/* No comment provided by engineer. */
125
"No such directory %@" = "No such directory %@";
126
127
/* No comment provided by engineer. */
128
"OK" = "OK";
129
130
/* No comment provided by engineer. */
131
"Pull" = "Pull";
132
133
/* No comment provided by engineer. */
134
"Pull revisions from repository at URL/file:" = "Pull revisions from repository at URL/file:";
135
136
/* No comment provided by engineer. */
137
"Pulling from <%@>" = "Pulling from <%@>";
138
139
/* No comment provided by engineer. */
140
"Push" = "Push";
141
142
/* No comment provided by engineer. */
143
"Push revisions to repository at URL/file:" = "Push revisions to repository at URL/file:";
144
145
/* No comment provided by engineer. */
146
"Pushing to <%@>" = "Pushing to <%@>";
147
148
/* No comment provided by engineer. */
149
"Remove" = "Remove";
150
151
/* No comment provided by engineer. */
152
"Remove files from repository?" = "Remove files from repository?";
153
154
/* No comment provided by engineer. */
155
"Revision ID has wrong length (%u)" = "Revision ID has wrong length (%u)";
156
157
/* No comment provided by engineer. */
158
"Shell command '%@' failed with output: '%@'" = "Shell command '%1$@' failed with output: '%2$@'";
159
160
/* No comment provided by engineer. */
161
"Show Unmodified" = "Show Unmodified";
162
163
/* No comment provided by engineer. */
164
"Some files aren't in the repository" = "Some files aren't in the repository";
165
166
/* No comment provided by engineer. */
167
"Sorry" = "Sorry";
168
169
/* No comment provided by engineer. */
170
"Stop" = "Stop";
171
172
/* No comment provided by engineer. */
173
"Successfully created a cloned repository at \n\n%@" = "Successfully created a cloned repository at \n\n%@";
174
175
/* No comment provided by engineer. */
176
"The directory <%@> is not already a Mercurial repository. Would you like to make it one?" = "The directory <%@> is not already a Mercurial repository. Would you like to make it one?";
177
178
/* No comment provided by engineer. */
179
"The path to clone into is already inside a Mercurial repository at %@" = "The path to clone into is already inside a Mercurial repository at %@";
180
181
/* No comment provided by engineer. */
182
"Tip changed from %i to %i ... updating revisions" = "Tip changed from %1$i to %2$i ... updating revisions";
183
184
/* No comment provided by engineer. */
185
"Unable to find or run the 'hg' command.\n\n%@" = "Unable to find or run the 'hg' command.\n\n%@";
186
187
/* No comment provided by engineer. */
188
"Unexpected revision numbers from log: expected starting %u, got %u" = "Unexpected revision numbers from log: expected starting %1$u, got %2$u";
189
190
/* No comment provided by engineer. */
191
"Unknown line from hg status: \"%@\"" = "Unknown line from hg status: \"%@\"";
192
193
/* No comment provided by engineer. */
194
"untitled project" = "untitled project";
195
196
/* No comment provided by engineer. */
197
"Update" = "Update";
198
199
/* No comment provided by engineer. */
200
"Update Completed" = "Update Completed";
201
202
/* No comment provided by engineer. */
203
"Update to revision?" = "Update to revision?";
204
205
/* No comment provided by engineer. */
206
"Updating changed dirs %@" = "Updating changed dirs %@";
207
208
/* No comment provided by engineer. */
209
"URL protocol must be %@" = "URL protocol must be %@";
210

Up to file-list German.lproj/Localized.strings:

Binary file has changed or diff was empty.

Up to file-list Murky.xcodeproj/project.pbxproj:

7
7
	objects = {
8
8
9
9
/* Begin PBXBuildFile section */
10
		041D95700FC1C8560084F5C0 /* Localized.strings in Resources */ = {isa = PBXBuildFile; fileRef = 041D956E0FC1C8560084F5C0 /* Localized.strings */; };
11
		04E66D5B0FC587F200C0E025 /* Info.plist in Resources */ = {isa = PBXBuildFile; fileRef = 04E66D5A0FC587F200C0E025 /* Info.plist */; };
10
12
		27075E6A0D66B9A900A8F759 /* mercurial-logo-official.icns in Resources */ = {isa = PBXBuildFile; fileRef = 27075E690D66B9A900A8F759 /* mercurial-logo-official.icns */; };
11
13
		270E509D0C56A5400069C9C6 /* HgDir.m in Sources */ = {isa = PBXBuildFile; fileRef = 270E509C0C56A5400069C9C6 /* HgDir.m */; };
12
14
		270E51290C56AD520069C9C6 /* HgLogOperation.m in Sources */ = {isa = PBXBuildFile; fileRef = 270E51280C56AD520069C9C6 /* HgLogOperation.m */; };
69
71
/* End PBXBuildFile section */
70
72
71
73
/* Begin PBXFileReference section */
74
		041D956F0FC1C8560084F5C0 /* English */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.strings; name = English; path = English.lproj/Localized.strings; sourceTree = SOURCE_ROOT; };
75
		043FB8650FC57E660055B723 /* French */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = French; path = French.lproj/Localized.strings; sourceTree = SOURCE_ROOT; };
76
		04E66D530FC5877F00C0E025 /* English */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = English; path = English.lproj/Info.plist; sourceTree = "<group>"; };
77
		04E66D5D0FC5880500C0E025 /* French */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; name = French; path = French.lproj/Info.plist; sourceTree = "<group>"; };
72
78
		1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Cocoa.framework; path = /System/Library/Frameworks/Cocoa.framework; sourceTree = "<absolute>"; };
73
79
		27075E690D66B9A900A8F759 /* mercurial-logo-official.icns */ = {isa = PBXFileReference; lastKnownFileType = image.icns; path = "mercurial-logo-official.icns"; sourceTree = "<group>"; };
74
80
		270E509B0C56A5400069C9C6 /* HgDir.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HgDir.h; sourceTree = "<group>"; };
156
162
		29B97324FDCFA39411CA2CEA /* AppKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AppKit.framework; path = /System/Library/Frameworks/AppKit.framework; sourceTree = "<absolute>"; };
157
163
		29B97325FDCFA39411CA2CEA /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = /System/Library/Frameworks/Foundation.framework; sourceTree = "<absolute>"; };
158
164
		32CA4F630368D1EE00C91783 /* Murky_Prefix.pch */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Murky_Prefix.pch; sourceTree = "<group>"; };
159
		8D1107310486CEB800E47090 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
160
165
		8D1107320486CEB800E47090 /* Murky.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Murky.app; sourceTree = BUILT_PRODUCTS_DIR; };
161
166
		D095A40F0FBC0FD800512681 /* toolbar_discard.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = toolbar_discard.png; path = Resources/Icons/toolbar_discard.png; sourceTree = SOURCE_ROOT; };
162
167
		D095A4100FBC0FD800512681 /* toolbar_refresh.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = toolbar_refresh.png; path = Resources/Icons/toolbar_refresh.png; sourceTree = SOURCE_ROOT; };
349
354
		29B97317FDCFA39411CA2CEA /* Resources */ = {
350
355
			isa = PBXGroup;
351
356
			children = (
352
				8D1107310486CEB800E47090 /* Info.plist */,
357
				04E66D5A0FC587F200C0E025 /* Info.plist */,
358
				041D956E0FC1C8560084F5C0 /* Localized.strings */,
353
359
				27FEB4840FBB209D00290049 /* InfoPlist.strings */,
354
360
				27FEB4630FBB200600290049 /* Icons */,
355
361
				270E512A0C56AED10069C9C6 /* xmlstyle */,
443
449
				D095A5120FBC363100512681 /* status_removed.png in Resources */,
444
450
				D095A5170FBC376E00512681 /* status_null.png in Resources */,
445
451
				279089880FBFD9CC00CEA97E /* RevisionDescriptionTemplate.rtf in Resources */,
452
				041D95700FC1C8560084F5C0 /* Localized.strings in Resources */,
453
				04E66D5B0FC587F200C0E025 /* Info.plist in Resources */,
446
454
			);
447
455
			runOnlyForDeploymentPostprocessing = 0;
448
456
		};
485
493
/* End PBXSourcesBuildPhase section */
486
494
487
495
/* Begin PBXVariantGroup section */
496
		041D956E0FC1C8560084F5C0 /* Localized.strings */ = {
497
			isa = PBXVariantGroup;
498
			children = (
499
				041D956F0FC1C8560084F5C0 /* English */,
500
				043FB8650FC57E660055B723 /* French */,
501
			);
502
			name = Localized.strings;
503
			sourceTree = "<group>";
504
		};
505
		04E66D5A0FC587F200C0E025 /* Info.plist */ = {
506
			isa = PBXVariantGroup;
507
			children = (
508
				04E66D530FC5877F00C0E025 /* English */,
509
				04E66D5D0FC5880500C0E025 /* French */,
510
			);
511
			name = Info.plist;
512
			sourceTree = "<group>";
513
		};
488
514
		279089860FBFD9CC00CEA97E /* RevisionDescriptionTemplate.rtf */ = {
489
515
			isa = PBXVariantGroup;
490
516
			children = (
547
573
			isa = XCBuildConfiguration;
548
574
			buildSettings = {
549
575
				COPY_PHASE_STRIP = NO;
550
				INFOPLIST_FILE = Resources/Info.plist;
576
				INFOPLIST_FILE = Resources/English.lproj/Info.plist;
551
577
				INSTALL_PATH = "$(HOME)/Applications";
552
578
				PRODUCT_NAME = Murky;
553
579
				WRAPPER_EXTENSION = app;
557
583
		C01FCF4C08A954540054247B /* Release */ = {
558
584
			isa = XCBuildConfiguration;
559
585
			buildSettings = {
560
				INFOPLIST_FILE = Resources/Info.plist;
586
				INFOPLIST_FILE = Resources/English.lproj/Info.plist;
561
587
				INSTALL_PATH = "$(HOME)/Applications";
562
588
				PRODUCT_NAME = Murky;
563
589
				WRAPPER_EXTENSION = app;

Up to file-list Resources/English.lproj/Info.plist:

1
<?xml version="1.0" encoding="UTF-8"?>
2
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
3
<plist version="1.0">
4
<dict>
5
	<key>CFBundleDevelopmentRegion</key>
6
	<string>English</string>
7
	<key>CFBundleDocumentTypes</key>
8
	<array>
9
		<dict>
10
			<key>CFBundleTypeName</key>
11
			<string>Repository</string>
12
			<key>CFBundleTypeRole</key>
13
			<string>Editor</string>
14
			<key>LSItemContentTypes</key>
15
			<array>
16
				<string>public.folder</string>
17
			</array>
18
			<key>LSTypeIsPackage</key>
19
			<false/>
20
			<key>NSPersistentStoreTypeKey</key>
21
			<string>XML</string>
22
		</dict>
23
	</array>
24
	<key>CFBundleExecutable</key>
25
	<string>${EXECUTABLE_NAME}</string>
26
	<key>CFBundleIconFile</key>
27
	<string>mercurial-logo-official</string>
28
	<key>CFBundleIdentifier</key>
29
	<string>com.mooseyard.Murky</string>
30
	<key>CFBundleInfoDictionaryVersion</key>
31
	<string>6.0</string>
32
	<key>CFBundleName</key>
33
	<string>${PRODUCT_NAME}</string>
34
	<key>CFBundlePackageType</key>
35
	<string>APPL</string>
36
	<key>CFBundleSignature</key>
37
	<string>????</string>
38
	<key>CFBundleVersion</key>
39
	<string>0.4</string>
40
	<key>NSMainNibFile</key>
41
	<string>MainMenu</string>
42
	<key>NSPrincipalClass</key>
43
	<string>MYExceptionReportingApplication</string>
44
</dict>
45
</plist>

Up to file-list Resources/French.lproj/Info.plist:

1
<?xml version="1.0" encoding="UTF-8"?>
2
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
3
<plist version="1.0">
4
<dict>
5
	<key>CFBundleDevelopmentRegion</key>
6
	<string>French</string>
7
	<key>CFBundleDocumentTypes</key>
8
	<array>
9
		<dict>
10
			<key>CFBundleTypeName</key>
11
			<string>Repository</string>
12
			<key>CFBundleTypeRole</key>
13
			<string>Editor</string>
14
			<key>LSItemContentTypes</key>
15
			<array>
16
				<string>public.folder</string>
17
			</array>
18
			<key>LSTypeIsPackage</key>
19
			<false/>
20
			<key>NSPersistentStoreTypeKey</key>
21
			<string>XML</string>
22
		</dict>
23
	</array>
24
	<key>CFBundleExecutable</key>
25
	<string>${EXECUTABLE_NAME}</string>
26
	<key>CFBundleIconFile</key>
27
	<string>mercurial-logo-official</string>
28
	<key>CFBundleIdentifier</key>
29
	<string>com.mooseyard.Murky</string>
30
	<key>CFBundleInfoDictionaryVersion</key>
31
	<string>6.0</string>
32
	<key>CFBundleName</key>
33
	<string>${PRODUCT_NAME}</string>
34
	<key>CFBundlePackageType</key>
35
	<string>APPL</string>
36
	<key>CFBundleSignature</key>
37
	<string>????</string>
38
	<key>CFBundleVersion</key>
39
	<string>0.4</string>
40
	<key>NSMainNibFile</key>
41
	<string>MainMenu</string>
42
	<key>NSPrincipalClass</key>
43
	<string>MYExceptionReportingApplication</string>
44
</dict>
45
</plist>

Up to file-list Source/HgDir.m:

183
183
    for( NSString *line in statusLines ) {
184
184
        if( line.length > 0 ) {
185
185
            if( line.length<3 || [line characterAtIndex: 1] != ' ' ) {
186
                Warn(@"Unknown line from hg status: \"%@\"",line);
186
                Warn(NSLocalizedStringFromTable(@"Unknown line from hg status: \"%@\"", @"Localized", nil),line);
187
187
                continue;
188
188
            }
189
189
            HgStatus status = (HgStatus) [line characterAtIndex: 0];
194
194
                    continue;
195
195
                else if (status == kNotTracked && [path hasSuffix: @".orig"]) {
196
196
                    // Ignore .orig files not in repo; they're backups from 'hg revert'.
197
                    LogTo(HgFile,@"Ignoring backup: %@", line);
197
                    LogTo(HgFile,NSLocalizedStringFromTable(@"Ignoring backup: %@", @"Localized", nil), line);
198
198
                    continue;
199
199
                }
200
200
                // OK, add/update it:

Up to file-list Source/HgLogOperation.m:

@@ -162,7 +162,7 @@ static NSArray* arrayForXPath( NSXMLElem
162
162
    NSError *error = nil;
163
163
    NSArray *nodes = [xml nodesForXPath: xpath error: &error];
164
164
    if( nodes == nil ) {
165
        Warn(@"HgLogOperation: Couldn't parse XPath '%@': %@",xpath,[error localizedDescription]);
165
        Warn(NSLocalizedStringFromTable(@"HgLogOperation: Couldn't parse XPath '%@': %@", @"Localized", nil),xpath,[error localizedDescription]);
166
166
    }
167
167
    return nodes;
168
168
}
@@ -206,12 +206,12 @@ static BOOL identifierFromAttribute( NSX
206
206
    unsigned len = str.length;
207
207
    if( len != 40 ) {
208
208
        if( len>0 )
209
            Warn(@"Revision ID has wrong length (%u)",len);
209
            Warn(NSLocalizedStringFromTable(@"Revision ID has wrong length (%u)", @"Localized", nil),len);
210
210
        return NO;
211
211
    }
212
212
    const char *cStr = [str cStringUsingEncoding: NSASCIIStringEncoding];
213
213
    if( ! cStr ) {
214
        Warn(@"Invalid revision ID '%@'",str);
214
        Warn(NSLocalizedStringFromTable(@"Invalid revision ID '%@'", @"Localized", nil),str);
215
215
        return NO;
216
216
    }
217
217
    for( size_t i=0; i<20; i++ )
@@ -233,7 +233,7 @@ static NSDate* parseDate( NSString *hgDa
233
233
                return [NSDate dateWithTimeIntervalSince1970: time];
234
234
            }
235
235
        }
236
        Warn(@"Failed to parse date '%@'",hgDateStr);
236
        Warn(NSLocalizedStringFromTable(@"Failed to parse date '%@'", @"Localized", nil),hgDateStr);
237
237
    }
238
238
    return nil;
239
239
}
@@ -298,14 +298,14 @@ static NSDate* parseDate( NSString *hgDa
298
298
                                                       error: &error];
299
299
    if( ! xml ) {
300
300
        [xmlData writeToFile: @"/tmp/Murky.out" options: 0 error: nil];
301
        return [self makeError: @"HgLogOperation couldn't parse XML: %@",error];
301
        return [self makeError: NSLocalizedStringFromTable(@"HgLogOperation couldn't parse XML: %@", @"Localized", nil),error];
302
302
    }
303
303
    NSXMLElement *root = xml.rootElement;
304
304
    
305
305
    // Build array of HgRevision from the <changeset> elements:
306
306
    NSArray *changesets = [root nodesForXPath: @"/repository/changeset" error: &error];
307
307
    if( ! changesets )
308
        return [self makeError: @"HgLogOperation couldn't get changesets from XML: %@",error];
308
        return [self makeError: NSLocalizedStringFromTable(@"HgLogOperation couldn't get changesets from XML: %@", @"Localized", nil),error];
309
309
    
310
310
    // Build the _revisions array from the XML changeset info:
311
311
    _revisions = [NSMutableArray array];
@@ -314,7 +314,7 @@ static NSDate* parseDate( NSString *hgDa
314
314
        int revNo = [[[changeset attributeForName: @"rev"] stringValue] intValue];
315
315
        HgRevisionID nodeID;
316
316
        if( ! identifierFromAttribute(changeset,@"node",&nodeID) )
317
            return [self makeError: @"HgLogOperation couldn't get changeset ID for rev #%i",revNo];
317
            return [self makeError: NSLocalizedStringFromTable(@"HgLogOperation couldn't get changeset ID for rev #%i", @"Localized", nil),revNo];
318
318
        HgRevision *revision = [_repository revisionWithID: nodeID];
319
319
        if( !revision ) {
320
320
            revision = [[HgRevision alloc] initWithRepository: _repository

Up to file-list Source/HgOperation.m:

@@ -28,7 +28,7 @@ static NSString* runShell( NSString* com
28
28
        return [sh.output stringByTrimmingCharactersInSet: [NSCharacterSet whitespaceAndNewlineCharacterSet]];
29
29
    else {
30
30
        if (outError)
31
            Warn(@"Shell command '%@' failed with output: '%@'", command,sh.output);
31
            Warn(NSLocalizedStringFromTable(@"Shell command '%@' failed with output: '%@'", @"Localized", nil), command,sh.output);
32
32
        return nil;
33
33
    }
34
34
}
@@ -76,7 +76,7 @@ static NSString* runShell( NSString* com
76
76
    
77
77
    // As a last resort, guess that it's /usr/local/bin/hg:
78
78
    hgPath = @"/usr/local/bin/hg";
79
    Warn(@"Couldn't locate hg via shell ... assuming it's at %@", hgPath);
79
    Warn(NSLocalizedStringFromTable(@"Couldn't locate hg via shell ... assuming it's at %@", @"Localized", nil), hgPath);
80
80
    return hgPath;
81
81
}
82
82
@@ -107,7 +107,7 @@ static NSString* getAbsolutePath( id dir
107
107
        _subcommand = subcommand;
108
108
        if( dir ) {
109
109
            NSString *absPath = getAbsolutePath(dir);
110
            Assert(absPath.length>0, @"Bad absolutePath for %@ %@",[dir class],dir);
110
            Assert(absPath.length>0,NSLocalizedStringFromTable(@"Bad absolutePath for %@ %@", @"Localized", nil),[dir class],dir);
111
111
            self.currentDirectoryPath = absPath;
112
112
        }
113
113
    }

Up to file-list Source/HgRepository.m:

@@ -86,7 +86,7 @@ static NSString* stringForURL( NSURL *ur
86
86
                                                        target: self action: @selector(_dirChanged:)];
87
87
        _watcher.latency = 5;
88
88
        if( ! [_watcher start] )
89
            Warn(@"HgRepository: Couldn't start MYDirectoryWatcher on %@",_absolutePath);
89
            Warn(NSLocalizedStringFromTable(@"HgRepository: Couldn't start MYDirectoryWatcher on %@", @"Localized", nil),_absolutePath);
90
90
        Log(@"Opened %@", self);
91
91
    }
92
92
    return self;
@@ -172,7 +172,7 @@ static NSString* stringForURL( NSURL *ur
172
172
        if( [path hasPrefix: changedPath] )
173
173
            return;                                 // ...or an ancestor of it
174
174
    }
175
    LogTo(HgRepository, @"dir changed: %@", event.path);
175
    LogTo(HgRepository, NSLocalizedStringFromTable(@"dir changed: %@", @"Localized", nil), event.path);
176
176
    if( _changedPaths.count==0 )
177
177
        [self performSelector: @selector(_updateChangedDirs) withObject: nil afterDelay: 0.25];
178
178
    [_changedPaths addObject: path];
@@ -181,7 +181,7 @@ static NSString* stringForURL( NSURL *ur
181
181
182
182
- (void) _updateChangedDirs
183
183
{
184
    LogTo(HgRepository, @"Updating changed dirs %@",[[_changedPaths allObjects] componentsJoinedByString: @", "]);
184
    LogTo(HgRepository, NSLocalizedStringFromTable(@"Updating changed dirs %@", @"Localized", nil),[[_changedPaths allObjects] componentsJoinedByString: @", "]);
185
185
    NSSet *changedPaths = _changedPaths;
186
186
    _changedPaths = [NSMutableSet set];
187
187
    
@@ -285,7 +285,7 @@ static NSString* stringForURL( NSURL *ur
285
285
    int curTip = _revisions.count>0 ?self.tipRevision.localNumber :-1;
286
286
    if( tip != curTip ) {
287
287
        // Revisions have changed!
288
        LogTo(HgRepository,@"Tip changed from %i to %i ... updating revisions", curTip,tip);
288
        LogTo(HgRepository,NSLocalizedStringFromTable(@"Tip changed from %i to %i ... updating revisions", @"Localized", nil), curTip,tip);
289
289
290
290
        // Run "hg log" to get all revisions of this repository:
291
291
        if (!_revisions)
@@ -301,7 +301,7 @@ static NSString* stringForURL( NSURL *ur
301
301
        if( ! [op run] )
302
302
            return NO;
303
303
        Assert([[op.revisions objectAtIndex: 0] localNumber]==curTip+1,
304
                  @"Unexpected revision numbers from log: expected starting %u, got %u", 
304
                  NSLocalizedStringFromTable(@"Unexpected revision numbers from log: expected starting %u, got %u", @"Localized", nil), 
305
305
                  curTip+1, [[op.revisions objectAtIndex: 0] localNumber]);
306
306
        
307
307
        // Add the new revisions, but before the uncommitted one if any:
@@ -338,10 +338,10 @@ static NSString* stringForURL( NSURL *ur
338
338
    unsigned nRevisions = _revisions.count;
339
339
    if (nRevisions > 0 && [[_revisions lastObject] isUncommitted])
340
340
        nRevisions--;
341
    Assert(revNoRange.location < nRevisions, @"Invalid start revision");
341
    Assert(revNoRange.location < nRevisions, NSLocalizedStringFromTable(@"Invalid start revision", @"Localized", nil));
342
342
    revNoRange.length = MIN(revNoRange.length, nRevisions - revNoRange.location);
343
343
    
344
    LogTo(HgRepository, @"Getting details of revisions [%u..%u]", 
344
    LogTo(HgRepository, NSLocalizedStringFromTable(@"Getting details of revisions [%u..%u]", @"Localized", nil), 
345
345
            revNoRange.location, revNoRange.location+revNoRange.length-1);
346
346
    HgLogOperation *op = [[HgLogOperation alloc] initWithRepository: self 
347
347
                                                               file: nil 
@@ -452,7 +452,7 @@ static NSString* stringForURL( NSURL *ur
452
452
        NSString *root = [[self class] findRootOf: dstPath localPath: NULL];
453
453
        if( root ) {
454
454
            NSError *error;
455
            MYMiscError(&error, @"The path to clone into is already inside a Mercurial repository at %@",root);
455
            MYMiscError(&error, NSLocalizedStringFromTable(@"The path to clone into is already inside a Mercurial repository at %@", @"Localized", nil),root);
456
456
            return  [[HgOperation alloc] initWithError: error];
457
457
        }
458
458
    }
@@ -509,7 +509,7 @@ static NSString* stringForURL( NSURL *ur
509
509
{
510
510
    NSArray *args = nil;
511
511
    if( rev ) {
512
        Assert(!rev.isUncommitted,@"Can't update to uncommitted revision");
512
        Assert(!rev.isUncommitted,NSLocalizedStringFromTable(@"Can't update to uncommitted revision", @"Localized", nil));
513
513
        args = [NSArray arrayWithObjects: @"--rev", rev.identifierString, nil];
514
514
    }
515
515
    HgOperation *op = [[HgOperation alloc] initWithDirectory: self

Up to file-list Source/HgRevision.m:

@@ -335,7 +335,7 @@ static void replaceAndLink(NSMutableAttr
335
335
        HgDir *root = [[HgDir alloc] initRootOfRevision: self];
336
336
        NSError *error;
337
337
        if( ! [self updateStatus: root error: &error] )
338
            Warn(@"-[HgRevision root] failed! %@",error);
338
            Warn(NSLocalizedStringFromTable(@"-[HgRevision root] failed! %@", @"Localized", nil),error);
339
339
        _root = root;
340
340
    }
341
341
    return _root;

Up to file-list Source/HgUncommittedRevision.m:

34
34
    if (_comment.length)
35
35
        return _comment;
36
36
    else if (_root.isUncommitted)
37
        return @"--locally modified--";
37
        return NSLocalizedStringFromTable(@"--locally modified--", @"Localized", nil);
38
38
    else
39
        return @"(no changes)";
39
        return NSLocalizedStringFromTable(@"(no changes)", @"Localized", nil);
40
40
}
41
41
42
42
- (void) setComment: (NSString*)str

Up to file-list Source/MercurialApp.m:

@@ -107,8 +107,8 @@ MercurialApp *gMercurialApp;
107
107
        if( dstURL.isFileURL )
108
108
            [self openRepository: dstURL.path remember: YES];
109
109
        else
110
            NSRunInformationalAlertPanel(@"Cloned Repository",
111
                                         @"Successfully created a cloned repository at \n\n%@",
110
            NSRunInformationalAlertPanel(NSLocalizedStringFromTable(@"Cloned Repository", @"Localized", nil),
111
                                         NSLocalizedStringFromTable(@"Successfully created a cloned repository at \n\n%@", @"Localized", nil),
112
112
                                         nil, nil, nil,
113
113
                                         dstURL.absoluteString);
114
114
    }
@@ -150,9 +150,9 @@ MercurialApp *gMercurialApp;
150
150
    HgOperation *op = [[HgOperation alloc] initWithDirectory: NSHomeDirectory() command: @"--version", nil];
151
151
    NSError *error;
152
152
    if( ! [op run: &error] ) {
153
        NSRunCriticalAlertPanel(@"Can't call Mercurial",
154
                                @"Unable to find or run the 'hg' command.\n\n%@",
155
                                @"Sorry", nil, nil,
153
        NSRunCriticalAlertPanel(NSLocalizedStringFromTable(@"Can't call Mercurial", @"Localized", nil),
154
                                NSLocalizedStringFromTable(@"Unable to find or run the 'hg' command.\n\n%@", @"Localized", nil),
155
                                NSLocalizedStringFromTable(@"Sorry", @"Localized", nil), nil, nil,
156
156
                                error.localizedDescription);
157
157
        [NSApp terminate];
158
158
        return;
@@ -164,7 +164,7 @@ MercurialApp *gMercurialApp;
164
164
    for( NSString *path in [[NSUserDefaults standardUserDefaults] objectForKey: kPrefOpenRepositories]) {
165
165
        @try{
166
166
            [self openRepository: path remember: NO];
167
        }catchAndReport(@"Exception re-opening recent repository %@", path)
167
        }catchAndReport(NSLocalizedStringFromTable(@"Exception re-opening recent repository %@", @"Localized", nil), path)
168
168
    }    
169
169
}
170
170

Up to file-list Source/ProjectsController.m:

@@ -359,7 +359,7 @@ static NSMutableArray *sDraggingProjects
359
359
360
360
- (IBAction) addProject: (id)sender
361
361
{
362
    [_root addChild: [HgProject projectWithName: @"untitled project"]];
362
    [_root addChild: [HgProject projectWithName: NSLocalizedStringFromTable(@"untitled project", @"Localized", nil)]];
363
363
    [self changed];
364
364
}
365
365

Up to file-list Source/RepoController.m:

69
69
{
70
70
    BOOL isDir;
71
71
    if( ! [[NSFileManager defaultManager] fileExistsAtPath: path isDirectory: &isDir] ) {
72
        MYMiscError(error, @"No such directory %@",path);
72
        MYMiscError(error, NSLocalizedStringFromTable(@"No such directory %@", @"Localized", nil),path);
73
73
        return nil;
74
74
    } else if( ! isDir ) {
75
        MYMiscError(error, @"%@ is not a directory",path);
75
        MYMiscError(error, NSLocalizedStringFromTable(@"%@ is not a directory", @"Localized", nil),path);
76
76
        return nil;
77
77
    }
78
78
    HgRepository *repo = [[HgRepository alloc] initWithPath: path localPath: NULL];
79
79
    if( ! repo ) {
80
        int result = NSRunAlertPanel(@"Convert to Mercurial repository?", 
81
                                     @"The directory <%@> is not already a Mercurial repository. "
82
                                     "Would you like to make it one?",
83
                                     @"Convert", @"Cancel", nil,
80
        int result = NSRunAlertPanel(NSLocalizedStringFromTable(@"Convert to Mercurial repository?", @"Localized", nil), 
81
                                     NSLocalizedStringFromTable(@"The directory <%@> is not already a Mercurial repository. Would you like to make it one?", @"Localized", nil),
82
									 NSLocalizedStringFromTable(@"Cancel", @"Localized", nil), nil,
84
83
                                     path);
85
84
        if( result != NSOKButton ) {
86
85
            *error = nil;
166
165
    NSString *uncommittedComments = [_settings objectForKey: @"UncommittedComments"];
167
166
    if( uncommittedComments ) {
168
167
        HgUncommittedRevision *last = _repo.modifiedRevision;
169
        if( last ) {
168
        if( last )
170
169
            last.formattedDescription = uncommittedComments;
171
            [self _updateInfoView];
172
        }
173
170
    }
174
171
    
175
172
    [self tableView: _revisionTable didClickTableColumn: nil];  // set up graph column
223
220
- (void) saveSettings
224
221
{
225
222
    if( _settingsChanged ) {
226
        LogTo(Settings,@"Saving settings");
223
        Log(@"RepoController: Saving settings");
227
224
        [_repo ignoreNextFileChanges];
228
225
        [_settings writeToFile: [_repo.absolutePath stringByAppendingPathComponent: kSettingsFilePath]
229
226
                    atomically: YES];
235
232
{
236
233
    id oldValue = [_settings objectForKey: setting];
237
234
    if( value!=oldValue && ![value isEqual: oldValue] ) {
238
        LogTo(Settings,@"%@ = %@",setting,value);
235
        Log(@"Setting: %@ = %@",setting,value);
239
236
        if( value )
240
237
            [_settings setObject: value forKey: setting];
241
238
        else
322
319
    if( showUnclean ) {
323
320
        //_tree.leafKeyPath = @"isNonRepository";
324
321
        contentPath =  @"selection.uncleanFiles";
325
        [_hideShowUnmodifiedToolbarItem setLabel:@"Show Unmodified"];
322
        [_hideShowUnmodifiedToolbarItem setLabel:NSLocalizedStringFromTable(@"Show Unmodified", @"Localized", nil)];
326
323
        [_hideShowUnmodifiedToolbarItem setPaletteLabel:@"Show Unmodified Files"];
327
324
    } else {
328
325
        //_tree.leafKeyPath = @"isFile";
329
326
        contentPath = @"selection.rootAsArray";
330
        [_hideShowUnmodifiedToolbarItem setLabel:@"Hide Unmodified"];
327
        [_hideShowUnmodifiedToolbarItem setLabel:NSLocalizedStringFromTable(@"Hide Unmodified", @"Localized", nil)];
331
328
        [_hideShowUnmodifiedToolbarItem setPaletteLabel:@"Hide Unmodified Files"];      
332
329
    }
333
330
    
517
514
- (void) _updateInfoView
518
515
{
519
516
    HgRevision *revision = self.selectedRevision;
520
    NSAttributedString *text = revision.richFormattedDescription;
521
    if (text)
522
        [_infoView.textStorage setAttributedString: text];
523
    else
524
        [_infoView setString: @""];
517
    NSString *text = revision.formattedDescription ?: @"";
518
    _infoView.string = text;
525
519
    [_infoView setEditable: revision.isUncommitted];
526
520
    _infoView.drawsBackground = revision.isUncommitted;
527
    [_infoView didChangeText];
528
521
    [_infoView setNeedsDisplay: YES];
529
522
}
530
523
598
591
599
592
- (void) _revisionSelectionChanged: (NSTreeController*)controller change: (NSDictionary*)change
600
593
{
601
    Log(@"Revision Selection = %@",self.selectedRevision);
594
    //Log(@"Revision Selection = %@",self.selectedRevision);
602
595
    [self _updateInfoView];
603
596
    [self _updateWindowTitle];
604
597
}

Up to file-list Source/RepoController_Actions.m:

265
265
        return;
266
266
    }
267
267
    _progressMessageField.stringValue = message;
268
    _progressStopButton.title = @"Stop";
268
    _progressStopButton.title = NSLocalizedStringFromTable(@"Stop", @"Localized", nil);
269
269
    NSView *superview = _progressStopButton.superview;
270
270
    [_progressStopButton removeFromSuperview];
271
271
    _progressStopButton.keyEquivalent = @"\033"; // esc
285
285
286
286
287
287
- (void) _currentOperationStopped {
288
    _progressStopButton.title = @"Close";
288
    _progressStopButton.title = NSLocalizedStringFromTable(@"Close", @"Localized", nil);
289
289
    _progressStopButton.keyEquivalent = @"\r";
290
290
}
291
291
@@ -359,13 +359,13 @@ static BOOL isFileStatus( id file, void
359
359
                [_outline selectRow: row byExtendingSelection: YES];
360
360
        }
361
361
        
362
        NSBeginCriticalAlertSheet(@"Some files aren't in the repository",
363
                                  @"OK", @"Cancel", nil,
362
        NSBeginCriticalAlertSheet(NSLocalizedStringFromTable(@"Some files aren't in the repository", @"Localized", nil),
363
                                  NSLocalizedStringFromTable(@"OK", @"Localized", nil), NSLocalizedStringFromTable(@"Cancel", @"Localized", nil), nil,
364
364
                                  self.window, self,
365
365
                                  @selector(_endCommitWarnSheet:resultCode:context:),NULL,
366
366
                                  files, 
367
                                  @"%i file(s) you're trying to check in have not yet "
368
                                  "been added to the repository (status is '?'). These won't be checked in. Proceed anyway?",
367
                                  NSLocalizedStringFromTable(@"%i file(s) you're trying to check in have not yet "
368
															 "been added to the repository (status is '?'). These won't be checked in. Proceed anyway?", @"Localized", nil),
369
369
                                  unknown.count);
370
370
    }
371
371
}
@@ -427,24 +427,24 @@ static NSString* kTransferOpTitle[] = {@
427
427
    NSString *defaultURL, *desc;
428
428
    switch( op ) {
429
429
        case kHgPush: 
430
            desc = @"Push revisions to repository at URL/file:";
430
            desc = NSLocalizedStringFromTable(@"Push revisions to repository at URL/file:", @"Localized", nil);
431
431
            defaultURL = [_repo.configFile valueForKey: @"default-push" inStanza: @"paths"];
432
432
            if( ! defaultURL )
433
433
                defaultURL = [_repo.configFile valueForKey: @"default" inStanza: @"paths"];
434
434
            break;
435
435
        case kHgPull: 
436
            desc = @"Pull revisions from repository at URL/file:";
436
            desc = NSLocalizedStringFromTable(@"Pull revisions from repository at URL/file:", @"Localized", nil);
437
437
            defaultURL = [_repo.configFile valueForKey: @"default" inStanza: @"paths"];
438
438
            break;
439
439
        case kHgClone:
440
            desc = @"Clone repository to URL/file:";
440
            desc = NSLocalizedStringFromTable(@"Clone repository to URL/file:", @"Localized", nil);
441
441
            defaultURL = _repo.absolutePath;
442
442
            if( [defaultURL hasSuffix: @"/"] )
443
443
                defaultURL = [defaultURL substringToIndex: defaultURL.length-1];
444
444
            defaultURL = [defaultURL stringByAppendingString: @"_clone"];
445
445
            break;
446
446
        default:
447
            Assert(NO,@"Invalid op %i",op);
447
            Assert(NO,NSLocalizedStringFromTable(@"Invalid op %i", @"Localized", nil),op);
448
448
            return;
449
449
    }
450
450
    [_pushURLField setStringValue: (defaultURL ?:@"")];
@@ -555,11 +555,11 @@ static NSString* kTransferOpTitle[] = {@
555
555
{
556
556
    NSArray *files = self._uncommittedSelectedFiles;
557
557
    if( files )
558
        NSBeginCriticalAlertSheet(@"Remove files from repository?",
559
                                  @"Remove", @"Cancel", nil,
558
        NSBeginCriticalAlertSheet(NSLocalizedStringFromTable(@"Remove files from repository?", @"Localized", nil),
559
                                  NSLocalizedStringFromTable(@"Remove", @"Localized", nil), NSLocalizedStringFromTable(@"Cancel", @"Localized", nil), nil,
560
560
                                  self.window,self,
561
561
                                  @selector(_removeSheetDidEnd:returnCode:context:), NULL, files,
562
                                  @"Are you sure you want to remove the selected files from the repository?");
562
                                  NSLocalizedStringFromTable(@"Are you sure you want to remove the selected files from the repository?", @"Localized", nil));
563
563
}
564
564
565
565
- (void) _removeSheetDidEnd: (NSPanel*)sheet returnCode: (int)returnCode context: (void*)context
@@ -578,11 +578,11 @@ static NSString* kTransferOpTitle[] = {@
578
578
{
579
579
    NSArray *files = self._uncommittedSelectedFiles;
580
580
    if( files )
581
        NSBeginCriticalAlertSheet(@"Discard file changes?",
582
                                  @"Discard", @"Cancel", nil,
581
        NSBeginCriticalAlertSheet(NSLocalizedStringFromTable(@"Discard file changes?", @"Localized", nil),
582
                                  NSLocalizedStringFromTable(@"Discard", @"Localized", nil), NSLocalizedStringFromTable(@"Cancel", @"Localized", nil), nil,
583
583
                                  self.window,self,
584
584
                                  @selector(_discardSheetDidEnd:returnCode:context:), NULL, files,
585
                                  @"Are you sure you want to discard all uncommitted changes to the selected files?");
585
                                  NSLocalizedStringFromTable(@"Are you sure you want to discard all uncommitted changes to the selected files?", @"Localized", nil));
586
586
}
587
587
588
588
- (void) _discardSheetDidEnd: (NSPanel*)sheet returnCode: (int)returnCode context: (void*)context
@@ -610,7 +610,7 @@ static NSString* kTransferOpTitle[] = {@
610
610
    NSString *output;
611
611
    if( [_repo updateToRevision: rev output: &output error: &error] ) {
612
612
        if( ! output ) output = @"";
613
        NSBeginInformationalAlertSheet(@"Update Completed",
613
        NSBeginInformationalAlertSheet(NSLocalizedStringFromTable(@"Update Completed", @"Localized", nil),
614
614
                                       nil, nil, nil, self.window, nil, NULL, NULL, NULL,
615
615
                                       @"%@", output);
616
616
    } else        
@@ -631,11 +631,11 @@ static NSString* kTransferOpTitle[] = {@
631
631
        NSBeep();
632
632
        return;
633
633
    }
634
    NSBeginCriticalAlertSheet(@"Update to revision?",
635
                              @"Update", @"Cancel", nil,
634
    NSBeginCriticalAlertSheet(NSLocalizedStringFromTable(@"Update to revision?",@"Localized", nil),
635
                              NSLocalizedStringFromTable(@"Update", @"Localized", nil), NSLocalizedStringFromTable(@"Cancel", @"Localized", nil), nil,
636
636
                              self.window,self,
637
637
                              @selector(_updateSheetDidEnd:returnCode:context:), NULL, rev,
638
                              @"Are you sure you want to update the source tree to revision %i?",
638
                              NSLocalizedStringFromTable(@"Are you sure you want to update the source tree to revision %i?", @"Localized", nil),
639
639
                              rev.localNumber);
640
640
}
641
641

Up to file-list Source/RevisionGraphColumn.m:

@@ -26,8 +26,8 @@ enum {
26
26
27
27
- (BOOL) _addLineFrom: (unsigned)rev0 to: (unsigned)rev1
28
28
{
29
    Assert(rev0>=0&&rev0<_nRevisions,@"bad rev0: %i",rev0);
30
    Assert(rev1>rev0&&rev1<_nRevisions,@"bad rev1: %i",rev1);
29
    Assert(rev0>=0&&rev0<_nRevisions,NSLocalizedStringFromTable(@"bad rev0: %i", @"Localized", nil),rev0);
30
    Assert(rev1>rev0&&rev1<_nRevisions,NSLocalizedStringFromTable(@"bad rev1: %i", @"Localized", nil),rev1);
31
31
    
32
32
    UInt64 used = 0;
33
33
    for( unsigned r=rev0+1; r<rev1; r++ )
@@ -149,7 +149,7 @@ static void drawCorner( float x0, float
149
149
{
150
150
    if( revNo >= _nRevisions )
151
151
        return;
152
    Assert(revNo>=0, @"Illegal revision number %i",revNo);
152
    Assert(revNo>=0, NSLocalizedStringFromTable(@"Illegal revision number %i", @"Localized", nil),revNo);
153
153
    
154
154
    [[NSColor blackColor] set];
155
155
    
@@ -226,7 +226,7 @@ static void drawCorner( float x0, float
226
226
        BOOL first = YES;
227
227
        for( int x=0; x<_maxWidth; x++ ) {
228
228
            int n = _array[r*_maxWidth + x];
229
            Assert(n>=0 && n<8,@"Illegal n=%i",n);
229
            Assert(n>=0 && n<8,NSLocalizedStringFromTable(@"Illegal n=%i", @"Localized", nil),n);
230
230
            if( first ) {
231
231
                putchar(kAsciiGraphic[n]);
232
232
                if( n & kDotMask )

Up to file-list Source/URLFormatter.m:

43
43
    } else if( [str hasPrefix: @"/"] ) {
44
44
        *obj = [NSURL fileURLWithPath: str];
45
45
        if( ! *obj )
46
            error = @"Invalid filesystem path";
46
            error = NSLocalizedStringFromTable(@"Invalid filesystem path", @"Localized", nil);
47
47
    } else {
48
48
        NSURL *url = [NSURL URLWithString: str];
49
49
        NSString *scheme = [url scheme];
57
57
                url = nil;
58
58
        }
59
59
        if( ! url || ! [url path] || url.host.length==0 ) {
60
            error = @"Invalid URL";
60
            error = NSLocalizedStringFromTable(@"Invalid URL", @"Localized", nil);
61
61
        } else if( _allowedSchemes && ! [_allowedSchemes containsObject: scheme] ) {
62
            error = [@"URL protocol must be %@" stringByAppendingString:
62
            error = [NSLocalizedStringFromTable(@"URL protocol must be %@", @"Localized", nil) stringByAppendingString:
63
63
                                    [_allowedSchemes componentsJoinedByString: @", "]];
64
64
        }
65
65
        *obj = url;