diff --git a/app/src/processing/app/Language.java b/app/src/processing/app/Language.java
index c7a183ac9..e18fb3aa2 100644
--- a/app/src/processing/app/Language.java
+++ b/app/src/processing/app/Language.java
@@ -87,6 +87,7 @@ public class Language {
static private String[] listSupported() {
// List of languages in alphabetical order. (Add yours here.)
+ // Also remember to add it to the corresponding build/build.xml rule.
final String[] SUPPORTED = {
"de", // German, Deutsch
"en", // English
@@ -147,6 +148,7 @@ public class Language {
} catch (Exception e) {
e.printStackTrace();
}
+ Base.getPlatform().saveLanguage(language);
}
diff --git a/app/src/processing/app/Platform.java b/app/src/processing/app/Platform.java
index c5248ec51..4144d3905 100644
--- a/app/src/processing/app/Platform.java
+++ b/app/src/processing/app/Platform.java
@@ -74,6 +74,7 @@ public class Platform {
}
}
+ public void saveLanguage(String languageCode) {}
public void init(Base base) {
this.base = base;
@@ -216,4 +217,4 @@ public class Platform {
null);
}
*/
-}
\ No newline at end of file
+}
diff --git a/app/src/processing/app/platform/MacPlatform.java b/app/src/processing/app/platform/MacPlatform.java
index 0407fdc6f..0c7a911c9 100644
--- a/app/src/processing/app/platform/MacPlatform.java
+++ b/app/src/processing/app/platform/MacPlatform.java
@@ -24,6 +24,7 @@ package processing.app.platform;
import java.io.File;
import java.io.FileNotFoundException;
+import java.io.IOException;
import com.apple.eio.FileManager;
@@ -47,6 +48,18 @@ public class MacPlatform extends Platform {
}
*/
+ public void saveLanguage(String language) {
+ String[] cmdarray = new String[]{
+ "defaults", "write",
+ System.getProperty("user.home") + "/Library/Preferences/org.processing.app",
+ "AppleLanguages", "-array", language
+ };
+ try {
+ Runtime.getRuntime().exec(cmdarray);
+ } catch (IOException e) {
+ Base.log("Error saving platform language: " + e.getMessage());
+ }
+ }
public void init(Base base) {
super.init(base);
@@ -205,4 +218,4 @@ public class MacPlatform extends Platform {
protected String getDocumentsFolder() throws FileNotFoundException {
return FileManager.findFolder(kUserDomain, kDocumentsFolderType);
}
-}
\ No newline at end of file
+}
diff --git a/build/build.xml b/build/build.xml
index af06d752f..614b9d817 100755
--- a/build/build.xml
+++ b/build/build.xml
@@ -496,6 +496,8 @@
value="macosx/work/Processing.app/Contents/Java" />
+
+
diff --git a/build/macosx/language_gen.py b/build/macosx/language_gen.py
new file mode 100755
index 000000000..6a55283f2
--- /dev/null
+++ b/build/macosx/language_gen.py
@@ -0,0 +1,26 @@
+#!/usr/bin/python
+
+import os, re
+
+BASEDIR = os.path.dirname(os.path.realpath(__file__))
+
+def supported_languages():
+ path = "../../app/src/processing/app/languages/languages.txt"
+ with open(os.path.join(BASEDIR, path)) as f:
+ lines = f.read().splitlines()
+
+ lines = filter(lambda l: re.match(r'^[a-z]{2}', l), lines)
+ lines = map(lambda l: re.sub(r'#.*', '', l).strip(), lines)
+ return lines
+
+def lproj_directory(lang):
+ path = "work/Processing.app/Contents/Resources/{}.lproj".format(lang)
+ return os.path.join(BASEDIR, path)
+
+
+if __name__ == "__main__":
+ for lang in supported_languages():
+ try:
+ os.mkdir(lproj_directory(lang))
+ except OSError:
+ pass