453abdb6b0e711abb5b7597ebd5750a3fb7a6877
[ldapsaisie.git] / public_html / lang / generate_lang_file.php
1 #!/usr/bin/php
2 <?php
3 /*******************************************************************************
4  * Copyright (C) 2007 Easter-eggs
5  * http://ldapsaisie.labs.libre-entreprise.org
6  *
7  * Author: See AUTHORS file in top-level directory.
8  *
9  * This program is free software; you can redistribute it and/or
10  * modify it under the terms of the GNU General Public License version 2
11  * as published by the Free Software Foundation.
12  *
13  * This program is distributed in the hope that it will be useful,
14  * but WITHOUT ANY WARRANTY; without even the implied warranty of
15  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16  * GNU General Public License for more details.
17  *
18  * You should have received a copy of the GNU General Public License
19  * along with this program; if not, write to the Free Software
20  * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
21
22 ******************************************************************************/
23
24 error_reporting(E_ERROR);
25
26 require_once('../core.php');
27 require_once('../conf/config.inc.php');
28
29 if ($argc > 1) {
30   for ($i=1;$i<$argc;$i++) {
31     if (is_file($argv[$i])) {
32       @include($argv[$i]);
33     }
34   }
35 }
36
37 $data=array();
38
39 function add($msg) {
40   if ($msg!='') {
41     global $data;
42     $data[$msg]=$GLOBALS['LSlang'][$msg];
43   }
44 }
45
46 // LDAP Servers
47 foreach($GLOBALS['LSconfig']['ldap_servers'] as $conf) {
48   add($conf['name']);
49   add($conf['subDnLabel']);
50   add($conf['recoverPassword']['recoveryHashMail']['subject']);
51   add($conf['recoverPassword']['recoveryHashMail']['msg']);
52   add($conf['recoverPassword']['newPasswordMail']['subject']);
53   add($conf['recoverPassword']['newPasswordMail']['msg']);
54   if (is_array($conf['subDn'])) {
55     foreach($conf['subDn'] as $name => $cf) {
56       if ($name!='LSobject') {
57         add($name);
58       }
59     }
60   }
61 }
62
63
64 // LSobject
65 if (loadDir('../'.LS_OBJECTS_DIR) && loadDir('../'.LS_LOCAL_DIR.LS_OBJECTS_DIR)) {
66   foreach($GLOBALS['LSobjects'] as $name => $conf) {
67     add($conf['label']);
68     
69     // LSrelation
70     if (is_array($conf['LSrelation'])) {
71       foreach($conf['LSrelation'] as $rel) {
72         add($rel['label']);
73         add($rel['emptyText']);
74       }
75     }
76     // Custom Actions
77     if (is_array($conf['customActions'])) {
78       foreach($conf['customActions'] as $act) {
79         add($act['label']);
80         add($act['question_format']);
81         add($act['onSuccessMsgFormat']);
82       }
83     }
84
85     // LSform
86     if (is_array($conf['LSform']['layout'])) {
87       foreach($conf['LSform']['layout'] as $lay) {
88         add($lay['label']);
89       }
90     }
91     if (is_array($conf['LSform']['dataEntryForm'])) {
92       foreach($conf['LSform']['dataEntryForm'] as $def) {
93         add($def['label']);
94       }
95     }
96     // LSsearch
97     if (is_array($conf['LSsearch']['predefinedFilters'])) {
98       foreach($conf['LSsearch']['predefinedFilters'] as $lay) {
99         add($lay);
100       }
101     }
102
103     
104     if(is_array($conf['attrs'])) {
105       foreach($conf['attrs'] as $attr) {
106         add($attr['label']);
107         add($attr['help_info']);
108         add($attr['html_options']['mail']['subject']);
109         add($attr['html_options']['mail']['msg']);
110         
111         // LSattr_html_select_list
112         if ($attr['html_type']=='select_list' && is_array($attr['html_options']['possible_values'])) {
113           foreach($attr['html_options']['possible_values'] as $pkey => $pname) {
114             if ($pkey != 'OTHER_OBJECT') {
115               add($pname);
116             }
117           }
118         }
119
120         // LSattr_html_valueWithUnit
121         if ($attr['html_type']=='valueWithUnit' && is_array($attr['html_options']['units'])) {
122           foreach($attr['html_options']['units'] as $pname) {
123             add($pname);
124           }
125         }
126         
127         // Check data
128         if (is_array($attr['check_data'])) {
129           foreach($attr['check_data'] as $check) {
130             add($check['msg']);
131           }
132         }
133         
134         // validation
135         if (is_array($attr['validation'])) {
136           foreach($attr['validation'] as $valid) {
137             add($valid['msg']);
138           }
139         }
140       }
141     }
142   }
143 }
144
145 ksort($data);
146
147 echo "<?php\n\n\$GLOBALS['LSlang'] = array (\n";
148
149 foreach($data as $key => $val) {
150   print "\n\"$key\" =>\n  \"$val\",\n";
151 }
152
153 echo "\n);\n\n?>\n";
154
155 ?>