use ruff to reformat

This commit is contained in:
Brian Read 2024-08-26 14:25:11 +01:00
parent 07f7954a5a
commit 822fe8d26f
20 changed files with 1543 additions and 630 deletions

View File

@ -2,7 +2,7 @@
# Routines to be edited 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) # and provison of the control data for table(s)
# #
# Generated by SM2Gen version:0.8 Chameleon version:4.5.4 On Python:3.10.12 at 2024-06-20 16:05 # Generated by SM2Gen version:0.8 Chameleon version:4.5.4 On Python:3.10.12 at 2024-06-29 11:35
# #
use esmith::util; use esmith::util;

View File

@ -1,6 +1,6 @@
package SrvMngr::Controller::Nfsshare; package SrvMngr::Controller::Nfsshare;
# #
# Generated by version:SM2Gen version:0.8 Chameleon version:4.5.4 On Python:3.10.12 at 2024-06-20 16:05 # Generated by version:SM2Gen version:0.8 Chameleon version:4.5.4 On Python:3.10.12 at 2024-06-29 11:35
# #
#---------------------------------------------------------------------- #----------------------------------------------------------------------
# heading : Network # heading : Network

View File

@ -1,5 +1,5 @@
%# %#
%# Generated by SM2Gen version:0.8 Chameleon version:4.5.4 On Python:3.10.12 at 2024-06-20 16:05 %# Generated by SM2Gen version:0.8 Chameleon version:4.5.4 On Python:3.10.12 at 2024-06-29 11:35
%# %#
<div id="Nfsshare-PARAMS" class="partial Nfsshare-PARAMS"> <div id="Nfsshare-PARAMS" class="partial Nfsshare-PARAMS">
<script> <script>

View File

@ -1,5 +1,5 @@
%# %#
%# Generated by SM2Gen version:0.8 Chameleon version:4.5.4 On Python:3.10.12 at 2024-06-20 16:05 %# Generated by SM2Gen version:0.8 Chameleon version:4.5.4 On Python:3.10.12 at 2024-06-29 11:35
%# %#
<div id="Nfsshare-TABLE" class="partial Nfsshare-TABLE"> <div id="Nfsshare-TABLE" class="partial Nfsshare-TABLE">
<script> <script>

Binary file not shown.

View File

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

View File

@ -1,28 +0,0 @@
'nfs_Save' => "Gem",
'nfs_Hello_TABLE' => "Hej TABEL",
'nfs_Hello_PARAMS' => "Hej PARAMS",
'nfs_Requests_on_secure_ports' => "Anmodninger på sikre porte",
'nfs_File_system_permissions' => "Filsystemtilladelser",
'nfs_NFS_Client(s)_allowed' => "NFS-klient(er) tilladt",
'nfs_NFS_data_share' => "NFS-deling af data",
'nfs_APPLY' => "Anvend",
'nfs_Enable_the_NFS_Share' => "Aktivér NFS-delingen",
'nfs_For_writing_permissions,allowing_the_root' => "Til skrive-tilladelser, Tillad rodbrugeren og brug usikre porte, Du skal konfigurere en liste med én IP per linje, Vær en del af det lokale netværk/netværkene.",
'nfs_Set_the_uid_and_gid' => "Indstil uid og gid, hvis du ønsker, at alle anmodninger skal fremstå som fra én bruger eller én gruppe. Ellers lad det være tomt.",
'nfs_Set_the_GID.' => "Indstil GID.",
'nfs_TABLE_panel_action_was_successful' => "TABEL-panehandling var vellykket",
'Nfs_status' => "Status",
'nfs_PARAMS_panel_action_was_successful' => "~~~PARAMS-panelet handling lykkedes~~~",
'nfs_Information_Bay_name' => "Informationsbugt navn",
'nfs_Delays_the_disk_writing' => "Forsinker disk skrivning",
'nfs_Share_owner_Group' => "Del ejergruppe",
'nfs_Description' => "Beskrivelse",
'nfs_Write_(a)synchronously' => "Skriv (a)synkront",
'nfs_Manage_NFS_Ibay_settings:' => "Administrer NFS Ibay-indstillinger:",
'nfs_Name' => "Navn",
'nfs_Set_the_UID.' => "Indstil UID.",
'nfs_Squash_the_power_of_users' => "~~~Nedjuster brugernes rettigheder~~~",
'nfs_EnableShare_on_local_network' => "Aktiver deling på lokalt netværk",
'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_Browse_the_parent_folders' => "~~~Gennemse de overordnede mapper~~~",
'nfs_Action' => "Handling",

28
Targets/nfsshare_dk.lex Normal file
View File

@ -0,0 +1,28 @@
'nfs_APPLY' => "Anvend",
'nfs_NFS_Client(s)_allowed' => "Tilladte NFS-klient(er)",
'nfs_TABLE_panel_action_was_successful' => "Handlingspanelet for TABEL var vellykket",
'nfs_Share_owner_Group' => "Del ejergruppe",
'nfs_Information_Bay_name' => "Information Bay navn",
'nfs_Write_(a)synchronously' => "Skriv (a)synkront",
'nfs_Squash_the_power_of_users' => "Knus brugernes magt",
'nfs_For_writing_permissions,allowing_the_root' => "For at skrive tilladelser, Tillade root-brugeren og bruge usikre porte, Du skal konfigurere en liste med én IP pr. linje, Som er en del af de lokale netværk.",
'nfs_Hello_PARAMS' => "~~~Hej PARAMS~~~",
'nfs_PARAMS_panel_action_was_successful' => "PARAMS panelet var vellykket",
'nfs_Enable_the_NFS_Share' => "Aktiver NFS-deling",
'nfs_NFS_data_share' => "NFS-deling af data",
'nfs_Set_the_UID.' => "Indstil UID.",
'nfs_Manage_NFS_Ibay_settings:' => "Administrer NFS Ibay indstillinger:",
'nfs_Browse_the_parent_folders' => "Gennemse de overordnede mapper",
'nfs_These_parameters_will_be_effective' => "Disse parametre vil kun træde i kraft, hvis delingen er aktiveret. Delingen er i /home/e-smith/files/ibays//files",
'nfs_Hello_TABLE' => "~~~Hej TABEL~~~",
'nfs_Description' => "Beskrivelse",
'nfs_Set_the_uid_and_gid' => "Indstil uid og gid, hvis du ønsker, at alle forespørgsler skal se ud til at være fra en bruger eller en gruppe. Ellers lad det være tomt.",
'nfs_EnableShare_on_local_network' => "Aktiver deling på lokalt netværk",
'nfs_Set_the_GID.' => "Indstil GID.",
'nfs_Save' => "Gem",
'nfs_Requests_on_secure_ports' => "Anmodninger på sikre porte",
'nfs_Action' => "Handling",
'nfs_Delays_the_disk_writing' => "Forsinker disk skrivning",
'Nfs_status' => "Status",
'nfs_Name' => "Navn",
'nfs_File_system_permissions' => "Filsystem tilladelser",

View File

@ -1,28 +1,28 @@
'nfs_Save' => 'Save',
'nfs_Hello_TABLE' => 'Hello TABLE',
'nfs_Hello_PARAMS' => 'Hello PARAMS',
'nfs_Requests_on_secure_ports' => 'Requests on secure ports',
'nfs_File_system_permissions' => 'File system permissions',
'nfs_NFS_Client(s)_allowed' => 'NFS Client(s) allowed',
'nfs_NFS_data_share' => 'NFS data share',
'nfs_APPLY' => 'Apply', 'nfs_APPLY' => 'Apply',
'nfs_Enable_the_NFS_Share' => 'Enable the NFS Share', 'nfs_NFS_Client(s)_allowed' => 'NFS Client(s) allowed',
'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_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_Set_the_GID.' => 'Set the GID. ',
'nfs_TABLE_panel_action_was_successful' => 'TABLE panel action was successful', 'nfs_TABLE_panel_action_was_successful' => 'TABLE panel action was successful',
'Nfs_status' => 'Status',
'nfs_PARAMS_panel_action_was_successful' => 'PARAMS panel action was successful',
'nfs_Information_Bay_name' => 'Information Bay name',
'nfs_Delays_the_disk_writing' => 'Delays the disk writing',
'nfs_Share_owner_Group' => 'Share owner Group', 'nfs_Share_owner_Group' => 'Share owner Group',
'nfs_Description' => 'Description', 'nfs_Information_Bay_name' => 'Information Bay name',
'nfs_Write_(a)synchronously' => 'Write (a)synchronously', 'nfs_Write_(a)synchronously' => 'Write (a)synchronously',
'nfs_Manage_NFS_Ibay_settings:' => 'Manage NFS Ibay settings:',
'nfs_Name' => 'Name',
'nfs_Set_the_UID.' => 'Set the UID. ',
'nfs_Squash_the_power_of_users' => 'Squash the power of users', 'nfs_Squash_the_power_of_users' => 'Squash the power of users',
'nfs_EnableShare_on_local_network' => 'Enableshare on local network', '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_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_Hello_PARAMS' => 'Hello PARAMS',
'nfs_PARAMS_panel_action_was_successful' => 'PARAMS panel action was successful',
'nfs_Enable_the_NFS_Share' => 'Enable the NFS Share',
'nfs_NFS_data_share' => 'NFS data share',
'nfs_Set_the_UID.' => 'Set the UID. ',
'nfs_Manage_NFS_Ibay_settings:' => 'Manage NFS Ibay settings:',
'nfs_Browse_the_parent_folders' => 'Browse the parent folders', 'nfs_Browse_the_parent_folders' => 'Browse the parent folders',
'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_Hello_TABLE' => 'Hello TABLE',
'nfs_Description' => 'Description',
'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_EnableShare_on_local_network' => 'Enableshare on local network',
'nfs_Set_the_GID.' => 'Set the GID. ',
'nfs_Save' => 'Save',
'nfs_Requests_on_secure_ports' => 'Requests on secure ports',
'nfs_Action' => 'Action', 'nfs_Action' => 'Action',
'nfs_Delays_the_disk_writing' => 'Delays the disk writing',
'Nfs_status' => 'Status',
'nfs_Name' => 'Name',
'nfs_File_system_permissions' => 'File system permissions',

94
Targets/nfsshare_en.po Normal file
View File

@ -0,0 +1,94 @@
#
msgid ""
msgstr ""
msgid "nfs_APPLY"
msgstr "Apply',"
msgid "nfs_NFS_Client(s)_allowed"
msgstr "NFS Client(s) allowed',"
msgid "nfs_TABLE_panel_action_was_successful"
msgstr "TABLE panel action was successful',"
msgid "nfs_Share_owner_Group"
msgstr "Share owner Group',"
msgid "nfs_Information_Bay_name"
msgstr "Information Bay name',"
msgid "nfs_Write_(a)synchronously"
msgstr "Write (a)synchronously',"
msgid "nfs_Squash_the_power_of_users"
msgstr "Squash the power of users',"
msgid "nfs_For_writing_permissions,allowing_the_root"
msgstr ""
"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). ',"
msgid "nfs_Hello_PARAMS"
msgstr "Hello PARAMS',"
msgid "nfs_PARAMS_panel_action_was_successful"
msgstr "PARAMS panel action was successful',"
msgid "nfs_Enable_the_NFS_Share"
msgstr "Enable the NFS Share',"
msgid "nfs_NFS_data_share"
msgstr "NFS data share',"
msgid "nfs_Set_the_UID."
msgstr "Set the UID. ',"
msgid "nfs_Manage_NFS_Ibay_settings:"
msgstr "Manage NFS Ibay settings:',"
msgid "nfs_Browse_the_parent_folders"
msgstr "Browse the parent folders',"
msgid "nfs_These_parameters_will_be_effective"
msgstr ""
"These parameters will be effective only if the share is enabled. The share "
"is in /home/e-smith/files/ibays//files',"
msgid "nfs_Hello_TABLE"
msgstr "Hello TABLE',"
msgid "nfs_Description"
msgstr "Description',"
msgid "nfs_Set_the_uid_and_gid"
msgstr ""
"Set the uid and gid if you want all requests appear to be from one user or "
"one group, Otherwise leave blank',"
msgid "nfs_EnableShare_on_local_network"
msgstr "Enableshare on local network',"
msgid "nfs_Set_the_GID."
msgstr "Set the GID. ',"
msgid "nfs_Save"
msgstr "Save',"
msgid "nfs_Requests_on_secure_ports"
msgstr "Requests on secure ports',"
msgid "nfs_Action"
msgstr "Action',"
msgid "nfs_Delays_the_disk_writing"
msgstr "Delays the disk writing',"
msgid "Nfs_status"
msgstr "Status',"
msgid "nfs_Name"
msgstr "Name',"
msgid "nfs_File_system_permissions"
msgstr "File system permissions',"

95
Targets/nfsshare_es.po Normal file
View File

@ -0,0 +1,95 @@
#
msgid ""
msgstr ""
msgid "nfs_Save"
msgstr "\"Guardar\","
msgid "nfs_Hello_TABLE"
msgstr "\"~~~Hola MESA~~~\","
msgid "nfs_Hello_PARAMS"
msgstr "\"~~~Hola PARAMS~~~\","
msgid "nfs_Requests_on_secure_ports"
msgstr "\"~~Solicitudes en puertos seguros~~\","
msgid "nfs_File_system_permissions"
msgstr "\"Permisos del sistema de archivos\","
msgid "nfs_NFS_Client(s)_allowed"
msgstr "\"Clientes NFS permitidos\","
msgid "nfs_NFS_data_share"
msgstr "\"Compartición de datos NFS\","
msgid "nfs_APPLY"
msgstr "\"Aplicar\","
msgid "nfs_Enable_the_NFS_Share"
msgstr "\"~~~Habilitar el recurso compartido NFS~~~\","
msgid "nfs_For_writing_permissions,allowing_the_root"
msgstr ""
"\"Para permisos de escritura, permitiendo al usuario root y usando puertos "
"inseguros, debe configurar una lista de una IP por línea, siendo parte de "
"la(s) red(es) local(es).\","
msgid "nfs_Set_the_uid_and_gid"
msgstr ""
"\"Establezca el uid y gid si desea que todas las solicitudes parezcan ser de"
" un solo usuario o de un solo grupo, de lo contrario, deje en blanco\","
msgid "nfs_Set_the_GID."
msgstr "\"Establecer el GID.\","
msgid "nfs_TABLE_panel_action_was_successful"
msgstr "\"Acción de panel de TABLA fue exitosa\","
msgid "Nfs_status"
msgstr "\"Estado\","
msgid "nfs_PARAMS_panel_action_was_successful"
msgstr "\"La acción del panel de PARAMS fue exitosa\","
msgid "nfs_Information_Bay_name"
msgstr "\"Nombre de la Bahía de Información\","
msgid "nfs_Delays_the_disk_writing"
msgstr "\"Retrasa la escritura en disco\","
msgid "nfs_Share_owner_Group"
msgstr "\"Compartir grupo de propietarios\","
msgid "nfs_Description"
msgstr "\"Descripción\","
msgid "nfs_Write_(a)synchronously"
msgstr "\"Escribir (a)síncronamente\","
msgid "nfs_Manage_NFS_Ibay_settings:"
msgstr "\"Administrar configuraciones de NFS Ibay:\","
msgid "nfs_Name"
msgstr "\"Nombre\","
msgid "nfs_Set_the_UID."
msgstr "\"Establecer el UID.\","
msgid "nfs_Squash_the_power_of_users"
msgstr "\"Aplastar el poder de los usuarios\","
msgid "nfs_EnableShare_on_local_network"
msgstr "\"Habilitar compartir en la red local\","
msgid "nfs_These_parameters_will_be_effective"
msgstr ""
"\"Estos parámetros serán efectivos solo si el recurso compartido está "
"habilitado. El recurso compartido está en "
"/home/e-smith/files/ibays//files\","
msgid "nfs_Browse_the_parent_folders"
msgstr "\"Explorar las carpetas principales\","
msgid "nfs_Action"
msgstr "\"Acción\","

View File

@ -1,30 +0,0 @@
'nfs_Save' => "שמור",
'nfs_Hello_TABLE' => "שלום טבלה",
'nfs_Hello_PARAMS' => "שלום PARAMS",
'nfs_Requests_on_secure_ports' => "בקשות על יציאות מאובטחות",
'nfs_File_system_permissions' => "הרשאות מערכת קבצים",
'nfs_NFS_Client(s)_allowed' => "לקוחות NFS מורשים",
'nfs_NFS_data_share' => "שיתוף נתונים NFS",
'nfs_APPLY' => "יישם",
'nfs_Enable_the_NFS_Share' => "הפעל את שיתוף NFS",
'nfs_For_writing_permissions,allowing_the_root' => "~~~עבור הרשאות כתיבה, אישור משתמש root ושימוש בפורטים לא מאובטחים, עליכם להגדיר רשימה של כתובת IP אחת בשורה, ולהיות חלק מהרשת המקומית.~~~",
'nfs_Set_the_uid_and_gid' => "הגדר את ה-uid וה-gid אם ברצונך שכל הבקשות ייראו כבאילו הן ממשתמש אחד או מקבוצה אחת, אחרת השאר ריק",
'nfs_Set_the_GID.' => "קבע את ה-GID.",
'nfs_TABLE_panel_action_was_successful' => "הפעולה של לוח TABLE הצליחה",
'Nfs_status' => "סטטוס",
'nfs_PARAMS_panel_action_was_successful' => "פעולת לוח PARAMS הצליחה",
'nfs_Information_Bay_name' => "~~~שם מפרץ המידע~~~",
'nfs_Delays_the_disk_writing' => "~~~מעכב את כתיבת הדיסק~~~",
'nfs_Share_owner_Group' => "שתף קבוצת בעלים",
'nfs_Description' => "תיאור",
'nfs_Write_(a)synchronously' => "כתוב (א)סינכרוני",
'nfs_Manage_NFS_Ibay_settings:' => "נהל הגדרות NFS Ibay:",
'nfs_Name' => "שם",
'nfs_Set_the_UID.' => "~~~
הגדר את מזהה המשתמש
~~~",
'nfs_Squash_the_power_of_users' => "מנע כוח ממשתמשים",
'nfs_EnableShare_on_local_network' => "‏‏אפשר שיתוף ברשת המקומית",
'nfs_These_parameters_will_be_effective' => "פרמטרים אלה יהיו בתוקף רק אם השיתוף מופעל. השיתוף נמצא ב-/home/e-smith/files/ibays//files",
'nfs_Browse_the_parent_folders' => "עיין בתיקיות האב",
'nfs_Action' => "פעולה",

28
Targets/nfsshare_il.lex Normal file
View File

@ -0,0 +1,28 @@
'nfs_APPLY' => "החל",
'nfs_NFS_Client(s)_allowed' => "לקוחות NFS מורשים",
'nfs_TABLE_panel_action_was_successful' => "הפעולה של לוח TABLE הצליחה",
'nfs_Share_owner_Group' => "שתף קבוצת בעלי מניות",
'nfs_Information_Bay_name' => "שם מפרץ המידע",
'nfs_Write_(a)synchronously' => "~~~כתוב (באופן) סינכרוני/אסינכרוני~~~",
'nfs_Squash_the_power_of_users' => "~~~להמעיט את כוח המשתמשים~~~",
'nfs_For_writing_permissions,allowing_the_root' => "כדי לקבל הרשאות כתיבה, לאפשר את משתמש השורש ולהשתמש ביציאות לא מאובטחות, יש להגדיר רשימה של כתובת IP אחת בכל שורה, כחלק מהרשת המקומית.",
'nfs_Hello_PARAMS' => "שלום PARAMS",
'nfs_PARAMS_panel_action_was_successful' => "פאנל הדֶפָאוֹת ביצע את הפעולה בהצלחה",
'nfs_Enable_the_NFS_Share' => "אפשר שיתוף NFS",
'nfs_NFS_data_share' => "שיתוף נתונים NFS",
'nfs_Set_the_UID.' => "הגדר את ה-UID.",
'nfs_Manage_NFS_Ibay_settings:' => "נהל הגדרות NFS Ibay:",
'nfs_Browse_the_parent_folders' => "עיין בתיקיות האב",
'nfs_These_parameters_will_be_effective' => "פרמטרים אלו יהיו בתוקף רק אם השיתוף מופעל. השיתוף נמצא ב-/home/e-smith/files/ibays/files",
'nfs_Hello_TABLE' => "~~~שלום TABLE~~~",
'nfs_Description' => "תיאור",
'nfs_Set_the_uid_and_gid' => "~~~הגדר את ה-uid וה-gid אם ברצונך שכל הבקשות ייראו כאילו הן מגיעות ממשתמש אחד או מקבוצה אחת, אחרת השאר ריק~~~",
'nfs_EnableShare_on_local_network' => "אפשר שיתוף ברשת המקומית",
'nfs_Set_the_GID.' => "קבע את ה-GID.",
'nfs_Save' => "שמור",
'nfs_Requests_on_secure_ports' => "בקשות על יציאות מאובטחות",
'nfs_Action' => "פעולה",
'nfs_Delays_the_disk_writing' => "מעכב את כתיבת הדיסק",
'Nfs_status' => "סטטוס",
'nfs_Name' => "~~שם~~",
'nfs_File_system_permissions' => "הרשאות מערכת קבצים",

View File

@ -1,28 +0,0 @@
'nfs_Save' => "保存",
'nfs_Hello_TABLE' => "こんにちは、テーブル",
'nfs_Hello_PARAMS' => "こんにちは PARAMS",
'nfs_Requests_on_secure_ports' => "セキュアポートのリクエスト",
'nfs_File_system_permissions' => "ファイルシステム権限",
'nfs_NFS_Client(s)_allowed' => "NFS クライアントの許可",
'nfs_NFS_data_share' => "~~~NFSデータ共有~~~",
'nfs_APPLY' => "適用",
'nfs_Enable_the_NFS_Share' => "NFS共有を有効にする",
'nfs_For_writing_permissions,allowing_the_root' => "~~~書き込み権限について、rootユーザーの許可と安全でないポートの使用、ローカルネットワークの一部であることを条件に、1行に1つのIPのリストを設定する必要があります。~~~",
'nfs_Set_the_uid_and_gid' => "すべてのリクエストを1人のユーザーまたは1つのグループからのものとして表示させたい場合は、uidとgidを設定してください。それ以外の場合は空白のままにしてください。",
'nfs_Set_the_GID.' => "GIDを設定する。",
'nfs_TABLE_panel_action_was_successful' => "テーブルパネルの操作が成功しました",
'Nfs_status' => "ステータス",
'nfs_PARAMS_panel_action_was_successful' => "PARAMSパネルの操作が成功しました",
'nfs_Information_Bay_name' => "情報ベイ名",
'nfs_Delays_the_disk_writing' => "ディスク書き込みの遅延",
'nfs_Share_owner_Group' => "グループの所有者を共有",
'nfs_Description' => "説明",
'nfs_Write_(a)synchronously' => "非同期に書き込む",
'nfs_Manage_NFS_Ibay_settings:' => "NFS Ibayの設定を管理する:",
'nfs_Name' => "名前",
'nfs_Set_the_UID.' => "UIDを設定する。",
'nfs_Squash_the_power_of_users' => "ユーザーの権限を抑制",
'nfs_EnableShare_on_local_network' => "ローカルネットワークで共有を有効にする",
'nfs_These_parameters_will_be_effective' => "共有が有効になっている場合にのみ、これらのパラメータは有効になります。共有は/home/e-smith/files/ibays//filesにあります。",
'nfs_Browse_the_parent_folders' => "親フォルダーを参照する",
'nfs_Action' => "アクション",

28
Targets/nfsshare_jp.lex Normal file
View File

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

View File

@ -1,30 +0,0 @@
'nfs_Save' => "Lagre",
'nfs_Hello_TABLE' => "~~~Hallo TABELL~~~",
'nfs_Hello_PARAMS' => "Hei PARAMS",
'nfs_Requests_on_secure_ports' => "Forespørsler på sikre porter",
'nfs_File_system_permissions' => "~~~Filsystemtillatelser~~~",
'nfs_NFS_Client(s)_allowed' => "Tillatte NFS-klient(er)",
'nfs_NFS_data_share' => "NFS-datadeling",
'nfs_APPLY' => "~~~
Søke
~~",
'nfs_Enable_the_NFS_Share' => "Aktiver NFS-delingen",
'nfs_For_writing_permissions,allowing_the_root' => "For skrivetillatelser, å tillate root-bruker og bruke usikre porter, må du konfigurere en liste med én IP per linje, som er en del av det lokale nettverket.",
'nfs_Set_the_uid_and_gid' => "Sett uid og gid hvis du vil at alle forespørsler skal fremstå som fra én bruker eller én gruppe. Ellers, la stå tomt.",
'nfs_Set_the_GID.' => "Sett GID.",
'nfs_TABLE_panel_action_was_successful' => "Paneletabellhandlingen var vellykket",
'Nfs_status' => "Status",
'nfs_PARAMS_panel_action_was_successful' => "Panelhandling var vellykket",
'nfs_Information_Bay_name' => "Informasjonsnavn på bukt",
'nfs_Delays_the_disk_writing' => "Forsinker diskskriving",
'nfs_Share_owner_Group' => "Dele eiergruppe",
'nfs_Description' => "Beskrivelse",
'nfs_Write_(a)synchronously' => "Skriv (a)synkront",
'nfs_Manage_NFS_Ibay_settings:' => "Administrer NFS Ibay-innstillinger:",
'nfs_Name' => "Navn",
'nfs_Set_the_UID.' => "Angi UID.",
'nfs_Squash_the_power_of_users' => "Knekk brukernes kraft",
'nfs_EnableShare_on_local_network' => "Aktiver deling på lokalt nettverk",
'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_Browse_the_parent_folders' => "~~~Bla gjennom overordnede mapper~~~",
'nfs_Action' => "~~Aksjon~~",

32
Targets/nfsshare_no.lex Normal file
View File

@ -0,0 +1,32 @@
'nfs_APPLY' => "Bruk",
'nfs_NFS_Client(s)_allowed' => "Tillatte NFS-klienter",
'nfs_TABLE_panel_action_was_successful' => "TABELL-handling var vellykket",
'nfs_Share_owner_Group' => "Dele eiergruppe",
'nfs_Information_Bay_name' => "Informasjon Bay-navn",
'nfs_Write_(a)synchronously' => "~~~Skriv (a)synkront~~~",
'nfs_Squash_the_power_of_users' => "~~~Undertrykk kraften til brukerne~~~",
'nfs_For_writing_permissions,allowing_the_root' => "For skrive-tillatelser, Tillate root-brukeren og bruke usikre porter, Du må konfigurere en liste med én IP per linje, Som er en del av det lokale nettverket.",
'nfs_Hello_PARAMS' => "~~~Hallo PARAMS~~~",
'nfs_PARAMS_panel_action_was_successful' => "~~PARAMS-panelet aksjonen var vellykket~~",
'nfs_Enable_the_NFS_Share' => "Aktiver NFS-deling",
'nfs_NFS_data_share' => "NFS-datadeling",
'nfs_Set_the_UID.' => "Sett UID.",
'nfs_Manage_NFS_Ibay_settings:' => "Administrer NFS Ibay-innstillinger:",
'nfs_Browse_the_parent_folders' => "~~~Bla gjennom overordnede mapper~~~",
'nfs_These_parameters_will_be_effective' => "Disse parametrene vil bare være effektive hvis delingen er aktivert. Delingen er i /home/e-smith/files/ibays/files",
'nfs_Hello_TABLE' => "~~~
Hallo TABELL
~~~",
'nfs_Description' => "Beskrivelse",
'nfs_Set_the_uid_and_gid' => "Sett uid og gid hvis du vil at alle forespørsler skal fremstå som fra én bruker eller én gruppe. Ellers la være tomt.",
'nfs_EnableShare_on_local_network' => "Aktiver deling på lokalt nettverk",
'nfs_Set_the_GID.' => "~~~
Angi GID.
~~~",
'nfs_Save' => "Lagre",
'nfs_Requests_on_secure_ports' => "Forespørsler på sikre porter",
'nfs_Action' => "~~Handling~~",
'nfs_Delays_the_disk_writing' => "Forsinker diskskrivingen",
'Nfs_status' => "Status",
'nfs_Name' => "Navn",
'nfs_File_system_permissions' => "Filsystemtillatelser",

View File

@ -1,17 +1,17 @@
[ [
{"language": "Bulgarian", "code": "bg"}, {"language": "Bulgarian", "code": "bg"},
{"language": "Danish", "code": "da"}, {"language": "Danish", "code": "dk"},
{"language": "German", "code": "de"}, {"language": "German", "code": "de"},
{"language": "Greek", "code": "el"}, {"language": "Greek", "code": "el"},
{"language": "Spanish", "code": "es"}, {"language": "Spanish", "code": "es"},
{"language": "Estonian", "code": "et"}, {"language": "Estonian", "code": "et"},
{"language": "French", "code": "fr"}, {"language": "French", "code": "fr"},
{"language": "Hebrew", "code": "he"}, {"language": "Hebrew", "code": "il"},
{"language": "Hungarian", "code": "hu"}, {"language": "Hungarian", "code": "hu"},
{"language": "Indonesian", "code": "id"}, {"language": "Indonesian", "code": "id"},
{"language": "Italian", "code": "it"}, {"language": "Italian", "code": "it"},
{"language": "Japanese", "code": "ja"}, {"language": "Japanese", "code": "jp"},
{"language": "Norwegian Bokmål", "code": "nb"}, {"language": "Norwegian Bokmål", "code": "no"},
{"language": "Dutch", "code": "nl"}, {"language": "Dutch", "code": "nl"},
{"language": "Polish", "code": "pl"}, {"language": "Polish", "code": "pl"},
{"language": "Brazilian Portuguese", "code": "pt-br"}, {"language": "Brazilian Portuguese", "code": "pt-br"},

622
menu-translations.txt Normal file
View File

@ -0,0 +1,622 @@
Bulgarian (bg), Field: Backup or restore, English: Backup or restore, Translated: Архивиране или възстановяване
Bulgarian (bg), Field: Report a bug, English: Report a bug, Translated: Докладвай за грешка
Bulgarian (bg), Field: Antivirus (ClamAV), English: Antivirus (ClamAV), Translated: Антивирус (ClamAV)
Bulgarian (bg), Field: Date and time, English: Date and time, Translated: Дата и час
Bulgarian (bg), Field: Directory, English: Directory, Translated: Директория
Bulgarian (bg), Field: Domains, English: Domains, Translated: Домейни
Bulgarian (bg), Field: E-mail, English: E-mail, Translated: Имейл
Bulgarian (bg), Field: Hostnames and addresses, English: Hostnames and addresses, Translated: Имена на хостове и адреси
Bulgarian (bg), Field: Shared areas (was ibays), English: Shared areas (was ibays), Translated: Споделени области (беше ibays)
Bulgarian (bg), Field: Home, English: Home, Translated: Начало
Bulgarian (bg), Field: Legacy panel, English: Legacy panel, Translated: Наследствен панел
Bulgarian (bg), Field: Local networks, English: Local networks, Translated: Местни мрежи
Bulgarian (bg), Field: Logout, English: Logout, Translated: Изход
Bulgarian (bg), Field: Online manual, English: Online manual, Translated: Онлайн ръководство
Bulgarian (bg), Field: NFS data share, English: NFS data share, Translated: Дял за данни NFS
Bulgarian (bg), Field: Port forwarding, English: Port forwarding, Translated: Пренасочване на портове
Bulgarian (bg), Field: Printers, English: Printers, Translated: Принтери
Bulgarian (bg), Field: Proxy settings, English: Proxy settings, Translated: Настройки на прокси
Bulgarian (bg), Field: Pseudonyms, English: Pseudonyms, Translated: Псевдоними
Bulgarian (bg), Field: Mail log file analysis, English: Mail log file analysis, Translated: Анализ на журнали с поща
Bulgarian (bg), Field: Quotas, English: Quotas, Translated: Квоти
Bulgarian (bg), Field: Reboot or shutdown, English: Reboot or shutdown, Translated: Рестартиране или изключване
Bulgarian (bg), Field: Review configuration, English: Review configuration, Translated: Преглед на конфигурацията
Bulgarian (bg), Field: Support and licensing, English: Support and licensing, Translated: Поддръжка и лицензиране
Bulgarian (bg), Field: Users, English: Users, Translated: Потребители
Bulgarian (bg), Field: User Panel Access, English: User Panel Access, Translated: Достъп до потребителския панел
Bulgarian (bg), Field: Change password, English: Change password, Translated: Промяна на паролата
Bulgarian (bg), Field: View log files, English: View log files, Translated: Преглед на log файлове
Bulgarian (bg), Field: Samba workgroup, English: Samba workgroup, Translated: Работна група Samba
Bulgarian (bg), Field: Software installer, English: Software installer, Translated: Инсталиране на софтуер
File not found for language: Danish (dk)
German (de), Field: Antivirus (ClamAV), English: Antivirus (ClamAV), Translated: Antivirus (ClamAV)
German (de), Field: Domains, English: Domains, Translated: Domains: Domänen
German (de), Field: Shared areas (was ibays), English: Shared areas (was ibays), Translated: Geteilte Bereiche (ehemals ibays)
German (de), Field: Home, English: Home, Translated: Startseite
German (de), Field: Legacy panel, English: Legacy panel, Translated: Altes Bedienfeld
German (de), Field: Logout, English: Logout, Translated: Abmelden
German (de), Field: NFS data share, English: NFS data share, Translated: NFS-Datenfreigabe
German (de), Field: User Panel Access, English: User Panel Access, Translated: Benutzerbereich Zugriff
German (de), Field: Change password, English: Change password, Translated: Passwort ändern
German (de), Field: Samba workgroup, English: Samba workgroup, Translated: Samba-Arbeitsgruppe
File not found for language: Greek (gr)
Spanish (es), Field: Report a bug, English: Report a bug, Translated: Informar de un error
Spanish (es), Field: Antivirus (ClamAV), English: Antivirus (ClamAV), Translated: Antivirus (ClamAV)
Spanish (es), Field: Domains, English: Domains, Translated: Dominios
Spanish (es), Field: E-mail, English: E-mail, Translated: Correo electrónico
Spanish (es), Field: Shared areas (was ibays), English: Shared areas (was ibays), Translated: Áreas compartidas (anteriormente ibays)
Spanish (es), Field: Home, English: Home, Translated: Inicio
Spanish (es), Field: Legacy panel, English: Legacy panel, Translated: Panel heredado
Spanish (es), Field: Logout, English: Logout, Translated: Cerrar sesión
Spanish (es), Field: NFS data share, English: NFS data share, Translated: Comparte de datos NFS
Spanish (es), Field: User Panel Access, English: User Panel Access, Translated: Acceso al Panel de Usuario
Spanish (es), Field: Change password, English: Change password, Translated: Cambiar contraseña
Spanish (es), Field: Samba workgroup, English: Samba workgroup, Translated: Grupo de trabajo de Samba
Estonian (et), Field: Backup or restore, English: Backup or restore, Translated: Varundamine või taastamine
Estonian (et), Field: Report a bug, English: Report a bug, Translated: Teata veast
Estonian (et), Field: Antivirus (ClamAV), English: Antivirus (ClamAV), Translated: Viirusevastane (ClamAV)
Estonian (et), Field: Date and time, English: Date and time, Translated: Kuupäev ja kellaaeg
Estonian (et), Field: Directory, English: Directory, Translated: Kataloog
Estonian (et), Field: Domains, English: Domains, Translated: Domeenid
Estonian (et), Field: E-mail, English: E-mail, Translated: E-post
Estonian (et), Field: Hostnames and addresses, English: Hostnames and addresses, Translated: Hostinimed ja aadressid
Estonian (et), Field: Shared areas (was ibays), English: Shared areas (was ibays), Translated: Jagatud alad (oli ibays)
Estonian (et), Field: Home, English: Home, Translated: Kodu
Estonian (et), Field: Legacy panel, English: Legacy panel, Translated: Pärandpaneel
Estonian (et), Field: Local networks, English: Local networks, Translated: Kohalikud võrgud
Estonian (et), Field: Logout, English: Logout, Translated: Logi välja
Estonian (et), Field: Online manual, English: Online manual, Translated: Veebimanuaal
Estonian (et), Field: NFS data share, English: NFS data share, Translated: NFS andmete jagamine
Estonian (et), Field: Port forwarding, English: Port forwarding, Translated: Pordi edastamine
Estonian (et), Field: Printers, English: Printers, Translated: Printerid
Estonian (et), Field: Proxy settings, English: Proxy settings, Translated: Puhverserveri seaded
Estonian (et), Field: Pseudonyms, English: Pseudonyms, Translated: Pseudonüümid
Estonian (et), Field: Mail log file analysis, English: Mail log file analysis, Translated: Posti logifaili analüüs
Estonian (et), Field: Quotas, English: Quotas, Translated: Kvoodid
Estonian (et), Field: Reboot or shutdown, English: Reboot or shutdown, Translated: Taaskäivitus või sulgemine
Estonian (et), Field: Remote access, English: Remote access, Translated: Kaugjuurdepääs
Estonian (et), Field: Review configuration, English: Review configuration, Translated: Konfiguratsiooni ülevaade
Estonian (et), Field: Support and licensing, English: Support and licensing, Translated: Toetus ja litsentsimine
Estonian (et), Field: Users, English: Users, Translated: Kasutajad
Estonian (et), Field: User Panel Access, English: User Panel Access, Translated: Kasutajapaneeli Juurdepääs
Estonian (et), Field: Change password, English: Change password, Translated: Muuda parooli
Estonian (et), Field: View log files, English: View log files, Translated: Vaata logifaile
Estonian (et), Field: Samba workgroup, English: Samba workgroup, Translated: Samba töögrupp
Estonian (et), Field: Software installer, English: Software installer, Translated: Tarkvara paigaldaja
French (fr), Field: Antivirus (ClamAV), English: Antivirus (ClamAV), Translated: Antivirus (ClamAV)
French (fr), Field: Domains, English: Domains, Translated: Domaines
French (fr), Field: Shared areas (was ibays), English: Shared areas (was ibays), Translated: Zones partagées (anciennement ibays)
French (fr), Field: Legacy panel, English: Legacy panel, Translated: Panneau Hérité
French (fr), Field: NFS data share, English: NFS data share, Translated: Partage de données NFS
French (fr), Field: Quotas, English: Quotas, Translated: Quotas
French (fr), Field: User Panel Access, English: User Panel Access, Translated: Accès au Panneau Utilisateur
French (fr), Field: Change password, English: Change password, Translated: Changer le mot de passe
French (fr), Field: Samba workgroup, English: Samba workgroup, Translated: Groupe de travail Samba
Hebrew (il), Field: Backup or restore, English: Backup or restore, Translated: גיבוי או שחזור
Hebrew (il), Field: Report a bug, English: Report a bug, Translated: דווח על באג
Hebrew (il), Field: Antivirus (ClamAV), English: Antivirus (ClamAV), Translated: אנטי וירוס (ClamAV)
Hebrew (il), Field: Date and time, English: Date and time, Translated: תאריך ושעה
Hebrew (il), Field: Directory, English: Directory, Translated: ספרייה
Hebrew (il), Field: Domains, English: Domains, Translated: דומיינים
Hebrew (il), Field: E-mail, English: E-mail, Translated: אימייל
Hebrew (il), Field: Groups, English: Groups, Translated: קבוצות
Hebrew (il), Field: Hostnames and addresses, English: Hostnames and addresses, Translated: שמות מארחים וכתובות
Hebrew (il), Field: Shared areas (was ibays), English: Shared areas (was ibays), Translated: אזורים משותפים (היו ibays)
Hebrew (il), Field: Home, English: Home, Translated: דף הבית
Hebrew (il), Field: Legacy panel, English: Legacy panel, Translated: לוח מיושן
Hebrew (il), Field: Local networks, English: Local networks, Translated: רשתות מקומיות
Hebrew (il), Field: Logout, English: Logout, Translated: התנתקות
Hebrew (il), Field: Online manual, English: Online manual, Translated: מדריך מקוון
Hebrew (il), Field: NFS data share, English: NFS data share, Translated: שיתוף נתונים NFS
Hebrew (il), Field: Port forwarding, English: Port forwarding, Translated: העברת פורטים
Hebrew (il), Field: Printers, English: Printers, Translated: מדפסות
Hebrew (il), Field: Proxy settings, English: Proxy settings, Translated: הגדרות פרוקסי
Hebrew (il), Field: Pseudonyms, English: Pseudonyms, Translated: פסבדונים
Hebrew (il), Field: Mail log file analysis, English: Mail log file analysis, Translated: ניתוח קובץ יומן דואר
Hebrew (il), Field: Quotas, English: Quotas, Translated: מכסות
Hebrew (il), Field: Reboot or shutdown, English: Reboot or shutdown, Translated: אתחל או כבה
Hebrew (il), Field: Remote access, English: Remote access, Translated: גישה מרחוק
Hebrew (il), Field: Review configuration, English: Review configuration, Translated: סקירת תצורה
Hebrew (il), Field: Support and licensing, English: Support and licensing, Translated: תמיכה ורישוי
Hebrew (il), Field: Users, English: Users, Translated: משתמשים
Hebrew (il), Field: User Panel Access, English: User Panel Access, Translated: גישה לפאנל המשתמש
Hebrew (il), Field: Change password, English: Change password, Translated: שנה סיסמה
Hebrew (il), Field: View log files, English: View log files, Translated: צפה בקבצי יומן
Hebrew (il), Field: Samba workgroup, English: Samba workgroup, Translated: קבוצת עבודה של Samba
Hebrew (il), Field: Software installer, English: Software installer, Translated: מתקין תוכנה
Hungarian (hu), Field: Backup or restore, English: Backup or restore, Translated: Biztonsági mentés vagy visszaállítás
Hungarian (hu), Field: Report a bug, English: Report a bug, Translated: Hiba jelentése
Hungarian (hu), Field: Antivirus (ClamAV), English: Antivirus (ClamAV), Translated: Vírusirtó (ClamAV)
Hungarian (hu), Field: Date and time, English: Date and time, Translated: Dátum és idő
Hungarian (hu), Field: Directory, English: Directory, Translated: Könyvtár
Hungarian (hu), Field: Domains, English: Domains, Translated: Tartományok
Hungarian (hu), Field: E-mail, English: E-mail, Translated: E-mail
Hungarian (hu), Field: Hostnames and addresses, English: Hostnames and addresses, Translated: Hosztnevek és címek
Hungarian (hu), Field: Shared areas (was ibays), English: Shared areas (was ibays), Translated: Megosztott területek (korábban ibays)
Hungarian (hu), Field: Home, English: Home, Translated: Kezdőlap
Hungarian (hu), Field: Legacy panel, English: Legacy panel, Translated: Klasszikus panel
Hungarian (hu), Field: Local networks, English: Local networks, Translated: Helyi hálózatok
Hungarian (hu), Field: Logout, English: Logout, Translated: Kijelentkezés
Hungarian (hu), Field: Online manual, English: Online manual, Translated: Online kézikönyv
Hungarian (hu), Field: NFS data share, English: NFS data share, Translated: NFS adatmegosztás
Hungarian (hu), Field: Port forwarding, English: Port forwarding, Translated: Port továbbítás
Hungarian (hu), Field: Printers, English: Printers, Translated: Nyomtatók
Hungarian (hu), Field: Proxy settings, English: Proxy settings, Translated: Proxy beállítások
Hungarian (hu), Field: Pseudonyms, English: Pseudonyms, Translated: Pseudonimok
Hungarian (hu), Field: Mail log file analysis, English: Mail log file analysis, Translated: Levél naplófájl elemzése
Hungarian (hu), Field: Quotas, English: Quotas, Translated: Kvóták
Hungarian (hu), Field: Reboot or shutdown, English: Reboot or shutdown, Translated: Újraindítás vagy leállítás
Hungarian (hu), Field: Remote access, English: Remote access, Translated: Távoli hozzáférés
Hungarian (hu), Field: Review configuration, English: Review configuration, Translated: Konfiguráció áttekintése
Hungarian (hu), Field: Support and licensing, English: Support and licensing, Translated: Támogatás és licencelés
Hungarian (hu), Field: Users, English: Users, Translated: Felhasználók
Hungarian (hu), Field: User Panel Access, English: User Panel Access, Translated: Felhasználói panel hozzáférés
Hungarian (hu), Field: Change password, English: Change password, Translated: Jelszó megváltoztatása
Hungarian (hu), Field: View log files, English: View log files, Translated: Naplófájlok megtekintése
Hungarian (hu), Field: Samba workgroup, English: Samba workgroup, Translated: Samba munkacsoport
Hungarian (hu), Field: Software installer, English: Software installer, Translated: Szoftvertelepítő
Indonesian (id), Field: Backup or restore, English: Backup or restore, Translated: Cadangkan atau pulihkan
Indonesian (id), Field: Report a bug, English: Report a bug, Translated: Laporkan Bug
Indonesian (id), Field: Antivirus (ClamAV), English: Antivirus (ClamAV), Translated: Antivirus (ClamAV)
Indonesian (id), Field: Date and time, English: Date and time, Translated: Tanggal dan waktu
Indonesian (id), Field: Directory, English: Directory, Translated: Direktori
Indonesian (id), Field: Domains, English: Domains, Translated: Domain
Indonesian (id), Field: E-mail, English: E-mail, Translated: E-mail
Indonesian (id), Field: Hostnames and addresses, English: Hostnames and addresses, Translated: Nama host dan alamat
Indonesian (id), Field: Shared areas (was ibays), English: Shared areas (was ibays), Translated: Area bersama (sebelumnya ibays)
Indonesian (id), Field: Home, English: Home, Translated: Beranda
Indonesian (id), Field: Legacy panel, English: Legacy panel, Translated: Panel warisan
Indonesian (id), Field: Local networks, English: Local networks, Translated: Jaringan lokal
Indonesian (id), Field: Logout, English: Logout, Translated: Keluar
Indonesian (id), Field: Online manual, English: Online manual, Translated: Manual daring
Indonesian (id), Field: NFS data share, English: NFS data share, Translated: Berbagi data NFS
Indonesian (id), Field: Port forwarding, English: Port forwarding, Translated: Penerusan port
Indonesian (id), Field: Printers, English: Printers, Translated: Printer
Indonesian (id), Field: Proxy settings, English: Proxy settings, Translated: Pengaturan proxy
Indonesian (id), Field: Pseudonyms, English: Pseudonyms, Translated: Nama Samaran
Indonesian (id), Field: Mail log file analysis, English: Mail log file analysis, Translated: Analisis file log surat
Indonesian (id), Field: Quotas, English: Quotas, Translated: Kuota
Indonesian (id), Field: Reboot or shutdown, English: Reboot or shutdown, Translated: Mulai Ulang atau Matikan
Indonesian (id), Field: Remote access, English: Remote access, Translated: Akses jarak jauh
Indonesian (id), Field: Review configuration, English: Review configuration, Translated: Tinjau konfigurasi
Indonesian (id), Field: Support and licensing, English: Support and licensing, Translated: Dukungan dan Lisensi
Indonesian (id), Field: Users, English: Users, Translated: Pengguna
Indonesian (id), Field: User Panel Access, English: User Panel Access, Translated: Akses Panel Pengguna
Indonesian (id), Field: Change password, English: Change password, Translated: Ubah kata sandi
Indonesian (id), Field: View log files, English: View log files, Translated: Lihat file log
Indonesian (id), Field: Samba workgroup, English: Samba workgroup, Translated: Grup kerja Samba
Indonesian (id), Field: Software installer, English: Software installer, Translated: Penginstal perangkat lunak
Italian (it), Field: Report a bug, English: Report a bug, Translated: Segnala un bug
Italian (it), Field: Antivirus (ClamAV), English: Antivirus (ClamAV), Translated: Antivirus (ClamAV)
Italian (it), Field: Domains, English: Domains, Translated: Domini
Italian (it), Field: E-mail, English: E-mail, Translated: E-mail
Italian (it), Field: Shared areas (was ibays), English: Shared areas (was ibays), Translated: Aree condivise (precedentemente ibay)
Italian (it), Field: Home, English: Home, Translated: Home
Italian (it), Field: Legacy panel, English: Legacy panel, Translated: Pannello legacy
Italian (it), Field: Logout, English: Logout, Translated: Esci
Italian (it), Field: NFS data share, English: NFS data share, Translated: Condivisione dati NFS
Italian (it), Field: Port forwarding, English: Port forwarding, Translated: Inoltro delle porte
Italian (it), Field: User Panel Access, English: User Panel Access, Translated: Accesso Pannello Utente
Italian (it), Field: Change password, English: Change password, Translated: Cambia password
Italian (it), Field: Samba workgroup, English: Samba workgroup, Translated: Gruppo di lavoro Samba
Japanese (jp), Field: Report a bug, English: Report a bug, Translated: バグを報告
Japanese (jp), Field: Antivirus (ClamAV), English: Antivirus (ClamAV), Translated: アンチウイルス (ClamAV)
Japanese (jp), Field: Date and time, English: Date and time, Translated: 日付と時刻
Japanese (jp), Field: Domains, English: Domains, Translated: ドメイン
Japanese (jp), Field: E-mail, English: E-mail, Translated: Eメール
Japanese (jp), Field: Hostnames and addresses, English: Hostnames and addresses, Translated: ホスト名とアドレス
Japanese (jp), Field: Shared areas (was ibays), English: Shared areas (was ibays), Translated: 共有エリア(以前のアイベイズ)
Japanese (jp), Field: Home, English: Home, Translated: ホーム
Japanese (jp), Field: Legacy panel, English: Legacy panel, Translated: レガシーパネル
Japanese (jp), Field: Local networks, English: Local networks, Translated: ローカルネットワーク
Japanese (jp), Field: Logout, English: Logout, Translated: ログアウト
Japanese (jp), Field: NFS data share, English: NFS data share, Translated: NFSデータ共有
Japanese (jp), Field: Port forwarding, English: Port forwarding, Translated: ポートフォワーディング
Japanese (jp), Field: Printers, English: Printers, Translated: プリンター
Japanese (jp), Field: Proxy settings, English: Proxy settings, Translated: プロキシ設定
Japanese (jp), Field: Pseudonyms, English: Pseudonyms, Translated: 仮名
Japanese (jp), Field: Mail log file analysis, English: Mail log file analysis, Translated: メールログファイル解析
Japanese (jp), Field: Quotas, English: Quotas, Translated: クォータ
Japanese (jp), Field: Reboot or shutdown, English: Reboot or shutdown, Translated: 再起動またはシャットダウン
Japanese (jp), Field: Remote access, English: Remote access, Translated: リモートアクセス
Japanese (jp), Field: Review configuration, English: Review configuration, Translated: 構成の確認
Japanese (jp), Field: User Panel Access, English: User Panel Access, Translated: ユーザーパネルアクセス
Japanese (jp), Field: Change password, English: Change password, Translated: パスワードの変更
Japanese (jp), Field: View log files, English: View log files, Translated: ログファイルを表示
Japanese (jp), Field: Samba workgroup, English: Samba workgroup, Translated: Samba ワークグループ
Japanese (jp), Field: Software installer, English: Software installer, Translated: ソフトウェアインストーラ
Norwegian Bokmål (no), Field: Backup or restore, English: Backup or restore, Translated: Sikkerhetskopiere eller gjenopprette
Norwegian Bokmål (no), Field: Report a bug, English: Report a bug, Translated: Rapporter en feil
Norwegian Bokmål (no), Field: Antivirus (ClamAV), English: Antivirus (ClamAV), Translated: Antivirus (ClamAV)
Norwegian Bokmål (no), Field: Date and time, English: Date and time, Translated: Dato og tid
Norwegian Bokmål (no), Field: Directory, English: Directory, Translated: Katalog
Norwegian Bokmål (no), Field: Domains, English: Domains, Translated: Domener
Norwegian Bokmål (no), Field: E-mail, English: E-mail, Translated: E-post
Norwegian Bokmål (no), Field: Hostnames and addresses, English: Hostnames and addresses, Translated: Vertsnavn og adresser
Norwegian Bokmål (no), Field: Shared areas (was ibays), English: Shared areas (was ibays), Translated: Delte områder (tidligere ibays)
Norwegian Bokmål (no), Field: Home, English: Home, Translated: Hjem
Norwegian Bokmål (no), Field: Legacy panel, English: Legacy panel, Translated: Legacy-panel
Norwegian Bokmål (no), Field: Local networks, English: Local networks, Translated: Lokale nettverk
Norwegian Bokmål (no), Field: Logout, English: Logout, Translated: Logg ut
Norwegian Bokmål (no), Field: Online manual, English: Online manual, Translated: Online manual → Online brukerveiledning
Norwegian Bokmål (no), Field: NFS data share, English: NFS data share, Translated: NFS-datalagring
Norwegian Bokmål (no), Field: Port forwarding, English: Port forwarding, Translated: Port videresending
Norwegian Bokmål (no), Field: Printers, English: Printers, Translated: Skrivere
Norwegian Bokmål (no), Field: Proxy settings, English: Proxy settings, Translated: Proxy-innstillinger
Norwegian Bokmål (no), Field: Pseudonyms, English: Pseudonyms, Translated: Pseudonymer
Norwegian Bokmål (no), Field: Mail log file analysis, English: Mail log file analysis, Translated: Analyser postloggfil
Norwegian Bokmål (no), Field: Quotas, English: Quotas, Translated: Kvoter
Norwegian Bokmål (no), Field: Reboot or shutdown, English: Reboot or shutdown, Translated: Omstart eller avstenging
Norwegian Bokmål (no), Field: Remote access, English: Remote access, Translated: Fjernstyring
Norwegian Bokmål (no), Field: Review configuration, English: Review configuration, Translated: Gjennomgå konfigurasjon
Norwegian Bokmål (no), Field: Support and licensing, English: Support and licensing, Translated: Støtte og lisensiering
Norwegian Bokmål (no), Field: Users, English: Users, Translated: Brukere
Norwegian Bokmål (no), Field: User Panel Access, English: User Panel Access, Translated: Brukerpanelets tilgang
Norwegian Bokmål (no), Field: Change password, English: Change password, Translated: Endre passord
Norwegian Bokmål (no), Field: View log files, English: View log files, Translated: Vis loggfiler
Norwegian Bokmål (no), Field: Samba workgroup, English: Samba workgroup, Translated: Samba arbeidsgruppe
Norwegian Bokmål (no), Field: Software installer, English: Software installer, Translated: Programvareinstallatør
Dutch (nl), Field: Report a bug, English: Report a bug, Translated: Een bug melden
Dutch (nl), Field: Antivirus (ClamAV), English: Antivirus (ClamAV), Translated: Antivirus (ClamAV)
Dutch (nl), Field: Domains, English: Domains, Translated: Domeinen
Dutch (nl), Field: E-mail, English: E-mail, Translated: E-mail
Dutch (nl), Field: Shared areas (was ibays), English: Shared areas (was ibays), Translated: Gedeelde gebieden (voorheen ibays)
Dutch (nl), Field: Home, English: Home, Translated: Startpagina
Dutch (nl), Field: Legacy panel, English: Legacy panel, Translated: Ouder paneel
Dutch (nl), Field: Local networks, English: Local networks, Translated: Lokale netwerken
Dutch (nl), Field: Logout, English: Logout, Translated: Uitloggen
Dutch (nl), Field: NFS data share, English: NFS data share, Translated: NFS-gegevensdeling
Dutch (nl), Field: Printers, English: Printers, Translated: Printers
Dutch (nl), Field: Support and licensing, English: Support and licensing, Translated: Ondersteuning en licenties
Dutch (nl), Field: User Panel Access, English: User Panel Access, Translated: Gebruikerspaneel Toegang
Dutch (nl), Field: Change password, English: Change password, Translated: Wijzig wachtwoord
Dutch (nl), Field: Samba workgroup, English: Samba workgroup, Translated: Samba-werkgroep
Dutch (nl), Field: Software installer, English: Software installer, Translated: Software-installatieprogramma
Polish (pl), Field: Backup or restore, English: Backup or restore, Translated: Kopia zapasowa lub przywracanie
Polish (pl), Field: Report a bug, English: Report a bug, Translated: Zgłoś błąd
Polish (pl), Field: Antivirus (ClamAV), English: Antivirus (ClamAV), Translated: Antywirus (ClamAV)
Polish (pl), Field: Date and time, English: Date and time, Translated: Data i godzina
Polish (pl), Field: Directory, English: Directory, Translated: Katalog
Polish (pl), Field: Domains, English: Domains, Translated: Domeny
Polish (pl), Field: E-mail, English: E-mail, Translated: E-mail
Polish (pl), Field: Hostnames and addresses, English: Hostnames and addresses, Translated: Nazwy hostów i adresy
Polish (pl), Field: Shared areas (was ibays), English: Shared areas (was ibays), Translated: Obszary udostępnione (dawniej ibays)
Polish (pl), Field: Home, English: Home, Translated: Strona główna
Polish (pl), Field: Legacy panel, English: Legacy panel, Translated: Starszy panel
Polish (pl), Field: Local networks, English: Local networks, Translated: Sieci lokalne
Polish (pl), Field: Logout, English: Logout, Translated: Wyloguj się
Polish (pl), Field: Online manual, English: Online manual, Translated: Instrukcja online
Polish (pl), Field: NFS data share, English: NFS data share, Translated: Udostępnianie danych NFS
Polish (pl), Field: Port forwarding, English: Port forwarding, Translated: Przekierowanie portów
Polish (pl), Field: Printers, English: Printers, Translated: Drukarki
Polish (pl), Field: Proxy settings, English: Proxy settings, Translated: Ustawienia proxy
Polish (pl), Field: Pseudonyms, English: Pseudonyms, Translated: Pseudonimy
Polish (pl), Field: Mail log file analysis, English: Mail log file analysis, Translated: Analiza pliku dziennika poczty
Polish (pl), Field: Quotas, English: Quotas, Translated: Limity
Polish (pl), Field: Reboot or shutdown, English: Reboot or shutdown, Translated: Uruchom ponownie lub wyłącz
Polish (pl), Field: Remote access, English: Remote access, Translated: Zdalny dostęp
Polish (pl), Field: Review configuration, English: Review configuration, Translated: Przegląd konfiguracji
Polish (pl), Field: Support and licensing, English: Support and licensing, Translated: Wsparcie i licencjonowanie
Polish (pl), Field: Users, English: Users, Translated: Użytkownicy
Polish (pl), Field: User Panel Access, English: User Panel Access, Translated: Dostęp do Panelu Użytkownika
Polish (pl), Field: Change password, English: Change password, Translated: Zmień hasło
Polish (pl), Field: View log files, English: View log files, Translated: Wyświetl pliki dziennika
Polish (pl), Field: Samba workgroup, English: Samba workgroup, Translated: Grupa robocza Samba
Polish (pl), Field: Software installer, English: Software installer, Translated: Instalator oprogramowania
Brazilian Portuguese (pt-br), Field: Report a bug, English: Report a bug, Translated: Relatar um bug
Brazilian Portuguese (pt-br), Field: Antivirus (ClamAV), English: Antivirus (ClamAV), Translated: Antivírus (ClamAV)
Brazilian Portuguese (pt-br), Field: Date and time, English: Date and time, Translated: Data e hora
Brazilian Portuguese (pt-br), Field: Directory, English: Directory, Translated: Diretório
Brazilian Portuguese (pt-br), Field: Domains, English: Domains, Translated: Domínios
Brazilian Portuguese (pt-br), Field: E-mail, English: E-mail, Translated: E-mail
Brazilian Portuguese (pt-br), Field: Hostnames and addresses, English: Hostnames and addresses, Translated: Nomes de host e endereços
Brazilian Portuguese (pt-br), Field: Shared areas (was ibays), English: Shared areas (was ibays), Translated: Áreas compartilhadas (eram ibays)
Brazilian Portuguese (pt-br), Field: Home, English: Home, Translated: Início
Brazilian Portuguese (pt-br), Field: Legacy panel, English: Legacy panel, Translated: Painel Legado
Brazilian Portuguese (pt-br), Field: Local networks, English: Local networks, Translated: Redes locais
Brazilian Portuguese (pt-br), Field: Logout, English: Logout, Translated: Finalizar Sessão
Brazilian Portuguese (pt-br), Field: Online manual, English: Online manual, Translated: Manual online
Brazilian Portuguese (pt-br), Field: NFS data share, English: NFS data share, Translated: Compartilhamento de dados NFS
Brazilian Portuguese (pt-br), Field: Port forwarding, English: Port forwarding, Translated: Encaminhamento de porta
Brazilian Portuguese (pt-br), Field: Printers, English: Printers, Translated: Impressoras
Brazilian Portuguese (pt-br), Field: Proxy settings, English: Proxy settings, Translated: Configurações de proxy
Brazilian Portuguese (pt-br), Field: Pseudonyms, English: Pseudonyms, Translated: Pseudônimos
Brazilian Portuguese (pt-br), Field: Mail log file analysis, English: Mail log file analysis, Translated: Análise de arquivo de log de email
Brazilian Portuguese (pt-br), Field: Quotas, English: Quotas, Translated: Quotas
Brazilian Portuguese (pt-br), Field: Reboot or shutdown, English: Reboot or shutdown, Translated: Reiniciar ou desligar
Brazilian Portuguese (pt-br), Field: Remote access, English: Remote access, Translated: Acesso remoto
Brazilian Portuguese (pt-br), Field: Review configuration, English: Review configuration, Translated: Revisar configuração
Brazilian Portuguese (pt-br), Field: Support and licensing, English: Support and licensing, Translated: Suporte e licenciamento
Brazilian Portuguese (pt-br), Field: Users, English: Users, Translated: Usuários
Brazilian Portuguese (pt-br), Field: User Panel Access, English: User Panel Access, Translated: Acesso ao Painel do Usuário
Brazilian Portuguese (pt-br), Field: Change password, English: Change password, Translated: Alterar senha
Brazilian Portuguese (pt-br), Field: View log files, English: View log files, Translated: Ver arquivos de log
Brazilian Portuguese (pt-br), Field: Samba workgroup, English: Samba workgroup, Translated: Grupo de trabalho do Samba
Brazilian Portuguese (pt-br), Field: Software installer, English: Software installer, Translated: Instalador de software
Portuguese (pt), Field: Report a bug, English: Report a bug, Translated: Relatar um erro
Portuguese (pt), Field: Antivirus (ClamAV), English: Antivirus (ClamAV), Translated: Antivírus (ClamAV)
Portuguese (pt), Field: Date and time, English: Date and time, Translated: Data e hora
Portuguese (pt), Field: Domains, English: Domains, Translated: Domínios
Portuguese (pt), Field: E-mail, English: E-mail, Translated: E-mail
Portuguese (pt), Field: Shared areas (was ibays), English: Shared areas (was ibays), Translated: Áreas compartilhadas (antigamente ibays)
Portuguese (pt), Field: Home, English: Home, Translated: Início
Portuguese (pt), Field: Legacy panel, English: Legacy panel, Translated: Painel legado
Portuguese (pt), Field: Local networks, English: Local networks, Translated: Redes Locais
Portuguese (pt), Field: Logout, English: Logout, Translated: Logout
Portuguese (pt), Field: NFS data share, English: NFS data share, Translated: Compartilhamento de dados NFS
Portuguese (pt), Field: Port forwarding, English: Port forwarding, Translated: Encaminhamento de portas
Portuguese (pt), Field: Proxy settings, English: Proxy settings, Translated: Configurações de proxy
Portuguese (pt), Field: Remote access, English: Remote access, Translated: Acesso remoto
Portuguese (pt), Field: User Panel Access, English: User Panel Access, Translated: Acesso ao Painel do Usuário
Portuguese (pt), Field: Change password, English: Change password, Translated: Alterar senha
Portuguese (pt), Field: Samba workgroup, English: Samba workgroup, Translated: Grupo de trabalho Samba
Portuguese (pt), Field: Software installer, English: Software installer, Translated: Instalador de software
Romanian (ro), Field: Backup or restore, English: Backup or restore, Translated: Backup sau restaurare
Romanian (ro), Field: Report a bug, English: Report a bug, Translated: Raportați o eroare
Romanian (ro), Field: Antivirus (ClamAV), English: Antivirus (ClamAV), Translated: Antivirus (ClamAV)
Romanian (ro), Field: Date and time, English: Date and time, Translated: Data și ora
Romanian (ro), Field: Directory, English: Directory, Translated: Director
Romanian (ro), Field: Domains, English: Domains, Translated: Domenii
Romanian (ro), Field: E-mail, English: E-mail, Translated: E-mail
Romanian (ro), Field: Groups, English: Groups, Translated: Grupuri
Romanian (ro), Field: Hostnames and addresses, English: Hostnames and addresses, Translated: Nume gazdă și adrese
Romanian (ro), Field: Shared areas (was ibays), English: Shared areas (was ibays), Translated: Zone partajate (au fost ibays)
Romanian (ro), Field: Home, English: Home, Translated: Acasă
Romanian (ro), Field: Legacy panel, English: Legacy panel, Translated: Panou vechi
Romanian (ro), Field: Local networks, English: Local networks, Translated: Rețele locale
Romanian (ro), Field: Logout, English: Logout, Translated: Deconectare
Romanian (ro), Field: Online manual, English: Online manual, Translated: Manual online
Romanian (ro), Field: NFS data share, English: NFS data share, Translated: Partajare date NFS
Romanian (ro), Field: Port forwarding, English: Port forwarding, Translated: Port forwarding
Romanian (ro), Field: Printers, English: Printers, Translated: Imprimante
Romanian (ro), Field: Proxy settings, English: Proxy settings, Translated: Setări proxy
Romanian (ro), Field: Pseudonyms, English: Pseudonyms, Translated: Pseudonime
Romanian (ro), Field: Mail log file analysis, English: Mail log file analysis, Translated: Analiza fișierului jurnal de e-mail
Romanian (ro), Field: Quotas, English: Quotas, Translated: Cote
Romanian (ro), Field: Reboot or shutdown, English: Reboot or shutdown, Translated: Repornește sau oprește
Romanian (ro), Field: Remote access, English: Remote access, Translated: Acces de la distanță
Romanian (ro), Field: Review configuration, English: Review configuration, Translated: Revizuire configurație
Romanian (ro), Field: Support and licensing, English: Support and licensing, Translated: Suport și licențiere
Romanian (ro), Field: Users, English: Users, Translated: Utilizatori
Romanian (ro), Field: User Panel Access, English: User Panel Access, Translated: Acces Panou Utilizator
Romanian (ro), Field: Change password, English: Change password, Translated: Schimbă parola
Romanian (ro), Field: View log files, English: View log files, Translated: Vizualizare fișiere jurnal
Romanian (ro), Field: Samba workgroup, English: Samba workgroup, Translated: Grup de lucru Samba
Romanian (ro), Field: Software installer, English: Software installer, Translated: Instalator software
Russian (ru), Field: Backup or restore, English: Backup or restore, Translated: Резервное копирование или восстановление
Russian (ru), Field: Report a bug, English: Report a bug, Translated: Сообщить об ошибке
Russian (ru), Field: Antivirus (ClamAV), English: Antivirus (ClamAV), Translated: Антивирус (ClamAV)
Russian (ru), Field: Date and time, English: Date and time, Translated: Дата и время
Russian (ru), Field: Directory, English: Directory, Translated: Каталог
Russian (ru), Field: Domains, English: Domains, Translated: Домены
Russian (ru), Field: E-mail, English: E-mail, Translated: Электронная почта
Russian (ru), Field: Hostnames and addresses, English: Hostnames and addresses, Translated: Имена хостов и адреса
Russian (ru), Field: Shared areas (was ibays), English: Shared areas (was ibays), Translated: Общие области (бывшие ibays)
Russian (ru), Field: Home, English: Home, Translated: Главная
Russian (ru), Field: Legacy panel, English: Legacy panel, Translated: Панель наследия
Russian (ru), Field: Local networks, English: Local networks, Translated: Местные сети
Russian (ru), Field: Logout, English: Logout, Translated: Выйти
Russian (ru), Field: Online manual, English: Online manual, Translated: Онлайн-руководство
Russian (ru), Field: NFS data share, English: NFS data share, Translated: Общий доступ к данным NFS
Russian (ru), Field: Port forwarding, English: Port forwarding, Translated: Переадресация портов
Russian (ru), Field: Printers, English: Printers, Translated: Принтеры
Russian (ru), Field: Proxy settings, English: Proxy settings, Translated: Настройки прокси
Russian (ru), Field: Pseudonyms, English: Pseudonyms, Translated: Псевдонимы
Russian (ru), Field: Mail log file analysis, English: Mail log file analysis, Translated: Анализ журнала почты
Russian (ru), Field: Quotas, English: Quotas, Translated: Квоты
Russian (ru), Field: Reboot or shutdown, English: Reboot or shutdown, Translated: Перезагрузить или завершить работу
Russian (ru), Field: Remote access, English: Remote access, Translated: Удаленный доступ
Russian (ru), Field: Review configuration, English: Review configuration, Translated: Просмотр конфигурации
Russian (ru), Field: Support and licensing, English: Support and licensing, Translated: Поддержка и лицензирование
Russian (ru), Field: Users, English: Users, Translated: Пользователи
Russian (ru), Field: User Panel Access, English: User Panel Access, Translated: Доступ к панели пользователя
Russian (ru), Field: Change password, English: Change password, Translated: Сменить пароль
Russian (ru), Field: View log files, English: View log files, Translated: Просмотр файлов журнала
Russian (ru), Field: Samba workgroup, English: Samba workgroup, Translated: Рабочая группа Samba
Russian (ru), Field: Software installer, English: Software installer, Translated: Установщик программного обеспечения
Slovenian (sl), Field: Backup or restore, English: Backup or restore, Translated: Varnostna kopija ali obnovitev
Slovenian (sl), Field: Report a bug, English: Report a bug, Translated: Prijavi hrošča
Slovenian (sl), Field: Antivirus (ClamAV), English: Antivirus (ClamAV), Translated: Antivirus (ClamAV)
Slovenian (sl), Field: Date and time, English: Date and time, Translated: Datum in čas
Slovenian (sl), Field: Directory, English: Directory, Translated: Imenik
Slovenian (sl), Field: Domains, English: Domains, Translated: Domene
Slovenian (sl), Field: E-mail, English: E-mail, Translated: E-pošta
Slovenian (sl), Field: Hostnames and addresses, English: Hostnames and addresses, Translated: Imena gostiteljev in naslovi
Slovenian (sl), Field: Shared areas (was ibays), English: Shared areas (was ibays), Translated: Skupna območja (prej ibays)
Slovenian (sl), Field: Home, English: Home, Translated: Domov
Slovenian (sl), Field: Legacy panel, English: Legacy panel, Translated: Zapuščena plošča
Slovenian (sl), Field: Local networks, English: Local networks, Translated: Lokalna omrežja
Slovenian (sl), Field: Logout, English: Logout, Translated: Odjava
Slovenian (sl), Field: Online manual, English: Online manual, Translated: Spletni priročnik
Slovenian (sl), Field: NFS data share, English: NFS data share, Translated: Souporaba podatkov NFS
Slovenian (sl), Field: Port forwarding, English: Port forwarding, Translated: Posredovanje vrat
Slovenian (sl), Field: Printers, English: Printers, Translated: Tiskalniki
Slovenian (sl), Field: Proxy settings, English: Proxy settings, Translated: Nastavitve proxyja
Slovenian (sl), Field: Pseudonyms, English: Pseudonyms, Translated: Psevdonimi
Slovenian (sl), Field: Mail log file analysis, English: Mail log file analysis, Translated: Analiza datotek dnevnika pošte
Slovenian (sl), Field: Quotas, English: Quotas, Translated: Kvote
Slovenian (sl), Field: Reboot or shutdown, English: Reboot or shutdown, Translated: Znova zaženi ali izklopi
Slovenian (sl), Field: Remote access, English: Remote access, Translated: Oddaljen dostop
Slovenian (sl), Field: Review configuration, English: Review configuration, Translated: Preglej konfiguracijo
Slovenian (sl), Field: Support and licensing, English: Support and licensing, Translated: Podpora in licenciranje
Slovenian (sl), Field: Users, English: Users, Translated: Uporabniki
Slovenian (sl), Field: User Panel Access, English: User Panel Access, Translated: Dostop do uporabniške plošče
Slovenian (sl), Field: Change password, English: Change password, Translated: Spremeni geslo
Slovenian (sl), Field: View log files, English: View log files, Translated: Ogled dnevniških datotek
Slovenian (sl), Field: Samba workgroup, English: Samba workgroup, Translated: Delovna skupina Samba
Slovenian (sl), Field: Software installer, English: Software installer, Translated: Namestitveni program
Swedish (sv), Field: Backup or restore, English: Backup or restore, Translated: Säkerhetskopiera eller återställ
Swedish (sv), Field: Report a bug, English: Report a bug, Translated: Rapportera ett fel
Swedish (sv), Field: Antivirus (ClamAV), English: Antivirus (ClamAV), Translated: Antivirus (ClamAV)
Swedish (sv), Field: Date and time, English: Date and time, Translated: Datum och tid
Swedish (sv), Field: Directory, English: Directory, Translated: Katalog
Swedish (sv), Field: Domains, English: Domains, Translated: Domäner
Swedish (sv), Field: E-mail, English: E-mail, Translated: E-post
Swedish (sv), Field: Hostnames and addresses, English: Hostnames and addresses, Translated: Värdnamn och adresser
Swedish (sv), Field: Shared areas (was ibays), English: Shared areas (was ibays), Translated: Delade områden (tidigare ibays)
Swedish (sv), Field: Home, English: Home, Translated: Hem
Swedish (sv), Field: Legacy panel, English: Legacy panel, Translated: Äldre panel
Swedish (sv), Field: Local networks, English: Local networks, Translated: Lokala nätverk
Swedish (sv), Field: Logout, English: Logout, Translated: Logga ut
Swedish (sv), Field: Online manual, English: Online manual, Translated: Online-manual
Swedish (sv), Field: NFS data share, English: NFS data share, Translated: NFS-datadelning
Swedish (sv), Field: Port forwarding, English: Port forwarding, Translated: Portvidarebefordran
Swedish (sv), Field: Printers, English: Printers, Translated: Skrivare
Swedish (sv), Field: Proxy settings, English: Proxy settings, Translated: Proxyinställningar
Swedish (sv), Field: Pseudonyms, English: Pseudonyms, Translated: Pseudonymer
Swedish (sv), Field: Mail log file analysis, English: Mail log file analysis, Translated: Analys av e-postloggfiler
Swedish (sv), Field: Quotas, English: Quotas, Translated: Kvoter
Swedish (sv), Field: Reboot or shutdown, English: Reboot or shutdown, Translated: Starta om eller stäng av
Swedish (sv), Field: Remote access, English: Remote access, Translated: Fjärråtkomst
Swedish (sv), Field: Review configuration, English: Review configuration, Translated: Granska konfiguration
Swedish (sv), Field: Support and licensing, English: Support and licensing, Translated: Support och licensiering
Swedish (sv), Field: Users, English: Users, Translated: Användare
Swedish (sv), Field: User Panel Access, English: User Panel Access, Translated: Användarpanel Åtkomst
Swedish (sv), Field: Change password, English: Change password, Translated: Byt lösenord
Swedish (sv), Field: View log files, English: View log files, Translated: Visa loggfiler
Swedish (sv), Field: Samba workgroup, English: Samba workgroup, Translated: Samba arbetsgrupp
Swedish (sv), Field: Software installer, English: Software installer, Translated: Programvaruinstallatör
Thai (th), Field: Backup or restore, English: Backup or restore, Translated: สำรองหรือกู้คืน
Thai (th), Field: Report a bug, English: Report a bug, Translated: รายงานข้อบกพร่อง
Thai (th), Field: Antivirus (ClamAV), English: Antivirus (ClamAV), Translated: แอนติไวรัส (ClamAV)
Thai (th), Field: Date and time, English: Date and time, Translated: วันที่และเวลา
Thai (th), Field: Directory, English: Directory, Translated: ไดเรกทอรี
Thai (th), Field: Domains, English: Domains, Translated: โดเมน
Thai (th), Field: E-mail, English: E-mail, Translated: อีเมล
Thai (th), Field: Hostnames and addresses, English: Hostnames and addresses, Translated: ชื่อโฮสต์และที่อยู่
Thai (th), Field: Shared areas (was ibays), English: Shared areas (was ibays), Translated: พื้นที่ใช้ร่วมกัน (เดิมเรียกว่า ibays)
Thai (th), Field: Home, English: Home, Translated: หน้าแรก
Thai (th), Field: Legacy panel, English: Legacy panel, Translated: แผงควบคุมแบบเก่า
Thai (th), Field: Local networks, English: Local networks, Translated: เครือข่ายภายใน
Thai (th), Field: Logout, English: Logout, Translated: ออกจากระบบ
Thai (th), Field: Online manual, English: Online manual, Translated: คู่มือออนไลน์
Thai (th), Field: NFS data share, English: NFS data share, Translated: การแบ่งปันข้อมูล NFS
Thai (th), Field: Port forwarding, English: Port forwarding, Translated: การส่งต่อพอร์ต
Thai (th), Field: Printers, English: Printers, Translated: เครื่องพิมพ์
Thai (th), Field: Proxy settings, English: Proxy settings, Translated: การตั้งค่า Proxy
Thai (th), Field: Pseudonyms, English: Pseudonyms, Translated: ชื่อแฝง
Thai (th), Field: Mail log file analysis, English: Mail log file analysis, Translated: การวิเคราะห์ไฟล์บันทึกจดหมาย
Thai (th), Field: Quotas, English: Quotas, Translated: โควตา
Thai (th), Field: Reboot or shutdown, English: Reboot or shutdown, Translated: รีบูตหรือปิดระบบ
Thai (th), Field: Remote access, English: Remote access, Translated: การเข้าถึงระยะไกล
Thai (th), Field: Review configuration, English: Review configuration, Translated: ตรวจสอบการกำหนดค่า
Thai (th), Field: Support and licensing, English: Support and licensing, Translated: การสนับสนุนและการอนุญาตใช้งาน
Thai (th), Field: Users, English: Users, Translated: ผู้ใช้
Thai (th), Field: User Panel Access, English: User Panel Access, Translated: การเข้าถึงแผงผู้ใช้
Thai (th), Field: Change password, English: Change password, Translated: เปลี่ยนรหัสผ่าน
Thai (th), Field: View log files, English: View log files, Translated: ดูไฟล์บันทึก
Thai (th), Field: Samba workgroup, English: Samba workgroup, Translated: กลุ่มการทำงานของ Samba
Thai (th), Field: Software installer, English: Software installer, Translated: เครื่องมือติดตั้งซอฟต์แวร์
Turkish (tr), Field: Backup or restore, English: Backup or restore, Translated: Yedekleme veya geri yükleme
Turkish (tr), Field: Report a bug, English: Report a bug, Translated: Bir hata bildir
Turkish (tr), Field: Antivirus (ClamAV), English: Antivirus (ClamAV), Translated: Antivirüs (ClamAV)
Turkish (tr), Field: Date and time, English: Date and time, Translated: Tarih ve Saat
Turkish (tr), Field: Directory, English: Directory, Translated: Dizin
Turkish (tr), Field: Domains, English: Domains, Translated: Alanlar
Turkish (tr), Field: E-mail, English: E-mail, Translated: E-posta
Turkish (tr), Field: Hostnames and addresses, English: Hostnames and addresses, Translated: Ana Bilgisayar İsimleri ve Adresler
Turkish (tr), Field: Shared areas (was ibays), English: Shared areas (was ibays), Translated: Paylaşılan alanlar (önceki ibays)
Turkish (tr), Field: Home, English: Home, Translated: Ana Sayfa
Turkish (tr), Field: Legacy panel, English: Legacy panel, Translated: Eski panel
Turkish (tr), Field: Local networks, English: Local networks, Translated: Yerel ağlar
Turkish (tr), Field: Logout, English: Logout, Translated: Oturumu Kapat
Turkish (tr), Field: Online manual, English: Online manual, Translated: Çevrimiçi Kılavuz
Turkish (tr), Field: NFS data share, English: NFS data share, Translated: NFS veri paylaşımı
Turkish (tr), Field: Port forwarding, English: Port forwarding, Translated: Port yönlendirme
Turkish (tr), Field: Printers, English: Printers, Translated: Yazıcılar
Turkish (tr), Field: Proxy settings, English: Proxy settings, Translated: Proxy ayarları
Turkish (tr), Field: Pseudonyms, English: Pseudonyms, Translated: Takma Adlar
Turkish (tr), Field: Mail log file analysis, English: Mail log file analysis, Translated: Posta günlük dosyası analizi
Turkish (tr), Field: Quotas, English: Quotas, Translated: Kotalar
Turkish (tr), Field: Reboot or shutdown, English: Reboot or shutdown, Translated: Yeniden Başlat veya Kapat
Turkish (tr), Field: Remote access, English: Remote access, Translated: Uzaktan erişim
Turkish (tr), Field: Review configuration, English: Review configuration, Translated: Yapılandırmayı İncele
Turkish (tr), Field: Support and licensing, English: Support and licensing, Translated: Destek ve lisanslama
Turkish (tr), Field: Users, English: Users, Translated: Kullanıcılar
Turkish (tr), Field: User Panel Access, English: User Panel Access, Translated: Kullanıcı Paneli Erişimi
Turkish (tr), Field: Change password, English: Change password, Translated: Şifreyi değiştir
Turkish (tr), Field: View log files, English: View log files, Translated: Günlük dosyalarını görüntüle
Turkish (tr), Field: Samba workgroup, English: Samba workgroup, Translated: Samba çalışma grubu
Turkish (tr), Field: Software installer, English: Software installer, Translated: Yazılım Yükleyici
Simplified Chinese (zh-cn), Field: Backup or restore, English: Backup or restore, Translated: 备份或还原
Simplified Chinese (zh-cn), Field: Report a bug, English: Report a bug, Translated: 报告错误
Simplified Chinese (zh-cn), Field: Antivirus (ClamAV), English: Antivirus (ClamAV), Translated: 杀毒软件ClamAV
Simplified Chinese (zh-cn), Field: Date and time, English: Date and time, Translated: 日期和时间
Simplified Chinese (zh-cn), Field: Directory, English: Directory, Translated: 目录
Simplified Chinese (zh-cn), Field: Domains, English: Domains, Translated: 域名
Simplified Chinese (zh-cn), Field: E-mail, English: E-mail, Translated: 电子邮件
Simplified Chinese (zh-cn), Field: Hostnames and addresses, English: Hostnames and addresses, Translated: 主机名和地址
Simplified Chinese (zh-cn), Field: Shared areas (was ibays), English: Shared areas (was ibays), Translated: 共享区域(原 ibays
Simplified Chinese (zh-cn), Field: Home, English: Home, Translated: 主页
Simplified Chinese (zh-cn), Field: Legacy panel, English: Legacy panel, Translated: 旧版控制面板
Simplified Chinese (zh-cn), Field: Local networks, English: Local networks, Translated: 本地网络
Simplified Chinese (zh-cn), Field: Logout, English: Logout, Translated: 注销
Simplified Chinese (zh-cn), Field: Online manual, English: Online manual, Translated: 在线手册
Simplified Chinese (zh-cn), Field: NFS data share, English: NFS data share, Translated: NFS 数据共享
Simplified Chinese (zh-cn), Field: Port forwarding, English: Port forwarding, Translated: 端口转发
Simplified Chinese (zh-cn), Field: Printers, English: Printers, Translated: 打印机
Simplified Chinese (zh-cn), Field: Proxy settings, English: Proxy settings, Translated: 代理设置
Simplified Chinese (zh-cn), Field: Pseudonyms, English: Pseudonyms, Translated: 假名
Simplified Chinese (zh-cn), Field: Mail log file analysis, English: Mail log file analysis, Translated: 邮件日志文件分析
Simplified Chinese (zh-cn), Field: Quotas, English: Quotas, Translated: 配额
Simplified Chinese (zh-cn), Field: Reboot or shutdown, English: Reboot or shutdown, Translated: 重新启动或关机
Simplified Chinese (zh-cn), Field: Remote access, English: Remote access, Translated: 远程访问
Simplified Chinese (zh-cn), Field: Review configuration, English: Review configuration, Translated: 查看配置
Simplified Chinese (zh-cn), Field: Support and licensing, English: Support and licensing, Translated: 支持与授权
Simplified Chinese (zh-cn), Field: Users, English: Users, Translated: 用户
Simplified Chinese (zh-cn), Field: User Panel Access, English: User Panel Access, Translated: 用户面板访问
Simplified Chinese (zh-cn), Field: Change password, English: Change password, Translated: 更改密码
Simplified Chinese (zh-cn), Field: View log files, English: View log files, Translated: 查看日志文件
Simplified Chinese (zh-cn), Field: Samba workgroup, English: Samba workgroup, Translated: Samba 工作组
Simplified Chinese (zh-cn), Field: Software installer, English: Software installer, Translated: 软件安装程序
Traditional Chinese (zh-tw), Field: Backup or restore, English: Backup or restore, Translated: 備份或恢復
Traditional Chinese (zh-tw), Field: Report a bug, English: Report a bug, Translated: 回報錯誤
Traditional Chinese (zh-tw), Field: Antivirus (ClamAV), English: Antivirus (ClamAV), Translated: 防毒軟體 (ClamAV)
Traditional Chinese (zh-tw), Field: Date and time, English: Date and time, Translated: 日期和時間
Traditional Chinese (zh-tw), Field: Directory, English: Directory, Translated: 目錄
Traditional Chinese (zh-tw), Field: Domains, English: Domains, Translated: 網域
Traditional Chinese (zh-tw), Field: E-mail, English: E-mail, Translated: 電子郵件
Traditional Chinese (zh-tw), Field: Hostnames and addresses, English: Hostnames and addresses, Translated: 主機名稱和地址
Traditional Chinese (zh-tw), Field: Shared areas (was ibays), English: Shared areas (was ibays), Translated: 共享區域(原 ibays
Traditional Chinese (zh-tw), Field: Home, English: Home, Translated: 首頁
Traditional Chinese (zh-tw), Field: Legacy panel, English: Legacy panel, Translated: 傳統面板
Traditional Chinese (zh-tw), Field: Local networks, English: Local networks, Translated: 本地網路
Traditional Chinese (zh-tw), Field: Logout, English: Logout, Translated: 登出
Traditional Chinese (zh-tw), Field: Online manual, English: Online manual, Translated: 線上手冊
Traditional Chinese (zh-tw), Field: NFS data share, English: NFS data share, Translated: NFS 資料共享
Traditional Chinese (zh-tw), Field: Port forwarding, English: Port forwarding, Translated: 端口轉發
Traditional Chinese (zh-tw), Field: Printers, English: Printers, Translated: 印表機
Traditional Chinese (zh-tw), Field: Proxy settings, English: Proxy settings, Translated: 代理設定
Traditional Chinese (zh-tw), Field: Pseudonyms, English: Pseudonyms, Translated: 化名
Traditional Chinese (zh-tw), Field: Mail log file analysis, English: Mail log file analysis, Translated: 郵件日誌文件分析
Traditional Chinese (zh-tw), Field: Quotas, English: Quotas, Translated: 配額
Traditional Chinese (zh-tw), Field: Reboot or shutdown, English: Reboot or shutdown, Translated: 重新啟動或關機
Traditional Chinese (zh-tw), Field: Remote access, English: Remote access, Translated: 遠端存取
Traditional Chinese (zh-tw), Field: Review configuration, English: Review configuration, Translated: 檢視設定
Traditional Chinese (zh-tw), Field: Support and licensing, English: Support and licensing, Translated: 支援與授權
Traditional Chinese (zh-tw), Field: Users, English: Users, Translated: 用戶
Traditional Chinese (zh-tw), Field: User Panel Access, English: User Panel Access, Translated: 用戶面板存取
Traditional Chinese (zh-tw), Field: Change password, English: Change password, Translated: 更改密碼
Traditional Chinese (zh-tw), Field: View log files, English: View log files, Translated: 檢視日誌檔案
Traditional Chinese (zh-tw), Field: Samba workgroup, English: Samba workgroup, Translated: Samba 工作群組
Traditional Chinese (zh-tw), Field: Software installer, English: Software installer, Translated: 軟體安裝程式

346
sm2gen.py
View File

@ -1,32 +1,31 @@
import json5 import json5
import sys import sys
import argparse import argparse
from chameleon import PageTemplateFile,PageTemplate from chameleon import PageTemplateFile, PageTemplate
import pkg_resources import pkg_resources
import xml.etree.ElementTree as ET import xml.etree.ElementTree as ET
import re import re
import os import os
import pkg_resources
from datetime import datetime from datetime import datetime
import xml.etree.ElementTree as ET
from openai import OpenAI from openai import OpenAI
import configparser import configparser
import json import json
# #
#To Do # To Do
# 1. Get routing working # 1. Get routing working
# 2. Deal with ? and ! as sentence ends in text-format # 2. Deal with ? and ! as sentence ends in text-format
# 3. Make lexical scan work with double or single quotes (if possible) # 3. Make lexical scan work with double or single quotes (if possible)
SME2Gen_version = '0.8' SME2Gen_version = "0.8"
json5_dict: dict = {} json5_dict: dict = {}
json5_html_list: list = [] json5_html_list: list = []
# Define the path to the INI file # Define the path to the INI file
ini_file_path = os.path.expanduser('~/.smegit/conf') ini_file_path = os.path.expanduser("~/.smegit/conf")
OPENAI_API_KEY = "" OPENAI_API_KEY = ""
def parse_json(json_obj, prefix=''):
def parse_json(json_obj, prefix=""):
structured_list = [] structured_list = []
if isinstance(json_obj, dict): if isinstance(json_obj, dict):
for k, v in json_obj.items(): for k, v in json_obj.items():
@ -40,23 +39,27 @@ def parse_json(json_obj, prefix=''):
structured_list.append(f"{prefix}: {json_obj}") structured_list.append(f"{prefix}: {json_obj}")
return structured_list return structured_list
def json5_to_list(filename): def json5_to_list(filename):
with open(filename, 'r') as file: with open(filename, "r") as file:
data = json5.load(file) data = json5.load(file)
return parse_json(data) return parse_json(data)
def json5_to_pandas(filename): def json5_to_pandas(filename):
with open(filename, 'r') as file: with open(filename, "r") as file:
data = json5.load(file) data = json5.load(file)
print (data) print(data)
return data.json_normalize(data) return data.json_normalize(data)
def json5_to_dict(filename): def json5_to_dict(filename):
with open(filename, 'r') as file: with open(filename, "r") as file:
data = json5.load(file) data = json5.load(file)
return data return data
def rec_print(data, prefix=''):
def rec_print(data, prefix=""):
# Check if this item is a dictionary. # Check if this item is a dictionary.
if isinstance(data, dict): if isinstance(data, dict):
for key, val in data.items(): for key, val in data.items():
@ -69,6 +72,7 @@ def rec_print(data, prefix=''):
else: else:
print(f"{prefix}: {data}") print(f"{prefix}: {data}")
def find_item(nested_dict, target_key): def find_item(nested_dict, target_key):
for key, val in nested_dict.items(): for key, val in nested_dict.items():
if key == target_key: if key == target_key:
@ -78,6 +82,7 @@ def find_item(nested_dict, target_key):
if result is not None: if result is not None:
return result return result
def find_dicts_with_key(data, target_key): def find_dicts_with_key(data, target_key):
results = [] results = []
if isinstance(data, dict): if isinstance(data, dict):
@ -92,6 +97,7 @@ def find_dicts_with_key(data, target_key):
results.extend(find_dicts_with_key(item, target_key)) results.extend(find_dicts_with_key(item, target_key))
return results return results
def find_values_with_key(data, target_key): def find_values_with_key(data, target_key):
results = [] results = []
if isinstance(data, dict): if isinstance(data, dict):
@ -106,9 +112,10 @@ def find_values_with_key(data, target_key):
results.extend(find_values_with_key(item, target_key)) results.extend(find_values_with_key(item, target_key))
return results return results
def lint_json5(filename): def lint_json5(filename):
try: try:
with open(filename, 'r') as file: with open(filename, "r") as file:
data = file.read() data = file.read()
json5.loads(data) json5.loads(data)
print(f"{filename} as JSON5 data is valid") print(f"{filename} as JSON5 data is valid")
@ -123,29 +130,37 @@ def flatten_hash_of_lists(hash_of_lists):
for key, value in hash_of_lists.items(): for key, value in hash_of_lists.items():
if isinstance(value, list): if isinstance(value, list):
for i, item in enumerate(value): for i, item in enumerate(value):
new_key = f"{key}_{i}" # Appending index to the key to maintain uniqueness new_key = (
f"{key}_{i}" # Appending index to the key to maintain uniqueness
)
flattened[new_key] = item flattened[new_key] = item
else: else:
flattened[key] = value flattened[key] = value
return flattened return flattened
def hl(keyname): def hl(keyname):
# Return highest level value for the keyname # Return highest level value for the keyname
if keyname in json5_dict: if keyname in json5_dict:
return json5_dict[keyname] return json5_dict[keyname]
else: else:
print(f"{keyname} not found in JSON5 - top level") print(f"{keyname} not found in JSON5 - top level")
return 'None' return "None"
def get_all_routes(): def get_all_routes():
route_list = [html_block.get('route') for html_block in json5_dict.get('html', [])] route_list = [html_block.get("route") for html_block in json5_dict.get("html", [])]
return route_list return route_list
def lc_get_all_routes(): def lc_get_all_routes():
# All routes in lower case # All routes in lower case
route_list = [html_block.get('route').lower() for html_block in json5_dict.get('html', [])] route_list = [
html_block.get("route").lower() for html_block in json5_dict.get("html", [])
]
return route_list return route_list
def has_file_been_modified(file_path): def has_file_been_modified(file_path):
# Get the file's creation time and last modification time in Unix timestamp # Get the file's creation time and last modification time in Unix timestamp
creation_time = os.path.getctime(file_path) creation_time = os.path.getctime(file_path)
@ -159,6 +174,7 @@ def has_file_been_modified(file_path):
else: else:
return False # File has not been modified after creation return False # File has not been modified after creation
def parse_xml_to_dict(xml_file): def parse_xml_to_dict(xml_file):
# Parse the XML file # Parse the XML file
tree = ET.parse(xml_file) tree = ET.parse(xml_file)
@ -172,11 +188,12 @@ def parse_xml_to_dict(xml_file):
if elem.text: if elem.text:
xml_dict[tag] = elem.text xml_dict[tag] = elem.text
else: else:
cdata_content = elem.find('.//').text # Extract CDATA text cdata_content = elem.find(".//").text # Extract CDATA text
xml_dict[tag] = cdata_content xml_dict[tag] = cdata_content
return xml_dict return xml_dict
def deduplicate_array(arr): def deduplicate_array(arr):
# Convert the array to a set to remove duplicates # Convert the array to a set to remove duplicates
unique_set = set(arr) unique_set = set(arr)
@ -186,11 +203,14 @@ def deduplicate_array(arr):
return deduplicated_list return deduplicated_list
def get_db_fields(): def get_db_fields():
return [] return []
def get_table_control_data(): def get_table_control_data():
return find_values_with_key(json5_html_list,'TableControl') return find_values_with_key(json5_html_list, "TableControl")
def format_text(text): def format_text(text):
# #
@ -201,25 +221,25 @@ def format_text(text):
# Split the text into sentences # Split the text into sentences
sentences = text.split(".") sentences = text.split(".")
words = sentences[0].split(" ") words = sentences[0].split(" ")
#print(len(sentences)) # print(len(sentences))
# Deal with one capitalised word # Deal with one capitalised word
if sentences[0].isupper() and len(sentences) == 1 and len(words) == 1: if sentences[0].isupper() and len(sentences) == 1 and len(words) == 1:
return sentences[0].capitalize() return sentences[0].capitalize()
else: else:
for sentence in sentences: for sentence in sentences:
#print(sentence) # print(sentence)
# and splt into sub phrases, based on comma # and splt into sub phrases, based on comma
formatted_phrases = [] formatted_phrases = []
phrases = sentence.split(",") phrases = sentence.split(",")
for phrase in phrases: for phrase in phrases:
#print(phrase) # print(phrase)
phrase = phrase.lstrip() phrase = phrase.lstrip()
formatted_words = [] formatted_words = []
words = phrase.split(' ') words = phrase.split(" ")
for i,word in enumerate(words): for i, word in enumerate(words):
#print(i,word) # print(i,word)
# Check if the word is fully uppercase or not the first # Check if the word is fully uppercase or not the first
word = word.lstrip() word = word.lstrip()
if word.isupper() or i != 0: if word.isupper() or i != 0:
@ -229,7 +249,7 @@ def format_text(text):
formatted_words.append(word.capitalize()) formatted_words.append(word.capitalize())
# Join the formatted words back together for this phrase # Join the formatted words back together for this phrase
formatted_phrase = ' '.join(formatted_words).lstrip() formatted_phrase = " ".join(formatted_words).lstrip()
formatted_phrases.append(formatted_phrase) formatted_phrases.append(formatted_phrase)
# and sentence # and sentence
formatted_sentence = ", ".join(formatted_phrases).lstrip() formatted_sentence = ", ".join(formatted_phrases).lstrip()
@ -238,29 +258,47 @@ def format_text(text):
formatted_text = ". ".join(formatted_sentences).lstrip() formatted_text = ". ".join(formatted_sentences).lstrip()
return formatted_text return formatted_text
def get_completion(prompt): def get_completion(prompt):
response = client.chat.completions.create(model="gpt-4o", #
messages=[{'role':"user", 'content':prompt}], # temperature: Controls the randomness of the response. Lower values make the output more focused and deterministic, while higher values make it more creative and random.
max_tokens=100) # top_p: Controls the diversity of the response. It relates to nucleus sampling, where the model considers only the tokens with the top p probability mass.
# n: Number of completions to generate for each prompt.
# stop: A string or list of strings. Up to 4 sequences where the API will stop generating further tokens. The returned text will not contain the stop sequence.
# presence_penalty: A number between -2.0 and 2.0. Positive values penalize new tokens based on whether they appear in the text so far, increasing the model's likelihood to talk about new topics.
# frequency_penalty: A number between -2.0 and 2.0. Positive values penalize new tokens based on their existing frequency in the text so far, decreasing the model's likelihood to repeat the same line verbatim.
# logit_bias: A dictionary that allows you to manipulate the likelihood of specified tokens appearing in the output.
#
response = client.chat.completions.create(
model="gpt-4o",
messages=[{"role": "user", "content": prompt}],
temperature=0,
max_tokens=100,
)
# Extracting the content message from the JSON data # Extracting the content message from the JSON data
response_data = response.to_dict() response_data = response.to_dict()
content_message = response_data["choices"][0]["message"]["content"] content_message = response_data["choices"][0]["message"]["content"]
return content_message.strip() return content_message.strip()
def get_translation(message="Hello",language="french"):
def get_translation(message="Hello", language="french"):
prompt = f"""Translate the following text in triple ~~~ so that it is suitable for a server management application menu prompt = f"""Translate the following text in triple ~~~ so that it is suitable for a server management application menu
and only return the actual translation; translate it from from English to {language} ~~~{message}~~~""" and only return the actual translation; translate it from from English to {language} ~~~{message}~~~"""
translated_message = get_completion(prompt) translated_message = get_completion(prompt)
# Look for over long messages # Look for over long messages
if len(message)/len(translated_message) < 0.2: if len(message) / len(translated_message) < 0.2:
print(f"{message} translated to {translated_message}") print(f"{message} translated to {translated_message}")
quit() quit()
return translated_message return translated_message
def convert_lex_to_dict(pairs_string): def convert_lex_to_dict(pairs_string):
# Splitting pairs string by comma and newline, excluding empty lines # Splitting pairs string by comma and newline, excluding empty lines
pairs_list = [line for line in pairs_string.split(",\n") if line.strip()] 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} 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()] formatted_dict = [{"id": key, "text": value} for key, value in data_dict.items()]
return formatted_dict return formatted_dict
@ -275,7 +313,16 @@ if __name__ == "__main__":
current_datetime = datetime.now() current_datetime = datetime.now()
formatted_datetime = current_datetime.strftime("%Y-%m-%d %H:%M") formatted_datetime = current_datetime.strftime("%Y-%m-%d %H:%M")
strVersion = "SM2Gen 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_dict: dict = {}
json5_html_list: list = [] json5_html_list: list = []
@ -293,9 +340,9 @@ if __name__ == "__main__":
config.read(ini_file_path) config.read(ini_file_path)
# Read the value of "OPENAI_API_KEY" # Read the value of "OPENAI_API_KEY"
if 'OPENAI_API_KEY' in config['smegit']: if "OPENAI_API_KEY" in config["smegit"]:
OPENAI_API_KEY = config['smegit']['OPENAI_API_KEY'] OPENAI_API_KEY = config["smegit"]["OPENAI_API_KEY"]
#print("API Key:", OPENAI_API_KEY) # print("API Key:", OPENAI_API_KEY)
client = OpenAI(api_key=OPENAI_API_KEY) client = OpenAI(api_key=OPENAI_API_KEY)
else: else:
print("OPENAI_API_KEY not found in the configuration file.") print("OPENAI_API_KEY not found in the configuration file.")
@ -304,59 +351,83 @@ if __name__ == "__main__":
# Command line parameters - not in use # Command line parameters - not in use
parser = argparse.ArgumentParser(description="SM2Gen") parser = argparse.ArgumentParser(description="SM2Gen")
parser.add_argument('-f', '--filename', help='Specify a filename for the JSON5 file', default=json_filename) parser.add_argument(
parser.add_argument('-nco', '--noController', help='Stop it creating a controller file', default="no") "-f",
parser.add_argument('-nh', '--noHtml', help='Stop it creating html files(s)', default="no") "--filename",
parser.add_argument('-nl', '--noLang', help='Stop it creating language localise files(s)', default="no") help="Specify a filename for the JSON5 file",
parser.add_argument('-ncu', '--noCust', help='Stop it creating Custom controller file', default="no") 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() args = parser.parse_args()
json_filename = args.filename json_filename = args.filename
print(f"JSON5 from {json_filename} with noController={args.noController}, noHtml={args.noHtml} and noLang={args.noLang}") #Not yet activated print(
f"JSON5 from {json_filename} with noController={args.noController}, noHtml={args.noHtml} and noLang={args.noLang}"
) # Not yet activated
# check syntax of JSON5 # check syntax of JSON5
lint_json5(json_filename); lint_json5(json_filename)
# Get dict of it all # Get dict of it all
json5_dict = json5_to_dict(json_filename) json5_dict = json5_to_dict(json_filename)
# Get dict of just the html bit # Get dict of just the html bit
json5_html_list = json5_dict['html'] json5_html_list = json5_dict["html"]
#Identify message # Identify message
print(f"\nGenerating mojo panels for {hl('PackageName')}") print(f"\nGenerating mojo panels for {hl('PackageName')}")
print( "-----------------------------------") print("-----------------------------------")
# Routes for each panel # Routes for each panel
routes = get_all_routes(); routes = get_all_routes()
lc_routes =lc_get_all_routes(); lc_routes = lc_get_all_routes()
#File names # File names
controller_file = 'Targets/'+hl('PackageName')+'.pm' controller_file = "Targets/" + hl("PackageName") + ".pm"
custom_controller_file = 'Targets/'+hl('PackageName')+'-Custom.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) # Call it .new if one is already there (and may have been editted by the developer)
if os.path.exists(custom_controller_file): if os.path.exists(custom_controller_file):
custom_controller_file = custom_controller_file+'.new' custom_controller_file = custom_controller_file + ".new"
layout_file = 'Targets/'+hl('PackageName').lower()+'.html.ep' layout_file = "Targets/" + hl("PackageName").lower() + ".html.ep"
partial_files = list() partial_files = list()
for panel in routes: for panel in routes:
partial_files.append('Targets/_'+hl('prefix')+"_"+panel+'.html.ep') partial_files.append("Targets/_" + hl("prefix") + "_" + panel + ".html.ep")
print(partial_files) print(partial_files)
lex_file = 'Targets/'+hl('PackageName').lower()+'_en.lex' lex_file = "Targets/" + hl("PackageName").lower() + "_en.lex"
tablecontrols = get_table_control_data() #arrays of hashes used to drive rows in tables tablecontrols = (
get_table_control_data()
) # arrays of hashes used to drive rows in tables
#Generate controller file # Generate controller file
try: try:
controller_template = PageTemplateFile("Templates/controller.pm.tem") controller_template = PageTemplateFile("Templates/controller.pm.tem")
dbentries = get_db_fields() #Params which correspond to Db fields dbentries = get_db_fields() # Params which correspond to Db fields
try: try:
controller_perl = controller_template.render(version=strVersion, controller_perl = controller_template.render(
version=strVersion,
tablecontrols=tablecontrols, tablecontrols=tablecontrols,
dbentries=dbentries, dbentries=dbentries,
**json5_dict, **json5_dict,
panels=routes, panels=routes,
lcPackageName=json5_dict['PackageName'].lower() lcPackageName=json5_dict["PackageName"].lower(),
) )
with open(controller_file, 'w') as file: with open(controller_file, "w") as file:
file.write(controller_perl) file.write(controller_perl)
print(f"{controller_file} controller generated ok") print(f"{controller_file} controller generated ok")
except Exception as e: except Exception as e:
@ -364,16 +435,15 @@ if __name__ == "__main__":
except Exception as e: except Exception as e:
print(f"A Chameleon controller template error occurred: {e}") print(f"A Chameleon controller template error occurred: {e}")
#Generate Custom controller file # Generate Custom controller file
try: try:
custom_controller_template = PageTemplateFile("Templates/custom.pm.tem") custom_controller_template = PageTemplateFile("Templates/custom.pm.tem")
try: try:
custom_controller_perl = custom_controller_template.render(version=strVersion, custom_controller_perl = custom_controller_template.render(
panels=routes, version=strVersion, panels=routes, tablecontrols=tablecontrols
tablecontrols=tablecontrols
) )
# We must be careful to not overwrite the custom file if the developer has already written to it - TBD # 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: with open(custom_controller_file, "w") as file:
file.write(custom_controller_perl) file.write(custom_controller_perl)
print(f"{custom_controller_file} custom controller generated ok") print(f"{custom_controller_file} custom controller generated ok")
except Exception as e: except Exception as e:
@ -381,12 +451,14 @@ if __name__ == "__main__":
except Exception as e: except Exception as e:
print(f"A Chameleon custom controller template error occurred: {e}") print(f"A Chameleon custom controller template error occurred: {e}")
#generate Layout file # generate Layout file
layout_template = PageTemplateFile("Templates/layout.html.ep.tem") layout_template = PageTemplateFile("Templates/layout.html.ep.tem")
try: try:
try: try:
layout_mojo = layout_template.render(version=strVersion,**json5_dict,conditions=routes) layout_mojo = layout_template.render(
with open(layout_file, 'w') as file: version=strVersion, **json5_dict, conditions=routes
)
with open(layout_file, "w") as file:
file.write(layout_mojo) file.write(layout_mojo)
print(f"{layout_file} mojo template layout file generated ok") print(f"{layout_file} mojo template layout file generated ok")
except Exception as e: except Exception as e:
@ -394,66 +466,85 @@ if __name__ == "__main__":
except Exception as e: except Exception as e:
print(f"A Chameleon template layout file error occurred: {e}") print(f"A Chameleon template layout file error occurred: {e}")
#Generate a partial file for each of the entries in the html list # Generate a partial file for each of the entries in the html list
#Pull in the template code for each of the input types # Pull in the template code for each of the input types
#html_controls = json5_to_dict('Templates/html_controls.html.ep.tem') # html_controls = json5_to_dict('Templates/html_controls.html.ep.tem')
html_controls = parse_xml_to_dict('Templates/html_controls.html.ep.xml') html_controls = parse_xml_to_dict("Templates/html_controls.html.ep.xml")
i = 0 i = 0
for html in json5_html_list: for html in json5_html_list:
# Generate a mojo template file, and then add in the controls # Generate a mojo template file, and then add in the controls
# main file first # main file first
try: try:
partial_template = PageTemplateFile("Templates/partial.html.ep.tem") partial_template = PageTemplateFile("Templates/partial.html.ep.tem")
partial_mojo_context = {**json5_dict,**html} partial_mojo_context = {**json5_dict, **html}
try: try:
partial_mojo_template = partial_template.render(version=strVersion,**partial_mojo_context) partial_mojo_template = partial_template.render(
with open( partial_files[i], 'w') as file: version=strVersion, **partial_mojo_context
)
with open(partial_files[i], "w") as file:
file.write(partial_mojo_template) file.write(partial_mojo_template)
print(f"{partial_files[i]} mojo template generated ok - phase 1") print(f"{partial_files[i]} mojo template generated ok - phase 1")
except Exception as e: except Exception as e:
print(f"A Chameleon render error on partial file {html['route']} occurred: {e}") print(
f"A Chameleon render error on partial file {html['route']} occurred: {e}"
)
except Exception as e: except Exception as e:
print(f"A Chameleon html {html['route']} error occurred: {e}") print(f"A Chameleon html {html['route']} error occurred: {e}")
#Now generate the controls from the rest of the entries in the dict. # Now generate the controls from the rest of the entries in the dict.
all_controls_html = ""; all_controls_html = ""
prefix_is = hl('prefix') prefix_is = hl("prefix")
for html_control in html: for html_control in html:
inner_html = html[html_control] inner_html = html[html_control]
if isinstance(inner_html, dict): if isinstance(inner_html, dict):
try: try:
control_template = PageTemplate(html_controls[inner_html['Type']]) control_template = PageTemplate(html_controls[inner_html["Type"]])
try: try:
control_html = control_template.render(version=strVersion,**inner_html,prefix=prefix_is) control_html = control_template.render(
version=strVersion, **inner_html, prefix=prefix_is
)
all_controls_html = all_controls_html + control_html all_controls_html = all_controls_html + control_html
except Exception as e: except Exception as e:
print(f"A Chameleon render on partial file control {inner_html['Name']} error occurred: {e}") print(
f"A Chameleon render on partial file control {inner_html['Name']} error occurred: {e}"
)
except Exception as e: except Exception as e:
print(f"A Chameleon render on partial file control {inner_html['Name']} error occurred: {e}") print(
f"A Chameleon render on partial file control {inner_html['Name']} error occurred: {e}"
)
else: else:
#just a simple entry - name less numerics is type # just a simple entry - name less numerics is type
html_Type = ''.join(char for char in html_control if not char.isdigit()) html_Type = "".join(char for char in html_control if not char.isdigit())
try: try:
simple_control_template = PageTemplate(html_controls[html_Type]) simple_control_template = PageTemplate(html_controls[html_Type])
try: try:
simple_control_html = simple_control_template.render(version=strVersion,value=inner_html,prefix=prefix_is) simple_control_html = simple_control_template.render(
version=strVersion, value=inner_html, prefix=prefix_is
)
all_controls_html = all_controls_html + simple_control_html all_controls_html = all_controls_html + simple_control_html
except Exception as e: except Exception as e:
print(f"A Chameleon render on partial file control {html_control} error occurred: {e}") print(
f"A Chameleon render on partial file control {html_control} error occurred: {e}"
)
except Exception as e: except Exception as e:
print(f"A Chameleon template partial file control {html_control} error occurred: {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. # Now insert it into the partial file in the correct place.
# Read in the text file and split at "%# Inputs etc in here." # Read in the text file and split at "%# Inputs etc in here."
with open(partial_files[i], 'r') as file: with open(partial_files[i], "r") as file:
lines = file.readlines() lines = file.readlines()
index = next((i for i, line in enumerate(lines) if "%# Inputs etc in here." in line), len(lines)) 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 # Insert the string at the specified index
lines.insert(index+1, all_controls_html + '\n') lines.insert(index + 1, all_controls_html + "\n")
# Write the modified content back to the file # Write the modified content back to the file
with open(partial_files[i], 'w') as file: with open(partial_files[i], "w") as file:
file.writelines(lines) file.writelines(lines)
print(f"Content modified and saved to {partial_files[i]}") print(f"Content modified and saved to {partial_files[i]}")
i += 1 i += 1
@ -462,20 +553,20 @@ if __name__ == "__main__":
# Look through the generated files for the /l[\s|(]['|"](.*)['|"]\)/ strings. # Look through the generated files for the /l[\s|(]['|"](.*)['|"]\)/ strings.
# create a combined list of all the files # create a combined list of all the files
all_files = [controller_file,layout_file]+partial_files all_files = [controller_file, layout_file] + partial_files
all_strings = [] all_strings = []
for filename in all_files: for filename in all_files:
with open(filename, 'r') as file: with open(filename, "r") as file:
file_content = file.read() file_content = file.read()
# Define the regular expression pattern to match the strings you want to extract # Define the regular expression pattern to match the strings you want to extract
pattern = r"l[\s|(][\'|\"](.*)[\'|\"]\)" pattern = r"l[\s|(][\'|\"](.*)[\'|\"]\)"
# Use re.findall to extract all occurrences of the pattern from the file content # Use re.findall to extract all occurrences of the pattern from the file content
extracted_strings = re.findall(pattern, file_content) extracted_strings = re.findall(pattern, file_content)
all_strings = all_strings + extracted_strings all_strings = all_strings + extracted_strings
#Take out any duplicates # Take out any duplicates
all_strings = deduplicate_array(all_strings) all_strings = deduplicate_array(all_strings)
# '<prefix>_english-message' => 'English Message', # '<prefix>_english-message' => 'English Message',
string_lib = [] #Array of dicts string_lib = [] # Array of dicts
for lex_message in all_strings: for lex_message in all_strings:
# If has a prefix - leave it for left hand side but delete it for the right # 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 # If has no prefix - add one for left hand side but and leave it for the right
@ -483,33 +574,33 @@ if __name__ == "__main__":
# amd truncate it to max five words # amd truncate it to max five words
original_str = lex_message original_str = lex_message
# Checkif it starts with the prefix (any case|) # Checkif it starts with the prefix (any case|)
if lex_message.lower().startswith(hl('prefix').lower()): if lex_message.lower().startswith(hl("prefix").lower()):
left_str = lex_message left_str = lex_message
right_str = lex_message[len(hl('prefix'))+1:] right_str = lex_message[len(hl("prefix")) + 1 :]
# And take out any "_", map to " " # And take out any "_", map to " "
else: else:
left_str = hl('prefix')+"_"+lex_message left_str = hl("prefix") + "_" + lex_message
right_str = lex_message right_str = lex_message
right_str = right_str.replace("_"," ") right_str = right_str.replace("_", " ")
#print(f"Right:{right_str}") # print(f"Right:{right_str}")
right_str = format_text(right_str) right_str = format_text(right_str)
left_str = left_str.replace(" ","_") left_str = left_str.replace(" ", "_")
words = left_str.split('_')[:6] words = left_str.split("_")[:6]
left_str = "_".join(words) left_str = "_".join(words)
next_lex_str = {"orig":original_str,"left":left_str,"right":right_str} next_lex_str = {"orig": original_str, "left": left_str, "right": right_str}
string_lib.append(next_lex_str) string_lib.append(next_lex_str)
#And write it to lex file # And write it to lex file
# Now process them one by one into the lexical file # Now process them one by one into the lexical file
lex_all = ""; lex_all = ""
for lex_str in string_lib: for lex_str in string_lib:
lex_all += f"\'{lex_str['left']}\' => \'{lex_str['right']}\',\n" lex_all += f"'{lex_str['left']}' => '{lex_str['right']}',\n"
print(f"Writing {lex_file}") print(f"Writing {lex_file}")
with open( lex_file, 'w') as file: with open(lex_file, "w") as file:
file.write(lex_all) file.write(lex_all)
#and then play the strings back into the partials and the layout file # and then play the strings back into the partials and the layout file
print("..and feed the lex string names back into other files") print("..and feed the lex string names back into other files")
for filename in all_files: for filename in all_files:
with open(filename, 'r') as file: with open(filename, "r") as file:
file_content = file.read() file_content = file.read()
# Scan through # Scan through
for item in string_lib: for item in string_lib:
@ -517,19 +608,21 @@ if __name__ == "__main__":
left_str = item["left"] left_str = item["left"]
right_str = item["right"] right_str = item["right"]
# Replace all occurrences of original string with left string in 'contents' # Replace all occurrences of original string with left string in 'contents'
file_content = file_content.replace("l('"+original_str+"')", "l('"+left_str+"')") file_content = file_content.replace(
"l('" + original_str + "')", "l('" + left_str + "')"
)
# and write it back # and write it back
with open(filename, 'w') as file: with open(filename, "w") as file:
file.write(file_content) file.write(file_content)
print(f"Write out modified:{filename}") print(f"Write out modified:{filename}")
# Now generate all the translated lex files from a list of the languages and codes # Now generate all the translated lex files from a list of the languages and codes
home_dir = os.path.dirname(json_filename) home_dir = os.path.dirname(json_filename)
languages_path =f"{home_dir}/languages.json" languages_path = f"{home_dir}/languages.json"
with open(languages_path,'r') as file: with open(languages_path, "r") as file:
languages_str = file.read() languages_str = file.read()
lang_dict = json.loads(languages_str) lang_dict = json.loads(languages_str)
with open(lex_file,'r') as file: with open(lex_file, "r") as file:
lex_str = file.read() lex_str = file.read()
eng_lex_dict = convert_lex_to_dict(lex_str) eng_lex_dict = convert_lex_to_dict(lex_str)
for lang_item in lang_dict: for lang_item in lang_dict:
@ -541,16 +634,25 @@ if __name__ == "__main__":
translated_dict = [] translated_dict = []
for lex_item in eng_lex_dict: for lex_item in eng_lex_dict:
# Get it from ChatGPT # Get it from ChatGPT
translated_text = get_translation(lex_item["text"], lang_item["language"]) translated_text = get_translation(
lex_item["text"], lang_item["language"]
)
translated_dict.append({"id": lex_item["id"], "text": translated_text}) translated_dict.append({"id": lex_item["id"], "text": translated_text})
print(f"Writing out lex file for {lang_item['code']}") print(f"Writing out lex file for {lang_item['code']}")
with open(translated_lex_file, "w") as file: with open(translated_lex_file, "w") as file:
for item in translated_dict: for item in translated_dict:
# escape any nasties # escape any nasties
translated_text = item['text'].replace('\\', r'\\').replace('"', r'\"').replace("'", r"\'") translated_text = (
line = "'"+item['id']+"' => "+'"'+translated_text+'",\n' item["text"]
.replace("\\", r"\\")
.replace('"', r"\"")
.replace("'", r"\'")
)
line = "'" + item["id"] + "' => " + '"' + translated_text + '",\n'
file.write(line) file.write(line)
#print(f"{item['id']} => {item['text']}\n") # print(f"{item['id']} => {item['text']}\n")
else: else:
print(f"Skipping the creation of {translated_lex_file} as it exists already") print(
quit() #end of the program f"Skipping the creation of {translated_lex_file} as it exists already"
)
quit() # end of the program