f3d80d6a0e1f9065abf0da8079c03584cde9f7ba
[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 require_once('../core.php');
25 require_once('../conf/config.inc.php');
26
27 if ($argc > 1) {
28   for ($i=1;$i<$argc;$i++) {
29     if (is_file($argv[$i])) {
30         echo $argv[$i];
31       @include($argv[$i]);
32     }
33   }
34 }
35
36 $data=array();
37
38 function add($msg) {
39   if ($msg!='') {
40     global $data;
41     $data[$msg]=$GLOBALS['LSlang'][$msg];
42   }
43 }
44
45 // LDAP Servers
46 foreach($GLOBALS['LSconfig']['ldap_servers'] as $conf) {
47   add($conf['name']);
48   add($conf['subDnLabel']);
49   add($conf['recoverPassword']['recoveryHashMail']['subject']);
50   add($conf['recoverPassword']['recoveryHashMail']['msg']);
51   add($conf['recoverPassword']['newPasswordMail']['subject']);
52   add($conf['recoverPassword']['newPasswordMail']['msg']);
53   if (is_array($conf['subDn'])) {
54     foreach($conf['subDn'] as $name => $cf) {
55       if ($name!='LSobject') {
56         add($name);
57       }
58     }
59   }
60 }
61
62
63 // LSobject
64 if (loadDir('../'.LS_OBJECTS_DIR)) {
65   foreach($GLOBALS['LSobjects'] as $name => $conf) {
66     add($conf['label']);
67     
68     // LSrelation
69     if (is_array($conf['LSrelation'])) {
70       foreach($conf['LSrelation'] as $rel) {
71         add($rel['label']);
72         add($rel['emptyText']);
73       }
74     }
75     // LSform
76     if (is_array($conf['LSform']['layout'])) {
77       foreach($conf['LSform']['layout'] as $lay) {
78         add($lay['label']);
79       }
80     }
81     if (is_array($conf['LSform']['dataEntryForm'])) {
82       foreach($conf['LSform']['dataEntryForm'] as $def) {
83         add($def['label']);
84       }
85     }
86     // LSsearch
87     if (is_array($conf['LSsearch']['predefinedFilters'])) {
88       foreach($conf['LSsearch']['predefinedFilters'] as $lay) {
89         add($lay);
90       }
91     }
92
93     
94     if(is_array($conf['attrs'])) {
95       foreach($conf['attrs'] as $attr) {
96         add($attr['label']);
97         add($attr['help_info']);
98         add($attr['html_options']['mail']['subject']);
99         add($attr['html_options']['mail']['msg']);
100         
101         // LSattr_html_select_list
102         if ($attr['html_type']=='select_list' && is_array($attr['html_options']['possible_values'])) {
103           foreach($attr['html_options']['possible_values'] as $pkey => $pname) {
104             if ($pkey != 'OTHER_OBJECT') {
105               add($pname);
106             }
107           }
108         }
109         
110         // Check data
111         if (is_array($attr['check_data'])) {
112           foreach($attr['check_data'] as $check) {
113             add($check['msg']);
114           }
115         }
116         
117         // validation
118         if (is_array($attr['validation'])) {
119           foreach($attr['validation'] as $valid) {
120             add($valid['msg']);
121           }
122         }
123       }
124     }
125   }
126 }
127
128 ksort($data);
129
130 echo "<?php\n\n\$GLOBALS['LSlang'] = array (\n";
131
132 foreach($data as $key => $val) {
133   print "\n\"$key\" =>\n  \"$val\",\n";
134 }
135
136 echo "\n);\n\n?>\n";
137
138 ?>