Lines 43-51
BEGIN {
Link Here
|
43 |
@EXPORT = qw( |
43 |
@EXPORT = qw( |
44 |
&getFrameworkLanguages |
44 |
&getFrameworkLanguages |
45 |
&getTranslatedLanguages |
45 |
&getTranslatedLanguages |
|
|
46 |
&getLanguages |
46 |
&getAllLanguages |
47 |
&getAllLanguages |
47 |
); |
48 |
); |
48 |
@EXPORT_OK = qw(getFrameworkLanguages getTranslatedLanguages getAllLanguages get_bidi regex_lang_subtags language_get_description accept_language); |
49 |
@EXPORT_OK = qw(getFrameworkLanguages getTranslatedLanguages getAllLanguages getLanguages get_bidi regex_lang_subtags language_get_description accept_language); |
49 |
$DEBUG = 0; |
50 |
$DEBUG = 0; |
50 |
} |
51 |
} |
51 |
|
52 |
|
Lines 178-191
Returns a reference to an array of hashes:
Link Here
|
178 |
=cut |
179 |
=cut |
179 |
|
180 |
|
180 |
sub getAllLanguages { |
181 |
sub getAllLanguages { |
|
|
182 |
return getLanguages(shift); |
183 |
} |
184 |
|
185 |
=head2 getLanguages |
186 |
|
187 |
Returns a reference to an array of hashes. |
188 |
Extracted from getAllLanguages to limit effect on the code base. |
189 |
This new function (name) will allow for more arguments to customize the values returned. |
190 |
|
191 |
- If no parameter is passed to the function, it returns english languages names |
192 |
- If a $lang parameter conforming to RFC4646 syntax is passed, the function returns languages names translated in $lang |
193 |
If a language name is not translated in $lang in database, the function returns english language name |
194 |
- If $isFiltered is set to true, only the detail of the languages selected in system preferences AdvanceSearchLanguages is returned. |
195 |
|
196 |
=cut |
197 |
|
198 |
sub getLanguages { |
181 |
my $lang = shift; |
199 |
my $lang = shift; |
182 |
# if no parameter is passed to the function, it returns english languages names |
200 |
my $isFiltered = shift; |
183 |
# if a $lang parameter conforming to RFC4646 syntax is passed, the function returns languages names translated in $lang |
201 |
|
184 |
# if a language name is not translated in $lang in database, the function returns english language name |
|
|
185 |
my @languages_loop; |
202 |
my @languages_loop; |
186 |
my $dbh=C4::Context->dbh; |
203 |
my $dbh=C4::Context->dbh; |
187 |
my $default_language = 'en'; |
204 |
my $default_language = 'en'; |
188 |
my $current_language = $default_language; |
205 |
my $current_language = $default_language; |
|
|
206 |
my $language_list=C4::Context->preference("AdvancedSearchLanguages") if $isFiltered; |
189 |
if ($lang) { |
207 |
if ($lang) { |
190 |
$current_language = regex_lang_subtags($lang)->{'language'}; |
208 |
$current_language = regex_lang_subtags($lang)->{'language'}; |
191 |
} |
209 |
} |
Lines 226-232
sub getAllLanguages {
Link Here
|
226 |
$language_subtag_registry->{language_description} = $language_descriptions->{description}; |
244 |
$language_subtag_registry->{language_description} = $language_descriptions->{description}; |
227 |
} |
245 |
} |
228 |
} |
246 |
} |
229 |
push @languages_loop, $language_subtag_registry; |
247 |
if ( !$language_list || index ( $language_list, $language_subtag_registry->{ iso639_2_code } ) >= 0) { |
|
|
248 |
push @languages_loop, $language_subtag_registry; |
249 |
} |
230 |
} |
250 |
} |
231 |
return \@languages_loop; |
251 |
return \@languages_loop; |
232 |
} |
252 |
} |