mirror of
https://github.com/rejetto/hfs2.git
synced 2025-12-19 10:03:56 +01:00
i18n: moved strings to resources
This commit is contained in:
parent
b4ca9f113a
commit
474e95315a
2
data.rc
2
data.rc
@ -1,9 +1,7 @@
|
|||||||
1 24 "WindowsXP.manifest"
|
1 24 "WindowsXP.manifest"
|
||||||
defaultTpl TEXT default.tpl
|
defaultTpl TEXT default.tpl
|
||||||
dmBrowserTpl TEXT dmBrowser.tpl
|
dmBrowserTpl TEXT dmBrowser.tpl
|
||||||
invertban TEXT invertban.txt
|
|
||||||
filelistTpl TEXT filelist.tpl
|
filelistTpl TEXT filelist.tpl
|
||||||
uploadHowTo TEXT upload_how.txt
|
|
||||||
alias TEXT alias.txt
|
alias TEXT alias.txt
|
||||||
IPservices TEXT ipservices.txt
|
IPservices TEXT ipservices.txt
|
||||||
jquery TEXT jquery.min.js
|
jquery TEXT jquery.min.js
|
||||||
|
|||||||
706
hfs.drc
706
hfs.drc
@ -8,174 +8,273 @@
|
|||||||
resources were bound to the produced executable.
|
resources were bound to the produced executable.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#define main_MSG_NUM_ADDR 64752
|
#define main_MSG_NUM_ADDR 64656
|
||||||
#define main_MSG_NUM_ADDR_DL 64753
|
#define main_MSG_NUM_ADDR_DL 64657
|
||||||
#define main_MSG_MAX_LINES 64754
|
#define main_MSG_MAX_LINES 64658
|
||||||
#define main_MSG_APACHE_LOG_FMT 64755
|
#define main_MSG_APACHE_LOG_FMT 64659
|
||||||
#define main_MSG_APACHE_LOG_FMT_LONG 64756
|
#define main_MSG_APACHE_LOG_FMT_LONG 64660
|
||||||
#define main_MSG_MD5_WARN 64757
|
#define main_MSG_ICONS_ADDED 64661
|
||||||
#define main_MSG_AUTO_MD5 64758
|
#define main_MSG_DDNS_DISABLED 64662
|
||||||
#define main_MSG_AUTO_MD5_LONG 64759
|
#define main_MSG_MD5_WARN 64663
|
||||||
#define main_MSG_TEST_CANC 64768
|
#define main_MSG_AUTO_MD5 64664
|
||||||
#define main_MSG_TEST_INET 64769
|
#define main_MSG_AUTO_MD5_LONG 64665
|
||||||
#define main_MSG_SELF_UNAV 64770
|
#define main_MSG_UPL_HOWTO 64666
|
||||||
#define main_MSG_SELF_NO_INET 64771
|
#define main_MSG_EVENTS_HLP 64672
|
||||||
#define main_MSG_SELF_NO_ANSWER 64772
|
#define main_MSG_EDIT_RES 64673
|
||||||
#define main_MSG_OPEN_BROW 64773
|
#define main_MSG_TPL_USE_MACROS 64674
|
||||||
#define main_MSG_OPEN_BROW_LONG 64774
|
#define main_REMOVE_SHELL 64675
|
||||||
#define main_MSG_HIDE_PORT 64775
|
#define main_S_OFF 64676
|
||||||
#define main_MSG_EVENTS_HLP 64776
|
#define main_S_ON 64677
|
||||||
#define main_MSG_EDIT_RES 64777
|
#define main_LOG 64678
|
||||||
#define main_MSG_TPL_USE_MACROS 64778
|
#define main_MSG_RE_NOIP 64679
|
||||||
#define main_REMOVE_SHELL 64779
|
#define main_MSG_TRAY_DEF 64680
|
||||||
#define main_S_OFF 64780
|
#define main_MSG_CLEAN_START 64681
|
||||||
#define main_S_ON 64781
|
#define main_MSG_RESTORE_BAK 64682
|
||||||
#define main_LOG 64782
|
#define main_MSG_EXT_ADDR_FAIL 64683
|
||||||
#define main_MSG_RE_NOIP 64783
|
#define main_MSG_TO_EXPERT 64684
|
||||||
#define main_MSG_HOST_FORM 64784
|
#define main_MSG_DONT_LOG_HINT 64685
|
||||||
#define main_MSG_MIN_SPACE 64785
|
#define main_MSG_DL_PERC 64686
|
||||||
#define main_MSG_MIN_SPACE_LONG 64786
|
#define main_MSG_UNINSTALL_WARN 64687
|
||||||
#define main_MSG_REN_PART 64787
|
#define main_MSG_SELF_3 64688
|
||||||
#define main_MSG_REN_PART_LONG 64788
|
#define main_MSG_SELF_6 64689
|
||||||
#define main_MSG_SELF_BEFORE 64789
|
#define main_MSG_SELF_7 64690
|
||||||
#define main_MSG_SELF_OK 64790
|
#define main_MSG_RET_EXT 64691
|
||||||
#define main_MSG_SELF_OK_PORT 64791
|
#define main_MSG_SELF_CANT_ON 64692
|
||||||
#define main_MSG_SELF_3 64792
|
#define main_MSG_SELF_CANT_LIST 64693
|
||||||
#define main_MSG_SELF_6 64793
|
#define main_MSG_SELF_CANT_S 64694
|
||||||
#define main_MSG_SELF_7 64794
|
#define main_MSG_SELF_ING 64695
|
||||||
#define main_MSG_RET_EXT 64795
|
#define main_MSG_TEST_CANC 64696
|
||||||
#define main_MSG_SELF_CANT_ON 64796
|
#define main_MSG_TEST_INET 64697
|
||||||
#define main_MSG_SELF_CANT_LIST 64797
|
#define main_MSG_SELF_UNAV 64698
|
||||||
#define main_MSG_SELF_CANT_S 64798
|
#define main_MSG_SELF_NO_INET 64699
|
||||||
#define main_MSG_SELF_ING 64799
|
#define main_MSG_SELF_NO_ANSWER 64700
|
||||||
#define main_MSG_CHANGES_LOST 64800
|
#define main_MSG_OPEN_BROW 64701
|
||||||
#define main_MSG_FLAG_NEW 64801
|
#define main_MSG_OPEN_BROW_LONG 64702
|
||||||
#define main_MSG_FLAG_NEW_LONG 64802
|
#define main_MSG_HIDE_PORT 64703
|
||||||
#define main_MSG_DONT_LOG_MASK 64803
|
#define main_MSG_RESET_TOT 64704
|
||||||
#define main_MSG_DONT_LOG_MASK_LONG 64804
|
#define main_MSG_DISAB_FIND_EXT 64705
|
||||||
#define main_MSG_CUST_IP 64805
|
#define main_MSG_ENT_URL 64706
|
||||||
#define main_MSG_CUST_IP_LONG 64806
|
#define main_MSG_ENT_URL_LONG 64707
|
||||||
#define main_MSG_NO_EXT_IP 64807
|
#define main_MSG_ENT_USR 64708
|
||||||
#define main_MSG_RESET_TOT 64808
|
#define main_MSG_ENT_PWD 64709
|
||||||
#define main_MSG_DISAB_FIND_EXT 64809
|
#define main_MSG_ENT_HOST 64710
|
||||||
#define main_MSG_ENT_URL 64810
|
#define main_MSG_ENT_HOST_LONG 64711
|
||||||
#define main_MSG_ENT_URL_LONG 64811
|
#define main_MSG_HOST_FORM 64712
|
||||||
#define main_MSG_ENT_USR 64812
|
#define main_MSG_MIN_SPACE 64713
|
||||||
#define main_MSG_ENT_PWD 64813
|
#define main_MSG_MIN_SPACE_LONG 64714
|
||||||
#define main_MSG_ENT_HOST 64814
|
#define main_MSG_REN_PART 64715
|
||||||
#define main_MSG_ENT_HOST_LONG 64815
|
#define main_MSG_REN_PART_LONG 64716
|
||||||
#define main_MSG_UPD_INFO 64816
|
#define main_MSG_SELF_BEFORE 64717
|
||||||
#define main_MSG_NEWER 64817
|
#define main_MSG_SELF_OK 64718
|
||||||
#define main_MSG_SRC_UPD 64818
|
#define main_MSG_SELF_OK_PORT 64719
|
||||||
#define main_ARE_EXPERT 64819
|
#define main_MSG_LOG_FILE 64720
|
||||||
#define main_ARE_EASY 64820
|
#define main_MSG_LOG_FILE_LONG 64721
|
||||||
#define main_SW2EXPERT 64821
|
#define main_MSG_SET_URL 64722
|
||||||
#define main_SW2EASY 64822
|
#define main_MSG_SET_URL_LONG 64723
|
||||||
#define main_MSG_DL_TIMEOUT_LONG 64823
|
#define main_MSG_REALM 64724
|
||||||
#define main_MSG_LOG_FILE 64824
|
#define main_MSG_REALM_LONG 64725
|
||||||
#define main_MSG_LOG_FILE_LONG 64825
|
#define main_MSG_INACT_TIMEOUT 64726
|
||||||
#define main_MSG_SET_URL 64826
|
#define main_MSG_INACT_TIMEOUT_LONG 64727
|
||||||
#define main_MSG_SET_URL_LONG 64827
|
#define main_MSG_CHANGES_LOST 64728
|
||||||
#define main_MSG_REALM 64828
|
#define main_MSG_FLAG_NEW 64729
|
||||||
#define main_MSG_REALM_LONG 64829
|
#define main_MSG_FLAG_NEW_LONG 64730
|
||||||
#define main_MSG_INACT_TIMEOUT 64830
|
#define main_MSG_DONT_LOG_MASK 64731
|
||||||
#define main_MSG_INACT_TIMEOUT_LONG 64831
|
#define main_MSG_DONT_LOG_MASK_LONG 64732
|
||||||
#define main_MSG_MAX_BW_1 64832
|
#define main_MSG_CUST_IP 64733
|
||||||
#define main_MSG_GRAPH_RATE_MENU 64833
|
#define main_MSG_CUST_IP_LONG 64734
|
||||||
#define main_MSG_MAX_SIM 64834
|
#define main_MSG_NO_EXT_IP 64735
|
||||||
#define main_MSG_WARN_CONN 64835
|
#define main_MSG_TENTH_SEC 64736
|
||||||
#define main_MSG_WARN_ACT_DL 64836
|
#define main_MSG_LOADING_VFS 64737
|
||||||
#define main_MSG_MAX_SIM_SING 64837
|
#define main_MSG_VFS_OLD 64738
|
||||||
#define main_MSG_MAX_SIM_DL_SING 64838
|
#define main_MSG_UNK_FK 64739
|
||||||
#define main_MSG_GRAPH_RATE 64839
|
#define main_MSG_VIS_ONLY_ANON 64740
|
||||||
#define main_MSG_TENTH_SEC 64840
|
#define main_MSG_AUTO_DISABLED 64741
|
||||||
#define main_MSG_LOADING_VFS 64841
|
#define main_MSG_CORRUPTED 64742
|
||||||
#define main_MSG_VFS_OLD 64842
|
#define main_MSG_MACROS_FOUND 64743
|
||||||
#define main_MSG_UNK_FK 64843
|
#define main_MSG_UPD_INFO 64744
|
||||||
#define main_MSG_VIS_ONLY_ANON 64844
|
#define main_MSG_NEWER 64745
|
||||||
#define main_MSG_AUTO_DISABLED 64845
|
#define main_MSG_SRC_UPD 64746
|
||||||
#define main_MSG_CORRUPTED 64846
|
#define main_ARE_EXPERT 64747
|
||||||
#define main_MSG_MACROS_FOUND 64847
|
#define main_ARE_EASY 64748
|
||||||
#define main_BANS 64848
|
#define main_SW2EXPERT 64749
|
||||||
#define main_MEMORY 64849
|
#define main_SW2EASY 64750
|
||||||
#define main_CUST_TPL 64850
|
#define main_MSG_DL_TIMEOUT_LONG 64751
|
||||||
#define main_VFS_ITEMS 64851
|
#define main_MSG_ZLIB 64752
|
||||||
#define main_MSG_ITEM_EXISTS 64852
|
#define main_MSG_BAKAVAILABLE 64753
|
||||||
#define main_MSG_ALLO_REF 64853
|
#define main_MSG_CANT_LOAD_SAVE 64754
|
||||||
#define main_MSG_ALLO_REF_LONG 64854
|
#define main_MSG_OPEN_VFS 64755
|
||||||
#define main_MSG_BETTERSTOP 64855
|
#define main_LIMIT 64756
|
||||||
#define main_MSG_BADCRC 64856
|
#define main_TOP_SPEED 64757
|
||||||
#define main_MSG_NEWER 64857
|
#define main_MSG_MAX_BW 64758
|
||||||
#define main_MSG_ZLIB 64858
|
#define main_MSG_LIM0 64759
|
||||||
#define main_MSG_BAKAVAILABLE 64859
|
#define main_MSG_MAX_BW_1 64760
|
||||||
#define main_LIMIT 64860
|
#define main_MSG_GRAPH_RATE_MENU 64761
|
||||||
#define main_TOP_SPEED 64861
|
#define main_MSG_MAX_SIM 64762
|
||||||
#define main_MSG_MAX_BW 64862
|
#define main_MSG_WARN_CONN 64763
|
||||||
#define main_MSG_LIM0 64863
|
#define main_MSG_WARN_ACT_DL 64764
|
||||||
#define main_MSG_BAN 64864
|
#define main_MSG_MAX_SIM_SING 64765
|
||||||
#define main_MSG_CANT_SAVE_OPT 64865
|
#define main_MSG_MAX_SIM_DL_SING 64766
|
||||||
#define main_MSG_UPD_SAVE_ERROR 64866
|
#define main_MSG_GRAPH_RATE 64767
|
||||||
#define main_MSG_UPD_REQ_ONLY1 64867
|
#define main_MSG_CON_STATE_IDLE 64768
|
||||||
#define main_MSG_UPDATE 64868
|
#define main_MSG_CON_STATE_REQ 64769
|
||||||
#define main_MSG_REQUESTING 64869
|
#define main_MSG_CON_STATE_RCV 64770
|
||||||
#define main_MSG_CHK_UPD 64870
|
#define main_MSG_CON_STATE_THINK 64771
|
||||||
#define main_MSG_CHK_UPD_FAIL 64871
|
#define main_MSG_CON_STATE_REP 64772
|
||||||
#define main_TO_CLIP 64872
|
#define main_MSG_CON_STATE_SEND 64773
|
||||||
#define main_ALREADY_CLIP 64873
|
#define main_MSG_CON_STATE_DISC 64774
|
||||||
#define main_MSG_NO_SPACE 64874
|
#define main_MSG_CON_PAUSED 64775
|
||||||
#define main_CONN 64875
|
#define main_MSG_CON_SENT 64776
|
||||||
#define main_TOT_IN 64876
|
#define main_MSG_CON_RECEIVED 64777
|
||||||
#define main_TOT_OUT 64877
|
#define main_MSG_TPL_RESET 64778
|
||||||
#define main_OUT_SPEED 64878
|
#define main_MSG_ALLO_REF 64779
|
||||||
#define main_IN_SPEED 64879
|
#define main_MSG_ALLO_REF_LONG 64780
|
||||||
#define main_MSG_CANT_OPEN_PORT 64880
|
#define main_MSG_BETTERSTOP 64781
|
||||||
#define main_MSG_PORT_USED_BY 64881
|
#define main_MSG_BADCRC 64782
|
||||||
#define main_MSG_PORT_BLOCKED 64882
|
#define main_MSG_NEWER 64783
|
||||||
#define main_MSG_KICK_ALL 64883
|
#define main_MSG_VFS_ARCABLE 64784
|
||||||
#define main_MSG_TPL_INCOMPATIBLE 64884
|
#define main_MSG_VFS_DEF_MASK 64785
|
||||||
#define main_MSG_LOGIN_FAILED 64885
|
#define main_MSG_VFS_ACCESS 64786
|
||||||
#define main_FINGERPRINT 64886
|
#define main_MSG_VFS_UPLOAD 64787
|
||||||
#define main_NO_FINGERPRINT 64887
|
#define main_MSG_VFS_DELETE 64788
|
||||||
#define main_MSG_INP_COMMENT 64888
|
#define main_MSG_VFS_COMMENT 64789
|
||||||
#define main_AUTOSAVE 64889
|
#define main_MSG_VFS_REALM 64790
|
||||||
#define main_SECONDS 64890
|
#define main_MSG_VFS_DIFF_TPL 64791
|
||||||
#define main_MSG_SPD_LIMIT_SING 64891
|
#define main_MSG_VFS_FILES_FLT 64792
|
||||||
#define main_MSG_SPD_LIMIT 64892
|
#define main_MSG_VFS_FLD_FLT 64793
|
||||||
#define main_MSG_AUTO_SAVE 64893
|
#define main_MSG_VFS_UPL_FLT 64794
|
||||||
#define main_MSG_AUTO_SAVE_LONG 64894
|
#define main_MSG_VFS_DONT_CONS_DL 64795
|
||||||
#define main_MSG_MIN 64895
|
#define main_MSG_VFS_DONT_CONS_DL_MASK 64796
|
||||||
#define main_MSG_SINGLE_INSTANCE 64896
|
#define main_MSG_VFS_INHERITED 64797
|
||||||
#define main_MSG_COMM_ERROR 64897
|
#define main_MSG_VFS_EXTERNAL 64798
|
||||||
#define main_MSG_DDNS_badauth 64898
|
#define main_MSG_CON_HINT 64799
|
||||||
#define main_MSG_DDNS_notfqdn 64899
|
#define main_VFS_ITEMS 64800
|
||||||
#define main_MSG_DDNS_nohost 64900
|
#define main_MSG_ITEM_EXISTS 64801
|
||||||
#define main_MSG_DDNS_notyours 64901
|
#define main_MSG_INSTALL_TPL 64802
|
||||||
#define main_MSG_DDNS_numhost 64902
|
#define main_MSG_FOLDER_UPLOAD 64803
|
||||||
#define main_MSG_DDNS_abuse 64903
|
#define main_MSG_VFS_DRAG_INVIT 64804
|
||||||
#define main_MSG_DDNS_dnserr 64904
|
#define main_MSG_VFS_URL 64805
|
||||||
#define main_MSG_DDNS_911 64905
|
#define main_MSG_VFS_PATH 64806
|
||||||
#define main_MSG_DDNS_notdonator 64906
|
#define main_MSG_VFS_SIZE 64807
|
||||||
#define main_MSG_DDNS_badagent 64907
|
#define main_MSG_VFS_DLS 64808
|
||||||
#define main_MSG_IP_MASK 64908
|
#define main_MSG_VFS_INVISIBLE 64809
|
||||||
#define main_MSG_IP_MASK_LONG 64909
|
#define main_MSG_VFS_DL_FORB 64810
|
||||||
#define main_MSG_KICK_ADDR 64910
|
#define main_MSG_VFS_DONT_LOG 64811
|
||||||
#define main_MSG_BREAK_DYN_DNS 64911
|
#define main_MSG_VFS_HIDE_EMPTY 64812
|
||||||
#define main_MSG_MAX_SIM_ADDR_DL 64912
|
#define main_MSG_VFS_NOT_BROW 64813
|
||||||
#define main_MSG_MAX_SIM_DL_SING 64913
|
#define main_MSG_VFS_HIDE_EMPTY_FLD 64814
|
||||||
#define main_MSG_MAX_SIM_DL 64914
|
#define main_MSG_VFS_HIDE_EXT 64815
|
||||||
#define main_MSG_SET_LIMIT 64915
|
#define main_MSG_CHK_UPD_FAIL 64816
|
||||||
#define main_MSG_UNPROTECTED_LINKS 64916
|
#define main_MSG_CHK_UPD_HEAD 64817
|
||||||
#define main_MSG_SAME_NAME 64917
|
#define main_MSG_CHK_UPD_VER 64818
|
||||||
#define main_MSG_OPTIONS_SAVED 64918
|
#define main_MSG_CHK_UPD_VER_EXT 64819
|
||||||
#define main_MSG_SOME_LOCKED 64919
|
#define main_MSG_CHK_UPD_NONE 64820
|
||||||
#define main_MSG_ITEM_LOCKED 64920
|
#define main_TO_CLIP 64821
|
||||||
#define main_MSG_INVALID_VALUE 64921
|
#define main_ALREADY_CLIP 64822
|
||||||
#define main_MSG_EMPTY_NO_LIMIT 64922
|
#define main_MSG_NO_SPACE 64823
|
||||||
#define main_MSG_ADDRESSES_EXCEED 64923
|
#define main_CONN 64824
|
||||||
#define main_MSG_NO_TEMP 64924
|
#define main_TOT_IN 64825
|
||||||
#define main_MSG_ERROR_REGISTRY 64925
|
#define main_TOT_OUT 64826
|
||||||
#define main_MSG_MANY_ITEMS 64926
|
#define main_OUT_SPEED 64827
|
||||||
#define main_MSG_ADD_TO_HFS 64927
|
#define main_IN_SPEED 64828
|
||||||
|
#define main_BANS 64829
|
||||||
|
#define main_MEMORY 64830
|
||||||
|
#define main_CUST_TPL 64831
|
||||||
|
#define main_AUTOSAVE 64832
|
||||||
|
#define main_SECONDS 64833
|
||||||
|
#define main_MSG_SPD_LIMIT_SING 64834
|
||||||
|
#define main_MSG_SPD_LIMIT 64835
|
||||||
|
#define main_MSG_AUTO_SAVE 64836
|
||||||
|
#define main_MSG_AUTO_SAVE_LONG 64837
|
||||||
|
#define main_MSG_MIN 64838
|
||||||
|
#define main_MSG_BAN 64839
|
||||||
|
#define main_MSG_CANT_SAVE_OPT 64840
|
||||||
|
#define main_MSG_UPD_SAVE_ERROR 64841
|
||||||
|
#define main_MSG_UPD_REQ_ONLY1 64842
|
||||||
|
#define main_MSG_UPD_WAIT 64843
|
||||||
|
#define main_MSG_UPD_DL 64844
|
||||||
|
#define main_MSG_UPDATE 64845
|
||||||
|
#define main_MSG_REQUESTING 64846
|
||||||
|
#define main_MSG_CHK_UPD 64847
|
||||||
|
#define main_MSG_LOG_UPL 64848
|
||||||
|
#define main_MSG_LOG_UPLOADED 64849
|
||||||
|
#define main_MSG_LOG_UPL_FAIL 64850
|
||||||
|
#define main_MSG_LOG_DL 64851
|
||||||
|
#define main_MSG_LOGIN_FAILED 64852
|
||||||
|
#define main_MSG_MIN_DISK_REACHED 64853
|
||||||
|
#define main_MSG_UPL_NAME_FORB 64854
|
||||||
|
#define main_MSG_UPL_CANT_CREATE 64855
|
||||||
|
#define main_FINGERPRINT 64856
|
||||||
|
#define main_NO_FINGERPRINT 64857
|
||||||
|
#define main_MSG_SAVE_VFS 64858
|
||||||
|
#define main_MSG_INP_COMMENT 64859
|
||||||
|
#define main_MSG_FILE_ADD_ABORT 64860
|
||||||
|
#define main_MSG_ADDING 64861
|
||||||
|
#define main_MSG_INV_FILENAME 64862
|
||||||
|
#define main_MSG_DELETE 64863
|
||||||
|
#define main_MSG_PORT_USED_BY 64864
|
||||||
|
#define main_MSG_PORT_BLOCKED 64865
|
||||||
|
#define main_MSG_KICK_ALL 64866
|
||||||
|
#define main_MSG_TPL_INCOMPATIBLE 64867
|
||||||
|
#define main_MSG_LOG_SERVER_START 64868
|
||||||
|
#define main_MSG_LOG_SERVER_STOP 64869
|
||||||
|
#define main_MSG_LOG_CONNECTED 64870
|
||||||
|
#define main_MSG_LOG_DISC_SRV 64871
|
||||||
|
#define main_MSG_LOG_DISC 64872
|
||||||
|
#define main_MSG_LOG_GOT 64873
|
||||||
|
#define main_MSG_LOG_BYTES_SENT 64874
|
||||||
|
#define main_MSG_LOG_SERVED 64875
|
||||||
|
#define main_MSG_LOG_HEAD 64876
|
||||||
|
#define main_MSG_LOG_NOT_MOD 64877
|
||||||
|
#define main_MSG_LOG_REDIR 64878
|
||||||
|
#define main_MSG_LOG_NOT_SERVED 64879
|
||||||
|
#define main_MSG_DDNS_nohost 64880
|
||||||
|
#define main_MSG_DDNS_notyours 64881
|
||||||
|
#define main_MSG_DDNS_numhost 64882
|
||||||
|
#define main_MSG_DDNS_abuse 64883
|
||||||
|
#define main_MSG_DDNS_dnserr 64884
|
||||||
|
#define main_MSG_DDNS_911 64885
|
||||||
|
#define main_MSG_DDNS_notdonator 64886
|
||||||
|
#define main_MSG_DDNS_badagent 64887
|
||||||
|
#define main_MSG_BAN_MASK 64888
|
||||||
|
#define main_MSG_IP_MASK_LONG 64889
|
||||||
|
#define main_MSG_KICK_ADDR 64890
|
||||||
|
#define main_MSG_BAN_ALREADY 64891
|
||||||
|
#define main_MSG_BAN_CMT 64892
|
||||||
|
#define main_MSG_BAN_CMT_LONG 64893
|
||||||
|
#define main_MSG_BREAK_DYN_DNS 64894
|
||||||
|
#define main_MSG_CANT_OPEN_PORT 64895
|
||||||
|
#define main_MSG_NO_TEMP 64896
|
||||||
|
#define main_MSG_ERROR_REGISTRY 64897
|
||||||
|
#define main_MSG_MANY_ITEMS 64898
|
||||||
|
#define main_MSG_ADD_TO_HFS 64899
|
||||||
|
#define main_MSG_SINGLE_INSTANCE 64900
|
||||||
|
#define main_MSG_COMM_ERROR 64901
|
||||||
|
#define main_MSG_DDNS_NO_REPLY 64902
|
||||||
|
#define main_MSG_DDNS_OK 64903
|
||||||
|
#define main_MSG_DDNS_UNK 64904
|
||||||
|
#define main_MSG_DDNS_ERR 64905
|
||||||
|
#define main_MSG_DDNS_REQ 64906
|
||||||
|
#define main_MSG_DDNS_DOING 64907
|
||||||
|
#define main_MSG_DDNS_FAIL 64908
|
||||||
|
#define main_MSG_DDNS_REPLY_SIZE 64909
|
||||||
|
#define main_MSG_DDNS_badauth 64910
|
||||||
|
#define main_MSG_DDNS_notfqdn 64911
|
||||||
|
#define main_MSG_MAX_SIM_ADDR 64912
|
||||||
|
#define main_MSG_MAX_SIM_ADDR_DL 64913
|
||||||
|
#define main_MSG_MAX_SIM_DL_SING 64914
|
||||||
|
#define main_MSG_MAX_SIM_DL 64915
|
||||||
|
#define main_MSG_SET_LIMIT 64916
|
||||||
|
#define main_MSG_UNPROTECTED_LINKS 64917
|
||||||
|
#define main_MSG_SAME_NAME 64918
|
||||||
|
#define main_MSG_CONTINUE 64919
|
||||||
|
#define main_MSG_PROCESSING 64920
|
||||||
|
#define main_MSG_SPEED_KBS 64921
|
||||||
|
#define main_MSG_OPTIONS_SAVED 64922
|
||||||
|
#define main_MSG_SOME_LOCKED 64923
|
||||||
|
#define main_MSG_ITEM_LOCKED 64924
|
||||||
|
#define main_MSG_INVALID_VALUE 64925
|
||||||
|
#define main_MSG_EMPTY_NO_LIMIT 64926
|
||||||
|
#define main_MSG_ADDRESSES_EXCEED 64927
|
||||||
#define JclResources_RsIntelCacheDescrF0 64928
|
#define JclResources_RsIntelCacheDescrF0 64928
|
||||||
#define JclResources_RsIntelCacheDescrF1 64929
|
#define JclResources_RsIntelCacheDescrF1 64929
|
||||||
#define JclResources_RsIntelCacheDescrFF 64930
|
#define JclResources_RsIntelCacheDescrFF 64930
|
||||||
@ -183,15 +282,15 @@
|
|||||||
#define JclResources_RsOSVersionWinServer2012 64932
|
#define JclResources_RsOSVersionWinServer2012 64932
|
||||||
#define JclResources_RsOSVersionWin81 64933
|
#define JclResources_RsOSVersionWin81 64933
|
||||||
#define JclResources_RsOSVersionWinServer2012R2 64934
|
#define JclResources_RsOSVersionWinServer2012R2 64934
|
||||||
#define main_S_PORT_LABEL 64935
|
#define optionsDlg_MSG_INVERT_BAN 64935
|
||||||
#define main_S_PORT_ANY 64936
|
#define main_S_PORT_LABEL 64936
|
||||||
#define main_DISABLED 64937
|
#define main_S_PORT_ANY 64937
|
||||||
#define main_S_OK 64938
|
#define main_DISABLED 64938
|
||||||
#define main_MSG_MENU_VAL 64939
|
#define main_S_OK 64939
|
||||||
#define main_MSG_DL_TIMEOUT 64940
|
#define main_MSG_MENU_VAL 64940
|
||||||
#define main_MSG_MAX_CON 64941
|
#define main_MSG_DL_TIMEOUT 64941
|
||||||
#define main_MSG_MAX_CON_SING 64942
|
#define main_MSG_MAX_CON 64942
|
||||||
#define main_MSG_MAX_SIM_ADDR 64943
|
#define main_MSG_MAX_CON_SING 64943
|
||||||
#define JclResources_RsIntelCacheDescrCA 64944
|
#define JclResources_RsIntelCacheDescrCA 64944
|
||||||
#define JclResources_RsIntelCacheDescrD0 64945
|
#define JclResources_RsIntelCacheDescrD0 64945
|
||||||
#define JclResources_RsIntelCacheDescrD1 64946
|
#define JclResources_RsIntelCacheDescrD1 64946
|
||||||
@ -791,17 +890,12 @@ BEGIN
|
|||||||
main_MSG_MAX_LINES, L"Max lines on screen."
|
main_MSG_MAX_LINES, L"Max lines on screen."
|
||||||
main_MSG_APACHE_LOG_FMT, L"Apache log file format"
|
main_MSG_APACHE_LOG_FMT, L"Apache log file format"
|
||||||
main_MSG_APACHE_LOG_FMT_LONG, L"Here you can specify how to format the log file complying Apache standard.\rLeave blank to get bare copy of screen on file.\r\rExample:\r %h %l %u %t \"%r\" %>s %b"
|
main_MSG_APACHE_LOG_FMT_LONG, L"Here you can specify how to format the log file complying Apache standard.\rLeave blank to get bare copy of screen on file.\r\rExample:\r %h %l %u %t \"%r\" %>s %b"
|
||||||
|
main_MSG_ICONS_ADDED, L"%d new icons added"
|
||||||
|
main_MSG_DDNS_DISABLED, L"Dynamic DNS updater disabled"
|
||||||
main_MSG_MD5_WARN, L"This option creates an .md5 file for every new calculated fingerprint.\rUse with care to get not your disk invaded by these files."
|
main_MSG_MD5_WARN, L"This option creates an .md5 file for every new calculated fingerprint.\rUse with care to get not your disk invaded by these files."
|
||||||
main_MSG_AUTO_MD5, L"Auto fingerprint"
|
main_MSG_AUTO_MD5, L"Auto fingerprint"
|
||||||
main_MSG_AUTO_MD5_LONG, L"When you add files and no fingerprint is found, it is calculated.\rTo avoid long waitings, set a limit to file size (in KiloBytes).\rLeave empty to disable, and have no fingerprint created."
|
main_MSG_AUTO_MD5_LONG, L"When you add files and no fingerprint is found, it is calculated.\rTo avoid long waitings, set a limit to file size (in KiloBytes).\rLeave empty to disable, and have no fingerprint created."
|
||||||
main_MSG_TEST_CANC, L"Test cancelled"
|
main_MSG_UPL_HOWTO, L"1. Add a folder (choose \"real folder\")\r\rYou should now see a RED folder in your virtual file sytem, inside HFS\r\r2. Right click on this folder\r3. Properties -> Permissions -> Upload\r4. Check on \"Anyone\"\r5. Ok\r\rNow anyone who has access to your HFS server can upload files to you."
|
||||||
main_MSG_TEST_INET, L"Testing internet connection..."
|
|
||||||
main_MSG_SELF_UNAV, L"Sorry, the test is unavailable at the moment"
|
|
||||||
main_MSG_SELF_NO_INET, L"Your internet connection does not work"
|
|
||||||
main_MSG_SELF_NO_ANSWER, L"The test failed: server does not answer."
|
|
||||||
main_MSG_OPEN_BROW, L"Open directly in browser"
|
|
||||||
main_MSG_OPEN_BROW_LONG, L"\"Suggest\" the browser to open directly the specified files.\rOther files should pop up a save dialog."
|
|
||||||
main_MSG_HIDE_PORT, L"You should not use this option unless you really know its meaning.\rContinue?"
|
|
||||||
main_MSG_EVENTS_HLP, L"For help on how to use this file please refer http://www.rejetto.com/wiki/?title=HFS:_Event_scripts"
|
main_MSG_EVENTS_HLP, L"For help on how to use this file please refer http://www.rejetto.com/wiki/?title=HFS:_Event_scripts"
|
||||||
main_MSG_EDIT_RES, L"Edit resource"
|
main_MSG_EDIT_RES, L"Edit resource"
|
||||||
main_MSG_TPL_USE_MACROS, L"The current template is using macros.\rDo you want to cancel this action?"
|
main_MSG_TPL_USE_MACROS, L"The current template is using macros.\rDo you want to cancel this action?"
|
||||||
@ -810,14 +904,14 @@ BEGIN
|
|||||||
main_S_ON, L"Switch ON"
|
main_S_ON, L"Switch ON"
|
||||||
main_LOG, L"Log"
|
main_LOG, L"Log"
|
||||||
main_MSG_RE_NOIP, L"You are invited to re-insert your No-IP configuration, otherwise the updater won't work as expected."
|
main_MSG_RE_NOIP, L"You are invited to re-insert your No-IP configuration, otherwise the updater won't work as expected."
|
||||||
main_MSG_HOST_FORM, L"Please, enter it in the FULL form, with dots"
|
main_MSG_TRAY_DEF, L"%ip%\rUptime: %uptime%\rDownloads: %downloads%"
|
||||||
main_MSG_MIN_SPACE, L"Min disk space"
|
main_MSG_CLEAN_START, L"Clean start"
|
||||||
main_MSG_MIN_SPACE_LONG, L"The upload will fail if your disk has less than the specified amount of free MegaBytes."
|
main_MSG_RESTORE_BAK, L"A file system backup has been created for a system shutdown.\rDo you want to restore this backup?"
|
||||||
main_MSG_REN_PART, L"Rename partial uploads"
|
main_MSG_EXT_ADDR_FAIL, L"Search for external address failed"
|
||||||
main_MSG_REN_PART_LONG, L"This string will be appended to the filename.\r\rIf you need more control, enter a string with %name% in it, and this symbol will be replaced by the original filename."
|
main_MSG_TO_EXPERT, L"Switch to expert mode."
|
||||||
main_MSG_SELF_BEFORE, L"Here you can test if your server does work on the Internet.\rIf you are not interested in serving files over the Internet, this is NOT for you.\r\rWe'll now perform a test involving network activity.\rIn order to complete this test, you may need to allow HFS's activity in your firewall, by clicking Allow on the warning prompt.\r\rWARNING: for the duration of the test, all ban rules and limits on the number of connections won't apply."
|
main_MSG_DONT_LOG_HINT, L"Select the files/folder you don't want to be logged,\rthen right click and select \"Don't log\"."
|
||||||
main_MSG_SELF_OK, L"The test is successful. The server should be working fine."
|
main_MSG_DL_PERC, L"Downloading %d%%"
|
||||||
main_MSG_SELF_OK_PORT, L"Port %s is not working, but another working port has been found and set: %s."
|
main_MSG_UNINSTALL_WARN, L"Delete HFS and all settings?"
|
||||||
main_MSG_SELF_3, L"You may be behind a router or firewall."
|
main_MSG_SELF_3, L"You may be behind a router or firewall."
|
||||||
main_MSG_SELF_6, L"You are behind a router.\rEnsure it is configured to forward port %s to your computer."
|
main_MSG_SELF_6, L"You are behind a router.\rEnsure it is configured to forward port %s to your computer."
|
||||||
main_MSG_SELF_7, L"You may be behind a firewall.\rEnsure nothing is blocking HFS."
|
main_MSG_SELF_7, L"You may be behind a firewall.\rEnsure nothing is blocking HFS."
|
||||||
@ -826,14 +920,14 @@ BEGIN
|
|||||||
main_MSG_SELF_CANT_LIST, L"Self test cannot be performed because HFS was configured to accept connections only on 127.0.0.1"
|
main_MSG_SELF_CANT_LIST, L"Self test cannot be performed because HFS was configured to accept connections only on 127.0.0.1"
|
||||||
main_MSG_SELF_CANT_S, L"Self test doesn't support HTTPS.\rIt's likely it won't work."
|
main_MSG_SELF_CANT_S, L"Self test doesn't support HTTPS.\rIt's likely it won't work."
|
||||||
main_MSG_SELF_ING, L"Self testing..."
|
main_MSG_SELF_ING, L"Self testing..."
|
||||||
main_MSG_CHANGES_LOST, L"All changes will be lost\rContinue?"
|
main_MSG_TEST_CANC, L"Test cancelled"
|
||||||
main_MSG_FLAG_NEW, L"Flag new files"
|
main_MSG_TEST_INET, L"Testing internet connection..."
|
||||||
main_MSG_FLAG_NEW_LONG, L"Enter the number of MINUTES files stay flagged from their addition.\rLeave blank to disable."
|
main_MSG_SELF_UNAV, L"Sorry, the test is unavailable at the moment"
|
||||||
main_MSG_DONT_LOG_MASK, L"Do not log address"
|
main_MSG_SELF_NO_INET, L"Your internet connection does not work"
|
||||||
main_MSG_DONT_LOG_MASK_LONG, L"Any event from the following IP address mask will be not logged."
|
main_MSG_SELF_NO_ANSWER, L"The test failed: server does not answer."
|
||||||
main_MSG_CUST_IP, L"Custom IP addresses"
|
main_MSG_OPEN_BROW, L"Open directly in browser"
|
||||||
main_MSG_CUST_IP_LONG, L"Specify your addresses, each per line"
|
main_MSG_OPEN_BROW_LONG, L"\"Suggest\" the browser to open directly the specified files.\rOther files should pop up a save dialog."
|
||||||
main_MSG_NO_EXT_IP, L"Can't find external address\r( %s )"
|
main_MSG_HIDE_PORT, L"You should not use this option unless you really know its meaning.\rContinue?"
|
||||||
main_MSG_RESET_TOT, L"Do you want to reset total in/out?"
|
main_MSG_RESET_TOT, L"Do you want to reset total in/out?"
|
||||||
main_MSG_DISAB_FIND_EXT, L"This option makes pointless the option \"Find external address at startup\", which has now been disabled for your convenience."
|
main_MSG_DISAB_FIND_EXT, L"This option makes pointless the option \"Find external address at startup\", which has now been disabled for your convenience."
|
||||||
main_MSG_ENT_URL, L"Enter URL"
|
main_MSG_ENT_URL, L"Enter URL"
|
||||||
@ -842,14 +936,14 @@ BEGIN
|
|||||||
main_MSG_ENT_PWD, L"Enter password"
|
main_MSG_ENT_PWD, L"Enter password"
|
||||||
main_MSG_ENT_HOST, L"Enter host"
|
main_MSG_ENT_HOST, L"Enter host"
|
||||||
main_MSG_ENT_HOST_LONG, L"Enter domain (full form!)"
|
main_MSG_ENT_HOST_LONG, L"Enter domain (full form!)"
|
||||||
main_MSG_UPD_INFO, L"Last stable version: %s\r\rLast untested version: %s\r"
|
main_MSG_HOST_FORM, L"Please, enter it in the FULL form, with dots"
|
||||||
main_MSG_NEWER, L"There's a new version available online: %s"
|
main_MSG_MIN_SPACE, L"Min disk space"
|
||||||
main_MSG_SRC_UPD, L"Searching for updates..."
|
main_MSG_MIN_SPACE_LONG, L"The upload will fail if your disk has less than the specified amount of free MegaBytes."
|
||||||
main_ARE_EXPERT, L"You are in Expert mode"
|
main_MSG_REN_PART, L"Rename partial uploads"
|
||||||
main_ARE_EASY, L"You are in Easy mode"
|
main_MSG_REN_PART_LONG, L"This string will be appended to the filename.\r\rIf you need more control, enter a string with %name% in it, and this symbol will be replaced by the original filename."
|
||||||
main_SW2EXPERT, L"Switch to Expert mode"
|
main_MSG_SELF_BEFORE, L"Here you can test if your server does work on the Internet.\rIf you are not interested in serving files over the Internet, this is NOT for you.\r\rWe'll now perform a test involving network activity.\rIn order to complete this test, you may need to allow HFS's activity in your firewall, by clicking Allow on the warning prompt.\r\rWARNING: for the duration of the test, all ban rules and limits on the number of connections won't apply."
|
||||||
main_SW2EASY, L"Switch to Easy mode"
|
main_MSG_SELF_OK, L"The test is successful. The server should be working fine."
|
||||||
main_MSG_DL_TIMEOUT_LONG, L"Enter the number of MINUTES with no download after which the program automatically shuts down.\rLeave blank to get no timeout."
|
main_MSG_SELF_OK_PORT, L"Port %s is not working, but another working port has been found and set: %s."
|
||||||
main_MSG_LOG_FILE, L"Log file"
|
main_MSG_LOG_FILE, L"Log file"
|
||||||
main_MSG_LOG_FILE_LONG, L"This function does not save any previous information to the log file.\rInstead, it saves all information that appears in the log box in real-time (from when you click \"OK\", below).\rSpecify a filename for the log.\rIf you leave the filename blank, no log file is saved.\r\rHere are some symbols you can use in the filename to split the log:\r %d% -- day of the month (1..31)\r %m% -- month (1..12)\r %y% -- year (2000..)\r %dow% -- day of the week (0..6)\r %w% -- week of the year (1..53)\r %user% -- username surrounded by parenthesis"
|
main_MSG_LOG_FILE_LONG, L"This function does not save any previous information to the log file.\rInstead, it saves all information that appears in the log box in real-time (from when you click \"OK\", below).\rSpecify a filename for the log.\rIf you leave the filename blank, no log file is saved.\r\rHere are some symbols you can use in the filename to split the log:\r %d% -- day of the month (1..31)\r %m% -- month (1..12)\r %y% -- year (2000..)\r %dow% -- day of the week (0..6)\r %w% -- week of the year (1..53)\r %user% -- username surrounded by parenthesis"
|
||||||
main_MSG_SET_URL, L"Set URL"
|
main_MSG_SET_URL, L"Set URL"
|
||||||
@ -858,14 +952,14 @@ BEGIN
|
|||||||
main_MSG_REALM_LONG, L"The realm string is shown on the user/pass dialog of the browser.\rHere you can customize the realm for the login button"
|
main_MSG_REALM_LONG, L"The realm string is shown on the user/pass dialog of the browser.\rHere you can customize the realm for the login button"
|
||||||
main_MSG_INACT_TIMEOUT, L"Connection inactivity timeout"
|
main_MSG_INACT_TIMEOUT, L"Connection inactivity timeout"
|
||||||
main_MSG_INACT_TIMEOUT_LONG, L"The connection is kicked after a timeout.\rSpecify in seconds.\rLeave blank to get no timeout."
|
main_MSG_INACT_TIMEOUT_LONG, L"The connection is kicked after a timeout.\rSpecify in seconds.\rLeave blank to get no timeout."
|
||||||
main_MSG_MAX_BW_1, L"Max bandwidth for single address (KB/s)."
|
main_MSG_CHANGES_LOST, L"All changes will be lost\rContinue?"
|
||||||
main_MSG_GRAPH_RATE_MENU, L"Graph refresh rate: %d (tenths of second)"
|
main_MSG_FLAG_NEW, L"Flag new files"
|
||||||
main_MSG_MAX_SIM, L"Max simultaneous connections to serve.\rMost people don't know this function well, and have problems. If you are unsure, please use the \"Max simultaneous downloads\"."
|
main_MSG_FLAG_NEW_LONG, L"Enter the number of MINUTES files stay flagged from their addition.\rLeave blank to disable."
|
||||||
main_MSG_WARN_CONN, L"In this moment there are %d active connections"
|
main_MSG_DONT_LOG_MASK, L"Do not log address"
|
||||||
main_MSG_WARN_ACT_DL, L"In this moment there are %d active downloads"
|
main_MSG_DONT_LOG_MASK_LONG, L"Any event from the following IP address mask will be not logged."
|
||||||
main_MSG_MAX_SIM_SING, L"Max simultaneous connections to accept from a single IP address.\rMost people don't know this function well, and have problems. If you are unsure, please use the \"Max simultaneous downloads from a single IP address\"."
|
main_MSG_CUST_IP, L"Custom IP addresses"
|
||||||
main_MSG_MAX_SIM_DL_SING, L"Max simultaneous downloads from a single IP address."
|
main_MSG_CUST_IP_LONG, L"Specify your addresses, each per line"
|
||||||
main_MSG_GRAPH_RATE, L"Graph refresh rate"
|
main_MSG_NO_EXT_IP, L"Can't find external address\r( %s )"
|
||||||
main_MSG_TENTH_SEC, L"Tenths of second"
|
main_MSG_TENTH_SEC, L"Tenths of second"
|
||||||
main_MSG_LOADING_VFS, L"Loading VFS"
|
main_MSG_LOADING_VFS, L"Loading VFS"
|
||||||
main_MSG_VFS_OLD, L"This file is old and uses different settings.\rThe \"let browse\" folder option will be reset.\rRe-saving the file will update its format."
|
main_MSG_VFS_OLD, L"This file is old and uses different settings.\rThe \"let browse\" folder option will be reset.\rRe-saving the file will update its format."
|
||||||
@ -874,30 +968,83 @@ BEGIN
|
|||||||
main_MSG_AUTO_DISABLED, L"Because of the problems encountered in loading,\rautomatic saving has been disabled\runtil you save manually or load another one."
|
main_MSG_AUTO_DISABLED, L"Because of the problems encountered in loading,\rautomatic saving has been disabled\runtil you save manually or load another one."
|
||||||
main_MSG_CORRUPTED, L"This file does not contain valid data."
|
main_MSG_CORRUPTED, L"This file does not contain valid data."
|
||||||
main_MSG_MACROS_FOUND, L"!!!!!!!!! DANGER !!!!!!!!!\rThis file contains macros.\rDon't accept macros from people you don't trust.\r\rTrust this file?"
|
main_MSG_MACROS_FOUND, L"!!!!!!!!! DANGER !!!!!!!!!\rThis file contains macros.\rDon't accept macros from people you don't trust.\r\rTrust this file?"
|
||||||
main_BANS, L"Ban rules: %d"
|
main_MSG_UPD_INFO, L"Last stable version: %s\r\rLast untested version: %s\r"
|
||||||
main_MEMORY, L"Mem"
|
main_MSG_NEWER, L"There's a new version available online: %s"
|
||||||
main_CUST_TPL, L"Customized template"
|
main_MSG_SRC_UPD, L"Searching for updates..."
|
||||||
main_VFS_ITEMS, L"VFS: %d items"
|
main_ARE_EXPERT, L"You are in Expert mode"
|
||||||
main_MSG_ITEM_EXISTS, L"%s item(s) already exists:\r%s\r\rContinue?"
|
main_ARE_EASY, L"You are in Easy mode"
|
||||||
|
main_SW2EXPERT, L"Switch to Expert mode"
|
||||||
|
main_SW2EASY, L"Switch to Easy mode"
|
||||||
|
main_MSG_DL_TIMEOUT_LONG, L"Enter the number of MINUTES with no download after which the program automatically shuts down.\rLeave blank to get no timeout."
|
||||||
|
main_MSG_ZLIB, L"This file is corrupted (ZLIB)."
|
||||||
|
main_MSG_BAKAVAILABLE, L"This file is corrupted but a backup is available.\rContinue with backup?"
|
||||||
|
main_MSG_CANT_LOAD_SAVE, L"Cannot load or save while adding files"
|
||||||
|
main_MSG_OPEN_VFS, L"Open VFS file"
|
||||||
|
main_LIMIT, L"Limit"
|
||||||
|
main_TOP_SPEED, L"Top speed"
|
||||||
|
main_MSG_MAX_BW, L"Max bandwidth (KB/s)."
|
||||||
|
main_MSG_LIM0, L"Zero is an effective limit.\rTo disable instead, leave empty."
|
||||||
|
main_MSG_MAX_BW_1, L"Max bandwidth for single address (KB/s)."
|
||||||
|
main_MSG_GRAPH_RATE_MENU, L"Graph refresh rate: %d (tenths of second)"
|
||||||
|
main_MSG_MAX_SIM, L"Max simultaneous connections to serve.\rMost people don't know this function well, and have problems. If you are unsure, please use the \"Max simultaneous downloads\"."
|
||||||
|
main_MSG_WARN_CONN, L"In this moment there are %d active connections"
|
||||||
|
main_MSG_WARN_ACT_DL, L"In this moment there are %d active downloads"
|
||||||
|
main_MSG_MAX_SIM_SING, L"Max simultaneous connections to accept from a single IP address.\rMost people don't know this function well, and have problems. If you are unsure, please use the \"Max simultaneous downloads from a single IP address\"."
|
||||||
|
main_MSG_MAX_SIM_DL_SING, L"Max simultaneous downloads from a single IP address."
|
||||||
|
main_MSG_GRAPH_RATE, L"Graph refresh rate"
|
||||||
|
main_MSG_CON_STATE_IDLE, L"idle"
|
||||||
|
main_MSG_CON_STATE_REQ, L"requesting"
|
||||||
|
main_MSG_CON_STATE_RCV, L"receiving"
|
||||||
|
main_MSG_CON_STATE_THINK, L"thinking"
|
||||||
|
main_MSG_CON_STATE_REP, L"replying"
|
||||||
|
main_MSG_CON_STATE_SEND, L"sending"
|
||||||
|
main_MSG_CON_STATE_DISC, L"disconnected"
|
||||||
|
main_MSG_CON_PAUSED, L"paused"
|
||||||
|
main_MSG_CON_SENT, L"%s / %s sent"
|
||||||
|
main_MSG_CON_RECEIVED, L"%s / %s received"
|
||||||
|
main_MSG_TPL_RESET, L"The template has been reset"
|
||||||
main_MSG_ALLO_REF, L"Allowed referer"
|
main_MSG_ALLO_REF, L"Allowed referer"
|
||||||
main_MSG_ALLO_REF_LONG, L"Leave empty to disable this feature.\rHere you can specify a mask.\rWhen a file is requested, if the mask doesn't match the \"Referer\" HTTP field, the request is rejected."
|
main_MSG_ALLO_REF_LONG, L"Leave empty to disable this feature.\rHere you can specify a mask.\rWhen a file is requested, if the mask doesn't match the \"Referer\" HTTP field, the request is rejected."
|
||||||
main_MSG_BETTERSTOP, L"\rGoing on may lead to problems.\rIt is adviced to stop loading.\rStop?"
|
main_MSG_BETTERSTOP, L"\rGoing on may lead to problems.\rIt is adviced to stop loading.\rStop?"
|
||||||
main_MSG_BADCRC, L"This file is corrupted (CRC)."
|
main_MSG_BADCRC, L"This file is corrupted (CRC)."
|
||||||
main_MSG_NEWER, L"This file has been created with a newer and incompatible version."
|
main_MSG_NEWER, L"This file has been created with a newer and incompatible version."
|
||||||
main_MSG_ZLIB, L"This file is corrupted (ZLIB)."
|
main_MSG_VFS_ARCABLE, L"Archivable"
|
||||||
main_MSG_BAKAVAILABLE, L"This file is corrupted but a backup is available.\rContinue with backup?"
|
main_MSG_VFS_DEF_MASK, L"Default file mask: %s"
|
||||||
main_LIMIT, L"Limit"
|
main_MSG_VFS_ACCESS, L"Access for"
|
||||||
main_TOP_SPEED, L"Top speed"
|
main_MSG_VFS_UPLOAD, L"Upload allowed for"
|
||||||
main_MSG_MAX_BW, L"Max bandwidth (KB/s)."
|
main_MSG_VFS_DELETE, L"Delete allowed for"
|
||||||
main_MSG_LIM0, L"Zero is an effective limit.\rTo disable instead, leave empty."
|
main_MSG_VFS_COMMENT, L"Comment: %s"
|
||||||
main_MSG_BAN, L"Your ban configuration may have been screwed up.\rPlease verify it."
|
main_MSG_VFS_REALM, L"Realm: %s"
|
||||||
main_MSG_CANT_SAVE_OPT, L"Can't save options there.\rShould I try to save to user registry?"
|
main_MSG_VFS_DIFF_TPL, L"Diff template: %s"
|
||||||
main_MSG_UPD_SAVE_ERROR, L"Cannot save the update"
|
main_MSG_VFS_FILES_FLT, L"Files filter: %s"
|
||||||
main_MSG_UPD_REQ_ONLY1, L"The auto-update feature cannot work because it requires the \"Only 1 instance\" option enabled.\r\rYour browser will now be pointed to the update, so you can install it manually."
|
main_MSG_VFS_FLD_FLT, L"Folders filter: %s"
|
||||||
main_MSG_UPDATE, L"You are invited to use the new version.\r\rUpdate now?"
|
main_MSG_VFS_UPL_FLT, L"Upload filter: %s"
|
||||||
main_MSG_REQUESTING, L"Requesting..."
|
main_MSG_VFS_DONT_CONS_DL, L"Don't consider as download"
|
||||||
main_MSG_CHK_UPD, L"Checking for updates"
|
main_MSG_VFS_DONT_CONS_DL_MASK, L"Don't consider as download (mask): %s"
|
||||||
|
main_MSG_VFS_INHERITED, L" [inherited]"
|
||||||
|
main_MSG_VFS_EXTERNAL, L" [external]"
|
||||||
|
main_MSG_CON_HINT, L"Connection time: %s\rLast request time: %s\rAgent: %s"
|
||||||
|
main_VFS_ITEMS, L"VFS: %d items"
|
||||||
|
main_MSG_ITEM_EXISTS, L"%s item(s) already exists:\r%s\r\rContinue?"
|
||||||
|
main_MSG_INSTALL_TPL, L"Install this template?"
|
||||||
|
main_MSG_FOLDER_UPLOAD, L"Do you want ANYONE to be able to upload to this folder?"
|
||||||
|
main_MSG_VFS_DRAG_INVIT, L"Drag your files here"
|
||||||
|
main_MSG_VFS_URL, L"URL: %s"
|
||||||
|
main_MSG_VFS_PATH, L"Path: %s"
|
||||||
|
main_MSG_VFS_SIZE, L"Size: %s"
|
||||||
|
main_MSG_VFS_DLS, L"Downloads: %s"
|
||||||
|
main_MSG_VFS_INVISIBLE, L"Invisible"
|
||||||
|
main_MSG_VFS_DL_FORB, L"Download forbidden"
|
||||||
|
main_MSG_VFS_DONT_LOG, L"Don't log"
|
||||||
|
main_MSG_VFS_HIDE_EMPTY, L"Hidden if empty"
|
||||||
|
main_MSG_VFS_NOT_BROW, L"Not browsable"
|
||||||
|
main_MSG_VFS_HIDE_EMPTY_FLD, L"Hide empty folders"
|
||||||
|
main_MSG_VFS_HIDE_EXT, L"Hide extention"
|
||||||
main_MSG_CHK_UPD_FAIL, L"Check update: failed"
|
main_MSG_CHK_UPD_FAIL, L"Check update: failed"
|
||||||
|
main_MSG_CHK_UPD_HEAD, L"Check update: "
|
||||||
|
main_MSG_CHK_UPD_VER, L"new version found: %s"
|
||||||
|
main_MSG_CHK_UPD_VER_EXT, L"Build #%s (current is #%s)"
|
||||||
|
main_MSG_CHK_UPD_NONE, L"no new version"
|
||||||
main_TO_CLIP, L"Copy to clipboard"
|
main_TO_CLIP, L"Copy to clipboard"
|
||||||
main_ALREADY_CLIP, L"Already in clipboard"
|
main_ALREADY_CLIP, L"Already in clipboard"
|
||||||
main_MSG_NO_SPACE, L"Out of space"
|
main_MSG_NO_SPACE, L"Out of space"
|
||||||
@ -906,15 +1053,9 @@ BEGIN
|
|||||||
main_TOT_OUT, L"Total Out: %s"
|
main_TOT_OUT, L"Total Out: %s"
|
||||||
main_OUT_SPEED, L"Out: %.1f KB/s"
|
main_OUT_SPEED, L"Out: %.1f KB/s"
|
||||||
main_IN_SPEED, L"In: %.1f KB/s"
|
main_IN_SPEED, L"In: %.1f KB/s"
|
||||||
main_MSG_CANT_OPEN_PORT, L"Cannot open port."
|
main_BANS, L"Ban rules: %d"
|
||||||
main_MSG_PORT_USED_BY, L"It is already used by %s"
|
main_MEMORY, L"Mem"
|
||||||
main_MSG_PORT_BLOCKED, L"Something is blocking, maybe your system firewall."
|
main_CUST_TPL, L"Customized template"
|
||||||
main_MSG_KICK_ALL, L"There are %d connections open.\rDo you want to close them now?"
|
|
||||||
main_MSG_TPL_INCOMPATIBLE, L"The template you are trying to load is not compatible with current HFS version.\rHFS will now use default template.\rAsk on the forum if you need further help."
|
|
||||||
main_MSG_LOGIN_FAILED, L"Login failed"
|
|
||||||
main_FINGERPRINT, L"Create fingerprint on addition under %d KB"
|
|
||||||
main_NO_FINGERPRINT, L"Create fingerprint on addition: disabled"
|
|
||||||
main_MSG_INP_COMMENT, L"Please insert a comment for \"%s\".\rYou should use HTML: <br> for break line."
|
|
||||||
main_AUTOSAVE, L"Auto save every: "
|
main_AUTOSAVE, L"Auto save every: "
|
||||||
main_SECONDS, L"%d seconds"
|
main_SECONDS, L"%d seconds"
|
||||||
main_MSG_SPD_LIMIT_SING, L"Speed limit for single address"
|
main_MSG_SPD_LIMIT_SING, L"Speed limit for single address"
|
||||||
@ -922,10 +1063,47 @@ BEGIN
|
|||||||
main_MSG_AUTO_SAVE, L"Auto-save %s"
|
main_MSG_AUTO_SAVE, L"Auto-save %s"
|
||||||
main_MSG_AUTO_SAVE_LONG, L"Auto-save %s.\rSpecify in seconds.\rLeave blank to disable."
|
main_MSG_AUTO_SAVE_LONG, L"Auto-save %s.\rSpecify in seconds.\rLeave blank to disable."
|
||||||
main_MSG_MIN, L"We don't accept less than %d"
|
main_MSG_MIN, L"We don't accept less than %d"
|
||||||
main_MSG_SINGLE_INSTANCE, L"Sorry, this feature only works with the \"Only 1 instance\" option enabled.\r\rYou can find this option under Menu -> Start/Exit\r(only in expert mode)"
|
main_MSG_BAN, L"Your ban configuration may have been screwed up.\rPlease verify it."
|
||||||
main_MSG_COMM_ERROR, L"Network error. Request failed."
|
main_MSG_CANT_SAVE_OPT, L"Can't save options there.\rShould I try to save to user registry?"
|
||||||
main_MSG_DDNS_badauth, L"invalid user/password"
|
main_MSG_UPD_SAVE_ERROR, L"Cannot save the update"
|
||||||
main_MSG_DDNS_notfqdn, L"incomplete hostname, required form aaa.bbb.com"
|
main_MSG_UPD_REQ_ONLY1, L"The auto-update feature cannot work because it requires the \"Only 1 instance\" option enabled.\r\rYour browser will now be pointed to the update, so you can install it manually."
|
||||||
|
main_MSG_UPD_WAIT, L"Waiting for last requests to be served, then we'll update"
|
||||||
|
main_MSG_UPD_DL, L"Downloading new version..."
|
||||||
|
main_MSG_UPDATE, L"You are invited to use the new version.\r\rUpdate now?"
|
||||||
|
main_MSG_REQUESTING, L"Requesting..."
|
||||||
|
main_MSG_CHK_UPD, L"Checking for updates"
|
||||||
|
main_MSG_LOG_UPL, L"Uploading %s"
|
||||||
|
main_MSG_LOG_UPLOADED, L"Fully uploaded %s - %s @ %sB/s"
|
||||||
|
main_MSG_LOG_UPL_FAIL, L"Upload failed %s"
|
||||||
|
main_MSG_LOG_DL, L"Fully downloaded - %s @ %sB/s - %s"
|
||||||
|
main_MSG_LOGIN_FAILED, L"Login failed"
|
||||||
|
main_MSG_MIN_DISK_REACHED, L"Minimum disk space reached."
|
||||||
|
main_MSG_UPL_NAME_FORB, L"File name or extension forbidden."
|
||||||
|
main_MSG_UPL_CANT_CREATE, L"Error creating file."
|
||||||
|
main_FINGERPRINT, L"Create fingerprint on addition under %d KB"
|
||||||
|
main_NO_FINGERPRINT, L"Create fingerprint on addition: disabled"
|
||||||
|
main_MSG_SAVE_VFS, L"Your current file system is not saved.\rSave it?"
|
||||||
|
main_MSG_INP_COMMENT, L"Please insert a comment for \"%s\".\rYou should use HTML: <br> for break line."
|
||||||
|
main_MSG_FILE_ADD_ABORT, L"File addition was aborted.\rThe list of files is incomplete."
|
||||||
|
main_MSG_ADDING, L"Adding item #%d"
|
||||||
|
main_MSG_INV_FILENAME, L"Invalid filename"
|
||||||
|
main_MSG_DELETE, L"Delete?"
|
||||||
|
main_MSG_PORT_USED_BY, L"It is already used by %s"
|
||||||
|
main_MSG_PORT_BLOCKED, L"Something is blocking, maybe your system firewall."
|
||||||
|
main_MSG_KICK_ALL, L"There are %d connections open.\rDo you want to close them now?"
|
||||||
|
main_MSG_TPL_INCOMPATIBLE, L"The template you are trying to load is not compatible with current HFS version.\rHFS will now use default template.\rAsk on the forum if you need further help."
|
||||||
|
main_MSG_LOG_SERVER_START, L"Server start"
|
||||||
|
main_MSG_LOG_SERVER_STOP, L"Server stop"
|
||||||
|
main_MSG_LOG_CONNECTED, L"Connected"
|
||||||
|
main_MSG_LOG_DISC_SRV, L"Disconnected by server"
|
||||||
|
main_MSG_LOG_DISC, L"Disconnected"
|
||||||
|
main_MSG_LOG_GOT, L"Got %d bytes"
|
||||||
|
main_MSG_LOG_BYTES_SENT, L"%s bytes sent"
|
||||||
|
main_MSG_LOG_SERVED, L"Served %s"
|
||||||
|
main_MSG_LOG_HEAD, L"Served head"
|
||||||
|
main_MSG_LOG_NOT_MOD, L"Not modified, use cache"
|
||||||
|
main_MSG_LOG_REDIR, L"Redirected to %s"
|
||||||
|
main_MSG_LOG_NOT_SERVED, L"Not served: %d - %s"
|
||||||
main_MSG_DDNS_nohost, L"specified hostname does not exist"
|
main_MSG_DDNS_nohost, L"specified hostname does not exist"
|
||||||
main_MSG_DDNS_notyours, L"specified hostname belongs to another username"
|
main_MSG_DDNS_notyours, L"specified hostname belongs to another username"
|
||||||
main_MSG_DDNS_numhost, L"too many or too few hosts found"
|
main_MSG_DDNS_numhost, L"too many or too few hosts found"
|
||||||
@ -934,26 +1112,46 @@ BEGIN
|
|||||||
main_MSG_DDNS_911, L"server error"
|
main_MSG_DDNS_911, L"server error"
|
||||||
main_MSG_DDNS_notdonator, L"an option specified requires payment"
|
main_MSG_DDNS_notdonator, L"an option specified requires payment"
|
||||||
main_MSG_DDNS_badagent, L"banned client"
|
main_MSG_DDNS_badagent, L"banned client"
|
||||||
main_MSG_IP_MASK, L"IP mask"
|
main_MSG_BAN_MASK, L"Ban IP mask"
|
||||||
main_MSG_IP_MASK_LONG, L"You can edit the address.\rMasks and ranges are allowed."
|
main_MSG_IP_MASK_LONG, L"You can edit the address.\rMasks and ranges are allowed."
|
||||||
main_MSG_KICK_ADDR, L"There are %d open connections from this address.\rDo you want to kick them all now?"
|
main_MSG_KICK_ADDR, L"There are %d open connections from this address.\rDo you want to kick them all now?"
|
||||||
|
main_MSG_BAN_ALREADY, L"This IP address is already banned"
|
||||||
|
main_MSG_BAN_CMT, L"Ban comment"
|
||||||
|
main_MSG_BAN_CMT_LONG, L"A comment for this ban..."
|
||||||
main_MSG_BREAK_DYN_DNS, L"This option is NOT compatible with \"dynamic dns updater\".\rContinue?"
|
main_MSG_BREAK_DYN_DNS, L"This option is NOT compatible with \"dynamic dns updater\".\rContinue?"
|
||||||
|
main_MSG_CANT_OPEN_PORT, L"Cannot open port."
|
||||||
|
main_MSG_NO_TEMP, L"Cannot save temporary file"
|
||||||
|
main_MSG_ERROR_REGISTRY, L"Can't write to registry.\rYou may lack necessary rights."
|
||||||
|
main_MSG_MANY_ITEMS, L"You are putting many files.\rTry using real folders instead of virtual folders.\rRead documentation or ask on the forum for help."
|
||||||
|
main_MSG_ADD_TO_HFS, L"\"Add to HFS\" has been added to your Window's Explorer right-click menu."
|
||||||
|
main_MSG_SINGLE_INSTANCE, L"Sorry, this feature only works with the \"Only 1 instance\" option enabled.\r\rYou can find this option under Menu -> Start/Exit\r(only in expert mode)"
|
||||||
|
main_MSG_COMM_ERROR, L"Network error. Request failed."
|
||||||
|
main_MSG_DDNS_NO_REPLY, L"no reply"
|
||||||
|
main_MSG_DDNS_OK, L"successful"
|
||||||
|
main_MSG_DDNS_UNK, L"unknown reply: %s"
|
||||||
|
main_MSG_DDNS_ERR, L"error: %s"
|
||||||
|
main_MSG_DDNS_REQ, L"DNS update requested for %s: %s"
|
||||||
|
main_MSG_DDNS_DOING, L"Updating dynamic DNS..."
|
||||||
|
main_MSG_DDNS_FAIL, L"DNS update failed: %s\rUser intervention is required."
|
||||||
|
main_MSG_DDNS_REPLY_SIZE, L"%d bytes reply"
|
||||||
|
main_MSG_DDNS_badauth, L"invalid user/password"
|
||||||
|
main_MSG_DDNS_notfqdn, L"incomplete hostname, required form aaa.bbb.com"
|
||||||
|
main_MSG_MAX_SIM_ADDR, L"Max simultaneous addresses"
|
||||||
main_MSG_MAX_SIM_ADDR_DL, L"Max simultaneous addresses downloading"
|
main_MSG_MAX_SIM_ADDR_DL, L"Max simultaneous addresses downloading"
|
||||||
main_MSG_MAX_SIM_DL_SING, L"Max simultaneous downloads from single address"
|
main_MSG_MAX_SIM_DL_SING, L"Max simultaneous downloads from single address"
|
||||||
main_MSG_MAX_SIM_DL, L"Max simultaneous downloads"
|
main_MSG_MAX_SIM_DL, L"Max simultaneous downloads"
|
||||||
main_MSG_SET_LIMIT, L"Set limit"
|
main_MSG_SET_LIMIT, L"Set limit"
|
||||||
main_MSG_UNPROTECTED_LINKS, L"Links are NOT actually protected.\rThe feature is there to be used with the \"list protected items only...\" option.\rContinue?"
|
main_MSG_UNPROTECTED_LINKS, L"Links are NOT actually protected.\rThe feature is there to be used with the \"list protected items only...\" option.\rContinue?"
|
||||||
main_MSG_SAME_NAME, L"An item with the same name is already present in this folder.\rContinue?"
|
main_MSG_SAME_NAME, L"An item with the same name is already present in this folder.\rContinue?"
|
||||||
|
main_MSG_CONTINUE, L"Continue?"
|
||||||
|
main_MSG_PROCESSING, L"Processing..."
|
||||||
|
main_MSG_SPEED_KBS, L"%.1f kB/s"
|
||||||
main_MSG_OPTIONS_SAVED, L"Options saved"
|
main_MSG_OPTIONS_SAVED, L"Options saved"
|
||||||
main_MSG_SOME_LOCKED, L"Some items were not affected because locked"
|
main_MSG_SOME_LOCKED, L"Some items were not affected because locked"
|
||||||
main_MSG_ITEM_LOCKED, L"The item is locked"
|
main_MSG_ITEM_LOCKED, L"The item is locked"
|
||||||
main_MSG_INVALID_VALUE, L"Invalid value"
|
main_MSG_INVALID_VALUE, L"Invalid value"
|
||||||
main_MSG_EMPTY_NO_LIMIT, L"Leave blank to get no limits."
|
main_MSG_EMPTY_NO_LIMIT, L"Leave blank to get no limits."
|
||||||
main_MSG_ADDRESSES_EXCEED, L"The following addresses exceed the limit:\r%s"
|
main_MSG_ADDRESSES_EXCEED, L"The following addresses exceed the limit:\r%s"
|
||||||
main_MSG_NO_TEMP, L"Cannot save temporary file"
|
|
||||||
main_MSG_ERROR_REGISTRY, L"Can't write to registry.\rYou may lack necessary rights."
|
|
||||||
main_MSG_MANY_ITEMS, L"You are putting many files.\rTry using real folders instead of virtual folders.\rRead documentation or ask on the forum for help."
|
|
||||||
main_MSG_ADD_TO_HFS, L"\"Add to HFS\" has been added to your Window's Explorer right-click menu."
|
|
||||||
JclResources_RsIntelCacheDescrF0, L"64-Byte Prefetching"
|
JclResources_RsIntelCacheDescrF0, L"64-Byte Prefetching"
|
||||||
JclResources_RsIntelCacheDescrF1, L"128-Byte Prefetching"
|
JclResources_RsIntelCacheDescrF1, L"128-Byte Prefetching"
|
||||||
JclResources_RsIntelCacheDescrFF, L"CPUID leaf 2 does not report cache descriptor information, use CPUID leaf 4 to query cache parameters"
|
JclResources_RsIntelCacheDescrFF, L"CPUID leaf 2 does not report cache descriptor information, use CPUID leaf 4 to query cache parameters"
|
||||||
@ -961,6 +1159,7 @@ BEGIN
|
|||||||
JclResources_RsOSVersionWinServer2012, L"Windows Server 2012"
|
JclResources_RsOSVersionWinServer2012, L"Windows Server 2012"
|
||||||
JclResources_RsOSVersionWin81, L"Windows 8.1"
|
JclResources_RsOSVersionWin81, L"Windows 8.1"
|
||||||
JclResources_RsOSVersionWinServer2012R2, L"Windows Server 2012 R2"
|
JclResources_RsOSVersionWinServer2012R2, L"Windows Server 2012 R2"
|
||||||
|
optionsDlg_MSG_INVERT_BAN, L"Normal behavior of the Ban is to prevent access to the addresses you specify (also called black-list).\rIf you want the opposite, to allow the addresses that you specify (white-list), enter all addresses in a single row preceded by a \\ character.\r\rLet say you want to allow all your 192.168 local network plus your office at 1.1.1.1.\rJust put this IP address mask: \\192.168.*;1.1.1.1\rThe opening \\ character inverts the logic, so everything else is banned.\r\rIf you want to know more about address masks, check the guide."
|
||||||
main_S_PORT_LABEL, L"Port: %s"
|
main_S_PORT_LABEL, L"Port: %s"
|
||||||
main_S_PORT_ANY, L"any"
|
main_S_PORT_ANY, L"any"
|
||||||
main_DISABLED, L"disabled"
|
main_DISABLED, L"disabled"
|
||||||
@ -969,7 +1168,6 @@ BEGIN
|
|||||||
main_MSG_DL_TIMEOUT, L"No downloads timeout"
|
main_MSG_DL_TIMEOUT, L"No downloads timeout"
|
||||||
main_MSG_MAX_CON, L"Max connections"
|
main_MSG_MAX_CON, L"Max connections"
|
||||||
main_MSG_MAX_CON_SING, L"Max connections from single address"
|
main_MSG_MAX_CON_SING, L"Max connections from single address"
|
||||||
main_MSG_MAX_SIM_ADDR, L"Max simultaneous addresses"
|
|
||||||
JclResources_RsIntelCacheDescrCA, L"Shared 2nd-Level TLB: 4 KByte pages, 4-way associative, 512 entries"
|
JclResources_RsIntelCacheDescrCA, L"Shared 2nd-Level TLB: 4 KByte pages, 4-way associative, 512 entries"
|
||||||
JclResources_RsIntelCacheDescrD0, L"3rd-level cache: 512 KByte, 4-way set associative, 64 byte line size"
|
JclResources_RsIntelCacheDescrD0, L"3rd-level cache: 512 KByte, 4-way set associative, 64 byte line size"
|
||||||
JclResources_RsIntelCacheDescrD1, L"3rd-level cache: 1 MByte, 4-way set associative, 64 byte line size"
|
JclResources_RsIntelCacheDescrD1, L"3rd-level cache: 1 MByte, 4-way set associative, 64 byte line size"
|
||||||
|
|||||||
455
hfs.lng
455
hfs.lng
@ -1,5 +1,5 @@
|
|||||||
; Kryvich's Delphi Localizer Language File.
|
; Kryvich's Delphi Localizer Language File.
|
||||||
; Generated by K.D.L. Scanner, 31/05/2020 23:26:47
|
; Generated by K.D.L. Scanner, 02/06/2020 14:12:28
|
||||||
|
|
||||||
Humanize=1
|
Humanize=1
|
||||||
HumanizedCR=\^
|
HumanizedCR=\^
|
||||||
@ -452,183 +452,282 @@ Panel1.Button1.Caption=&Yes
|
|||||||
Panel1.Button2.Caption=&No
|
Panel1.Button2.Caption=&No
|
||||||
|
|
||||||
[ResourceStrings]
|
[ResourceStrings]
|
||||||
64752_main_MSG_NUM_ADDR=In this moment there are %d different addresses
|
64656_main_MSG_NUM_ADDR=In this moment there are %d different addresses
|
||||||
64753_main_MSG_NUM_ADDR_DL=In this moment there are %d different addresses downloading
|
64657_main_MSG_NUM_ADDR_DL=In this moment there are %d different addresses downloading
|
||||||
64754_main_MSG_MAX_LINES=Max lines on screen.
|
64658_main_MSG_MAX_LINES=Max lines on screen.
|
||||||
64755_main_MSG_APACHE_LOG_FMT=Apache log file format
|
64659_main_MSG_APACHE_LOG_FMT=Apache log file format
|
||||||
64756_main_MSG_APACHE_LOG_FMT_LONG=Here you can specify how to format the log file complying Apache standard.\^Leave blank to get bare copy of screen on file.\^\^Example:\^ %h %l %u %t "%r" %>s %b
|
64660_main_MSG_APACHE_LOG_FMT_LONG=Here you can specify how to format the log file complying Apache standard.\^Leave blank to get bare copy of screen on file.\^\^Example:\^ %h %l %u %t "%r" %>s %b
|
||||||
64757_main_MSG_MD5_WARN=This option creates an .md5 file for every new calculated fingerprint.\^Use with care to get not your disk invaded by these files.
|
64661_main_MSG_ICONS_ADDED=%d new icons added
|
||||||
64758_main_MSG_AUTO_MD5=Auto fingerprint
|
64662_main_MSG_DDNS_DISABLED=Dynamic DNS updater disabled
|
||||||
64759_main_MSG_AUTO_MD5_LONG=When you add files and no fingerprint is found, it is calculated.\^To avoid long waitings, set a limit to file size (in KiloBytes).\^Leave empty to disable, and have no fingerprint created.
|
64663_main_MSG_MD5_WARN=This option creates an .md5 file for every new calculated fingerprint.\^Use with care to get not your disk invaded by these files.
|
||||||
64768_main_MSG_TEST_CANC=Test cancelled
|
64664_main_MSG_AUTO_MD5=Auto fingerprint
|
||||||
64769_main_MSG_TEST_INET=Testing internet connection...
|
64665_main_MSG_AUTO_MD5_LONG=When you add files and no fingerprint is found, it is calculated.\^To avoid long waitings, set a limit to file size (in KiloBytes).\^Leave empty to disable, and have no fingerprint created.
|
||||||
64770_main_MSG_SELF_UNAV=Sorry, the test is unavailable at the moment
|
64666_main_MSG_UPL_HOWTO=1. Add a folder (choose "real folder")\^\^You should now see a RED folder in your virtual file sytem, inside HFS\^\^2. Right click on this folder\^3. Properties -> Permissions -> Upload\^4. Check on "Anyone"\^5. Ok\^\^Now anyone who has access to your HFS server can upload files to you.
|
||||||
64771_main_MSG_SELF_NO_INET=Your internet connection does not work
|
64672_main_MSG_EVENTS_HLP=For help on how to use this file please refer http://www.rejetto.com/wiki/?title=HFS:_Event_scripts
|
||||||
64772_main_MSG_SELF_NO_ANSWER=The test failed: server does not answer.
|
64673_main_MSG_EDIT_RES=Edit resource
|
||||||
64773_main_MSG_OPEN_BROW=Open directly in browser
|
64674_main_MSG_TPL_USE_MACROS=The current template is using macros.\^Do you want to cancel this action?
|
||||||
64774_main_MSG_OPEN_BROW_LONG="Suggest" the browser to open directly the specified files.\^Other files should pop up a save dialog.
|
64675_main_REMOVE_SHELL=Remove from shell context menu
|
||||||
64775_main_MSG_HIDE_PORT=You should not use this option unless you really know its meaning.\^Continue?
|
64676_main_S_OFF=Switch OFF
|
||||||
64776_main_MSG_EVENTS_HLP=For help on how to use this file please refer http://www.rejetto.com/wiki/?title=HFS:_Event_scripts
|
64677_main_S_ON{1}=Switch ON
|
||||||
64777_main_MSG_EDIT_RES=Edit resource
|
64678_main_LOG=Log
|
||||||
64778_main_MSG_TPL_USE_MACROS=The current template is using macros.\^Do you want to cancel this action?
|
64679_main_MSG_RE_NOIP=You are invited to re-insert your No-IP configuration, otherwise the updater won't work as expected.
|
||||||
64779_main_REMOVE_SHELL=Remove from shell context menu
|
64680_main_MSG_TRAY_DEF=%ip%\^Uptime: %uptime%\^Downloads: %downloads%
|
||||||
64780_main_S_OFF=Switch OFF
|
64681_main_MSG_CLEAN_START=Clean start
|
||||||
64781_main_S_ON{1}=Switch ON
|
64682_main_MSG_RESTORE_BAK=A file system backup has been created for a system shutdown.\^Do you want to restore this backup?
|
||||||
64782_main_LOG=Log
|
64683_main_MSG_EXT_ADDR_FAIL=Search for external address failed
|
||||||
64783_main_MSG_RE_NOIP=You are invited to re-insert your No-IP configuration, otherwise the updater won't work as expected.
|
64684_main_MSG_TO_EXPERT=Switch to expert mode.
|
||||||
64784_main_MSG_HOST_FORM=Please, enter it in the FULL form, with dots
|
64685_main_MSG_DONT_LOG_HINT=Select the files/folder you don't want to be logged,\^then right click and select "Don't log".
|
||||||
64785_main_MSG_MIN_SPACE=Min disk space
|
64686_main_MSG_DL_PERC=Downloading %d%%
|
||||||
64786_main_MSG_MIN_SPACE_LONG=The upload will fail if your disk has less than the specified amount of free MegaBytes.
|
64687_main_MSG_UNINSTALL_WARN=Delete HFS and all settings?
|
||||||
64787_main_MSG_REN_PART=Rename partial uploads
|
64688_main_MSG_SELF_3=You may be behind a router or firewall.
|
||||||
64788_main_MSG_REN_PART_LONG=This string will be appended to the filename.\^\^If you need more control, enter a string with %name% in it, and this symbol will be replaced by the original filename.
|
64689_main_MSG_SELF_6=You are behind a router.\^Ensure it is configured to forward port %s to your computer.
|
||||||
64789_main_MSG_SELF_BEFORE=Here you can test if your server does work on the Internet.\^If you are not interested in serving files over the Internet, this is NOT for you.\^\^We'll now perform a test involving network activity.\^In order to complete this test, you may need to allow HFS's activity in your firewall, by clicking Allow on the warning prompt.\^\^WARNING: for the duration of the test, all ban rules and limits on the number of connections won't apply.
|
64690_main_MSG_SELF_7=You may be behind a firewall.\^Ensure nothing is blocking HFS.
|
||||||
64790_main_MSG_SELF_OK=The test is successful. The server should be working fine.
|
64691_main_MSG_RET_EXT=Retrieving external address...
|
||||||
64791_main_MSG_SELF_OK_PORT=Port %s is not working, but another working port has been found and set: %s.
|
64692_main_MSG_SELF_CANT_ON=Unable to switch the server on
|
||||||
64792_main_MSG_SELF_3=You may be behind a router or firewall.
|
64693_main_MSG_SELF_CANT_LIST=Self test cannot be performed because HFS was configured to accept connections only on 127.0.0.1
|
||||||
64793_main_MSG_SELF_6=You are behind a router.\^Ensure it is configured to forward port %s to your computer.
|
64694_main_MSG_SELF_CANT_S=Self test doesn't support HTTPS.\^It's likely it won't work.
|
||||||
64794_main_MSG_SELF_7=You may be behind a firewall.\^Ensure nothing is blocking HFS.
|
64695_main_MSG_SELF_ING=Self testing...
|
||||||
64795_main_MSG_RET_EXT=Retrieving external address...
|
64696_main_MSG_TEST_CANC=Test cancelled
|
||||||
64796_main_MSG_SELF_CANT_ON=Unable to switch the server on
|
64697_main_MSG_TEST_INET=Testing internet connection...
|
||||||
64797_main_MSG_SELF_CANT_LIST=Self test cannot be performed because HFS was configured to accept connections only on 127.0.0.1
|
64698_main_MSG_SELF_UNAV=Sorry, the test is unavailable at the moment
|
||||||
64798_main_MSG_SELF_CANT_S=Self test doesn't support HTTPS.\^It's likely it won't work.
|
64699_main_MSG_SELF_NO_INET=Your internet connection does not work
|
||||||
64799_main_MSG_SELF_ING=Self testing...
|
64700_main_MSG_SELF_NO_ANSWER=The test failed: server does not answer.
|
||||||
64800_main_MSG_CHANGES_LOST=All changes will be lost\^Continue?
|
64701_main_MSG_OPEN_BROW=Open directly in browser
|
||||||
64801_main_MSG_FLAG_NEW=Flag new files
|
64702_main_MSG_OPEN_BROW_LONG="Suggest" the browser to open directly the specified files.\^Other files should pop up a save dialog.
|
||||||
64802_main_MSG_FLAG_NEW_LONG=Enter the number of MINUTES files stay flagged from their addition.\^Leave blank to disable.
|
64703_main_MSG_HIDE_PORT=You should not use this option unless you really know its meaning.\^Continue?
|
||||||
64803_main_MSG_DONT_LOG_MASK=Do not log address
|
64704_main_MSG_RESET_TOT=Do you want to reset total in/out?
|
||||||
64804_main_MSG_DONT_LOG_MASK_LONG=Any event from the following IP address mask will be not logged.
|
64705_main_MSG_DISAB_FIND_EXT=This option makes pointless the option "Find external address at startup", which has now been disabled for your convenience.
|
||||||
64805_main_MSG_CUST_IP=Custom IP addresses
|
64706_main_MSG_ENT_URL=Enter URL
|
||||||
64806_main_MSG_CUST_IP_LONG=Specify your addresses, each per line
|
64707_main_MSG_ENT_URL_LONG=Enter URL for updating.\^%ip% will be translated to your external IP.
|
||||||
64807_main_MSG_NO_EXT_IP=Can't find external address\^( %s )
|
64708_main_MSG_ENT_USR=Enter user
|
||||||
64808_main_MSG_RESET_TOT=Do you want to reset total in/out?
|
64709_main_MSG_ENT_PWD=Enter password
|
||||||
64809_main_MSG_DISAB_FIND_EXT=This option makes pointless the option "Find external address at startup", which has now been disabled for your convenience.
|
64710_main_MSG_ENT_HOST=Enter host
|
||||||
64810_main_MSG_ENT_URL=Enter URL
|
64711_main_MSG_ENT_HOST_LONG=Enter domain (full form!)
|
||||||
64811_main_MSG_ENT_URL_LONG=Enter URL for updating.\^%ip% will be translated to your external IP.
|
64712_main_MSG_HOST_FORM=Please, enter it in the FULL form, with dots
|
||||||
64812_main_MSG_ENT_USR=Enter user
|
64713_main_MSG_MIN_SPACE=Min disk space
|
||||||
64813_main_MSG_ENT_PWD=Enter password
|
64714_main_MSG_MIN_SPACE_LONG=The upload will fail if your disk has less than the specified amount of free MegaBytes.
|
||||||
64814_main_MSG_ENT_HOST=Enter host
|
64715_main_MSG_REN_PART=Rename partial uploads
|
||||||
64815_main_MSG_ENT_HOST_LONG=Enter domain (full form!)
|
64716_main_MSG_REN_PART_LONG=This string will be appended to the filename.\^\^If you need more control, enter a string with %name% in it, and this symbol will be replaced by the original filename.
|
||||||
64816_main_MSG_UPD_INFO=Last stable version: %s\^\^Last untested version: %s\^
|
64717_main_MSG_SELF_BEFORE=Here you can test if your server does work on the Internet.\^If you are not interested in serving files over the Internet, this is NOT for you.\^\^We'll now perform a test involving network activity.\^In order to complete this test, you may need to allow HFS's activity in your firewall, by clicking Allow on the warning prompt.\^\^WARNING: for the duration of the test, all ban rules and limits on the number of connections won't apply.
|
||||||
64817_main_MSG_NEWER=There's a new version available online: %s
|
64718_main_MSG_SELF_OK=The test is successful. The server should be working fine.
|
||||||
64818_main_MSG_SRC_UPD=Searching for updates...
|
64719_main_MSG_SELF_OK_PORT=Port %s is not working, but another working port has been found and set: %s.
|
||||||
64819_main_ARE_EXPERT{1}=You are in Expert mode
|
64720_main_MSG_LOG_FILE=Log file
|
||||||
64820_main_ARE_EASY=You are in Easy mode
|
64721_main_MSG_LOG_FILE_LONG=This function does not save any previous information to the log file.\^Instead, it saves all information that appears in the log box in real-time (from when you click "OK", below).\^Specify a filename for the log.\^If you leave the filename blank, no log file is saved.\^\^Here are some symbols you can use in the filename to split the log:\^ %d% -- day of the month (1..31)\^ %m% -- month (1..12)\^ %y% -- year (2000..)\^ %dow% -- day of the week (0..6)\^ %w% -- week of the year (1..53)\^ %user% -- username surrounded by parenthesis
|
||||||
64821_main_SW2EXPERT=Switch to Expert mode
|
64722_main_MSG_SET_URL=Set URL
|
||||||
64822_main_SW2EASY=Switch to Easy mode
|
64723_main_MSG_SET_URL_LONG=Please insert an URL for the link\^\^Do not forget to specify http:// or whatever.\^%%ip%% will be translated to your address
|
||||||
64823_main_MSG_DL_TIMEOUT_LONG=Enter the number of MINUTES with no download after which the program automatically shuts down.\^Leave blank to get no timeout.
|
64724_main_MSG_REALM=Login realm
|
||||||
64824_main_MSG_LOG_FILE=Log file
|
64725_main_MSG_REALM_LONG=The realm string is shown on the user/pass dialog of the browser.\^Here you can customize the realm for the login button
|
||||||
64825_main_MSG_LOG_FILE_LONG=This function does not save any previous information to the log file.\^Instead, it saves all information that appears in the log box in real-time (from when you click "OK", below).\^Specify a filename for the log.\^If you leave the filename blank, no log file is saved.\^\^Here are some symbols you can use in the filename to split the log:\^ %d% -- day of the month (1..31)\^ %m% -- month (1..12)\^ %y% -- year (2000..)\^ %dow% -- day of the week (0..6)\^ %w% -- week of the year (1..53)\^ %user% -- username surrounded by parenthesis
|
64726_main_MSG_INACT_TIMEOUT=Connection inactivity timeout
|
||||||
64826_main_MSG_SET_URL=Set URL
|
64727_main_MSG_INACT_TIMEOUT_LONG=The connection is kicked after a timeout.\^Specify in seconds.\^Leave blank to get no timeout.
|
||||||
64827_main_MSG_SET_URL_LONG=Please insert an URL for the link\^\^Do not forget to specify http:// or whatever.\^%%ip%% will be translated to your address
|
64728_main_MSG_CHANGES_LOST=All changes will be lost\^Continue?
|
||||||
64828_main_MSG_REALM=Login realm
|
64729_main_MSG_FLAG_NEW=Flag new files
|
||||||
64829_main_MSG_REALM_LONG=The realm string is shown on the user/pass dialog of the browser.\^Here you can customize the realm for the login button
|
64730_main_MSG_FLAG_NEW_LONG=Enter the number of MINUTES files stay flagged from their addition.\^Leave blank to disable.
|
||||||
64830_main_MSG_INACT_TIMEOUT=Connection inactivity timeout
|
64731_main_MSG_DONT_LOG_MASK=Do not log address
|
||||||
64831_main_MSG_INACT_TIMEOUT_LONG=The connection is kicked after a timeout.\^Specify in seconds.\^Leave blank to get no timeout.
|
64732_main_MSG_DONT_LOG_MASK_LONG=Any event from the following IP address mask will be not logged.
|
||||||
64832_main_MSG_MAX_BW_1=Max bandwidth for single address (KB/s).
|
64733_main_MSG_CUST_IP=Custom IP addresses
|
||||||
64833_main_MSG_GRAPH_RATE_MENU=Graph refresh rate: %d (tenths of second)
|
64734_main_MSG_CUST_IP_LONG=Specify your addresses, each per line
|
||||||
64834_main_MSG_MAX_SIM=Max simultaneous connections to serve.\^Most people don't know this function well, and have problems. If you are unsure, please use the "Max simultaneous downloads".
|
64735_main_MSG_NO_EXT_IP=Can't find external address\^( %s )
|
||||||
64835_main_MSG_WARN_CONN=In this moment there are %d active connections
|
64736_main_MSG_TENTH_SEC=Tenths of second
|
||||||
64836_main_MSG_WARN_ACT_DL=In this moment there are %d active downloads
|
64737_main_MSG_LOADING_VFS=Loading VFS
|
||||||
64837_main_MSG_MAX_SIM_SING=Max simultaneous connections to accept from a single IP address.\^Most people don't know this function well, and have problems. If you are unsure, please use the "Max simultaneous downloads from a single IP address".
|
64738_main_MSG_VFS_OLD=This file is old and uses different settings.\^The "let browse" folder option will be reset.\^Re-saving the file will update its format.
|
||||||
64913_main_MSG_MAX_SIM_DL_SING{1}=Max simultaneous downloads from a single IP address.
|
64739_main_MSG_UNK_FK=This file has been created with a newer version.\^Some data was discarded because unknown.\^If you save the file now, the discarded data will NOT be saved.
|
||||||
64839_main_MSG_GRAPH_RATE{1}=Graph refresh rate
|
64740_main_MSG_VIS_ONLY_ANON=This VFS file uses the "Visible only to anonymous users" feature.\^This feature is not available anymore.\^You can achieve similar results by restricting access to @anonymous,\^then enabling "List protected items only for allowed users".
|
||||||
64840_main_MSG_TENTH_SEC=Tenths of second
|
64741_main_MSG_AUTO_DISABLED=Because of the problems encountered in loading,\^automatic saving has been disabled\^until you save manually or load another one.
|
||||||
64841_main_MSG_LOADING_VFS=Loading VFS
|
64742_main_MSG_CORRUPTED=This file does not contain valid data.
|
||||||
64842_main_MSG_VFS_OLD=This file is old and uses different settings.\^The "let browse" folder option will be reset.\^Re-saving the file will update its format.
|
64743_main_MSG_MACROS_FOUND=!!!!!!!!! DANGER !!!!!!!!!\^This file contains macros.\^Don't accept macros from people you don't trust.\^\^Trust this file?
|
||||||
64843_main_MSG_UNK_FK=This file has been created with a newer version.\^Some data was discarded because unknown.\^If you save the file now, the discarded data will NOT be saved.
|
64744_main_MSG_UPD_INFO=Last stable version: %s\^\^Last untested version: %s\^
|
||||||
64844_main_MSG_VIS_ONLY_ANON=This VFS file uses the "Visible only to anonymous users" feature.\^This feature is not available anymore.\^You can achieve similar results by restricting access to @anonymous,\^then enabling "List protected items only for allowed users".
|
64783_main_MSG_NEWER=There's a new version available online: %s
|
||||||
64845_main_MSG_AUTO_DISABLED=Because of the problems encountered in loading,\^automatic saving has been disabled\^until you save manually or load another one.
|
64746_main_MSG_SRC_UPD=Searching for updates...
|
||||||
64846_main_MSG_CORRUPTED=This file does not contain valid data.
|
64747_main_ARE_EXPERT{1}=You are in Expert mode
|
||||||
64847_main_MSG_MACROS_FOUND=!!!!!!!!! DANGER !!!!!!!!!\^This file contains macros.\^Don't accept macros from people you don't trust.\^\^Trust this file?
|
64748_main_ARE_EASY=You are in Easy mode
|
||||||
64848_main_BANS=Ban rules: %d
|
64749_main_SW2EXPERT=Switch to Expert mode
|
||||||
64849_main_MEMORY=Mem
|
64750_main_SW2EASY=Switch to Easy mode
|
||||||
64850_main_CUST_TPL=Customized template
|
64751_main_MSG_DL_TIMEOUT_LONG=Enter the number of MINUTES with no download after which the program automatically shuts down.\^Leave blank to get no timeout.
|
||||||
64851_main_VFS_ITEMS=VFS: %d items
|
64752_main_MSG_ZLIB=This file is corrupted (ZLIB).
|
||||||
64852_main_MSG_ITEM_EXISTS=%s item(s) already exists:\^%s\^\^Continue?
|
64753_main_MSG_BAKAVAILABLE=This file is corrupted but a backup is available.\^Continue with backup?
|
||||||
64853_main_MSG_ALLO_REF=Allowed referer
|
64754_main_MSG_CANT_LOAD_SAVE=Cannot load or save while adding files
|
||||||
64854_main_MSG_ALLO_REF_LONG=Leave empty to disable this feature.\^Here you can specify a mask.\^When a file is requested, if the mask doesn't match the "Referer" HTTP field, the request is rejected.
|
64755_main_MSG_OPEN_VFS=Open VFS file
|
||||||
64855_main_MSG_BETTERSTOP=\^Going on may lead to problems.\^It is adviced to stop loading.\^Stop?
|
64756_main_LIMIT{2}=Limit
|
||||||
64856_main_MSG_BADCRC=This file is corrupted (CRC).
|
64757_main_TOP_SPEED=Top speed
|
||||||
64817_main_MSG_NEWER{1}=This file has been created with a newer and incompatible version.
|
64758_main_MSG_MAX_BW=Max bandwidth (KB/s).
|
||||||
64858_main_MSG_ZLIB=This file is corrupted (ZLIB).
|
64759_main_MSG_LIM0=Zero is an effective limit.\^To disable instead, leave empty.
|
||||||
64859_main_MSG_BAKAVAILABLE=This file is corrupted but a backup is available.\^Continue with backup?
|
64760_main_MSG_MAX_BW_1=Max bandwidth for single address (KB/s).
|
||||||
64860_main_LIMIT{2}=Limit
|
64761_main_MSG_GRAPH_RATE_MENU=Graph refresh rate: %d (tenths of second)
|
||||||
64861_main_TOP_SPEED=Top speed
|
64762_main_MSG_MAX_SIM=Max simultaneous connections to serve.\^Most people don't know this function well, and have problems. If you are unsure, please use the "Max simultaneous downloads".
|
||||||
64862_main_MSG_MAX_BW=Max bandwidth (KB/s).
|
64763_main_MSG_WARN_CONN=In this moment there are %d active connections
|
||||||
64863_main_MSG_LIM0=Zero is an effective limit.\^To disable instead, leave empty.
|
64764_main_MSG_WARN_ACT_DL=In this moment there are %d active downloads
|
||||||
64864_main_MSG_BAN=Your ban configuration may have been screwed up.\^Please verify it.
|
64765_main_MSG_MAX_SIM_SING=Max simultaneous connections to accept from a single IP address.\^Most people don't know this function well, and have problems. If you are unsure, please use the "Max simultaneous downloads from a single IP address".
|
||||||
64865_main_MSG_CANT_SAVE_OPT=Can't save options there.\^Should I try to save to user registry?
|
64766_main_MSG_MAX_SIM_DL_SING{1}=Max simultaneous downloads from a single IP address.
|
||||||
64866_main_MSG_UPD_SAVE_ERROR=Cannot save the update
|
64767_main_MSG_GRAPH_RATE{1}=Graph refresh rate
|
||||||
64867_main_MSG_UPD_REQ_ONLY1=The auto-update feature cannot work because it requires the "Only 1 instance" option enabled.\^\^Your browser will now be pointed to the update, so you can install it manually.
|
64768_main_MSG_CON_STATE_IDLE=idle
|
||||||
64868_main_MSG_UPDATE=You are invited to use the new version.\^\^Update now?
|
64769_main_MSG_CON_STATE_REQ=requesting
|
||||||
64869_main_MSG_REQUESTING=Requesting...
|
64770_main_MSG_CON_STATE_RCV=receiving
|
||||||
64870_main_MSG_CHK_UPD=Checking for updates
|
64771_main_MSG_CON_STATE_THINK=thinking
|
||||||
64871_main_MSG_CHK_UPD_FAIL=Check update: failed
|
64772_main_MSG_CON_STATE_REP=replying
|
||||||
64872_main_TO_CLIP=Copy to clipboard
|
64773_main_MSG_CON_STATE_SEND=sending
|
||||||
64873_main_ALREADY_CLIP=Already in clipboard
|
64774_main_MSG_CON_STATE_DISC=disconnected
|
||||||
64874_main_MSG_NO_SPACE=Out of space
|
64775_main_MSG_CON_PAUSED=paused
|
||||||
64875_main_CONN=Connections: %d
|
64776_main_MSG_CON_SENT=%s / %s sent
|
||||||
64876_main_TOT_IN=Total In: %s
|
64777_main_MSG_CON_RECEIVED=%s / %s received
|
||||||
64877_main_TOT_OUT{1}=Total Out: %s
|
64778_main_MSG_TPL_RESET=The template has been reset
|
||||||
64878_main_OUT_SPEED=Out: %.1f KB/s
|
64779_main_MSG_ALLO_REF=Allowed referer
|
||||||
64879_main_IN_SPEED=In: %.1f KB/s
|
64780_main_MSG_ALLO_REF_LONG=Leave empty to disable this feature.\^Here you can specify a mask.\^When a file is requested, if the mask doesn't match the "Referer" HTTP field, the request is rejected.
|
||||||
64880_main_MSG_CANT_OPEN_PORT=Cannot open port.
|
64781_main_MSG_BETTERSTOP=\^Going on may lead to problems.\^It is adviced to stop loading.\^Stop?
|
||||||
64881_main_MSG_PORT_USED_BY=It is already used by %s
|
64782_main_MSG_BADCRC=This file is corrupted (CRC).
|
||||||
64882_main_MSG_PORT_BLOCKED=Something is blocking, maybe your system firewall.
|
64783_main_MSG_NEWER{1}=This file has been created with a newer and incompatible version.
|
||||||
64883_main_MSG_KICK_ALL=There are %d connections open.\^Do you want to close them now?
|
64784_main_MSG_VFS_ARCABLE=Archivable
|
||||||
64884_main_MSG_TPL_INCOMPATIBLE=The template you are trying to load is not compatible with current HFS version.\^HFS will now use default template.\^Ask on the forum if you need further help.
|
64785_main_MSG_VFS_DEF_MASK=Default file mask: %s
|
||||||
64885_main_MSG_LOGIN_FAILED=Login failed
|
64786_main_MSG_VFS_ACCESS=Access for
|
||||||
64886_main_FINGERPRINT=Create fingerprint on addition under %d KB
|
64787_main_MSG_VFS_UPLOAD=Upload allowed for
|
||||||
64887_main_NO_FINGERPRINT=Create fingerprint on addition: disabled
|
64788_main_MSG_VFS_DELETE=Delete allowed for
|
||||||
64888_main_MSG_INP_COMMENT=Please insert a comment for "%s".\^You should use HTML: <br> for break line.
|
64789_main_MSG_VFS_COMMENT=Comment: %s
|
||||||
64889_main_AUTOSAVE=Auto save every:
|
64790_main_MSG_VFS_REALM=Realm: %s
|
||||||
64890_main_SECONDS=%d seconds
|
64791_main_MSG_VFS_DIFF_TPL=Diff template: %s
|
||||||
64891_main_MSG_SPD_LIMIT_SING=Speed limit for single address
|
64792_main_MSG_VFS_FILES_FLT=Files filter: %s
|
||||||
64892_main_MSG_SPD_LIMIT=Speed limit
|
64793_main_MSG_VFS_FLD_FLT=Folders filter: %s
|
||||||
64893_main_MSG_AUTO_SAVE=Auto-save %s
|
64794_main_MSG_VFS_UPL_FLT=Upload filter: %s
|
||||||
64894_main_MSG_AUTO_SAVE_LONG=Auto-save %s.\^Specify in seconds.\^Leave blank to disable.
|
64795_main_MSG_VFS_DONT_CONS_DL=Don't consider as download
|
||||||
64895_main_MSG_MIN=We don't accept less than %d
|
64796_main_MSG_VFS_DONT_CONS_DL_MASK=Don't consider as download (mask): %s
|
||||||
64896_main_MSG_SINGLE_INSTANCE=Sorry, this feature only works with the "Only 1 instance" option enabled.\^\^You can find this option under Menu -> Start/Exit\^(only in expert mode)
|
64797_main_MSG_VFS_INHERITED= [inherited]
|
||||||
64897_main_MSG_COMM_ERROR=Network error. Request failed.
|
64798_main_MSG_VFS_EXTERNAL= [external]
|
||||||
64898_main_MSG_DDNS_badauth=invalid user/password
|
64799_main_MSG_CON_HINT=Connection time: %s\^Last request time: %s\^Agent: %s
|
||||||
64899_main_MSG_DDNS_notfqdn=incomplete hostname, required form aaa.bbb.com
|
64800_main_VFS_ITEMS=VFS: %d items
|
||||||
64900_main_MSG_DDNS_nohost=specified hostname does not exist
|
64801_main_MSG_ITEM_EXISTS=%s item(s) already exists:\^%s\^\^Continue?
|
||||||
64901_main_MSG_DDNS_notyours=specified hostname belongs to another username
|
64802_main_MSG_INSTALL_TPL=Install this template?
|
||||||
64902_main_MSG_DDNS_numhost=too many or too few hosts found
|
64803_main_MSG_FOLDER_UPLOAD=Do you want ANYONE to be able to upload to this folder?
|
||||||
64903_main_MSG_DDNS_abuse=specified hostname is blocked for update abuse
|
64804_main_MSG_VFS_DRAG_INVIT=Drag your files here
|
||||||
64904_main_MSG_DDNS_dnserr=server error
|
64805_main_MSG_VFS_URL=URL: %s
|
||||||
64905_main_MSG_DDNS_911=server error
|
64806_main_MSG_VFS_PATH=Path: %s
|
||||||
64906_main_MSG_DDNS_notdonator=an option specified requires payment
|
64807_main_MSG_VFS_SIZE=Size: %s
|
||||||
64907_main_MSG_DDNS_badagent=banned client
|
64808_main_MSG_VFS_DLS=Downloads: %s
|
||||||
64908_main_MSG_IP_MASK=IP mask
|
64809_main_MSG_VFS_INVISIBLE=Invisible
|
||||||
64909_main_MSG_IP_MASK_LONG=You can edit the address.\^Masks and ranges are allowed.
|
64810_main_MSG_VFS_DL_FORB=Download forbidden
|
||||||
64910_main_MSG_KICK_ADDR=There are %d open connections from this address.\^Do you want to kick them all now?
|
64811_main_MSG_VFS_DONT_LOG=Don't log
|
||||||
64911_main_MSG_BREAK_DYN_DNS=This option is NOT compatible with "dynamic dns updater".\^Continue?
|
64812_main_MSG_VFS_HIDE_EMPTY=Hidden if empty
|
||||||
64912_main_MSG_MAX_SIM_ADDR_DL=Max simultaneous addresses downloading
|
64813_main_MSG_VFS_NOT_BROW=Not browsable
|
||||||
64913_main_MSG_MAX_SIM_DL_SING{2}=Max simultaneous downloads from single address
|
64814_main_MSG_VFS_HIDE_EMPTY_FLD=Hide empty folders
|
||||||
64914_main_MSG_MAX_SIM_DL=Max simultaneous downloads
|
64815_main_MSG_VFS_HIDE_EXT=Hide extention
|
||||||
64915_main_MSG_SET_LIMIT=Set limit
|
64816_main_MSG_CHK_UPD_FAIL=Check update: failed
|
||||||
64916_main_MSG_UNPROTECTED_LINKS=Links are NOT actually protected.\^The feature is there to be used with the "list protected items only..." option.\^Continue?
|
64817_main_MSG_CHK_UPD_HEAD=Check update:
|
||||||
64917_main_MSG_SAME_NAME=An item with the same name is already present in this folder.\^Continue?
|
64818_main_MSG_CHK_UPD_VER=new version found: %s
|
||||||
64918_main_MSG_OPTIONS_SAVED=Options saved
|
64819_main_MSG_CHK_UPD_VER_EXT=Build #%s (current is #%s)
|
||||||
64919_main_MSG_SOME_LOCKED=Some items were not affected because locked
|
64820_main_MSG_CHK_UPD_NONE=no new version
|
||||||
64920_main_MSG_ITEM_LOCKED=The item is locked
|
64821_main_TO_CLIP=Copy to clipboard
|
||||||
64921_main_MSG_INVALID_VALUE=Invalid value
|
64822_main_ALREADY_CLIP=Already in clipboard
|
||||||
64922_main_MSG_EMPTY_NO_LIMIT=Leave blank to get no limits.
|
64823_main_MSG_NO_SPACE=Out of space
|
||||||
64923_main_MSG_ADDRESSES_EXCEED=The following addresses exceed the limit:\^%s
|
64824_main_CONN=Connections: %d
|
||||||
64924_main_MSG_NO_TEMP=Cannot save temporary file
|
64825_main_TOT_IN=Total In: %s
|
||||||
64925_main_MSG_ERROR_REGISTRY=Can't write to registry.\^You may lack necessary rights.
|
64826_main_TOT_OUT{1}=Total Out: %s
|
||||||
64926_main_MSG_MANY_ITEMS=You are putting many files.\^Try using real folders instead of virtual folders.\^Read documentation or ask on the forum for help.
|
64827_main_OUT_SPEED=Out: %.1f KB/s
|
||||||
64927_main_MSG_ADD_TO_HFS="Add to HFS" has been added to your Window's Explorer right-click menu.
|
64828_main_IN_SPEED=In: %.1f KB/s
|
||||||
64935_main_S_PORT_LABEL=Port: %s
|
64829_main_BANS=Ban rules: %d
|
||||||
64936_main_S_PORT_ANY=any
|
64830_main_MEMORY=Mem
|
||||||
64937_main_DISABLED=disabled
|
64831_main_CUST_TPL=Customized template
|
||||||
64938_main_S_OK=Ok
|
64832_main_AUTOSAVE=Auto save every:
|
||||||
64939_main_MSG_MENU_VAL= (%s)
|
64833_main_SECONDS=%d seconds
|
||||||
64940_main_MSG_DL_TIMEOUT{1}=No downloads timeout
|
64834_main_MSG_SPD_LIMIT_SING=Speed limit for single address
|
||||||
64941_main_MSG_MAX_CON=Max connections
|
64835_main_MSG_SPD_LIMIT=Speed limit
|
||||||
64942_main_MSG_MAX_CON_SING=Max connections from single address
|
64836_main_MSG_AUTO_SAVE=Auto-save %s
|
||||||
64943_main_MSG_MAX_SIM_ADDR{1}=Max simultaneous addresses
|
64837_main_MSG_AUTO_SAVE_LONG=Auto-save %s.\^Specify in seconds.\^Leave blank to disable.
|
||||||
|
64838_main_MSG_MIN=We don't accept less than %d
|
||||||
|
64839_main_MSG_BAN=Your ban configuration may have been screwed up.\^Please verify it.
|
||||||
|
64840_main_MSG_CANT_SAVE_OPT=Can't save options there.\^Should I try to save to user registry?
|
||||||
|
64841_main_MSG_UPD_SAVE_ERROR=Cannot save the update
|
||||||
|
64842_main_MSG_UPD_REQ_ONLY1=The auto-update feature cannot work because it requires the "Only 1 instance" option enabled.\^\^Your browser will now be pointed to the update, so you can install it manually.
|
||||||
|
64843_main_MSG_UPD_WAIT=Waiting for last requests to be served, then we'll update
|
||||||
|
64844_main_MSG_UPD_DL=Downloading new version...
|
||||||
|
64845_main_MSG_UPDATE=You are invited to use the new version.\^\^Update now?
|
||||||
|
64846_main_MSG_REQUESTING=Requesting...
|
||||||
|
64847_main_MSG_CHK_UPD=Checking for updates
|
||||||
|
64848_main_MSG_LOG_UPL=Uploading %s
|
||||||
|
64849_main_MSG_LOG_UPLOADED=Fully uploaded %s - %s @ %sB/s
|
||||||
|
64850_main_MSG_LOG_UPL_FAIL=Upload failed %s
|
||||||
|
64851_main_MSG_LOG_DL=Fully downloaded - %s @ %sB/s - %s
|
||||||
|
64852_main_MSG_LOGIN_FAILED=Login failed
|
||||||
|
64853_main_MSG_MIN_DISK_REACHED=Minimum disk space reached.
|
||||||
|
64854_main_MSG_UPL_NAME_FORB=File name or extension forbidden.
|
||||||
|
64855_main_MSG_UPL_CANT_CREATE=Error creating file.
|
||||||
|
64856_main_FINGERPRINT=Create fingerprint on addition under %d KB
|
||||||
|
64857_main_NO_FINGERPRINT=Create fingerprint on addition: disabled
|
||||||
|
64858_main_MSG_SAVE_VFS=Your current file system is not saved.\^Save it?
|
||||||
|
64859_main_MSG_INP_COMMENT=Please insert a comment for "%s".\^You should use HTML: <br> for break line.
|
||||||
|
64860_main_MSG_FILE_ADD_ABORT=File addition was aborted.\^The list of files is incomplete.
|
||||||
|
64861_main_MSG_ADDING=Adding item #%d
|
||||||
|
64862_main_MSG_INV_FILENAME=Invalid filename
|
||||||
|
64863_main_MSG_DELETE=Delete?
|
||||||
|
64864_main_MSG_PORT_USED_BY=It is already used by %s
|
||||||
|
64865_main_MSG_PORT_BLOCKED=Something is blocking, maybe your system firewall.
|
||||||
|
64866_main_MSG_KICK_ALL=There are %d connections open.\^Do you want to close them now?
|
||||||
|
64867_main_MSG_TPL_INCOMPATIBLE=The template you are trying to load is not compatible with current HFS version.\^HFS will now use default template.\^Ask on the forum if you need further help.
|
||||||
|
64868_main_MSG_LOG_SERVER_START=Server start
|
||||||
|
64869_main_MSG_LOG_SERVER_STOP=Server stop
|
||||||
|
64870_main_MSG_LOG_CONNECTED=Connected
|
||||||
|
64871_main_MSG_LOG_DISC_SRV=Disconnected by server
|
||||||
|
64872_main_MSG_LOG_DISC=Disconnected
|
||||||
|
64873_main_MSG_LOG_GOT=Got %d bytes
|
||||||
|
64874_main_MSG_LOG_BYTES_SENT=%s bytes sent
|
||||||
|
64875_main_MSG_LOG_SERVED=Served %s
|
||||||
|
64876_main_MSG_LOG_HEAD=Served head
|
||||||
|
64877_main_MSG_LOG_NOT_MOD=Not modified, use cache
|
||||||
|
64878_main_MSG_LOG_REDIR=Redirected to %s
|
||||||
|
64879_main_MSG_LOG_NOT_SERVED=Not served: %d - %s
|
||||||
|
64880_main_MSG_DDNS_nohost=specified hostname does not exist
|
||||||
|
64881_main_MSG_DDNS_notyours=specified hostname belongs to another username
|
||||||
|
64882_main_MSG_DDNS_numhost=too many or too few hosts found
|
||||||
|
64883_main_MSG_DDNS_abuse=specified hostname is blocked for update abuse
|
||||||
|
64884_main_MSG_DDNS_dnserr=server error
|
||||||
|
64885_main_MSG_DDNS_911=server error
|
||||||
|
64886_main_MSG_DDNS_notdonator=an option specified requires payment
|
||||||
|
64887_main_MSG_DDNS_badagent=banned client
|
||||||
|
64888_main_MSG_BAN_MASK=Ban IP mask
|
||||||
|
64889_main_MSG_IP_MASK_LONG=You can edit the address.\^Masks and ranges are allowed.
|
||||||
|
64890_main_MSG_KICK_ADDR=There are %d open connections from this address.\^Do you want to kick them all now?
|
||||||
|
64891_main_MSG_BAN_ALREADY=This IP address is already banned
|
||||||
|
64892_main_MSG_BAN_CMT=Ban comment
|
||||||
|
64893_main_MSG_BAN_CMT_LONG=A comment for this ban...
|
||||||
|
64894_main_MSG_BREAK_DYN_DNS=This option is NOT compatible with "dynamic dns updater".\^Continue?
|
||||||
|
64895_main_MSG_CANT_OPEN_PORT=Cannot open port.
|
||||||
|
64896_main_MSG_NO_TEMP=Cannot save temporary file
|
||||||
|
64897_main_MSG_ERROR_REGISTRY=Can't write to registry.\^You may lack necessary rights.
|
||||||
|
64898_main_MSG_MANY_ITEMS=You are putting many files.\^Try using real folders instead of virtual folders.\^Read documentation or ask on the forum for help.
|
||||||
|
64899_main_MSG_ADD_TO_HFS="Add to HFS" has been added to your Window's Explorer right-click menu.
|
||||||
|
64900_main_MSG_SINGLE_INSTANCE=Sorry, this feature only works with the "Only 1 instance" option enabled.\^\^You can find this option under Menu -> Start/Exit\^(only in expert mode)
|
||||||
|
64901_main_MSG_COMM_ERROR=Network error. Request failed.
|
||||||
|
64902_main_MSG_DDNS_NO_REPLY=no reply
|
||||||
|
64903_main_MSG_DDNS_OK=successful
|
||||||
|
64904_main_MSG_DDNS_UNK=unknown reply: %s
|
||||||
|
64905_main_MSG_DDNS_ERR=error: %s
|
||||||
|
64906_main_MSG_DDNS_REQ=DNS update requested for %s: %s
|
||||||
|
64907_main_MSG_DDNS_DOING=Updating dynamic DNS...
|
||||||
|
64908_main_MSG_DDNS_FAIL=DNS update failed: %s\^User intervention is required.
|
||||||
|
64909_main_MSG_DDNS_REPLY_SIZE=%d bytes reply
|
||||||
|
64910_main_MSG_DDNS_badauth=invalid user/password
|
||||||
|
64911_main_MSG_DDNS_notfqdn=incomplete hostname, required form aaa.bbb.com
|
||||||
|
64912_main_MSG_MAX_SIM_ADDR{1}=Max simultaneous addresses
|
||||||
|
64913_main_MSG_MAX_SIM_ADDR_DL=Max simultaneous addresses downloading
|
||||||
|
64766_main_MSG_MAX_SIM_DL_SING{2}=Max simultaneous downloads from single address
|
||||||
|
64915_main_MSG_MAX_SIM_DL=Max simultaneous downloads
|
||||||
|
64916_main_MSG_SET_LIMIT=Set limit
|
||||||
|
64917_main_MSG_UNPROTECTED_LINKS=Links are NOT actually protected.\^The feature is there to be used with the "list protected items only..." option.\^Continue?
|
||||||
|
64918_main_MSG_SAME_NAME=An item with the same name is already present in this folder.\^Continue?
|
||||||
|
64919_main_MSG_CONTINUE=Continue?
|
||||||
|
64920_main_MSG_PROCESSING=Processing...
|
||||||
|
64921_main_MSG_SPEED_KBS=%.1f kB/s
|
||||||
|
64922_main_MSG_OPTIONS_SAVED=Options saved
|
||||||
|
64923_main_MSG_SOME_LOCKED=Some items were not affected because locked
|
||||||
|
64924_main_MSG_ITEM_LOCKED=The item is locked
|
||||||
|
64925_main_MSG_INVALID_VALUE=Invalid value
|
||||||
|
64926_main_MSG_EMPTY_NO_LIMIT=Leave blank to get no limits.
|
||||||
|
64927_main_MSG_ADDRESSES_EXCEED=The following addresses exceed the limit:\^%s
|
||||||
|
64935_optionsDlg_MSG_INVERT_BAN=Normal behavior of the Ban is to prevent access to the addresses you specify (also called black-list).\^If you want the opposite, to allow the addresses that you specify (white-list), enter all addresses in a single row preceded by a \ character.\^\^Let say you want to allow all your 192.168 local network plus your office at 1.1.1.1.\^Just put this IP address mask: \192.168.*;1.1.1.1\^The opening \ character inverts the logic, so everything else is banned.\^\^If you want to know more about address masks, check the guide.
|
||||||
|
64936_main_S_PORT_LABEL=Port: %s
|
||||||
|
64937_main_S_PORT_ANY=any
|
||||||
|
64938_main_DISABLED=disabled
|
||||||
|
64939_main_S_OK=Ok
|
||||||
|
64940_main_MSG_MENU_VAL= (%s)
|
||||||
|
64941_main_MSG_DL_TIMEOUT{1}=No downloads timeout
|
||||||
|
64942_main_MSG_MAX_CON=Max connections
|
||||||
|
64943_main_MSG_MAX_CON_SING=Max connections from single address
|
||||||
65046_OverbyteIcsHttpContCod_ERR_GETCODING_OVERRIDE=GetCoding must be overridden in %s
|
65046_OverbyteIcsHttpContCod_ERR_GETCODING_OVERRIDE=GetCoding must be overridden in %s
|
||||||
65088_OverbyteIcsCharsetUtils_sHebrewISOVisual=Hebrew (ISO-Visual)
|
65088_OverbyteIcsCharsetUtils_sHebrewISOVisual=Hebrew (ISO-Visual)
|
||||||
65089_OverbyteIcsCharsetUtils_sHebrewWindows=Hebrew (Windows)
|
65089_OverbyteIcsCharsetUtils_sHebrewWindows=Hebrew (Windows)
|
||||||
|
|||||||
@ -1,8 +0,0 @@
|
|||||||
Normal behavior of the Ban is to prevent access to the addresses you specify (also called black-list).
|
|
||||||
If you want the opposite, to allow the addresses that you specify (white-list), enter all addresses in a single row preceded by a \ character.
|
|
||||||
|
|
||||||
Let say you want to allow all your 192.168 local network plus your office at 1.1.1.1.
|
|
||||||
Just put this IP address mask: \192.168.*;1.1.1.1
|
|
||||||
The opening \ character inverts the logic, so everything else is banned.
|
|
||||||
|
|
||||||
If you want to know more about address masks, check the guide.
|
|
||||||
401
main.pas
401
main.pas
@ -138,6 +138,9 @@ resourcestring
|
|||||||
+#13'Continue?';
|
+#13'Continue?';
|
||||||
MSG_SAME_NAME ='An item with the same name is already present in this folder.'
|
MSG_SAME_NAME ='An item with the same name is already present in this folder.'
|
||||||
+#13'Continue?';
|
+#13'Continue?';
|
||||||
|
MSG_CONTINUE = 'Continue?';
|
||||||
|
MSG_PROCESSING = 'Processing...';
|
||||||
|
MSG_SPEED_KBS = '%.1f kB/s';
|
||||||
MSG_OPTIONS_SAVED = 'Options saved';
|
MSG_OPTIONS_SAVED = 'Options saved';
|
||||||
MSG_SOME_LOCKED = 'Some items were not affected because locked';
|
MSG_SOME_LOCKED = 'Some items were not affected because locked';
|
||||||
MSG_ITEM_LOCKED = 'The item is locked';
|
MSG_ITEM_LOCKED = 'The item is locked';
|
||||||
@ -157,16 +160,6 @@ resourcestring
|
|||||||
MSG_ENABLED = 'Option enabled';
|
MSG_ENABLED = 'Option enabled';
|
||||||
MSG_DISABLED = 'Option disabled';
|
MSG_DISABLED = 'Option disabled';
|
||||||
MSG_COMM_ERROR = 'Network error. Request failed.';
|
MSG_COMM_ERROR = 'Network error. Request failed.';
|
||||||
MSG_DDNS_badauth='invalid user/password';
|
|
||||||
MSG_DDNS_notfqdn='incomplete hostname, required form aaa.bbb.com';
|
|
||||||
MSG_DDNS_nohost='specified hostname does not exist';
|
|
||||||
MSG_DDNS_notyours='specified hostname belongs to another username';
|
|
||||||
MSG_DDNS_numhost='too many or too few hosts found';
|
|
||||||
MSG_DDNS_abuse='specified hostname is blocked for update abuse';
|
|
||||||
MSG_DDNS_dnserr='server error';
|
|
||||||
MSG_DDNS_911='server error';
|
|
||||||
MSG_DDNS_notdonator='an option specified requires payment';
|
|
||||||
MSG_DDNS_badagent='banned client';
|
|
||||||
|
|
||||||
type
|
type
|
||||||
Pboolean = ^boolean;
|
Pboolean = ^boolean;
|
||||||
@ -2149,7 +2142,8 @@ n:=parent.getFirstChild();
|
|||||||
while assigned(n) do
|
while assigned(n) do
|
||||||
begin
|
begin
|
||||||
result:=sameText(n.text, name);
|
result:=sameText(n.text, name);
|
||||||
if result then exit;
|
if result then
|
||||||
|
exit;
|
||||||
n:=n.getNextSibling();
|
n:=n.getNextSibling();
|
||||||
end;
|
end;
|
||||||
end; // existsNodeWithName
|
end; // existsNodeWithName
|
||||||
@ -2168,6 +2162,25 @@ i:=2;
|
|||||||
end; // getUniqueNodeName
|
end; // getUniqueNodeName
|
||||||
|
|
||||||
procedure updateDynDNS();
|
procedure updateDynDNS();
|
||||||
|
resourcestring
|
||||||
|
MSG_DDNS_NO_REPLY = 'no reply';
|
||||||
|
MSG_DDNS_OK = 'successful';
|
||||||
|
MSG_DDNS_UNK = 'unknown reply: %s';
|
||||||
|
MSG_DDNS_ERR = 'error: %s';
|
||||||
|
MSG_DDNS_REQ = 'DNS update requested for %s: %s';
|
||||||
|
MSG_DDNS_DOING = 'Updating dynamic DNS...';
|
||||||
|
MSG_DDNS_FAIL = 'DNS update failed: %s'#13'User intervention is required.';
|
||||||
|
MSG_DDNS_REPLY_SIZE = '%d bytes reply';
|
||||||
|
MSG_DDNS_badauth='invalid user/password';
|
||||||
|
MSG_DDNS_notfqdn='incomplete hostname, required form aaa.bbb.com';
|
||||||
|
MSG_DDNS_nohost='specified hostname does not exist';
|
||||||
|
MSG_DDNS_notyours='specified hostname belongs to another username';
|
||||||
|
MSG_DDNS_numhost='too many or too few hosts found';
|
||||||
|
MSG_DDNS_abuse='specified hostname is blocked for update abuse';
|
||||||
|
MSG_DDNS_dnserr='server error';
|
||||||
|
MSG_DDNS_911='server error';
|
||||||
|
MSG_DDNS_notdonator='an option specified requires payment';
|
||||||
|
MSG_DDNS_badagent='banned client';
|
||||||
|
|
||||||
function interpretResponse(s:string):string;
|
function interpretResponse(s:string):string;
|
||||||
const
|
const
|
||||||
@ -2189,37 +2202,43 @@ procedure updateDynDNS();
|
|||||||
begin
|
begin
|
||||||
s:=trim(s);
|
s:=trim(s);
|
||||||
if s = '' then
|
if s = '' then
|
||||||
exit('no reply');
|
exit(MSG_DDNS_NO_REPLY);
|
||||||
code:='';
|
code:='';
|
||||||
result:='successful';
|
result:=MSG_DDNS_OK;
|
||||||
code:=trim(lowercase(getTill(' ',s)));
|
code:=trim(lowercase(getTill(' ',s)));
|
||||||
if stringExists(code, ['good','nochg']) then exit;
|
if stringExists(code, ['good','nochg']) then exit;
|
||||||
for i:=1 to length(ERRORS) do
|
for i:=1 to length(ERRORS) do
|
||||||
if code = ERRORS[i].code then
|
if code = ERRORS[i].code then
|
||||||
begin
|
begin
|
||||||
dyndns.active:=FALSE;
|
dyndns.active:=FALSE;
|
||||||
exit('error: '+ERRORS[i].msg);
|
exit(format(MSG_DDNS_ERR,[ERRORS[i].msg]));
|
||||||
end;
|
end;
|
||||||
result:='unknown reply: '+s;
|
result:=format(MSG_DDNS_UNK,[s]);
|
||||||
end; // interpretResponse
|
end; // interpretResponse
|
||||||
|
|
||||||
var
|
var
|
||||||
s: string;
|
s: string;
|
||||||
begin
|
begin
|
||||||
if externalIP = '' then exit;
|
if externalIP = '' then exit;
|
||||||
mainfrm.setStatusBarText('Updating dynamic DNS...');
|
mainfrm.setStatusBarText(MSG_DDNS_DOING);
|
||||||
dyndns.lastTime:=now();
|
dyndns.lastTime:=now();
|
||||||
try s:=httpGet(replaceText(dyndns.url, '%ip%', externalIP));
|
try
|
||||||
except s:='' end;
|
s:=httpGet(replaceText(dyndns.url, '%ip%', externalIP));
|
||||||
if s > '' then dyndns.lastResult:=s;
|
if s > '' then
|
||||||
if not mainfrm.logOtherEventsChk.checked then exit;
|
dyndns.lastResult:=s;
|
||||||
if length(s) > 30 then s:=intToStr(length(s))+' bytes reply'
|
except s:=''
|
||||||
else s:=interpretResponse(s);
|
end;
|
||||||
mainfrm.add2log('DNS update requested for '+dyndns.lastIP+': '+s);
|
if not mainfrm.logOtherEventsChk.checked then
|
||||||
|
exit;
|
||||||
|
if length(s) > 30 then
|
||||||
|
s:=format(MSG_DDNS_REPLY_SIZE, [length(s)])
|
||||||
|
else
|
||||||
|
s:=interpretResponse(s);
|
||||||
|
mainfrm.add2log(format(MSG_DDNS_REQ, [dyndns.lastIP,s]));
|
||||||
if dyndns.active then
|
if dyndns.active then
|
||||||
dyndns.lastIP:=externalIP
|
dyndns.lastIP:=externalIP
|
||||||
else
|
else
|
||||||
msgDlg('DNS update failed.'#13+s+'.'#13'User intervention is required.', MB_ICONERROR);
|
msgDlg(format(MSG_DDNS_FAIL, [s]), MB_ICONERROR);
|
||||||
mainfrm.setStatusBarText('');
|
mainfrm.setStatusBarText('');
|
||||||
end; // updateDynDNS
|
end; // updateDynDNS
|
||||||
|
|
||||||
@ -3356,27 +3375,29 @@ end; // getAccountList
|
|||||||
|
|
||||||
function banAddress(ip:string):boolean;
|
function banAddress(ip:string):boolean;
|
||||||
resourcestring
|
resourcestring
|
||||||
MSG_IP_MASK = 'IP mask';
|
MSG_BAN_MASK = 'Ban IP mask';
|
||||||
MSG_IP_MASK_LONG = 'You can edit the address.'#13'Masks and ranges are allowed.';
|
MSG_IP_MASK_LONG = 'You can edit the address.'#13'Masks and ranges are allowed.';
|
||||||
MSG_KICK_ADDR = 'There are %d open connections from this address.'
|
MSG_KICK_ADDR = 'There are %d open connections from this address.'#13'Do you want to kick them all now?';
|
||||||
+#13'Do you want to kick them all now?';
|
MSG_BAN_ALREADY = 'This IP address is already banned';
|
||||||
|
MSG_BAN_CMT = 'Ban comment';
|
||||||
|
MSG_BAN_CMT_LONG = 'A comment for this ban...';
|
||||||
var
|
var
|
||||||
i: integer;
|
i: integer;
|
||||||
comm: string;
|
comm: string;
|
||||||
begin
|
begin
|
||||||
result:=FALSE;
|
result:=FALSE;
|
||||||
mainfrm.setFocus();
|
mainfrm.setFocus();
|
||||||
if not InputQuery(MSG_IP_MASK,MSG_IP_MASK_LONG,ip) then exit;
|
if not InputQuery(MSG_BAN_MASK,MSG_IP_MASK_LONG,ip) then exit;
|
||||||
|
|
||||||
for i:=0 to length(banlist)-1 do
|
for i:=0 to length(banlist)-1 do
|
||||||
if banlist[i].ip = ip then
|
if banlist[i].ip = ip then
|
||||||
begin
|
begin
|
||||||
msgDlg('This IP address is already banned', MB_ICONWARNING);
|
msgDlg(MSG_BAN_ALREADY, MB_ICONWARNING);
|
||||||
exit;
|
exit;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
comm:='';
|
comm:='';
|
||||||
if not InputQuery('Ban comment','A comment for this ban...',comm) then exit;
|
if not InputQuery(MSG_BAN_CMT,MSG_BAN_CMT_LONG,comm) then exit;
|
||||||
|
|
||||||
i:=length(banlist);
|
i:=length(banlist);
|
||||||
setlength(banlist, i+1);
|
setlength(banlist, i+1);
|
||||||
@ -4073,7 +4094,7 @@ procedure setupDownloadIcon(data:TconnData);
|
|||||||
data.tray.setIcon(data.tray_ico);
|
data.tray.setIcon(data.tray_ico);
|
||||||
data.tray.setTip(
|
data.tray.setTip(
|
||||||
if_( data.conn.reply.bodyMode=RBM_STRING, decodeURL(data.conn.request.url), data.lastFN )
|
if_( data.conn.reply.bodyMode=RBM_STRING, decodeURL(data.conn.request.url), data.lastFN )
|
||||||
+trayNL+format('%.1f KB/s', [data.averageSpeed/1000])
|
+trayNL+format(MSG_SPEED_KBS, [data.averageSpeed/1000])
|
||||||
+trayNL+dotted(data.conn.bytesSentLastItem)+' bytes sent'
|
+trayNL+dotted(data.conn.bytesSentLastItem)+' bytes sent'
|
||||||
+trayNL+data.address
|
+trayNL+data.address
|
||||||
);
|
);
|
||||||
@ -4531,6 +4552,23 @@ tplLast:=0;
|
|||||||
end; // setNewTplFile
|
end; // setNewTplFile
|
||||||
|
|
||||||
procedure Tmainfrm.httpEvent(event:ThttpEvent; conn:ThttpConn);
|
procedure Tmainfrm.httpEvent(event:ThttpEvent; conn:ThttpConn);
|
||||||
|
resourcestring
|
||||||
|
MSG_LOG_SERVER_START = 'Server start';
|
||||||
|
MSG_LOG_SERVER_STOP = 'Server stop';
|
||||||
|
MSG_LOG_CONNECTED = 'Connected';
|
||||||
|
MSG_LOG_DISC_SRV = 'Disconnected by server';
|
||||||
|
MSG_LOG_DISC = 'Disconnected';
|
||||||
|
MSG_LOG_GOT = 'Got %d bytes';
|
||||||
|
MSG_LOG_BYTES_SENT = '%s bytes sent';
|
||||||
|
MSG_LOG_SERVED = 'Served %s';
|
||||||
|
MSG_LOG_HEAD = 'Served head';
|
||||||
|
MSG_LOG_NOT_MOD = 'Not modified, use cache';
|
||||||
|
MSG_LOG_REDIR = 'Redirected to %s';
|
||||||
|
MSG_LOG_NOT_SERVED = 'Not served: %d - %s';
|
||||||
|
MSG_LOG_UPL = 'Uploading %s';
|
||||||
|
MSG_LOG_UPLOADED = 'Fully uploaded %s - %s @ %sB/s';
|
||||||
|
MSG_LOG_UPL_FAIL = 'Upload failed %s';
|
||||||
|
MSG_LOG_DL = 'Fully downloaded - %s @ %sB/s - %s';
|
||||||
var
|
var
|
||||||
data: TconnData;
|
data: TconnData;
|
||||||
f: Tfile;
|
f: Tfile;
|
||||||
@ -4620,15 +4658,14 @@ var
|
|||||||
if not (event in [HE_OPEN, HE_CLOSE])
|
if not (event in [HE_OPEN, HE_CLOSE])
|
||||||
and addressMatch(dontLogAddressMask, data.address) then
|
and addressMatch(dontLogAddressMask, data.address) then
|
||||||
exit;
|
exit;
|
||||||
|
|
||||||
case event of
|
case event of
|
||||||
HE_OPEN: if logServerstartChk.Checked then add2log('Server start');
|
HE_OPEN: if logServerstartChk.Checked then add2log(MSG_LOG_SERVER_START);
|
||||||
HE_CLOSE: if logServerstopChk.checked then add2log('Server stop');
|
HE_CLOSE: if logServerstopChk.checked then add2log(MSG_LOG_SERVER_STOP);
|
||||||
HE_CONNECTED: if logconnectionsChk.Checked then add2log('Connected', data);
|
HE_CONNECTED: if logconnectionsChk.Checked then add2log(MSG_LOG_CONNECTED, data);
|
||||||
HE_DISCONNECTED: if logDisconnectionsChk.checked then
|
HE_DISCONNECTED: if logDisconnectionsChk.checked then
|
||||||
add2log('Disconnected'+if_(conn.disconnectedByServer, ' by server')
|
add2log(if_(conn.disconnectedByServer, MSG_LOG_DISC_SRV,MSG_LOG_DISC)
|
||||||
+nonEmptyConcat(': ', data.disconnectReason)
|
+nonEmptyConcat(': ', data.disconnectReason)
|
||||||
+if_(conn.bytesSent>0, ' - '+intToStr(conn.bytesSent)+' bytes sent'),
|
+if_(conn.bytesSent>0, ' - '+format(MSG_LOG_BYTES_SENT, [dotted(conn.bytesSent)])),
|
||||||
data);
|
data);
|
||||||
HE_GOT:
|
HE_GOT:
|
||||||
begin
|
begin
|
||||||
@ -4639,7 +4676,7 @@ var
|
|||||||
inc(data.bytesGotGrouping.bytes, i)
|
inc(data.bytesGotGrouping.bytes, i)
|
||||||
else
|
else
|
||||||
begin
|
begin
|
||||||
add2log(format('Got %d bytes',[i+data.bytesGotGrouping.bytes]), data);
|
add2log(format(MSG_LOG_GOT,[i+data.bytesGotGrouping.bytes]), data);
|
||||||
data.bytesGotGrouping.since:=now();
|
data.bytesGotGrouping.since:=now();
|
||||||
data.bytesGotGrouping.bytes:=0;
|
data.bytesGotGrouping.bytes:=0;
|
||||||
end;
|
end;
|
||||||
@ -4654,7 +4691,7 @@ var
|
|||||||
inc(data.bytesSentGrouping.bytes, i)
|
inc(data.bytesSentGrouping.bytes, i)
|
||||||
else
|
else
|
||||||
begin
|
begin
|
||||||
add2log(format('Sent %d bytes',[i+data.bytesSentGrouping.bytes]), data);
|
add2log(format(MSG_LOG_BYTES_SENT,[dotted(i+data.bytesSentGrouping.bytes)]), data);
|
||||||
data.bytesSentGrouping.since:=now();
|
data.bytesSentGrouping.since:=now();
|
||||||
data.bytesSentGrouping.bytes:=0;
|
data.bytesSentGrouping.bytes:=0;
|
||||||
end;
|
end;
|
||||||
@ -4678,33 +4715,33 @@ var
|
|||||||
HE_REPLIED:
|
HE_REPLIED:
|
||||||
if logRepliesChk.checked then
|
if logRepliesChk.checked then
|
||||||
case conn.reply.mode of
|
case conn.reply.mode of
|
||||||
HRM_REPLY: if not data.fullDLlogged then add2log(format('Served %s', [smartSize(conn.bytesSentLastItem)]), data);
|
HRM_REPLY: if not data.fullDLlogged then add2log(format(MSG_LOG_SERVED, [smartSize(conn.bytesSentLastItem)]), data);
|
||||||
HRM_REPLY_HEADER: add2log('Served head', data);
|
HRM_REPLY_HEADER: add2log(MSG_LOG_HEAD, data);
|
||||||
HRM_NOT_MODIFIED: add2log('Not modified, use cache', data);
|
HRM_NOT_MODIFIED: add2log(MSG_LOG_NOT_MOD, data);
|
||||||
HRM_REDIRECT: add2log(format('Redirected to %s', [conn.reply.url]), data);
|
HRM_REDIRECT: add2log(format(MSG_LOG_REDIR, [conn.reply.url]), data);
|
||||||
else if not logOnlyServedChk.checked then
|
else if not logOnlyServedChk.checked then
|
||||||
add2log(format('Not served: %d - %s', [HRM2CODE[conn.reply.mode], HRM2STR[conn.reply.mode] ])
|
add2log(format(MSG_LOG_NOT_SERVED, [HRM2CODE[conn.reply.mode], HRM2STR[conn.reply.mode] ])
|
||||||
+nonEmptyConcat(': ', data.error), data);
|
+nonEmptyConcat(': ', data.error), data);
|
||||||
end;
|
end;
|
||||||
HE_POST_FILE:
|
HE_POST_FILE:
|
||||||
if logUploadsChk.checked and (data.uploadFailed = '') then
|
if logUploadsChk.checked and (data.uploadFailed = '') then
|
||||||
add2log(format('Uploading %s', [data.uploadSrc]), data);
|
add2log(format(MSG_LOG_UPL, [data.uploadSrc]), data);
|
||||||
HE_POST_END_FILE:
|
HE_POST_END_FILE:
|
||||||
if logUploadsChk.checked then
|
if logUploadsChk.checked then
|
||||||
if data.uploadFailed = '' then
|
if data.uploadFailed = '' then
|
||||||
add2log(format('Fully uploaded %s - %s @ %sB/s', [
|
add2log(format(MSG_LOG_UPLOADED, [
|
||||||
data.uploadSrc,
|
data.uploadSrc,
|
||||||
smartSize(conn.bytesPostedLastItem),
|
smartSize(conn.bytesPostedLastItem),
|
||||||
smartSize(calcAverageSpeed(conn.bytesPostedLastItem)) ]), data)
|
smartSize(calcAverageSpeed(conn.bytesPostedLastItem)) ]), data)
|
||||||
else
|
else
|
||||||
add2log(format('Upload failed %s', [data.uploadSrc]), data);
|
add2log(format(MSG_LOG_UPL_FAIL, [data.uploadSrc]), data);
|
||||||
HE_LAST_BYTE_DONE:
|
HE_LAST_BYTE_DONE:
|
||||||
if logFulldownloadsChk.checked
|
if logFulldownloadsChk.checked
|
||||||
and data.countAsDownload
|
and data.countAsDownload
|
||||||
and (data.downloadingWhat in [DW_FILE, DW_ARCHIVE]) then
|
and (data.downloadingWhat in [DW_FILE, DW_ARCHIVE]) then
|
||||||
begin
|
begin
|
||||||
data.fullDLlogged:=TRUE;
|
data.fullDLlogged:=TRUE;
|
||||||
add2log(format('Fully downloaded - %s @ %sB/s - %s', [
|
add2log(format(MSG_LOG_DL, [
|
||||||
smartSize(conn.bytesSentLastItem),
|
smartSize(conn.bytesSentLastItem),
|
||||||
smartSize(calcAverageSpeed(conn.bytesSentLastItem)),
|
smartSize(calcAverageSpeed(conn.bytesSentLastItem)),
|
||||||
decodedUrl()]), data);
|
decodedUrl()]), data);
|
||||||
@ -4817,7 +4854,7 @@ var
|
|||||||
procedure logUploadFailed();
|
procedure logUploadFailed();
|
||||||
begin
|
begin
|
||||||
if not logUploadsChk.checked then exit;
|
if not logUploadsChk.checked then exit;
|
||||||
add2log(format('Upload failed for %s: %s', [data.uploadSrc, data.uploadFailed]), data);
|
add2log(format(MSG_LOG_UPL_FAIL, [data.uploadSrc])+' : '+data.uploadFailed, data);
|
||||||
end; // logUploadFile
|
end; // logUploadFile
|
||||||
|
|
||||||
function eventToFilename(event:string; table:array of string):string;
|
function eventToFilename(event:string; table:array of string):string;
|
||||||
@ -4888,7 +4925,7 @@ var
|
|||||||
|
|
||||||
function sessionSetup():boolean;
|
function sessionSetup():boolean;
|
||||||
var
|
var
|
||||||
sid, s: string;
|
sid: string;
|
||||||
begin
|
begin
|
||||||
result:=TRUE;
|
result:=TRUE;
|
||||||
if data = NIL then
|
if data = NIL then
|
||||||
@ -5153,7 +5190,6 @@ var
|
|||||||
|
|
||||||
procedure deletion();
|
procedure deletion();
|
||||||
var
|
var
|
||||||
i: integer;
|
|
||||||
asUrl, s: string;
|
asUrl, s: string;
|
||||||
doneRes, done, errors: TStringDynArray;
|
doneRes, done, errors: TStringDynArray;
|
||||||
begin
|
begin
|
||||||
@ -5659,13 +5695,15 @@ var
|
|||||||
end; // lastByte
|
end; // lastByte
|
||||||
|
|
||||||
function canWriteFile():boolean;
|
function canWriteFile():boolean;
|
||||||
|
resourcestring
|
||||||
|
MSG_MIN_DISK_REACHED = 'Minimum disk space reached.';
|
||||||
begin
|
begin
|
||||||
result:=FALSE;
|
result:=FALSE;
|
||||||
if data.f = NIL then exit;
|
if data.f = NIL then exit;
|
||||||
result:= minDiskSpace <= diskSpaceAt(data.uploadDest) div MEGA;
|
result:= minDiskSpace <= diskSpaceAt(data.uploadDest) div MEGA;
|
||||||
if result then exit;
|
if result then exit;
|
||||||
closeUploadingFile_partial();
|
closeUploadingFile_partial();
|
||||||
data.uploadFailed:='Minimum disk space reached.';
|
data.uploadFailed:=MSG_MIN_DISK_REACHED;
|
||||||
end; // canWriteFile
|
end; // canWriteFile
|
||||||
|
|
||||||
function complyUploadFilter():boolean;
|
function complyUploadFilter():boolean;
|
||||||
@ -5678,22 +5716,26 @@ var
|
|||||||
result:='\'+PROTECTED_FILES_MASK; // the user can disable this default filter by inputing * as mask
|
result:='\'+PROTECTED_FILES_MASK; // the user can disable this default filter by inputing * as mask
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
resourcestring
|
||||||
|
MSG_UPL_NAME_FORB = 'File name or extension forbidden.';
|
||||||
begin
|
begin
|
||||||
result:=validFilename(data.uploadSrc)
|
result:=validFilename(data.uploadSrc)
|
||||||
and not sameText(data.uploadSrc, DIFF_TPL_FILE) // never allow this
|
and not sameText(data.uploadSrc, DIFF_TPL_FILE) // never allow this
|
||||||
and not isExtension(data.uploadSrc, '.lnk') // security matters (by mars)
|
and not isExtension(data.uploadSrc, '.lnk') // security matters (by mars)
|
||||||
and fileMatch(getMask(), data.uploadSrc);
|
and fileMatch(getMask(), data.uploadSrc);
|
||||||
if not result then
|
if not result then
|
||||||
data.uploadFailed:='File name or extension forbidden.';
|
data.uploadFailed:=MSG_UPL_NAME_FORB;
|
||||||
end; // complyUploadFilter
|
end; // complyUploadFilter
|
||||||
|
|
||||||
function canCreateFile():boolean;
|
function canCreateFile():boolean;
|
||||||
|
resourcestring
|
||||||
|
MSG_UPL_CANT_CREATE = 'Error creating file.';
|
||||||
begin
|
begin
|
||||||
IOresult;
|
IOresult;
|
||||||
rewrite(data.f^, 1);
|
rewrite(data.f^, 1);
|
||||||
result:=IOresult=0;
|
result:=IOresult=0;
|
||||||
if result then exit;
|
if result then exit;
|
||||||
data.uploadFailed:='Error creating file.';
|
data.uploadFailed:=MSG_UPL_CANT_CREATE;
|
||||||
end; // canCreateFile
|
end; // canCreateFile
|
||||||
|
|
||||||
var
|
var
|
||||||
@ -5828,7 +5870,7 @@ case event of
|
|||||||
data.downloadingWhat:=DW_UNK;
|
data.downloadingWhat:=DW_UNK;
|
||||||
data.agent:=getAgentID(conn);
|
data.agent:=getAgentID(conn);
|
||||||
data.fileXferStart:=now();
|
data.fileXferStart:=now();
|
||||||
f:=findFileByURL(decodeURL(getTill('?',conn.request.url)));
|
f:=findFileByURL(decodeURL(AnsiString(getTill('?',conn.request.url))));
|
||||||
data.lastFile:=f; // auto-freeing
|
data.lastFile:=f; // auto-freeing
|
||||||
data.uploadSrc:=conn.post.filename;
|
data.uploadSrc:=conn.post.filename;
|
||||||
data.uploadFailed:='';
|
data.uploadFailed:='';
|
||||||
@ -5990,6 +6032,8 @@ if not VFSmodified and VFScounterMod then
|
|||||||
end;
|
end;
|
||||||
|
|
||||||
function checkVfsOnQuit():boolean;
|
function checkVfsOnQuit():boolean;
|
||||||
|
resourcestring
|
||||||
|
MSG_SAVE_VFS = 'Your current file system is not saved.'#13'Save it?';
|
||||||
var
|
var
|
||||||
s: string;
|
s: string;
|
||||||
begin
|
begin
|
||||||
@ -6006,7 +6050,7 @@ else if windowsShuttingDown then
|
|||||||
lastFileOpen:=s;
|
lastFileOpen:=s;
|
||||||
end
|
end
|
||||||
else
|
else
|
||||||
case msgDlg('Your current file system is not saved.'#13'Save it?', MB_ICONQUESTION+if_(quitASAP, MB_YESNO, MB_YESNOCANCEL)) of
|
case msgDlg(MSG_SAVE_VFS, MB_ICONQUESTION+if_(quitASAP, MB_YESNO, MB_YESNOCANCEL)) of
|
||||||
IDYES: mainfrm.saveVFS(lastFileOpen);
|
IDYES: mainfrm.saveVFS(lastFileOpen);
|
||||||
IDNO: ; // just go on
|
IDNO: ; // just go on
|
||||||
IDCANCEL: result:=FALSE;
|
IDCANCEL: result:=FALSE;
|
||||||
@ -6022,6 +6066,8 @@ VFSmodified:=inputqueryLong('Comment', format(MSG_INP_COMMENT, [f.name]), f.comm
|
|||||||
end; // inputComment
|
end; // inputComment
|
||||||
|
|
||||||
function Tmainfrm.addFile(f:Tfile; parent:Ttreenode=NIL; skipComment:boolean=FALSE):Tfile;
|
function Tmainfrm.addFile(f:Tfile; parent:Ttreenode=NIL; skipComment:boolean=FALSE):Tfile;
|
||||||
|
resourcestring
|
||||||
|
MSG_FILE_ADD_ABORT = 'File addition was aborted.'#13'The list of files is incomplete.';
|
||||||
begin
|
begin
|
||||||
abortBtn.show();
|
abortBtn.show();
|
||||||
stopAddingItems:=FALSE;
|
stopAddingItems:=FALSE;
|
||||||
@ -6029,7 +6075,7 @@ try result:=addFileRecur(f,parent);
|
|||||||
finally abortBtn.hide() end;
|
finally abortBtn.hide() end;
|
||||||
if result = NIL then exit;
|
if result = NIL then exit;
|
||||||
if stopAddingItems then
|
if stopAddingItems then
|
||||||
msgDlg('File addition was aborted.'#13'The list of files is incomplete.', MB_ICONWARNING);
|
msgDlg(MSG_FILE_ADD_ABORT, MB_ICONWARNING);
|
||||||
if assigned(parent) then parent.expanded:=TRUE;
|
if assigned(parent) then parent.expanded:=TRUE;
|
||||||
filesbox.Selected:=result.node;
|
filesbox.Selected:=result.node;
|
||||||
|
|
||||||
@ -6040,6 +6086,8 @@ inputComment(f);
|
|||||||
end; // addFile
|
end; // addFile
|
||||||
|
|
||||||
function Tmainfrm.addFileRecur(f:Tfile; parent:Ttreenode=NIL):Tfile;
|
function Tmainfrm.addFileRecur(f:Tfile; parent:Ttreenode=NIL):Tfile;
|
||||||
|
resourcestring
|
||||||
|
MSG_ADDING = 'Adding item #%d';
|
||||||
var
|
var
|
||||||
n: Ttreenode;
|
n: Ttreenode;
|
||||||
sr: TsearchRec;
|
sr: TsearchRec;
|
||||||
@ -6057,7 +6105,7 @@ if addingItemsCounter >= 0 then // counter enabled
|
|||||||
if addingItemsCounter and 15 = 0 then // step 16
|
if addingItemsCounter and 15 = 0 then // step 16
|
||||||
begin
|
begin
|
||||||
application.ProcessMessages();
|
application.ProcessMessages();
|
||||||
setStatusBarText(format('Adding item #%d', [addingItemsCounter]));
|
setStatusBarText(format(MSG_ADDING, [addingItemsCounter]));
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
@ -6152,6 +6200,8 @@ allowedit:=allowedit and not nodeToFile(node).isRoot()
|
|||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TmainFrm.filesBoxEdited(Sender:TObject; Node:TTreeNode; var S:String);
|
procedure TmainFrm.filesBoxEdited(Sender:TObject; Node:TTreeNode; var S:String);
|
||||||
|
resourcestring
|
||||||
|
MSG_INV_FILENAME = 'Invalid filename';
|
||||||
var
|
var
|
||||||
f: Tfile;
|
f: Tfile;
|
||||||
begin
|
begin
|
||||||
@ -6165,7 +6215,7 @@ or (pos('/',s) > 0)
|
|||||||
then
|
then
|
||||||
begin
|
begin
|
||||||
s:=node.text;
|
s:=node.text;
|
||||||
msgDlg('Invalid filename', MB_ICONERROR);
|
msgDlg(MSG_INV_FILENAME, MB_ICONERROR);
|
||||||
exit;
|
exit;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
@ -6195,6 +6245,8 @@ for i:=father+1 to length(nodes)-1 do
|
|||||||
end; // setNilChildrenFrom
|
end; // setNilChildrenFrom
|
||||||
|
|
||||||
procedure Tmainfrm.remove(node:Ttreenode=NIL);
|
procedure Tmainfrm.remove(node:Ttreenode=NIL);
|
||||||
|
resourcestring
|
||||||
|
MSG_DELETE = 'Delete?';
|
||||||
var
|
var
|
||||||
i: integer;
|
i: integer;
|
||||||
list: TtreenodeDynArray;
|
list: TtreenodeDynArray;
|
||||||
@ -6215,7 +6267,7 @@ if assigned(node) then
|
|||||||
i:=filesbox.SelectionCount;
|
i:=filesbox.SelectionCount;
|
||||||
if (i = 0) or (i = 1) and selectedFile.isRoot() then exit;
|
if (i = 0) or (i = 1) and selectedFile.isRoot() then exit;
|
||||||
if not deleteDontAskChk.checked
|
if not deleteDontAskChk.checked
|
||||||
and (msgDlg('Delete?', MB_ICONQUESTION+MB_YESNO) = IDNO) then
|
and (msgDlg(MSG_DELETE, MB_ICONQUESTION+MB_YESNO) = IDNO) then
|
||||||
exit;
|
exit;
|
||||||
list:=copySelection();
|
list:=copySelection();
|
||||||
// now proceed
|
// now proceed
|
||||||
@ -6334,7 +6386,7 @@ end; // setAutosave
|
|||||||
|
|
||||||
procedure updateMenuSpeed(menu:TMenuItem; lab:string; v:Float32);
|
procedure updateMenuSpeed(menu:TMenuItem; lab:string; v:Float32);
|
||||||
begin
|
begin
|
||||||
menu.caption:=lab + format(MSG_MENU_VAL, [if_(v<0, DISABLED, floatToStr(v)+' KB/s' )]);
|
menu.caption:=lab + format(MSG_MENU_VAL, [if_(v<0, DISABLED, format(MSG_SPEED_KBS, [v]))]);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure setSpeedLimitIP(v:real);
|
procedure setSpeedLimitIP(v:real);
|
||||||
@ -7554,6 +7606,8 @@ resourcestring
|
|||||||
MSG_UPD_SAVE_ERROR = 'Cannot save the update';
|
MSG_UPD_SAVE_ERROR = 'Cannot save the update';
|
||||||
MSG_UPD_REQ_ONLY1 = 'The auto-update feature cannot work because it requires the "Only 1 instance" option enabled.'
|
MSG_UPD_REQ_ONLY1 = 'The auto-update feature cannot work because it requires the "Only 1 instance" option enabled.'
|
||||||
+#13#13'Your browser will now be pointed to the update, so you can install it manually.';
|
+#13#13'Your browser will now be pointed to the update, so you can install it manually.';
|
||||||
|
MSG_UPD_WAIT = 'Waiting for last requests to be served, then we''ll update';
|
||||||
|
MSG_UPD_DL = 'Downloading new version...';
|
||||||
const
|
const
|
||||||
UPDATE_BATCH_FILE = 'hfs.update.bat';
|
UPDATE_BATCH_FILE = 'hfs.update.bat';
|
||||||
UPDATE_BATCH = 'START %0:s /WAIT "%1:s" -q'+CRLF
|
UPDATE_BATCH = 'START %0:s /WAIT "%1:s" -q'+CRLF
|
||||||
@ -7581,14 +7635,14 @@ and (srv.conns.count > 0) then
|
|||||||
updateASAP:=url;
|
updateASAP:=url;
|
||||||
stopServer();
|
stopServer();
|
||||||
mainfrm.kickidleconnections1Click(NIL);
|
mainfrm.kickidleconnections1Click(NIL);
|
||||||
mainfrm.setStatusBarText('Waiting for last requests to be served, then we''ll update', 20);
|
mainfrm.setStatusBarText(MSG_UPD_WAIT, 20);
|
||||||
exit;
|
exit;
|
||||||
end;
|
end;
|
||||||
// must ask BEFORE: when the batch will be running, nothing should stop it, or it will fail
|
// must ask BEFORE: when the batch will be running, nothing should stop it, or it will fail
|
||||||
if not checkVfsOnQuit() then exit;
|
if not checkVfsOnQuit() then exit;
|
||||||
VFSmodified:=FALSE;
|
VFSmodified:=FALSE;
|
||||||
|
|
||||||
progFrm.show('Downloading new version...', TRUE);
|
progFrm.show(MSG_UPD_DL, TRUE);
|
||||||
try
|
try
|
||||||
fn:=paramStr(0)+'.new';
|
fn:=paramStr(0)+'.new';
|
||||||
size:=sizeOfFile(fn);
|
size:=sizeOfFile(fn);
|
||||||
@ -7614,7 +7668,7 @@ if progFrm.cancelRequested then
|
|||||||
end;
|
end;
|
||||||
|
|
||||||
try
|
try
|
||||||
progFrm.show('Processing...');
|
progFrm.show(MSG_PROCESSING);
|
||||||
saveTextFile(UPDATE_BATCH_FILE, format(UPDATE_BATCH, [
|
saveTextFile(UPDATE_BATCH_FILE, format(UPDATE_BATCH, [
|
||||||
if_(isNT(), '""'),
|
if_(isNT(), '""'),
|
||||||
paramStr(0),
|
paramStr(0),
|
||||||
@ -7678,6 +7732,10 @@ procedure Tmainfrm.autoCheckUpdates();
|
|||||||
resourcestring
|
resourcestring
|
||||||
MSG_CHK_UPD = 'Checking for updates';
|
MSG_CHK_UPD = 'Checking for updates';
|
||||||
MSG_CHK_UPD_FAIL = 'Check update: failed';
|
MSG_CHK_UPD_FAIL = 'Check update: failed';
|
||||||
|
MSG_CHK_UPD_HEAD = 'Check update: ';
|
||||||
|
MSG_CHK_UPD_VER = 'new version found: %s';
|
||||||
|
MSG_CHK_UPD_VER_EXT = 'Build #%s (current is #%s)';
|
||||||
|
MSG_CHK_UPD_NONE = 'no new version';
|
||||||
var
|
var
|
||||||
info: Ttpl;
|
info: Ttpl;
|
||||||
updateURL, ver, build: string;
|
updateURL, ver, build: string;
|
||||||
@ -7712,9 +7770,9 @@ try
|
|||||||
thereSnew('untested');
|
thereSnew('untested');
|
||||||
// same version? we show build number
|
// same version? we show build number
|
||||||
if ver = VERSION then
|
if ver = VERSION then
|
||||||
ver:=format('Build #%s (current is #%s)', [build, VERSION_BUILD]);
|
ver:=format(MSG_CHK_UPD_VER_EXT, [build, VERSION_BUILD]);
|
||||||
if logOtherEventsChk.checked then
|
if logOtherEventsChk.checked then
|
||||||
add2log('Check update: '+ifThen(updateURL = '', 'no new version', 'new version found: '+ver));
|
add2log(MSG_CHK_UPD_HEAD+ifThen(updateURL = '', MSG_CHK_UPD_NONE, format(MSG_CHK_UPD_VER,[ver])));
|
||||||
parseVersionNotice(info['version notice']);
|
parseVersionNotice(info['version notice']);
|
||||||
setStatusBarText('');
|
setStatusBarText('');
|
||||||
if updateURL = '' then exit;
|
if updateURL = '' then exit;
|
||||||
@ -8400,6 +8458,8 @@ var
|
|||||||
|
|
||||||
resourcestring
|
resourcestring
|
||||||
MSG_ITEM_EXISTS = '%s item(s) already exists:'#13'%s'#13#13'Continue?';
|
MSG_ITEM_EXISTS = '%s item(s) already exists:'#13'%s'#13#13'Continue?';
|
||||||
|
MSG_INSTALL_TPL = 'Install this template?';
|
||||||
|
MSG_FOLDER_UPLOAD = 'Do you want ANYONE to be able to upload to this folder?';
|
||||||
const
|
const
|
||||||
MAX_DUPE = 50;
|
MAX_DUPE = 50;
|
||||||
var
|
var
|
||||||
@ -8418,14 +8478,14 @@ if singleLine(files) then
|
|||||||
|
|
||||||
// suggest template installation
|
// suggest template installation
|
||||||
if (lowerCase(extractFileExt(files)) = '.tpl')
|
if (lowerCase(extractFileExt(files)) = '.tpl')
|
||||||
and (msgDlg('Install this template?', MB_YESNO) = MRYES) then
|
and (msgDlg(MSG_INSTALL_TPL, MB_YESNO) = MRYES) then
|
||||||
begin
|
begin
|
||||||
setNewTplFile(files);
|
setNewTplFile(files);
|
||||||
exit;
|
exit;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
upload:=(ipos('upload', extractFilename(files)) > 0)
|
upload:=(ipos('upload', extractFilename(files)) > 0)
|
||||||
and (msgDlg('Do you want ANYONE to be able to upload to this folder?', MB_YESNO) = MRYES);
|
and (msgDlg(MSG_FOLDER_UPLOAD, MB_YESNO) = MRYES);
|
||||||
end;
|
end;
|
||||||
// warn upon double filenames
|
// warn upon double filenames
|
||||||
doubles:=NIL;
|
doubles:=NIL;
|
||||||
@ -8580,9 +8640,34 @@ procedure TmainFrm.appEventsShowHint(var HintStr: String; var CanShow: Boolean;
|
|||||||
end; // reduce
|
end; // reduce
|
||||||
|
|
||||||
function fileHint():string;
|
function fileHint():string;
|
||||||
const
|
resourcestring
|
||||||
INHERITED_LABEL = ' [inherited]';
|
MSG_VFS_DRAG_INVIT = 'Drag your files here';
|
||||||
EXTERNAL_LABEL = ' [external]';
|
MSG_VFS_URL = 'URL: %s';
|
||||||
|
MSG_VFS_PATH = 'Path: %s';
|
||||||
|
MSG_VFS_SIZE = 'Size: %s';
|
||||||
|
MSG_VFS_DLS = 'Downloads: %s';
|
||||||
|
MSG_VFS_INVISIBLE = 'Invisible';
|
||||||
|
MSG_VFS_DL_FORB = 'Download forbidden';
|
||||||
|
MSG_VFS_DONT_LOG = 'Don''t log';
|
||||||
|
MSG_VFS_HIDE_EMPTY = 'Hidden if empty';
|
||||||
|
MSG_VFS_NOT_BROW = 'Not browsable';
|
||||||
|
MSG_VFS_HIDE_EMPTY_FLD = 'Hide empty folders';
|
||||||
|
MSG_VFS_HIDE_EXT = 'Hide extention';
|
||||||
|
MSG_VFS_ARCABLE = 'Archivable';
|
||||||
|
MSG_VFS_DEF_MASK = 'Default file mask: %s';
|
||||||
|
MSG_VFS_ACCESS = 'Access for';
|
||||||
|
MSG_VFS_UPLOAD = 'Upload allowed for';
|
||||||
|
MSG_VFS_DELETE = 'Delete allowed for';
|
||||||
|
MSG_VFS_COMMENT = 'Comment: %s';
|
||||||
|
MSG_VFS_REALM = 'Realm: %s';
|
||||||
|
MSG_VFS_DIFF_TPL = 'Diff template: %s';
|
||||||
|
MSG_VFS_FILES_FLT = 'Files filter: %s';
|
||||||
|
MSG_VFS_FLD_FLT = 'Folders filter: %s';
|
||||||
|
MSG_VFS_UPL_FLT = 'Upload filter: %s';
|
||||||
|
MSG_VFS_DONT_CONS_DL = 'Don''t consider as download';
|
||||||
|
MSG_VFS_DONT_CONS_DL_MASK = 'Don''t consider as download (mask): %s';
|
||||||
|
MSG_VFS_INHERITED = ' [inherited]';
|
||||||
|
MSG_VFS_EXTERNAL = ' [external]';
|
||||||
var
|
var
|
||||||
f, parent: Tfile;
|
f, parent: Tfile;
|
||||||
s, s2: string;
|
s, s2: string;
|
||||||
@ -8596,7 +8681,7 @@ procedure TmainFrm.appEventsShowHint(var HintStr: String; var CanShow: Boolean;
|
|||||||
inh: boolean;
|
inh: boolean;
|
||||||
begin
|
begin
|
||||||
result:=if_(f.hasRecursive(att, @inh), #13+lbl);
|
result:=if_(f.hasRecursive(att, @inh), #13+lbl);
|
||||||
result:=result+if_(inh, INHERITED_LABEL);
|
result:=result+if_(inh, MSG_VFS_INHERITED);
|
||||||
end; // flagR
|
end; // flagR
|
||||||
|
|
||||||
procedure perm(action:TfileAction; msg:string);
|
procedure perm(action:TfileAction; msg:string);
|
||||||
@ -8604,86 +8689,87 @@ procedure TmainFrm.appEventsShowHint(var HintStr: String; var CanShow: Boolean;
|
|||||||
s: string;
|
s: string;
|
||||||
begin
|
begin
|
||||||
s:=join(', ', f.getAccountsFor(action, TRUE, @inheritd));
|
s:=join(', ', f.getAccountsFor(action, TRUE, @inheritd));
|
||||||
if (s > '') and inheritd then s:=s+INHERITED_LABEL;
|
if (s > '') and inheritd then s:=s+MSG_VFS_INHERITED;
|
||||||
if s > '' then result:=result+#13+msg+': '+s;
|
if s > '' then result:=result+#13+msg+': '+s;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
begin
|
begin
|
||||||
result:=if_(HintsfornewcomersChk.checked,'Drag your files here');
|
result:=if_(HintsfornewcomersChk.checked,MSG_VFS_DRAG_INVIT);
|
||||||
f:=pointedFile();
|
f:=pointedFile();
|
||||||
if f = NIL then exit;
|
if f = NIL then exit;
|
||||||
parent:=f.parent;
|
parent:=f.parent;
|
||||||
|
|
||||||
result:='URL: '+f.url()
|
result:=format(MSG_VFS_URL,[f.url()])
|
||||||
+if_(f.isRealFolder() or f.isFile(), #13'Path: '+f.resource);
|
+if_(f.isRealFolder() or f.isFile(), #13+format(MSG_VFS_PATH,[f.resource]));
|
||||||
if f.isFile() then
|
if f.isFile() then
|
||||||
result:=result+format(#13'Size: %s'#13'Downloads: %d',
|
result:=result+format(#13+MSG_VFS_SIZE+#13+MSG_VFS_DLS,
|
||||||
[ smartsize(sizeofFile(f.resource)), f.DLcount ]);
|
[ smartsize(sizeofFile(f.resource)), f.DLcount ]);
|
||||||
|
|
||||||
s:=flagR('Invisible', FA_HIDDENTREE, TRUE);
|
s:=flagR(MSG_VFS_INVISIBLE, FA_HIDDENTREE, TRUE);
|
||||||
if s = '' then s:=flag('Invisible', FA_HIDDEN);
|
if s = '' then s:=flag(MSG_VFS_INVISIBLE, FA_HIDDEN);
|
||||||
result:=result+s
|
result:=result+s
|
||||||
+flag('Download forbidden', FA_DL_FORBIDDEN)
|
+flag(MSG_VFS_DL_FORB, FA_DL_FORBIDDEN)
|
||||||
+flagR('Don''t log', FA_DONT_LOG);
|
+flagR(MSG_VFS_DONT_LOG, FA_DONT_LOG);
|
||||||
|
|
||||||
if f.isFolder() then
|
if f.isFolder() then
|
||||||
begin
|
begin
|
||||||
if assigned(parent) and parent.hasRecursive(FA_HIDE_EMPTY_FOLDERS) then
|
if assigned(parent) and parent.hasRecursive(FA_HIDE_EMPTY_FOLDERS) then
|
||||||
result:=result+#13'Hidden if empty'+INHERITED_LABEL;
|
result:=result+#13+MSG_VFS_HIDE_EMPTY+MSG_VFS_INHERITED;
|
||||||
|
|
||||||
result:=result
|
result:=result
|
||||||
+flag('Not browsable', FA_BROWSABLE, FALSE)
|
+flag(MSG_VFS_NOT_BROW, FA_BROWSABLE, FALSE)
|
||||||
+flag('Hide empty folders', FA_HIDE_EMPTY_FOLDERS)
|
+flag(MSG_VFS_HIDE_EMPTY_FLD, FA_HIDE_EMPTY_FOLDERS)
|
||||||
+flagR('Hide extention', FA_HIDE_EXT)
|
+flagR(MSG_VFS_HIDE_EXT, FA_HIDE_EXT)
|
||||||
+flagR('Archivable', FA_ARCHIVABLE)
|
+flagR(MSG_VFS_ARCABLE, FA_ARCHIVABLE)
|
||||||
end;
|
end;
|
||||||
|
|
||||||
s:=f.getRecursiveFileMask();
|
s:=f.getRecursiveFileMask();
|
||||||
if (s > '') and (f.defaultFileMask = '') then s:=s+INHERITED_LABEL;
|
if (s > '') and (f.defaultFileMask = '') then s:=s+MSG_VFS_INHERITED;
|
||||||
if s > '' then result:=result+#13'Default file mask: '+s;
|
if s > '' then result:=result+#13+format(MSG_VFS_DEF_MASK,[s]);
|
||||||
|
|
||||||
perm(FA_ACCESS, 'Access for');
|
perm(FA_ACCESS, MSG_VFS_ACCESS);
|
||||||
if f.isRealFolder() then perm(FA_UPLOAD, 'Upload allowed for');
|
if f.isRealFolder() then perm(FA_UPLOAD, MSG_VFS_UPLOAD);
|
||||||
perm(FA_DELETE, 'Delete allowed for');
|
perm(FA_DELETE, MSG_VFS_DELETE);
|
||||||
|
|
||||||
s:=reduce(f.getDynamicComment());
|
s:=reduce(f.getDynamicComment());
|
||||||
if (s > '') and (f.comment = '') then s:=s+EXTERNAL_LABEL;
|
if (s > '') and (f.comment = '') then s:=s+MSG_VFS_EXTERNAL;
|
||||||
if s > '' then result:=result+#13'Comment: '+s;
|
if s > '' then result:=result+#13+format(MSG_VFS_COMMENT,[s]);
|
||||||
|
|
||||||
s:=reduce(f.getShownRealm());
|
s:=reduce(f.getShownRealm());
|
||||||
if (s > '') and (f.realm = '') then s:=s+INHERITED_LABEL;
|
if (s > '') and (f.realm = '') then s:=s+MSG_VFS_INHERITED;
|
||||||
if s > '' then result:=result+#13'Realm: '+s;
|
if s > '' then result:=result+#13+format(MSG_VFS_REALM,[s]);
|
||||||
|
|
||||||
s:=reduce(f.getRecursiveDiffTplAsStr(@inheritd, @externl));
|
s:=reduce(f.getRecursiveDiffTplAsStr(@inheritd, @externl));
|
||||||
if s > '' then
|
if s > '' then
|
||||||
begin
|
begin
|
||||||
if inheritd then s:=s+INHERITED_LABEL;
|
if inheritd then s:=s+MSG_VFS_INHERITED;
|
||||||
if externl then s:=s+EXTERNAL_LABEL;
|
if externl then s:=s+MSG_VFS_EXTERNAL;
|
||||||
result:=result+#13'Diff template: '+s;
|
result:=result+#13+format(MSG_VFS_DIFF_TPL,[s]);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
f.getFiltersRecursively(s, s2);
|
f.getFiltersRecursively(s, s2);
|
||||||
result:=result
|
result:=result
|
||||||
+if_(s>'', #13'Files filter: '+s
|
+if_(s>'', #13+format(MSG_VFS_FILES_FLT,[s])
|
||||||
+if_(f.filesFilter = '', INHERITED_LABEL))
|
+if_(f.filesFilter = '', MSG_VFS_INHERITED))
|
||||||
+if_(s2>'', #13'Folders filter: '+s2
|
+if_(s2>'', #13+format(MSG_VFS_FLD_FLT, [s2])
|
||||||
+if_(f.foldersFilter = '', INHERITED_LABEL))
|
+if_(f.foldersFilter = '', MSG_VFS_INHERITED))
|
||||||
+if_(f.uploadFilterMask>'', #13'Upload filter: '+f.uploadFilterMask)
|
+if_(f.uploadFilterMask>'', #13+format(MSG_VFS_UPL_FLT,[f.uploadFilterMask]))
|
||||||
+flag('Don''t consider as download', FA_DONT_COUNT_AS_DL)
|
+flag(MSG_VFS_DONT_CONS_DL, FA_DONT_COUNT_AS_DL)
|
||||||
+if_(f.dontCountAsDownloadMask>'',
|
+if_(f.dontCountAsDownloadMask>'',
|
||||||
#13'Don''t consider as download (mask): '+f.dontCountAsDownloadMask)
|
#13+format(MSG_VFS_DONT_CONS_DL_MASK, [f.dontCountAsDownloadMask]))
|
||||||
end; // filehint
|
end; // filehint
|
||||||
|
|
||||||
function connHint():string;
|
function connHint():string;
|
||||||
|
resourcestring
|
||||||
|
MSG_CON_HINT = 'Connection time: %s'#13'Last request time: %s'#13'Agent: %s';
|
||||||
var
|
var
|
||||||
cd: TconnData;
|
cd: TconnData;
|
||||||
begin
|
begin
|
||||||
cd:=pointedConnection();
|
cd:=pointedConnection();
|
||||||
|
if assigned(cd) then
|
||||||
|
result:=format(MSG_CON_HINT, [dateTimeToStr(cd.time), dateTimeToStr(cd.requestTime), first(cd.agent,'<unknown>')])
|
||||||
|
else
|
||||||
result:=if_(HintsForNewcomersChk.checked, 'This box shows info about current connections');
|
result:=if_(HintsForNewcomersChk.checked, 'This box shows info about current connections');
|
||||||
if cd = NIL then exit;
|
|
||||||
result:='Connection time: '+dateTimeToStr(cd.time)
|
|
||||||
+#13'Last request time: '+dateTimeToStr(cd.requestTime)
|
|
||||||
+#13'Agent: '+first(cd.agent,'<unknown>');
|
|
||||||
end;
|
end;
|
||||||
|
|
||||||
begin
|
begin
|
||||||
@ -8940,8 +9026,17 @@ else if isReceivingFile(cd) then
|
|||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TmainFrm.connBoxData(Sender: TObject; Item: TListItem);
|
procedure TmainFrm.connBoxData(Sender: TObject; Item: TListItem);
|
||||||
|
resourcestring
|
||||||
|
MSG_CON_STATE_IDLE = 'idle';
|
||||||
|
MSG_CON_STATE_REQ = 'requesting';
|
||||||
|
MSG_CON_STATE_RCV = 'receiving';
|
||||||
|
MSG_CON_STATE_THINK = 'thinking';
|
||||||
|
MSG_CON_STATE_REP = 'replying';
|
||||||
|
MSG_CON_STATE_SEND = 'sending';
|
||||||
|
MSG_CON_STATE_DISC = 'disconnected';
|
||||||
const
|
const
|
||||||
HCS2STR :array [ThttpConnState] of string = ('idle', 'requesting', 'receiving', 'thinking', 'replying', 'sending', 'disconnected');
|
HCS2STR :array [ThttpConnState] of string = (MSG_CON_STATE_IDLE, MSG_CON_STATE_REQ, MSG_CON_STATE_RCV,
|
||||||
|
MSG_CON_STATE_THINK, MSG_CON_STATE_REP, MSG_CON_STATE_SEND, MSG_CON_STATE_DISC);
|
||||||
var
|
var
|
||||||
data: TconnData;
|
data: TconnData;
|
||||||
|
|
||||||
@ -8953,13 +9048,17 @@ var
|
|||||||
end;
|
end;
|
||||||
|
|
||||||
function getStatus():string;
|
function getStatus():string;
|
||||||
|
resourcestring
|
||||||
|
MSG_CON_PAUSED = 'paused';
|
||||||
|
MSG_CON_SENT = '%s / %s sent';
|
||||||
|
MSG_CON_RECEIVED = '%s / %s received';
|
||||||
begin
|
begin
|
||||||
if isSendingFile(data) then
|
if isSendingFile(data) then
|
||||||
begin
|
begin
|
||||||
if data.conn.paused then
|
if data.conn.paused then
|
||||||
result:='paused'
|
result:=MSG_CON_PAUSED
|
||||||
else
|
else
|
||||||
result:=format('%s / %s sent', [
|
result:=format(MSG_CON_SENT, [
|
||||||
dotted(data.conn.bytesSentLastItem),
|
dotted(data.conn.bytesSentLastItem),
|
||||||
dotted(data.conn.bytesPartial)
|
dotted(data.conn.bytesPartial)
|
||||||
]);
|
]);
|
||||||
@ -8967,7 +9066,7 @@ var
|
|||||||
end;
|
end;
|
||||||
if isReceivingFile(data) then
|
if isReceivingFile(data) then
|
||||||
begin
|
begin
|
||||||
result:=format('%s / %s received', [
|
result:=format(MSG_CON_received, [
|
||||||
dotted(data.conn.bytesPosted),
|
dotted(data.conn.bytesPosted),
|
||||||
dotted(data.conn.post.length)
|
dotted(data.conn.post.length)
|
||||||
]);
|
]);
|
||||||
@ -8987,7 +9086,7 @@ var
|
|||||||
else d:=data.averageSpeed;
|
else d:=data.averageSpeed;
|
||||||
end;
|
end;
|
||||||
if d < 1 then result:='-'
|
if d < 1 then result:='-'
|
||||||
else result:=format('%.1f KB/s',[d/1000])
|
else result:=format(MSG_SPEED_KBS,[d/1000])
|
||||||
end; // getSpeed
|
end; // getSpeed
|
||||||
|
|
||||||
var
|
var
|
||||||
@ -9131,12 +9230,14 @@ resetOptions1.Enabled:=TRUE;
|
|||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TmainFrm.Restoredefault1Click(Sender: TObject);
|
procedure TmainFrm.Restoredefault1Click(Sender: TObject);
|
||||||
|
resourcestring
|
||||||
|
MSG_TPL_RESET = 'The template has been reset';
|
||||||
begin
|
begin
|
||||||
if msgDlg('Continue?', MB_ICONQUESTION+MB_YESNO) = MRNO then exit;
|
if msgDlg(MSG_CONTINUE, MB_ICONQUESTION+MB_YESNO) = MRNO then exit;
|
||||||
tplFilename:='';
|
tplFilename:='';
|
||||||
tplLast:=-1;
|
tplLast:=-1;
|
||||||
tplImport:=TRUE;
|
tplImport:=TRUE;
|
||||||
setStatusBarText('The template has been reset');
|
setStatusBarText(MSG_TPL_RESET);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TmainFrm.Reverttopreviousversion1Click(Sender: TObject);
|
procedure TmainFrm.Reverttopreviousversion1Click(Sender: TObject);
|
||||||
@ -9150,7 +9251,7 @@ const
|
|||||||
+'DEL %%0'+CRLF;
|
+'DEL %%0'+CRLF;
|
||||||
begin
|
begin
|
||||||
try
|
try
|
||||||
progFrm.show('Processing...');
|
progFrm.show(MSG_PROCESSING);
|
||||||
saveTextFile(FN, format(REVERT_BATCH, [
|
saveTextFile(FN, format(REVERT_BATCH, [
|
||||||
if_(isNT(), '""'),
|
if_(isNT(), '""'),
|
||||||
paramStr(0),
|
paramStr(0),
|
||||||
@ -9167,8 +9268,7 @@ begin setTrayShows('connections') end;
|
|||||||
procedure TmainFrm.NumberofdifferentIPaddresses1Click(Sender: TObject);
|
procedure TmainFrm.NumberofdifferentIPaddresses1Click(Sender: TObject);
|
||||||
begin setTrayShows('ips') end;
|
begin setTrayShows('ips') end;
|
||||||
|
|
||||||
procedure TmainFrm.NumberofdifferentIPaddresseseverconnected1Click(
|
procedure TmainFrm.NumberofdifferentIPaddresseseverconnected1Click(Sender: TObject);
|
||||||
Sender: TObject);
|
|
||||||
begin setTrayShows('ips-ever') end;
|
begin setTrayShows('ips-ever') end;
|
||||||
|
|
||||||
procedure TmainFrm.Numberofloggeddownloads1Click(Sender: TObject);
|
procedure TmainFrm.Numberofloggeddownloads1Click(Sender: TObject);
|
||||||
@ -9605,20 +9705,22 @@ VFSmodified:=TRUE
|
|||||||
end;
|
end;
|
||||||
|
|
||||||
function blockLoadSave():boolean;
|
function blockLoadSave():boolean;
|
||||||
|
resourcestring MSG_CANT_LOAD_SAVE = 'Cannot load or save while adding files';
|
||||||
begin
|
begin
|
||||||
result:=addingItemsCounter > 0;
|
result:=addingItemsCounter > 0;
|
||||||
if not result then exit;
|
if not result then exit;
|
||||||
msgDlg('Cannot load or save while adding files', MB_ICONERROR);
|
msgDlg(MSG_CANT_LOAD_SAVE, MB_ICONERROR);
|
||||||
end; // blockLoadSave
|
end; // blockLoadSave
|
||||||
|
|
||||||
procedure TmainFrm.Loadfilesystem1Click(Sender: TObject);
|
procedure TmainFrm.Loadfilesystem1Click(Sender: TObject);
|
||||||
|
resourcestring MSG_OPEN_VFS = 'Open VFS file';
|
||||||
var
|
var
|
||||||
fn: string;
|
fn: string;
|
||||||
begin
|
begin
|
||||||
if blockLoadSave() then exit;
|
if blockLoadSave() then exit;
|
||||||
if not checkVfsOnQuit() then exit;
|
if not checkVfsOnQuit() then exit;
|
||||||
fn:='';
|
fn:='';
|
||||||
if promptForFileName(fn, 'VirtualFileSystem|*.vfs', 'vfs', 'Open VFS file') then
|
if promptForFileName(fn, 'VirtualFileSystem|*.vfs', 'vfs', MSG_OPEN_VFS) then
|
||||||
loadVFS(fn);
|
loadVFS(fn);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
@ -9679,10 +9781,10 @@ cnv.Font.Name:='Small Fonts';
|
|||||||
cnv.font.size:=7;
|
cnv.font.size:=7;
|
||||||
SetBkMode(cnv.handle, TRANSPARENT);
|
SetBkMode(cnv.handle, TRANSPARENT);
|
||||||
top:=(graph.maxV/1000)*safeDiv(10.0, graph.rate);
|
top:=(graph.maxV/1000)*safeDiv(10.0, graph.rate);
|
||||||
s:=format(TOP_SPEED+': %.1f KB/s --- %d kbps', [top, round(top*8)]);
|
s:=format(TOP_SPEED+':'+MSG_SPEED_KBS+' --- %d kbps', [top, round(top*8)]);
|
||||||
cnv.TextOut(r.right-cnv.TextWidth(s)-20, 3, s);
|
cnv.TextOut(r.right-cnv.TextWidth(s)-20, 3, s);
|
||||||
if assigned(globalLimiter) and (globalLimiter.maxSpeed < MAXINT) then
|
if assigned(globalLimiter) and (globalLimiter.maxSpeed < MAXINT) then
|
||||||
cnv.TextOut(r.right-180+25, 15, format(LIMIT+': %.1f KB/s', [globalLimiter.maxSpeed/1000]));
|
cnv.TextOut(r.right-180+25, 15, format(LIMIT+': '+MSG_SPEED_KBS, [globalLimiter.maxSpeed/1000]));
|
||||||
end; // drawGraphOn
|
end; // drawGraphOn
|
||||||
|
|
||||||
procedure TmainFrm.graphBoxPaint(Sender: TObject);
|
procedure TmainFrm.graphBoxPaint(Sender: TObject);
|
||||||
@ -11874,6 +11976,11 @@ function Tmainfrm.finalInit():boolean;
|
|||||||
end;
|
end;
|
||||||
end; // strToConnColumns
|
end; // strToConnColumns
|
||||||
|
|
||||||
|
resourcestring
|
||||||
|
MSG_TRAY_DEF = '%ip%'#13'Uptime: %uptime%'#13'Downloads: %downloads%';
|
||||||
|
MSG_CLEAN_START = 'Clean start';
|
||||||
|
MSG_RESTORE_BAK = 'A file system backup has been created for a system shutdown.'#13'Do you want to restore this backup?';
|
||||||
|
MSG_EXT_ADDR_FAIL = 'Search for external address failed';
|
||||||
var
|
var
|
||||||
params: TStringDynArray;
|
params: TStringDynArray;
|
||||||
begin
|
begin
|
||||||
@ -11890,9 +11997,7 @@ sbar.canvas.font.assign(sbar.font); // this is just a workaround, i don't exactl
|
|||||||
// some windows versions do not support multiline tray tips
|
// some windows versions do not support multiline tray tips
|
||||||
if winVersion < WV_2000 then trayNL:=' ';
|
if winVersion < WV_2000 then trayNL:=' ';
|
||||||
|
|
||||||
trayMsg:='%ip%'
|
trayMsg:=MSG_TRAY_DEF;
|
||||||
+trayNL+'Uptime: %uptime%'
|
|
||||||
+trayNL+'Downloads: %downloads%';
|
|
||||||
|
|
||||||
startingImagesCount:=mainfrm.images.count;
|
startingImagesCount:=mainfrm.images.count;
|
||||||
srv:=ThttpSrv.create();
|
srv:=ThttpSrv.create();
|
||||||
@ -11902,9 +12007,8 @@ srv.onEvent:=httpEvent;
|
|||||||
tray_ico:=Ticon.create();
|
tray_ico:=Ticon.create();
|
||||||
tray:=TmyTrayicon.create(self);
|
tray:=TmyTrayicon.create(self);
|
||||||
DragAcceptFiles(handle, true);
|
DragAcceptFiles(handle, true);
|
||||||
caption:=format('HFS ~ HTTP File Server %s%sBuild %s',
|
caption:=format('HFS ~ HTTP File Server %s', [VERSION]);
|
||||||
[VERSION, stringOfChar(' ',80), VERSION_BUILD]);
|
application.Title:=format('HFS %s', [VERSION]);
|
||||||
application.Title:=format('HFS %s (%s)', [VERSION, VERSION_BUILD]);
|
|
||||||
setSpeedLimit(-1);
|
setSpeedLimit(-1);
|
||||||
setSpeedLimitIP(-1);
|
setSpeedLimitIP(-1);
|
||||||
setGraphRate(10);
|
setGraphRate(10);
|
||||||
@ -11936,7 +12040,7 @@ cfgLoaded:=FALSE;
|
|||||||
if not holdingKey(VK_SHIFT) then
|
if not holdingKey(VK_SHIFT) then
|
||||||
cfgLoaded:=loadAndApplyCFG()
|
cfgLoaded:=loadAndApplyCFG()
|
||||||
else
|
else
|
||||||
setStatusBarText('Clean start');
|
setStatusBarText(MSG_CLEAN_START);
|
||||||
|
|
||||||
// CTRL avoids the only1instance setting
|
// CTRL avoids the only1instance setting
|
||||||
if not holdingKey(VK_CONTROL)
|
if not holdingKey(VK_CONTROL)
|
||||||
@ -12002,7 +12106,7 @@ if not quitASAP then
|
|||||||
lastFileOpen:='';
|
lastFileOpen:='';
|
||||||
|
|
||||||
if getMtime(VFS_TEMP_FILE) > getMtime(lastFileOpen) then
|
if getMtime(VFS_TEMP_FILE) > getMtime(lastFileOpen) then
|
||||||
if msgDlg('A file system backup has been created for a system shutdown.'#13'Do you want to restore this backup?', MB_YESNO+MB_ICONWARNING) = MRYES then
|
if msgDlg(MSG_RESTORE_BAK, MB_YESNO+MB_ICONWARNING) = MRYES then
|
||||||
begin
|
begin
|
||||||
deleteFile(lastFileOpen+BAK_EXT);
|
deleteFile(lastFileOpen+BAK_EXT);
|
||||||
if renameFile(lastFileOpen, lastFileOpen+BAK_EXT) then
|
if renameFile(lastFileOpen, lastFileOpen+BAK_EXT) then
|
||||||
@ -12036,7 +12140,7 @@ show();
|
|||||||
strToConnColumns(serializedConnColumns);
|
strToConnColumns(serializedConnColumns);
|
||||||
if startminimizedChk.checked then application.Minimize();
|
if startminimizedChk.checked then application.Minimize();
|
||||||
if findExtOnStartupChk.checked and (externalIP = '') then
|
if findExtOnStartupChk.checked and (externalIP = '') then
|
||||||
setStatusBarText('Search for external address failed', 30);
|
setStatusBarText(MSG_EXT_ADDR_FAIL, 30);
|
||||||
updatePortBtn();
|
updatePortBtn();
|
||||||
fixAddToHFS();
|
fixAddToHFS();
|
||||||
filesBox.setFocus();
|
filesBox.setFocus();
|
||||||
@ -12054,13 +12158,14 @@ if srv.active then
|
|||||||
end; // finalInit
|
end; // finalInit
|
||||||
|
|
||||||
function expertModeNeededMsg():string;
|
function expertModeNeededMsg():string;
|
||||||
begin result:=if_(easyMode, 'Switch to expert mode.') end;
|
resourcestring MSG_TO_EXPERT = 'Switch to expert mode.';
|
||||||
|
begin result:=if_(easyMode, MSG_TO_EXPERT) end;
|
||||||
|
|
||||||
procedure TmainFrm.Dontlogsomefiles1Click(Sender: TObject);
|
procedure TmainFrm.Dontlogsomefiles1Click(Sender: TObject);
|
||||||
|
resourcestring MSG_DONT_LOG_HINT = 'Select the files/folder you don''t want to be logged,'
|
||||||
|
+#13'then right click and select "Don''t log".';
|
||||||
begin
|
begin
|
||||||
msgDlg(expertModeNeededMsg()
|
msgDlg(expertModeNeededMsg() +#13+MSG_DONT_LOG_HINT );
|
||||||
+#13'Select the files/folder you don''t want to be logged,'
|
|
||||||
+#13'then right click and select "Don''t log".');
|
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TmainFrm.progFrmHttpGetUpdate(sender:Tobject; buffer:pointer; len:integer);
|
procedure TmainFrm.progFrmHttpGetUpdate(sender:Tobject; buffer:pointer; len:integer);
|
||||||
@ -12073,9 +12178,10 @@ with sender as ThttpCli do
|
|||||||
end; // progFrmHttpGetUpdate
|
end; // progFrmHttpGetUpdate
|
||||||
|
|
||||||
procedure TmainFrm.statusBarHttpGetUpdate(sender:Tobject; buffer:pointer; len:integer);
|
procedure TmainFrm.statusBarHttpGetUpdate(sender:Tobject; buffer:pointer; len:integer);
|
||||||
|
resourcestring MSG_DL_PERC = 'Downloading %d%%';
|
||||||
begin
|
begin
|
||||||
with sender as ThttpCli do
|
with sender as ThttpCli do
|
||||||
setStatusBarText( 'Downloading '+intToStr(safeDiv(RcvdCount*100, contentLength))+'%' );
|
setStatusBarText( format(MSG_DL_PERC, [safeDiv(RcvdCount*100, contentLength)]) );
|
||||||
end; // statusBarHttpGetUpdate
|
end; // statusBarHttpGetUpdate
|
||||||
|
|
||||||
function purgeFilesCB(f:Tfile; childrenDone:boolean; par, par2:integer):TfileCallbackReturn;
|
function purgeFilesCB(f:Tfile; childrenDone:boolean; par, par2:integer):TfileCallbackReturn;
|
||||||
@ -12114,9 +12220,10 @@ f.recursiveApply(purgeFilesCB);
|
|||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TmainFrm.UninstallHFS1Click(Sender: TObject);
|
procedure TmainFrm.UninstallHFS1Click(Sender: TObject);
|
||||||
|
resourcestring MSG_UNINSTALL_WARN = 'Delete HFS and all settings?';
|
||||||
begin
|
begin
|
||||||
if checkMultiInstance() then exit;
|
if checkMultiInstance() then exit;
|
||||||
if msgDlg('Delete HFS and all settings?', MB_ICONQUESTION+MB_YESNO) <> IDYES then
|
if msgDlg(MSG_UNINSTALL_WARN, MB_ICONQUESTION+MB_YESNO) <> IDYES then
|
||||||
exit;
|
exit;
|
||||||
uninstall();
|
uninstall();
|
||||||
end;
|
end;
|
||||||
@ -12346,6 +12453,7 @@ procedure TmainFrm.defaultToRealChkClick(Sender: TObject);
|
|||||||
begin addFolderDefault:='real' end;
|
begin addFolderDefault:='real' end;
|
||||||
|
|
||||||
procedure TmainFrm.Addicons1Click(Sender: TObject);
|
procedure TmainFrm.Addicons1Click(Sender: TObject);
|
||||||
|
resourcestring MSG_ICONS_ADDED = '%d new icons added';
|
||||||
var
|
var
|
||||||
files: TStringDynArray;
|
files: TStringDynArray;
|
||||||
i, n: integer;
|
i, n: integer;
|
||||||
@ -12355,7 +12463,7 @@ n:=images.Count;
|
|||||||
for i:=0 to length(files)-1 do
|
for i:=0 to length(files)-1 do
|
||||||
getImageIndexForFile(files[i]);
|
getImageIndexForFile(files[i]);
|
||||||
n:=images.Count-n;
|
n:=images.Count-n;
|
||||||
msgDlg(format('%d new icons added',[n]));
|
msgDlg(format(MSG_ICONS_ADDED,[n]));
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TmainFrm.Iconmasks1Click(Sender: TObject);
|
procedure TmainFrm.Iconmasks1Click(Sender: TObject);
|
||||||
@ -12387,9 +12495,10 @@ procedure TmainFrm.filesBoxExit(Sender: TObject);
|
|||||||
begin setFilesBoxExtras(filesBox.MouseInClient) end;
|
begin setFilesBoxExtras(filesBox.MouseInClient) end;
|
||||||
|
|
||||||
procedure TmainFrm.Disable1Click(Sender: TObject);
|
procedure TmainFrm.Disable1Click(Sender: TObject);
|
||||||
|
resourcestring MSG_DDNS_DISABLED = 'Dynamic DNS updater disabled';
|
||||||
begin
|
begin
|
||||||
dyndns.url:='';
|
dyndns.url:='';
|
||||||
msgDlg('Dynamic DNS updater disabled');
|
msgDlg(MSG_DDNS_DISABLED);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TmainFrm.saveNewFingerprintsChkClick(Sender: TObject);
|
procedure TmainFrm.saveNewFingerprintsChkClick(Sender: TObject);
|
||||||
@ -12418,7 +12527,17 @@ except msgDlg(MSG_INVALID_VALUE, MB_ICONERROR) end;
|
|||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TmainFrm.Howto1Click(Sender: TObject);
|
procedure TmainFrm.Howto1Click(Sender: TObject);
|
||||||
begin msgDLg(getRes('uploadHowTo')) end;
|
resourcestring MSG_UPL_HOWTO = '1. Add a folder (choose "real folder")'
|
||||||
|
+#13
|
||||||
|
+#13'You should now see a RED folder in your virtual file sytem, inside HFS'
|
||||||
|
+#13
|
||||||
|
+#13'2. Right click on this folder'
|
||||||
|
+#13'3. Properties -> Permissions -> Upload'
|
||||||
|
+#13'4. Check on "Anyone"'
|
||||||
|
+#13'5. Ok'
|
||||||
|
+#13
|
||||||
|
+#13'Now anyone who has access to your HFS server can upload files to you.';
|
||||||
|
begin msgDLg(MSG_UPL_HOWTO) end;
|
||||||
|
|
||||||
procedure TmainFrm.Name1Click(Sender: TObject);
|
procedure TmainFrm.Name1Click(Sender: TObject);
|
||||||
begin defSorting:='name' end;
|
begin defSorting:='name' end;
|
||||||
|
|||||||
@ -834,7 +834,16 @@ procedure ToptionsFrm.okBtnClick(Sender: TObject);
|
|||||||
begin if saveValues() then close() end;
|
begin if saveValues() then close() end;
|
||||||
|
|
||||||
procedure ToptionsFrm.Button1Click(Sender: TObject);
|
procedure ToptionsFrm.Button1Click(Sender: TObject);
|
||||||
begin msgDlg(getRes('invertBan')) end;
|
resourcestring MSG_INVERT_BAN =
|
||||||
|
'Normal behavior of the Ban is to prevent access to the addresses you specify (also called black-list).'
|
||||||
|
+#13'If you want the opposite, to allow the addresses that you specify (white-list), enter all addresses in a single row preceded by a \ character.'
|
||||||
|
+#13
|
||||||
|
+#13'Let say you want to allow all your 192.168 local network plus your office at 1.1.1.1.'
|
||||||
|
+#13'Just put this IP address mask: \192.168.*;1.1.1.1'
|
||||||
|
+#13'The opening \ character inverts the logic, so everything else is banned.'
|
||||||
|
+#13
|
||||||
|
+#13'If you want to know more about address masks, check the guide.';
|
||||||
|
begin msgDlg(MSG_INVERT_BAN) end;
|
||||||
|
|
||||||
procedure ToptionsFrm.groupsBtnClick(Sender: TObject);
|
procedure ToptionsFrm.groupsBtnClick(Sender: TObject);
|
||||||
var
|
var
|
||||||
|
|||||||
2
todo.txt
2
todo.txt
@ -1,9 +1,7 @@
|
|||||||
- updateDynDNS() is not translatable
|
|
||||||
- update doesn't work without 'only 1 instance' (it's the -q)
|
- update doesn't work without 'only 1 instance' (it's the -q)
|
||||||
+ replace shellExtDlg.gif with transparent png (english system)
|
+ replace shellExtDlg.gif with transparent png (english system)
|
||||||
+ expiring links
|
+ expiring links
|
||||||
* dismiss regexp lib http://docwiki.embarcadero.com/Libraries/Rio/en/System.RegularExpressions.TRegEx
|
* dismiss regexp lib http://docwiki.embarcadero.com/Libraries/Rio/en/System.RegularExpressions.TRegEx
|
||||||
+ ipv6
|
|
||||||
+ load *.events
|
+ load *.events
|
||||||
+ url auth limited to resource
|
+ url auth limited to resource
|
||||||
+ global limit speed for downloads (browsing excluded)
|
+ global limit speed for downloads (browsing excluded)
|
||||||
|
|||||||
@ -1,10 +0,0 @@
|
|||||||
1. Add a folder (choose "real folder")
|
|
||||||
|
|
||||||
You should now see a RED folder in your virtual file sytem, inside HFS
|
|
||||||
|
|
||||||
2. Right click on this folder
|
|
||||||
3. Properties -> Permissions -> Upload
|
|
||||||
4. Check on "Anyone"
|
|
||||||
5. Ok
|
|
||||||
|
|
||||||
Now anyone who has access to your HFS server can upload files to you.
|
|
||||||
Loading…
Reference in New Issue
Block a user