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