*/
#include "bundle_env.h"
+#include "i18n.h"
#include <shlobj.h>
#include <stdlib.h>
#include <glibmm.h>
#include <glib/gstdio.h>
+#include <fontconfig/fontconfig.h>
+
#include "ardour/ardour.h"
#include "ardour/search_paths.h"
#include "ardour/filesystem_paths.h"
// Replace our token with the drive letter (and colon) for the user's Windows volume
str_replace_with = get_windows_drive_volume_letter();
+ // Replace the first occurrence of our token with the required string
+ i->erase(token_begin, ((token_end+1)-token_begin));
+ i->insert(token_begin, str_replace_with);
+ } else if (0 == str_to_replace.compare("$(LOCALCACHEDIR)")){
+ // Replace our token with the path to our Ardour cache directory
+ str_replace_with = user_cache_directory();
+
// Replace the first occurrence of our token with the required string
i->erase(token_begin, ((token_end+1)-token_begin));
i->insert(token_begin, str_replace_with);
i->insert(token_begin, str_replace_with);
} else {
error = true;
- cerr << "ERROR: unknown environment variable" << endl;
+ cerr << _("ERROR: unknown environment variable") << endl;
}
}
}
succeeded = false;
}
} else {
- cerr << "ERROR: Could not open config file '" << str_file_to_fix << "'" << endl;
+ cerr << _("ERROR: Could not open config file '") << str_file_to_fix << "'" << endl;
}
return succeeded;
fonts_conf_file += PROGRAM_NAME;
fonts_conf_file += FONTS_CONF_LOCATION;
#else
- if (PBD::find_file_in_search_path (ARDOUR::ardour_config_search_path(), "fonts.conf", fonts_conf_file)) {
+ if (PBD::find_file (ARDOUR::ardour_config_search_path(), "fonts.conf", fonts_conf_file)) {
#endif
Glib::setenv ("FONTCONFIG_FILE", fonts_conf_file, true);
if (0 == fixup_config_file (fonts_conf_file))
- cerr << "ERROR: processing error for 'fonts.conf' file" << endl;
+ cerr << _("ERROR: processing error for 'fonts.conf' file") << endl;
} else {
- cerr << "ERROR: Malformed module folder (fonts.conf)" << endl;
+ cerr << _("ERROR: Malformed module folder (fonts.conf)") << endl;
}
}
#endif
pango_modules_path.resize (pango_modules_path.size()-14); // Remove "/pango.modules" from the end
#else
- if (PBD::find_file_in_search_path (ARDOUR::ardour_config_search_path(), "pango.modules", pango_modules_file)) {
+ if (PBD::find_file (ARDOUR::ardour_config_search_path(), "pango.modules", pango_modules_file)) {
Glib::ustring pango_modules_path = pango_modules_file;
pango_modules_path.resize (pango_modules_path.size()-14); // Remove "/pango.modules" from the end
Glib::setenv ("PANGO_MODULE_PATH", Glib::filename_from_utf8(pango_modules_path), true);
if (0 == fixup_config_file (pango_modules_file))
- cerr << "ERROR: processing error for 'pango.modules' file" << endl;
+ cerr << _("ERROR: processing error for 'pango.modules' file") << endl;
} else {
- cerr << "ERROR: Malformed module folder (pango.modules)" << endl;
+ cerr << _("ERROR: Malformed module folder (pango.modules)") << endl;
}
}
gdk_pixbuf_loaders_file += PROGRAM_NAME;
gdk_pixbuf_loaders_file += PIXBUFLOADERS_CONF_LOCATION;
#else
- if (PBD::find_file_in_search_path (ARDOUR::ardour_config_search_path(), "gdk-pixbuf.loaders", gdk_pixbuf_loaders_file)) {
+ if (PBD::find_file (ARDOUR::ardour_config_search_path(), "gdk-pixbuf.loaders", gdk_pixbuf_loaders_file)) {
#endif
// Set an environment variable so we can find our pixbuf modules.
Glib::setenv ("GDK_PIXBUF_MODULE_FILE", Glib::filename_from_utf8(gdk_pixbuf_loaders_file), true);
if (0 == fixup_config_file (gdk_pixbuf_loaders_file))
- cerr << "ERROR: processing error for 'gdk-pixbuf.loaders' file" << endl;
+ cerr << _("ERROR: processing error for 'gdk-pixbuf.loaders' file") << endl;
} else {
- cerr << "ERROR: Malformed module folder (gdk-pixbuf.loaders)" << endl;
+ cerr << _("ERROR: Malformed module folder (gdk-pixbuf.loaders)") << endl;
}
}
clearlooks_la_file += PROGRAM_NAME;
clearlooks_la_file += CLEARLOOKS_CONF_LOCATION;
#else
- if (PBD::find_file_in_search_path (ARDOUR::ardour_config_search_path(), "libclearlooks.la", clearlooks_la_file)) {
+ if (PBD::find_file (ARDOUR::ardour_config_search_path(), "libclearlooks.la", clearlooks_la_file)) {
#endif
// Set an environment variable so we can find our clearlooks engine.
// Note that this requires a modified version of libgtk (gtkthemes.c)
Glib::setenv ("GTK_THEME_ENGINE_FILE", Glib::filename_from_utf8(clearlooks_la_file).c_str(), true);
if (0 == fixup_config_file (clearlooks_la_file))
- cerr << "ERROR: processing error for 'clearlooks.la' file" << endl;
+ cerr << _("ERROR: processing error for 'clearlooks.la' file") << endl;
} else {
- cerr << "ERROR: Malformed module folder (clearlooks.la)" << endl;
+ cerr << _("ERROR: Malformed module folder (clearlooks.la)") << endl;
}
}
path = windows_search_path().to_string();
path += "\\locale";
Glib::setenv ("GTK_LOCALEDIR", path, true);
+
+ // and return the same path to our caller
+ (*localedir) = strdup (path.c_str());
}
}
fixup_fonts_config();
- fixup_pango_config();
fixup_clearlooks_config();
+
+#ifdef DLL_PIXBUF_LOADERS
fixup_pixbuf_loaders_config();
+#endif
+#ifdef DLL_PANGO_MODULES
+ fixup_pango_config();
+#endif
}
void load_custom_fonts()
{
+ std::string ardour_mono_file;
+
+ if (!find_file (ardour_data_search_path(), "ArdourMono.ttf", ardour_mono_file)) {
+ cerr << _("Cannot find ArdourMono TrueType font") << endl;
+ }
+
+ FcConfig *config = FcInitLoadConfigAndFonts();
+ FcBool ret = FcConfigAppFontAddFile(config, reinterpret_cast<const FcChar8*>(ardour_mono_file.c_str()));
+
+ if (ret == FcFalse) {
+ cerr << _("Cannot load ArdourMono TrueType font.") << endl;
+ }
+
+ ret = FcConfigSetCurrent(config);
+
+ if (ret == FcFalse) {
+ cerr << _("Failed to set fontconfig configuration.") << endl;
+ }
}