*** empty log message ***

This commit is contained in:
sebastian 2005-02-21 14:52:08 +00:00
parent cdabb1b704
commit 633629e24b
12 changed files with 175 additions and 852 deletions

View File

@ -0,0 +1,10 @@
{if $showTree}
{include file="fileBrowse/tree.tpl"}
{/if}
{if $showObjects}
{include file="fileBrowse/objects.tpl"}
{/if}
{if $permissions}
{include file="fileBrowse/permissions.tpl"}
{/if}

View File

@ -0,0 +1,58 @@
<div id="objects">
{include file="sub/x.tpl"}
<table border="0" align="center">
{if $GLOBALS.pid}
<tr><td colspan="2" align="right"><a href="{$UI_BROWSER}?act=fileBrowse&id={$GLOBALS.pid}">[go up]</a_</td></tr>
{/if}
{if count($structure.listdata)}
{foreach from=$structure.listdata item=o}
<tr bgcolor="{cycle values='#eeeeee, #dadada"'}">
<td>
<span id="ID{$o.id}">
{if $structure.tree}
{str_repeat str='&nbsp;' count=$o.level}
{else}
{str_repeat str='&nbsp;' count=3}
{/if}
<a {if $o.type eq 'Folder'}href="{$UI_BROWSER}?act=fileBrowse&id={$o.id}" {/if}>[{$o.title}]</a>:{$o.type}
</span>
</td>
<td>
&nbsp;<a href="javascript:frename('{$o.name}', '{$o.id}')">[rename]</a>
&nbsp;<a href="javascript:fmove('{$o.id}', '.')">[move]</a>
&nbsp;<a href="javascript:fcopy('{$o.id}', '.')">[copy]</a>
&nbsp;<a href="{$UI_BROWSER}?act=permissions&id={$o.id}">[permissions]</a>
<br>
&nbsp;
{if ($delOverride eq $o.id)}
<a href="{$UI_HANDLER}?act=delete&id={$o.id}&delOverride={$o.id}"
onClick="return confirm('Really delete non empty Folder &quot;{$o.name}&quot; now?')">[DEL]</a>
{else}
<a href="{$UI_HANDLER}?act=delete&id={$o.id}"
onClick="return confirm('Delete &quot;{$o.name}&quot;?')">[DEL]</a>
{/if}
{if $o.type != 'Folder'}
&nbsp;<a href="{$UI_BROWSER}?act=getFile&id={$o.id}">[Access]</a>
&nbsp;<a href="{$UI_BROWSER}?act=getMData&id={$o.id}">[vMData]</a>
&nbsp;<a href="{$UI_BROWSER}?act=_analyzeFile&id={$o.id}">[Analyze]</a>
&nbsp;
{if $o.type eq 'webstream'}
<a href="{$UI_BROWSER}?act=addWebstream&id={$o.id}&replace=1">[Replace]</a>
{elseif $o.type eq 'audioclip'}
<a href="{$UI_BROWSER}?act=uploadFile&id={$o.id}&replace=1">[Replace]</a>
{/if}
&nbsp;<a href="{$UI_BROWSER}?act=editMetaData&id={$o.id}">[eMData]</a>
&nbsp;<a href="#" onclick="hpopup('{$UI_HANDLER}?act=SP.addItem&id={$o.id}', '2SP')">[SP]</a>
{/if}
&nbsp;
</td>
</tr>
{/foreach}
{else}
<tr><td align="center" width="400">No objects</td></tr>
{/if}
</table>
</div>

View File

@ -0,0 +1,12 @@
{*Smarty template*}
<div id="path">
<a href="{$UI_BROWSER}?act=fileBrowse&id={$structure.id}&tree=Y" class="button">[Tree view]</a>&nbsp;&nbsp;|&nbsp;
{foreach from=$structure.pathdata item=o}
{if $o.type == 'Folder'}
<a href="{$UI_BROWSER}?act=fileBrowse&id={$o.id}">[{$o.name}]</a> /
{else}
{$o.name}
{/if}
{/foreach}
</div>

View File

@ -0,0 +1,68 @@
<div id="permissions">
{include file="sub/x.tpl"}
<table id="tbl" border="0" cellpadding="5">
<tr><td><b>Subject Name</b></td><td><b>Action</b></td><td><b>Permission</b></td><td></td></tr>
{if (is_array($permissions.perms) && count($permissions.perms)>0)}
{foreach from=$permissions.perms item=row}
{if $row.type eq 'A'}
{assign var='da' value='allow'}
{else}
{if $row.type eq 'D'}
{assign var='da' value='deny'}
{else}
{assign var='da' value=$row.type}
{/if}
{/if}
<tr bgcolor="{cycle values='#eeeeee, #dadada'}">
<td>{* <a <?php #href="alibExPList.php?id=<?php echo$row['subj']? >"?>> *}{$row.login}</a></td>
<td>{$row.action}</td>
<td>{$da}</td>
<td>
<a href="{$UI_HANDLER}?act=removePerm&permid={$row.permid}&oid={$permissions.id}&id={$permissions.id}"
onClick="return confirm('Delete permission &quot;{$da}&nbsp;{$row.action}&quot; for user {$row.login}?')">[remove]</a>
</td>
</tr>
{/foreach}
{else}
<tr><td colspan="4">No Permissions set.</td></tr>
{/if}
</table>
<br>
<form action="{$UI_HANDLER}" method="post">
Add Permission
<select name="allowDeny">
<option value="A">Allow</option>
<option value="D">Deny</option>
</select>
for Action
<select name="permAction">
<option value="_all">all</option>
{if is_array($permissions.actions)}
{foreach from=$permissions.actions item='it'}
<option value="{$it}">{$it}</option>
{/foreach}
{/if}
</select>
to Subject
<select name="subj">
{if is_array($permissions.subjects)}
{foreach from=$permissions.subjects item='it'}
<option value="{$it.id}">{$it.login}</option>
{/foreach}
{/if}
</select>
<input type="hidden" name="act" value="addPerm">
<input type="hidden" name="id" value="{$permissions.id}">
<input type="submit" value="Do it!">
</form>
</div>

View File

@ -0,0 +1,24 @@
{*Smarty template*}
<div id="tree">
{if is_array($structure.treedata)}
{foreach from=$structure.treedata item=o}
<div style="background-color: {cycle values="#eeeeee,#dadada"}">
{$structure.treedata.type}
{if $structure.treedata.tree}
{str_repeat str='&nbsp;' count=3}
{else}
{str_repeat str='&nbsp;&nbsp;' count=$o.level}
{/if}
{if $o.type == 'Folder'}
<a href="{$UI_BROWSER}?act=fileBrowse&id={$o.id}">[{$o.name}]</a>
{else}
{$o.name}
{/if}
<br>
</div>
{/foreach}
{/if}
</div>

View File

@ -0,0 +1,3 @@
<div class="closer">
<a href="{$UI_BROWSER}">X</a>
</div>

View File

@ -1,852 +0,0 @@
<?php
$ui_fmask = array(
/* ===================== list of system preferences which can be adjusted */
'systemPrefs' => array(
array(
'element' => 'act',
'type' => 'hidden',
'constant' => 'systemPrefs'
),
array(
'element' => 'basics',
'type' => 'header',
'label' => 'Basic Settings',
),
array(
'element' => 'maxfilesize',
'isPref' => TRUE,
'type' => 'text',
'label' => 'Maximum File Size for Upload',
'required' => TRUE,
'default' => ini_get('upload_max_filesize')
),
array(
'rule' => 'nopunctuation',
'element' => 'maxfilesize',
),
array(
'element' => 'frequency',
'isPref' => TRUE,
'type' => 'text',
'label' => 'Frequency',
'required' => TRUE
),
array(
'element' => 'stationName',
'isPref' => TRUE,
'type' => 'text',
'label' => 'Staion Name',
'required' => TRUE
),
array(
'element' => 'stationLogoPath',
'isPref' => TRUE,
'type' => 'text',
'label' => 'Station Logo path'
),
array(
'element' => 'stationURL',
'isPref' => TRUE,
'type' => 'text',
'label' => 'Station URL',
'default' => 'http://'
),
array(
'rule' => 'regex',
'element' => 'stationURL',
'format' => UI_REGEX_URL,
'rulemsg' => 'URL seems not to be valid'
),
array(
'element' => UI_SCRATCHPAD_MAXLENGTH_KEY,
'isPref' => TRUE,
'type' => 'select',
'label' => 'Maximun length of ScratchPad',
'options' => array(
'4' => '4',
'5' => '5',
'6' => '6',
'7' => '7',
'8' => '8',
'9' => '9',
'10'=>'10'
)
),
array(
'element' => 'upload',
'type' => 'header',
'label' => 'Upload'
),
array(
'element' => 'stationlogo',
'type' => 'file',
'label' => 'Station Logo',
'requiredmsg'=> 'please select Logo file'
),
array(
'element' =>'Submit',
'type' =>'submit',
'label' =>'Submit'
)
),
/* =========================================================== Matadata-Mask */
'metaData' => array(
'basics' => array(
array(
'element' => 'act',
'type' => 'hidden',
'constant'=> 'editMetaData'
),
array(
'element' => 'id',
'type' => 'hidden'
),
array(
'element' => 'langid',
'type' => 'hidden'
),
),
'buttons' => array (
array(
'element' =>'reset',
'type' =>'reset',
'label' =>'Reset',
'groupit' => TRUE,
),
array(
'element' =>'button',
'type' =>'button',
'label' =>'Submit',
'groupit' => TRUE,
'attributes'=> array(
'onClick' => 'return switchMDataLang();'
),
),
array(
'group' => array('reset', 'button'),
)
),
'tabs' => array(
array(
'element' => 'Main',
'type' => 'button',
'label' => 'Main',
'groupit' => TRUE,
'attributes' => array('onClick' => 'showMain()')
),
array(
'element' => 'Music_Basic',
'type' => 'button',
'label' => 'Music_Basic',
'groupit' => TRUE,
'attributes' => array('onClick' => 'showMusic_Basic()')
),
array(
'element' => 'Music_Advanced',
'type' => 'button',
'label' => 'Music_Advanced',
'groupit' => TRUE,
'attributes' => array('onClick' => 'showMusic_Advanced()')
),
array(
'element' => 'Talk_Basic',
'type' => 'button',
'label' => 'Talk_Basic',
'groupit' => TRUE,
'attributes' => array('onClick' => 'showTalk_Basic()')
),
array(
'element' => 'Talk_Advanced',
'type' => 'button',
'label' => 'Talk_Advanced',
'groupit' => TRUE,
'attributes' => array('onClick' => 'showTalk_Advanced()')
),
'group' => array(
'group' => array('Main', 'Music_Basic', 'Music_Advanced', 'Talk_Basic', 'Talk_Advanced'),
)
),
'langswitch' => array(
array(
'element' => 'langid',
'type' => 'select',
'label' => 'Language',
'options' => array(
'en' => 'English',
'cz' => 'Czech',
'de' => 'German',
'hu' => 'Hungarian',
),
'attributes'=> array('onChange' => 'return switchMDataLang()')
)
),
'pages' => array(
'Main' => array(
array(
'element' => 'dc:title',
'type' => 'text',
'label' => 'Title',
'required' => TRUE
),
array(
'element' => 'Creator',
'type' => 'text',
'label' => 'Creator',
#'required' => TRUE,
),
array(
'element' => 'Type_Genre',
'type' => 'text',
'label' => 'Type_Genre',
#'required' => TRUE,
),
array(
'element' => 'dc:format',
'type' => 'select',
'label' => 'Format',
#'required' => TRUE,
'options' => array(
'' => '',
'audio/mpeg' => 'audio/mpeg',
'File' => 'File',
'live stream' => 'Live Stream',
'networked file'=> 'Networked File',
)
),
array(
'element' => 'dcterms:extent',
'type' => 'text',
'label' => 'Extent',
#'attributes'=> array('readonly' => 'on')
),
/*
array(
'element' => 'Format_Extent_h',
'type' => 'select',
'options' => getDArr('h'),
'groupit' => TRUE
),
array(
'element' => 'Format_Extent_m',
'type' => 'select',
'options' => getDArr('m'),
'groupit' => TRUE
),
array(
'element' => 'Format_Extent_s',
'type' => 'select',
'options' => getDArr('h'),
'groupit' => TRUE
),
array(
'group' => array('Main__Format_Extent_h', 'Main__Format_Extent_m', 'Main__Format_Extent_s'),
#'name' => 'gr_Format_Extent',
'label' => 'Format_Extent',
'rule' => 'required',
#'grouprule' => 'regex',
#'format' => '/([1-9]0)|([1-9]{2})|(0[1-9])/',
#'arg1' => 'Please enter Format_Extent',
#'howmany' => 1
), */
),
'Music_Basic' => array(
array(
'element' => 'dc:title',
'type' => 'text',
'label' => 'Title',
),
array(
'element' => 'dc:creator',
'type' => 'text',
'label' => 'Creator',
),
array(
'element' => 'Source_Album',
'type' => 'text',
'label' => 'Source_Album',
),
/*
array(
'element' => 'Source_Year',
'type' => 'date',
'label' => 'Source_Year',
'options' => array(
'language' => 'en',
'format' => 'dMY',
'addEmptyOption'=> TRUE,
'minYear' => 1900
)
),
*/
array(
'element' => 'Type_Genre',
'type' => 'text',
'label' => 'Type_Genre',
),
array(
'element' => 'dc:description',
'type' => 'textarea',
'label' => 'Description',
),
array(
'element' => 'dc:format',
'type' => 'select',
'label' => 'Format',
'options' => array(
'' => '',
'audio/mpeg' => 'audio/mpeg',
'File' => 'File',
'live stream' => 'Live Stream',
'networked file'=> 'Networked File'
)
),
array(
'element' => 'Type_BPM',
'type' => 'text',
'label' => 'Type_BPM',
'rule' => 'numeric',
),
array(
'element' => 'Description_Rating',
'type' => 'text',
'label' => 'Description_Rating',
'rule' => 'numeric',
),
array(
'element' => 'dcterms:extent',
'type' => 'text',
'label' => 'Extent',
'attributes'=> array('readonly' => 'on')
),
),
'Music_Advanced'=> array(
array(
'element' => 'Creator_Role_Encoder',
'type' => 'text',
'label' => 'Creator_Role_Encoder',
),
array(
'element' => 'Source_Album_TrackNumber',
'type' => '',
'label' => 'Source_Album_TrackNumber',
'rule' => 'numeric',
),
array(
'element' => 'Source_Album_DiscNumber',
'type' => 'text',
'label' => 'Source_Album_DiscNumber',
'rule' => 'numeric',
),
array(
'element' => 'Description_Mood',
'type' => 'text',
'label' => 'Description_Mood',
),
array(
'element' => 'Publisher',
'type' => 'text',
'label' => 'Publisher',
),
array(
'element' => 'Creator_Role_Composer',
'type' => 'text',
'label' => 'Creator_Role_Composer',
),
array(
'element' => 'Format_Medium_Bitrate',
'type' => 'text',
'label' => 'Format_Medium_Bitrate',
'rule' => 'numeric'
),
array(
'element' => 'Format_Medium_Channels',
'type' => 'select',
'label' => 'Format_Medium_Channels',
'options' => array(
'' => '',
'mono' => 'Mono',
'stereo' => 'Stereo',
'5.1' => '5.1'
)
),
array(
'element' => 'Format_Medium_Samplerate',
'type' => 'text',
'label' => 'Format_Medium_Samplerate',
'rule' => 'numeric'
),
array(
'element' => 'Format_Medium_Encoder',
'type' => 'text',
'label' => 'Format_Medium_Encoder',
),
array(
'element' => 'Format_CRC',
'type' => 'text',
'label' => 'Format_CRC',
'rule' => 'numeric'
),
array(
'element' => 'Description_Lyrics',
'type' => 'textarea',
'label' => 'Description_Lyrics',
),
array(
'element' => 'Creator_Role_Orchestra',
'type' => 'text',
'label' => 'Creator_Role_Orchestra',
),
array(
'element' => 'Creator_Role_Conductor',
'type' => 'text',
'label' => 'Creator_Role_Conductor',
),
array(
'element' => 'Creator_Role_Lyricist',
'type' => 'text',
'label' => 'Creator_Role_Lyricist',
),
array(
'element' => 'Creator_Role_OriginalLyricist',
'type' => 'text',
'label' => 'Creator_Role_OriginalLyricist',
),
array(
'element' => 'Creator_Role_RadioStationName',
'type' => 'text',
'label' => 'Creator_Role_RadioStationName',
),
array(
'element' => 'Description_AudioFileInfoURL',
'type' => 'text',
'label' => 'Description_AudioFileInfoURL',
),
array(
'element' => 'Description_ArtistURL',
'type' => 'text',
'label' => 'Description_ArtistURL',
),
array(
'element' => 'Description_AudioSourceURL',
'type' => 'text',
'label' => 'Description_AudioSourceURL',
),
array(
'element' => 'Description_RadioStationURL',
'type' => 'text',
'label' => 'Description_RadioStationURL',
),
array(
'element' => 'Description_BuyCDURL',
'type' => 'text',
'label' => 'Description_BuyCDURL',
),
array(
'element' => 'Identifier_ISRCNumber',
'type' => 'text',
'label' => 'Identifier_ISRCNumber',
'rule' => 'numeric'
),
array(
'element' => 'Identifier_CatalogNumber',
'type' => 'text',
'label' => 'Identifier_CatalogNumber',
'rule' => 'numeric'
),
array(
'element' => 'Creator_Role_OriginalArtist',
'type' => 'text',
'label' => 'Creator_Role_OriginalArtist',
),
array(
'element' => 'Rights_Copyright',
'type' => 'text',
'label' => 'Rights_Copyright',
),
),
'Talk_Basic' => array(
array(
'element' => 'dc:title',
'type' => 'text',
'label' => 'Title',
),
array(
'element' => 'Coverage',
'type' => 'text',
'label' => 'Coverage',
),
array(
'element' => 'dc:description',
'type' => 'textarea',
'label' => 'Description',
),
array(
'element' => 'Creator',
'type' => 'text',
'label' => 'Creator',
),
array(
'element' => 'Subject',
'type' => 'text',
'label' => 'Subject',
),
array(
'element' => 'Type_Genre',
'type' => 'text',
'label' => 'Type_Genre',
),
array(
'element' => 'dc:format',
'type' => 'select',
'label' => 'Format',
'options' => array(
'' => '',
'audio/mpeg' => 'audio/mpeg',
'File' => 'File',
'live stream' => 'Live Stream',
'networked file'=> 'Networked File',
)
),
),
'Talk_Advanced' => array(
array(
'element' => 'Contributor',
'type' => 'text',
'label' => 'Contributor',
),
array(
'element' => 'Language',
'type' => 'text',
'label' => 'Language',
),
array(
'element' => 'Rights',
'type' => 'text',
'label' => 'Rights',
),
)
)
),
'chgPasswd' => array(
array(
'element' => 'act',
'type' => 'hidden',
'default' => 'chgPasswd'
),
array(
'element' => 'uid',
'type' => 'hidden',
),
array(
'element' => 'oldpass',
'type' => 'password',
'label' => 'Old Password',
'required' => TRUE,
),
array(
'element' => 'pass',
'type' => 'password',
'label' => 'New Password',
'required' => TRUE,
),
array(
'element' => 'pass2',
'type' => 'password',
'label' => 'Retype Password',
'required' => TRUE,
),
array(
'rule' => 'compare',
'element' => array('pass','pass2'),
'rulemsg' => 'The Passwords do not match'
),
array(
'element' =>'Submit',
'type' =>'submit',
'label' =>'Submit'
)
),
'addUser' => array(
array(
'element' => 'act',
'type' => 'hidden',
'constant' => 'addUser'
),
array(
'element' => 'login',
'type' => 'text',
'label' => 'Username',
'required' => TRUE
),
array(
'element' =>'pass',
'type' =>'password',
'label' =>'Users Password',
'required' =>TRUE
),
array(
'element' =>'pass2',
'type' =>'password',
'label' =>'Repeat Password',
'required' =>TRUE
),
array(
'rule' =>'compare',
'element' =>array('pass','pass2'),
'rulemsg' =>'The Passwords do not match'
),
array(
'element' =>'Submit',
'type' =>'submit',
'label' =>'Submit'
)
),
'addGroup' => array(
array(
'element' => 'act',
'type' => 'hidden',
'constant' => 'addGroup'
),
array(
'element' => 'login',
'type' => 'text',
'label' => 'Group Name',
'required' => TRUE
),
array(
'element' =>'Submit',
'type' =>'submit',
'label' =>'Submit'
)
),
'login' => array(
array(
'element' => 'act',
'type' => 'hidden',
'constant' => 'login'
),
array(
'element' => 'login',
'type' => 'text',
'label' => 'Username',
'required' => TRUE
),
array(
'element' => 'pass',
'type' => 'password',
'label' => 'Password',
'required' => TRUE
),
array(
'element' => 'Submit',
'type' => 'submit',
'label' => 'Submit'
),
array(
'element' => 'cancel',
'type' => 'button',
'label' => 'Cancel',
'attributes'=> array('onClick' => 'window.close()')
)
),
'uploadFileM' => array(
array(
'element' => 'act',
'type' => 'hidden',
'constant' => 'uploadFileM'
),
array(
'element' => 'id',
'type' => 'hidden'
),
array(
'element' => 'mediafile',
'type' => 'file',
'label' => 'Mediafile',
'required' => TRUE,
'requiredmsg'=> 'please select Media file'
),
array(
'element' => 'mdatafile',
'type' => 'file',
'label' => 'Metadata',
'required' => TRUE,
'requiredmsg'=> 'please select Metadata file'
),
array(
'element' => 'Submit',
'type' => 'submit',
'label' => 'Submit'
)
),
'uploadFile' => array(
array(
'element' => 'act',
'type' => 'hidden',
'constant' => 'uploadFile'
),
array(
'element' => 'id',
'type' => 'hidden'
),
array(
'element' => 'mediafile',
'type' => 'file',
'label' => 'Mediafile',
'required' => TRUE,
'requiredmsg'=> 'please select Media file'
),
array(
'element' => 'Submit',
'type' => 'submit',
'label' => 'Submit'
)
),
'addWebstream' => array(
array(
'element' => 'act',
'type' => 'hidden',
'constant' => 'addWebstream'
),
array(
'element' => 'id',
'type' => 'hidden'
),
array(
'element' => 'name',
'type' => 'text',
'label' => 'Name',
'required' => TRUE,
'rule' => 'alphanumeric',
'rulemsg' => 'Name must be alphanumeric'
),
array(
'element' => 'url',
'type' => 'text',
'default' => 'http://',
'label' => 'Stream URL',
'required' => TRUE,
'requiredmsg'=> 'URL is missing',
'rule' => 'regex',
'format' => UI_REGEX_URL,
'rulemsg' => 'URL seems invalid',
),
array(
'element' => 'duration',
'type' => 'date',
'label' => 'Duration',
'options' => array(
'format' => 'His',
)
),
array(
'element' => 'Submit',
'type' => 'submit',
'label' => 'Submit'
)
),
'searchform' => array(
array(
'element' => 'act',
'type' => 'hidden',
'constant' => 'search'
),
array(
'element' => 'id',
'type' => 'hidden'
),
array(
'element' => 'counter',
'type' => 'hidden'
),
array(
'element' => 'max_rows',
'type' => 'hidden',
'constant' => UI_SEARCH_MAX_ROWS
),
array(
'element' => 'operator',
'type' => 'select',
'label' => 'Operator',
'options' => array(
'or' => 'Or',
'and' => 'And',
)
),
array(
'element' => 'filetype',
'type' => 'select',
'label' => 'Filetype',
'options' => array(
'File' => '*',
'audioclip' => 'Audioclip',
'webstream' => 'Webstream',
'playlist' => 'Playlist'
)
),
array(
'element' => 'clear',
'type' => 'button',
'label' => 'Clear',
'attributes' => array('onClick' => "hpopup('".UI_HANDLER."?act=search', 'SF')"),
'groupit' => TRUE,
),
array(
'element' => 'addrow',
'type' => 'button',
'label' => 'One more Row',
'attributes' => array('onClick' => 'SearchForm_addRow()'),
'groupit' => TRUE,
),
array(
'element' => 'submit',
'type' => 'submit',
'label' => 'Submit',
'groupit' => TRUE,
),
array('group' => array('clear', 'addrow', 'submit')
),
),
'relations' => array(
'standard' => array(
'partial' => 'partial',
'full' => 'full',
'prefix' => 'prefix',
'=' => '=' ,
'<' => '<',
'<=' => '<=',
'>' => '>',
'>=' => '>='
),
1 => array(
'partial' => 'partial',
'full' => 'full',
'prefix' => 'prefix',
'=' => '='
),
),
'languages' => array(
array(
'element' => 'langid',
'type' => 'select',
'label' => 'Language',
'options' => array(
'en' => 'English',
'cz' => 'Czech',
'de' => 'German',
'hu' => 'Hungarian',
)
)
)
);