4379105a9dea854d82386cea1067efce27f1cef0
[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     
77     if(is_array($conf['attrs'])) {
78       foreach($conf['attrs'] as $attr) {
79         add($attr['label']);
80         add($attr['help_info']);
81         add($attr['html_options']['mail']['subject']);
82         add($attr['html_options']['mail']['msg']);
83         
84         // LSattr_html_select_list
85         if ($attr['html_type']=='select_list' && is_array($attr['html_options']['possible_values'])) {
86           foreach($attr['html_options']['possible_values'] as $pkey => $pname) {
87             if ($pkey != 'OTHER_OBJECT') {
88               add($pname);
89             }
90           }
91         }
92         
93         // Check data
94         if (is_array($attr['check_data'])) {
95           foreach($attr['check_data'] as $check) {
96             add($check['msg']);
97           }
98         }
99         
100         // validation
101         if (is_array($attr['validation'])) {
102           foreach($attr['validation'] as $valid) {
103             add($valid['msg']);
104           }
105         }
106       }
107     }
108   }
109 }
110
111 ksort($data);
112
113 echo "<?php\n\n\$GLOBALS['LSlang'] = array (\n";
114
115 foreach($data as $key => $val) {
116   print "\n\"$key\" =>\n  \"$val\",\n";
117 }
118
119 echo "\n);\n\n?>\n";
120
121 ?>