#include "lang.h"
#include "UserNode.h"
+#include "DBHelper.h"
#define DEFAULT_LANG_TAG "EN"
#define DEFAULT_LANG_NAME "English"
char *get_language_string(struct UserNode *user, const char* msg_ident) {
struct language* lang;
if((user->flags & USERFLAG_ISAUTHED)) {
- if(!(user->flags & USERFLAG_LOADED_SETTINGS))
- load_user_settings(user);
+ loadUserSettings(user);
lang = user->language;
} else
lang = lang_c;
}
return NULL;
}
+
+char *build_language_string(struct UserNode *user, char *buffer, const char *msg_ident, ...) {
+ char *formatStr = get_language_string(user, msg_ident);
+ if(!formatStr) return NULL;
+ if(buffer == NULL) {
+ buffer = (char *)malloc((MAXLEN+1) * sizeof(char));
+ if (!buffer) {
+ perror("malloc() failed");
+ return NULL;
+ }
+ }
+ int pos;
+ va_list arg_list;
+ buffer[0] = '\0';
+ va_start(arg_list, msg_ident);
+ pos = vsnprintf(buffer, MAXLEN - 2, formatStr, arg_list);
+ va_end(arg_list);
+ if (pos < 0 || pos > (MAXLEN - 2)) pos = MAXLEN - 2;
+ buffer[pos] = '\n';
+ buffer[pos+1] = '\0';
+ return buffer;
+}