Add code to use OpenAI API to do transalations

This commit is contained in:
Brian Read 2024-06-13 16:38:25 +01:00
parent a5f8e153a2
commit d1ab8b4256
38 changed files with 1258 additions and 477 deletions

View File

@ -1,5 +1,5 @@
#
# Routines to be editted by the developer to provide validation for parameters
# Routines to be edited by the developer to provide validation for parameters
# and provison of the control data for table(s)
#
# Generated by SME2Gen version:0.7 Chameleon version:4.5.4 On Python:3.10.12 at 2024-05-06 08:40

View File

@ -1,8 +1,8 @@
#
# Routines to be editted by the developer to provide validation for parameters
# Routines to be edited by the developer to provide validation for parameters
# and provison of the control data for table(s)
#
# Generated by SME2Gen version:0.7 Chameleon version:4.5.4 On Python:3.10.12 at 2024-05-06 10:02
# Generated by SM2Gen version:0.8 Chameleon version:4.5.4 On Python:3.10.12 at 2024-06-13 15:12
#
use esmith::util;

View File

@ -1,16 +1,15 @@
package SrvMngr::Controller::Nfsshare;
#
# Generated by version:SME2Gen version:0.7 Chameleon version:4.5.4 On Python:3.10.12 at 2024-05-06 10:02
# Generated by version:SM2Gen version:0.8 Chameleon version:4.5.4 On Python:3.10.12 at 2024-06-13 15:12
#
#----------------------------------------------------------------------
# heading : Network
# description : NFS data share
# navigation : 2000 400
#
# name : nfsshare, method : get, url : /nfsshare, ctlact : nfsshare#main
# name : nfsshareu, method : post, url : /nfsshareu, ctlact : nfsshare#do_update
# name : nfsshared, method : get, url : /nfsshared, ctlact : nfsshare#do_display
# name : nfssharee, method : post, url : /nfsshared, ctlact : nfsshare#do_display
# name : nfsshare, method : get, url : /nfsshare, ctlact : Nfsshare#main
# name : nfsshareu, method : post, url : /nfsshareu, ctlact : Nfsshare#do_update
# name : nfsshared, method : get, url : /nfsshared, ctlact : Nfsshare#do_display
#
# routes : end
#
@ -87,7 +86,7 @@ sub main {
modul => $modul,
nfs_data => \%nfs_data
);
$c->render( template => "Nfsshare" );
$c->render( template => "nfsshare" );
}
# Post request with params - submit from the form
@ -168,7 +167,7 @@ sub do_update {
$c->stash(error => $c->l($ret));
$c->render("Nfsshare");
} else {
$c->stash( success => $c->l('nfs_PARAMS_panel_action_was_successfull')); #A bit bland - edit it in the lex file
$c->stash( success => $c->l('nfs_PARAMS_panel_action_was_successful')); #A bit bland - edit it in the lex file
}
}
@ -180,7 +179,7 @@ sub do_update {
$c->stash(error => $c->l($ret));
$c->render("Nfsshare");
} else {
$c->stash( success => $c->l('nfs_TABLE_panel_action_was_successfull')); #A bit bland - edit it in the lex file
$c->stash( success => $c->l('nfs_TABLE_panel_action_was_successful')); #A bit bland - edit it in the lex file
}
}

View File

@ -1,7 +1,7 @@
%#
%# Generated by SME2Gen version:0.7 Chameleon version:4.5.4 On Python:3.10.12 at 2024-05-06 10:02
%# Generated by SM2Gen version:0.8 Chameleon version:4.5.4 On Python:3.10.12 at 2024-06-13 15:12
%#
<div id="Nfsshare-PARAMS">
<div id="Nfsshare-PARAMS" class="partial Nfsshare-PARAMS">
<script>
window.onload = function() {
SelectInput();
@ -24,9 +24,9 @@
</p>
<p><span class=label>
%=l('nfs_Information_Bay_name'), class => 'label'
%=l('nfs_Information_Bay_name')
</span><span class=data>
%= stash("IbayName"), class => 'data'
%= stash("IbayName")
</span></p>
<p><span class=label>
@ -135,5 +135,5 @@
</span>
%# Probably finally by a submit.
% end
%end
</div>

View File

@ -1,7 +1,7 @@
%#
%# Generated by SME2Gen version:0.7 Chameleon version:4.5.4 On Python:3.10.12 at 2024-05-06 10:02
%# Generated by SM2Gen version:0.8 Chameleon version:4.5.4 On Python:3.10.12 at 2024-06-13 15:12
%#
<div id="Nfsshare-TABLE">
<div id="Nfsshare-TABLE" class="partial Nfsshare-TABLE">
<script>
window.onload = function() {
SelectInput();
@ -19,23 +19,23 @@
<h2><%=l('nfs_Manage_NFS_Ibay_settings:')%></h2>
<br /><table class="sme-border TableSort">
<br /><table class="sme-border TableSort sme-table">
<thead>
<tr>
<th class='sme-border'><%=l('nfs_Name')%></th>
<th class='sme-border'><%=l('nfs_Description')%></th>
<th class='sme-border'><%=l('Nfs_status')%></th>
<th class='sme-border'><%=l('nfs_Action')%></th>
<tr table-head-row>
<th class='sme-border table-head-col table-head-col-Name '><%=l('nfs_Name')%></th>
<th class='sme-border table-head-col table-head-col-Description '><%=l('nfs_Description')%></th>
<th class='sme-border table-head-col table-head-col-Nfs status '><%=l('Nfs_status')%></th>
<th class='sme-border table-head-col table-head-col-Action '><%=l('nfs_Action')%></th>
</tr>
</thead>
<tbody>
% my $control_data = $self->stash('ibays');
% foreach my $row (@$control_data) {
<tr>
<td class='sme-border'><%=$c->render_to_string(inline=>$row->{Name})%></td>
<td class='sme-border'><%=$c->render_to_string(inline=>$row->{Description})%></td>
<td class='sme-border'><%=$c->render_to_string(inline=>$row->{flag})%></td>
<td class='sme-border'><%=$c->render_to_string(inline=>$row->{Modify})%></td>
<tr class='table-row'>
<td class='sme-border table-col table-col-Name'><%=$c->render_to_string(inline=>$row->{Name})%></td>
<td class='sme-border table-col table-col-Description'><%=$c->render_to_string(inline=>$row->{Description})%></td>
<td class='sme-border table-col table-col-flag'><%=$c->render_to_string(inline=>$row->{flag})%></td>
<td class='sme-border table-col table-col-Modify'><%=$c->render_to_string(inline=>$row->{Modify})%></td>
</tr>
%}
</tbody>
@ -43,5 +43,5 @@
%# Probably finally by a submit.
% end
%end
</div>

View File

@ -1,6 +1,6 @@
% layout 'default', title => "Sme server 2 - NFS data share", share_dir => './';
%#
%# Generated by SME2Gen version:0.7 Chameleon version:4.5.4 On Python:3.10.12 at 2024-05-06 10:02
%# Generated by SM2Gen version:0.8 Chameleon version:4.5.4 On Python:3.10.12 at 2024-06-13 15:12
%#
% content_for 'module' => begin
<div id="module" class="module Nfsshare-panel">

28
Targets/nfsshare_bg.lex Normal file
View File

@ -0,0 +1,28 @@
'nfs_File_system_permissions' => 'Разрешения за файловата система'
'nfs_Write_(a)synchronously' => 'Пишете (а)синхронно'
'nfs_Set_the_GID.' => 'Задайте GID.'
'nfs_Hello_TABLE' => 'Здравей, МАСА'
'nfs_PARAMS_panel_action_was_successfull' => 'Действието на панела с параметри беше успешно'
'nfs_NFS_Client(s)_allowed' => 'Разрешени NFS клиенти'
'nfs_Action' => 'Действие'
'nfs_Set_the_uid_and_gid' => 'Задайте uid и gid, ако искате всички заявки да изглеждат като от един потребител или една група. В противен случай оставете празно.'
'Nfs_status' => 'Статус'
'nfs_Browse_the_parent_folders' => 'Прегледайте родителските папки'
'nfs_TABLE_panel_action_was_successfull' => 'ПАНЕЛНОТО действие на ТАБЛИЦАТА беше успешно.'
'nfs_NFS_data_share' => 'NFS споделяне на данни'
'nfs_Name' => 'Име'
'nfs_Manage_NFS_Ibay_settings:' => 'Управление на настройките на NFS Ibay:'
'nfs_Save' => 'Запази'
'nfs_Share_owner_Group' => 'Група на акционери'
'nfs_For_writing_permissions,allowing_the_root' => 'За разрешения за писане, позволяване на root потребителя и използване на несигурни портове, трябва да конфигурирате списък с по един IP адрес на ред, като част от локалната мрежа/мрежи.'
'nfs_Information_Bay_name' => 'Име на информационен залив'
'nfs_Requests_on_secure_ports' => 'Заявки на защитени портове'
'nfs_Squash_the_power_of_users' => 'Смажете силата на потребителите'
'nfs_Hello_PARAMS' => 'Здравейте, PARAMS'
'nfs_These_parameters_will_be_effective' => 'Тези параметри ще бъдат ефективни само ако споделянето е активирано. Споделянето е в /home/e-smith/files/ibays//files'
'nfs_APPLY' => 'Приложи'
'nfs_Set_the_UID.' => 'Задайте UID.'
'nfs_Description' => 'Описание'
'nfs_Enable_the_NFS_Share' => 'Разрешаване на NFS споделянето'
'nfs_Delays_the_disk_writing' => 'Забавя записването на диска'
'nfs_EnableShare_on_local_network' => 'Активиране на споделяне в локалната мрежа'

28
Targets/nfsshare_da.lex Normal file
View File

@ -0,0 +1,28 @@
'nfs_File_system_permissions' => 'Filsystemtilladelser'
'nfs_Write_(a)synchronously' => 'Skriv (a)synkront'
'nfs_Set_the_GID.' => 'Indstil GID'en.'
'nfs_Hello_TABLE' => 'Hej BORD'
'nfs_PARAMS_panel_action_was_successfull' => 'PARAMS-panelets handling var vellykket'
'nfs_NFS_Client(s)_allowed' => 'NFS-klient(er) tilladt'
'nfs_Action' => 'Handling'
'nfs_Set_the_uid_and_gid' => 'Sæt uid og gid, hvis du vil have, at alle forespørgsler skal se ud til at komme fra en bruger eller en gruppe. Ellers lad være tom.'
'Nfs_status' => 'Status'
'nfs_Browse_the_parent_folders' => 'Gennemse de overordnede mapper'
'nfs_TABLE_panel_action_was_successfull' => 'TABEL panel handling var vellykket'
'nfs_NFS_data_share' => 'NFS-dataandel'
'nfs_Name' => 'Navn'
'nfs_Manage_NFS_Ibay_settings:' => 'Administrer NFS Ibay-indstillinger:'
'nfs_Save' => 'Gem'
'nfs_Share_owner_Group' => 'Ejergruppe'
'nfs_For_writing_permissions,allowing_the_root' => 'For skrivetilladelser, tilladelse af root-brugeren og brug af usikre porte, skal du konfigurere en liste med én IP pr. linje, og disse skal være en del af det lokale netværk.'
'nfs_Information_Bay_name' => 'Oplysningsbugt navn'
'nfs_Requests_on_secure_ports' => 'Anmodninger på sikre porte'
'nfs_Squash_the_power_of_users' => '"Knus brugernes magt"'
'nfs_Hello_PARAMS' => 'Hej PARAMS'
'nfs_These_parameters_will_be_effective' => 'Disse parametre vil kun være effektive, hvis delingen er aktiveret. Delingen er i /home/e-smith/files/ibays//files'
'nfs_APPLY' => 'Ansøg'
'nfs_Set_the_UID.' => 'Sæt UID'en.'
'nfs_Description' => 'Beskrivelse'
'nfs_Enable_the_NFS_Share' => 'Aktivér NFS-deling'
'nfs_Delays_the_disk_writing' => 'Forsinker disk-skrivningen'
'nfs_EnableShare_on_local_network' => 'Aktiver deling på lokalt netværk'

28
Targets/nfsshare_de.lex Normal file
View File

@ -0,0 +1,28 @@
'nfs_File_system_permissions' => 'Dateisystemberechtigungen'
'nfs_Write_(a)synchronously' => 'Schreiben Sie (a)synchron.'
'nfs_Set_the_GID.' => 'Setze die GID.'
'nfs_Hello_TABLE' => 'Hallo TISCH'
'nfs_PARAMS_panel_action_was_successfull' => 'Die Aktion des PARAMS-Panels war erfolgreich.'
'nfs_NFS_Client(s)_allowed' => 'NFS-Client(s) zulässig'
'nfs_Action' => 'Aktion'
'nfs_Set_the_uid_and_gid' => 'Setzen Sie die UID und GID, wenn Sie möchten, dass alle Anfragen von einem Benutzer oder einer Gruppe zu stammen scheinen. Andernfalls lassen Sie das Feld leer.'
'Nfs_status' => 'Status'
'nfs_Browse_the_parent_folders' => 'Durchsuchen Sie die übergeordneten Ordner'
'nfs_TABLE_panel_action_was_successfull' => 'TABELLE Panelaktion war erfolgreich.'
'nfs_NFS_data_share' => 'NFS-Datenfreigabe'
'nfs_Name' => 'Name in German is "Name".'
'nfs_Manage_NFS_Ibay_settings:' => 'Verwalten Sie die NFS-Ibay-Einstellungen:'
'nfs_Save' => '"Speichern"'
'nfs_Share_owner_Group' => 'Anteilseignergruppe'
'nfs_For_writing_permissions,allowing_the_root' => 'Für Schreibberechtigungen, das Zulassen des Root-Benutzers und die Verwendung unsicherer Ports, müssen Sie eine Liste von jeweils einer IP pro Zeile konfigurieren, die Teil des lokalen Netzwerks ist.'
'nfs_Information_Bay_name' => 'Information Bay Name'
'nfs_Requests_on_secure_ports' => 'Anfragen über sichere Ports'
'nfs_Squash_the_power_of_users' => '"Macht der Benutzer unterdrücken"'
'nfs_Hello_PARAMS' => 'Hallo PARAMS'
'nfs_These_parameters_will_be_effective' => 'Diese Parameter sind nur wirksam, wenn die Freigabe aktiviert ist. Die Freigabe befindet sich in /home/e-smith/files/ibays//files.'
'nfs_APPLY' => 'Bewerben'
'nfs_Set_the_UID.' => 'Setze die UID.'
'nfs_Description' => 'Beschreibung'
'nfs_Enable_the_NFS_Share' => 'Aktivieren Sie die NFS-Freigabe'
'nfs_Delays_the_disk_writing' => 'Verzögert das Schreiben auf die Festplatte'
'nfs_EnableShare_on_local_network' => '"Auf dem lokalen Netzwerk freigeben ermöglichen"'

28
Targets/nfsshare_el.lex Normal file
View File

@ -0,0 +1,28 @@
'nfs_File_system_permissions' => 'Δικαιώματα συστήματος αρχείων'
'nfs_Write_(a)synchronously' => 'Γράψτε (α)συγχρόνως'
'nfs_Set_the_GID.' => 'Ορίστε το GID.'
'nfs_Hello_TABLE' => 'Γεια σου ΤΡΑΠΕΖΙ'
'nfs_PARAMS_panel_action_was_successfull' => 'Η ενέργεια του πίνακα PARAMS ήταν επιτυχής'
'nfs_NFS_Client(s)_allowed' => 'Επιτρέπονται οι πελάτες NFS'
'nfs_Action' => 'Δράση'
'nfs_Set_the_uid_and_gid' => 'Ορίστε το UID και το GID αν θέλετε όλες οι αιτήσεις να φαίνονται ότι προέρχονται από έναν χρήστη ή μία ομάδα. Διαφορετικά, αφήστε το κενό.'
'Nfs_status' => 'Κατάσταση'
'nfs_Browse_the_parent_folders' => 'Περιήγηση στους γονικούς φακέλους'
'nfs_TABLE_panel_action_was_successfull' => 'Ο ΠΙΝΑΚΑΣ δράσης ήταν επιτυχής.'
'nfs_NFS_data_share' => 'Κοινή χρήση δεδομένων NFS'
'nfs_Name' => 'Όνομα'
'nfs_Manage_NFS_Ibay_settings:' => 'Διαχείριση ρυθμίσεων NFS Ibay:'
'nfs_Save' => 'Αποθήκευση'
'nfs_Share_owner_Group' => 'Κάτοχος μετοχών Ομάδας'
'nfs_For_writing_permissions,allowing_the_root' => 'Για άδειες εγγραφής, επιτρέποντας στον root χρήστη και χρησιμοποιώντας μη ασφαλείς θύρες, πρέπει να διαμορφώσετε μια λίστα με μία IP ανά γραμμή, που να είναι μέρος του τοπικού δικτύου (ή δικτύων).'
'nfs_Information_Bay_name' => 'Όνομα Κόλπου Πληροφοριών'
'nfs_Requests_on_secure_ports' => 'Αιτήματα σε ασφαλείς θύρες'
'nfs_Squash_the_power_of_users' => 'Συμπίεσε τη δύναμη των χρηστών'
'nfs_Hello_PARAMS' => 'Γειά σου PARAMS'
'nfs_These_parameters_will_be_effective' => 'Αυτές οι παράμετροι θα είναι αποτελεσματικές μόνο εάν η κοινή χρήση είναι ενεργοποιημένη. Η κοινή χρήση βρίσκεται στο /home/e-smith/files/ibays//files'
'nfs_APPLY' => 'Εφαρμόζω'
'nfs_Set_the_UID.' => 'Ορίστε το UID.'
'nfs_Description' => 'Περιγραφή'
'nfs_Enable_the_NFS_Share' => 'Ενεργοποιήστε την Κοινή Χρήση NFS'
'nfs_Delays_the_disk_writing' => 'Καθυστερεί τη γραφή του δίσκου'
'nfs_EnableShare_on_local_network' => 'Ενεργοποίηση κοινής χρήσης σε τοπικό δίκτυο'

View File

@ -1,28 +1,28 @@
'nfs_Name' => 'Name',
'nfs_For_writing_permissions,allowing_the_root' => 'For writing permissions, Allowing the root user and using insecure ports, You must configure a list of one IP per line, Being part of the local network(s). ',
'nfs_Manage_NFS_Ibay_settings:' => 'Manage NFS Ibay settings:',
'nfs_NFS_data_share' => 'NFS data share',
'nfs_NFS_Client(s)_allowed' => 'NFS Client(s) allowed',
'nfs_Hello_TABLE' => 'Hello TABLE',
'nfs_Set_the_uid_and_gid' => 'Set the uid and gid if you want all requests appear to be from one user or one group, Otherwise leave blank',
'nfs_Write_(a)synchronously' => 'Write (a)synchronously',
'nfs_These_parameters_will_be_effective' => 'These parameters will be effective only if the share is enabled. The share is in /home/e-smith/files/ibays//files',
'nfs_Set_the_UID.' => 'Set the UID. ',
'nfs_File_system_permissions' => 'File system permissions',
'nfs_Delays_the_disk_writing' => 'Delays the disk writing',
'nfs_Squash_the_power_of_users' => 'Squash the power of users',
'nfs_Information_Bay_name' => 'Information Bay name',
'nfs_Share_owner_Group' => 'Share owner Group',
'nfs_Save' => 'Save',
'nfs_APPLY' => 'Apply',
'nfs_Description' => 'Description',
'nfs_Hello_PARAMS' => 'Hello PARAMS',
'nfs_TABLE_panel_action_was_successfull' => 'TABLE panel action was successfull',
'nfs_Enable_the_NFS_Share' => 'Enable the NFS Share',
'nfs_EnableShare_on_local_network' => 'Enableshare on local network',
'nfs_PARAMS_panel_action_was_successfull' => 'PARAMS panel action was successfull',
'nfs_Write_(a)synchronously' => 'Write (a)synchronously',
'nfs_Set_the_GID.' => 'Set the GID. ',
'nfs_Hello_TABLE' => 'Hello TABLE',
'nfs_PARAMS_panel_action_was_successfull' => 'PARAMS panel action was successfull',
'nfs_NFS_Client(s)_allowed' => 'NFS Client(s) allowed',
'nfs_Action' => 'Action',
'nfs_Browse_the_parent_folders' => 'Browse the parent folders',
'nfs_Set_the_uid_and_gid' => 'Set the uid and gid if you want all requests appear to be from one user or one group, Otherwise leave blank',
'Nfs_status' => 'Status',
'nfs_Browse_the_parent_folders' => 'Browse the parent folders',
'nfs_TABLE_panel_action_was_successfull' => 'TABLE panel action was successfull',
'nfs_NFS_data_share' => 'NFS data share',
'nfs_Name' => 'Name',
'nfs_Manage_NFS_Ibay_settings:' => 'Manage NFS Ibay settings:',
'nfs_Save' => 'Save',
'nfs_Share_owner_Group' => 'Share owner Group',
'nfs_For_writing_permissions,allowing_the_root' => 'For writing permissions, Allowing the root user and using insecure ports, You must configure a list of one IP per line, Being part of the local network(s). ',
'nfs_Information_Bay_name' => 'Information Bay name',
'nfs_Requests_on_secure_ports' => 'Requests on secure ports',
'nfs_Squash_the_power_of_users' => 'Squash the power of users',
'nfs_Hello_PARAMS' => 'Hello PARAMS',
'nfs_These_parameters_will_be_effective' => 'These parameters will be effective only if the share is enabled. The share is in /home/e-smith/files/ibays//files',
'nfs_APPLY' => 'Apply',
'nfs_Set_the_UID.' => 'Set the UID. ',
'nfs_Description' => 'Description',
'nfs_Enable_the_NFS_Share' => 'Enable the NFS Share',
'nfs_Delays_the_disk_writing' => 'Delays the disk writing',
'nfs_EnableShare_on_local_network' => 'Enableshare on local network',

28
Targets/nfsshare_es.lex Normal file
View File

@ -0,0 +1,28 @@
'nfs_File_system_permissions' => 'Permisos del sistema de archivos'
'nfs_Write_(a)synchronously' => 'Escribe (a)síncronamente'
'nfs_Set_the_GID.' => 'Establecer el GID.'
'nfs_Hello_TABLE' => 'Hola, MESA'
'nfs_PARAMS_panel_action_was_successfull' => 'La acción del panel PARAMS fue exitosa.'
'nfs_NFS_Client(s)_allowed' => 'Cliente(s) NFS permitido(s)'
'nfs_Action' => 'Acción'
'nfs_Set_the_uid_and_gid' => 'Establezca el uid y gid si desea que todas las solicitudes parezcan provenir de un solo usuario o grupo. De lo contrario, déjelo en blanco.'
'Nfs_status' => 'Estado'
'nfs_Browse_the_parent_folders' => 'Examinar las carpetas principales'
'nfs_TABLE_panel_action_was_successfull' => 'La acción del PANEL de la MESA fue exitosa.'
'nfs_NFS_data_share' => 'Compartición de datos NFS'
'nfs_Name' => 'Nombre'
'nfs_Manage_NFS_Ibay_settings:' => 'Administrar configuraciones de NFS Ibay:'
'nfs_Save' => 'Guardar'
'nfs_Share_owner_Group' => 'Grupo de propietarios de acciones'
'nfs_For_writing_permissions,allowing_the_root' => 'Para obtener permisos de escritura, permitir el usuario root y utilizar puertos inseguros, debe configurar una lista de una IP por línea, siendo parte de la(s) red(es) local(es).'
'nfs_Information_Bay_name' => 'Nombre de la Bahía de Información'
'nfs_Requests_on_secure_ports' => 'Solicitudes en puertos seguros'
'nfs_Squash_the_power_of_users' => 'Aplasta el poder de los usuarios'
'nfs_Hello_PARAMS' => 'Hola PARAMS'
'nfs_These_parameters_will_be_effective' => 'Estos parámetros serán efectivos solo si el recurso compartido está habilitado. El recurso compartido se encuentra en /home/e-smith/files/ibays//files.'
'nfs_APPLY' => 'Aplicar'
'nfs_Set_the_UID.' => 'Establecer el UID.'
'nfs_Description' => 'Descripción'
'nfs_Enable_the_NFS_Share' => 'Habilitar el recurso compartido NFS'
'nfs_Delays_the_disk_writing' => 'Retrasa la escritura del disco.'
'nfs_EnableShare_on_local_network' => 'Habilitar compartir en la red local'

28
Targets/nfsshare_et.lex Normal file
View File

@ -0,0 +1,28 @@
'nfs_File_system_permissions' => 'Failisüsteemi õigused'
'nfs_Write_(a)synchronously' => 'Kirjuta (a)sünkroonselt'
'nfs_Set_the_GID.' => 'Määra GID.'
'nfs_Hello_TABLE' => 'Tere LAUD'
'nfs_PARAMS_panel_action_was_successfull' => 'PARAMS paneeli tegevus oli edukas'
'nfs_NFS_Client(s)_allowed' => 'NFS kliendid lubatud'
'nfs_Action' => 'Tegevus'
'nfs_Set_the_uid_and_gid' => 'Määrake UID ja GID, kui soovite, et kõik päringud tunduksid tulevat ühe kasutaja või ühe grupi poolt. Vastasel juhul jätke tühjaks.'
'Nfs_status' => 'Staatus'
'nfs_Browse_the_parent_folders' => 'Sirvi vanemkaustu'
'nfs_TABLE_panel_action_was_successfull' => 'TABELI paneeli toiming oli edukas'
'nfs_NFS_data_share' => 'NFS andmejagamine'
'nfs_Name' => 'Nimi'
'nfs_Manage_NFS_Ibay_settings:' => 'Halda NFS Ibay seadistusi:'
'nfs_Save' => 'Salvesta'
'nfs_Share_owner_Group' => 'Omanikegrupp'
'nfs_For_writing_permissions,allowing_the_root' => 'Kirjutusõiguste andmiseks, juurkasutaja lubamiseks ja ebaturvaliste portide kasutamiseks peate konfigureerima loendi, kus igal real on üks IP-aadress, mis kuulub kohalikku võrkku(võrkudesse).'
'nfs_Information_Bay_name' => 'The translation of "Information Bay name" to Estonian is "Teabejaama nimi".'
'nfs_Requests_on_secure_ports' => 'Päringud on turvatud portidel.'
'nfs_Squash_the_power_of_users' => 'Vähenda kasutajate võimu'
'nfs_Hello_PARAMS' => 'Tere, PARAMS'
'nfs_These_parameters_will_be_effective' => 'Need parameetrid rakenduvad ainult siis, kui jagamine on lubatud. Jagamine asub /home/e-smith/files/ibays//files kaustas.'
'nfs_APPLY' => 'Rakenda'
'nfs_Set_the_UID.' => 'Määra UID.'
'nfs_Description' => 'Kirjeldus'
'nfs_Enable_the_NFS_Share' => 'Luba NFS-i jagamine'
'nfs_Delays_the_disk_writing' => 'Viivitab ketta kirjutamisega'
'nfs_EnableShare_on_local_network' => 'Koosta jagamine kohaliku võrgu kaudu'

28
Targets/nfsshare_fr.lex Normal file
View File

@ -0,0 +1,28 @@
'nfs_File_system_permissions' => 'Permissions du système de fichiers'
'nfs_Write_(a)synchronously' => 'Écrire (a)synchrone(ment)'
'nfs_Set_the_GID.' => 'Définir le GID.'
'nfs_Hello_TABLE' => 'Bonjour TABLE'
'nfs_PARAMS_panel_action_was_successfull' => 'L'action du panneau PARAMS a été réussie.'
'nfs_NFS_Client(s)_allowed' => 'Client(s) NFS autorisé(s)'
'nfs_Action' => 'Action can be translated to French as "Action".'
'nfs_Set_the_uid_and_gid' => 'Définissez l'uid et le gid si vous souhaitez que toutes les demandes semblent provenir d'un utilisateur ou d'un groupe unique. Sinon, laissez vide.'
'Nfs_status' => 'Statut'
'nfs_Browse_the_parent_folders' => 'Parcourir les dossiers parents'
'nfs_TABLE_panel_action_was_successfull' => 'L'action du panneau TABLE a été réussie.'
'nfs_NFS_data_share' => 'Partage de données NFS'
'nfs_Name' => 'Nom'
'nfs_Manage_NFS_Ibay_settings:' => 'Gérer les paramètres NFS Ibay :'
'nfs_Save' => '"Sauvegarder"'
'nfs_Share_owner_Group' => '"Propriétaire de groupe"'
'nfs_For_writing_permissions,allowing_the_root' => 'Pour les autorisations d'écriture, permettre à l'utilisateur root et utiliser des ports non sécurisés, vous devez configurer une liste d'une adresse IP par ligne, faisant partie du/des réseau(x) local/locaux.'
'nfs_Information_Bay_name' => 'Nom de la baie d'information'
'nfs_Requests_on_secure_ports' => 'Demandes sur des ports sécurisés'
'nfs_Squash_the_power_of_users' => 'Écrasez le pouvoir des utilisateurs'
'nfs_Hello_PARAMS' => 'Bonjour PARAMS'
'nfs_These_parameters_will_be_effective' => 'Ces paramètres seront effectifs uniquement si le partage est activé. Le partage se trouve dans /home/e-smith/files/ibays//files'
'nfs_APPLY' => 'Appliquer'
'nfs_Set_the_UID.' => 'Définir l'UID.'
'nfs_Description' => 'Description'
'nfs_Enable_the_NFS_Share' => 'Activer le partage NFS'
'nfs_Delays_the_disk_writing' => '"Retarde l'écriture du disque"'
'nfs_EnableShare_on_local_network' => 'Autoriser le partage sur le réseau local'

28
Targets/nfsshare_he.lex Normal file
View File

@ -0,0 +1,28 @@
'nfs_File_system_permissions' => 'הרשאות מערכת קבצים'
'nfs_Write_(a)synchronously' => 'כתוב בצורה (א)סינכרונית'
'nfs_Set_the_GID.' => 'הגדר את ה-GID.'
'nfs_Hello_TABLE' => 'שלום עליו'
'nfs_PARAMS_panel_action_was_successfull' => 'פעולת לוח PARAMS הצליחה'
'nfs_NFS_Client(s)_allowed' => 'לקוח(ות) NFS מורשים'
'nfs_Action' => 'פעולה'
'nfs_Set_the_uid_and_gid' => 'הגדר את ה-uid וה-gid אם אתה רוצה שכל הבקשות ייראו כאילו הן מגיעות ממשתמש אחד או מקבוצה אחת, אחרת השאר ריק.'
'Nfs_status' => 'סטָטוּס'
'nfs_Browse_the_parent_folders' => 'עיין בתיקיות האב'
'nfs_TABLE_panel_action_was_successfull' => 'הפעולה של לוח TABLE הצליחה'
'nfs_NFS_data_share' => 'שיתוף נתונים NFS'
'nfs_Name' => 'Sure, the translation of the word "Name" in Hebrew is "שם".'
'nfs_Manage_NFS_Ibay_settings:' => 'נהל הגדרות NFS Ibay:'
'nfs_Save' => 'שמור'
'nfs_Share_owner_Group' => 'בעל המניות קבוצת'
'nfs_For_writing_permissions,allowing_the_root' => 'לצורך מתן הרשאות כתיבה, הכנסת משתמש root והשימוש בפורטים לא מאובטחים, עליך להגדיר רשימה של כתובת IP אחת בכל שורה, שהן חלק מהרשת המקומית.'
'nfs_Information_Bay_name' => 'שם אזור המידע'
'nfs_Requests_on_secure_ports' => 'בקשות על נמלים מאובטחים'
'nfs_Squash_the_power_of_users' => 'לְרַסֵּק אֶת הַכּוֹחַ שֶׁל הַמִּשְׁתַּמְּשִׁים'
'nfs_Hello_PARAMS' => 'שלום PARAMS'
'nfs_These_parameters_will_be_effective' => 'פרמטרים אלו יהיו יעילים רק אם השיתוף מופעל. השיתוף נמצא ב-/home/e-smith/files/ibays//files'
'nfs_APPLY' => 'להחיל'
'nfs_Set_the_UID.' => 'הגדר את ה-UID.'
'nfs_Description' => 'תיאור'
'nfs_Enable_the_NFS_Share' => 'אפשר את שיתוף ה-NFS'
'nfs_Delays_the_disk_writing' => 'מעכב את כתיבת הדיסק'
'nfs_EnableShare_on_local_network' => 'הפעל שיתוף ברשת המקומית'

30
Targets/nfsshare_hu.lex Normal file
View File

@ -0,0 +1,30 @@
'nfs_File_system_permissions' => 'Fájl rendszer jogosultságok'
'nfs_Write_(a)synchronously' => 'Írj (a)szinkron módon'
'nfs_Set_the_GID.' => 'Állítsa be a GID-t.'
'nfs_Hello_TABLE' => 'Hello ASZTAL'
'nfs_PARAMS_panel_action_was_successfull' => 'A PARAMS panel művelet sikeres volt.'
'nfs_NFS_Client(s)_allowed' => 'NFS kliens(ek) engedélyezve'
'nfs_Action' => 'Akció'
'nfs_Set_the_uid_and_gid' => 'Állítsa be az uid-t és a gid-t, ha azt szeretné, hogy minden kérés egy felhasználótól vagy egy csoporttól származzon. Egyébként hagyja üresen.'
'Nfs_status' => 'Állapot'
'nfs_Browse_the_parent_folders' => 'Tallózása a szülő mappák között'
'nfs_TABLE_panel_action_was_successfull' => 'A TÁBLÁZAT panel művelet sikeres volt.'
'nfs_NFS_data_share' => 'NFS adatmegosztás'
'nfs_Name' => 'Név'
'nfs_Manage_NFS_Ibay_settings:' => 'NFS Ibay beállítások kezelése:'
'nfs_Save' => 'Mentés'
'nfs_Share_owner_Group' => 'Részvényes csoport'
'nfs_For_writing_permissions,allowing_the_root' => 'Írási engedélyekhez, a root felhasználó engedélyezése és nem biztonságos portok használata esetén, konfigurálnia kell egy listát, amelyben minden sorban egy IP cím szerepel, amely a helyi hálózat(ok) része.'
'nfs_Information_Bay_name' => 'Információs Öböl név'
'nfs_Requests_on_secure_ports' => 'Kérések biztonságos portokon'
'nfs_Squash_the_power_of_users' => 'Zúzd össze a felhasználók erejét'
'nfs_Hello_PARAMS' => 'Hello PARAMS'
'nfs_These_parameters_will_be_effective' => 'Ezek a paraméterek csak akkor lesznek érvényesek, ha a megosztás engedélyezve van. A megosztás a következő helyen található: /home/e-smith/files/ibays//files'
'nfs_APPLY' => 'Alkalmaz'
'nfs_Set_the_UID.' => 'Állítsa be az UID-t.'
'nfs_Description' => 'Leírás'
'nfs_Enable_the_NFS_Share' => 'Sure, here is the translation:
"Engedélyezze az NFS megosztást"'
'nfs_Delays_the_disk_writing' => 'Késlelteti a lemezírást'
'nfs_EnableShare_on_local_network' => 'Helyi hálózaton történő megosztás engedélyezése'

28
Targets/nfsshare_id.lex Normal file
View File

@ -0,0 +1,28 @@
'nfs_File_system_permissions' => 'Izin sistem berkas'
'nfs_Write_(a)synchronously' => 'Menulis (a)secara sinkron/asinkron'
'nfs_Set_the_GID.' => 'Atur GID-nya.'
'nfs_Hello_TABLE' => 'Halo MEJA'
'nfs_PARAMS_panel_action_was_successfull' => 'Tindakan panel PARAMS berhasil.'
'nfs_NFS_Client(s)_allowed' => 'Klien NFS diizinkan'
'nfs_Action' => 'Aksi'
'nfs_Set_the_uid_and_gid' => 'Tentukan uid dan gid jika Anda ingin semua permintaan terlihat berasal dari satu pengguna atau satu grup, Jika tidak, biarkan kosong.'
'Nfs_status' => 'Status'
'nfs_Browse_the_parent_folders' => 'Jelajahi folder induk'
'nfs_TABLE_panel_action_was_successfull' => 'Aksi panel TABEL berhasil.'
'nfs_NFS_data_share' => 'Berbagi data NFS'
'nfs_Name' => 'Nama'
'nfs_Manage_NFS_Ibay_settings:' => 'Kelola pengaturan NFS Ibay:'
'nfs_Save' => 'Menyimpan'
'nfs_Share_owner_Group' => 'Pemilik Saham Grup'
'nfs_For_writing_permissions,allowing_the_root' => 'Untuk izin penulisan, Mengizinkan pengguna root dan menggunakan port yang tidak aman, Anda harus mengonfigurasi daftar satu IP per baris, Menjadi bagian dari jaringan lokal.'
'nfs_Information_Bay_name' => 'Nama Teluk Informasi'
'nfs_Requests_on_secure_ports' => 'Permintaan di port aman'
'nfs_Squash_the_power_of_users' => 'Hancurkan kekuatan pengguna'
'nfs_Hello_PARAMS' => 'Halo PARAMS'
'nfs_These_parameters_will_be_effective' => 'Parameter ini hanya akan efektif jika share diaktifkan. Share tersebut berada di /home/e-smith/files/ibays//files.'
'nfs_APPLY' => 'Mengajukan'
'nfs_Set_the_UID.' => 'Tetapkan UID.'
'nfs_Description' => 'Deskripsi'
'nfs_Enable_the_NFS_Share' => 'Aktifkan Berbagi NFS'
'nfs_Delays_the_disk_writing' => 'Menunda penulisan disk'
'nfs_EnableShare_on_local_network' => 'Mengaktifkan berbagi di jaringan lokal'

28
Targets/nfsshare_it.lex Normal file
View File

@ -0,0 +1,28 @@
'nfs_File_system_permissions' => 'Permessi del file system'
'nfs_Write_(a)synchronously' => 'Scrivi (a)sincronamente'
'nfs_Set_the_GID.' => 'Imposta il GID.'
'nfs_Hello_TABLE' => 'Hello TAVOLO'
'nfs_PARAMS_panel_action_was_successfull' => 'L'azione del pannello PARAMS è stata completata con successo.'
'nfs_NFS_Client(s)_allowed' => 'Client(s) NFS consentiti'
'nfs_Action' => 'Azione'
'nfs_Set_the_uid_and_gid' => 'Imposta uid e gid se desideri che tutte le richieste appaiano provenire da un solo utente o da un solo gruppo, altrimenti lasciare vuoto.'
'Nfs_status' => 'Stato'
'nfs_Browse_the_parent_folders' => 'Esplora le cartelle principali'
'nfs_TABLE_panel_action_was_successfull' => 'L'azione del pannello TAVOLA è riuscita.'
'nfs_NFS_data_share' => 'Condivisione dati NFS'
'nfs_Name' => 'Nome'
'nfs_Manage_NFS_Ibay_settings:' => 'Gestisci le impostazioni di NFS Ibay:'
'nfs_Save' => 'Salva'
'nfs_Share_owner_Group' => 'Gruppo proprietario di azioni'
'nfs_For_writing_permissions,allowing_the_root' => 'Per le autorizzazioni di scrittura, consentire l'utente root e l'uso di porte non sicure, è necessario configurare un elenco di un IP per riga, facendo parte della rete locale.'
'nfs_Information_Bay_name' => 'Nome dell'Information Bay'
'nfs_Requests_on_secure_ports' => 'Richieste su porte sicure'
'nfs_Squash_the_power_of_users' => '"Schiaccia il potere degli utenti"'
'nfs_Hello_PARAMS' => 'Ciao PARAMS'
'nfs_These_parameters_will_be_effective' => 'Questi parametri saranno efficaci solo se la condivisione è abilitata. La condivisione si trova in /home/e-smith/files/ibays//files'
'nfs_APPLY' => '"Applica"'
'nfs_Set_the_UID.' => 'Imposta l'UID.'
'nfs_Description' => 'Descrizione'
'nfs_Enable_the_NFS_Share' => 'Abilita la condivisione NFS'
'nfs_Delays_the_disk_writing' => 'Ritarda la scrittura del disco'
'nfs_EnableShare_on_local_network' => 'Abilita la condivisione sulla rete locale'

28
Targets/nfsshare_ja.lex Normal file
View File

@ -0,0 +1,28 @@
'nfs_File_system_permissions' => 'ファイルシステムの権限'
'nfs_Write_(a)synchronously' => '非同期的および同期的に書く'
'nfs_Set_the_GID.' => 'GIDを設定します。'
'nfs_Hello_TABLE' => 'こんにちは、テーブル'
'nfs_PARAMS_panel_action_was_successfull' => 'PARAMSパネルのアクションは成功しました。'
'nfs_NFS_Client(s)_allowed' => '許可されているNFSクライアント'
'nfs_Action' => '行動 (こうどう)'
'nfs_Set_the_uid_and_gid' => 'ユーザーまたはグループを統一させたい場合は、UIDとGIDを設定します。そうでない場合は空白のままにしてください。'
'Nfs_status' => '状態'
'nfs_Browse_the_parent_folders' => '親フォルダーを参照'
'nfs_TABLE_panel_action_was_successfull' => 'テーブルパネルの操作が成功しました。'
'nfs_NFS_data_share' => 'NFSデータ共有'
'nfs_Name' => '名前'
'nfs_Manage_NFS_Ibay_settings:' => 'NFS Ibay 設定を管理する:'
'nfs_Save' => '保存'
'nfs_Share_owner_Group' => '株主グループ'
'nfs_For_writing_permissions,allowing_the_root' => '書き込み権限のために、ルートユーザーの許可と安全でないポートの使用を許可する場合、ローカルネットワークの一部である1行につき1つのIPアドレスのリストを構成する必要があります。'
'nfs_Information_Bay_name' => '情報湾の名前'
'nfs_Requests_on_secure_ports' => 'セキュアポートへのリクエスト'
'nfs_Squash_the_power_of_users' => 'ユーザーの力を抑える'
'nfs_Hello_PARAMS' => 'こんにちは、PARAMS'
'nfs_These_parameters_will_be_effective' => 'これらのパラメータは、共有が有効になっている場合にのみ効果があります。共有は /home/e-smith/files/ibays//files にあります。'
'nfs_APPLY' => '応募する'
'nfs_Set_the_UID.' => 'UIDを設定する。'
'nfs_Description' => '説明'
'nfs_Enable_the_NFS_Share' => 'NFS共有を有効にする'
'nfs_Delays_the_disk_writing' => 'ディスク書き込みを遅延させる'
'nfs_EnableShare_on_local_network' => 'ローカルネットワークでの共有を有効にする'

28
Targets/nfsshare_nb.lex Normal file
View File

@ -0,0 +1,28 @@
'nfs_File_system_permissions' => 'Filsystemtillatelser'
'nfs_Write_(a)synchronously' => 'Skriv (a)synkront'
'nfs_Set_the_GID.' => 'Sett GID-en.'
'nfs_Hello_TABLE' => 'Hei BORD'
'nfs_PARAMS_panel_action_was_successfull' => 'PARAMS-panelhandlingen var vellykket'
'nfs_NFS_Client(s)_allowed' => 'NFS Klient(er) tillatt'
'nfs_Action' => 'Handling'
'nfs_Set_the_uid_and_gid' => 'Sett uid og gid hvis du ønsker at alle forespørsler skal fremstå som fra én bruker eller én gruppe. Hvis ikke, la det stå tomt.'
'Nfs_status' => 'Status'
'nfs_Browse_the_parent_folders' => 'Bla gjennom de overordnede mappene'
'nfs_TABLE_panel_action_was_successfull' => 'TABELL-panelet aksjonen var vellykket'
'nfs_NFS_data_share' => 'NFS-delt dataområde'
'nfs_Name' => 'Navn'
'nfs_Manage_NFS_Ibay_settings:' => 'Administrer NFS Ibay-innstillinger:'
'nfs_Save' => 'Lagre'
'nfs_Share_owner_Group' => 'Eiergruppe'
'nfs_For_writing_permissions,allowing_the_root' => 'For skrivetillatelser, tillatelse til root-bruker og bruk av usikre porter, må du konfigurere en liste med én IP per linje som er del av det lokale nettverket(/-ene).'
'nfs_Information_Bay_name' => 'Informasjonsbukt navn'
'nfs_Requests_on_secure_ports' => 'Forespørsler på sikre porter'
'nfs_Squash_the_power_of_users' => '"Knus brukernes makt"'
'nfs_Hello_PARAMS' => 'Hei PARAMS'
'nfs_These_parameters_will_be_effective' => 'Disse parameterne vil bare være effektive hvis delingen er aktivert. Delingen er i /home/e-smith/files/ibays//files.'
'nfs_APPLY' => 'Søk'
'nfs_Set_the_UID.' => 'Sett UID-en.'
'nfs_Description' => 'Beskrivelse'
'nfs_Enable_the_NFS_Share' => 'Aktiver NFS-delingen'
'nfs_Delays_the_disk_writing' => 'Forsinker disk skrivingen'
'nfs_EnableShare_on_local_network' => 'Aktiver deling på lokalt nettverk'

28
Targets/nfsshare_nl.lex Normal file
View File

@ -0,0 +1,28 @@
'nfs_File_system_permissions' => 'Bestandssysteemrechten'
'nfs_Write_(a)synchronously' => 'Schrijf (a)synchroon'
'nfs_Set_the_GID.' => 'Stel de GID in.'
'nfs_Hello_TABLE' => 'Hallo TAFEL'
'nfs_PARAMS_panel_action_was_successfull' => 'De actie van het PARAMS-paneel is succesvol geweest.'
'nfs_NFS_Client(s)_allowed' => 'NFS-client(s) toegestaan'
'nfs_Action' => 'The translation of "Action" from English to Dutch is "Actie."'
'nfs_Set_the_uid_and_gid' => 'Stel de uid en gid in als je wilt dat alle verzoeken van één gebruiker of één groep lijken te komen. Laat anders leeg.'
'Nfs_status' => 'Sure, the translation of "Status" in Dutch is "Status".'
'nfs_Browse_the_parent_folders' => 'Blader door de bovenliggende mappen'
'nfs_TABLE_panel_action_was_successfull' => 'De actie van het TABEL-paneel was succesvol.'
'nfs_NFS_data_share' => 'NFS-gegevensdeling'
'nfs_Name' => 'Naam'
'nfs_Manage_NFS_Ibay_settings:' => 'Beheer NFS Ibay-instellingen:'
'nfs_Save' => 'Opslaan'
'nfs_Share_owner_Group' => 'Deel eigenaar Groep'
'nfs_For_writing_permissions,allowing_the_root' => 'Voor schrijfrechten: het toestaan van de rootgebruiker en het gebruik van onveilige poorten, moet u een lijst configureren met één IP per regel, als onderdeel van het lokale netwerk(en).'
'nfs_Information_Bay_name' => 'Informatiebaai naam'
'nfs_Requests_on_secure_ports' => 'Verzoeken op beveiligde poorten'
'nfs_Squash_the_power_of_users' => 'De kracht van gebruikers onderdrukken'
'nfs_Hello_PARAMS' => 'Hello PARAMS'
'nfs_These_parameters_will_be_effective' => 'Deze parameters zullen alleen effectief zijn als de share is ingeschakeld. De share bevindt zich in /home/e-smith/files/ibays//files.'
'nfs_APPLY' => 'Toepassen'
'nfs_Set_the_UID.' => 'Stel de UID in.'
'nfs_Description' => 'Beschrijving'
'nfs_Enable_the_NFS_Share' => 'De NFS-share inschakelen'
'nfs_Delays_the_disk_writing' => '"Vertraagt het schrijven naar de schijf"'
'nfs_EnableShare_on_local_network' => 'Mogelijkheid om te delen op lokaal netwerk'

28
Targets/nfsshare_pl.lex Normal file
View File

@ -0,0 +1,28 @@
'nfs_File_system_permissions' => 'Uprawnienia systemu plików'
'nfs_Write_(a)synchronously' => 'Pisz (a)synchronicznie'
'nfs_Set_the_GID.' => 'Ustaw GID.'
'nfs_Hello_TABLE' => 'Witaj STOŁе'
'nfs_PARAMS_panel_action_was_successfull' => 'Działanie panelu PARAMS zakończyło się sukcesem.'
'nfs_NFS_Client(s)_allowed' => 'Dozwolony(e) klient(ów) NFS'
'nfs_Action' => 'Akcja'
'nfs_Set_the_uid_and_gid' => 'Ustaw uid i gid, jeśli chcesz, aby wszystkie żądania wyglądały na pochodzące od jednego użytkownika lub jednej grupy. W przeciwnym razie pozostaw puste.'
'Nfs_status' => 'Status'
'nfs_Browse_the_parent_folders' => 'Przeglądaj foldery nadrzędne'
'nfs_TABLE_panel_action_was_successfull' => 'Działanie panelu TABLE zakończyło się pomyślnie.'
'nfs_NFS_data_share' => 'Udział danych NFS'
'nfs_Name' => 'Imię'
'nfs_Manage_NFS_Ibay_settings:' => 'Zarządzaj ustawieniami NFS Ibay:'
'nfs_Save' => 'Zapisz'
'nfs_Share_owner_Group' => 'Grupa właścicieli udziałów'
'nfs_For_writing_permissions,allowing_the_root' => 'Dla uprawnień do pisania, Zezwalanie użytkownikowi root oraz korzystanie z niezabezpieczonych portów, Musisz skonfigurować listę z jednym adresem IP na linię, Stanowiącego część sieci lokalnej (sieci).'
'nfs_Information_Bay_name' => 'Nazwa zatoki informacji'
'nfs_Requests_on_secure_ports' => 'Żądania na bezpiecznych portach'
'nfs_Squash_the_power_of_users' => 'Zgnieść siłę użytkowników'
'nfs_Hello_PARAMS' => 'Cześć PARAMS'
'nfs_These_parameters_will_be_effective' => 'Te parametry będą skuteczne tylko wtedy, gdy udział jest włączony. Udział znajduje się w /home/e-smith/files/ibays//files'
'nfs_APPLY' => 'Zastosować'
'nfs_Set_the_UID.' => 'Ustaw UID.'
'nfs_Description' => 'Opis'
'nfs_Enable_the_NFS_Share' => 'Włącz udostępnianie NFS'
'nfs_Delays_the_disk_writing' => 'Opóźnia zapis na dysku.'
'nfs_EnableShare_on_local_network' => 'Włącz udostępnianie w sieci lokalnej'

View File

@ -0,0 +1,30 @@
'nfs_File_system_permissions' => 'Permissões do sistema de arquivos'
'nfs_Write_(a)synchronously' => 'Escreva (a)síncronamente'
'nfs_Set_the_GID.' => 'Defina o GID.'
'nfs_Hello_TABLE' => 'Olá, MESA'
'nfs_PARAMS_panel_action_was_successfull' => 'A ação do painel PARAMS foi bem-sucedida.'
'nfs_NFS_Client(s)_allowed' => 'Clientes NFS permitidos'
'nfs_Action' => 'Ação'
'nfs_Set_the_uid_and_gid' => 'Defina o uid e o gid se você quiser que todas as solicitações pareçam vir de um usuário ou grupo específico. Caso contrário, deixe em branco.'
'Nfs_status' => 'Status in Brazilian Portuguese is "Status".'
'nfs_Browse_the_parent_folders' => 'Navegar pelas pastas principais'
'nfs_TABLE_panel_action_was_successfull' => 'A ação do painel da TABELA foi bem-sucedida.'
'nfs_NFS_data_share' => 'Compartilhamento de dados NFS'
'nfs_Name' => 'Nome'
'nfs_Manage_NFS_Ibay_settings:' => 'Gerenciar configurações do NFS Ibay:'
'nfs_Save' => 'Salvar'
'nfs_Share_owner_Group' => 'Grupo de Proprietários de Ações'
'nfs_For_writing_permissions,allowing_the_root' => 'Para permissões de escrita, permitindo o usuário root e utilizando portas inseguras, você deve configurar uma lista com um IP por linha, fazendo parte da(s) rede(s) local(is).'
'nfs_Information_Bay_name' => 'Nome da Baía de Informações'
'nfs_Requests_on_secure_ports' => 'Solicitações em portas seguras'
'nfs_Squash_the_power_of_users' => 'Claro! Aqui está a tradução:
"Suprimir o poder dos usuários"'
'nfs_Hello_PARAMS' => 'Olá PARAMS'
'nfs_These_parameters_will_be_effective' => 'Esses parâmetros só serão eficazes se o compartilhamento estiver habilitado. O compartilhamento está em /home/e-smith/files/ibays//files'
'nfs_APPLY' => 'Aplicar'
'nfs_Set_the_UID.' => 'Defina o UID.'
'nfs_Description' => 'Descrição'
'nfs_Enable_the_NFS_Share' => 'Habilitar o Compartilhamento NFS'
'nfs_Delays_the_disk_writing' => 'Atraso na gravação do disco'
'nfs_EnableShare_on_local_network' => 'Habilitar compartilhamento na rede local'

28
Targets/nfsshare_pt.lex Normal file
View File

@ -0,0 +1,28 @@
'nfs_File_system_permissions' => 'Permissões do sistema de arquivos'
'nfs_Write_(a)synchronously' => 'Escrever (a)síncronamente'
'nfs_Set_the_GID.' => 'Defina o GID.'
'nfs_Hello_TABLE' => 'Olá MESA'
'nfs_PARAMS_panel_action_was_successfull' => 'A ação do painel PARAMS foi bem-sucedida.'
'nfs_NFS_Client(s)_allowed' => 'Cliente(s) NFS permitido(s)'
'nfs_Action' => 'Ação'
'nfs_Set_the_uid_and_gid' => 'Defina o uid e gid se você quiser que todas as solicitações pareçam ser de um único usuário ou grupo. Caso contrário, deixe em branco.'
'Nfs_status' => 'The translation of the word "Status" from English to Portuguese is "Status." The word remains the same in both languages.'
'nfs_Browse_the_parent_folders' => 'Navegar pelas pastas-mãe'
'nfs_TABLE_panel_action_was_successfull' => 'A ação do painel TABLE foi bem-sucedida'
'nfs_NFS_data_share' => 'Compartilhamento de dados NFS'
'nfs_Name' => 'The translation of the word "Name" to Portuguese is "Nome".'
'nfs_Manage_NFS_Ibay_settings:' => 'Gerenciar configurações do NFS Ibay:'
'nfs_Save' => 'Salvar'
'nfs_Share_owner_Group' => 'Grupo de Acionistas'
'nfs_For_writing_permissions,allowing_the_root' => 'Para permissões de escrita, permitir o usuário root e usar portas inseguras, você deve configurar uma lista de um IP por linha, fazendo parte da(s) rede(s) local(is).'
'nfs_Information_Bay_name' => 'Nome da Baía de Informações'
'nfs_Requests_on_secure_ports' => 'Solicitações em portas seguras'
'nfs_Squash_the_power_of_users' => '"Suprimir o poder dos usuários"'
'nfs_Hello_PARAMS' => 'Olá PARAMS'
'nfs_These_parameters_will_be_effective' => 'Esses parâmetros serão eficazes apenas se o compartilhamento estiver habilitado. O compartilhamento está em /home/e-smith/files/ibays//files.'
'nfs_APPLY' => 'Aplicar'
'nfs_Set_the_UID.' => 'Defina o UID.'
'nfs_Description' => 'Descrição'
'nfs_Enable_the_NFS_Share' => 'Habilitar o Compartilhamento NFS'
'nfs_Delays_the_disk_writing' => 'Atrasos na gravação do disco.'
'nfs_EnableShare_on_local_network' => 'Habilitar compartilhamento na rede local.'

28
Targets/nfsshare_ro.lex Normal file
View File

@ -0,0 +1,28 @@
'nfs_File_system_permissions' => 'Permisiuni ale sistemului de fișiere'
'nfs_Write_(a)synchronously' => 'Scrie (a)sincron.'
'nfs_Set_the_GID.' => 'Setați GID-ul.'
'nfs_Hello_TABLE' => 'Bună, MASĂ'
'nfs_PARAMS_panel_action_was_successfull' => 'Acțiunea panoului PARAMS a fost realizată cu succes.'
'nfs_NFS_Client(s)_allowed' => 'Client/Clienti NFS permisi'
'nfs_Action' => 'Acțiune'
'nfs_Set_the_uid_and_gid' => 'Setați uid și gid dacă doriți ca toate cererile să pară că provin de la un singur utilizator sau un singur grup, în caz contrar, lăsați necompletat.'
'Nfs_status' => 'Stare'
'nfs_Browse_the_parent_folders' => 'Răsfoiți dosarele părinte'
'nfs_TABLE_panel_action_was_successfull' => 'Acțiunea panoului TABLE a fost reușită.'
'nfs_NFS_data_share' => 'Partajare de date NFS'
'nfs_Name' => 'Nume'
'nfs_Manage_NFS_Ibay_settings:' => 'Gestionați setările NFS Ibay:'
'nfs_Save' => '"Salvează"'
'nfs_Share_owner_Group' => 'Proprietar al Grupului'
'nfs_For_writing_permissions,allowing_the_root' => 'Pentru permisiunile de scriere, permițând utilizatorul root și folosind porturi nesigure, trebuie să configurați o listă cu un IP pe linie, făcând parte din rețeaua (rețelele) locală(e).'
'nfs_Information_Bay_name' => 'Numele Golfului Informații'
'nfs_Requests_on_secure_ports' => 'Cereri pe porturi sigure'
'nfs_Squash_the_power_of_users' => 'Sure, here's the translation: "Zdrobește puterea utilizatorilor"'
'nfs_Hello_PARAMS' => 'Bună PARAMS'
'nfs_These_parameters_will_be_effective' => 'Aceste paramentri vor fi eficienți doar dacă partajarea este activată. Partajarea se află în /home/e-smith/files/ibays/files.'
'nfs_APPLY' => 'Aplicați'
'nfs_Set_the_UID.' => 'Setează UID-ul.'
'nfs_Description' => 'Descriere'
'nfs_Enable_the_NFS_Share' => 'Activați partajarea NFS'
'nfs_Delays_the_disk_writing' => 'Întârzie scrierea pe disc.'
'nfs_EnableShare_on_local_network' => 'Permite partajarea pe rețeaua locală'

28
Targets/nfsshare_ru.lex Normal file
View File

@ -0,0 +1,28 @@
'nfs_File_system_permissions' => 'Права доступа файловой системы'
'nfs_Write_(a)synchronously' => 'Пишите (а)синхронно'
'nfs_Set_the_GID.' => 'Установите GID.'
'nfs_Hello_TABLE' => 'Привет, СТОЛ'
'nfs_PARAMS_panel_action_was_successfull' => 'Действие панели PARAMS было успешным.'
'nfs_NFS_Client(s)_allowed' => 'Клиент(ы) NFS разрешены'
'nfs_Action' => 'Действие'
'nfs_Set_the_uid_and_gid' => 'Установите uid и gid, если хотите, чтобы все запросы выглядели как запросы от одного пользователя или одной группы. В противном случае оставьте поле пустым.'
'Nfs_status' => 'Статус'
'nfs_Browse_the_parent_folders' => 'Просмотреть родительские папки'
'nfs_TABLE_panel_action_was_successfull' => 'ТАБЛИЧНАЯ панель была успешно выполнена'
'nfs_NFS_data_share' => 'Распределение данных NFS'
'nfs_Name' => 'Имя'
'nfs_Manage_NFS_Ibay_settings:' => 'Управление настройками NFS Ibay:'
'nfs_Save' => 'Сохранить'
'nfs_Share_owner_Group' => 'Группа акционеров'
'nfs_For_writing_permissions,allowing_the_root' => 'Для разрешения на запись, разрешения корневому пользователю и использования небезопасных портов, необходимо настроить список по одному IP на строку, являющихся частью локальных сетей.'
'nfs_Information_Bay_name' => 'Название залива информации'
'nfs_Requests_on_secure_ports' => 'Запросы на защищённых портах'
'nfs_Squash_the_power_of_users' => 'Запретите силу пользователей'
'nfs_Hello_PARAMS' => 'Здравствуйте, ПАРАМЫ'
'nfs_These_parameters_will_be_effective' => 'Эти параметры будут действовать только при включении общего доступа. Общий доступ находится в /home/e-smith/files/ibays//files.'
'nfs_APPLY' => 'Применить'
'nfs_Set_the_UID.' => 'Установите UID.'
'nfs_Description' => 'Описание'
'nfs_Enable_the_NFS_Share' => 'Включить общий доступ по NFS'
'nfs_Delays_the_disk_writing' => 'Задерживает запись на диск'
'nfs_EnableShare_on_local_network' => 'Включить общедоступный доступ в локальной сети'

28
Targets/nfsshare_sl.lex Normal file
View File

@ -0,0 +1,28 @@
'nfs_File_system_permissions' => 'Dovoljenja datotečnega sistema'
'nfs_Write_(a)synchronously' => 'Piši (a)sinkrono'
'nfs_Set_the_GID.' => 'Nastavi GID.'
'nfs_Hello_TABLE' => 'Zdravo MIZA'
'nfs_PARAMS_panel_action_was_successfull' => 'Akcija panela PARAMS je bila uspešna.'
'nfs_NFS_Client(s)_allowed' => 'NFS odjemalci dovoljeni'
'nfs_Action' => 'Akcija'
'nfs_Set_the_uid_and_gid' => 'Nastavite uid in gid, če želite, da so vse zahteve videti, kot da prihajajo od enega uporabnika ali ene skupine, sicer pustite prazno.'
'Nfs_status' => 'Stanje'
'nfs_Browse_the_parent_folders' => 'Brskaj po nadrejenih mapah'
'nfs_TABLE_panel_action_was_successfull' => 'Dejanje plošče TABLE je bilo uspešno.'
'nfs_NFS_data_share' => 'Izmenjava podatkov NFS'
'nfs_Name' => 'The translation of "Name" to Slovenian is "Ime".'
'nfs_Manage_NFS_Ibay_settings:' => 'Upravljanje nastavitev NFS iBay:'
'nfs_Save' => 'Shrani'
'nfs_Share_owner_Group' => 'Skupina delničarjev'
'nfs_For_writing_permissions,allowing_the_root' => 'Za pravice pisanja, Dovolitev uporabniku root in uporaba negotovih vrat, Morate konfigurirati seznam z enim IP-jem na vrstico, ki je del lokalnih omrežij.'
'nfs_Information_Bay_name' => 'Ime bay za informacije'
'nfs_Requests_on_secure_ports' => 'Zahteve na varnih vratih'
'nfs_Squash_the_power_of_users' => 'Zmanjšajte moč uporabnikov'
'nfs_Hello_PARAMS' => 'Pozdravljeni PARAMS'
'nfs_These_parameters_will_be_effective' => 'Ti parametri bodo učinkovali le, če je deljenje omogočeno. Deljenje se nahaja v /home/e-smith/files/ibays//files'
'nfs_APPLY' => 'The translation of "Apply" to Slovenian is "Uporabi."'
'nfs_Set_the_UID.' => 'Nastavi UID.'
'nfs_Description' => 'Opis'
'nfs_Enable_the_NFS_Share' => 'Omogoči NFS delež'
'nfs_Delays_the_disk_writing' => 'Zamude pri zapisovanju na disk'
'nfs_EnableShare_on_local_network' => 'Omogoči deljenje v lokalnem omrežju'

30
Targets/nfsshare_sv.lex Normal file
View File

@ -0,0 +1,30 @@
'nfs_File_system_permissions' => 'Filsystemsrättigheter'
'nfs_Write_(a)synchronously' => 'Skriv (a)synkront'
'nfs_Set_the_GID.' => 'Ställ in GID.'
'nfs_Hello_TABLE' => 'Hej BORD'
'nfs_PARAMS_panel_action_was_successfull' => 'PARAMS-panelåtgärden lyckades.'
'nfs_NFS_Client(s)_allowed' => 'NFS-klient(er) tillåtna'
'nfs_Action' => 'In Swedish, "Action" can be translated to "Action" itself if referring to the genre of film or literature, or more specifically as "Handling" if referring to an act or deed. So, the translation would be "Action" or "Handling," depending on the context.'
'nfs_Set_the_uid_and_gid' => 'Ställ in uid och gid om du vill att alla förfrågningar ska verka komma från en användare eller en grupp, annars lämna tomt.'
'Nfs_status' => 'Status'
'nfs_Browse_the_parent_folders' => 'Bläddra bland föräldramapparna'
'nfs_TABLE_panel_action_was_successfull' => 'The translation of the text "TABLE panel action was successful" to Swedish is:
"Åtgärden för PANEL i TABELLEN lyckades."'
'nfs_NFS_data_share' => 'NFS-datadelningsutrymme'
'nfs_Name' => 'Namn'
'nfs_Manage_NFS_Ibay_settings:' => 'Hantera NFS Ibay-inställningar:'
'nfs_Save' => 'Spara'
'nfs_Share_owner_Group' => 'Ägargrupp'
'nfs_For_writing_permissions,allowing_the_root' => 'För skrivbehörigheter, tillåta root-användaren och använda osäkra portar, måste du konfigurera en lista med en IP per rad som är en del av det lokala nätverket/de lokala nätverken.'
'nfs_Information_Bay_name' => 'Informationsbuktens namn'
'nfs_Requests_on_secure_ports' => 'Begäranden på säkra portar'
'nfs_Squash_the_power_of_users' => 'Krossa användarnas makt'
'nfs_Hello_PARAMS' => 'Hej PARAMS'
'nfs_These_parameters_will_be_effective' => 'Dessa parametrar kommer endast att vara effektiva om delningen är aktiverad. Delningen finns i /home/e-smith/files/ibays//files'
'nfs_APPLY' => 'Ansök'
'nfs_Set_the_UID.' => 'Ställ in UID.'
'nfs_Description' => 'Beskrivning'
'nfs_Enable_the_NFS_Share' => 'Aktivera NFS-delningsfunktionen'
'nfs_Delays_the_disk_writing' => 'Fördröjer diskskrivningen'
'nfs_EnableShare_on_local_network' => 'Aktivera delning på lokalt nätverk'

28
Targets/nfsshare_th.lex Normal file
View File

@ -0,0 +1,28 @@
'nfs_File_system_permissions' => 'สิทธิ์การเข้าถึงระบบไฟล์'
'nfs_Write_(a)synchronously' => 'เขียนแบบ(ไม่)พร้อมกัน'
'nfs_Set_the_GID.' => 'ตั้งค่า GID'
'nfs_Hello_TABLE' => 'สวัสดี โต๊ะ'
'nfs_PARAMS_panel_action_was_successfull' => 'พารามส์ พาเนล แอคชั่น สำเร็จอย่างสมบูรณ์'
'nfs_NFS_Client(s)_allowed' => 'ลูกค้า NFS ที่ได้รับอนุญาต'
'nfs_Action' => 'การกระทำ'
'nfs_Set_the_uid_and_gid' => 'ตั้งค่า uid และ gid หากคุณต้องการให้การร้องขอทุกครั้งดูเหมือนมาจากผู้ใช้หนึ่งคนหรือกลุ่มหนึ่งกลุ่ม อย่าใส่อะไรถ้าไม่ต้องการ'
'Nfs_status' => 'สถานะ'
'nfs_Browse_the_parent_folders' => 'เรียกดูโฟลเดอร์หลัก'
'nfs_TABLE_panel_action_was_successfull' => 'การดำเนินการของแผง TABLE สำเร็จแล้ว'
'nfs_NFS_data_share' => 'แชร์ข้อมูล NFS'
'nfs_Name' => 'ชื่อ'
'nfs_Manage_NFS_Ibay_settings:' => 'จัดการการตั้งค่า NFS Ibay'
'nfs_Save' => 'บันทึก'
'nfs_Share_owner_Group' => 'กลุ่มเจ้าของหุ้น'
'nfs_For_writing_permissions,allowing_the_root' => 'สำหรับการอนุญาตในการเขียน อนุญาตให้ผู้ใช้ root และการใช้พอร์ตที่ไม่ปลอดภัย คุณต้องกำหนดรายชื่อโดยให้มีหนึ่ง IP ต่อบรรทัด ที่เป็นส่วนหนึ่งของเครือข่ายภายในท้องถิ่น'
'nfs_Information_Bay_name' => 'ชื่อของ Information Bay'
'nfs_Requests_on_secure_ports' => 'คำขอบนพอร์ตที่ปลอดภัย'
'nfs_Squash_the_power_of_users' => 'บดขยี้พลังของผู้ใช้'
'nfs_Hello_PARAMS' => 'สวัสดี PARAMS'
'nfs_These_parameters_will_be_effective' => 'พารามิเตอร์เหล่านี้จะมีผลก็ต่อเมื่อการแชร์ถูกเปิดใช้งาน การแชร์นั้นอยู่ใน /home/e-smith/files/ibays//files'
'nfs_APPLY' => 'สมัคร'
'nfs_Set_the_UID.' => 'ตั้งค่า UID'
'nfs_Description' => 'คำอธิบาย'
'nfs_Enable_the_NFS_Share' => 'เปิดใช้งานการแชร์ NFS'
'nfs_Delays_the_disk_writing' => 'ทำให้การเขียนดิสก์ล่าช้า'
'nfs_EnableShare_on_local_network' => 'เปิดใช้งานการแชร์บนเครือข่ายท้องถิ่น'

28
Targets/nfsshare_tr.lex Normal file
View File

@ -0,0 +1,28 @@
'nfs_File_system_permissions' => 'Dosya sistemi izinleri'
'nfs_Write_(a)synchronously' => 'Senkron (a)senkron yazın'
'nfs_Set_the_GID.' => 'GID'yi Ayarla.'
'nfs_Hello_TABLE' => 'Merhaba TABLO'
'nfs_PARAMS_panel_action_was_successfull' => 'PARAMS panel eylemi başarılı oldu'
'nfs_NFS_Client(s)_allowed' => 'İzin verilen NFS İstemcisi/İstemcileri'
'nfs_Action' => 'The translation of "Action" to Turkish is "Aksiyon" or "Eylem."'
'nfs_Set_the_uid_and_gid' => 'İsteklerin tek bir kullanıcıdan veya tek bir gruptan geliyormuş gibi görünmesini istiyorsanız, uid ve gid ayarlarını yapın, aksi takdirde boş bırakın.'
'Nfs_status' => 'Durum'
'nfs_Browse_the_parent_folders' => 'Ana klasörlere göz atın'
'nfs_TABLE_panel_action_was_successfull' => 'TABLO panel eylemi başarılı oldu'
'nfs_NFS_data_share' => 'NFS veri paylaşımı'
'nfs_Name' => 'İsim'
'nfs_Manage_NFS_Ibay_settings:' => 'NFS Ibay ayarlarını yönetin:'
'nfs_Save' => 'Kaydet'
'nfs_Share_owner_Group' => 'Pay sahibi Grubu'
'nfs_For_writing_permissions,allowing_the_root' => 'Yazma izinleri için, root kullanıcısına izin vermek ve güvensiz portları kullanmak, Yerel ağın bir parçası olan, satır başına bir IP içeren bir listeyi yapılandırmalısınız.'
'nfs_Information_Bay_name' => 'Bilgi Koyu adı'
'nfs_Requests_on_secure_ports' => 'Güvenli portlardaki istekler'
'nfs_Squash_the_power_of_users' => 'Kullanıcıların gücünü bastırın'
'nfs_Hello_PARAMS' => 'Merhaba PARAMS'
'nfs_These_parameters_will_be_effective' => 'Bu parametreler yalnızca paylaşım etkinleştirildiğinde etkili olacaktır. Paylaşım /home/e-smith/files/ibays//files dizinindedir.'
'nfs_APPLY' => 'Uygula'
'nfs_Set_the_UID.' => 'UID'yi ayarla.'
'nfs_Description' => 'Açıklama'
'nfs_Enable_the_NFS_Share' => 'NFS Paylaşımını Etkinleştir'
'nfs_Delays_the_disk_writing' => 'Disk yazma işlemini geciktirir.'
'nfs_EnableShare_on_local_network' => 'Yerel ağda Enableshare'

View File

@ -0,0 +1,28 @@
'nfs_File_system_permissions' => '文件系统权限'
'nfs_Write_(a)synchronously' => '同步/异步编写'
'nfs_Set_the_GID.' => '设置GID。'
'nfs_Hello_TABLE' => '你好,桌子'
'nfs_PARAMS_panel_action_was_successfull' => 'PARAMS 面板操作成功。'
'nfs_NFS_Client(s)_allowed' => '允许的NFS客户端'
'nfs_Action' => '行动'
'nfs_Set_the_uid_and_gid' => '如果你希望所有请求都显示为来自某个用户或某个组,请设置 uid 和 gid否则请留空。'
'Nfs_status' => '状态'
'nfs_Browse_the_parent_folders' => '浏览父文件夹'
'nfs_TABLE_panel_action_was_successfull' => '表格面板操作成功。'
'nfs_NFS_data_share' => 'NFS 数据共享'
'nfs_Name' => '姓名'
'nfs_Manage_NFS_Ibay_settings:' => '管理NFS Ibay设置:'
'nfs_Save' => '保存'
'nfs_Share_owner_Group' => '共享拥有者集团'
'nfs_For_writing_permissions,allowing_the_root' => '对于写入权限允许root用户和使用不安全端口您必须配置每行一个IP地址的列表并且这些IP地址必须是本地网络的一部分。'
'nfs_Information_Bay_name' => '信息栏名称'
'nfs_Requests_on_secure_ports' => '安全端口上的请求'
'nfs_Squash_the_power_of_users' => '压制用户的力量'
'nfs_Hello_PARAMS' => '你好PARAMS'
'nfs_These_parameters_will_be_effective' => '这些参数只有在共享被启用时才会生效。共享目录在 /home/e-smith/files/ibays/files。'
'nfs_APPLY' => '申请'
'nfs_Set_the_UID.' => '设置UID。'
'nfs_Description' => '描述'
'nfs_Enable_the_NFS_Share' => '启用NFS共享'
'nfs_Delays_the_disk_writing' => '延迟磁盘写入'
'nfs_EnableShare_on_local_network' => '在本地网络上启用共享'

View File

@ -0,0 +1,29 @@
'nfs_File_system_permissions' => '檔案系統權限'
'nfs_Write_(a)synchronously' => '同步或非同步寫入'
'nfs_Set_the_GID.' => '設置 GID。'
'nfs_Hello_TABLE' => '你好TABLE'
'nfs_PARAMS_panel_action_was_successfull' => 'PARAMS 面板操作成功。'
'nfs_NFS_Client(s)_allowed' => '允許的 NFS 用戶端'
'nfs_Action' => '行動'
'nfs_Set_the_uid_and_gid' => '如需所有請求看起來都來自某個用戶或團體,請設置 uid 和 gid否則請留空。'
'Nfs_status' => '狀態'
'nfs_Browse_the_parent_folders' => '瀏覽上層資料夾'
'nfs_TABLE_panel_action_was_successfull' => 'TABLE面板操作成功。'
'nfs_NFS_data_share' => 'NFS 數據共享'
'nfs_Name' => '名字'
'nfs_Manage_NFS_Ibay_settings:' => '管理 NFS Ibay 設定:'
'nfs_Save' => '儲存'
'nfs_Share_owner_Group' => '股東集團'
'nfs_For_writing_permissions,allowing_the_root' => '為了寫入權限,允許 root 使用者並使用不安全的埠,您必須配置每行一個 IP 地址的清單,這些 IP 地址應屬於本地網路。'
'nfs_Information_Bay_name' => '資訊灣名'
'nfs_Requests_on_secure_ports' => '在安全端口上的請求'
'nfs_Squash_the_power_of_users' => '壓制使用者的權力'
'nfs_Hello_PARAMS' => 'Hello PARAMS
您好PARAMS'
'nfs_These_parameters_will_be_effective' => '這些參數只有在共享啟用時才會生效。共享位置在 /home/e-smith/files/ibays//files'
'nfs_APPLY' => '應用'
'nfs_Set_the_UID.' => '設置 UID。'
'nfs_Description' => '描述'
'nfs_Enable_the_NFS_Share' => '啟用 NFS 共享'
'nfs_Delays_the_disk_writing' => '延遲磁盤寫入'
'nfs_EnableShare_on_local_network' => '在本地網絡上啟用共享'

View File

@ -7,10 +7,9 @@ package SrvMngr::Controller::${PackageName};
# description : ${MenuDescription}
# navigation : ${MenuNavigation}
#
# name : ${lcPackageName}, method : get, url : /${lcPackageName}, ctlact : ${lcPackageName}#main
# name : ${lcPackageName}u, method : post, url : /${lcPackageName}u, ctlact : ${lcPackageName}#do_update
# name : ${lcPackageName}d, method : get, url : /${lcPackageName}d, ctlact : ${lcPackageName}#do_display
# name : ${lcPackageName}e, method : post, url : /${lcPackageName}d, ctlact : ${lcPackageName}#do_display
# name : ${lcPackageName}, method : get, url : /${lcPackageName}, ctlact : ${PackageName}#main
# name : ${lcPackageName}u, method : post, url : /${lcPackageName}u, ctlact : ${PackageName}#do_update
# name : ${lcPackageName}d, method : get, url : /${lcPackageName}d, ctlact : ${PackageName}#do_display
#
# routes : end
#
@ -89,7 +88,7 @@ sub main {
modul => $modul,
${prefix}_data => \%${prefix}_data
);
$c->render( template => "${PackageName}" );
$c->render( template => "${lcPackageName}" );
}
# Post request with params - submit from the form
@ -164,7 +163,7 @@ sub do_update {
$c->stash(error => $c->l($ret));
$c->render("${PackageName}");
} else {
$c->stash( success => $c->l('${panel} panel action was successfull')); #A bit bland - edit it in the lex file
$c->stash( success => $c->l('${panel} panel action was successful')); #A bit bland - edit it in the lex file
}
}
</tal:block>

View File

@ -1,5 +1,5 @@
#
# Routines to be editted by the developer to provide validation for parameters
# Routines to be edited by the developer to provide validation for parameters
# and provison of the control data for table(s)
#
# Generated by ${version}

View File

@ -1,9 +1,9 @@
<root>
<Text><![CDATA[
<p><span class=label>
%=l('${prefix}_${Label}'), class => 'label'
%=l('${prefix}_${Label}')
</span><span class=data>
%= ${Value}, class => 'data'
%= ${Value}
</span></p>
]]></Text>
@ -92,7 +92,7 @@
</email>
<password><![CDATA[
<p><span class=label>
<p><span class='label'>
%=l('${Label}')
</span><span class=data>
</span>span></p>
@ -100,17 +100,17 @@
</password>
<Table><![CDATA[
<br /><table class="sme-border TableSort">
<br /><table class="sme-border TableSort sme-table">
<thead>
<tr><tal:block tal:repeat="ColHead TopHeadings">
<th class='sme-border'><%=l('${ColHead}')%></th></tal:block>
<tr table-head-row><tal:block tal:repeat="ColHead TopHeadings">
<th class='sme-border table-head-col table-head-col-${ColHead} '><%=l('${ColHead}')%></th></tal:block>
</tr>
</thead>
<tbody>
% my $control_data = $self->stash('${TableControl}');
% foreach my $row (@$control_data) {
<tr><tal:block tal:repeat="ColContent Columns">
<td class='sme-border'><%=$c->render_to_string(inline=>$row->{${ColContent}})%></td></tal:block>
<tr class='table-row'><tal:block tal:repeat="ColContent Columns">
<td class='sme-border table-col table-col-${ColContent}'><%=$c->render_to_string(inline=>$row->{${ColContent}})%></td></tal:block>
</tr>
%}
</tbody>

View File

@ -1,7 +1,7 @@
%#
%# Generated by ${version}
%#
<div id="${PackageName}-${route}">
<div id="${PackageName}-${route}" class="partial ${PackageName}-${route}">
<script>
window.onload = function() {
SelectInput();
@ -17,5 +17,5 @@
%= hidden_field 'trt' => $$${prefix}_data->{trt}
%# Inputs etc in here.
%# Probably finally by a submit.
% end
%end
</div>

27
languages.json Normal file
View File

@ -0,0 +1,27 @@
[
{"language": "Bulgarian", "code": "bg"},
{"language": "Danish", "code": "da"},
{"language": "German", "code": "de"},
{"language": "Greek", "code": "el"},
{"language": "Spanish", "code": "es"},
{"language": "Estonian", "code": "et"},
{"language": "French", "code": "fr"},
{"language": "Hebrew", "code": "he"},
{"language": "Hungarian", "code": "hu"},
{"language": "Indonesian", "code": "id"},
{"language": "Italian", "code": "it"},
{"language": "Japanese", "code": "ja"},
{"language": "Norwegian Bokmål", "code": "nb"},
{"language": "Dutch", "code": "nl"},
{"language": "Polish", "code": "pl"},
{"language": "Brazilian Portuguese", "code": "pt-br"},
{"language": "Portuguese", "code": "pt"},
{"language": "Romanian", "code": "ro"},
{"language": "Russian", "code": "ru"},
{"language": "Slovenian", "code": "sl"},
{"language": "Swedish", "code": "sv"},
{"language": "Thai", "code": "th"},
{"language": "Turkish", "code": "tr"},
{"language": "Simplified Chinese", "code": "zh-cn"},
{"language": "Traditional Chinese", "code": "zh-tw"}
]

861
sm2gen.py
View File

@ -9,6 +9,9 @@ import os
import pkg_resources
from datetime import datetime
import xml.etree.ElementTree as ET
from openai import OpenAI
import configparser
import json
#
#To Do
@ -16,113 +19,116 @@ import xml.etree.ElementTree as ET
# 2. Deal with ? and ! as sentence ends in text-format
# 3. Make lexical scan work with double or single quotes (if possible)
SME2Gen_version = '0.7'
SME2Gen_version = '0.8'
json5_dict: dict = {}
json5_html_list: list = []
# Define the path to the INI file
ini_file_path = os.path.expanduser('~/.smegit/conf')
OPENAI_API_KEY = ""
def parse_json(json_obj, prefix=''):
structured_list = []
if isinstance(json_obj, dict):
for k, v in json_obj.items():
new_key = f"{prefix}.{k}" if prefix else k
structured_list.extend(parse_json(v, new_key))
elif isinstance(json_obj, list):
for i, v in enumerate(json_obj):
new_key = f"{prefix}[{i}]"
structured_list.extend(parse_json(v, new_key))
else:
structured_list.append(f"{prefix}: {json_obj}")
return structured_list
structured_list = []
if isinstance(json_obj, dict):
for k, v in json_obj.items():
new_key = f"{prefix}.{k}" if prefix else k
structured_list.extend(parse_json(v, new_key))
elif isinstance(json_obj, list):
for i, v in enumerate(json_obj):
new_key = f"{prefix}[{i}]"
structured_list.extend(parse_json(v, new_key))
else:
structured_list.append(f"{prefix}: {json_obj}")
return structured_list
def json5_to_list(filename):
with open(filename, 'r') as file:
data = json5.load(file)
return parse_json(data)
with open(filename, 'r') as file:
data = json5.load(file)
return parse_json(data)
def json5_to_pandas(filename):
with open(filename, 'r') as file:
data = json5.load(file)
print (data)
return data.json_normalize(data)
with open(filename, 'r') as file:
data = json5.load(file)
print (data)
return data.json_normalize(data)
def json5_to_dict(filename):
with open(filename, 'r') as file:
data = json5.load(file)
return data
with open(filename, 'r') as file:
data = json5.load(file)
return data
def rec_print(data, prefix=''):
# Check if this item is a dictionary.
if isinstance(data, dict):
for key, val in data.items():
rec_print(val, f"{prefix}.{key}")
# Check if this item is a list.
elif isinstance(data, list):
for idx, val in enumerate(data):
rec_print(val, f"{prefix}[{idx}]")
# If neither, it's a basic type.
else:
print(f"{prefix}: {data}")
# Check if this item is a dictionary.
if isinstance(data, dict):
for key, val in data.items():
rec_print(val, f"{prefix}.{key}")
# Check if this item is a list.
elif isinstance(data, list):
for idx, val in enumerate(data):
rec_print(val, f"{prefix}[{idx}]")
# If neither, it's a basic type.
else:
print(f"{prefix}: {data}")
def find_item(nested_dict, target_key):
for key, val in nested_dict.items():
if key == target_key:
return val
elif isinstance(val, dict):
result = find_item(val, target_key)
if result is not None:
return result
for key, val in nested_dict.items():
if key == target_key:
return val
elif isinstance(val, dict):
result = find_item(val, target_key)
if result is not None:
return result
def find_dicts_with_key(data, target_key):
results = []
if isinstance(data, dict):
if target_key in data:
results.append(data)
for val in data.values():
if isinstance(val, (dict, list)):
results.extend(find_dicts_with_key(val, target_key))
elif isinstance(data, list):
for item in data:
if isinstance(item, (dict, list)):
results.extend(find_dicts_with_key(item, target_key))
return results
results = []
if isinstance(data, dict):
if target_key in data:
results.append(data)
for val in data.values():
if isinstance(val, (dict, list)):
results.extend(find_dicts_with_key(val, target_key))
elif isinstance(data, list):
for item in data:
if isinstance(item, (dict, list)):
results.extend(find_dicts_with_key(item, target_key))
return results
def find_values_with_key(data, target_key):
results = []
if isinstance(data, dict):
if target_key in data:
results.append(data[target_key])
for val in data.values():
if isinstance(val, (dict, list)):
results.extend(find_values_with_key(val, target_key))
elif isinstance(data, list):
for item in data:
if isinstance(item, (dict, list)):
results.extend(find_values_with_key(item, target_key))
return results
results = []
if isinstance(data, dict):
if target_key in data:
results.append(data[target_key])
for val in data.values():
if isinstance(val, (dict, list)):
results.extend(find_values_with_key(val, target_key))
elif isinstance(data, list):
for item in data:
if isinstance(item, (dict, list)):
results.extend(find_values_with_key(item, target_key))
return results
def lint_json5(filename):
try:
with open(filename, 'r') as file:
data = file.read()
json5.loads(data)
print(f"{filename} as JSON5 data is valid")
except Exception as e:
print(f"{filename} as JSON5 data is invalid")
print("Error:", str(e))
sys.exit()
try:
with open(filename, 'r') as file:
data = file.read()
json5.loads(data)
print(f"{filename} as JSON5 data is valid")
except Exception as e:
print(f"{filename} as JSON5 data is invalid")
print("Error:", str(e))
sys.exit()
def flatten_hash_of_lists(hash_of_lists):
flattened = {}
for key, value in hash_of_lists.items():
if isinstance(value, list):
for i, item in enumerate(value):
new_key = f"{key}_{i}" # Appending index to the key to maintain uniqueness
flattened[new_key] = item
else:
flattened[key] = value
return flattened
flattened = {}
for key, value in hash_of_lists.items():
if isinstance(value, list):
for i, item in enumerate(value):
new_key = f"{key}_{i}" # Appending index to the key to maintain uniqueness
flattened[new_key] = item
else:
flattened[key] = value
return flattened
def hl(keyname):
# Return highest level value for the keyname
if keyname in json5_dict:
@ -132,53 +138,53 @@ def hl(keyname):
return 'None'
def get_all_routes():
route_list = [html_block.get('route') for html_block in json5_dict.get('html', [])]
return route_list
route_list = [html_block.get('route') for html_block in json5_dict.get('html', [])]
return route_list
def lc_get_all_routes():
# All routes in lower case
route_list = [html_block.get('route').lower() for html_block in json5_dict.get('html', [])]
return route_list
# All routes in lower case
route_list = [html_block.get('route').lower() for html_block in json5_dict.get('html', [])]
return route_list
def has_file_been_modified(file_path):
# Get the file's creation time and last modification time in Unix timestamp
creation_time = os.path.getctime(file_path)
last_modification_time = os.path.getmtime(file_path)
print(f"{creation_time}*{last_modification_time}")
quit()
# Get the file's creation time and last modification time in Unix timestamp
creation_time = os.path.getctime(file_path)
last_modification_time = os.path.getmtime(file_path)
print(f"{creation_time}*{last_modification_time}")
quit()
# Compare the creation time and last modification time
if creation_time < last_modification_time:
return True # File has been modified after creation
else:
return False # File has not been modified after creation
# Compare the creation time and last modification time
if creation_time < last_modification_time:
return True # File has been modified after creation
else:
return False # File has not been modified after creation
def parse_xml_to_dict(xml_file):
# Parse the XML file
tree = ET.parse(xml_file)
root = tree.getroot()
# Parse the XML file
tree = ET.parse(xml_file)
root = tree.getroot()
xml_dict = {} # Initialize an empty dictionary to store the data
xml_dict = {} # Initialize an empty dictionary to store the data
# Iterate through the XML tree and extract data
for elem in root:
tag = elem.tag
if elem.text:
xml_dict[tag] = elem.text
else:
cdata_content = elem.find('.//').text # Extract CDATA text
xml_dict[tag] = cdata_content
# Iterate through the XML tree and extract data
for elem in root:
tag = elem.tag
if elem.text:
xml_dict[tag] = elem.text
else:
cdata_content = elem.find('.//').text # Extract CDATA text
xml_dict[tag] = cdata_content
return xml_dict
return xml_dict
def deduplicate_array(arr):
# Convert the array to a set to remove duplicates
unique_set = set(arr)
# Convert the set back to a list to maintain the order
deduplicated_list = list(unique_set)
return deduplicated_list
# Convert the array to a set to remove duplicates
unique_set = set(arr)
# Convert the set back to a list to maintain the order
deduplicated_list = list(unique_set)
return deduplicated_list
def get_db_fields():
return []
@ -187,308 +193,351 @@ def get_table_control_data():
return find_values_with_key(json5_html_list,'TableControl')
def format_text(text):
#
# Turn a piece of text into something a bit better formatted - spaces after full stop and comma and also capitalise sentences
#
# Create a list to hold the formatted sentences
formatted_sentences = []
# Split the text into sentences
sentences = text.split(".")
words = sentences[0].split(" ")
#print(len(sentences))
# Deal with one capitalised word
if sentences[0].isupper() and len(sentences) == 1 and len(words) == 1:
return sentences[0].capitalize()
else:
for sentence in sentences:
#print(sentence)
# and splt into sub phrases, based on comma
formatted_phrases = []
phrases = sentence.split(",")
#
# Turn a piece of text into something a bit better formatted - spaces after full stop and comma and also capitalise sentences
#
# Create a list to hold the formatted sentences
formatted_sentences = []
# Split the text into sentences
sentences = text.split(".")
words = sentences[0].split(" ")
#print(len(sentences))
# Deal with one capitalised word
if sentences[0].isupper() and len(sentences) == 1 and len(words) == 1:
return sentences[0].capitalize()
else:
for sentence in sentences:
#print(sentence)
# and splt into sub phrases, based on comma
formatted_phrases = []
phrases = sentence.split(",")
for phrase in phrases:
#print(phrase)
phrase = phrase.lstrip()
formatted_words = []
words = phrase.split(' ')
for i,word in enumerate(words):
#print(i,word)
# Check if the word is fully uppercase or not the first
word = word.lstrip()
if word.isupper() or i != 0:
formatted_words.append(word)
else:
# Capitalize the word
formatted_words.append(word.capitalize())
for phrase in phrases:
#print(phrase)
phrase = phrase.lstrip()
formatted_words = []
words = phrase.split(' ')
for i,word in enumerate(words):
#print(i,word)
# Check if the word is fully uppercase or not the first
word = word.lstrip()
if word.isupper() or i != 0:
formatted_words.append(word)
else:
# Capitalize the word
formatted_words.append(word.capitalize())
# Join the formatted words back together for this phrase
formatted_phrase = ' '.join(formatted_words).lstrip()
formatted_phrases.append(formatted_phrase)
# and sentence
formatted_sentence = ", ".join(formatted_phrases).lstrip()
formatted_sentences.append(formatted_sentence)
# Join the formatted sentences back together
formatted_text = ". ".join(formatted_sentences).lstrip()
return formatted_text
def get_completion(prompt):
response = client.chat.completions.create(model="gpt-4o",
messages=[{'role':"user", 'content':prompt}],
max_tokens=100)
# Extracting the content message from the JSON data
response_data = response.to_dict()
content_message = response_data["choices"][0]["message"]["content"]
return content_message.strip()
def get_translation(message="Hello",language="french"):
prompt = f"Translate the following text from English to {language}: {message} :suitable for use in a Server manager application"
translated_message = get_completion(prompt)
return translated_message
def convert_lex_to_dict(pairs_string):
# Splitting pairs string by comma and newline, excluding empty lines
pairs_list = [line for line in pairs_string.split(",\n") if line.strip()]
data_dict = {pair.split(" => ")[0].strip("'"): pair.split(" => ")[1].strip("'") for pair in pairs_list}
formatted_dict = [{"id": key, "text": value} for key, value in data_dict.items()]
return formatted_dict
# Join the formatted words back together for this phrase
formatted_phrase = ' '.join(formatted_words).lstrip()
formatted_phrases.append(formatted_phrase)
# and sentence
formatted_sentence = ", ".join(formatted_phrases).lstrip()
formatted_sentences.append(formatted_sentence)
# Join the formatted sentences back together
formatted_text = ". ".join(formatted_sentences).lstrip()
return formatted_text
if __name__ == "__main__":
try:
chameleon_version = pkg_resources.get_distribution("Chameleon").version
except pkg_resources.DistributionNotFound:
chameleon_version = "Version information not available"
python_version = sys.version
python_version = python_version[:8]
current_datetime = datetime.now()
formatted_datetime = current_datetime.strftime("%Y-%m-%d %H:%M")
try:
chameleon_version = pkg_resources.get_distribution("Chameleon").version
except pkg_resources.DistributionNotFound:
chameleon_version = "Version information not available"
python_version = sys.version
python_version = python_version[:8]
current_datetime = datetime.now()
formatted_datetime = current_datetime.strftime("%Y-%m-%d %H:%M")
strVersion = "SME2Gen version:"+SME2Gen_version+" Chameleon version:"+chameleon_version+" On Python:"+python_version+" at "+formatted_datetime
strVersion = "SM2Gen version:"+SME2Gen_version+" Chameleon version:"+chameleon_version+" On Python:"+python_version+" at "+formatted_datetime
json5_dict: dict = {}
json5_html_list: list = []
json5_dict: dict = {}
json5_html_list: list = []
print(f"SM2 code from JSON5 - {strVersion}")
print(f"SM2 code from JSON5 - {strVersion}")
home_dir = "/home/brianr/clients/SM2/SM2Gen/"
json_filename = f"{home_dir}nfsshare.json5"
# read open ai key from ini file
# Check if the file exists
if os.path.exists(ini_file_path):
# Create a configparser object and read the file
config = configparser.ConfigParser()
config.read(ini_file_path)
filename = '/home/brianr/clients/SM2/SM2Gen/nfsshare.json5'
# Command line parameters
parser = argparse.ArgumentParser(description="SM2Gen")
parser.add_argument('-f', '--filename', help='Specify a filename for the JSON5 file', default=filename)
parser.add_argument('-nco', '--noController', help='Stop it creating a controller file', default="no")
parser.add_argument('-nh', '--noHtml', help='Stop it creating html files(s)', default="no")
parser.add_argument('-nl', '--noLang', help='Stop it creating language localise files(s)', default="no")
parser.add_argument('-ncu', '--noCust', help='Stop it creating Custom controller file', default="no")
args = parser.parse_args()
filename = args.filename
print(f"JSON5 from {filename} with noController={args.noController}, noHtml={args.noHtml} and noLang={args.noLang}") #Not yet activated
# Read the value of "OPENAI_API_KEY"
if 'OPENAI_API_KEY' in config['smegit']:
OPENAI_API_KEY = config['smegit']['OPENAI_API_KEY']
#print("API Key:", OPENAI_API_KEY)
client = OpenAI(api_key=OPENAI_API_KEY)
else:
print("OPENAI_API_KEY not found in the configuration file.")
else:
print("Configuration file not found at:", file_path)
# Command line parameters - not in use
parser = argparse.ArgumentParser(description="SM2Gen")
parser.add_argument('-f', '--filename', help='Specify a filename for the JSON5 file', default=json_filename)
parser.add_argument('-nco', '--noController', help='Stop it creating a controller file', default="no")
parser.add_argument('-nh', '--noHtml', help='Stop it creating html files(s)', default="no")
parser.add_argument('-nl', '--noLang', help='Stop it creating language localise files(s)', default="no")
parser.add_argument('-ncu', '--noCust', help='Stop it creating Custom controller file', default="no")
args = parser.parse_args()
json_filename = args.filename
print(f"JSON5 from {json_filename} with noController={args.noController}, noHtml={args.noHtml} and noLang={args.noLang}") #Not yet activated
# check syntax of JSON5
lint_json5(filename);
# Get dict of it all
json5_dict = json5_to_dict(filename)
# Get dict of just the html bit
json5_html_list = json5_dict['html']
#Identify message
print(f"\nGenerating mojo panels for {hl('PackageName')}")
print( "-----------------------------------")
# Routes for each panel
routes = get_all_routes();
lc_routes =lc_get_all_routes();
#File names
controller_file = 'Targets/'+hl('PackageName')+'.pm'
custom_controller_file = 'Targets/'+hl('PackageName')+'-Custom.pm'
# see if it has been modified by developer - this did not work - the modified by was the same as the creation time/date
#if has_file_been_modified(custom_controller_file):
# custom_controller_file = custom_controller_file+'.new'
# Call it .new if one is already there (and may have been editted by the developer)
if os.path.exists(custom_controller_file):
custom_controller_file = custom_controller_file+'.new'
layout_file = 'Targets/'+hl('PackageName')+'.html.ep'
partial_files = list()
for panel in routes:
partial_files.append('Targets/_'+hl('prefix')+"_"+panel+'.html.ep')
print(partial_files)
lex_file = 'Targets/'+hl('PackageName').lower()+'_en.lex'
tablecontrols = get_table_control_data() #arrays of hashes used to drive rows in tables
#Generate controller file
try:
controller_template = PageTemplateFile("Templates/controller.pm.tem")
dbentries = get_db_fields() #Params which correspond to Db fields
try:
controller_perl = controller_template.render(version=strVersion,
lint_json5(json_filename);
# Get dict of it all
json5_dict = json5_to_dict(json_filename)
# Get dict of just the html bit
json5_html_list = json5_dict['html']
#Identify message
print(f"\nGenerating mojo panels for {hl('PackageName')}")
print( "-----------------------------------")
# Routes for each panel
routes = get_all_routes();
lc_routes =lc_get_all_routes();
#File names
controller_file = 'Targets/'+hl('PackageName')+'.pm'
custom_controller_file = 'Targets/'+hl('PackageName')+'-Custom.pm'
# Call it .new if one is already there (and may have been editted by the developer)
if os.path.exists(custom_controller_file):
custom_controller_file = custom_controller_file+'.new'
layout_file = 'Targets/'+hl('PackageName').lower()+'.html.ep'
partial_files = list()
for panel in routes:
partial_files.append('Targets/_'+hl('prefix')+"_"+panel+'.html.ep')
print(partial_files)
lex_file = 'Targets/'+hl('PackageName').lower()+'_en.lex'
tablecontrols = get_table_control_data() #arrays of hashes used to drive rows in tables
#Generate controller file
try:
controller_template = PageTemplateFile("Templates/controller.pm.tem")
dbentries = get_db_fields() #Params which correspond to Db fields
try:
controller_perl = controller_template.render(version=strVersion,
tablecontrols=tablecontrols,
dbentries=dbentries,
**json5_dict,
panels=routes,
lcPackageName=json5_dict['PackageName'].lower()
)
with open(controller_file, 'w') as file:
file.write(controller_perl)
print(f"{controller_file} controller generated ok")
except Exception as e:
print(f"An chameleon controller render error occurred: {e}")
except Exception as e:
print(f"An chameleon controller template error occurred: {e}")
#Generate Custom controller file
try:
custom_controller_template = PageTemplateFile("Templates/custom.pm.tem")
try:
custom_controller_perl = custom_controller_template.render(version=strVersion,
with open(controller_file, 'w') as file:
file.write(controller_perl)
print(f"{controller_file} controller generated ok")
except Exception as e:
print(f"A Chameleon controller render error occurred: {e}")
except Exception as e:
print(f"A Chameleon controller template error occurred: {e}")
#Generate Custom controller file
try:
custom_controller_template = PageTemplateFile("Templates/custom.pm.tem")
try:
custom_controller_perl = custom_controller_template.render(version=strVersion,
panels=routes,
tablecontrols=tablecontrols
)
# We must be careful to not overwrite the custom file if the developer has already written to it - TBD
with open(custom_controller_file, 'w') as file:
file.write(custom_controller_perl)
print(f"{custom_controller_file} custom controller generated ok")
except Exception as e:
print(f"An chameleon custom controller render error occurred: {e}")
except Exception as e:
print(f"An chameleon custom controller template error occurred: {e}")
# We must be careful to not overwrite the custom file if the developer has already written to it - TBD
with open(custom_controller_file, 'w') as file:
file.write(custom_controller_perl)
print(f"{custom_controller_file} custom controller generated ok")
except Exception as e:
print(f"A Chameleon custom controller render error occurred: {e}")
except Exception as e:
print(f"A Chameleon custom controller template error occurred: {e}")
#generate Layout file
layout_template = PageTemplateFile("Templates/layout.html.ep.tem")
try:
try:
layout_mojo = layout_template.render(version=strVersion,**json5_dict,conditions=routes)
with open(layout_file, 'w') as file:
file.write(layout_mojo)
print(f"{layout_file} mojo template layout file generated ok")
except Exception as e:
print(f"An chameleon render on layout file error occurred: {e}")
except Exception as e:
print(f"An chameleon template layout file error occurred: {e}")
#Generate a partial file for each of the entries in the html list
#Pull in the template code for each of the input types
#html_controls = json5_to_dict('Templates/html_controls.html.ep.tem')
html_controls = parse_xml_to_dict('Templates/html_controls.html.ep.xml')
i = 0
for html in json5_html_list:
# Generate a mojo template file, and then add in the controls
# main file first
try:
partial_template = PageTemplateFile("Templates/partial.html.ep.tem")
partial_mojo_context = {**json5_dict,**html}
try:
partial_mojo_template = partial_template.render(version=strVersion,**partial_mojo_context)
with open( partial_files[i], 'w') as file:
file.write(partial_mojo_template)
print(f"{partial_files[i]} mojo template generated ok - phase 1")
except Exception as e:
print(f"An chameleon render error on partial file {html['route']} occurred: {e}")
except Exception as e:
print(f"An chameleon html {html['route']} error occurred: {e}")
#generate Layout file
layout_template = PageTemplateFile("Templates/layout.html.ep.tem")
try:
try:
layout_mojo = layout_template.render(version=strVersion,**json5_dict,conditions=routes)
with open(layout_file, 'w') as file:
file.write(layout_mojo)
print(f"{layout_file} mojo template layout file generated ok")
except Exception as e:
print(f"A Chameleon render on layout file error occurred: {e}")
except Exception as e:
print(f"A Chameleon template layout file error occurred: {e}")
#Generate a partial file for each of the entries in the html list
#Pull in the template code for each of the input types
#html_controls = json5_to_dict('Templates/html_controls.html.ep.tem')
html_controls = parse_xml_to_dict('Templates/html_controls.html.ep.xml')
i = 0
for html in json5_html_list:
# Generate a mojo template file, and then add in the controls
# main file first
try:
partial_template = PageTemplateFile("Templates/partial.html.ep.tem")
partial_mojo_context = {**json5_dict,**html}
try:
partial_mojo_template = partial_template.render(version=strVersion,**partial_mojo_context)
with open( partial_files[i], 'w') as file:
file.write(partial_mojo_template)
print(f"{partial_files[i]} mojo template generated ok - phase 1")
except Exception as e:
print(f"A Chameleon render error on partial file {html['route']} occurred: {e}")
except Exception as e:
print(f"A Chameleon html {html['route']} error occurred: {e}")
#Now generate the controls from the rest of the entries in the dict.
all_controls_html = "";
prefix_is = hl('prefix')
for html_control in html:
inner_html = html[html_control]
if isinstance(inner_html, dict):
try:
control_template = PageTemplate(html_controls[inner_html['Type']])
try:
control_html = control_template.render(version=strVersion,**inner_html,prefix=prefix_is)
all_controls_html = all_controls_html + control_html
except Exception as e:
print(f"An chameleon render on partial file control {inner_html['Name']} error occurred: {e}")
except Exception as e:
print(f"An chameleon render on partial file control {inner_html['Name']} error occurred: {e}")
else:
#just a simple entry - name less numerics is type
html_Type = ''.join(char for char in html_control if not char.isdigit())
try:
simple_control_template = PageTemplate(html_controls[html_Type])
try:
simple_control_html = simple_control_template.render(version=strVersion,value=inner_html,prefix=prefix_is)
all_controls_html = all_controls_html + simple_control_html
except Exception as e:
print(f"An chameleon render on partial file control {html_control} error occurred: {e}")
except Exception as e:
print(f"An chameleon template partial file control {html_control} error occurred: {e}")
# Now insert it into the partial file in the correct place.
# Read in the text file and split at "%# Inputs etc in here."
with open(partial_files[i], 'r') as file:
lines = file.readlines()
index = next((i for i, line in enumerate(lines) if "%# Inputs etc in here." in line), len(lines))
# Insert the string at the specified index
lines.insert(index+1, all_controls_html + '\n')
# Write the modified content back to the file
with open(partial_files[i], 'w') as file:
file.writelines(lines)
print(f"Content modified and saved to {partial_files[i]}")
i += 1
# Now generate the <name>.en file
# Look through the generated files for the /l[\s|(]['|"](.*)['|"]\)/ strings.
#Now generate the controls from the rest of the entries in the dict.
all_controls_html = "";
prefix_is = hl('prefix')
for html_control in html:
inner_html = html[html_control]
if isinstance(inner_html, dict):
try:
control_template = PageTemplate(html_controls[inner_html['Type']])
try:
control_html = control_template.render(version=strVersion,**inner_html,prefix=prefix_is)
all_controls_html = all_controls_html + control_html
except Exception as e:
print(f"A Chameleon render on partial file control {inner_html['Name']} error occurred: {e}")
except Exception as e:
print(f"A Chameleon render on partial file control {inner_html['Name']} error occurred: {e}")
else:
#just a simple entry - name less numerics is type
html_Type = ''.join(char for char in html_control if not char.isdigit())
try:
simple_control_template = PageTemplate(html_controls[html_Type])
try:
simple_control_html = simple_control_template.render(version=strVersion,value=inner_html,prefix=prefix_is)
all_controls_html = all_controls_html + simple_control_html
except Exception as e:
print(f"A Chameleon render on partial file control {html_control} error occurred: {e}")
except Exception as e:
print(f"A Chameleon template partial file control {html_control} error occurred: {e}")
# Now insert it into the partial file in the correct place.
# Read in the text file and split at "%# Inputs etc in here."
with open(partial_files[i], 'r') as file:
lines = file.readlines()
index = next((i for i, line in enumerate(lines) if "%# Inputs etc in here." in line), len(lines))
# Insert the string at the specified index
lines.insert(index+1, all_controls_html + '\n')
# Write the modified content back to the file
with open(partial_files[i], 'w') as file:
file.writelines(lines)
print(f"Content modified and saved to {partial_files[i]}")
i += 1
# Now generate the <name>.en file
# Look through the generated files for the /l[\s|(]['|"](.*)['|"]\)/ strings.
# create a combined list of all the files
all_files = [controller_file,layout_file]+partial_files
all_strings = []
for filename in all_files:
with open(filename, 'r') as file:
file_content = file.read()
# Define the regular expression pattern to match the strings you want to extract
pattern = r"l[\s|(][\'|\"](.*)[\'|\"]\)"
# Use re.findall to extract all occurrences of the pattern from the file content
extracted_strings = re.findall(pattern, file_content)
all_strings = all_strings + extracted_strings
#Take out any duplicates
all_strings = deduplicate_array(all_strings)
# '<prefix>_english-message' => 'English Message',
string_lib = [] #Array of dicts
for lex_message in all_strings:
# If has a prefix - leave it for left hand side but delete it for the right
# If has no prefix - add one for left hand side but and leave it for the right
# Map all spaces to "_" on left hand side
# amd truncate it to max five words
original_str = lex_message
# Checkif it starts with the prefix (any case|)
if lex_message.lower().startswith(hl('prefix').lower()):
left_str = lex_message
right_str = lex_message[len(hl('prefix'))+1:]
# And take out any "_", map to " "
else:
left_str = hl('prefix')+"_"+lex_message
right_str = lex_message
right_str = right_str.replace("_"," ")
print(f"Right:{right_str}")
right_str = format_text(right_str)
left_str = left_str.replace(" ","_")
words = left_str.split('_')[:6]
left_str = "_".join(words)
next_lex_str = {"orig":original_str,"left":left_str,"right":right_str}
string_lib.append(next_lex_str)
#And write it to lex file
# Now process them one by one into the lexical file
lex_all = "";
for lex_str in string_lib:
lex_all += f"\'{lex_str['left']}\' => \'{lex_str['right']}\',\n"
print(f"Writing {lex_file}")
with open( lex_file, 'w') as file:
file.write(lex_all)
#and then play the strings back into the partials and the layout file
print("..and feed the lex string names back into other files")
for filename in all_files:
with open(filename, 'r') as file:
file_content = file.read()
# Scan through
for item in string_lib:
original_str = item["orig"]
left_str = item["left"]
right_str = item["right"]
# Replace all occurrences of original string with left string in 'contents'
file_content = file_content.replace("l('"+original_str+"')", "l('"+left_str+"')")
# and write it back
with open(filename, 'w') as file:
file.write(file_content)
print(f"Write out modified:{filename}")
# create a combined list of all the files
all_files = [controller_file,layout_file]+partial_files
all_strings = []
for filename in all_files:
with open(filename, 'r') as file:
file_content = file.read()
# Define the regular expression pattern to match the strings you want to extract
pattern = r"l[\s|(][\'|\"](.*)[\'|\"]\)"
# Use re.findall to extract all occurrences of the pattern from the file content
extracted_strings = re.findall(pattern, file_content)
all_strings = all_strings + extracted_strings
#Take out any duplicates
all_strings = deduplicate_array(all_strings)
# '<prefix>_english-message' => 'English Message',
string_lib = [] #Array of dicts
for lex_message in all_strings:
# If has a prefix - leave it for left hand side but delete it for the right
# If has no prefix - add one for left hand side but and leave it for the right
# Map all spaces to "_" on left hand side
# amd truncate it to max five words
original_str = lex_message
# Checkif it starts with the prefix (any case|)
if lex_message.lower().startswith(hl('prefix').lower()):
left_str = lex_message
right_str = lex_message[len(hl('prefix'))+1:]
# And take out any "_", map to " "
else:
left_str = hl('prefix')+"_"+lex_message
right_str = lex_message
right_str = right_str.replace("_"," ")
#print(f"Right:{right_str}")
right_str = format_text(right_str)
left_str = left_str.replace(" ","_")
words = left_str.split('_')[:6]
left_str = "_".join(words)
next_lex_str = {"orig":original_str,"left":left_str,"right":right_str}
string_lib.append(next_lex_str)
#And write it to lex file
# Now process them one by one into the lexical file
lex_all = "";
for lex_str in string_lib:
lex_all += f"\'{lex_str['left']}\' => \'{lex_str['right']}\',\n"
print(f"Writing {lex_file}")
with open( lex_file, 'w') as file:
file.write(lex_all)
#and then play the strings back into the partials and the layout file
print("..and feed the lex string names back into other files")
for filename in all_files:
with open(filename, 'r') as file:
file_content = file.read()
# Scan through
for item in string_lib:
original_str = item["orig"]
left_str = item["left"]
right_str = item["right"]
# Replace all occurrences of original string with left string in 'contents'
file_content = file_content.replace("l('"+original_str+"')", "l('"+left_str+"')")
# and write it back
with open(filename, 'w') as file:
file.write(file_content)
print(f"Write out modified:{filename}")
# Now generate all the translated lex files from a list of the languages and codes
home_dir = os.path.dirname(json_filename)
languages_path =f"{home_dir}/languages.json"
with open(languages_path,'r') as file:
languages_str = file.read()
lang_dict = json.loads(languages_str)
with open(lex_file,'r') as file:
lex_str = file.read()
eng_lex_dict = convert_lex_to_dict(lex_str)
for lang_item in lang_dict:
print(f"Translating from english lex file to {lang_item['language']}")
code = lang_item["code"]
translated_dict = []
for lex_item in eng_lex_dict:
translated_text = get_translation(lex_item["text"], lang_item["language"])
translated_dict.append({"id": lex_item["id"], "text": translated_text})
print(f"Writing out lex file for {lang_item['code']}")
translated_lex_file = f"Targets/{hl('PackageName').lower()}_{code}.lex"
with open(translated_lex_file, "w") as file:
for item in translated_dict:
file.write(f"'"+item['id']+"' => '"+item['text']+"'\n")
#print(f"{item['id']} => {item['text']}\n")