Translation : Added support of data entry form labels in generate_lang_file.php
[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     if (is_array($conf['LSform']['dataEntryForm'])) {
77       foreach($conf['LSform']['dataEntryForm'] as $def) {
78         add($def['label']);
79       }
80     }
81     // LSsearch
82     if (is_array($conf['LSsearch']['predefinedFilters'])) {
83       foreach($conf['LSsearch']['predefinedFilters'] as $lay) {
84         add($lay);
85       }
86     }
87
88     
89     if(is_array($conf['attrs'])) {
90       foreach($conf['attrs'] as $attr) {
91         add($attr['label']);
92         add($attr['help_info']);
93         add($attr['html_options']['mail']['subject']);
94         add($attr['html_options']['mail']['msg']);
95         
96         // LSattr_html_select_list
97         if ($attr['html_type']=='select_list' && is_array($attr['html_options']['possible_values'])) {
98           foreach($attr['html_options']['possible_values'] as $pkey => $pname) {
99             if ($pkey != 'OTHER_OBJECT') {
100               add($pname);
101             }
102           }
103         }
104         
105         // Check data
106         if (is_array($attr['check_data'])) {
107           foreach($attr['check_data'] as $check) {
108             add($check['msg']);
109           }
110         }
111         
112         // validation
113         if (is_array($attr['validation'])) {
114           foreach($attr['validation'] as $valid) {
115             add($valid['msg']);
116           }
117         }
118       }
119     }
120   }
121 }
122
123 ksort($data);
124
125 echo "<?php\n\n\$GLOBALS['LSlang'] = array (\n";
126
127 foreach($data as $key => $val) {
128   print "\n\"$key\" =>\n  \"$val\",\n";
129 }
130
131 echo "\n);\n\n?>\n";
132
133 ?>