# arch-tag: automatic-ChangeLog--srvx@srvx.net--2006/srvx--devo--1.3
#
+2006-10-27 01:06:02 GMT Michael Poole <mdpoole@troilus.org> patch-67
+
+ Summary:
+ Allow languages/strings.db to override builtin strings.
+ Revision:
+ srvx--devo--1.3--patch-67
+
+ src/helpfile.c (language_read): Add space before "parent".
+ (language_read_list): Explicitly skip the file named "strings.db".
+ (helpfile_read_languages): New function.
+ (helpfile_finalize): Register it as a conf-reload function.
+
+ modified files:
+ ChangeLog src/helpfile.c
+
+
2006-10-27 00:47:30 GMT Michael Poole <mdpoole@troilus.org> patch-66
Summary:
/* Read all the translations from the directory. */
while ((dirent = readdir(dir))) {
snprintf(filename, sizeof(filename), "languages/%s/%s", name, dirent->d_name);
- if (!strcmp(dirent->d_name,"parent")) {
+ if (!strcmp(dirent->d_name, "parent")) {
continue;
} else if (!strcmp(dirent->d_name, "strings.db")) {
dict = parse_database(filename);
if (dirent->d_name[0] == '.')
continue;
snprintf(namebuf, sizeof(namebuf), "languages/%s", dirent->d_name);
+ if (!strcmp(dirent->d_name, "strings.db")) {
+ continue;
+ }
if (stat(namebuf, &sbuf) < 0) {
log_module(MAIN_LOG, LOG_INFO, "Skipping language entry '%s' (unable to stat).", dirent->d_name);
continue;
language_read_list();
}
-void helpfile_finalize(void)
+static void helpfile_read_languages(void)
{
dict_iterator_t it;
+ dict_t dict;
+
+ language_read_list();
for (it = dict_first(languages); it; it = iter_next(it))
language_read(iter_key(it));
+
+ /* If the user has a strings.db in their languages directory,
+ * allow that to override C language strings.
+ */
+ dict = parse_database("languages/strings.db");
+ if (dict) {
+ language_set_messages(lang_C, dict);
+ free_database(dict);
+ }
+}
+
+void helpfile_finalize(void)
+{
+ conf_register_reload(helpfile_read_languages);
reg_exit_func(language_cleanup);
}