adminLanguage.ftl
1 <#-- Macro: adminLanguage
2 Description: Generates a language selection form for use in an admin panel. It generates a Bootstrap form that allows the user to select a language from a list of supported languages.
3 Parameters:
4 - languages (object): an object that contains information about the supported languages. It should be an array of objects, where each object represents a language and contains a `code` and a `name` property.
5 - lang (string): the code of the currently selected language.
6 - action (string, optional): the URL of the form submission handler.
7 -->
8 <#macro adminLanguage languages lang action='jsp/admin/DoChangeLanguage.jsp' >
9 <@tform method='post' action=action class='form-inline clearfix'>
10 <@input type='hidden' name='token' value='${token}' />
11 <@row>
12 <@columns id='lutece-language-menu'>
13 <#list languages?filter( language -> language.code == lang ) as language>
14 <@div id="lutece-default-language" class=" ps-1">
15 <@icon style='language' /> #i18n{portal.admin.admin_home.language}
16 <@span class='ms-2 py-1 ps-4 pe-2 px-2 fw-bolder border border-2 border-muted rounded-pill' params='tabindex="0" style="background: transparent url( ./themes/admin/shared/css/vendor/tabler/img/flags/${lang}.svg ) no-repeat .65rem center; background-size: .75rem" data-lang="${lang}" data-lang-name="${language.name?capitalize}"'>
17 ${language.name!?capitalize}
18 </@span>
19 </@div>
20 </#list>
21 <@div id='lutece-languages'>
22 <#list languages?filter( language -> language.code != lang ) as language>
23 <@button color='secondary btn-language' type='submit' name='language' value='${language.code}' title='${language.name?capitalize}' hideTitle=['all'] params='style="background-image: url( ./themes/admin/shared/css/vendor/tabler/img/flags/${language.code}.svg );" data-lang="${language.code}" data-lang-name="${language.name?capitalize}"' />
24 </#list>
25 </@div>
26 </@columns>
27 <@columns id='lutece-sidebar-language-menu'>
28 <li class="nav-item dropdown">
29 <#list languages?filter( language -> language.code == lang ) as language>
30 <a id="btn-lang" class="btn btn-muted btn-rounded" href="#" role="button" data-bs-toggle="dropdown" aria-expanded="false" title="#i18n{portal.admin.admin_home.language}" data-lang="${language.code}" data-lang-name="${language.name?capitalize}">
31 <div class="position-absolute" style="background:url('themes/admin/shared/css/vendor/tabler/img/flags/${lang}.svg');background-size:contain;background-position: center;height:25px;width:25px;border-radius:25px"></div>
32 </a>
33 </#list>
34 <ul class="dropdown-menu p-2 text-center dropdown-menu-center">
35 <#list languages?filter( language -> language.code != lang ) as language>
36 <a href='${action}?token=${token}&language=${language.code}' class='border btn btn-light btn-rounded mx-auto mt-2' style="background:url('themes/admin/shared/css/vendor/tabler/img/flags/${language.code}.svg');background-size:contain;background-position: center;background-repeat: no-repeat;" data-lang="${language.code}" data-lang-name="${language.name?capitalize}">
37 <span class="visually-hidden">#i18n{portal.admin.admin_home.button.changeLanguage} ${language.name}</span>
38 </a>
39 </#list>
40 </ul>
41 </li>
42 </@columns>
43 </@row>
44 </@tform>
45 </#macro>
46 <#-- Macro: adminReadMode
47 Description: Show read direction button
48 Parameters:
49 -->
50 <#macro adminReadMode>
51 <li class="nav-item dropdown me-2" id="lutece-rtl">
52 <div class="nav-link d-none d-lg-flex" tabindex="0" role="button" title="#i18n{portal.site.site_property.layout.readmode.checkbox}">
53 <i class="ti ti-text-direction-rtl"></i> <span class="visually-hidden">#i18n{portal.site.site_property.layout.readmode.checkbox}</span>
54 </div>
55 <div class="nav-link d-flex d-lg-none" tabindex="0" role="button" title="#i18n{portal.site.site_property.layout.readmode.checkbox}">
56 <i class="ti ti-text-direction-rtl me-2"></i> #i18n{portal.site.site_property.layout.readmode.checkbox}
57 </div>
58 </li>
59 </#macro>