]> git.rm.cloudns.org Git - xonotic/xonotic-data.pk3dir.git/commitdiff
Add translation helpers to /lib
authorTimePath <andrew.hardaker1995@gmail.com>
Wed, 26 Aug 2015 23:33:56 +0000 (09:33 +1000)
committerTimePath <andrew.hardaker1995@gmail.com>
Wed, 26 Aug 2015 23:33:56 +0000 (09:33 +1000)
13 files changed:
qcsrc/client/hud.qc
qcsrc/client/scoreboard.qc
qcsrc/common/counting.qh [deleted file]
qcsrc/common/notifications.qc
qcsrc/common/util.qc
qcsrc/common/util.qh
qcsrc/lib/Counting.qh [new file with mode: 0644]
qcsrc/lib/I18N.qh [new file with mode: 0644]
qcsrc/lib/_all.inc
qcsrc/menu/xonotic/statslist.qc
qcsrc/server/command/common.qc
qcsrc/server/command/getreplies.qc
qcsrc/server/mutators/mutators_include.qc

index 7125739cff922cec08dad3f759463ca119b4f9d7..f623e2706849f4594fa3faaa18b287cb8f6259db 100644 (file)
@@ -12,7 +12,6 @@
 
 #include "../common/buffs.qh"
 #include "../common/constants.qh"
-#include "../common/counting.qh"
 #include "../common/deathtypes.qh"
 #include "../common/items/all.qc"
 #include "../common/mapinfo.qh"
index a24b9437902bd7659b20ff0c4833ce2a24ba41f8..1e2ef0baaafa0fc35ffd2c4130406a2adb176981 100644 (file)
@@ -5,7 +5,6 @@
 #include "sortlist.qh"
 
 #include "../common/constants.qh"
-#include "../common/counting.qh"
 #include "../common/mapinfo.qh"
 #include "../common/minigames/cl_minigames.qh"
 #include "../common/stats.qh"
diff --git a/qcsrc/common/counting.qh b/qcsrc/common/counting.qh
deleted file mode 100644 (file)
index f464cdc..0000000
+++ /dev/null
@@ -1,223 +0,0 @@
-#ifndef COUNTING_H
-#define COUNTING_H
-
-#include "util.qh"
-
-// ===============================================
-//  Time processing and counting functions/macros
-// ===============================================
-
-#define count_years_decs(time,decs) sprintf(ZCTX(_("CI_DEC^%s years")), ftos_decimals(time, decs))
-#define count_years(time) count_fill(time, \
-               ZCTX(_("CI_ZER^%d years")), /* zeroth */ \
-               ZCTX(_("CI_FIR^%d year")),  /* first */ \
-               ZCTX(_("CI_SEC^%d years")), /* year */ \
-               ZCTX(_("CI_THI^%d years")), /* third */ \
-               ZCTX(_("CI_MUL^%d years"))) /* multi */
-
-#define count_weeks_decs(time,decs) sprintf(ZCTX(_("CI_DEC^%s weeks")), ftos_decimals(time, decs))
-#define count_weeks(time) count_fill(time, \
-               ZCTX(_("CI_ZER^%d weeks")), /* zeroth */ \
-               ZCTX(_("CI_FIR^%d week")),  /* first */ \
-               ZCTX(_("CI_SEC^%d weeks")), /* week */ \
-               ZCTX(_("CI_THI^%d weeks")), /* third */ \
-               ZCTX(_("CI_MUL^%d weeks"))) /* multi */
-
-#define count_days_decs(time,decs) sprintf(ZCTX(_("CI_DEC^%s days")), ftos_decimals(time, decs))
-#define count_days(time) count_fill(time, \
-               ZCTX(_("CI_ZER^%d days")), /* zeroth */ \
-               ZCTX(_("CI_FIR^%d day")),  /* first */ \
-               ZCTX(_("CI_SEC^%d days")), /* day */ \
-               ZCTX(_("CI_THI^%d days")), /* third */ \
-               ZCTX(_("CI_MUL^%d days"))) /* multi */
-
-#define count_hours_decs(time,decs) sprintf(ZCTX(_("CI_DEC^%s hours")), ftos_decimals(time, decs))
-#define count_hours(time) count_fill(time, \
-               ZCTX(_("CI_ZER^%d hours")), /* zeroth */ \
-               ZCTX(_("CI_FIR^%d hour")),  /* first */ \
-               ZCTX(_("CI_SEC^%d hours")), /* hour */ \
-               ZCTX(_("CI_THI^%d hours")), /* third */ \
-               ZCTX(_("CI_MUL^%d hours"))) /* multi */
-
-
-#define count_minutes_decs(time,decs) sprintf(ZCTX(_("CI_DEC^%s minutes")), ftos_decimals(time, decs))
-#define count_minutes(time) count_fill(time, \
-               ZCTX(_("CI_ZER^%d minutes")), /* zeroth */ \
-               ZCTX(_("CI_FIR^%d minute")),  /* first */ \
-               ZCTX(_("CI_SEC^%d minutes")), /* minute */ \
-               ZCTX(_("CI_THI^%d minutes")), /* third */ \
-               ZCTX(_("CI_MUL^%d minutes"))) /* multi */
-
-#define count_seconds_decs(time,decs) sprintf(ZCTX(_("CI_DEC^%s seconds")), ftos_decimals(time, decs))
-#define count_seconds(time) count_fill(time, \
-               ZCTX(_("CI_ZER^%d seconds")), /* zeroth */ \
-               ZCTX(_("CI_FIR^%d second")),  /* first */ \
-               ZCTX(_("CI_SEC^%d seconds")), /* second */ \
-               ZCTX(_("CI_THI^%d seconds")), /* third */ \
-               ZCTX(_("CI_MUL^%d seconds"))) /* multi */
-
-string count_ordinal(int interval)
-{
-       // This function is designed primarily for the English language, it's impossible
-       // to accomodate all languages unless we do a specific function for each one...
-       // and since that's not technically feasible/practical, this is all we've got folks.
-
-       // Basically, it just allows you to represent a number or count in different ways
-       // depending on the number... like, with count_ordinal you can provide integers
-       // and retrieve 1st, 2nd, 3rd, nth ordinal numbers in a clean and simple way.
-       if(floor((interval % 100)/10) * 10 != 10) // examples: 12th, 111th, 213th will not execute this block
-       {
-               // otherwise, check normally for 1st,2nd,3rd insertions
-               switch(interval % 10)
-               {
-                       case 1: return sprintf(_("%dst"), interval);
-                       case 2: return sprintf(_("%dnd"), interval);
-                       case 3: return sprintf(_("%drd"), interval);
-                       default: return sprintf(_("%dth"), interval);
-               }
-       }
-       else { return sprintf(_("%dth"), interval); }
-
-       return "";
-}
-
-string count_fill(float interval, string zeroth, string first, string second, string third, string multi)
-{
-       // This function is designed primarily for the English language, it's impossible
-       // to accomodate all languages unless we do a specific function for each one...
-       // and since that's not technically feasible/practical, this is all we've got folks.
-
-       // Here you can insert specific strings based on the interval number, so you could do
-       // i.e. count_seconds which outputs like this:
-       //   0 seconds
-       //   1 second
-       //   2 seconds
-       //   3 seconds
-       //   etc... minutes, hours, days, etc.
-
-       switch(floor(interval))
-       {
-               case 0: return sprintf(zeroth, interval);
-               case 1:
-               {
-                       if(interval == 1) // EXACTLY value of 1
-                               return sprintf(first, interval);
-                       else
-                               return sprintf(multi, interval);
-               }
-               case 2: return sprintf(second, interval);
-               case 3: return sprintf(third, interval);
-               default: return sprintf(multi, interval);
-       }
-       return "";
-}
-
-string process_time(float outputtype, float seconds)
-{
-       float tmp_hours = 0, tmp_minutes = 0, tmp_seconds = 0;
-       float tmp_years = 0, tmp_weeks = 0, tmp_days = 0;
-
-       tmp_seconds = floor(seconds);
-
-       if(tmp_seconds)
-       {
-               tmp_minutes = floor(tmp_seconds / 60);
-
-               if(tmp_minutes)
-               {
-                       tmp_seconds -= (tmp_minutes * 60);
-                       tmp_hours = floor(tmp_minutes / 60);
-
-                       if(tmp_hours)
-                       {
-                               tmp_minutes -= (tmp_hours * 60);
-                               tmp_days = floor(tmp_hours / 24);
-
-                               if(tmp_days)
-                               {
-                                       tmp_hours -= (tmp_days * 24);
-                                       tmp_weeks = floor(tmp_days / 7);
-
-                                       if(tmp_weeks)
-                                       {
-                                               tmp_days -= (tmp_weeks * 7);
-                                               tmp_years = floor(tmp_weeks / 52);
-                                       }
-                               }
-                       }
-               }
-       }
-
-       switch(outputtype)
-       {
-               case 1: return sprintf("%02d:%02d:%02d", tmp_hours, tmp_minutes, tmp_seconds);
-               case 2:
-               {
-                       string output = "";
-
-                       output = count_seconds(tmp_seconds);
-
-                       if(tmp_minutes)
-                       {
-                               output = sprintf(
-                                       "%s%s",
-                                       count_minutes(tmp_minutes),
-                                       ((output != "") ? sprintf(", %s", output) : ""));
-                       }
-
-                       if(tmp_hours)
-                       {
-                               output = sprintf(
-                                       "%s%s",
-                                       count_hours(tmp_hours),
-                                       ((output != "") ? sprintf(", %s", output) : ""));
-                       }
-
-                       if(tmp_days)
-                       {
-                               output = sprintf(
-                                       "%s%s",
-                                       count_days(tmp_days),
-                                       ((output != "") ? sprintf(", %s", output) : ""));
-                       }
-
-                       if(tmp_weeks)
-                       {
-                               output = sprintf(
-                                       "%s%s",
-                                       count_weeks(tmp_weeks),
-                                       ((output != "") ? sprintf(", %s", output) : ""));
-                       }
-
-                       if(tmp_years)
-                       {
-                               output = sprintf(
-                                       "%s%s",
-                                       count_years(tmp_years),
-                                       ((output != "") ? sprintf(", %s", output) : ""));
-                       }
-
-                       return output;
-               }
-               case 3:
-               {
-                       string output = "";
-
-                       output = count_hours(tmp_hours);
-
-                       if(tmp_weeks) { tmp_days += (tmp_weeks * 7); }
-                       if(tmp_years) { tmp_days += (tmp_years * 365); }
-                       if(tmp_days)
-                       {
-                               output = sprintf(
-                                       "%s%s",
-                                       count_days(tmp_days),
-                                       ((output != "") ? sprintf(", %s", output) : ""));
-                       }
-
-                       return output;
-               }
-       }
-       return "";
-}
-#endif
index 31f7e864c0ac4a5579dff63d86a9ec49b6d3f205..2d4691021245085ca693016da1372ddb0838d7d6 100644 (file)
@@ -5,7 +5,6 @@
     #include "../dpdefs/dpextensions.qh"
     #include "constants.qh"
     #include "teams.qh"
-    #include "counting.qh"
     #include "../server/autocvars.qh"
     #include "../server/constants.qh"
     #include "../server/defs.qh"
index c1ae4ad1aa99f430e7227b7ed34aadb9e4e5d51e..56d64f5614ccf9e503afbd2c012c501f0cf55548 100644 (file)
@@ -2245,30 +2245,6 @@ float u8_strsize(string s)
        return l;
 }
 
-// translation helpers
-string language_filename(string s)
-{
-       string fn;
-       float fh;
-       fn = prvm_language;
-       if(fn == "" || fn == "dump")
-               return s;
-       fn = strcat(s, ".", fn);
-       if((fh = fopen(fn, FILE_READ)) >= 0)
-       {
-               fclose(fh);
-               return fn;
-       }
-       return s;
-}
-string CTX(string s)
-{
-       float p = strstrofs(s, "^", 0);
-       if(p < 0)
-               return s;
-       return substring(s, p+1, -1);
-}
-
 // x-encoding (encoding as zero length invisible string)
 const string XENCODE_2  = "xX";
 const string XENCODE_22 = "0123456789abcdefABCDEF";
index 995d882f6179b0cbad5425864b0ef8ebe22cbd19..87aa3351c7096fef68be94847aaa827ab9a50092 100644 (file)
@@ -223,12 +223,6 @@ float vercmp(string v1, string v2);
 
 float u8_strsize(string s);
 
-// translation helpers
-string prvm_language;
-string language_filename(string s);
-string CTX(string s);
-#define ZCTX(s) strzone(CTX(s))
-
 // x-encoding (encoding as zero length invisible string)
 // encodes approx. 14 bits into 5 bytes of color code string
 const float XENCODE_MAX = 21295; // 2*22*22*22-1
diff --git a/qcsrc/lib/Counting.qh b/qcsrc/lib/Counting.qh
new file mode 100644 (file)
index 0000000..cd0604b
--- /dev/null
@@ -0,0 +1,223 @@
+#ifndef COUNTING_H
+#define COUNTING_H
+
+#include "I18N.qh"
+
+// ===============================================
+//  Time processing and counting functions/macros
+// ===============================================
+
+#define count_years_decs(time,decs) sprintf(ZCTX(_("CI_DEC^%s years")), ftos_decimals(time, decs))
+#define count_years(time) count_fill(time, \
+               ZCTX(_("CI_ZER^%d years")), /* zeroth */ \
+               ZCTX(_("CI_FIR^%d year")),  /* first */ \
+               ZCTX(_("CI_SEC^%d years")), /* year */ \
+               ZCTX(_("CI_THI^%d years")), /* third */ \
+               ZCTX(_("CI_MUL^%d years"))) /* multi */
+
+#define count_weeks_decs(time,decs) sprintf(ZCTX(_("CI_DEC^%s weeks")), ftos_decimals(time, decs))
+#define count_weeks(time) count_fill(time, \
+               ZCTX(_("CI_ZER^%d weeks")), /* zeroth */ \
+               ZCTX(_("CI_FIR^%d week")),  /* first */ \
+               ZCTX(_("CI_SEC^%d weeks")), /* week */ \
+               ZCTX(_("CI_THI^%d weeks")), /* third */ \
+               ZCTX(_("CI_MUL^%d weeks"))) /* multi */
+
+#define count_days_decs(time,decs) sprintf(ZCTX(_("CI_DEC^%s days")), ftos_decimals(time, decs))
+#define count_days(time) count_fill(time, \
+               ZCTX(_("CI_ZER^%d days")), /* zeroth */ \
+               ZCTX(_("CI_FIR^%d day")),  /* first */ \
+               ZCTX(_("CI_SEC^%d days")), /* day */ \
+               ZCTX(_("CI_THI^%d days")), /* third */ \
+               ZCTX(_("CI_MUL^%d days"))) /* multi */
+
+#define count_hours_decs(time,decs) sprintf(ZCTX(_("CI_DEC^%s hours")), ftos_decimals(time, decs))
+#define count_hours(time) count_fill(time, \
+               ZCTX(_("CI_ZER^%d hours")), /* zeroth */ \
+               ZCTX(_("CI_FIR^%d hour")),  /* first */ \
+               ZCTX(_("CI_SEC^%d hours")), /* hour */ \
+               ZCTX(_("CI_THI^%d hours")), /* third */ \
+               ZCTX(_("CI_MUL^%d hours"))) /* multi */
+
+
+#define count_minutes_decs(time,decs) sprintf(ZCTX(_("CI_DEC^%s minutes")), ftos_decimals(time, decs))
+#define count_minutes(time) count_fill(time, \
+               ZCTX(_("CI_ZER^%d minutes")), /* zeroth */ \
+               ZCTX(_("CI_FIR^%d minute")),  /* first */ \
+               ZCTX(_("CI_SEC^%d minutes")), /* minute */ \
+               ZCTX(_("CI_THI^%d minutes")), /* third */ \
+               ZCTX(_("CI_MUL^%d minutes"))) /* multi */
+
+#define count_seconds_decs(time,decs) sprintf(ZCTX(_("CI_DEC^%s seconds")), ftos_decimals(time, decs))
+#define count_seconds(time) count_fill(time, \
+               ZCTX(_("CI_ZER^%d seconds")), /* zeroth */ \
+               ZCTX(_("CI_FIR^%d second")),  /* first */ \
+               ZCTX(_("CI_SEC^%d seconds")), /* second */ \
+               ZCTX(_("CI_THI^%d seconds")), /* third */ \
+               ZCTX(_("CI_MUL^%d seconds"))) /* multi */
+
+string count_ordinal(int interval)
+{
+       // This function is designed primarily for the English language, it's impossible
+       // to accomodate all languages unless we do a specific function for each one...
+       // and since that's not technically feasible/practical, this is all we've got folks.
+
+       // Basically, it just allows you to represent a number or count in different ways
+       // depending on the number... like, with count_ordinal you can provide integers
+       // and retrieve 1st, 2nd, 3rd, nth ordinal numbers in a clean and simple way.
+       if(floor((interval % 100)/10) * 10 != 10) // examples: 12th, 111th, 213th will not execute this block
+       {
+               // otherwise, check normally for 1st,2nd,3rd insertions
+               switch(interval % 10)
+               {
+                       case 1: return sprintf(_("%dst"), interval);
+                       case 2: return sprintf(_("%dnd"), interval);
+                       case 3: return sprintf(_("%drd"), interval);
+                       default: return sprintf(_("%dth"), interval);
+               }
+       }
+       else { return sprintf(_("%dth"), interval); }
+
+       return "";
+}
+
+string count_fill(float interval, string zeroth, string first, string second, string third, string multi)
+{
+       // This function is designed primarily for the English language, it's impossible
+       // to accomodate all languages unless we do a specific function for each one...
+       // and since that's not technically feasible/practical, this is all we've got folks.
+
+       // Here you can insert specific strings based on the interval number, so you could do
+       // i.e. count_seconds which outputs like this:
+       //   0 seconds
+       //   1 second
+       //   2 seconds
+       //   3 seconds
+       //   etc... minutes, hours, days, etc.
+
+       switch(floor(interval))
+       {
+               case 0: return sprintf(zeroth, interval);
+               case 1:
+               {
+                       if(interval == 1) // EXACTLY value of 1
+                               return sprintf(first, interval);
+                       else
+                               return sprintf(multi, interval);
+               }
+               case 2: return sprintf(second, interval);
+               case 3: return sprintf(third, interval);
+               default: return sprintf(multi, interval);
+       }
+       return "";
+}
+
+string process_time(float outputtype, float seconds)
+{
+       float tmp_hours = 0, tmp_minutes = 0, tmp_seconds = 0;
+       float tmp_years = 0, tmp_weeks = 0, tmp_days = 0;
+
+       tmp_seconds = floor(seconds);
+
+       if(tmp_seconds)
+       {
+               tmp_minutes = floor(tmp_seconds / 60);
+
+               if(tmp_minutes)
+               {
+                       tmp_seconds -= (tmp_minutes * 60);
+                       tmp_hours = floor(tmp_minutes / 60);
+
+                       if(tmp_hours)
+                       {
+                               tmp_minutes -= (tmp_hours * 60);
+                               tmp_days = floor(tmp_hours / 24);
+
+                               if(tmp_days)
+                               {
+                                       tmp_hours -= (tmp_days * 24);
+                                       tmp_weeks = floor(tmp_days / 7);
+
+                                       if(tmp_weeks)
+                                       {
+                                               tmp_days -= (tmp_weeks * 7);
+                                               tmp_years = floor(tmp_weeks / 52);
+                                       }
+                               }
+                       }
+               }
+       }
+
+       switch(outputtype)
+       {
+               case 1: return sprintf("%02d:%02d:%02d", tmp_hours, tmp_minutes, tmp_seconds);
+               case 2:
+               {
+                       string output = "";
+
+                       output = count_seconds(tmp_seconds);
+
+                       if(tmp_minutes)
+                       {
+                               output = sprintf(
+                                       "%s%s",
+                                       count_minutes(tmp_minutes),
+                                       ((output != "") ? sprintf(", %s", output) : ""));
+                       }
+
+                       if(tmp_hours)
+                       {
+                               output = sprintf(
+                                       "%s%s",
+                                       count_hours(tmp_hours),
+                                       ((output != "") ? sprintf(", %s", output) : ""));
+                       }
+
+                       if(tmp_days)
+                       {
+                               output = sprintf(
+                                       "%s%s",
+                                       count_days(tmp_days),
+                                       ((output != "") ? sprintf(", %s", output) : ""));
+                       }
+
+                       if(tmp_weeks)
+                       {
+                               output = sprintf(
+                                       "%s%s",
+                                       count_weeks(tmp_weeks),
+                                       ((output != "") ? sprintf(", %s", output) : ""));
+                       }
+
+                       if(tmp_years)
+                       {
+                               output = sprintf(
+                                       "%s%s",
+                                       count_years(tmp_years),
+                                       ((output != "") ? sprintf(", %s", output) : ""));
+                       }
+
+                       return output;
+               }
+               case 3:
+               {
+                       string output = "";
+
+                       output = count_hours(tmp_hours);
+
+                       if(tmp_weeks) { tmp_days += (tmp_weeks * 7); }
+                       if(tmp_years) { tmp_days += (tmp_years * 365); }
+                       if(tmp_days)
+                       {
+                               output = sprintf(
+                                       "%s%s",
+                                       count_days(tmp_days),
+                                       ((output != "") ? sprintf(", %s", output) : ""));
+                       }
+
+                       return output;
+               }
+       }
+       return "";
+}
+#endif
diff --git a/qcsrc/lib/I18N.qh b/qcsrc/lib/I18N.qh
new file mode 100644 (file)
index 0000000..ab9aa7d
--- /dev/null
@@ -0,0 +1,32 @@
+#ifndef I18N_H
+#define I18N_H
+
+// translation helpers
+string prvm_language;
+
+string language_filename(string s)
+{
+    string fn = prvm_language;
+    if (fn == "" || fn == "dump")
+        return s;
+    fn = strcat(s, ".", fn);
+    int fh = fopen(fn, FILE_READ);
+    if (fh >= 0)
+    {
+        fclose(fh);
+        return fn;
+    }
+    return s;
+}
+
+string CTX(string s)
+{
+    int p = strstrofs(s, "^", 0);
+    if (p < 0)
+        return s;
+    return substring(s, p + 1, -1);
+}
+
+#define ZCTX(s) strzone(CTX(s))
+
+#endif
index 931bc50b4719dcd3a9f1ae4d1623eac86ee7dd24..410eac721a4b2c5b322176ab9c08752b043cc28d 100644 (file)
@@ -1,5 +1,7 @@
 #include "Accumulate.qh"
+#include "Counting.qh"
 #include "Cvar.qh"
+#include "I18N.qh"
 #include "Lazy.qh"
 #include "Nil.qh"
 #include "OO.qh"
index db42177fbcc07380d5c702b0f1660b7d5a063c7e..3c4b09e1463b6489ab69e04fa2bd2324b459a432 100644 (file)
@@ -1,4 +1,3 @@
-#include "../../common/counting.qh"
 #include "../../common/playerstats.qh"
 
 #ifndef STATSLIST_H
index 0bdc6672fbf550daa7d2d66b54bdb30cf69b99d3..b303f4b33c2c5dae668d9ffd59ef496c23d4e6da 100644 (file)
@@ -5,7 +5,6 @@
 #include "../scores.qh"
 
 #include "../../common/notifications.qh"
-#include "../../common/counting.qh"
 
 
 // ====================================================
index 543f1db1525a374a501a7e66e7cc50ed4461089c..1371e80100d24c792f626f91a3a5ce14c1945582 100644 (file)
@@ -5,7 +5,6 @@
 #include "../race.qh"
 
 #include "../../common/constants.qh"
-#include "../../common/counting.qh"
 #include "../../common/mapinfo.qh"
 #include "../../common/util.qh"
 
index 3129af92fab7b677150a3079c500de194ef8cdf6..1286317eb3acb1c8a5a1e3115eb0e40350bb9b60 100644 (file)
@@ -15,7 +15,6 @@
     #include "../../common/nades.qh"
     #include "../../common/buffs.qh"
     #include "../../common/test.qh"
-    #include "../../common/counting.qh"
     #include "../../common/urllib.qh"
     #include "../../common/command/markup.qh"
     #include "../../common/command/rpn.qh"