summaryrefslogtreecommitdiff
path: root/modules/locale.module
diff options
context:
space:
mode:
Diffstat (limited to 'modules/locale.module')
-rw-r--r--modules/locale.module89
1 files changed, 82 insertions, 7 deletions
diff --git a/modules/locale.module b/modules/locale.module
index 95594a65a..8a1c3e1ac 100644
--- a/modules/locale.module
+++ b/modules/locale.module
@@ -1,17 +1,92 @@
<?
-$module = array("page" => "locale",
- "admin" => "locale");
+$module = array("help" => "locale_help",
+ "admin" => "locale_admin",
+ "locale" => "locale_locale");
-function locale() {
- $result = db_query("SELECT * FROM locales ORDER BY english");
+function locale_help() {
+ print "under construction";
+}
+
+function locale_delete($id) {
+ db_query("DELETE FROM locales WHERE id = '$id'");
+}
+
+function locale_save($id, $edit) {
+ foreach ($edit as $key=>$value) {
+ db_query("UPDATE locales SET $key = '". check_input($value) ."' WHERE id = '$id'");
+ }
+}
+
+function locale_edit($id) {
+ global $languages;
+ $result = db_query("SELECT * FROM locales WHERE id = '$id'");
+ if ($translation = db_fetch_object($result)) {
+ $output .= "<FORM ACTION=\"admin.php?mod=locale\" METHOD=\"post\">\n";
+ $output .= "<B>Original string:</B><BR>\n";
+ $output .= check_output($translation->string) ."<P>";
+ foreach ($languages as $code=>$language) {
+ $output .= "<B>$language:</B><BR>";
+ $output .= "<INPUT TYPE=\"text\" NAME=\"edit[$code]\" VALUE=\"". check_textfield($translation->$code) ."\"><P>";
+ }
+ $output .= "<INPUT NAME=\"id\" TYPE=\"hidden\" VALUE=\"$id\">\n";
+ $output .= "<INPUT NAME=\"op\" TYPE=\"submit\" VALUE=\"Save translations\">\n";
+ $output .= "</FORM>\n";
+
+ print $output;
+ }
+}
+
+function locale_languages($translation) {
+ global $languages;
+ foreach ($languages as $key=>$value) {
+ $output .= ($translation->$key) ? "$key " : "<STRIKE>$key</STRIKE> ";
+ }
+ return $output;
+}
+
+function locale_display() {
+ $result = db_query("SELECT * FROM locales ORDER BY string");
$output .= "<TABLE BORDER=\"1\" CELLPADDING=\"2\" CELLSPACING=\"2\">\n";
- $output .= " <TR><TH>string</TH><TH COLSPAN=\"2\">operations</TH><TR>\n";
+ $output .= " <TR><TH>string</TH><TH>languages</TH><TH COLSPAN=\"2\">operations</TH><TR>\n";
while ($locale = db_fetch_object($result)) {
- $output .= " <TR><TD>". check_output($locale->english) ."<BR><SMALL><I>$locale->location</I></SMALL></TD><TD><A HREF=\"admin.php?mod=locale&op=edit&id=$locale->id\">edit</A></TD><TD><A HREF=\"admin.php?mod=locale&op=edit&id=$locale->id\">delete</A></TD></TR>";
+ $languages = locale_languages($locale);
+ $output .= " <TR><TD>". check_output($locale->string) ."<BR><SMALL><I>$locale->location</I></SMALL></TD><TD ALIGN=\"center\">$languages</TD><TD><A HREF=\"admin.php?mod=locale&op=edit&id=$locale->id\">edit</A></TD><TD><A HREF=\"admin.php?mod=locale&op=delete&id=$locale->id\">delete</A></TD></TR>";
}
$output .= "</TABLE>\n";
print $output;
}
-?>
+function locale_admin() {
+ global $id, $edit, $op;
+
+ print "<SMALL><A HREF=\"admin.php?mod=locale\">overview</A> | <A HREF=\"admin.php?mod=locale&op=help\">help</A></SMALL><HR>\n";
+
+ switch ($op) {
+ case "delete":
+ locale_delete($id);
+ locale_display();
+ break;
+ case "help":
+ locale_help();
+ break;
+ case "edit":
+ locale_edit($id);
+ break;
+ case "Save translations":
+ locale_save($id, $edit);
+ // fall through
+ default:
+ locale_display();
+ }
+}
+
+function locale($string) {
+ global $locale;
+ $result = db_query("SELECT id, $locale FROM locales WHERE STRCMP(string, '". addslashes($string) ."') = 0");
+ if ($translation = db_fetch_object($result)) $string = ($translation->$locale) ? check_output($translation->$locale) : $string;
+ else db_query("INSERT INTO locales (string, location) VALUES ('". addslashes($string) ."', '". check_input(getenv("REQUEST_URI")) ."')");
+ return $string;
+}
+
+?> \ No newline at end of file