Index: trunk/src/org/openstreetmap/josm/gui/MainApplication.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/MainApplication.java	(revision 8276)
+++ trunk/src/org/openstreetmap/josm/gui/MainApplication.java	(revision 8282)
@@ -381,5 +381,5 @@
         FontsManager.initialize();
 
-        handleSpecialLanguages();
+        I18n.setupLanguageFonts();
 
         final JFrame mainFrame = new JFrame(tr("Java OpenStreetMap Editor"));
@@ -502,18 +502,4 @@
             info("Enabled EDT checker, wrongful access to gui from non EDT thread will be printed to console");
             RepaintManager.setCurrentManager(new CheckThreadViolationRepaintManager());
-        }
-    }
-
-    private static void handleSpecialLanguages() {
-        // Use special font for Khmer script, as the default Java font do not display these characters
-        if ("km".equals(Main.pref.get("language"))) {
-            Collection<String> fonts = Arrays.asList(
-                    GraphicsEnvironment.getLocalGraphicsEnvironment().getAvailableFontFamilyNames());
-            for (String f : new String[]{"Khmer UI", "DaunPenh", "MoolBoran"}) {
-                if (fonts.contains(f)) {
-                    GuiHelper.setUIFont(f);
-                    break;
-                }
-            }
         }
     }
Index: trunk/src/org/openstreetmap/josm/gui/util/GuiHelper.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/util/GuiHelper.java	(revision 8276)
+++ trunk/src/org/openstreetmap/josm/gui/util/GuiHelper.java	(revision 8282)
@@ -48,4 +48,5 @@
 import org.openstreetmap.josm.tools.GBC;
 import org.openstreetmap.josm.tools.ImageProvider;
+import org.openstreetmap.josm.tools.LanguageInfo;
 
 /**
@@ -309,5 +310,5 @@
     public static Font getMonospacedFont(JComponent component) {
         // Special font for Khmer script
-        if ("km".equals(Main.pref.get("language"))) {
+        if ("km".equals(LanguageInfo.getJOSMLocaleCode())) {
             return component.getFont();
         } else {
@@ -329,5 +330,5 @@
         List<String> fonts = Arrays.asList(GraphicsEnvironment.getLocalGraphicsEnvironment().getAvailableFontFamilyNames());
         // Special font for Khmer script
-        if ("km".equals(Main.pref.get("language"))) {
+        if ("km".equals(LanguageInfo.getJOSMLocaleCode())) {
             return UIManager.getFont("Label.font").deriveFont(20.0f);
         }
Index: trunk/src/org/openstreetmap/josm/gui/widgets/JosmEditorPane.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/widgets/JosmEditorPane.java	(revision 8276)
+++ trunk/src/org/openstreetmap/josm/gui/widgets/JosmEditorPane.java	(revision 8282)
@@ -18,4 +18,5 @@
 import org.openstreetmap.josm.Main;
 import org.openstreetmap.josm.gui.util.GuiHelper;
+import org.openstreetmap.josm.tools.LanguageInfo;
 import org.openstreetmap.josm.tools.Utils;
 
@@ -104,5 +105,5 @@
         ss.addRule("ol {margin-left: 1cm; margin-top: 0.1cm; margin-bottom: 0.2cm; list-style-type: decimal}");
         ss.addRule("ul {margin-left: 1cm; margin-top: 0.1cm; margin-bottom: 0.2cm; list-style-type: disc}");
-        if ("km".equals(Main.pref.get("language"))) {
+        if ("km".equals(LanguageInfo.getJOSMLocaleCode())) {
             // Fix rendering problem for Khmer script
             ss.addRule("p {" + getFontRule(UIManager.getFont("Label.font")) + "}");
Index: trunk/src/org/openstreetmap/josm/tools/I18n.java
===================================================================
--- trunk/src/org/openstreetmap/josm/tools/I18n.java	(revision 8276)
+++ trunk/src/org/openstreetmap/josm/tools/I18n.java	(revision 8282)
@@ -2,4 +2,5 @@
 package org.openstreetmap.josm.tools;
 
+import java.awt.GraphicsEnvironment;
 import java.io.BufferedInputStream;
 import java.io.File;
@@ -26,4 +27,5 @@
 import org.openstreetmap.gui.jmapviewer.FeatureAdapter.TranslationAdapter;
 import org.openstreetmap.josm.Main;
+import org.openstreetmap.josm.gui.util.GuiHelper;
 import org.openstreetmap.josm.gui.widgets.AbstractFileChooser;
 
@@ -734,3 +736,22 @@
         };
     }
+
+    /**
+     * Setup special font for Khmer script, as the default Java font do not display these characters.
+     *
+     * @since 8281
+     */
+    public static void setupLanguageFonts() {
+        // Use special font for Khmer script, as the default Java font do not display these characters
+        if ("km".equals(LanguageInfo.getJOSMLocaleCode())) {
+            Collection<String> fonts = Arrays.asList(
+                    GraphicsEnvironment.getLocalGraphicsEnvironment().getAvailableFontFamilyNames());
+            for (String f : new String[]{"Khmer UI", "DaunPenh", "MoolBoran"}) {
+                if (fonts.contains(f)) {
+                    GuiHelper.setUIFont(f);
+                    break;
+                }
+            }
+        }
+    }
 }
