]> git.lyx.org Git - lyx.git/blobdiff - src/LyXRC.cpp
EmbeddedObjects.lyx, Math.lyx, UserGuide.lyx: Spanish translation updates by Ignacio
[lyx.git] / src / LyXRC.cpp
index 42caf22a3f5687fcd683b71bf45503c2f7c92f9c..5750607a1f8193abe354f5a13edbff4c2fd83433 100644 (file)
@@ -3,11 +3,11 @@
  * This file is part of LyX, the document processor.
  * Licence details can be found in the file COPYING.
  *
- * \author Lars Gullik Bjønnes
+ * \author Lars Gullik Bjønnes
  * \author Jean-Marc Lasgouttes
  * \author Angus Leeming
  * \author John Levon
- * \author André Pönitz
+ * \author André Pönitz
  * \author Allan Rae
  * \author Dekel Tsur
  *
 
 #include "Color.h"
 #include "Converter.h"
+#include "FontEnums.h"
 #include "Format.h"
-#include "Session.h"
 #include "Lexer.h"
-#include "FontEnums.h"
 #include "Mover.h"
+#include "Session.h"
+#include "version.h"
 
 #include "graphics/GraphicsTypes.h"
 
@@ -95,6 +96,7 @@ LexerKeyword lyxrcTags[] = {
        { "\\fullscreen_toolbars", LyXRC::RC_FULL_SCREEN_TOOLBARS },
        { "\\fullscreen_width", LyXRC::RC_FULL_SCREEN_WIDTH },
        { "\\group_layouts", LyXRC::RC_GROUP_LAYOUTS },
+       { "\\gui_language", LyXRC::RC_GUI_LANGUAGE },
        { "\\index_command", LyXRC::RC_INDEX_COMMAND },
        { "\\input", LyXRC::RC_INPUT },
        { "\\kbmap", LyXRC::RC_KBMAP },
@@ -110,10 +112,12 @@ LexerKeyword lyxrcTags[] = {
        { "\\language_package", LyXRC::RC_LANGUAGE_PACKAGE },
        { "\\language_use_babel", LyXRC::RC_LANGUAGE_USE_BABEL },
        { "\\load_session", LyXRC::RC_LOADSESSION },
+       { "\\mac_like_word_movement", LyXRC::RC_MAC_LIKE_WORD_MOVEMENT },
        { "\\macro_edit_style", LyXRC::RC_MACRO_EDIT_STYLE },
        { "\\make_backup", LyXRC::RC_MAKE_BACKUP },
        { "\\mark_foreign_language", LyXRC::RC_MARK_FOREIGN_LANGUAGE },
        { "\\mouse_wheel_speed", LyXRC::RC_MOUSE_WHEEL_SPEED },
+       { "\\nomencl_command", LyXRC::RC_NOMENCL_COMMAND },
        { "\\num_lastfiles", LyXRC::RC_NUMLASTFILES },
        { "\\open_buffers_in_tabs", LyXRC::RC_OPEN_BUFFERS_IN_TABS },
        { "\\path_prefix", LyXRC::RC_PATH_PREFIX },
@@ -161,6 +165,7 @@ LexerKeyword lyxrcTags[] = {
        { "\\template_path", LyXRC::RC_TEMPLATEPATH },
        { "\\tex_allows_spaces", LyXRC::RC_TEX_ALLOWS_SPACES },
        { "\\tex_expects_windows_paths", LyXRC::RC_TEX_EXPECTS_WINDOWS_PATHS },
+       { "\\thesaurusdir_path", LyXRC::RC_THESAURUSDIRPATH },
        { "\\ui_file", LyXRC::RC_UIFILE },
        { "\\use_alt_language", LyXRC::RC_USE_ALT_LANG },
        { "\\use_converter_cache", LyXRC::RC_USE_CONVERTER_CACHE },
@@ -171,7 +176,6 @@ LexerKeyword lyxrcTags[] = {
        { "\\use_pixmap_cache", LyXRC::RC_USE_PIXMAP_CACHE },
        // compatibility with versions older than 1.4.0 only
        { "\\use_pspell", LyXRC::RC_USE_SPELL_LIB },
-       { "\\use_spell_lib", LyXRC::RC_USE_SPELL_LIB },
        // compatibility with versions older than 1.4.0 only
        { "\\use_tempdir", LyXRC::RC_USETEMPDIR },
        { "\\use_tooltip", LyXRC::RC_USE_TOOLTIP },
@@ -224,6 +228,7 @@ void LyXRC::setDefaults()
        bibtex_command = "bibtex";
        fontenc = "default";
        index_command = "makeindex -c -q";
+       nomencl_command = "makeindex -s nomencl.ist";
        dpi = 75;
        // Because a screen typically is wider than a piece of paper:
        zoom = 150;
@@ -254,15 +259,13 @@ void LyXRC::setDefaults()
        load_session = false;
        make_backup = true;
        backupdir_path.erase();
-       display_graphics = graphics::ColorDisplay;
+       display_graphics = true;
        // Spellchecker settings:
-       use_spell_lib = true;
-       isp_command = "ispell";
-       isp_accept_compound = false;
-       isp_use_input_encoding = false;
-       isp_use_alt_lang = false;
-       isp_use_pers_dict = false;
-       isp_use_esc_chars = false;
+       spellchecker_accept_compound = false;
+       spellchecker_use_input_encoding = false;
+       spellchecker_use_alt_lang = false;
+       spellchecker_use_pers_dict = false;
+       spellchecker_use_esc_chars = false;
        use_kbmap = false;
        rtl_support = true;
        visual_cursor = false;
@@ -278,11 +281,13 @@ void LyXRC::setDefaults()
        sort_layouts = false;
        group_layouts = true;
        default_language = "english";
+       gui_language = "auto";
        show_banner = true;
        windows_style_tex_paths = false;
        tex_allows_spaces = false;
        date_insert_format = "%x";
        cursor_follows_scrollbar = false;
+       mac_like_word_movement = false;
        macro_edit_style = MACRO_EDIT_INLINE_BOX;
        dialogs_iconify_with_main = false;
        label_init_length = 3;
@@ -365,7 +370,8 @@ int LyXRC::read(istream & is)
 
 int LyXRC::read(Lexer & lexrc)
 {
-       if (!lexrc.isOK()) return -2;
+       if (!lexrc.isOK())
+               return -2;
 
        while (lexrc.isOK()) {
                // By using two switches we take advantage of the compiler
@@ -382,7 +388,8 @@ int LyXRC::read(Lexer & lexrc)
                        continue;
                case Lexer::LEX_FEOF:
                        continue;
-               default: break;
+               default:
+                       break;
                }
                switch (static_cast<LyXRCTags>(le)) {
                case RC_INPUT: // Include file
@@ -397,21 +404,18 @@ int LyXRC::read(Lexer & lexrc)
                        }
                        break;
                case RC_BINDFILE:
-                       if (lexrc.next()) {
+                       if (lexrc.next())
                                bind_file = os::internal_path(lexrc.getString());
-                       }
                        break;
 
                case RC_DEFFILE:
-                       if (lexrc.next()) {
+                       if (lexrc.next())
                                def_file = os::internal_path(lexrc.getString());
-                       }
                        break;
 
                case RC_UIFILE:
-                       if (lexrc.next()) {
+                       if (lexrc.next())
                                ui_file = os::internal_path(lexrc.getString());
-                       }
                        break;
 
                case RC_AUTORESET_OPTIONS:
@@ -420,7 +424,7 @@ int LyXRC::read(Lexer & lexrc)
 
                case RC_DISPLAY_GRAPHICS:
                        if (lexrc.next())
-                               display_graphics = graphics::displayTranslator().find(lexrc.getString());
+                               display_graphics = lexrc.getString() == "true";
                        break;
 
                case RC_TEX_EXPECTS_WINDOWS_PATHS:
@@ -600,6 +604,12 @@ int LyXRC::read(Lexer & lexrc)
                        }
                        break;
 
+               case RC_NOMENCL_COMMAND:
+                       if (lexrc.next(true)) {
+                               nomencl_command = lexrc.getString();
+                       }
+                       break;
+
                case RC_SCREEN_DPI:
                        lexrc >> dpi;
                        break;
@@ -661,9 +671,16 @@ int LyXRC::read(Lexer & lexrc)
                        }
                        break;
 
+               case RC_THESAURUSDIRPATH:
+                       if (lexrc.next()) {
+                               thesaurusdir_path = os::internal_path(lexrc.getString());
+                               thesaurusdir_path = expandPath(thesaurusdir_path);
+                       }
+                       break;
+
                case RC_USETEMPDIR:
                        if (lexrc.next())
-                               lyxerr << "Ignoring obsolete use_tempdir flag." << endl;
+                               LYXERR0("Ignoring obsolete use_tempdir flag.");
                        break;
 
                case RC_USELASTFILEPOS:
@@ -757,23 +774,18 @@ int LyXRC::read(Lexer & lexrc)
                        lexrc >> typewriter_font_foundry;
                        break;
 
-               case RC_SET_COLOR:
-               {
-                       string lyx_name, x11_name;
-
-                       if (lexrc.next()) {
-                               lyx_name = lexrc.getString();
-                       } else {
+               case RC_SET_COLOR: {
+                       if (!lexrc.next()) {
                                lexrc.printError("Missing color tag.");
                                break;
                        }
+                       string lyx_name = lexrc.getString();
 
-                       if (lexrc.next()) {
-                               x11_name = lexrc.getString();
-                       } else {
+                       if (!lexrc.next()) {
                                lexrc.printError("Missing color name for color: `$$Token'");
                                break;
                        }
+                       string x11_name = lexrc.getString();
 
                        ColorCode const col =
                                lcolor.getFromLyXName(lyx_name);
@@ -782,13 +794,11 @@ int LyXRC::read(Lexer & lexrc)
                            col == Color_ignore)
                                break;
 
-                       if (!lcolor.setColor(col, x11_name)) {
-                               lyxerr << "Bad lyxrc set_color for "
-                                       << lyx_name << endl;
-
-                       }
+                       if (!lcolor.setColor(col, x11_name))
+                               LYXERR0("Bad lyxrc set_color for " << lyx_name);
                        break;
                }
+
                case RC_AUTOREGIONDELETE:
                        // Auto region delete defaults to true
                        lexrc >> auto_region_delete;
@@ -805,6 +815,10 @@ int LyXRC::read(Lexer & lexrc)
                        lexrc >> cursor_follows_scrollbar;
                        break;
 
+               case RC_MAC_LIKE_WORD_MOVEMENT:
+                       lexrc >> mac_like_word_movement;
+                       break;
+
                case RC_MACRO_EDIT_STYLE:
                        if (lexrc.next()) {
                                switch (lexrc.getInteger()) {
@@ -819,34 +833,24 @@ int LyXRC::read(Lexer & lexrc)
                        lexrc >> dialogs_iconify_with_main;
                        break;
 
-               case RC_PLAINTEXT_ROFF_COMMAND:
-                       if (lexrc.next(true)) {
-                               plaintext_roff_command = lexrc.getString();
-                       }
+               case RC_PLAINTEXT_ROFF_COMMAND: 
+                       (void) lexrc.getString(); // Obsoleted in 2.0
                        break;
                case RC_PLAINTEXT_LINELEN:
                        lexrc >> plaintext_linelen;
                        break;
                        // Spellchecker settings:
-               case RC_USE_SPELL_LIB:
-                       lexrc >> use_spell_lib;
-                       break;
-               case RC_SPELL_COMMAND:
-                       if (lexrc.next(true)) {
-                               isp_command = lexrc.getString();
-                       }
-                       break;
                case RC_ACCEPT_COMPOUND:
-                       lexrc >> isp_accept_compound;
+                       lexrc >> spellchecker_accept_compound;
                        break;
                case RC_USE_INP_ENC:
-                       lexrc >> isp_use_input_encoding;
+                       lexrc >> spellchecker_use_input_encoding;
                        break;
                case RC_USE_ALT_LANG:
-                       lexrc >> isp_use_alt_lang;
+                       lexrc >> spellchecker_use_alt_lang;
                        break;
                case RC_USE_PERS_DICT:
-                       lexrc >> isp_use_pers_dict;
+                       lexrc >> spellchecker_use_pers_dict;
                        break;
                case RC_USE_TOOLTIP:
                        lexrc >> use_tooltip;
@@ -855,17 +859,17 @@ int LyXRC::read(Lexer & lexrc)
                        lexrc >> use_pixmap_cache;
                        break;
                case RC_USE_ESC_CHARS:
-                       lexrc >> isp_use_esc_chars;
+                       lexrc >> spellchecker_use_esc_chars;
                        break;
                case RC_ALT_LANG:
-                       lexrc >> isp_alt_lang;
+                       lexrc >> spellchecker_alt_lang;
                        break;
                case RC_PERS_DICT:
                        if (lexrc.next())
-                               isp_pers_dict = os::internal_path(lexrc.getString());
+                               spellchecker_pers_dict = os::internal_path(lexrc.getString());
                        break;
                case RC_ESC_CHARS:
-                       lexrc >> isp_esc_chars;
+                       lexrc >> spellchecker_esc_chars;
                        break;
                case RC_MAKE_BACKUP:
                        lexrc >> make_backup;
@@ -918,30 +922,24 @@ int LyXRC::read(Lexer & lexrc)
 
                case RC_COPIER: {
                        string fmt, command;
-                       if (lexrc.next()) {
+                       if (lexrc.next())
                                fmt = lexrc.getString();
-                       }
-                       if (lexrc.next(true)) {
+                       if (lexrc.next(true))
                                command = lexrc.getString();
-                       }
                        setMover(fmt, command);
                        break;
                }
 
                case RC_CONVERTER: {
                        string from, to, command, flags;
-                       if (lexrc.next()) {
+                       if (lexrc.next())
                                from = lexrc.getString();
-                       }
-                       if (lexrc.next()) {
+                       if (lexrc.next())
                                to = lexrc.getString();
-                       }
-                       if (lexrc.next(true)) {
+                       if (lexrc.next(true))
                                command = lexrc.getString();
-                       }
-                       if (lexrc.next()) {
+                       if (lexrc.next())
                                flags = lexrc.getString();
-                       }
                        if (command.empty())
                                theConverters().erase(from, to);
                        else
@@ -987,13 +985,13 @@ int LyXRC::read(Lexer & lexrc)
                                else if (flag == "vector")
                                        flgs |= Format::vector;
                                else
-                                       lyxerr << "Ignoring unknown flag `"
+                                       LYXERR0("Ignoring unknown flag `"
                                               << flag << "' for format `"
-                                              << format << "'." << endl;
+                                              << format << "'.");
                        }
                        if (prettyname.empty()) {
                                if (theConverters().formatIsUsed(format))
-                                       LYXERR0( "Can't delete format " << format);
+                                       LYXERR0("Can't delete format " << format);
                                else
                                        formats.erase(format);
                        } else {
@@ -1006,6 +1004,10 @@ int LyXRC::read(Lexer & lexrc)
                        lexrc >> default_language;
                        break;
 
+               case RC_GUI_LANGUAGE:
+                       lexrc >> gui_language;
+                       break;
+
                case RC_LABEL_INIT_LENGTH:
                        lexrc >> label_init_length;
                        break;
@@ -1024,9 +1026,8 @@ int LyXRC::read(Lexer & lexrc)
                                else {
                                        preview = PREVIEW_OFF;
                                        if (tmp != "false" && tmp != "off")
-                                               lyxerr << "Unrecognized "
-                                                       "preview status \""
-                                                      << tmp << '\n' << endl;
+                                               LYXERR0("Unrecognized preview status \""
+                                                      << tmp << '\n');
                                }
                        }
                        break;
@@ -1082,6 +1083,12 @@ int LyXRC::read(Lexer & lexrc)
                        lexrc >> open_buffers_in_tabs;
                        break;
 
+               // Obsoleted in 2.0
+               case RC_SPELL_COMMAND:
+               case RC_USE_SPELL_LIB:
+                       (void) lexrc.getString();
+                       break;
+
                case RC_LAST:
                        break; // this is just a dummy
                }
@@ -1152,8 +1159,9 @@ void LyXRC::write(ostream & os, bool ignore_system_lyxrc, string const & name) c
        }
 
        if (tag == RC_LAST)
-               os << "# This file is written by LyX, if you want to make your own\n"
-                  << "# modifications you should do them from inside LyX and save\n"
+               os << "# LyX " << lyx_version
+                  << " generated this file. If you want to make your own\n"
+                  << "# modifications you should do them from inside LyX and save.\n"
                   << "\n";
 
        // Why the switch you might ask. It is a trick to ensure that all
@@ -1239,10 +1247,9 @@ void LyXRC::write(ostream & os, bool ignore_system_lyxrc, string const & name) c
                if (ignore_system_lyxrc ||
                    display_graphics != system_lyxrc.display_graphics) {
                        os << "# Display graphics within LyX\n"
-                          << "# monochrome|grayscale|color|none\n"
+                          << "# true|false\n"
                           << "\\display_graphics "
-                          << graphics::displayTranslator().find(
-                                graphics::DisplayType(display_graphics))
+                          << (display_graphics ? "true" : "false")
                           << '\n';
                }
                if (tag != RC_LAST)
@@ -1325,6 +1332,13 @@ void LyXRC::write(ostream & os, bool ignore_system_lyxrc, string const & name) c
                }
                if (tag != RC_LAST)
                        break;
+       case RC_NOMENCL_COMMAND:
+               if (ignore_system_lyxrc ||
+                   nomencl_command != system_lyxrc.nomencl_command) {
+                       os << "\\nomencl_command \"" << escapeCommand(nomencl_command) << "\"\n";
+               }
+               if (tag != RC_LAST)
+                       break;
        case RC_TEX_EXPECTS_WINDOWS_PATHS:
                if (ignore_system_lyxrc ||
                    windows_style_tex_paths != system_lyxrc.windows_style_tex_paths) {
@@ -1498,6 +1512,15 @@ void LyXRC::write(ostream & os, bool ignore_system_lyxrc, string const & name) c
                }
                if (tag != RC_LAST)
                        break;
+       case RC_MAC_LIKE_WORD_MOVEMENT:
+               if (ignore_system_lyxrc ||
+                   mac_like_word_movement
+                   != system_lyxrc.mac_like_word_movement) {
+                       os << "\\mac_like_word_movement "
+                          << convert<string>(mac_like_word_movement) << '\n';
+               }
+               if (tag != RC_LAST)
+                       break;
        case RC_MACRO_EDIT_STYLE:
                if (ignore_system_lyxrc ||
                    macro_edit_style
@@ -1679,10 +1702,9 @@ void LyXRC::write(ostream & os, bool ignore_system_lyxrc, string const & name) c
        case RC_SET_COLOR:
                for (int i = 0; i < Color_ignore; ++i) {
                        ColorCode lc = static_cast<ColorCode>(i);
-
-                       string const col(lcolor.getX11Name(lc));
-                       if (ignore_system_lyxrc ||
-                           col != system_lcolor.getX11Name(lc)) {
+                       string const col = lcolor.getX11Name(lc);
+                       if (ignore_system_lyxrc
+                           || col != system_lcolor.getX11Name(lc)) {
                                os << "\\set_color \""
                                   << lcolor.getLyXName(lc) << "\" \""
                                   << col << "\"\n";
@@ -2025,10 +2047,21 @@ void LyXRC::write(ostream & os, bool ignore_system_lyxrc, string const & name) c
                }
                if (tag != RC_LAST)
                        break;
+       case RC_THESAURUSDIRPATH:
+               if (ignore_system_lyxrc ||
+                   thesaurusdir_path != system_lyxrc.thesaurusdir_path) {
+                       string const path = os::external_path(thesaurusdir_path);
+                       os << "\\thesaurusdir_path \"" << path << "\"\n";
+               }
+               if (tag != RC_LAST)
+                       break;
        case RC_USETEMPDIR:
                if (tag != RC_LAST)
                        break;
                // Ignore it
+       case RC_PLAINTEXT_ROFF_COMMAND: // Obsoleted in 2.0
+               if (tag != RC_LAST)
+                       break;
        case RC_PLAINTEXT_LINELEN:
                if (ignore_system_lyxrc ||
                    plaintext_linelen != system_lyxrc.plaintext_linelen) {
@@ -2056,76 +2089,58 @@ void LyXRC::write(ostream & os, bool ignore_system_lyxrc, string const & name) c
                   << "# PLAIN TEXT EXPORT SECTION ##############################\n"
                   << "#\n\n";
 
-       case RC_PLAINTEXT_ROFF_COMMAND:
-               if (ignore_system_lyxrc ||
-                   plaintext_roff_command != system_lyxrc.plaintext_roff_command) {
-                       os << "\\plaintext_roff_command \"" << escapeCommand(plaintext_roff_command)
-                          << "\"\n";
-               }
-               if (tag != RC_LAST)
-                       break;
-
                os << "\n#\n"
                   << "# SPELLCHECKER SECTION ##############################\n"
                   << "#\n\n";
-       case RC_USE_SPELL_LIB:
-               if (ignore_system_lyxrc ||
-                   use_spell_lib != system_lyxrc.use_spell_lib) {
-                       os << "\\use_spell_lib " << convert<string>(use_spell_lib) << '\n';
-               }
-               if (tag != RC_LAST)
-                       break;
        case RC_SPELL_COMMAND:
-               if (ignore_system_lyxrc ||
-                   isp_command != system_lyxrc.isp_command) {
-                       os << "\\spell_command \"" << escapeCommand(isp_command) << "\"\n";
-               }
+       case RC_USE_SPELL_LIB:
+               // Obsoleted in 2.0
                if (tag != RC_LAST)
                        break;
        case RC_ACCEPT_COMPOUND:
                if (ignore_system_lyxrc ||
-                   isp_accept_compound != system_lyxrc.isp_accept_compound) {
-                       os << "\\accept_compound " << convert<string>(isp_accept_compound)
+                   spellchecker_accept_compound != system_lyxrc.spellchecker_accept_compound) {
+                       os << "\\accept_compound " << convert<string>(spellchecker_accept_compound)
                           << '\n';
                }
                if (tag != RC_LAST)
                        break;
        case RC_USE_ALT_LANG:
                if (ignore_system_lyxrc ||
-                   isp_use_alt_lang != system_lyxrc.isp_use_alt_lang) {
-                       os << "\\use_alt_language " << convert<string>(isp_use_alt_lang)
+                   spellchecker_use_alt_lang != system_lyxrc.spellchecker_use_alt_lang) {
+                       os << "\\use_alt_language " << convert<string>(spellchecker_use_alt_lang)
                           << '\n';
                }
                if (tag != RC_LAST)
                        break;
        case RC_ALT_LANG:
                if (ignore_system_lyxrc ||
-                   isp_alt_lang != system_lyxrc.isp_alt_lang) {
-                       os << "\\alternate_language \"" << isp_alt_lang
+                   spellchecker_alt_lang != system_lyxrc.spellchecker_alt_lang) {
+                       os << "\\alternate_language \"" << spellchecker_alt_lang
                           << "\"\n";
                }
                if (tag != RC_LAST)
                        break;
        case RC_USE_ESC_CHARS:
                if (ignore_system_lyxrc ||
-                   isp_use_esc_chars != system_lyxrc.isp_use_esc_chars) {
-                       os << "\\use_escape_chars " << convert<string>(isp_use_esc_chars)
+                   spellchecker_use_esc_chars != system_lyxrc.spellchecker_use_esc_chars) {
+                       os << "\\use_escape_chars " << convert<string>(spellchecker_use_esc_chars)
                           << '\n';
                }
                if (tag != RC_LAST)
                        break;
        case RC_ESC_CHARS:
                if (ignore_system_lyxrc ||
-                   isp_esc_chars != system_lyxrc.isp_esc_chars) {
-                       os << "\\escape_chars \"" << isp_esc_chars << "\"\n";
+                   spellchecker_esc_chars != system_lyxrc.spellchecker_esc_chars) {
+                       os << "\\escape_chars \"" << spellchecker_esc_chars << "\"\n";
                }
                if (tag != RC_LAST)
                        break;
        case RC_USE_PERS_DICT:
                if (ignore_system_lyxrc ||
-                   isp_use_pers_dict != system_lyxrc.isp_use_pers_dict) {
+                   spellchecker_use_pers_dict != system_lyxrc.spellchecker_use_pers_dict) {
                        os << "\\use_personal_dictionary "
-                          << convert<string>(isp_use_pers_dict)
+                          << convert<string>(spellchecker_use_pers_dict)
                           << '\n';
                }
                if (tag != RC_LAST)
@@ -2145,18 +2160,18 @@ void LyXRC::write(ostream & os, bool ignore_system_lyxrc, string const & name) c
                           << '\n';
                }
        case RC_PERS_DICT:
-               if (isp_pers_dict != system_lyxrc.isp_pers_dict) {
-                       string const path = os::external_path(isp_pers_dict);
+               if (spellchecker_pers_dict != system_lyxrc.spellchecker_pers_dict) {
+                       string const path = os::external_path(spellchecker_pers_dict);
                        os << "\\personal_dictionary \"" << path << "\"\n";
                }
                if (tag != RC_LAST)
                        break;
        case RC_USE_INP_ENC:
                if (ignore_system_lyxrc ||
-                   isp_use_input_encoding
-                   != system_lyxrc.isp_use_input_encoding) {
+                   spellchecker_use_input_encoding
+                   != system_lyxrc.spellchecker_use_input_encoding) {
                        os << "\\use_input_encoding "
-                          << convert<string>(isp_use_input_encoding)
+                          << convert<string>(spellchecker_use_input_encoding)
                           << '\n';
                }
                if (tag != RC_LAST)
@@ -2280,6 +2295,13 @@ void LyXRC::write(ostream & os, bool ignore_system_lyxrc, string const & name) c
                }
                if (tag != RC_LAST)
                        break;
+       case RC_GUI_LANGUAGE:
+               if (ignore_system_lyxrc ||
+                   gui_language != system_lyxrc.gui_language) {
+                       os << "\\gui_language " << gui_language << '\n';
+               }
+               if (tag != RC_LAST)
+                       break;
 
                os << "\n#\n"
                   << "# FORMATS SECTION ##########################\n"
@@ -2461,6 +2483,10 @@ string const LyXRC::getDescription(LyXRCTags tag)
                str = _("LyX normally doesn't update the cursor position if you move the scrollbar. Set to true if you'd prefer to always have the cursor on screen.");
                break;
 
+       case RC_MAC_LIKE_WORD_MOVEMENT:
+               str = _("Use the Mac OS X conventions for the word-level cursor movement");
+               break;
+
        case RC_SHOW_MACRO_LABEL:
                str = _("Show a small box around a Math Macro with the macro name when the cursor is inside.");
                break;
@@ -2520,6 +2546,10 @@ string const LyXRC::getDescription(LyXRCTags tag)
                str = _("Define the options of makeindex (cf. man makeindex) or select an alternative compiler. E.g., using xindy/make-rules, the command string would be \"makeindex.sh -m $$lang\".");
                break;
 
+       case RC_NOMENCL_COMMAND:
+               str = _("Define the options of makeindex (cf. man makeindex) to be used for nomenclatures. This might differ from the index processing options.");
+               break;
+
        case RC_INPUT:
                break;
 
@@ -2635,7 +2665,7 @@ string const LyXRC::getDescription(LyXRCTags tag)
 
        case RC_PERS_DICT:
        case RC_USE_PERS_DICT:
-               str = _("Specify an alternate personal dictionary file. E.g. \".ispell_english\".");
+               str = _("Specify an alternate personal dictionary file. E.g. \".aspell_english\".");
                break;
 
        case RC_PREVIEW:
@@ -2773,14 +2803,14 @@ string const LyXRC::getDescription(LyXRCTags tag)
                str = _("De-select if you don't want the startup banner.");
                break;
 
-       case RC_SPELL_COMMAND:
-               str = _("What command runs the spellchecker?");
-               break;
-
        case RC_TEMPDIRPATH:
                str = _("LyX will place its temporary directories in this path. They will be deleted when you quit LyX.");
                break;
 
+       case RC_THESAURUSDIRPATH:
+               str = _("This is the place where the files of the thesaurus library reside.");
+               break;
+
        case RC_TEMPLATEPATH:
                str = _("The path that LyX will set when offering to choose a template. An empty value selects the directory LyX was started from.");
                break;
@@ -2805,7 +2835,7 @@ string const LyXRC::getDescription(LyXRCTags tag)
                break;
 
        case RC_USE_INP_ENC:
-               str = _("Specify whether to pass the -T input encoding option to ispell. Enable this if you cannot check the spelling of words containing accented letters. This may not work with all dictionaries.");
+               str = _("Specify whether to pass the -T input encoding option to aspell. Enable this if you cannot check the spelling of words containing accented letters. This may not work with all dictionaries.");
                break;
 
        case RC_USE_TOOLTIP: