Compare commits
1575 Commits
v1.2.5-RC2
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
| 3b9f137061 | |||
| 897fc8c4d4 | |||
| 2758e23381 | |||
| 9d9f5d06a8 | |||
| c589b59dd5 | |||
| dc84431768 | |||
| 0705ea6bae | |||
| c52e2eeb1f | |||
| 58dbe2c027 | |||
| 88c288fdda | |||
| f5e25dcb8d | |||
| e06311a514 | |||
| cb97394211 | |||
| dda51232b9 | |||
| a00cb2d38c | |||
| f92a0fe140 | |||
| b575fe893b | |||
| 54b1b35df5 | |||
| 06a0f742f2 | |||
| 3a5a15fe77 | |||
| 7123326515 | |||
| 4aa52a6b52 | |||
| 9234d80246 | |||
| 10be96814e | |||
| a6d867e4cc | |||
| 4b8de1897b | |||
| 09eaa5b7e3 | |||
| 2746bf5b45 | |||
| f9941827b1 | |||
| 48b4622aca | |||
| 2a442d333c | |||
| 84204a718a | |||
| 5be5c84a26 | |||
| a218924ba0 | |||
| 316417961a | |||
| b1da65fbe4 | |||
| 0aca063077 | |||
| 11091244f6 | |||
| d1a4092c61 | |||
| 11c80384f1 | |||
| ab236f2d6a | |||
| 97924574c4 | |||
| e3831b6f52 | |||
| c93f3bc5c3 | |||
| 278fdfd8c3 | |||
| 2836d0ea81 | |||
| ac7bdda074 | |||
| 057679a2bf | |||
| 5d923f8ca3 | |||
| 7d0714dd1a | |||
| 8dd55af6cd | |||
| 22c2a5c276 | |||
| f346bcc8fa | |||
| dc71f4a292 | |||
| dea18f997c | |||
| 71d11b6205 | |||
| 9da00a807d | |||
| cfc3e54f30 | |||
| 2dbe594da2 | |||
| 36b548140e | |||
| 3c5c47b91b | |||
| 6fc25c69f4 | |||
| ff997cb014 | |||
| 09599e4c20 | |||
| 844c73cd7f | |||
| d6cb1b119f | |||
| 52880f9d5a | |||
| 659d1f6ad9 | |||
| 7952075ce5 | |||
| 52d057ef18 | |||
| 869b040e92 | |||
| 0db88d63e3 | |||
| 92994b4997 | |||
| 638fb082c5 | |||
| fca80abbaf | |||
| a6bfd402b6 | |||
| a55b4c65d2 | |||
| 5ec9d8b623 | |||
| ff6b5736c3 | |||
| d47d7cc452 | |||
| 90022ce039 | |||
| 50a96809d8 | |||
| a08c124748 | |||
| b522a168e3 | |||
| e5cb38bd74 | |||
| 7dfb8b320e | |||
| 34c1e8a38a | |||
| 4fd96675f3 | |||
| a5edc4fc01 | |||
| 2a99d234ea | |||
| 8b61cad014 | |||
| bdd1949a96 | |||
| 9ea13af860 | |||
| b83d0214c7 | |||
| ef54781b77 | |||
| cc1567ac4b | |||
| f403eadb2c | |||
| 94c030829d | |||
| ce5aadf30d | |||
| 9fbf9e4ff4 | |||
| dc7f752128 | |||
| c1549d2909 | |||
| c509723f29 | |||
| 06e9d437e0 | |||
| 2d02452e17 | |||
| 630ac20a38 | |||
| f3dddfeb0e | |||
| 86c2d64dbf | |||
| 73cfbace70 | |||
| 18b76f3e23 | |||
| 6369056914 | |||
| 128c44f5a3 | |||
| 3264fdd1d9 | |||
| c2a0bee7dc | |||
| 9efa9471bd | |||
| f05f1eb80d | |||
| d65e257f92 | |||
| 8b8550e9ca | |||
| 81511e386a | |||
| 60f8cd1803 | |||
| 0bb33e7ea4 | |||
| 94de21361e | |||
| f0636d4369 | |||
| 0d7979e901 | |||
| 3cd3e4a888 | |||
| 29ec29bde7 | |||
| 6b834c745a | |||
| 5be6ec9e71 | |||
| 3d5465334c | |||
| f6d30a5b57 | |||
| d773b86906 | |||
| 1fbb802e8f | |||
| 5ff6106d37 | |||
| 26d868b123 | |||
| d7d692bb37 | |||
| d5c07f18ad | |||
| a1f0b0963b | |||
| 57f31ec7eb | |||
| c8908b7b34 | |||
| 42f8947e7c | |||
| 61d9bf34d3 | |||
| 9e236f65a3 | |||
| 762e8a739d | |||
| 78714e83cf | |||
| aa7e19b896 | |||
| cf7f601cb0 | |||
| c8881889c8 | |||
| 462931a309 | |||
| f92d3a3481 | |||
| 92d853ce3c | |||
| 2ae309abc3 | |||
| b5ae2d0351 | |||
| d3a29e7ad9 | |||
| 0bad2c7249 | |||
| 1c2c733190 | |||
| ffa8dc2bb8 | |||
| 7a4b57d1ff | |||
| d87726bd6e | |||
| 498c142198 | |||
| 3d43700556 | |||
| 762773cedb | |||
| c2a62804b0 | |||
| 9ef55ca07c | |||
| 3000e3aec0 | |||
| 59408774fb | |||
| e35b955159 | |||
| 3ddec99837 | |||
| fbb877ab11 | |||
| 216786a6de | |||
| dd836497e3 | |||
| 8412ccdc12 | |||
| 8f5c164e38 | |||
| c82f0a4fdd | |||
| f5600865e0 | |||
| 82a1127c64 | |||
| 0065e355aa | |||
| bf2127dbd0 | |||
| 5fa638a3e1 | |||
| e1255373cb | |||
| 4950009248 | |||
| 62e765f70a | |||
| 74654f2703 | |||
| 92de2ef16f | |||
| bb60dca5eb | |||
| 480474d7be | |||
| d15d55abe3 | |||
| 2b64983464 | |||
| c0a9f3155a | |||
| f86e98167f | |||
| 9b64d7d64d | |||
| 4609e200ae | |||
| 8b739c5a59 | |||
| 27cd77358c | |||
| 1418745b00 | |||
| 9bb87bf8d6 | |||
| 59df184bab | |||
| 7a1c96d2cb | |||
| d468e2ba8d | |||
| 57ba299543 | |||
| 48b1de8314 | |||
| 8e395d421e | |||
| 740ac61bb2 | |||
| 6660cdf6e2 | |||
| 670aa32325 | |||
| 5e705a124b | |||
| 9540ef6005 | |||
| f723d120d9 | |||
| fc2a1d8afe | |||
| bc629db132 | |||
| 0777291e80 | |||
| ce053ccfa6 | |||
| a15dd41550 | |||
| 09b6b34b05 | |||
| 9a7eb0f450 | |||
| 54e602c5e6 | |||
| 157dbfd08a | |||
| 666ab706a6 | |||
| 20cd4d7c44 | |||
| 4cbdd43738 | |||
| 833ea4fcb2 | |||
| eb1b20ab96 | |||
| 439e786294 | |||
| b79fb38300 | |||
| 93e183be62 | |||
| b33e9fc93e | |||
| 63e2fb9005 | |||
| 4fca0c4271 | |||
| e1ff07318e | |||
| e3151c1da9 | |||
| 2d2451f78d | |||
| 9154b9ba5b | |||
| f238aa5051 | |||
| 52e1b8bd86 | |||
| 433b8d5d1b | |||
| 4fa1d0f494 | |||
| 403dec5e39 | |||
| 9b65fed9f0 | |||
| a678946032 | |||
| c78cadb159 | |||
| 3ae38a14f0 | |||
| a63fe5b26c | |||
| dc47e1a511 | |||
| aa75f4455d | |||
| f93ab41140 | |||
| 78df776449 | |||
| bca8273fb5 | |||
| 4c2564e276 | |||
| bec3e355a9 | |||
| 5ad97801b0 | |||
| aeb7b08371 | |||
| e071f3e7b6 | |||
| 6a0f9f15e5 | |||
| 44beb6d15c | |||
| d738ec2121 | |||
| f709968463 | |||
| 7f9af84093 | |||
| fc4959c3bb | |||
| 235c69e9b9 | |||
| 7a8afbb353 | |||
| 413c39184d | |||
| f73641eff9 | |||
| 81837c9fe0 | |||
| df3b1a1a39 | |||
| 1b97952601 | |||
| e9ea91d260 | |||
| 6d2dd57df8 | |||
| 7ffd86e14a | |||
| 0376a00d73 | |||
| 6389c3b34e | |||
| 1aeea01c6f | |||
| c2c7ea84d5 | |||
| a6d95ae8f9 | |||
| dc582eec54 | |||
| bfa48a8ca9 | |||
| 19aed9f9c8 | |||
| af80380f23 | |||
| fbd5a55c5d | |||
| 7e4edb18d4 | |||
| 2e646af56a | |||
| 23d2a915dc | |||
| fa7ff6a9c6 | |||
| fda869f1dc | |||
| 1871e2e580 | |||
| 9897d92e53 | |||
| 1ef67972df | |||
| e90be519a7 | |||
| d04d18dff2 | |||
| 05fab1c999 | |||
| 8560c89e06 | |||
| d2768b1f11 | |||
| 60f87fd294 | |||
| 736d07a30b | |||
| 2bc3167dbd | |||
| 17e1b30175 | |||
| b78be61ee8 | |||
| 3b8b5871a6 | |||
| 19eca49d2a | |||
| 6d02706d4d | |||
| 550a92684e | |||
| e6f94c924d | |||
| b863ad6b78 | |||
| 157291c2d5 | |||
| 246f307980 | |||
| 67b9c0b462 | |||
| d82c75d7cc | |||
| 03ec0ddfbb | |||
| d02d09bb9a | |||
| dc98f61d69 | |||
| a62c975c7e | |||
| ee6e67243d | |||
| ef8c1ebb88 | |||
| b6a23d69d6 | |||
| 530812f810 | |||
| fd361d47ed | |||
| 401c8a7637 | |||
| a963f5a881 | |||
| 07217e25ab | |||
| 3ce9dfb10f | |||
| eddedfdf1b | |||
| 1f07d8eb15 | |||
| f4368f54c5 | |||
| bd032dff36 | |||
| e859e47d1b | |||
| 4175b06039 | |||
| 6df436c718 | |||
| b20f3a8762 | |||
| 503e1cf7d4 | |||
| 5fc25ab8f6 | |||
| 6381a2192e | |||
| b691e143a2 | |||
| afdf6ce778 | |||
| def0559a55 | |||
| 84cc97dc78 | |||
| 89df65c884 | |||
| 9331690b0d | |||
| c6189e5020 | |||
| 54f7682e1a | |||
| 1baa3f0fb6 | |||
| ed543e8825 | |||
| aa0493e4f0 | |||
| c7646bd600 | |||
| 9ea153b402 | |||
| d90810afd7 | |||
| d12ac86d66 | |||
| 8579bde607 | |||
| c7ab8534f1 | |||
| cde3ef9689 | |||
| 17b88b6a4f | |||
| 95f5de544d | |||
| 4ae8d8ac8c | |||
| 50bed824f6 | |||
| 9368da2c04 | |||
| 4182d9f506 | |||
| 757e89467a | |||
| aac1532b7e | |||
| d866ca71e1 | |||
| 15ef81533f | |||
| beac023875 | |||
| 56f36ec5e6 | |||
| 42d6ad6111 | |||
| 9f8cab5626 | |||
| 42cc06886a | |||
| 20d7e4bc10 | |||
| 3f1ed50f67 | |||
| 68bedd1c60 | |||
| 335defc9bf | |||
| a0c9edd43c | |||
| 214189883e | |||
| 34d8af3e2c | |||
| f415855612 | |||
| b68dedc1b8 | |||
| c14cec048b | |||
| ecb0933c17 | |||
| 138afb26c4 | |||
| 3d56224bb6 | |||
| 025a7de060 | |||
| f0da7146eb | |||
| 2a4e486a6e | |||
| 5b2f950d40 | |||
| 71c30a952c | |||
| e0bc0bc714 | |||
| 4682ba010f | |||
| 96f6c86d74 | |||
| f79409e534 | |||
| 70034113b4 | |||
| eff54adcc1 | |||
| 0671f8b758 | |||
| 5c57c5d3e4 | |||
| 9e28763bef | |||
| 3653a5d803 | |||
| 02c1304b99 | |||
| e9c403c8ea | |||
| fc3f6384f2 | |||
| e4322d620a | |||
| f9362749b1 | |||
| d2efdade19 | |||
| 9f420e67d2 | |||
| 8314548711 | |||
| 537b721044 | |||
| 9b0a86f421 | |||
| 7b4592830b | |||
| ab04d85d7e | |||
| 9c0844f0ed | |||
| 6abf8222d7 | |||
| 30bac18a85 | |||
| 36d2904bc4 | |||
| 32be6c8be1 | |||
| b2d5e9ba92 | |||
| d2831a8a46 | |||
| 42fb04283f | |||
| 4bfcabdeb5 | |||
| e8a6c3f1de | |||
| 59f0c3fb63 | |||
| 5b9c00c4a7 | |||
| 5b7cdce88d | |||
| 64e2ffe48f | |||
| ef30ef228d | |||
| 6495414dc9 | |||
| d8ab25d565 | |||
| 3f87e16329 | |||
| 688d2523c3 | |||
| 7b95e5b1e3 | |||
| 840f6bfd2b | |||
| 061f0403e2 | |||
| 1131b50d0e | |||
| 934f7cea9c | |||
| fae5f9140f | |||
| 91f831a02a | |||
| ff3066d2e5 | |||
| bebf5931a1 | |||
| d3fea58709 | |||
| 28df302283 | |||
| 4f0fa4d100 | |||
| 105cd37dfe | |||
| 568f1e9f48 | |||
| 308f3cf32e | |||
| 8bc6837b45 | |||
| a46b3e060a | |||
| 4040450c79 | |||
| f92860e8ec | |||
| 1fcf0363e2 | |||
| d48b633baa | |||
| 3b07b39d89 | |||
| 989b2b3650 | |||
| 276a22f1c1 | |||
| 5d1b9dcf38 | |||
| 7511778b32 | |||
| 2372699f7c | |||
| 282e47c912 | |||
| ab35a9d47f | |||
| 13240beac8 | |||
| 1611f85a96 | |||
| b3c36107d7 | |||
| 1db30228d5 | |||
| 66e88a2eed | |||
| 89f0ca5a3f | |||
| 0985e4f525 | |||
| fbc4a079be | |||
| 230e42ecab | |||
| 9d6b42da80 | |||
| b56c1d2650 | |||
| 4679589655 | |||
| e61e7f1664 | |||
| 0168309535 | |||
| b1034ce084 | |||
| cd24c91fb1 | |||
| 18aef3aaad | |||
| fe12e11b62 | |||
| ef982ee350 | |||
| c757639805 | |||
| 3972d48835 | |||
| 82b1211f6f | |||
| 849ad8dfc5 | |||
| d24027f359 | |||
| 354c8e5361 | |||
| c40fe02b51 | |||
| 82a230e072 | |||
| 597f617c79 | |||
| ed2a5ba8f6 | |||
| 6982a88ee9 | |||
| 85903cf28c | |||
| bd13ef3f48 | |||
| 5586940832 | |||
| 54269334b6 | |||
| de27cad435 | |||
| 3a1a39c9d8 | |||
| 9869c0b32e | |||
| 4b9fd397db | |||
| 9578aba58c | |||
| ba9f2336ec | |||
| 0f7deb6c79 | |||
| 3acc19c8eb | |||
| de58e527e4 | |||
| 12275b622f | |||
| d1eac6eefe | |||
| e470b63f42 | |||
| 4da158cf36 | |||
| d1141471ab | |||
| 4be3a68477 | |||
| 01238d5506 | |||
| d8582ec582 | |||
| c239d87390 | |||
| 39e0f2e115 | |||
| 0d4d99e324 | |||
| 0f47283e52 | |||
| aed17ac521 | |||
| 5e5f2b38cd | |||
| aabce8735e | |||
| 36105fb728 | |||
| d088d37ca2 | |||
| 2d13211269 | |||
| b2eb76893f | |||
| 607f1d762b | |||
| 15a9be6e2f | |||
| 85fae04df3 | |||
| ef5cd6efca | |||
| ae13d68764 | |||
| 48d3770f26 | |||
| 204ee1ed90 | |||
| adab096319 | |||
| 2a62dd214f | |||
| febcdce8c2 | |||
| f6fdc5f5ee | |||
| fb152cb36e | |||
| 1dfa03bafe | |||
| 4232c4640d | |||
| f1c65815da | |||
| e0957c0a0d | |||
| e9412a448e | |||
| b10a649865 | |||
| ea4ce728b0 | |||
| 0fd7e81acd | |||
| 4af744e735 | |||
| f8bef82acc | |||
| 013df362ca | |||
| 3811b43fa3 | |||
| 581f73c857 | |||
| 774f4b39b7 | |||
| 36faad1880 | |||
| 3c878dee49 | |||
| 8a33548396 | |||
| dae16c6767 | |||
| a5d826c6d4 | |||
| 6d84720404 | |||
| 5886c1ec53 | |||
| bbb2e66233 | |||
| dd4b3e8632 | |||
| 5cffab8649 | |||
| 211f16e129 | |||
| 0285a47ae3 | |||
| 16da18d307 | |||
| c450e7cd54 | |||
| 47c666200e | |||
| 208a1f8509 | |||
| f22ab85814 | |||
| 0618947350 | |||
| 9f9527d200 | |||
| 8a2a87911c | |||
| 61fef3b82b | |||
| ac8d0278ad | |||
| d9bd3a2626 | |||
| 7ced6400cc | |||
| db7e0808eb | |||
| d328ea4175 | |||
| 0f69467340 | |||
| 96efad2c5a | |||
| 79454f3480 | |||
| 31f7cfc31f | |||
| 9d829ff64d | |||
| 7a15e24f7b | |||
| be8098a4ad | |||
| 0df7bec0c8 | |||
| 57b153c9a9 | |||
| 8183291381 | |||
| d91e3c20d2 | |||
| 15cbfa870f | |||
| 4a74eed4a7 | |||
| 1dd7a8d739 | |||
| 86cf384b66 | |||
| c32f99b310 | |||
| acecda7f6a | |||
| cc3d0712cb | |||
| 1baa52c677 | |||
| f4de98424f | |||
| 0d4b178072 | |||
| 58f2191d51 | |||
| e2c8d36567 | |||
| 30534ad0d6 | |||
| afff5cb0eb | |||
| 6203b5b441 | |||
| b31d644b92 | |||
| 6f87e4aa6b | |||
| 6cf124b6c9 | |||
| 7c86a45848 | |||
| f7731bc675 | |||
| dcb7266dfb | |||
| 0e9d36f6bc | |||
| 6ae189010b | |||
| 4eb731fc0c | |||
| f6d517b930 | |||
| a475295784 | |||
| 9c266c5f33 | |||
| 7a8cc6a571 | |||
| 0ad4defb6b | |||
| 7f77647048 | |||
| 9fcf183653 | |||
| 565ee3cc1b | |||
| e41a8522fc | |||
| b558de8a23 | |||
| 43a474b417 | |||
| 73eb2a1133 | |||
| 1ea056609b | |||
| 4f01ccd5de | |||
| 7b4044c15d | |||
| 4e792ea460 | |||
| aac2370fe8 | |||
| 4831f6ef13 | |||
| bc20a71a52 | |||
| a955ba0658 | |||
| b9fb758910 | |||
| 655a7e48e0 | |||
| 5060e08771 | |||
| 98eceff549 | |||
| 9df9f7a12d | |||
| 241d6f4c37 | |||
| ad956d686e | |||
| e7ee4ea91d | |||
| f29b43b956 | |||
| 1fe3b7d8fc | |||
| fdd3b4dbf5 | |||
| fcecc07f5e | |||
| 6fc8a6e9c7 | |||
| bb73941451 | |||
| 68570d7271 | |||
| 5546bb55ea | |||
| ad6387126a | |||
| 5f468c6f05 | |||
| 1aed48a0ce | |||
| 2cc7b33380 | |||
| 21655f6818 | |||
| 0d41ee90f6 | |||
| c5321149a1 | |||
| 3e929454ff | |||
| 7147b4a316 | |||
| 2770ffa9a5 | |||
| e7672c109d | |||
| a63078e8f9 | |||
| ce0ec4b806 | |||
| e97796e4f2 | |||
| 57b0d0e84d | |||
| 86a3da69de | |||
| 3fd3e6ba85 | |||
| a26aae6348 | |||
| 7fefc6747e | |||
| 0569ea9ea3 | |||
| d99bfcc3ba | |||
| 8616862f66 | |||
| 85f792ffd7 | |||
| ab30cdfb8e | |||
| 3a795b247b | |||
| ab36105cc9 | |||
| 932a33666d | |||
| 5866197c5c | |||
| 5cbd1906ae | |||
| c39fd89675 | |||
| c6b45f7968 | |||
| 6049b5e883 | |||
| f165d3dd4f | |||
| dfa22f949b | |||
| d23ac6e923 | |||
| 8005ec88ee | |||
| c8336de72e | |||
| d40820fd5a | |||
| 5a2b2a5288 | |||
| 8283c01cc7 | |||
| 795f56f545 | |||
| c2ad8c641c | |||
| 350db91dd2 | |||
| 2bff049d90 | |||
| bf4de722a7 | |||
| 84e08c567f | |||
| 7c677f3193 | |||
| 2e6eafbb2e | |||
| 5af69352b5 | |||
| 8e3ce7d32e | |||
| 3a688a095f | |||
| 6d933c2dbe | |||
| 8cff85b7ad | |||
| eeb79b3ab5 | |||
| e39319da1f | |||
| 8affa9fabe | |||
| 962221be3b | |||
| b9402e6283 | |||
| f35561ff59 | |||
| cea87404e3 | |||
| e6cafaaa5c | |||
| 1a21cd0756 | |||
| 18e3becb53 | |||
| 76fe2187fc | |||
| 803da78526 | |||
| f581e8b738 | |||
| 08c2fc78ec | |||
| dd16be0a61 | |||
| 0c5eb64ffa | |||
| 895c1c41df | |||
| 9fa6ef6851 | |||
| 8753716ceb | |||
| 6e51cc756d | |||
| 4903382056 | |||
| c0a1f4e5cd | |||
| 5fd09d8783 | |||
| 5f28f1068f | |||
| 7e4aa98ce2 | |||
| 07e80aba8f | |||
| bc8c6993b7 | |||
| f93fd5181b | |||
| fe1576ba65 | |||
| 23cc755aa8 | |||
| 1997af872f | |||
| a3a7a36669 | |||
| e0ffb9670d | |||
| 13c17f1d3a | |||
| 81fbea171b | |||
| 24b53d5355 | |||
| e893a65658 | |||
| 43c09e8b8c | |||
| 916dba3f06 | |||
| a8e008de07 | |||
| 2114aa939b | |||
| 8602065490 | |||
| 6da9d718cc | |||
| 2372950563 | |||
| 1e82b04382 | |||
| 2fd6ac37d0 | |||
| 73c7a22900 | |||
| 5aad9e95b5 | |||
| 4c9e37fa6e | |||
| 9f912b3824 | |||
| dc41218cee | |||
| fe60e5e5db | |||
| 74368ec9d4 | |||
| 62b9104a68 | |||
| b328a2b496 | |||
| ab920ac0e1 | |||
| 6f576c29ea | |||
| d0d275a6c4 | |||
| f575aa9b5f | |||
| 3eb9822c09 | |||
| bd0d9fda22 | |||
| 18c802ae09 | |||
| 3e91f03b40 | |||
| 057f66cf31 | |||
| ad47713641 | |||
| df507a9de5 | |||
| 59080727cf | |||
| 95b9af557f | |||
| 84a49321f1 | |||
| dc61ab7e83 | |||
| 9479f1f801 | |||
| 62d2d2a8b3 | |||
| 500c774f31 | |||
| 88b52d86ab | |||
| a0f24b3cbf | |||
| 0db889af38 | |||
| 0cff10b177 | |||
| d6fa819fa1 | |||
| 6817fafcca | |||
| e062cbcb0e | |||
| f8fd872bde | |||
| 5ffa558327 | |||
| b9064e3eee | |||
| 106aeab194 | |||
| 36983898f1 | |||
| 3cf4cd62f8 | |||
| 88dabcc4e1 | |||
| db80f6300f | |||
| 7ff8038907 | |||
| cfbe458e9a | |||
| 66eb2d1c38 | |||
| 0d6ea89ad3 | |||
| 2597a6260f | |||
| 8e6fa13c72 | |||
| bbf634aab7 | |||
| 4c0e669d51 | |||
| 65cb30498e | |||
| 94828f71d1 | |||
| 211659a5bf | |||
| 659a3383c9 | |||
| be00ce4fc5 | |||
| 48c2387853 | |||
| eb595aadcc | |||
| b927953ff3 | |||
| 6c9203a7be | |||
| 462e1d0400 | |||
| 2e67b9ca6f | |||
| e24a7181f2 | |||
| e7eecc05cd | |||
| 1d33c8827c | |||
| 26afc0979c | |||
| fb9bece01c | |||
| c751364974 | |||
| 3ec9cc33c0 | |||
| 465f4bff60 | |||
| 6fb7131ee9 | |||
| df3164a119 | |||
| da546a8fc9 | |||
| d05b649625 | |||
| efdc06d702 | |||
| e0241e8a6a | |||
| f0f5d9a2aa | |||
| 7dbffca97c | |||
| 4d3544ff77 | |||
| f235ecc75c | |||
| c4c4146636 | |||
| 3f2fa6ca66 | |||
| 5687bb3b49 | |||
| 9cfbcc000a | |||
| 2c31c00998 | |||
| b06d67a134 | |||
| 297abec7fe | |||
| 30d4415aa0 | |||
| 934d2722a2 | |||
| 6b77130251 | |||
| d672527bee | |||
| 5210ef87a3 | |||
| fe7620c37a | |||
| 32d1463f53 | |||
| 56f03bc0c0 | |||
| e70050d213 | |||
| 23d2bdb5b4 | |||
| 7f8605afd7 | |||
| ddcecaccb9 | |||
| a9c7490d94 | |||
| f96b66779d | |||
| 3285b56a62 | |||
| 6129362257 | |||
| e55c78b852 | |||
| 40ca81ed32 | |||
| 748dc66c99 | |||
| e7f4821703 | |||
| 6e8511d20d | |||
| 24f8b61cea | |||
| 5f94c05c75 | |||
| f8c1387159 | |||
| 11bc7226ab | |||
| 6ca0aec7db | |||
| dc7a288bc4 | |||
| 427ed2a856 | |||
| 53485964bd | |||
| 57bef7da37 | |||
| 6017cab509 | |||
| 2664c15910 | |||
| c3b61df0a9 | |||
| dd8bdc230d | |||
| bd7a8c0368 | |||
| a1e427c8ab | |||
| fa5095261a | |||
| 3c8aa03fd9 | |||
| 2dd4cc4f92 | |||
| 1a8e2fa0bd | |||
| 323ee0e36d | |||
| d5d9f38cb1 | |||
| b5401915fd | |||
| 2ca5e8bb4a | |||
| cb5a0b7045 | |||
| 8142d78e10 | |||
| cf7b2f0c1a | |||
| eacb79e512 | |||
| 5c5300a6c2 | |||
| 052b78be28 | |||
| daab3eebee | |||
| a2c725abbb | |||
| 1ebff25492 | |||
| a36d2e810d | |||
| 86cde0e983 | |||
| c592231fd9 | |||
| fec34ae974 | |||
| d316764f63 | |||
| 832fa68839 | |||
| 70acbe38e0 | |||
| 8a31d29ce7 | |||
| 0606d87b14 | |||
| 2eaa7dba36 | |||
| 41d63bd245 | |||
| 2aa16ff8aa | |||
| d72cf56b8c | |||
| ca8c4b40c6 | |||
| 63e1da69a1 | |||
| afaf11ffb6 | |||
| 8b9f5d4448 | |||
| 1666b94135 | |||
| 4f80f9e97b | |||
| 6aa64092b6 | |||
| 90faa87e52 | |||
| 292dfe6da7 | |||
| 9594acb6e6 | |||
| 11de15c1d0 | |||
| 23323d9346 | |||
| 341b0ab8da | |||
| f6b93f2b35 | |||
| 17c69c3cc5 | |||
| 49db6e78d0 | |||
| 9082623c49 | |||
| 16605eafd0 | |||
| 701343e82f | |||
| 6214fed8ae | |||
| 1af1f77a60 | |||
| 2cc478357a | |||
| 82d7445e62 | |||
| 065bf980d3 | |||
| 1e8072ba21 | |||
| 76d455e6de | |||
| b20e656c30 | |||
| 493d5c0768 | |||
| 15531f4223 | |||
| 7d8e679d9c | |||
| 34684cdf70 | |||
| e6aa178062 | |||
| e4d0322a16 | |||
| e48a13fed5 | |||
| 7c59d3f3cb | |||
| 85516530ca | |||
| 90cf954d8f | |||
| ac28c88712 | |||
| 45f410ca4c | |||
| db1a527f95 | |||
| 3cb1be88f6 | |||
| 342c31f38c | |||
| 4afa76ba2a | |||
| 04065a8dcb | |||
| ec31d18c26 | |||
| 29f2ce3a56 | |||
| 957c299fc5 | |||
| 3d71bc17c8 | |||
| fce712e6c7 | |||
| 3f1f31581f | |||
| 8534079687 | |||
| 6973a0045e | |||
| 3d8cf0ef41 | |||
| 59b089a4eb | |||
| a590bdf347 | |||
| 1d9f88f803 | |||
| f660b6368d | |||
| e9c925082b | |||
| b41bafad30 | |||
| 969169243b | |||
| 4b3e0eaa4e | |||
| eda3938075 | |||
| 016abd1a98 | |||
| 1b043d3a64 | |||
| 38834e6294 | |||
| 83155783e7 | |||
| c50e63dd34 | |||
| ebc858579b | |||
| d63ce3673b | |||
| 7d5bfaa3fb | |||
| 5e5551a16f | |||
| 7d040f07dd | |||
| f0c433cc02 | |||
| 46ab8a20fe | |||
| bede0adbf7 | |||
| b0c76757cc | |||
| cf327f59dc | |||
| bb40366f00 | |||
| 290f63f2a1 | |||
| 811d6de69d | |||
| 98d93b1f98 | |||
| 5c04bceca7 | |||
| 61db21e0d3 | |||
| 5293f4f3ea | |||
| c2531f9b07 | |||
| 203062dd98 | |||
| 122ac657f1 | |||
| 8a40e959ea | |||
| 49ba98c6fc | |||
| 9b0de85ed4 | |||
| b2d36e0a73 | |||
| 797ea9b918 | |||
| 07e4f549b1 | |||
| 2e626660e6 | |||
| 23b6b11f9e | |||
| ea43edc864 | |||
| 264f927433 | |||
| f0b5859747 | |||
| c3a17046c6 | |||
| 11fb3aafd8 | |||
| 5afa01ba89 | |||
| 8762f5b751 | |||
| 2167a8243c | |||
| 98a2de61f1 | |||
| d39c12f8f1 | |||
| 027caa650e | |||
| d055507c80 | |||
| 5383b90581 | |||
| 80f139ef9e | |||
| 4a07fdb4a8 | |||
| ecbfd61bac | |||
| 37981c139b | |||
| dc56fce18a | |||
| 95f20c9827 | |||
| a4830a4119 | |||
| b702294920 | |||
| 969592589c | |||
| fe35d6c529 | |||
| 46fba3e2bd | |||
| 4692420e5f | |||
| fa19fe63c9 | |||
| 629f981819 | |||
| 0b09d524cc | |||
| d2401cca68 | |||
| d841396c19 | |||
| 86dd5af6ba | |||
| c907a9861a | |||
| 78a201590c | |||
| 0668b4f255 | |||
| cc8cc43907 | |||
| f915e9925a | |||
| 2a2ab45c4b | |||
| e0068a70f6 | |||
| 0183875742 | |||
| 8cb5dd993f | |||
| 8f30a1530c | |||
| ebc13e134b | |||
| 8d94497439 | |||
| eeef73b3c3 | |||
| 3ff3d3e452 | |||
| a32375243f | |||
| 2ef53f32e0 | |||
| 4c43e85d89 | |||
| 75bd7214e7 | |||
| 3a1e268a17 | |||
| 0f95078ae9 | |||
| bbefbbcb64 | |||
| c97134dd8d | |||
| 2820efc454 | |||
| 190d160dce | |||
| 61413663b0 | |||
| 71aa297cc8 | |||
| 70ddccc27e | |||
| f014602ec7 | |||
| 4a92adfcc2 | |||
| 17703c2ed7 | |||
| b20bf6a748 | |||
| c87b7171ea | |||
| 1ba1ad9fa2 | |||
| 6c0915107e | |||
| eba1d4d8d6 | |||
| 0c98e0c365 | |||
| 83a8e9eb09 | |||
| 07188847de | |||
| bfe04cfa24 | |||
| d580cab48c | |||
| bf85f766ca | |||
| f2120ff582 | |||
| 24b6eee8e5 | |||
| a9ee6ca75d | |||
| bf4f8a70dc | |||
| 82e656821d | |||
| 85bdec0009 | |||
| f945ad20a3 | |||
| e771e45f8e | |||
| 1b5c5ba1f6 | |||
| abf34123a3 | |||
| 9d70bf93d9 | |||
| 2f3d991bf2 | |||
| 7af90d0115 | |||
| d180322f88 | |||
| d0c1267b53 | |||
| 0893e460e5 | |||
| 8bdc43a435 | |||
| c42266c2f8 | |||
| c7b6229a0e | |||
| c4a89db638 | |||
| 5e0fe16fd0 | |||
| 8c429992a1 | |||
| 9ed0ab480f | |||
| d33a657275 | |||
| ec16ac9ad2 | |||
| 16b8d0195d | |||
| e527d55b38 | |||
| 8df8f8ca50 | |||
| 04e172d752 | |||
| 0378b81b6b | |||
| 0308d2b5cf | |||
| a5d88da1e6 | |||
| c4318f1d18 | |||
| 885406ddb3 | |||
| cdde7648af | |||
| a4960f09be | |||
| b7ebe3083b | |||
| 6c553f52f8 | |||
| 2be1807b0f | |||
| 64aebf35ab | |||
| 4e4c149dda | |||
| 795febe0ee | |||
| db540ac62b | |||
| fd7686984c | |||
| b144fc678f | |||
| cdd054c0af | |||
| 780c13c56a | |||
| 7b6ba458dd | |||
| 912bc7a8f5 | |||
| 2a7d3a07e4 | |||
| 36b1560b45 | |||
| 2ff6e7eab4 | |||
| 350cfe5d22 | |||
| 3ce69256bf | |||
| 41691eed2f | |||
| 7ad8a83f8c | |||
| 5f481fd3f9 | |||
| e89ec15e34 | |||
| 7e8ec52260 | |||
| 7fe0d60d8f | |||
| 07316dad5a | |||
| a66abff17d | |||
| da834eb718 | |||
| 3191e2b174 | |||
| e308df2e65 | |||
| 452c91807d | |||
| c3fb62f22c | |||
| e1f99cce63 | |||
| ac2c1131ac | |||
| f86259b50c | |||
| 6a44fc3397 | |||
| e0be77602a | |||
| f82f582183 | |||
| 9904fc0912 | |||
| 95bdcc6418 | |||
| 1ef5d0cca9 | |||
| 1494c8e085 | |||
| 5655216792 | |||
| 0232a4f2fd | |||
| f2415eb08a | |||
| 56e9438f8e | |||
| d63b948d58 | |||
| 60f552b953 | |||
| 36b612ff1b | |||
| d608c9cc8e | |||
| 40a1bec7d3 | |||
| 9804362b6c | |||
| 8a5956fbb3 | |||
| 0eb2f908f1 | |||
| 00608cacd4 | |||
| 245b532954 | |||
| 6530408307 | |||
| 08e7c8e5bc | |||
| 5162d422f5 | |||
| 594f69e825 | |||
| 868579f978 | |||
| cd573f5bd7 | |||
| 16615eb407 | |||
| 51158630b1 | |||
| 7cbbad2473 | |||
| 64a012ff95 | |||
| c1f391823b | |||
| 55400bd45e | |||
| 5f7007451f | |||
| cf12d1f2b9 | |||
| 53d8879aaf | |||
| 83b6108074 | |||
| 38f0ea0e45 | |||
| 06b6125862 | |||
| 9fe48cd2f8 | |||
| 2b3c5d6836 | |||
| 660bc0b989 | |||
| f33c1a69f4 | |||
| b348a2bae2 | |||
| bc58b6ec82 | |||
| 5dc79e665c | |||
| 9acbeb4d46 | |||
| 8174aeb846 | |||
| 9fa637768c | |||
| 0974c6063a | |||
| 47b3ce7f7e | |||
| 84aee63b09 | |||
| ec1278bc90 | |||
| 4cddf24d50 | |||
| 1cdf658bee | |||
| 94b19bffb4 | |||
| ee34e9b598 | |||
| ac25160791 | |||
| 1940e04f4f | |||
| d45676f682 | |||
| 82a267cfff | |||
| c71c1ae9f7 | |||
| 6d1b02768d | |||
| 8b598b8817 | |||
| 323c926a92 | |||
| 156ef00f8d | |||
| c0f6f8c75d | |||
| d886b1b7ca | |||
| f87844850f | |||
| f7bf234da9 | |||
| ebed5a5619 | |||
| 9a885d0bf6 | |||
| 2133e0fb4f | |||
| c3cd5e7cfb | |||
| 1e80addaec | |||
| a56c5e3ffc | |||
| 5ab7d9b3a0 | |||
| 4452bd0234 | |||
| e3b483519e | |||
| ac31c663ee | |||
| c1cbe20c3a | |||
| 24e004a69b | |||
| ec49d1f097 | |||
| e6e5748195 | |||
| 32714e76da | |||
| 91a3c0c3f2 | |||
| a7b23982c9 | |||
| 542a06865a | |||
| fc5e2ac70b | |||
| 54ca1a2cf2 | |||
| ee71023223 | |||
| 5459507b09 | |||
| 32ad6bdf2d | |||
| 0ae74e4d6b | |||
| 938598aa72 | |||
| 15dc4371f8 | |||
| d14608e81f | |||
| 1c8ceea40a | |||
| 7243145d4f | |||
| c83fc35f96 | |||
| bdbff79b61 | |||
| ece404ef2e | |||
| 3ba2782667 | |||
| d9d5a787fd | |||
| 7d3df970e5 | |||
| d1080fe738 | |||
| cde7a0fc4c | |||
| 69b7e4b46d | |||
| fc0c2804a4 | |||
| 6f71805c3d | |||
| 931da8e54d | |||
| e66914ee9d | |||
| 9c3218a808 | |||
| 13f5cea370 | |||
| 6c65274fda | |||
| ed9c9be336 | |||
| 9b2277d9ad | |||
| 3aa1de3b98 | |||
| 50ca94ca7b | |||
| bcff195be2 | |||
| 8d2954035b | |||
| eb50384db6 | |||
| 981df89f30 | |||
| f94ee616f7 | |||
| 4108d2fa98 | |||
| 7773a5bc46 | |||
| 8477b42a10 | |||
| 36027bc31d | |||
| 4731049693 | |||
| 3f4fcaa2d9 | |||
| 4cc20ee1e6 | |||
| 7442d0f7b1 | |||
| 9249dd0679 | |||
| b9c1f6e3fd | |||
| d7a26952ac | |||
| b53df317eb | |||
| ba00431e94 | |||
| ef61261b46 | |||
| 8604c4281c | |||
| ddb66db055 | |||
| 55beed4676 | |||
| 389d8551f2 | |||
| b0882f66dd | |||
| 727a3f00a4 | |||
| 5f53985e68 | |||
| aa70f41f4d | |||
| 3a6ac93f0e | |||
| 2913640a86 | |||
| c1eb74bfb0 | |||
| 642da9cfad | |||
| a7c44de05b | |||
| d5092998f5 | |||
| ae2d4a33ae | |||
| 8950df859b | |||
| caadd99b68 | |||
| 31a6fc9c36 | |||
| d9cca1bad1 | |||
| 9e76872d05 | |||
| a6838eb4dc | |||
| 7d2fd40097 | |||
| 255f985cd4 | |||
| 80bd8cd001 | |||
| 283aa092fe | |||
| 6fb86871bc | |||
| ad951c8c49 | |||
| 0abfb29ff8 | |||
| ac653a331f | |||
| f972a23dd8 | |||
| e8cca96e1f | |||
| 61f2e672bc | |||
| 3a375881b8 | |||
| fc7482dc69 | |||
| 1d8035861f | |||
| 91661be354 | |||
| 205a98723d | |||
| 58970d0abb | |||
| 219dc7ff36 | |||
| 8794fe8646 | |||
| d76fb5ee3a | |||
| e22301c565 | |||
| 046015f182 | |||
| 4a762f93a6 | |||
| cb9c2f0ec6 | |||
| 1a9c3126b8 | |||
| 9681c026ad | |||
| 6f98b17405 | |||
| 404027389a | |||
| cd9ca3da7a | |||
| 889411db18 | |||
| ae3b43cdac | |||
| 237315532c | |||
| 0245c4cbb9 | |||
| 7e81bf9ad6 | |||
| 40a6cbdab7 | |||
| e9f07baff1 | |||
| d26e373e2e | |||
| 9792e1f601 | |||
| d1022d5986 | |||
| f31bb837a8 | |||
| 7d75f2fa97 | |||
| d6b53cdac3 | |||
| 6ff4a8b1b0 | |||
| 5a99943367 | |||
| ecf75669c1 | |||
| 056c5ce1cd | |||
| 359131ab93 | |||
| fe44c8f3e0 | |||
| cdfe6fead4 | |||
| 0dce384839 | |||
| 1819bc42e5 | |||
| 4fdc3c92fb | |||
| 7bc726c425 | |||
| 988662c7a0 | |||
| 4285968397 | |||
| 200815d143 | |||
| 4c2083d32d | |||
| b9f9bbcbc4 | |||
| 6ffa5470cb | |||
| d4cf2e0a46 | |||
| a1bd2b40d8 | |||
| e49deb1aab | |||
| dfeca6e549 | |||
| ea62075622 | |||
| 76c55fcd8e | |||
| ba90433012 | |||
| 4bed411dba | |||
| 2b053f1a95 | |||
| b2cc3cc26e | |||
| e0ae318152 | |||
| 4269a11c73 | |||
| 95f03bc151 | |||
| 167b77a674 | |||
| 8670e33234 | |||
| c6d43e92c1 | |||
| 84c8b3f416 | |||
| 2862d096a9 | |||
| 5a1a9f0b4b | |||
| 90a8f9a7aa | |||
| 53ba7fb035 | |||
| 8e6e929063 | |||
| eeb668e48a | |||
| 588b27190e | |||
| 8f2587118b | |||
| 39ba30f636 | |||
| 65ca05adaf | |||
| 530065d2db | |||
| 8667b2c6e8 | |||
| e75b1eddf5 | |||
| b04fcb6538 | |||
| d1a98b942d | |||
| 42615fa199 | |||
| 3e5622f04f | |||
| 7a6e5061e5 | |||
| 410263e676 | |||
| f104bab671 | |||
| 8497f6b65e | |||
| dc717170f6 | |||
| 38f05ce2d7 | |||
| e28a54a428 | |||
| f60d25618b | |||
| 6cf118ba84 | |||
| 122a5827b9 | |||
| a5364d9f4b | |||
| c6c384f834 | |||
| d90269c4f4 | |||
| b43cc3bfa5 | |||
| 4c64890971 | |||
| a111a0c391 | |||
| 552af5fa50 | |||
| d476f1ce9f | |||
| 299734c908 | |||
| 7a5fabaeae | |||
| 650262bd17 | |||
| 38edc4eb54 | |||
| a7bd5e3485 | |||
| 4261c461c7 | |||
| bbb516c213 | |||
| 0894cd94a9 | |||
| 04b0313f94 | |||
| cc8dbb9b1c | |||
| aade1d9baf | |||
| 1ce7863376 | |||
| 877cfe8127 | |||
| d91cb2e60f | |||
| 9853a60c6a | |||
| 58dd97ac2a | |||
| c55d318e64 | |||
| 3bec091d7c | |||
| dc757d561a | |||
| d421681ddb | |||
| fc93dad347 | |||
| d62e11e7f9 | |||
| 2545d1df6e | |||
| 84ec57d2d6 | |||
| 248327047a | |||
| 7ed395badd | |||
| c7f9d08ec7 | |||
| 04541ccb8c | |||
| 92eec140d7 | |||
| 571c2b1a19 | |||
| 7946cea31d | |||
| 9ebf95cace | |||
| 299c571904 | |||
| e53c7b3c8a | |||
| abe0680641 | |||
| 2c8bcbfd7b | |||
| eb6dc3e3dc | |||
| 2d32c9251e | |||
| d0fac4e7c1 | |||
| 78baf633c4 | |||
| 63a2334010 | |||
| e7fb619291 | |||
| 906cb7d1ff | |||
| 520f089f7d | |||
| 0b3a6deb69 | |||
| f89e946d1d | |||
| c440b1201b | |||
| b2b3ec4747 | |||
| e274fd27d6 | |||
| 834ca303b7 | |||
| a871fe1ea3 | |||
| 68c5173f1b | |||
| 18885e425a | |||
| 3bce8e3418 | |||
| e63a208aa3 | |||
| d8ab71fd0f | |||
| 45b1c39780 | |||
| 5e47748298 | |||
| 626990efb4 | |||
| 3691e61d56 | |||
| a65417b0ba | |||
| 212a59a112 | |||
| be1d5fb445 | |||
| 5ff9a14d41 | |||
| c15736d2d6 | |||
| ba71c22bc8 | |||
| c25dad69b0 | |||
| bd053d9b27 | |||
| 273df16f4c | |||
| 3f2a617bbc | |||
| f4a6b8f6f3 | |||
| 34660ee161 | |||
| 758f79b7dd | |||
| 11006c684b | |||
| 0030fda2cf | |||
| 33ffb594e5 | |||
| b8ea6f1f0b | |||
| 75c6146f40 | |||
| b74f7813ac | |||
| 153f7a6d0c | |||
| 14b9cb70d3 | |||
| 38270329d1 | |||
| 7e1d03e2cf | |||
| 7d2deddc66 | |||
| 168a998ac4 | |||
| a309f9f897 | |||
| 6df4d79260 | |||
| 64381f1682 | |||
| 4a038b95ef | |||
| 03b3555ddf | |||
| 8a29dca1cd | |||
| 7e147874ac | |||
| 8e1672da41 | |||
| eacbade3f2 | |||
| ce9a34b8d5 | |||
| 24651285bd | |||
| 87d8d2a008 | |||
| 6201a5a740 | |||
| ff109cf115 | |||
| aad6e33b48 | |||
| fd3f7ea3fd | |||
| 087f0a0d21 | |||
| b334b8f05d | |||
| aea7755eab | |||
| a301ca8df7 | |||
| 7e84689595 | |||
| 8ec52fc1a7 | |||
| 741591de45 | |||
| 4467174f80 | |||
| 7606940a90 | |||
| ebf55458e3 | |||
| e780f3edbc | |||
| cd091097e8 | |||
| 1b7618f25b | |||
| f9a93e2efe | |||
| faf0b7e9cc | |||
| 3c802cc900 | |||
| a8345ca307 | |||
| df60809ab1 | |||
| d2c53e8613 | |||
| cbfd7512f8 | |||
| 724dc022b7 | |||
| 4e11ce5ee7 | |||
| 7d0b4121c6 | |||
| e529d33dbf | |||
| b2e8ce765b | |||
| 6736a711cb | |||
| ea22497d9d | |||
| c364e9684d | |||
| ea8ed68296 | |||
| 2a828c93c1 | |||
| 371eaf118e | |||
| 390712965b | |||
| 557172d0d5 | |||
| c72237844f | |||
| 7546aabca9 | |||
| 6dd862496c | |||
| d4aea5f34f | |||
| c26d83c27a | |||
| 51067793e3 | |||
| beeb898b9e | |||
| 6af56c63a0 | |||
| aa0cddb1bc | |||
| af310a0f44 | |||
| 6c9868dcb3 | |||
| fd9d432d10 | |||
| 5d777896e3 | |||
| 51b96ec06f | |||
| c6042d96ed | |||
| 2ae98a6949 | |||
| 009497ba65 | |||
| c014be823b | |||
| 3e1b20e9fb | |||
| 652f5de7c7 | |||
| fa4782a4dc | |||
| 16cafbaf95 | |||
| 1934ddbe27 | |||
| d26079a188 | |||
| b4f61190b0 | |||
| fd6c2b1cd5 | |||
| bee1f5624e | |||
| cd8dd140c6 | |||
| 34e56f3e81 | |||
| 0339b36330 | |||
| d4af6f5e86 | |||
| cf3cc8a827 | |||
| fea7394558 | |||
| d1a0e6cfaf | |||
| 7a4cc161c9 | |||
| 3376b0157b | |||
| bda7c40a1a | |||
| dabce296b8 | |||
| 8c7bf40508 | |||
| 1a7cbb780b | |||
| 42b4d74d98 | |||
| b2de62d0b9 | |||
| f1e6af0fab | |||
| 72ff929fab | |||
| 138934692c | |||
| 7b709ece22 | |||
| ac18f302a6 | |||
| 0e430827c0 |
@@ -30,7 +30,7 @@ github:
|
||||
- q-and-a
|
||||
- hacktoberfest
|
||||
features:
|
||||
wiki: false
|
||||
wiki: true
|
||||
issues: true
|
||||
projects: true
|
||||
discussions: false
|
||||
@@ -43,6 +43,6 @@ github:
|
||||
|
||||
notifications:
|
||||
commits: commits@answer.apache.org
|
||||
issues: commits@answer.apache.org
|
||||
pullrequests: commits@answer.apache.org
|
||||
discussions: commits@answer.apache.org
|
||||
issues: issues@answer.apache.org
|
||||
pullrequests: issues@answer.apache.org
|
||||
discussions: issues@answer.apache.org
|
||||
|
||||
@@ -0,0 +1,36 @@
|
||||
# Installation
|
||||
INSTALL_PORT=80
|
||||
AUTO_INSTALL=false
|
||||
|
||||
# Database
|
||||
DB_TYPE=
|
||||
DB_USERNAME=
|
||||
DB_PASSWORD=
|
||||
DB_HOST=
|
||||
DB_NAME=
|
||||
DB_FILE=
|
||||
|
||||
# Site
|
||||
LANGUAGE=en-US
|
||||
SITE_NAME=Apache Answer
|
||||
SITE_URL=
|
||||
CONTACT_EMAIL=
|
||||
|
||||
# Admin
|
||||
ADMIN_NAME=
|
||||
ADMIN_PASSWORD=
|
||||
ADMIN_EMAIL=
|
||||
|
||||
# Content
|
||||
EXTERNAL_CONTENT_DISPLAY=ask_before_display
|
||||
|
||||
# Swagger
|
||||
SWAGGER_HOST=
|
||||
SWAGGER_ADDRESS_PORT=
|
||||
|
||||
# Server
|
||||
SITE_ADDR=0.0.0.0:3000
|
||||
|
||||
# Logging
|
||||
LOG_LEVEL=INFO
|
||||
LOG_PATH=
|
||||
@@ -3,6 +3,7 @@ name: Bug report
|
||||
about: Report an issue to help the project improve.
|
||||
title: ''
|
||||
labels: bug
|
||||
type: 'Bug'
|
||||
assignees: ''
|
||||
|
||||
---
|
||||
@@ -11,7 +12,7 @@ assignees: ''
|
||||
|
||||
A clear and concise description of what the bug is.
|
||||
|
||||
### To Reproduce
|
||||
## To Reproduce
|
||||
|
||||
Steps to reproduce the behavior:
|
||||
|
||||
@@ -20,15 +21,15 @@ Steps to reproduce the behavior:
|
||||
3. Scroll down to '....'
|
||||
4. See error
|
||||
|
||||
### Expected behavior
|
||||
## Expected behavior
|
||||
|
||||
A clear and concise description of what you expected to happen.
|
||||
|
||||
### Screenshots
|
||||
## Screenshots
|
||||
|
||||
If applicable, add screenshots or video to help explain your problem.
|
||||
|
||||
### Platform
|
||||
## Platform
|
||||
|
||||
- Device: [e.g. Desktop, Mobile]
|
||||
- OS: [e.g. macOS]
|
||||
|
||||
@@ -17,6 +17,6 @@
|
||||
|
||||
blank_issues_enabled: true
|
||||
contact_links:
|
||||
- name: Support
|
||||
url: https://answer.apache.org/community
|
||||
about: Contact us if you have any questions while using.
|
||||
- name: Questions & Discussions
|
||||
url: https://meta.answer.dev
|
||||
about: If you have any questions while using.
|
||||
@@ -3,6 +3,7 @@ name: Enhancement request
|
||||
about: Suggest an enhancement for this project. Improve an existing feature.
|
||||
title: ''
|
||||
labels: enhancement
|
||||
type: 'Feature'
|
||||
assignees: ''
|
||||
|
||||
---
|
||||
|
||||
@@ -2,7 +2,8 @@
|
||||
name: Feature request
|
||||
about: Suggest an idea or possible new feature for this project.
|
||||
title: ''
|
||||
labels: feature
|
||||
labels: new-feature
|
||||
type: 'Feature'
|
||||
assignees: ''
|
||||
|
||||
---
|
||||
|
||||
@@ -34,26 +34,27 @@ jobs:
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Set up Node
|
||||
uses: actions/setup-node@v3
|
||||
uses: actions/setup-node@v4
|
||||
with:
|
||||
node-version: 18
|
||||
node-version: 20.18.1
|
||||
|
||||
- name: Node Build
|
||||
run: make install-ui-packages ui
|
||||
|
||||
- name: Setup Go
|
||||
uses: actions/setup-go@v3
|
||||
uses: actions/setup-go@v5
|
||||
with:
|
||||
go-version: 1.19
|
||||
go-version: 1.23
|
||||
|
||||
- name: Install GoReleaser
|
||||
run: go install github.com/goreleaser/goreleaser/v2@latest
|
||||
|
||||
- name: Run GoReleaser
|
||||
uses: goreleaser/goreleaser-action@v4
|
||||
with:
|
||||
distribution: goreleaser
|
||||
version: latest
|
||||
args: release --clean --skip-validate
|
||||
run: |
|
||||
"$(go env GOPATH)/bin/goreleaser" release --clean --skip=validate
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
- uses: actions/upload-artifact@v3
|
||||
- uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: answer
|
||||
path: ./dist/*
|
||||
|
||||
@@ -0,0 +1,63 @@
|
||||
# Licensed to the Apache Software Foundation (ASF) under one
|
||||
# or more contributor license agreements. See the NOTICE file
|
||||
# distributed with this work for additional information
|
||||
# regarding copyright ownership. The ASF licenses this file
|
||||
# to you under the Apache License, Version 2.0 (the
|
||||
# "License"); you may not use this file except in compliance
|
||||
# with the License. You may obtain a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing,
|
||||
# software distributed under the License is distributed on an
|
||||
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
# KIND, either express or implied. See the License for the
|
||||
# specific language governing permissions and limitations
|
||||
# under the License.
|
||||
|
||||
name: Build Latest Docker Image For Release
|
||||
|
||||
on:
|
||||
push:
|
||||
tags:
|
||||
- v2.*
|
||||
- v1.*
|
||||
- v0.*
|
||||
- "!v*-RC*"
|
||||
# pull_request:
|
||||
# branches: [ "main" ]
|
||||
|
||||
jobs:
|
||||
build:
|
||||
if: ${{ github.repository_owner == 'apache' }}
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Set up QEMU
|
||||
run: |
|
||||
sudo apt-get update
|
||||
sudo apt-get install -y qemu-user-static
|
||||
|
||||
- name: Set up Docker Buildx
|
||||
run: |
|
||||
docker buildx create --name answer-builder --driver docker-container --use
|
||||
docker buildx inspect --bootstrap
|
||||
|
||||
- name: Login to DockerHub
|
||||
run: echo "${{ secrets.DOCKERHUB_TOKEN }}" | docker login --username "${{ secrets.DOCKERHUB_USER }}" --password-stdin
|
||||
|
||||
- name: Build and push
|
||||
run: |
|
||||
BUILD_DATE="$(date -u +"%Y-%m-%dT%H:%M:%SZ")"
|
||||
docker buildx build \
|
||||
--file ./Dockerfile \
|
||||
--platform linux/amd64,linux/arm64 \
|
||||
--push \
|
||||
--tag apache/answer:latest \
|
||||
--label org.opencontainers.image.created="${BUILD_DATE}" \
|
||||
--label org.opencontainers.image.revision="${GITHUB_SHA}" \
|
||||
--label org.opencontainers.image.source="https://github.com/${GITHUB_REPOSITORY}" \
|
||||
--label org.opencontainers.image.version="${GITHUB_REF_NAME#v}" \
|
||||
.
|
||||
@@ -33,33 +33,29 @@ jobs:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Docker meta
|
||||
id: meta
|
||||
uses: docker/metadata-action@v4
|
||||
with:
|
||||
images: apache/answer
|
||||
tags: |
|
||||
type=ref,enable=true,priority=600,prefix=,suffix=,event=branch
|
||||
type=semver,pattern={{version}}
|
||||
|
||||
- name: Set up QEMU
|
||||
uses: docker/setup-qemu-action@v2
|
||||
run: |
|
||||
sudo apt-get update
|
||||
sudo apt-get install -y qemu-user-static
|
||||
|
||||
- name: Set up Docker Buildx
|
||||
uses: docker/setup-buildx-action@v2
|
||||
run: |
|
||||
docker buildx create --name answer-builder --driver docker-container --use
|
||||
docker buildx inspect --bootstrap
|
||||
|
||||
- name: Login to DockerHub
|
||||
uses: docker/login-action@v3
|
||||
with:
|
||||
username: ${{ secrets.DOCKERHUB_USER }}
|
||||
password: ${{ secrets.DOCKERHUB_TOKEN }}
|
||||
run: echo "${{ secrets.DOCKERHUB_TOKEN }}" | docker login --username "${{ secrets.DOCKERHUB_USER }}" --password-stdin
|
||||
|
||||
- name: Build and push
|
||||
uses: docker/build-push-action@v4
|
||||
with:
|
||||
context: .
|
||||
platforms: linux/amd64,linux/arm64
|
||||
push: true
|
||||
file: ./Dockerfile
|
||||
tags: apache/answer:${{ inputs.tag_name }}
|
||||
labels: ${{ steps.meta.outputs.labels }}
|
||||
run: |
|
||||
BUILD_DATE="$(date -u +"%Y-%m-%dT%H:%M:%SZ")"
|
||||
docker buildx build \
|
||||
--file ./Dockerfile \
|
||||
--platform linux/amd64,linux/arm64 \
|
||||
--push \
|
||||
--tag "apache/answer:${{ inputs.tag_name }}" \
|
||||
--label org.opencontainers.image.created="${BUILD_DATE}" \
|
||||
--label org.opencontainers.image.revision="${GITHUB_SHA}" \
|
||||
--label org.opencontainers.image.source="https://github.com/${GITHUB_REPOSITORY}" \
|
||||
--label org.opencontainers.image.version="${{ inputs.tag_name }}" \
|
||||
.
|
||||
|
||||
@@ -19,7 +19,6 @@ name: Build Docker Image For Release
|
||||
|
||||
on:
|
||||
push:
|
||||
branches: [ "main"]
|
||||
tags:
|
||||
- v2.*
|
||||
- v1.*
|
||||
@@ -35,36 +34,31 @@ jobs:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Docker meta
|
||||
id: meta
|
||||
uses: docker/metadata-action@v4
|
||||
with:
|
||||
images: apache/answer
|
||||
tags: |
|
||||
type=raw,value=latest
|
||||
type=ref,enable=true,priority=600,prefix=,suffix=,event=branch
|
||||
type=semver,pattern={{version}}
|
||||
|
||||
- name: Set up QEMU
|
||||
uses: docker/setup-qemu-action@v2
|
||||
run: |
|
||||
sudo apt-get update
|
||||
sudo apt-get install -y qemu-user-static
|
||||
|
||||
- name: Set up Docker Buildx
|
||||
uses: docker/setup-buildx-action@v2
|
||||
run: |
|
||||
docker buildx create --name answer-builder --driver docker-container --use
|
||||
docker buildx inspect --bootstrap
|
||||
|
||||
- name: Login to DockerHub
|
||||
uses: docker/login-action@v3
|
||||
with:
|
||||
username: ${{ secrets.DOCKERHUB_USER }}
|
||||
password: ${{ secrets.DOCKERHUB_TOKEN }}
|
||||
run: echo "${{ secrets.DOCKERHUB_TOKEN }}" | docker login --username "${{ secrets.DOCKERHUB_USER }}" --password-stdin
|
||||
|
||||
- name: Build and push
|
||||
uses: docker/build-push-action@v4
|
||||
with:
|
||||
context: .
|
||||
platforms: linux/amd64,linux/arm64
|
||||
push: true
|
||||
file: ./Dockerfile
|
||||
tags: ${{ steps.meta.outputs.tags }}
|
||||
labels: ${{ steps.meta.outputs.labels }}
|
||||
|
||||
|
||||
env:
|
||||
IMAGE_TAG: ${{ github.ref_name }}
|
||||
run: |
|
||||
BUILD_DATE="$(date -u +"%Y-%m-%dT%H:%M:%SZ")"
|
||||
docker buildx build \
|
||||
--file ./Dockerfile \
|
||||
--platform linux/amd64,linux/arm64 \
|
||||
--push \
|
||||
--tag "apache/answer:${IMAGE_TAG#v}" \
|
||||
--label org.opencontainers.image.created="${BUILD_DATE}" \
|
||||
--label org.opencontainers.image.revision="${GITHUB_SHA}" \
|
||||
--label org.opencontainers.image.source="https://github.com/${GITHUB_REPOSITORY}" \
|
||||
--label org.opencontainers.image.version="${IMAGE_TAG#v}" \
|
||||
.
|
||||
|
||||
@@ -30,32 +30,23 @@ jobs:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Docker meta
|
||||
id: meta
|
||||
uses: docker/metadata-action@v4
|
||||
with:
|
||||
images: apache/answer
|
||||
tags: |
|
||||
type=raw,value=test
|
||||
|
||||
- name: Set up QEMU
|
||||
uses: docker/setup-qemu-action@v2
|
||||
- name: Login to DockerHub
|
||||
run: echo "${{ secrets.DOCKERHUB_TOKEN }}" | docker login --username "${{ secrets.DOCKERHUB_USER }}" --password-stdin
|
||||
|
||||
- name: Set up Docker Buildx
|
||||
uses: docker/setup-buildx-action@v2
|
||||
|
||||
- name: Login to DockerHub
|
||||
uses: docker/login-action@v3
|
||||
with:
|
||||
username: ${{ secrets.DOCKERHUB_USER }}
|
||||
password: ${{ secrets.DOCKERHUB_TOKEN }}
|
||||
run: |
|
||||
docker buildx create --name answer-builder --driver docker-container --use
|
||||
docker buildx inspect --bootstrap
|
||||
|
||||
- name: Build and push
|
||||
uses: docker/build-push-action@v4
|
||||
with:
|
||||
context: .
|
||||
file: ./Dockerfile
|
||||
platforms: linux/amd64
|
||||
push: true
|
||||
tags: ${{ steps.meta.outputs.tags }}
|
||||
labels: ${{ steps.meta.outputs.labels }}
|
||||
run: |
|
||||
BUILD_DATE="$(date -u +"%Y-%m-%dT%H:%M:%SZ")"
|
||||
docker buildx build \
|
||||
--file ./Dockerfile \
|
||||
--platform linux/amd64 \
|
||||
--push \
|
||||
--tag apache/answer:test \
|
||||
--label org.opencontainers.image.created="${BUILD_DATE}" \
|
||||
--label org.opencontainers.image.revision="${GITHUB_SHA}" \
|
||||
--label org.opencontainers.image.source="https://github.com/${GITHUB_REPOSITORY}" \
|
||||
.
|
||||
|
||||
@@ -0,0 +1,62 @@
|
||||
# Licensed to the Apache Software Foundation (ASF) under one
|
||||
# or more contributor license agreements. See the NOTICE file
|
||||
# distributed with this work for additional information
|
||||
# regarding copyright ownership. The ASF licenses this file
|
||||
# to you under the Apache License, Version 2.0 (the
|
||||
# "License"); you may not use this file except in compliance
|
||||
# with the License. You may obtain a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing,
|
||||
# software distributed under the License is distributed on an
|
||||
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
# KIND, either express or implied. See the License for the
|
||||
# specific language governing permissions and limitations
|
||||
# under the License.
|
||||
|
||||
name: Lint
|
||||
|
||||
on:
|
||||
push:
|
||||
pull_request:
|
||||
|
||||
concurrency:
|
||||
group: ${{ github.workflow }}-${{ github.event_name }}-${{ github.event.number || github.run_id }}
|
||||
cancel-in-progress: true
|
||||
|
||||
jobs:
|
||||
lint:
|
||||
name: Lint (${{ matrix.os }})
|
||||
runs-on: ${{ matrix.os }}
|
||||
timeout-minutes: 15
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
os: [ubuntu-latest]
|
||||
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Setup Go
|
||||
uses: actions/setup-go@v5
|
||||
with:
|
||||
go-version: "1.23"
|
||||
cache: true
|
||||
|
||||
- name: Run go mod tidy
|
||||
run: go mod tidy
|
||||
|
||||
- name: Run golangci-lint
|
||||
run: make lint
|
||||
|
||||
- name: Check for uncommitted changes
|
||||
shell: bash
|
||||
run: |
|
||||
if [ -n "$(git status --porcelain)" ]; then
|
||||
echo "::error::Uncommitted changes detected"
|
||||
git status
|
||||
git diff
|
||||
exit 1
|
||||
fi
|
||||
+8
-1
@@ -3,6 +3,7 @@
|
||||
*.rej
|
||||
*.so
|
||||
*~
|
||||
*.db
|
||||
.DS_Store
|
||||
._*
|
||||
/.idea
|
||||
@@ -27,5 +28,11 @@ vendor/
|
||||
/answer-data/
|
||||
/answer
|
||||
/new_answer
|
||||
|
||||
build/tools/
|
||||
dist/
|
||||
|
||||
# Lint setup generated file
|
||||
.husky/
|
||||
|
||||
# Environment variables
|
||||
.env
|
||||
@@ -0,0 +1,49 @@
|
||||
# Licensed to the Apache Software Foundation (ASF) under one
|
||||
# or more contributor license agreements. See the NOTICE file
|
||||
# distributed with this work for additional information
|
||||
# regarding copyright ownership. The ASF licenses this file
|
||||
# to you under the Apache License, Version 2.0 (the
|
||||
# "License"); you may not use this file except in compliance
|
||||
# with the License. You may obtain a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing,
|
||||
# software distributed under the License is distributed on an
|
||||
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
# KIND, either express or implied. See the License for the
|
||||
# specific language governing permissions and limitations
|
||||
# under the License.
|
||||
|
||||
version: "2"
|
||||
linters:
|
||||
exclusions:
|
||||
paths:
|
||||
- answer-data
|
||||
- ui
|
||||
- i18n
|
||||
enable:
|
||||
- asasalint # checks for pass []any as any in variadic func(...any)
|
||||
- asciicheck # checks that your code does not contain non-ASCII identifiers
|
||||
- bidichk # checks for dangerous unicode character sequences
|
||||
- bodyclose # checks whether HTTP response body is closed successfully
|
||||
- canonicalheader # checks whether net/http.Header uses canonical header
|
||||
- copyloopvar # detects places where loop variables are copied (Go 1.22+)
|
||||
- gocritic # provides diagnostics that check for bugs, performance and style issues
|
||||
- misspell # finds commonly misspelled English words in comments and strings
|
||||
- modernize # detects code that can be modernized to use newer Go features
|
||||
- testifylint # checks usage of github.com/stretchr/testify
|
||||
- unconvert # removes unnecessary type conversions
|
||||
- unparam # reports unused function parameters
|
||||
- whitespace # detects leading and trailing whitespace
|
||||
|
||||
formatters:
|
||||
enable:
|
||||
- gofmt
|
||||
- goimports
|
||||
settings:
|
||||
gofmt:
|
||||
simplify: true
|
||||
rewrite-rules:
|
||||
- pattern: 'interface{}'
|
||||
replacement: 'any'
|
||||
+8
-8
@@ -15,6 +15,8 @@
|
||||
# specific language governing permissions and limitations
|
||||
# under the License.
|
||||
|
||||
version: 2
|
||||
|
||||
env:
|
||||
- GO11MODULE=on
|
||||
- GO111MODULE=on
|
||||
@@ -32,7 +34,7 @@ builds:
|
||||
- id: build
|
||||
main: ./cmd/answer/.
|
||||
binary: answer
|
||||
ldflags: -s -w -X github.com/apache/incubator-answer/cmd.Version={{.RawVersion}} -X github.com/apache/incubator-answer/cmd.Revision={{.ShortCommit}} -X github.com/apache/incubator-answer/cmd.Time={{.Date}} -X github.com/apache/incubator-answer/cmd.BuildUser=goreleaser
|
||||
ldflags: -s -w -X github.com/apache/answer/cmd.Version={{.RawVersion}} -X github.com/apache/answer/cmd.Revision={{.ShortCommit}} -X github.com/apache/answer/cmd.Time={{.Date}} -X github.com/apache/answer/cmd.BuildUser=goreleaser
|
||||
flags: -v
|
||||
goos:
|
||||
- linux
|
||||
@@ -43,7 +45,7 @@ builds:
|
||||
- id: build-windows
|
||||
main: ./cmd/answer/.
|
||||
binary: answer
|
||||
ldflags: -s -w -X github.com/apache/incubator-answer/cmd.Version={{.RawVersion}} -X github.com/apache/incubator-answer/cmd.Revision={{.ShortCommit}} -X github.com/apache/incubator-answer/cmd.Time={{.Date}} -X github.com/apache/incubator-answer/cmd.BuildUser=goreleaser
|
||||
ldflags: -s -w -X github.com/apache/answer/cmd.Version={{.RawVersion}} -X github.com/apache/answer/cmd.Revision={{.ShortCommit}} -X github.com/apache/answer/cmd.Time={{.Date}} -X github.com/apache/answer/cmd.BuildUser=goreleaser
|
||||
flags: -v
|
||||
goos:
|
||||
- windows
|
||||
@@ -55,7 +57,7 @@ builds:
|
||||
|
||||
archives:
|
||||
- name_template: >-
|
||||
apache-answer-{{ .RawVersion }}-incubating-bin-{{ .Os }}-{{ .Arch }}
|
||||
apache-answer-{{ .RawVersion }}-bin-{{ .Os }}-{{ .Arch }}
|
||||
files:
|
||||
- src: "docs/release/LICENSE"
|
||||
dst: LICENSE
|
||||
@@ -63,13 +65,11 @@ archives:
|
||||
dst: NOTICE
|
||||
- src: "docs/release/licenses/*"
|
||||
dst: licenses/
|
||||
- src: "DISCLAIMER"
|
||||
dst: DISCLAIMER
|
||||
wrap_in_directory: true
|
||||
checksum:
|
||||
name_template: 'checksums.txt'
|
||||
snapshot:
|
||||
name_template: "{{ incpatch .Version }}"
|
||||
version_template: "{{ incpatch .Version }}"
|
||||
changelog:
|
||||
sort: asc
|
||||
filters:
|
||||
@@ -79,8 +79,8 @@ changelog:
|
||||
|
||||
source:
|
||||
enabled: true
|
||||
name_template: apache-answer-{{ .RawVersion }}-incubating-src
|
||||
prefix_template: "apache-answer-{{ .RawVersion }}-incubating-src/"
|
||||
name_template: apache-answer-{{ .RawVersion }}-src
|
||||
prefix_template: "apache-answer-{{ .RawVersion }}-src/"
|
||||
|
||||
# goreleaser release --skip-validate --skip-publish --clean
|
||||
|
||||
|
||||
+2
-2
@@ -19,7 +19,7 @@ version: 0.0.1
|
||||
achievements:
|
||||
- achievement:
|
||||
name: Visionary Architect
|
||||
icon: https://raw.githubusercontent.com/apache/incubator-answer/main/.vaunt/enhancement.png
|
||||
icon: https://raw.githubusercontent.com/apache/answer/main/.vaunt/enhancement.png
|
||||
description: Awarded for bringing up enhancement, dream big!
|
||||
triggers:
|
||||
- trigger:
|
||||
@@ -28,7 +28,7 @@ achievements:
|
||||
condition: labels in ['enhancement'] & labels in ['LGTM']
|
||||
- achievement:
|
||||
name: Bug Hunter
|
||||
icon: https://raw.githubusercontent.com/apache/incubator-answer/main/.vaunt/bug.png
|
||||
icon: https://raw.githubusercontent.com/apache/answer/main/.vaunt/bug.png
|
||||
description: Awarded for identifying real bugs, well spotted!
|
||||
triggers:
|
||||
- trigger:
|
||||
|
||||
Vendored
+4
-1
@@ -2,5 +2,8 @@
|
||||
"eslint.workingDirectories": [
|
||||
"ui"
|
||||
],
|
||||
"explorer.autoReveal": "focusNoScroll"
|
||||
"explorer.autoReveal": "focusNoScroll",
|
||||
"cSpell.words": [
|
||||
"grecaptcha"
|
||||
]
|
||||
}
|
||||
|
||||
-10
@@ -1,10 +0,0 @@
|
||||
Apache Answer (incubating) is an effort undergoing incubation at the Apache
|
||||
Software Foundation (ASF), sponsored by the Apache Incubator PMC.
|
||||
|
||||
Incubation is required of all newly accepted projects until a further review
|
||||
indicates that the infrastructure, communications, and decision making process
|
||||
have stabilized in a manner consistent with other successful ASF projects.
|
||||
|
||||
While incubation status is not necessarily a reflection of the completeness
|
||||
or stability of the code, it does indicate that the project has yet to be
|
||||
fully endorsed by the ASF.
|
||||
+4
-4
@@ -15,8 +15,8 @@
|
||||
# specific language governing permissions and limitations
|
||||
# under the License.
|
||||
|
||||
FROM golang:1.19-alpine AS golang-builder
|
||||
LABEL maintainer="aichy@sf.com"
|
||||
FROM golang:1.25-alpine AS golang-builder
|
||||
LABEL maintainer="linkinstar@apache.org"
|
||||
|
||||
ARG GOPROXY
|
||||
# ENV GOPROXY ${GOPROXY:-direct}
|
||||
@@ -24,7 +24,7 @@ ARG GOPROXY
|
||||
|
||||
ENV GOPATH /go
|
||||
ENV GOROOT /usr/local/go
|
||||
ENV PACKAGE github.com/apache/incubator-answer
|
||||
ENV PACKAGE github.com/apache/answer
|
||||
ENV BUILD_DIR ${GOPATH}/src/${PACKAGE}
|
||||
ENV ANSWER_MODULE ${BUILD_DIR}
|
||||
|
||||
@@ -34,7 +34,7 @@ ARG CGO_EXTRA_CFLAGS
|
||||
|
||||
COPY . ${BUILD_DIR}
|
||||
WORKDIR ${BUILD_DIR}
|
||||
RUN apk --no-cache add build-base git bash nodejs npm && npm install -g pnpm@latest \
|
||||
RUN apk --no-cache add build-base git bash nodejs npm && npm install -g pnpm@9.7.0 \
|
||||
&& make clean build
|
||||
|
||||
RUN chmod 755 answer
|
||||
|
||||
@@ -1,14 +1,23 @@
|
||||
.PHONY: build clean ui
|
||||
|
||||
VERSION=1.2.5
|
||||
VERSION=2.0.2
|
||||
BIN=answer
|
||||
DIR_SRC=./cmd/answer
|
||||
DOCKER_CMD=docker
|
||||
|
||||
GO_ENV=CGO_ENABLED=0 GO111MODULE=on
|
||||
Revision=$(shell git rev-parse --short HEAD 2>/dev/null || echo "")
|
||||
GO_FLAGS=-ldflags="-X github.com/apache/incubator-answer/cmd.Version=$(VERSION) -X 'github.com/apache/incubator-answer/cmd.Revision=$(Revision)' -X 'github.com/apache/incubator-answer/cmd.Time=`date +%s`' -extldflags -static"
|
||||
GO=$(GO_ENV) $(shell which go)
|
||||
GO_FLAGS=-ldflags="-X github.com/apache/answer/cmd.Version=$(VERSION) -X 'github.com/apache/answer/cmd.Revision=$(Revision)' -X 'github.com/apache/answer/cmd.Time=`date +%s`' -extldflags -static"
|
||||
GO=$(GO_ENV) "$(shell which go)"
|
||||
|
||||
GOLANGCI_VERSION ?= v2.6.2
|
||||
TOOLS_BIN := $(shell mkdir -p build/tools && realpath build/tools)
|
||||
|
||||
GOLANGCI = $(TOOLS_BIN)/golangci-lint-$(GOLANGCI_VERSION)
|
||||
$(GOLANGCI):
|
||||
rm -f $(TOOLS_BIN)/golangci-lint*
|
||||
curl -sSfL https://raw.githubusercontent.com/golangci/golangci-lint/$(GOLANGCI_VERSION)/install.sh | sh -s -- -b $(TOOLS_BIN) $(GOLANGCI_VERSION)
|
||||
mv $(TOOLS_BIN)/golangci-lint $(TOOLS_BIN)/golangci-lint-$(GOLANGCI_VERSION)
|
||||
|
||||
build: generate
|
||||
@$(GO) build $(GO_FLAGS) -o $(BIN) $(DIR_SRC)
|
||||
@@ -21,13 +30,20 @@ universal: generate
|
||||
@rm -f ${BIN}_amd64 ${BIN}_arm64
|
||||
|
||||
generate:
|
||||
@$(GO) get github.com/swaggo/swag/cmd/swag@v1.16.3
|
||||
@$(GO) get github.com/google/wire/cmd/wire@v0.5.0
|
||||
@$(GO) get github.com/golang/mock/mockgen@v1.6.0
|
||||
@$(GO) get go.uber.org/mock/mockgen@v0.6.0
|
||||
@$(GO) install github.com/swaggo/swag/cmd/swag@v1.16.3
|
||||
@$(GO) install github.com/google/wire/cmd/wire@v0.5.0
|
||||
@$(GO) install github.com/golang/mock/mockgen@v1.6.0
|
||||
@$(GO) install go.uber.org/mock/mockgen@v0.6.0
|
||||
@$(GO) generate ./...
|
||||
@$(GO) mod tidy
|
||||
|
||||
check:
|
||||
@mockgen -version
|
||||
@swag -v
|
||||
@wire flags
|
||||
|
||||
test:
|
||||
@$(GO) test ./internal/repo/repo_test
|
||||
|
||||
@@ -38,13 +54,17 @@ clean:
|
||||
|
||||
install-ui-packages:
|
||||
@corepack enable
|
||||
@corepack prepare pnpm@latest --activate
|
||||
@corepack prepare pnpm@9.7.0 --activate
|
||||
|
||||
ui:
|
||||
@cd ui && pnpm pre-install && pnpm build && cd -
|
||||
|
||||
lint: generate
|
||||
lint: generate $(GOLANGCI)
|
||||
@bash ./script/check-asf-header.sh
|
||||
@gofmt -w -l .
|
||||
$(GOLANGCI) run
|
||||
|
||||
lint-fix: generate $(GOLANGCI)
|
||||
@bash ./script/check-asf-header.sh
|
||||
$(GOLANGCI) run --fix
|
||||
|
||||
all: clean build
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
Apache Answer (incubating)
|
||||
Copyright 2023-2024 The Apache Software Foundation
|
||||
Apache Answer
|
||||
Copyright 2023-2026 The Apache Software Foundation
|
||||
|
||||
This product includes software developed at
|
||||
The Apache Software Foundation (https://www.apache.org/).
|
||||
|
||||
@@ -8,10 +8,10 @@ A Q&A platform software for teams at any scales. Whether it’s a community foru
|
||||
|
||||
To learn more about the project, visit [answer.apache.org](https://answer.apache.org).
|
||||
|
||||
[](https://github.com/apache/incubator-answer/blob/main/LICENSE)
|
||||
[](https://github.com/apache/answer/blob/main/LICENSE)
|
||||
[](https://golang.org/)
|
||||
[](https://reactjs.org/)
|
||||
[](https://goreportcard.com/report/github.com/apache/incubator-answer)
|
||||
[](https://goreportcard.com/report/github.com/apache/answer)
|
||||
[](https://discord.gg/Jm7Y4cbUej)
|
||||
|
||||
## Screenshots
|
||||
@@ -23,7 +23,7 @@ To learn more about the project, visit [answer.apache.org](https://answer.apache
|
||||
### Running with docker
|
||||
|
||||
```bash
|
||||
docker run -d -p 9080:80 -v answer-data:/data --name answer apache/answer:1.2.5
|
||||
docker run -d -p 9080:80 -v answer-data:/data --name answer apache/answer:2.0.2
|
||||
```
|
||||
|
||||
For more information, see [Installation](https://answer.apache.org/docs/installation).
|
||||
@@ -40,20 +40,20 @@ You can also check out the [plugins here](https://answer.apache.org/plugins).
|
||||
|
||||
### Prerequisites
|
||||
|
||||
- Golang >= 1.18
|
||||
- Node.js >= 16.17
|
||||
- pnpm >= 8
|
||||
- mockgen >= 1.6.0
|
||||
- wire >= 0.5.0
|
||||
- Golang >= 1.23
|
||||
- Node.js >= 20
|
||||
- pnpm >= 9
|
||||
- [mockgen](https://github.com/uber-go/mock?tab=readme-ov-file#installation) >= 0.6.0
|
||||
- [wire](https://github.com/google/wire/) >= 0.5.0
|
||||
|
||||
### Build
|
||||
|
||||
```bash
|
||||
# install wire and mockgen for building
|
||||
# Install wire and mockgen for building. You can run `make check` to check if they are installed.
|
||||
$ make generate
|
||||
# install frontend dependencies and build
|
||||
# Install frontend dependencies and build
|
||||
$ make ui
|
||||
# install backend dependencies and build
|
||||
# Install backend dependencies and build
|
||||
$ make build
|
||||
```
|
||||
|
||||
@@ -65,4 +65,4 @@ See [CONTRIBUTING](https://answer.apache.org/community/contributing) for ways to
|
||||
|
||||
## License
|
||||
|
||||
[Apache License 2.0](https://github.com/apache/incubator-answer/blob/main/LICENSE)
|
||||
[Apache License 2.0](https://github.com/apache/answer/blob/main/LICENSE)
|
||||
|
||||
@@ -64,8 +64,23 @@ spec:
|
||||
port: http
|
||||
resources:
|
||||
{{- toYaml .Values.resources | nindent 12 }}
|
||||
{{- if .Values.env }}
|
||||
{{- $envNames := list }}
|
||||
{{- range .Values.env }}
|
||||
{{- $envNames = append $envNames .name }}
|
||||
{{- end }}
|
||||
env:
|
||||
{{- if not (has "INSTALL_PORT" $envNames) }}
|
||||
- name: INSTALL_PORT
|
||||
value: {{ .Values.service.port | quote }}
|
||||
{{- end }}
|
||||
{{- if not (has "SITE_ADDR" $envNames) }}
|
||||
- name: SITE_ADDR
|
||||
value: {{ printf "0.0.0.0:%v" .Values.service.port | quote }}
|
||||
{{- end }}
|
||||
{{- if not (has "SWAGGER_ADDRESS_PORT" $envNames) }}
|
||||
- name: SWAGGER_ADDRESS_PORT
|
||||
value: {{ printf ":%v" .Values.service.port | quote }}
|
||||
{{- end }}
|
||||
{{- range .Values.env }}
|
||||
- name: {{ .name }}
|
||||
{{- if .value | quote }}
|
||||
@@ -76,7 +91,6 @@ spec:
|
||||
{{- toYaml .valueFrom | nindent 16 }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
volumeMounts:
|
||||
- name: data
|
||||
mountPath: "/data"
|
||||
@@ -102,4 +116,4 @@ spec:
|
||||
{{- with .Values.tolerations }}
|
||||
tolerations:
|
||||
{{- toYaml . | nindent 8 }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
|
||||
@@ -20,7 +20,7 @@ kind: PersistentVolumeClaim
|
||||
apiVersion: v1
|
||||
metadata:
|
||||
name: {{ include "answer.fullname" . }}-claim
|
||||
{{- with .Values.persistence.annotations }}
|
||||
{{- with .Values.persistence.annotations }}
|
||||
annotations:
|
||||
{{ toYaml . | indent 4 }}
|
||||
{{- end }}
|
||||
@@ -39,4 +39,10 @@ spec:
|
||||
resources:
|
||||
requests:
|
||||
storage: {{ .Values.persistence.size | quote }}
|
||||
{{- with .Values.persistence.dataSource }}
|
||||
dataSource:
|
||||
name: {{ .name }}
|
||||
kind: {{ .kind | default "VolumeSnapshot" }}
|
||||
apiGroup: {{ .apiGroup | default "snapshot.storage.k8s.io" }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
+8
-2
@@ -35,7 +35,7 @@ env:
|
||||
# [DEBUG INFO WARN ERROR]
|
||||
value: "INFO"
|
||||
# uncomment the below values to use AUTO_INSTALL and not have to go through the setup process.
|
||||
# Once used to do the initial setup, these variables wont be used moving forward.
|
||||
# Once used to do the initial setup, these variables won't be used moving forward.
|
||||
# You must at a minimum comment AUTO_INSTALL after initial setup to prevent an error about the database already being initiated.
|
||||
# - name: AUTO_INSTALL
|
||||
# value: "true"
|
||||
@@ -68,7 +68,7 @@ env:
|
||||
|
||||
# Configure extra containers
|
||||
extraContainers: []
|
||||
# - name: cloudsql-proxy
|
||||
# - name: cloudsql-proxy
|
||||
# image: gcr.io/cloud-sql-connectors/cloud-sql-proxy:2.1.2
|
||||
# command:
|
||||
# - /cloud-sql-proxy
|
||||
@@ -91,6 +91,12 @@ persistence:
|
||||
accessMode: ReadWriteOnce
|
||||
size: 5Gi
|
||||
annotations: {}
|
||||
# To restore a PVC from a VolumeSnapshot, set the dataSource;
|
||||
# the kind and apiGroup are optional and default to the shown values
|
||||
dataSource: {}
|
||||
# name: my-volume-snapshot
|
||||
# kind: VolumeSnapshot
|
||||
# apiGroup: snapshot.storage.k8s.io
|
||||
|
||||
imagePullSecrets: []
|
||||
nameOverride: ""
|
||||
|
||||
+7
-1
@@ -17,12 +17,18 @@
|
||||
* under the License.
|
||||
*/
|
||||
|
||||
//go:generate go run github.com/swaggo/swag/cmd/swag init -g ./cmd/answer/main.go -d ../../ -o ../../docs
|
||||
|
||||
package main
|
||||
|
||||
import (
|
||||
answercmd "github.com/apache/incubator-answer/cmd"
|
||||
answercmd "github.com/apache/answer/cmd"
|
||||
)
|
||||
|
||||
// main godoc
|
||||
// @title Apache Answer
|
||||
// @description Apache Answer API
|
||||
// @BasePath /
|
||||
// @securityDefinitions.apikey ApiKeyAuth
|
||||
// @in header
|
||||
// @name Authorization
|
||||
|
||||
+115
-50
@@ -20,15 +20,17 @@
|
||||
package answercmd
|
||||
|
||||
import (
|
||||
"context"
|
||||
"fmt"
|
||||
"os"
|
||||
"strings"
|
||||
|
||||
"github.com/apache/incubator-answer/internal/base/conf"
|
||||
"github.com/apache/incubator-answer/internal/cli"
|
||||
"github.com/apache/incubator-answer/internal/install"
|
||||
"github.com/apache/incubator-answer/internal/migrations"
|
||||
"github.com/apache/incubator-answer/plugin"
|
||||
"github.com/apache/answer/internal/base/conf"
|
||||
"github.com/apache/answer/internal/base/path"
|
||||
"github.com/apache/answer/internal/cli"
|
||||
"github.com/apache/answer/internal/install"
|
||||
"github.com/apache/answer/internal/migrations"
|
||||
"github.com/apache/answer/plugin"
|
||||
"github.com/segmentfault/pacman/log"
|
||||
"github.com/spf13/cobra"
|
||||
)
|
||||
@@ -38,6 +40,8 @@ var (
|
||||
dataDirPath string
|
||||
// dumpDataPath dump data path
|
||||
dumpDataPath string
|
||||
// place to build new answer
|
||||
buildDir string
|
||||
// plugins needed to build in answer application
|
||||
buildWithPlugins []string
|
||||
// build output path
|
||||
@@ -47,6 +51,14 @@ var (
|
||||
upgradeVersion string
|
||||
// The fields that need to be set to the default value
|
||||
configFields []string
|
||||
// i18nSourcePath i18n from path
|
||||
i18nSourcePath string
|
||||
// i18nTargetPath i18n to path
|
||||
i18nTargetPath string
|
||||
// resetPasswordEmail user email for password reset
|
||||
resetPasswordEmail string
|
||||
// resetPasswordPassword new password for password reset
|
||||
resetPasswordPassword string
|
||||
)
|
||||
|
||||
func init() {
|
||||
@@ -60,17 +72,25 @@ func init() {
|
||||
|
||||
buildCmd.Flags().StringVarP(&buildOutput, "output", "o", "", "build output path")
|
||||
|
||||
buildCmd.Flags().StringVarP(&buildDir, "build-dir", "b", "", "dir for build process")
|
||||
|
||||
upgradeCmd.Flags().StringVarP(&upgradeVersion, "from", "f", "", "upgrade from specific version, eg: -f v1.1.0")
|
||||
|
||||
configCmd.Flags().StringSliceVarP(&configFields, "with", "w", []string{}, "the fields that need to be set to the default value, eg: -w allow_password_login")
|
||||
|
||||
for _, cmd := range []*cobra.Command{initCmd, checkCmd, runCmd, dumpCmd, upgradeCmd, buildCmd, pluginCmd, configCmd} {
|
||||
i18nCmd.Flags().StringVarP(&i18nSourcePath, "source", "s", "", "i18n source path, eg: -s ./i18n/source")
|
||||
|
||||
i18nCmd.Flags().StringVarP(&i18nTargetPath, "target", "t", "", "i18n target path, eg: -t ./i18n/target")
|
||||
|
||||
resetPasswordCmd.Flags().StringVarP(&resetPasswordEmail, "email", "e", "", "user email address")
|
||||
resetPasswordCmd.Flags().StringVarP(&resetPasswordPassword, "password", "p", "", "new password (not recommended, will be recorded in shell history)")
|
||||
|
||||
for _, cmd := range []*cobra.Command{initCmd, checkCmd, runCmd, dumpCmd, upgradeCmd, buildCmd, pluginCmd, configCmd, i18nCmd, resetPasswordCmd} {
|
||||
rootCmd.AddCommand(cmd)
|
||||
}
|
||||
}
|
||||
|
||||
var (
|
||||
// rootCmd represents the base command when called without any subcommands
|
||||
rootCmd = &cobra.Command{
|
||||
Use: "answer",
|
||||
Short: "Answer is a minimalist open source Q&A community.",
|
||||
@@ -80,32 +100,30 @@ To run answer, use:
|
||||
- 'answer run' to launch application.`,
|
||||
}
|
||||
|
||||
// runCmd represents the run command
|
||||
runCmd = &cobra.Command{
|
||||
Use: "run",
|
||||
Short: "Run the application",
|
||||
Long: `Run the application`,
|
||||
Short: "Run Answer",
|
||||
Long: `Start running Answer`,
|
||||
Run: func(_ *cobra.Command, _ []string) {
|
||||
cli.FormatAllPath(dataDirPath)
|
||||
fmt.Println("config file path: ", cli.GetConfigFilePath())
|
||||
path.FormatAllPath(dataDirPath)
|
||||
fmt.Println("config file path: ", path.GetConfigFilePath())
|
||||
fmt.Println("Answer is starting..........................")
|
||||
runApp()
|
||||
},
|
||||
}
|
||||
|
||||
// initCmd represents the init command
|
||||
initCmd = &cobra.Command{
|
||||
Use: "init",
|
||||
Short: "init answer application",
|
||||
Long: `init answer application`,
|
||||
Short: "Initialize Answer",
|
||||
Long: `Initialize Answer with specified configuration`,
|
||||
Run: func(_ *cobra.Command, _ []string) {
|
||||
// check config file and database. if config file exists and database is already created, init done
|
||||
cli.InstallAllInitialEnvironment(dataDirPath)
|
||||
|
||||
configFileExist := cli.CheckConfigFile(cli.GetConfigFilePath())
|
||||
configFileExist := cli.CheckConfigFile(path.GetConfigFilePath())
|
||||
if configFileExist {
|
||||
fmt.Println("config file exists, try to read the config...")
|
||||
c, err := conf.ReadConfig(cli.GetConfigFilePath())
|
||||
c, err := conf.ReadConfig(path.GetConfigFilePath())
|
||||
if err != nil {
|
||||
fmt.Println("read config failed: ", err.Error())
|
||||
return
|
||||
@@ -119,20 +137,19 @@ To run answer, use:
|
||||
}
|
||||
|
||||
// start installation server to install
|
||||
install.Run(cli.GetConfigFilePath())
|
||||
install.Run(path.GetConfigFilePath())
|
||||
},
|
||||
}
|
||||
|
||||
// upgradeCmd represents the upgrade command
|
||||
upgradeCmd = &cobra.Command{
|
||||
Use: "upgrade",
|
||||
Short: "upgrade Answer version",
|
||||
Long: `upgrade Answer version`,
|
||||
Short: "Upgrade Answer",
|
||||
Long: `Upgrade Answer to the latest version`,
|
||||
Run: func(_ *cobra.Command, _ []string) {
|
||||
log.SetLogger(log.NewStdLogger(os.Stdout))
|
||||
cli.FormatAllPath(dataDirPath)
|
||||
path.FormatAllPath(dataDirPath)
|
||||
cli.InstallI18nBundle(true)
|
||||
c, err := conf.ReadConfig(cli.GetConfigFilePath())
|
||||
c, err := conf.ReadConfig(path.GetConfigFilePath())
|
||||
if err != nil {
|
||||
fmt.Println("read config failed: ", err.Error())
|
||||
return
|
||||
@@ -145,15 +162,14 @@ To run answer, use:
|
||||
},
|
||||
}
|
||||
|
||||
// dumpCmd represents the dump command
|
||||
dumpCmd = &cobra.Command{
|
||||
Use: "dump",
|
||||
Short: "back up data",
|
||||
Long: `back up data`,
|
||||
Short: "Back up data",
|
||||
Long: `Back up database into an SQL file`,
|
||||
Run: func(_ *cobra.Command, _ []string) {
|
||||
fmt.Println("Answer is backing up data")
|
||||
cli.FormatAllPath(dataDirPath)
|
||||
c, err := conf.ReadConfig(cli.GetConfigFilePath())
|
||||
path.FormatAllPath(dataDirPath)
|
||||
c, err := conf.ReadConfig(path.GetConfigFilePath())
|
||||
if err != nil {
|
||||
fmt.Println("read config failed: ", err.Error())
|
||||
return
|
||||
@@ -167,15 +183,14 @@ To run answer, use:
|
||||
},
|
||||
}
|
||||
|
||||
// checkCmd represents the check command
|
||||
checkCmd = &cobra.Command{
|
||||
Use: "check",
|
||||
Short: "checking the required environment",
|
||||
Short: "Check the required environment",
|
||||
Long: `Check if the current environment meets the startup requirements`,
|
||||
Run: func(_ *cobra.Command, _ []string) {
|
||||
cli.FormatAllPath(dataDirPath)
|
||||
path.FormatAllPath(dataDirPath)
|
||||
fmt.Println("Start checking the required environment...")
|
||||
if cli.CheckConfigFile(cli.GetConfigFilePath()) {
|
||||
if cli.CheckConfigFile(path.GetConfigFilePath()) {
|
||||
fmt.Println("config file exists [✔]")
|
||||
} else {
|
||||
fmt.Println("config file not exists [x]")
|
||||
@@ -187,7 +202,7 @@ To run answer, use:
|
||||
fmt.Println("upload directory not exists [x]")
|
||||
}
|
||||
|
||||
c, err := conf.ReadConfig(cli.GetConfigFilePath())
|
||||
c, err := conf.ReadConfig(path.GetConfigFilePath())
|
||||
if err != nil {
|
||||
fmt.Println("read config failed: ", err.Error())
|
||||
return
|
||||
@@ -202,31 +217,30 @@ To run answer, use:
|
||||
},
|
||||
}
|
||||
|
||||
// buildCmd used to build another answer with plugins
|
||||
buildCmd = &cobra.Command{
|
||||
Use: "build",
|
||||
Short: "used to build answer with plugins",
|
||||
Short: "Build Answer with plugins",
|
||||
Long: `Build a new Answer with plugins that you need`,
|
||||
Run: func(_ *cobra.Command, _ []string) {
|
||||
fmt.Printf("try to build a new answer with plugins:\n%s\n", strings.Join(buildWithPlugins, "\n"))
|
||||
err := cli.BuildNewAnswer(buildOutput, buildWithPlugins, cli.OriginalAnswerInfo{
|
||||
err := cli.BuildNewAnswer(buildDir, buildOutput, buildWithPlugins, cli.OriginalAnswerInfo{
|
||||
Version: Version,
|
||||
Revision: Revision,
|
||||
Time: Time,
|
||||
})
|
||||
if err != nil {
|
||||
fmt.Printf("build failed %v", err)
|
||||
} else {
|
||||
fmt.Printf("build new answer successfully %s\n", buildOutput)
|
||||
fmt.Printf("build failed %v\n", err)
|
||||
os.Exit(1)
|
||||
}
|
||||
|
||||
fmt.Printf("build new answer successfully %s\n", buildOutput)
|
||||
},
|
||||
}
|
||||
|
||||
// pluginCmd prints all plugins packed in the binary
|
||||
pluginCmd = &cobra.Command{
|
||||
Use: "plugin",
|
||||
Short: "prints all plugins packed in the binary",
|
||||
Long: `prints all plugins packed in the binary`,
|
||||
Short: "Print all plugins packed in the binary",
|
||||
Long: `Print all plugins packed in the binary`,
|
||||
Run: func(_ *cobra.Command, _ []string) {
|
||||
_ = plugin.CallBase(func(base plugin.Base) error {
|
||||
info := base.Info()
|
||||
@@ -236,27 +250,31 @@ To run answer, use:
|
||||
},
|
||||
}
|
||||
|
||||
// configCmd set some config to default value
|
||||
configCmd = &cobra.Command{
|
||||
Use: "config",
|
||||
Short: "set some config to default value",
|
||||
Long: `set some config to default value`,
|
||||
Short: "Set some config to default value",
|
||||
Long: `Set some config to default value`,
|
||||
Run: func(_ *cobra.Command, _ []string) {
|
||||
cli.FormatAllPath(dataDirPath)
|
||||
path.FormatAllPath(dataDirPath)
|
||||
|
||||
c, err := conf.ReadConfig(cli.GetConfigFilePath())
|
||||
c, err := conf.ReadConfig(path.GetConfigFilePath())
|
||||
if err != nil {
|
||||
fmt.Println("read config failed: ", err.Error())
|
||||
return
|
||||
}
|
||||
|
||||
field := &cli.ConfigField{}
|
||||
for _, f := range configFields {
|
||||
switch f {
|
||||
fmt.Println(configFields)
|
||||
if len(configFields) > 0 {
|
||||
switch configFields[0] {
|
||||
case "allow_password_login":
|
||||
field.AllowPasswordLogin = true
|
||||
case "deactivate_plugin":
|
||||
if len(configFields) > 1 {
|
||||
field.DeactivatePluginSlugName = configFields[1]
|
||||
}
|
||||
default:
|
||||
fmt.Printf("field %s not support\n", f)
|
||||
fmt.Printf("field %s not support\n", configFields[0])
|
||||
}
|
||||
}
|
||||
err = cli.SetDefaultConfig(c.Data.Database, c.Data.Cache, field)
|
||||
@@ -267,6 +285,53 @@ To run answer, use:
|
||||
}
|
||||
},
|
||||
}
|
||||
|
||||
i18nCmd = &cobra.Command{
|
||||
Use: "i18n",
|
||||
Short: "Overwrite i18n files",
|
||||
Long: `Merge i18n files from plugins to original i18n files. It will overwrite the original i18n files`,
|
||||
Run: func(_ *cobra.Command, _ []string) {
|
||||
if err := cli.ReplaceI18nFilesLocal(i18nTargetPath); err != nil {
|
||||
fmt.Printf("replace i18n files failed %v\n", err)
|
||||
} else {
|
||||
fmt.Printf("replace i18n files successfully\n")
|
||||
}
|
||||
|
||||
fmt.Printf("try to merge i18n files from %q to %q\n", i18nSourcePath, i18nTargetPath)
|
||||
|
||||
if err := cli.MergeI18nFilesLocal(i18nTargetPath, i18nSourcePath); err != nil {
|
||||
fmt.Printf("merge i18n files failed %v\n", err)
|
||||
} else {
|
||||
fmt.Printf("merge i18n files successfully\n")
|
||||
}
|
||||
},
|
||||
}
|
||||
|
||||
resetPasswordCmd = &cobra.Command{
|
||||
Use: "passwd",
|
||||
Aliases: []string{"password", "reset-password"},
|
||||
Short: "Reset user password",
|
||||
Long: "Reset user password by email address.",
|
||||
Example: ` # Interactive mode (recommended, safest)
|
||||
answer passwd -C ./answer-data
|
||||
|
||||
# Specify email only (will prompt for password securely)
|
||||
answer passwd -C ./answer-data --email user@example.com
|
||||
answer passwd -C ./answer-data -e user@example.com
|
||||
|
||||
# Specify email and password (NOT recommended, will be recorded in shell history)
|
||||
answer passwd -C ./answer-data -e user@example.com -p newpassword123`,
|
||||
Run: func(cmd *cobra.Command, args []string) {
|
||||
opts := &cli.ResetPasswordOptions{
|
||||
Email: resetPasswordEmail,
|
||||
Password: resetPasswordPassword,
|
||||
}
|
||||
if err := cli.ResetPassword(context.Background(), dataDirPath, opts); err != nil {
|
||||
fmt.Fprintf(os.Stderr, "Error: %v\n", err)
|
||||
os.Exit(1)
|
||||
}
|
||||
},
|
||||
}
|
||||
)
|
||||
|
||||
// Execute adds all child commands to the root command and sets flags appropriately.
|
||||
|
||||
+15
-9
@@ -25,19 +25,25 @@ import (
|
||||
"os"
|
||||
"time"
|
||||
|
||||
"github.com/apache/incubator-answer/internal/base/conf"
|
||||
"github.com/apache/incubator-answer/internal/base/constant"
|
||||
"github.com/apache/incubator-answer/internal/base/cron"
|
||||
"github.com/apache/incubator-answer/internal/cli"
|
||||
"github.com/apache/incubator-answer/internal/schema"
|
||||
"github.com/apache/answer/internal/base/conf"
|
||||
"github.com/apache/answer/internal/base/constant"
|
||||
"github.com/apache/answer/internal/base/cron"
|
||||
"github.com/apache/answer/internal/base/path"
|
||||
"github.com/apache/answer/internal/schema"
|
||||
"github.com/gin-gonic/gin"
|
||||
"github.com/joho/godotenv"
|
||||
"github.com/segmentfault/pacman"
|
||||
"github.com/segmentfault/pacman/contrib/log/zap"
|
||||
"github.com/segmentfault/pacman/contrib/server/http"
|
||||
"github.com/segmentfault/pacman/log"
|
||||
)
|
||||
|
||||
// go build -ldflags "-X github.com/apache/incubator-answer/cmd.Version=x.y.z"
|
||||
func init() {
|
||||
// Load .env if present, ignore error to keep backward compatibility
|
||||
_ = godotenv.Load()
|
||||
}
|
||||
|
||||
// go build -ldflags "-X github.com/apache/answer/cmd.Version=x.y.z"
|
||||
var (
|
||||
// Name is the name of the project
|
||||
Name = "answer"
|
||||
@@ -49,7 +55,7 @@ var (
|
||||
// Time is the build time of the project
|
||||
Time = ""
|
||||
// GoVersion is the go version of the project
|
||||
GoVersion = "1.19"
|
||||
GoVersion = "1.23"
|
||||
// log level
|
||||
logLevel = os.Getenv("LOG_LEVEL")
|
||||
// log path
|
||||
@@ -67,12 +73,12 @@ func Main() {
|
||||
}
|
||||
|
||||
func runApp() {
|
||||
c, err := conf.ReadConfig(cli.GetConfigFilePath())
|
||||
c, err := conf.ReadConfig(path.GetConfigFilePath())
|
||||
if err != nil {
|
||||
panic(err)
|
||||
}
|
||||
app, cleanup, err := initApplication(
|
||||
c.Debug, c.Server, c.Data.Database, c.Data.Cache, c.I18n, c.Swaggerui, c.ServiceConfig, log.GetLogger())
|
||||
c.Debug, c.Server, c.Data.Database, c.Data.Cache, c.I18n, c.Swaggerui, c.ServiceConfig, c.UI, log.GetLogger())
|
||||
if err != nil {
|
||||
panic(err)
|
||||
}
|
||||
|
||||
+14
-14
@@ -1,5 +1,4 @@
|
||||
//go:build wireinject
|
||||
// +build wireinject
|
||||
|
||||
/*
|
||||
* Licensed to the Apache Software Foundation (ASF) under one
|
||||
@@ -25,19 +24,19 @@
|
||||
package answercmd
|
||||
|
||||
import (
|
||||
"github.com/apache/incubator-answer/internal/base/conf"
|
||||
"github.com/apache/incubator-answer/internal/base/cron"
|
||||
"github.com/apache/incubator-answer/internal/base/data"
|
||||
"github.com/apache/incubator-answer/internal/base/middleware"
|
||||
"github.com/apache/incubator-answer/internal/base/server"
|
||||
"github.com/apache/incubator-answer/internal/base/translator"
|
||||
"github.com/apache/incubator-answer/internal/controller"
|
||||
"github.com/apache/incubator-answer/internal/controller/template_render"
|
||||
"github.com/apache/incubator-answer/internal/controller_admin"
|
||||
"github.com/apache/incubator-answer/internal/repo"
|
||||
"github.com/apache/incubator-answer/internal/router"
|
||||
"github.com/apache/incubator-answer/internal/service"
|
||||
"github.com/apache/incubator-answer/internal/service/service_config"
|
||||
"github.com/apache/answer/internal/base/conf"
|
||||
"github.com/apache/answer/internal/base/cron"
|
||||
"github.com/apache/answer/internal/base/data"
|
||||
"github.com/apache/answer/internal/base/middleware"
|
||||
"github.com/apache/answer/internal/base/server"
|
||||
"github.com/apache/answer/internal/base/translator"
|
||||
"github.com/apache/answer/internal/controller"
|
||||
templaterender "github.com/apache/answer/internal/controller/template_render"
|
||||
"github.com/apache/answer/internal/controller_admin"
|
||||
"github.com/apache/answer/internal/repo"
|
||||
"github.com/apache/answer/internal/router"
|
||||
"github.com/apache/answer/internal/service"
|
||||
"github.com/apache/answer/internal/service/service_config"
|
||||
"github.com/google/wire"
|
||||
"github.com/segmentfault/pacman"
|
||||
"github.com/segmentfault/pacman/log"
|
||||
@@ -52,6 +51,7 @@ func initApplication(
|
||||
i18nConf *translator.I18n,
|
||||
swaggerConf *router.SwaggerConfig,
|
||||
serviceConf *service_config.ServiceConfig,
|
||||
uiConf *server.UI,
|
||||
logConf log.Logger) (*pacman.Application, func(), error) {
|
||||
panic(wire.Build(
|
||||
server.ProviderSetServer,
|
||||
|
||||
+181
-130
@@ -27,82 +27,100 @@
|
||||
package answercmd
|
||||
|
||||
import (
|
||||
"github.com/apache/incubator-answer/internal/base/conf"
|
||||
"github.com/apache/incubator-answer/internal/base/cron"
|
||||
"github.com/apache/incubator-answer/internal/base/data"
|
||||
"github.com/apache/incubator-answer/internal/base/middleware"
|
||||
"github.com/apache/incubator-answer/internal/base/server"
|
||||
"github.com/apache/incubator-answer/internal/base/translator"
|
||||
"github.com/apache/incubator-answer/internal/controller"
|
||||
"github.com/apache/incubator-answer/internal/controller/template_render"
|
||||
"github.com/apache/incubator-answer/internal/controller_admin"
|
||||
"github.com/apache/incubator-answer/internal/repo/activity"
|
||||
"github.com/apache/incubator-answer/internal/repo/activity_common"
|
||||
"github.com/apache/incubator-answer/internal/repo/answer"
|
||||
"github.com/apache/incubator-answer/internal/repo/auth"
|
||||
"github.com/apache/incubator-answer/internal/repo/captcha"
|
||||
"github.com/apache/incubator-answer/internal/repo/collection"
|
||||
"github.com/apache/incubator-answer/internal/repo/comment"
|
||||
"github.com/apache/incubator-answer/internal/repo/config"
|
||||
"github.com/apache/incubator-answer/internal/repo/export"
|
||||
"github.com/apache/incubator-answer/internal/repo/limit"
|
||||
"github.com/apache/incubator-answer/internal/repo/meta"
|
||||
notification2 "github.com/apache/incubator-answer/internal/repo/notification"
|
||||
"github.com/apache/incubator-answer/internal/repo/plugin_config"
|
||||
"github.com/apache/incubator-answer/internal/repo/question"
|
||||
"github.com/apache/incubator-answer/internal/repo/rank"
|
||||
"github.com/apache/incubator-answer/internal/repo/reason"
|
||||
"github.com/apache/incubator-answer/internal/repo/report"
|
||||
"github.com/apache/incubator-answer/internal/repo/revision"
|
||||
"github.com/apache/incubator-answer/internal/repo/role"
|
||||
"github.com/apache/incubator-answer/internal/repo/search_common"
|
||||
"github.com/apache/incubator-answer/internal/repo/site_info"
|
||||
"github.com/apache/incubator-answer/internal/repo/tag"
|
||||
"github.com/apache/incubator-answer/internal/repo/tag_common"
|
||||
"github.com/apache/incubator-answer/internal/repo/unique"
|
||||
"github.com/apache/incubator-answer/internal/repo/user"
|
||||
"github.com/apache/incubator-answer/internal/repo/user_external_login"
|
||||
"github.com/apache/incubator-answer/internal/repo/user_notification_config"
|
||||
"github.com/apache/incubator-answer/internal/router"
|
||||
"github.com/apache/incubator-answer/internal/service"
|
||||
"github.com/apache/incubator-answer/internal/service/action"
|
||||
activity2 "github.com/apache/incubator-answer/internal/service/activity"
|
||||
activity_common2 "github.com/apache/incubator-answer/internal/service/activity_common"
|
||||
"github.com/apache/incubator-answer/internal/service/activity_queue"
|
||||
"github.com/apache/incubator-answer/internal/service/answer_common"
|
||||
auth2 "github.com/apache/incubator-answer/internal/service/auth"
|
||||
"github.com/apache/incubator-answer/internal/service/collection_common"
|
||||
comment2 "github.com/apache/incubator-answer/internal/service/comment"
|
||||
"github.com/apache/incubator-answer/internal/service/comment_common"
|
||||
config2 "github.com/apache/incubator-answer/internal/service/config"
|
||||
"github.com/apache/incubator-answer/internal/service/dashboard"
|
||||
export2 "github.com/apache/incubator-answer/internal/service/export"
|
||||
"github.com/apache/incubator-answer/internal/service/follow"
|
||||
meta2 "github.com/apache/incubator-answer/internal/service/meta"
|
||||
"github.com/apache/incubator-answer/internal/service/notice_queue"
|
||||
"github.com/apache/incubator-answer/internal/service/notification"
|
||||
"github.com/apache/incubator-answer/internal/service/notification_common"
|
||||
"github.com/apache/incubator-answer/internal/service/object_info"
|
||||
"github.com/apache/incubator-answer/internal/service/plugin_common"
|
||||
"github.com/apache/incubator-answer/internal/service/question_common"
|
||||
rank2 "github.com/apache/incubator-answer/internal/service/rank"
|
||||
reason2 "github.com/apache/incubator-answer/internal/service/reason"
|
||||
report2 "github.com/apache/incubator-answer/internal/service/report"
|
||||
"github.com/apache/incubator-answer/internal/service/report_admin"
|
||||
"github.com/apache/incubator-answer/internal/service/report_handle_admin"
|
||||
"github.com/apache/incubator-answer/internal/service/revision_common"
|
||||
role2 "github.com/apache/incubator-answer/internal/service/role"
|
||||
"github.com/apache/incubator-answer/internal/service/search_parser"
|
||||
"github.com/apache/incubator-answer/internal/service/service_config"
|
||||
"github.com/apache/incubator-answer/internal/service/siteinfo"
|
||||
"github.com/apache/incubator-answer/internal/service/siteinfo_common"
|
||||
tag2 "github.com/apache/incubator-answer/internal/service/tag"
|
||||
tag_common2 "github.com/apache/incubator-answer/internal/service/tag_common"
|
||||
"github.com/apache/incubator-answer/internal/service/uploader"
|
||||
"github.com/apache/incubator-answer/internal/service/user_admin"
|
||||
"github.com/apache/incubator-answer/internal/service/user_common"
|
||||
user_external_login2 "github.com/apache/incubator-answer/internal/service/user_external_login"
|
||||
user_notification_config2 "github.com/apache/incubator-answer/internal/service/user_notification_config"
|
||||
"github.com/apache/answer/internal/base/conf"
|
||||
"github.com/apache/answer/internal/base/cron"
|
||||
"github.com/apache/answer/internal/base/data"
|
||||
"github.com/apache/answer/internal/base/middleware"
|
||||
"github.com/apache/answer/internal/base/server"
|
||||
"github.com/apache/answer/internal/base/translator"
|
||||
"github.com/apache/answer/internal/controller"
|
||||
"github.com/apache/answer/internal/controller/template_render"
|
||||
"github.com/apache/answer/internal/controller_admin"
|
||||
"github.com/apache/answer/internal/repo/activity"
|
||||
"github.com/apache/answer/internal/repo/activity_common"
|
||||
"github.com/apache/answer/internal/repo/ai_conversation"
|
||||
"github.com/apache/answer/internal/repo/answer"
|
||||
"github.com/apache/answer/internal/repo/api_key"
|
||||
"github.com/apache/answer/internal/repo/auth"
|
||||
"github.com/apache/answer/internal/repo/badge"
|
||||
"github.com/apache/answer/internal/repo/badge_award"
|
||||
"github.com/apache/answer/internal/repo/badge_group"
|
||||
"github.com/apache/answer/internal/repo/captcha"
|
||||
"github.com/apache/answer/internal/repo/collection"
|
||||
"github.com/apache/answer/internal/repo/comment"
|
||||
"github.com/apache/answer/internal/repo/config"
|
||||
"github.com/apache/answer/internal/repo/export"
|
||||
"github.com/apache/answer/internal/repo/file_record"
|
||||
"github.com/apache/answer/internal/repo/limit"
|
||||
"github.com/apache/answer/internal/repo/meta"
|
||||
notification2 "github.com/apache/answer/internal/repo/notification"
|
||||
"github.com/apache/answer/internal/repo/plugin_config"
|
||||
"github.com/apache/answer/internal/repo/question"
|
||||
"github.com/apache/answer/internal/repo/rank"
|
||||
"github.com/apache/answer/internal/repo/reason"
|
||||
"github.com/apache/answer/internal/repo/report"
|
||||
"github.com/apache/answer/internal/repo/review"
|
||||
"github.com/apache/answer/internal/repo/revision"
|
||||
"github.com/apache/answer/internal/repo/role"
|
||||
"github.com/apache/answer/internal/repo/search_common"
|
||||
"github.com/apache/answer/internal/repo/site_info"
|
||||
"github.com/apache/answer/internal/repo/tag"
|
||||
"github.com/apache/answer/internal/repo/tag_common"
|
||||
"github.com/apache/answer/internal/repo/unique"
|
||||
"github.com/apache/answer/internal/repo/user"
|
||||
"github.com/apache/answer/internal/repo/user_external_login"
|
||||
"github.com/apache/answer/internal/repo/user_notification_config"
|
||||
"github.com/apache/answer/internal/router"
|
||||
"github.com/apache/answer/internal/service/action"
|
||||
activity2 "github.com/apache/answer/internal/service/activity"
|
||||
activity_common2 "github.com/apache/answer/internal/service/activity_common"
|
||||
"github.com/apache/answer/internal/service/activityqueue"
|
||||
ai_conversation2 "github.com/apache/answer/internal/service/ai_conversation"
|
||||
"github.com/apache/answer/internal/service/answer_common"
|
||||
"github.com/apache/answer/internal/service/apikey"
|
||||
auth2 "github.com/apache/answer/internal/service/auth"
|
||||
badge2 "github.com/apache/answer/internal/service/badge"
|
||||
collection2 "github.com/apache/answer/internal/service/collection"
|
||||
"github.com/apache/answer/internal/service/collection_common"
|
||||
comment2 "github.com/apache/answer/internal/service/comment"
|
||||
"github.com/apache/answer/internal/service/comment_common"
|
||||
config2 "github.com/apache/answer/internal/service/config"
|
||||
"github.com/apache/answer/internal/service/content"
|
||||
"github.com/apache/answer/internal/service/dashboard"
|
||||
"github.com/apache/answer/internal/service/embedding"
|
||||
"github.com/apache/answer/internal/service/eventqueue"
|
||||
export2 "github.com/apache/answer/internal/service/export"
|
||||
"github.com/apache/answer/internal/service/feature_toggle"
|
||||
file_record2 "github.com/apache/answer/internal/service/file_record"
|
||||
"github.com/apache/answer/internal/service/follow"
|
||||
"github.com/apache/answer/internal/service/importer"
|
||||
meta2 "github.com/apache/answer/internal/service/meta"
|
||||
"github.com/apache/answer/internal/service/meta_common"
|
||||
"github.com/apache/answer/internal/service/noticequeue"
|
||||
"github.com/apache/answer/internal/service/notification"
|
||||
"github.com/apache/answer/internal/service/notification_common"
|
||||
"github.com/apache/answer/internal/service/object_info"
|
||||
"github.com/apache/answer/internal/service/plugin_common"
|
||||
"github.com/apache/answer/internal/service/question_common"
|
||||
rank2 "github.com/apache/answer/internal/service/rank"
|
||||
reason2 "github.com/apache/answer/internal/service/reason"
|
||||
report2 "github.com/apache/answer/internal/service/report"
|
||||
"github.com/apache/answer/internal/service/report_handle"
|
||||
review2 "github.com/apache/answer/internal/service/review"
|
||||
"github.com/apache/answer/internal/service/revision_common"
|
||||
role2 "github.com/apache/answer/internal/service/role"
|
||||
"github.com/apache/answer/internal/service/search_parser"
|
||||
"github.com/apache/answer/internal/service/service_config"
|
||||
"github.com/apache/answer/internal/service/siteinfo"
|
||||
"github.com/apache/answer/internal/service/siteinfo_common"
|
||||
tag2 "github.com/apache/answer/internal/service/tag"
|
||||
tag_common2 "github.com/apache/answer/internal/service/tag_common"
|
||||
"github.com/apache/answer/internal/service/uploader"
|
||||
"github.com/apache/answer/internal/service/user_admin"
|
||||
"github.com/apache/answer/internal/service/user_common"
|
||||
user_external_login2 "github.com/apache/answer/internal/service/user_external_login"
|
||||
user_notification_config2 "github.com/apache/answer/internal/service/user_notification_config"
|
||||
"github.com/apache/answer/internal/service/vector_sync"
|
||||
"github.com/segmentfault/pacman"
|
||||
"github.com/segmentfault/pacman/log"
|
||||
)
|
||||
@@ -110,7 +128,7 @@ import (
|
||||
// Injectors from wire.go:
|
||||
|
||||
// initApplication init application.
|
||||
func initApplication(debug bool, serverConf *conf.Server, dbConf *data.Database, cacheConf *data.CacheConf, i18nConf *translator.I18n, swaggerConf *router.SwaggerConfig, serviceConf *service_config.ServiceConfig, logConf log.Logger) (*pacman.Application, func(), error) {
|
||||
func initApplication(debug bool, serverConf *conf.Server, dbConf *data.Database, cacheConf *data.CacheConf, i18nConf *translator.I18n, swaggerConf *router.SwaggerConfig, serviceConf *service_config.ServiceConfig, uiConf *server.UI, logConf log.Logger) (*pacman.Application, func(), error) {
|
||||
staticRouter := router.NewStaticRouter(serviceConf)
|
||||
i18nTranslator, err := translator.NewTranslator(i18nConf)
|
||||
if err != nil {
|
||||
@@ -133,7 +151,8 @@ func initApplication(debug bool, serverConf *conf.Server, dbConf *data.Database,
|
||||
siteInfoCommonService := siteinfo_common.NewSiteInfoCommonService(siteInfoRepo)
|
||||
langController := controller.NewLangController(i18nTranslator, siteInfoCommonService)
|
||||
authRepo := auth.NewAuthRepo(dataData)
|
||||
authService := auth2.NewAuthService(authRepo)
|
||||
apiKeyRepo := api_key.NewAPIKeyRepo(dataData)
|
||||
authService := auth2.NewAuthService(authRepo, apiKeyRepo)
|
||||
userRepo := user.NewUserRepo(dataData)
|
||||
uniqueIDRepo := unique.NewUniqueIDRepo(dataData)
|
||||
configRepo := config.NewConfigRepo(dataData)
|
||||
@@ -152,26 +171,39 @@ func initApplication(debug bool, serverConf *conf.Server, dbConf *data.Database,
|
||||
userNotificationConfigRepo := user_notification_config.NewUserNotificationConfigRepo(dataData)
|
||||
userNotificationConfigService := user_notification_config2.NewUserNotificationConfigService(userRepo, userNotificationConfigRepo)
|
||||
userExternalLoginService := user_external_login2.NewUserExternalLoginService(userRepo, userCommon, userExternalLoginRepo, emailService, siteInfoCommonService, userActiveActivityRepo, userNotificationConfigService)
|
||||
userService := service.NewUserService(userRepo, userActiveActivityRepo, activityRepo, emailService, authService, siteInfoCommonService, userRoleRelService, userCommon, userExternalLoginService, userNotificationConfigRepo, userNotificationConfigService)
|
||||
captchaRepo := captcha.NewCaptchaRepo(dataData)
|
||||
captchaService := action.NewCaptchaService(captchaRepo)
|
||||
userController := controller.NewUserController(authService, userService, captchaService, emailService, siteInfoCommonService, userNotificationConfigService)
|
||||
commentRepo := comment.NewCommentRepo(dataData, uniqueIDRepo)
|
||||
commentCommonRepo := comment.NewCommentCommonRepo(dataData, uniqueIDRepo)
|
||||
answerRepo := answer.NewAnswerRepo(dataData, uniqueIDRepo, userRankRepo, activityRepo)
|
||||
questionRepo := question.NewQuestionRepo(dataData, uniqueIDRepo)
|
||||
answerRepo := answer.NewAnswerRepo(dataData, uniqueIDRepo, userRankRepo, activityRepo)
|
||||
voteRepo := activity_common.NewVoteRepo(dataData, activityRepo)
|
||||
followRepo := activity_common.NewFollowRepo(dataData, uniqueIDRepo, activityRepo)
|
||||
tagCommonRepo := tag_common.NewTagCommonRepo(dataData, uniqueIDRepo)
|
||||
tagRelRepo := tag.NewTagRelRepo(dataData, uniqueIDRepo)
|
||||
tagRepo := tag.NewTagRepo(dataData, uniqueIDRepo)
|
||||
revisionRepo := revision.NewRevisionRepo(dataData, uniqueIDRepo)
|
||||
revisionService := revision_common.NewRevisionService(revisionRepo, userRepo)
|
||||
activityQueueService := activity_queue.NewActivityQueueService()
|
||||
tagCommonService := tag_common2.NewTagCommonService(tagCommonRepo, tagRelRepo, tagRepo, revisionService, siteInfoCommonService, activityQueueService)
|
||||
service := activityqueue.NewService()
|
||||
tagCommonService := tag_common2.NewTagCommonService(tagCommonRepo, tagRelRepo, tagRepo, revisionService, siteInfoCommonService, service)
|
||||
collectionRepo := collection.NewCollectionRepo(dataData, uniqueIDRepo)
|
||||
collectionCommon := collectioncommon.NewCollectionCommon(collectionRepo)
|
||||
answerCommon := answercommon.NewAnswerCommon(answerRepo)
|
||||
metaRepo := meta.NewMetaRepo(dataData)
|
||||
metaCommonService := metacommon.NewMetaCommonService(metaRepo)
|
||||
questionCommon := questioncommon.NewQuestionCommon(questionRepo, answerRepo, voteRepo, followRepo, tagCommonService, userCommon, collectionCommon, answerCommon, metaCommonService, configService, service, revisionRepo, siteInfoCommonService, dataData)
|
||||
eventqueueService := eventqueue.NewService()
|
||||
fileRecordRepo := file_record.NewFileRecordRepo(dataData)
|
||||
fileRecordService := file_record2.NewFileRecordService(fileRecordRepo, revisionRepo, serviceConf, siteInfoCommonService, userCommon)
|
||||
userService := content.NewUserService(userRepo, userActiveActivityRepo, activityRepo, emailService, authService, siteInfoCommonService, userRoleRelService, userCommon, userExternalLoginService, userNotificationConfigRepo, userNotificationConfigService, questionCommon, eventqueueService, fileRecordService)
|
||||
captchaRepo := captcha.NewCaptchaRepo(dataData)
|
||||
captchaService := action.NewCaptchaService(captchaRepo)
|
||||
userController := controller.NewUserController(authService, userService, captchaService, emailService, siteInfoCommonService, userNotificationConfigService)
|
||||
commentRepo := comment.NewCommentRepo(dataData, uniqueIDRepo)
|
||||
commentCommonRepo := comment.NewCommentCommonRepo(dataData, uniqueIDRepo)
|
||||
objService := object_info.NewObjService(answerRepo, questionRepo, commentCommonRepo, tagCommonRepo, tagCommonService)
|
||||
voteRepo := activity_common.NewVoteRepo(dataData, activityRepo)
|
||||
notificationQueueService := notice_queue.NewNotificationQueueService()
|
||||
externalNotificationQueueService := notice_queue.NewNewQuestionNotificationQueueService()
|
||||
commentService := comment2.NewCommentService(commentRepo, commentCommonRepo, userCommon, objService, voteRepo, emailService, userRepo, notificationQueueService, externalNotificationQueueService, activityQueueService)
|
||||
noticequeueService := noticequeue.NewService()
|
||||
externalService := noticequeue.NewExternalService()
|
||||
reviewRepo := review.NewReviewRepo(dataData)
|
||||
vector_syncService := vector_sync.NewService(dataData)
|
||||
reviewService := review2.NewReviewService(reviewRepo, objService, userCommon, userRepo, questionRepo, answerRepo, userRoleRelService, externalService, tagCommonService, questionCommon, noticequeueService, siteInfoCommonService, commentCommonRepo, vector_syncService)
|
||||
commentService := comment2.NewCommentService(commentRepo, commentCommonRepo, userCommon, objService, voteRepo, emailService, userRepo, noticequeueService, externalService, service, eventqueueService, reviewService, vector_syncService)
|
||||
rolePowerRelRepo := role.NewRolePowerRelRepo(dataData)
|
||||
rolePowerRelService := role2.NewRolePowerRelService(rolePowerRelRepo, userRoleRelService)
|
||||
rankService := rank2.NewRankService(userCommon, userRankRepo, objService, userRoleRelService, rolePowerRelService, configService)
|
||||
@@ -179,88 +211,107 @@ func initApplication(debug bool, serverConf *conf.Server, dbConf *data.Database,
|
||||
rateLimitMiddleware := middleware.NewRateLimitMiddleware(limitRepo)
|
||||
commentController := controller.NewCommentController(commentService, rankService, captchaService, rateLimitMiddleware)
|
||||
reportRepo := report.NewReportRepo(dataData, uniqueIDRepo)
|
||||
reportService := report2.NewReportService(reportRepo, objService)
|
||||
tagService := tag2.NewTagService(tagRepo, tagCommonService, revisionService, followRepo, siteInfoCommonService, service)
|
||||
answerActivityRepo := activity.NewAnswerActivityRepo(dataData, activityRepo, userRankRepo, noticequeueService)
|
||||
answerActivityService := activity2.NewAnswerActivityService(answerActivityRepo, configService)
|
||||
externalNotificationService := notification.NewExternalNotificationService(dataData, userNotificationConfigRepo, followRepo, emailService, userRepo, externalService, userExternalLoginRepo, siteInfoCommonService)
|
||||
questionService := content.NewQuestionService(activityRepo, questionRepo, answerRepo, tagCommonService, tagService, questionCommon, userCommon, userRepo, userRoleRelService, revisionService, metaCommonService, collectionCommon, answerActivityService, emailService, noticequeueService, externalService, service, siteInfoCommonService, externalNotificationService, reviewService, configService, eventqueueService, reviewRepo, vector_syncService)
|
||||
answerService := content.NewAnswerService(answerRepo, questionRepo, questionCommon, userCommon, collectionCommon, userRepo, revisionService, answerActivityService, answerCommon, voteRepo, emailService, userRoleRelService, noticequeueService, externalService, service, reviewService, eventqueueService, vector_syncService)
|
||||
reportHandle := report_handle.NewReportHandle(questionService, answerService, commentService)
|
||||
reportService := report2.NewReportService(reportRepo, objService, userCommon, answerRepo, questionRepo, commentCommonRepo, reportHandle, configService, eventqueueService)
|
||||
reportController := controller.NewReportController(reportService, rankService, captchaService)
|
||||
serviceVoteRepo := activity.NewVoteRepo(dataData, activityRepo, userRankRepo, notificationQueueService)
|
||||
voteService := service.NewVoteService(serviceVoteRepo, configService, questionRepo, answerRepo, commentCommonRepo, objService)
|
||||
contentVoteRepo := activity.NewVoteRepo(dataData, activityRepo, userRankRepo, noticequeueService)
|
||||
voteService := content.NewVoteService(contentVoteRepo, configService, questionRepo, answerRepo, commentCommonRepo, objService, eventqueueService)
|
||||
voteController := controller.NewVoteController(voteService, rankService, captchaService)
|
||||
followRepo := activity_common.NewFollowRepo(dataData, uniqueIDRepo, activityRepo)
|
||||
tagService := tag2.NewTagService(tagRepo, tagCommonService, revisionService, followRepo, siteInfoCommonService, activityQueueService)
|
||||
tagController := controller.NewTagController(tagService, tagCommonService, rankService)
|
||||
followFollowRepo := activity.NewFollowRepo(dataData, uniqueIDRepo, activityRepo)
|
||||
followService := follow.NewFollowService(followFollowRepo, followRepo, tagCommonRepo)
|
||||
followController := controller.NewFollowController(followService)
|
||||
collectionRepo := collection.NewCollectionRepo(dataData, uniqueIDRepo)
|
||||
collectionGroupRepo := collection.NewCollectionGroupRepo(dataData)
|
||||
collectionCommon := collectioncommon.NewCollectionCommon(collectionRepo)
|
||||
answerCommon := answercommon.NewAnswerCommon(answerRepo)
|
||||
metaRepo := meta.NewMetaRepo(dataData)
|
||||
metaService := meta2.NewMetaService(metaRepo)
|
||||
questionCommon := questioncommon.NewQuestionCommon(questionRepo, answerRepo, voteRepo, followRepo, tagCommonService, userCommon, collectionCommon, answerCommon, metaService, configService, activityQueueService, dataData)
|
||||
collectionService := service.NewCollectionService(collectionRepo, collectionGroupRepo, questionCommon)
|
||||
collectionService := collection2.NewCollectionService(collectionRepo, collectionGroupRepo, questionCommon)
|
||||
collectionController := controller.NewCollectionController(collectionService)
|
||||
answerActivityRepo := activity.NewAnswerActivityRepo(dataData, activityRepo, userRankRepo, notificationQueueService)
|
||||
answerActivityService := activity2.NewAnswerActivityService(answerActivityRepo, configService)
|
||||
externalNotificationService := notification.NewExternalNotificationService(dataData, userNotificationConfigRepo, followRepo, emailService, userRepo, externalNotificationQueueService, userExternalLoginRepo, siteInfoCommonService)
|
||||
questionService := service.NewQuestionService(questionRepo, tagCommonService, questionCommon, userCommon, userRepo, userRoleRelService, revisionService, metaService, collectionCommon, answerActivityService, emailService, notificationQueueService, externalNotificationQueueService, activityQueueService, siteInfoCommonService, externalNotificationService)
|
||||
answerService := service.NewAnswerService(answerRepo, questionRepo, questionCommon, userCommon, collectionCommon, userRepo, revisionService, answerActivityService, answerCommon, voteRepo, emailService, userRoleRelService, notificationQueueService, externalNotificationQueueService, activityQueueService)
|
||||
questionController := controller.NewQuestionController(questionService, answerService, rankService, siteInfoCommonService, captchaService, rateLimitMiddleware)
|
||||
answerController := controller.NewAnswerController(answerService, rankService, captchaService, siteInfoCommonService, rateLimitMiddleware)
|
||||
searchParser := search_parser.NewSearchParser(tagCommonService, userCommon)
|
||||
searchRepo := search_common.NewSearchRepo(dataData, uniqueIDRepo, userCommon, tagCommonService)
|
||||
searchService := service.NewSearchService(searchParser, searchRepo)
|
||||
searchService := content.NewSearchService(searchParser, searchRepo)
|
||||
searchController := controller.NewSearchController(searchService, captchaService)
|
||||
serviceRevisionService := service.NewRevisionService(revisionRepo, userCommon, questionCommon, answerService, objService, questionRepo, answerRepo, tagRepo, tagCommonService, notificationQueueService, activityQueueService)
|
||||
revisionController := controller.NewRevisionController(serviceRevisionService, rankService)
|
||||
reviewActivityRepo := activity.NewReviewActivityRepo(dataData, activityRepo, userRankRepo, configService)
|
||||
contentRevisionService := content.NewRevisionService(revisionRepo, userCommon, questionCommon, answerService, objService, questionRepo, answerRepo, tagRepo, tagCommonService, noticequeueService, service, reportRepo, reviewService, reviewActivityRepo)
|
||||
revisionController := controller.NewRevisionController(contentRevisionService, rankService)
|
||||
rankController := controller.NewRankController(rankService)
|
||||
reportHandle := report_handle_admin.NewReportHandle(questionCommon, commentRepo, configService, notificationQueueService)
|
||||
reportAdminService := report_admin.NewReportAdminService(reportRepo, userCommon, answerRepo, questionRepo, commentCommonRepo, reportHandle, configService, objService)
|
||||
controller_adminReportController := controller_admin.NewReportController(reportAdminService)
|
||||
userAdminRepo := user.NewUserAdminRepo(dataData, authRepo)
|
||||
userAdminService := user_admin.NewUserAdminService(userAdminRepo, userRoleRelService, authService, userCommon, userActiveActivityRepo, siteInfoCommonService, emailService, questionRepo, answerRepo, commentCommonRepo)
|
||||
notificationRepo := notification2.NewNotificationRepo(dataData)
|
||||
pluginUserConfigRepo := plugin_config.NewPluginUserConfigRepo(dataData)
|
||||
badgeAwardRepo := badge_award.NewBadgeAwardRepo(dataData, uniqueIDRepo)
|
||||
userAdminService := user_admin.NewUserAdminService(userAdminRepo, userRoleRelService, authService, userCommon, userActiveActivityRepo, siteInfoCommonService, emailService, questionRepo, answerRepo, commentCommonRepo, userExternalLoginRepo, notificationRepo, pluginUserConfigRepo, badgeAwardRepo, apiKeyRepo)
|
||||
userAdminController := controller_admin.NewUserAdminController(userAdminService)
|
||||
reasonRepo := reason.NewReasonRepo(configService)
|
||||
reasonService := reason2.NewReasonService(reasonRepo)
|
||||
reasonController := controller.NewReasonController(reasonService)
|
||||
themeController := controller_admin.NewThemeController()
|
||||
siteInfoService := siteinfo.NewSiteInfoService(siteInfoRepo, siteInfoCommonService, emailService, tagCommonService, configService, questionCommon)
|
||||
siteInfoService := siteinfo.NewSiteInfoService(siteInfoRepo, siteInfoCommonService, emailService, tagCommonService, configService, questionCommon, fileRecordService)
|
||||
siteInfoController := controller_admin.NewSiteInfoController(siteInfoService)
|
||||
controllerSiteInfoController := controller.NewSiteInfoController(siteInfoCommonService)
|
||||
notificationRepo := notification2.NewNotificationRepo(dataData)
|
||||
notificationCommon := notificationcommon.NewNotificationCommon(dataData, notificationRepo, userCommon, activityRepo, followRepo, objService, notificationQueueService, userExternalLoginRepo, siteInfoCommonService)
|
||||
notificationService := notification.NewNotificationService(dataData, notificationRepo, notificationCommon, revisionService, userRepo)
|
||||
notificationCommon := notificationcommon.NewNotificationCommon(dataData, notificationRepo, userCommon, activityRepo, followRepo, objService, noticequeueService, userExternalLoginRepo, siteInfoCommonService)
|
||||
badgeRepo := badge.NewBadgeRepo(dataData, uniqueIDRepo)
|
||||
notificationService := notification.NewNotificationService(dataData, notificationRepo, notificationCommon, revisionService, userRepo, reportRepo, reviewService, badgeRepo)
|
||||
notificationController := controller.NewNotificationController(notificationService, rankService)
|
||||
dashboardService := dashboard.NewDashboardService(questionRepo, answerRepo, commentCommonRepo, voteRepo, userRepo, reportRepo, configService, siteInfoCommonService, serviceConf, dataData)
|
||||
dashboardService := dashboard.NewDashboardService(questionRepo, answerRepo, commentCommonRepo, voteRepo, userRepo, reportRepo, configService, siteInfoCommonService, serviceConf, reviewService, revisionRepo, dataData)
|
||||
dashboardController := controller.NewDashboardController(dashboardService)
|
||||
uploaderService := uploader.NewUploaderService(serviceConf, siteInfoCommonService)
|
||||
uploaderService := uploader.NewUploaderService(serviceConf, siteInfoCommonService, fileRecordService)
|
||||
uploadController := controller.NewUploadController(uploaderService)
|
||||
activityActivityRepo := activity.NewActivityRepo(dataData, configService)
|
||||
activityCommon := activity_common2.NewActivityCommon(activityRepo, activityQueueService)
|
||||
activityCommon := activity_common2.NewActivityCommon(activityRepo, service)
|
||||
commentCommonService := comment_common.NewCommentCommonService(commentCommonRepo)
|
||||
activityService := activity2.NewActivityService(activityActivityRepo, userCommon, activityCommon, tagCommonService, objService, commentCommonService, revisionService, metaService, configService)
|
||||
activityService := activity2.NewActivityService(activityActivityRepo, userCommon, activityCommon, tagCommonService, objService, commentCommonService, revisionService, metaCommonService, configService)
|
||||
activityController := controller.NewActivityController(activityService)
|
||||
roleController := controller_admin.NewRoleController(roleService)
|
||||
pluginConfigRepo := plugin_config.NewPluginConfigRepo(dataData)
|
||||
pluginUserConfigRepo := plugin_config.NewPluginUserConfigRepo(dataData)
|
||||
pluginCommonService := plugin_common.NewPluginCommonService(pluginConfigRepo, pluginUserConfigRepo, configService, dataData)
|
||||
importerService := importer.NewImporterService(questionService, rankService, userCommon)
|
||||
pluginCommonService := plugin_common.NewPluginCommonService(pluginConfigRepo, pluginUserConfigRepo, configService, dataData, importerService)
|
||||
pluginController := controller_admin.NewPluginController(pluginCommonService)
|
||||
permissionController := controller.NewPermissionController(rankService)
|
||||
userPluginController := controller.NewUserPluginController(pluginCommonService)
|
||||
answerAPIRouter := router.NewAnswerAPIRouter(langController, userController, commentController, reportController, voteController, tagController, followController, collectionController, questionController, answerController, searchController, revisionController, rankController, controller_adminReportController, userAdminController, reasonController, themeController, siteInfoController, controllerSiteInfoController, notificationController, dashboardController, uploadController, activityController, roleController, pluginController, permissionController, userPluginController)
|
||||
reviewController := controller.NewReviewController(reviewService, rankService, captchaService)
|
||||
metaService := meta2.NewMetaService(metaCommonService, userCommon, answerRepo, questionRepo, eventqueueService)
|
||||
metaController := controller.NewMetaController(metaService)
|
||||
badgeGroupRepo := badge_group.NewBadgeGroupRepo(dataData, uniqueIDRepo)
|
||||
eventRuleRepo := badge.NewEventRuleRepo(dataData)
|
||||
badgeAwardService := badge2.NewBadgeAwardService(badgeAwardRepo, badgeRepo, userCommon, objService, noticequeueService)
|
||||
badgeEventService := badge2.NewBadgeEventService(dataData, eventqueueService, badgeRepo, eventRuleRepo, badgeAwardService)
|
||||
badgeService := badge2.NewBadgeService(badgeRepo, badgeGroupRepo, badgeAwardRepo, badgeEventService, siteInfoCommonService)
|
||||
badgeController := controller.NewBadgeController(badgeService, badgeAwardService)
|
||||
controller_adminBadgeController := controller_admin.NewBadgeController(badgeService)
|
||||
apiKeyService := apikey.NewAPIKeyService(apiKeyRepo)
|
||||
adminAPIKeyController := controller_admin.NewAdminAPIKeyController(apiKeyService)
|
||||
featureToggleService := feature_toggle.NewFeatureToggleService(siteInfoRepo)
|
||||
embeddingService := embedding.NewEmbeddingService()
|
||||
mcpController := controller.NewMCPController(searchService, siteInfoCommonService, tagCommonService, questionCommon, commentRepo, userCommon, answerRepo, featureToggleService, embeddingService)
|
||||
aiConversationRepo := ai_conversation.NewAIConversationRepo(dataData)
|
||||
aiConversationService := ai_conversation2.NewAIConversationService(aiConversationRepo, userCommon)
|
||||
aiController := controller.NewAIController(searchService, siteInfoCommonService, tagCommonService, questionCommon, commentRepo, userCommon, answerRepo, mcpController, aiConversationService, featureToggleService)
|
||||
aiConversationController := controller.NewAIConversationController(aiConversationService, featureToggleService)
|
||||
aiConversationAdminController := controller_admin.NewAIConversationAdminController(aiConversationService, featureToggleService)
|
||||
answerAPIRouter := router.NewAnswerAPIRouter(langController, userController, commentController, reportController, voteController, tagController, followController, collectionController, questionController, answerController, searchController, revisionController, rankController, userAdminController, reasonController, themeController, siteInfoController, controllerSiteInfoController, notificationController, dashboardController, uploadController, activityController, roleController, pluginController, permissionController, userPluginController, reviewController, metaController, badgeController, controller_adminBadgeController, adminAPIKeyController, aiController, aiConversationController, aiConversationAdminController, mcpController)
|
||||
swaggerRouter := router.NewSwaggerRouter(swaggerConf)
|
||||
uiRouter := router.NewUIRouter(controllerSiteInfoController, siteInfoCommonService)
|
||||
authUserMiddleware := middleware.NewAuthUserMiddleware(authService, siteInfoCommonService)
|
||||
avatarMiddleware := middleware.NewAvatarMiddleware(serviceConf, uploaderService)
|
||||
shortIDMiddleware := middleware.NewShortIDMiddleware(siteInfoCommonService)
|
||||
templateRenderController := templaterender.NewTemplateRenderController(questionService, userService, tagService, answerService, commentService, siteInfoCommonService, questionRepo)
|
||||
templateController := controller.NewTemplateController(templateRenderController, siteInfoCommonService)
|
||||
templateController := controller.NewTemplateController(templateRenderController, siteInfoCommonService, eventqueueService, userService, questionService)
|
||||
templateRouter := router.NewTemplateRouter(templateController, templateRenderController, siteInfoController, authUserMiddleware)
|
||||
connectorController := controller.NewConnectorController(siteInfoCommonService, emailService, userExternalLoginService)
|
||||
userCenterLoginService := user_external_login2.NewUserCenterLoginService(userRepo, userCommon, userExternalLoginRepo, userActiveActivityRepo, siteInfoCommonService)
|
||||
userCenterController := controller.NewUserCenterController(userCenterLoginService, siteInfoCommonService)
|
||||
pluginAPIRouter := router.NewPluginAPIRouter(connectorController, userCenterController)
|
||||
ginEngine := server.NewHTTPServer(debug, staticRouter, answerAPIRouter, swaggerRouter, uiRouter, authUserMiddleware, avatarMiddleware, shortIDMiddleware, templateRouter, pluginAPIRouter)
|
||||
scheduledTaskManager := cron.NewScheduledTaskManager(siteInfoCommonService, questionService)
|
||||
captchaController := controller.NewCaptchaController()
|
||||
embedController := controller.NewEmbedController()
|
||||
renderController := controller.NewRenderController()
|
||||
sidebarController := controller.NewSidebarController()
|
||||
pluginAPIRouter := router.NewPluginAPIRouter(connectorController, userCenterController, captchaController, embedController, renderController, sidebarController)
|
||||
ginEngine := server.NewHTTPServer(debug, staticRouter, answerAPIRouter, swaggerRouter, uiRouter, authUserMiddleware, avatarMiddleware, shortIDMiddleware, templateRouter, pluginAPIRouter, uiConf)
|
||||
scheduledTaskManager := cron.NewScheduledTaskManager(siteInfoCommonService, questionService, fileRecordService, userAdminService, serviceConf)
|
||||
application := newApplication(serverConf, ginEngine, scheduledTaskManager)
|
||||
return application, func() {
|
||||
cleanup2()
|
||||
|
||||
@@ -33,3 +33,12 @@ swaggerui:
|
||||
address: ':80'
|
||||
service_config:
|
||||
upload_path: "/data/uploads"
|
||||
clean_up_uploads: true
|
||||
clean_orphan_uploads_period_hours: 48
|
||||
purge_deleted_files_period_days: 30
|
||||
ui:
|
||||
public_url: '/'
|
||||
api_url: '/'
|
||||
base_url: ''
|
||||
api_base_url: ''
|
||||
|
||||
|
||||
+3864
-417
File diff suppressed because it is too large
Load Diff
Binary file not shown.
|
Before Width: | Height: | Size: 13 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 42 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 86 KiB After Width: | Height: | Size: 96 KiB |
+39
-28
@@ -214,11 +214,12 @@ Apache 2.0 licenses
|
||||
|
||||
The following components are provided under the Apache 2.0 License.
|
||||
|
||||
(Apache License, Version 2.0) react-helmet-async (https://github.com/staylor/react-helmet-async) [link](./licenses/LICENSE-staylor-react-helmet-async.txt)
|
||||
(Apache License, Version 2.0) golang-mock (https://github.com/golang/mock) [link](./licenses/LICENSE-golang-mock.txt)
|
||||
(Apache License, Version 2.0) gomock (https://github.com/uber-go/mock) [link](./licenses/LICENSE-uber-go-mock.txt)
|
||||
(Apache License, Version 2.0) google-wire (https://github.com/google/wire) [link](./licenses/LICENSE-google-wire.txt)
|
||||
(Apache License, Version 2.0) mojocn-base64Captcha (https://github.com/mojocn/base64Captcha) [link](./licenses/LICENSE-mojocn-base64Captcha.txt)
|
||||
(Apache License, Version 2.0) ory-dockertest (https://github.com/ory/dockertest) [link](./licenses/LICENSE-ory-dockertest.txt)
|
||||
(Apache License, Version 2.0) react-helmet-async (https://github.com/staylor/react-helmet-async) [link](./licenses/LICENSE-staylor-react-helmet-async.txt)
|
||||
(Apache License, Version 2.0) sashabaranov-go-openai (https://github.com/sashabaranov/go-openai) [link](./licenses/LICENSE-sashabaranov-go-openai.txt)
|
||||
(Apache License, Version 2.0) spf13-cobra (https://github.com/spf13/cobra) [link](./licenses/LICENSE-spf13-cobra.txt)
|
||||
|
||||
========================================================================
|
||||
@@ -227,51 +228,62 @@ MIT licenses
|
||||
|
||||
The following components are provided under the MIT License. See project link for details.
|
||||
|
||||
(MIT License) @codemirror/lang-markdown (https://github.com/codemirror/lang-markdown) [link](./licenses/LICENSE-codemirror-lang-markdown.txt)
|
||||
(MIT License) @codemirror/language-data (https://github.com/codemirror/language-data) [link](./licenses/LICENSE-codemirror-language-data.txt)
|
||||
(MIT License) @codemirror/state (https://github.com/codemirror/state) [link](./licenses/LICENSE-codemirror-state.txt)
|
||||
(MIT License) @codemirror/view (https://github.com/codemirror/view) [link](./licenses/LICENSE-codemirror-view.txt)
|
||||
(MIT License) anargu-gin-brotli (https://github.com/anargu/gin-brotli) [link](./licenses/LICENSE-anargu-gin-brotli.txt)
|
||||
(MIT License) asaskevich-govalidator (https://github.com/asaskevich/govalidator) [link](./licenses/LICENSE-asaskevich-govalidator.txt)
|
||||
(MIT License) axios (https://github.com/axios/axios) [link](./licenses/LICENSE-axios-axios.txt)
|
||||
(MIT License) bootstrap (https://github.com/twbs/bootstrap) [link](./licenses/LICENSE-twbs-bootstrap.txt)
|
||||
(MIT License) icons (https://github.com/twbs/icons) [link](./licenses/LICENSE-twbs-icons.txt)
|
||||
(MIT License) classnames (https://github.com/JedWatson/classnames) [link](./LICENSE-JedWatson-classnames.txt)
|
||||
(MIT License) codemirror5 (https://github.com/codemirror/codemirror5) [link](./licenses/LICENSE-codemirror-codemirror5.txt)
|
||||
(MIT License) codemirror (https://github.com/codemirror/basic-setup) [link](./licenses/LICENSE-codemirror-basic-setup.txt)
|
||||
(MIT License) color (https://github.com/Qix-/color) [link](./licenses/LICENSE-Qix--color.txt)
|
||||
(MIT License) copy-to-clipboard (https://github.com/sudodoki/copy-to-clipboard) [link](./licenses/LICENSE-sudodoki-copy-to-clipboard.txt)
|
||||
(MIT License) dayjs (https://github.com/iamkun/dayjs) [link](./licenses/LICENSE-iamkun-dayjs.txt)
|
||||
(MIT License) disintegration-imaging (https://github.com/disintegration/imaging) [link](./licenses/LICENSE-disintegration-imaging.txt)
|
||||
(MIT License) front-matter (https://github.com/jxson/front-matter) [link](./licenses/LICENSE-jxson-front-matter.txt)
|
||||
(MIT License) gin-gonic-gin (https://github.com/gin-gonic/gin) [link](./licenses/LICENSE-gin-gonic-gin.txt)
|
||||
(MIT License) go-gomail-gomail (https://gopkg.in/gomail.v2) [link](./licenses/LICENSE-go-gomail-gomail.txt)
|
||||
(MIT License) go-playground-locales (https://github.com/go-playground/locales) [link](./licenses/LICENSE-go-playground-locales.txt)
|
||||
(MIT License) go-playground-universal-translator (https://github.com/go-playground/universal-translator) [link](./licenses/LICENSE-go-playground-universal-translator.txt)
|
||||
(MIT License) go-playground-validator (https://github.com/go-playground/validator) [link](./licenses/LICENSE-go-playground-validator.txt)
|
||||
(MIT License) go-resty-resty (https://github.com/go-resty/resty) [link](./licenses/LICENSE-go-resty-resty.txt)
|
||||
(MIT License) goccy-go-json (https://github.com/goccy/go-json) [link](./licenses/LICENSE-goccy-go-json.txt)
|
||||
(MIT License) i18next (https://github.com/i18next/i18next) [link](./licenses/LICENSE-i18next-i18next.txt)
|
||||
(MIT License) icons (https://github.com/twbs/icons) [link](./licenses/LICENSE-twbs-icons.txt)
|
||||
(MIT License) jinzhu-copier (https://github.com/jinzhu/copier) [link](./licenses/LICENSE-jinzhu-copier.txt)
|
||||
(MIT License) jinzhu-now (https://github.com/jinzhu/now) [link](./licenses/LICENSE-jinzhu-now.txt)
|
||||
(MIT License) joho-godotenv (https://github.com/joho/godotenv) [link](./licenses/LICENSE-joho-godotenv.txt)
|
||||
(MIT License) jordan-wright-email (https://github.com/jordan-wright/email) [link](./licenses/LICENSE-jordan-wright-email.txt)
|
||||
(MIT License) js-sha256 (https://github.com/emn178/js-sha256) [link](./licenses/LICENSE-emn178-js-sha256.txt)
|
||||
(MIT License) lib-pq (https://github.com/lib/pq) [link](./licenses/LICENSE-lib-pq.txt)
|
||||
(MIT License) lodash (https://github.com/lodash/lodash) [link](./licenses/LICENSE-lodash-lodash.txt)
|
||||
(MIT License) Machiel-slugify (https://github.com/Machiel/slugify) [link](./licenses/LICENSE-Machiel-slugify.txt)
|
||||
(MIT License) mark3labs-mcp-go (https://github.com/mark3labs/mcp-go) [link](./licenses/LICENSE-mark3labs-mcp-go.txt)
|
||||
(MIT License) marked (https://github.com/markedjs/marked) [link](./licenses/LICENSE-markedjs-marked.txt)
|
||||
(MIT License) Masterminds-semver (https://github.com/Masterminds/semver) [link](./licenses/LICENSE-Masterminds-semver.txt)
|
||||
(MIT License) mattn-go-sqlite3 (https://github.com/mattn/go-sqlite3) [link](./licenses/LICENSE-mattn-go-sqlite3.txt)
|
||||
(MIT License) mozillazg-go-pinyin (https://github.com/mozillazg/go-pinyin) [link](./licenses/LICENSE-mozillazg-go-pinyin.txt)
|
||||
(MIT License) mozillazg-go-unidecode (https://github.com/mozillazg/go-unidecode) [link](./licenses/LICENSE-mozillazg-go-unidecode.txt)
|
||||
(MIT License) next-share (https://github.com/Bunlong/next-share) [link](./licenses/LIcENSE-Bunlong-next-share.txt)
|
||||
(MIT License) node-qrcode (https://github.com/soldair/node-qrcode) [link](./licenses/LICENSE-soldair-qrcode.txt)
|
||||
(MIT License) react (https://github.com/facebook/react) [link](./licenses/LICENSE-facebook-react.txt)
|
||||
(MIT License) react-bootstrap (https://github.com/react-bootstrap/react-bootstrap) [link](./licenses/LICENSE-react-bootstrap-react-bootstrap.txt)
|
||||
(MIT License) react-i18next (https://github.com/i18next/react-i18next) [link](./licenses/LICENSE-i18next-react-i18next.txt)
|
||||
(MIT License) react-router (https://github.com/remix-run/react-router) [link](./licenses/LICENSE-remix-run-react-router.txt)
|
||||
(MIT License) swr (https://github.com/vercel/swr) [link](./licenses/LICENSE-vercel-swr.txt)
|
||||
(MIT License) zustand (https://github.com/pmndrs/zustand) [link](./licenses/LICENSE-pmndrs-zustand.txt)
|
||||
(MIT License) Chain-Zhang-pinyin (https://github.com/Chain-Zhang/pinyin) [link](./licenses/LICENSE-Chain-Zhang-pinyin.txt)
|
||||
(MIT License) Machiel-slugify (https://github.com/Machiel/slugify) [link](./licenses/LICENSE-Machiel-slugify.txt)
|
||||
(MIT License) Masterminds-semver (https://github.com/Masterminds/semver) [link](./licenses/LICENSE-Masterminds-semver.txt)
|
||||
(MIT License) anargu-gin-brotli (https://github.com/anargu/gin-brotli) [link](./licenses/LICENSE-anargu-gin-brotli.txt)
|
||||
(MIT License) asaskevich-govalidator (https://github.com/asaskevich/govalidator) [link](./licenses/LICENSE-asaskevich-govalidator.txt)
|
||||
(MIT License) disintegration-imaging (https://github.com/disintegration/imaging) [link](./licenses/LICENSE-disintegration-imaging.txt)
|
||||
(MIT License) gin-gonic-gin (https://github.com/gin-gonic/gin) [link](./licenses/LICENSE-gin-gonic-gin.txt)
|
||||
(MIT License) go-playground-locales (https://github.com/go-playground/locales) [link](./licenses/LICENSE-go-playground-locales.txt)
|
||||
(MIT License) go-playground-universal-translator (https://github.com/go-playground/universal-translator) [link](./licenses/LICENSE-go-playground-universal-translator.txt)
|
||||
(MIT License) go-playground-validator (https://github.com/go-playground/validator) [link](./licenses/LICENSE-go-playground-validator.txt)
|
||||
(MIT License) goccy-go-json (https://github.com/goccy/go-json) [link](./licenses/LICENSE-goccy-go-json.txt)
|
||||
(MIT License) jinzhu-copier (https://github.com/jinzhu/copier) [link](./licenses/LICENSE-jinzhu-copier.txt)
|
||||
(MIT License) jinzhu-now (https://github.com/jinzhu/now) [link](./licenses/LICENSE-jinzhu-now.txt)
|
||||
(MIT License) jordan-wright-email (https://github.com/jordan-wright/email) [link](./licenses/LICENSE-jordan-wright-email.txt)
|
||||
(MIT License) lib-pq (https://github.com/lib/pq) [link](./licenses/LICENSE-lib-pq.txt)
|
||||
(MIT License) mattn-go-sqlite3 (https://github.com/mattn/go-sqlite3) [link](./licenses/LICENSE-mattn-go-sqlite3.txt)
|
||||
(MIT License) segmentfault-pacman (https://github.com/segmentfault/pacman) [link](./licenses/LICENSE-segmentfault-pacman.txt)
|
||||
(MIT License) robfig-cron (https://github.com/robfig/cron) [link](./licenses/LICENSE-robfig-cron.txt)
|
||||
(MIT License) scottleedavis-go-exif-remove (https://github.com/scottleedavis/go-exif-remove) [link](./licenses/LICENSE-scottleedavis-go-exif-remove.txt)
|
||||
(MIT License) segmentfault-pacman (https://github.com/segmentfault/pacman) [link](./licenses/LICENSE-segmentfault-pacman.txt)
|
||||
(MIT License) stretchr-testify (https://github.com/stretchr/testify) [link](./licenses/LICENSE-stretchr-testify.txt)
|
||||
(MIT License) swaggo-files (https://github.com/swaggo/files) [link](./licenses/LICENSE-swaggo-files.txt)
|
||||
(MIT License) swaggo-gin-swagger (https://github.com/swaggo/gin-swagger) [link](./licenses/LICENSE-swaggo-gin-swagger.txt)
|
||||
(MIT License) swaggo-swag (https://github.com/swaggo/swag) [link](./licenses/LICENSE-swaggo-swag.txt)
|
||||
(MIT License) swr (https://github.com/vercel/swr) [link](./licenses/LICENSE-vercel-swr.txt)
|
||||
(MIT License) tidwall-gjson (https://github.com/tidwall/gjson) [link](./licenses/LICENSE-tidwall-gjson.txt)
|
||||
(MIT License) uuidjs-uuid (https://github.com/uuidjs/uuid) [link](./licenses/LICENSE-uuidjs-uuid.txt)
|
||||
(MIT License) yuin-goldmark (https://github.com/yuin/goldmark) [link](./licenses/LICENSE-yuin-goldmark.txt)
|
||||
(MIT License) go-gomail-gomail (https://gopkg.in/gomail.v2) [link](./licenses/LICENSE-go-gomail-gomail.txt)
|
||||
(MIT License) zustand (https://github.com/pmndrs/zustand) [link](./licenses/LICENSE-pmndrs-zustand.txt)
|
||||
|
||||
========================================================================
|
||||
BSD licenses
|
||||
@@ -280,14 +292,13 @@ BSD licenses
|
||||
The following components are provided under a BSD license. See project link for details.
|
||||
|
||||
(BSD 2-Clause) bwmarrin-snowflake (https://github.com/bwmarrin/snowflake) [link](./licenses/LICENSE-bwmarrin-snowflake.txt)
|
||||
(BSD 2-Clause) xorm (https://xorm.io/xorm) [link](./licenses/LICENSE-xorm.txt)
|
||||
(BSD 3-Clause) cznic-sqlite (https://modernc.org/sqlite) [link](./licenses/LICENSE-cznic-sqlite.txt)
|
||||
(BSD 3-Clause) google-uuid (https://github.com/google/uuid) [link](./licenses/LICENSE-google-uuid.txt)
|
||||
(BSD 3-Clause) grokify-html-strip-tags-go (https://github.com/grokify/html-strip-tags-go) [link](./licenses/LICENSE-grokify-html-strip-tags-go.txt)
|
||||
(BSD 3-Clause) microcosm-cc-bluemonday (https://github.com/microcosm-cc/bluemonday) [link](./licenses/LICENSE-microcosm-cc-bluemonday.txt)
|
||||
(BSD 3-Clause) cznic-sqlite (https://modernc.org/sqlite) [link](./licenses/LICENSE-cznic-sqlite.txt)
|
||||
(BSD 3-Clause) jsdiff (https://github.com/kpdecker/jsdiff) [link](./licenses/LICENSE-kpdecker-jsdiff.txt)
|
||||
(BSD 3-Clause) node-md5 (https://github.com/pvorb/node-md5) [link](./licenses/LICENSE-pvorb-node-md5.txt)
|
||||
(BSD 3-Clause) microcosm-cc-bluemonday (https://github.com/microcosm-cc/bluemonday) [link](./licenses/LICENSE-microcosm-cc-bluemonday.txt)
|
||||
(BSD 3-Clause) qs (https://github.com/ljharb/qs) [link](./licenses/LICENSE-ljharb-qs.txt)
|
||||
(BSD 2-Clause) xorm (https://xorm.io/xorm) [link](./licenses/LICENSE-xorm.txt)
|
||||
|
||||
========================================================================
|
||||
ISC licenses
|
||||
|
||||
+2
-2
@@ -1,5 +1,5 @@
|
||||
Apache Answer (incubating)
|
||||
Copyright 2023 The Apache Software Foundation
|
||||
Apache Answer
|
||||
Copyright 2023-2026 The Apache Software Foundation
|
||||
|
||||
This product includes software developed at
|
||||
The Apache Software Foundation (https://www.apache.org/).
|
||||
|
||||
+1
-1
@@ -1,6 +1,6 @@
|
||||
MIT License
|
||||
|
||||
Copyright (C) 2017 by Marijn Haverbeke <marijn@haverbeke.berlin> and others
|
||||
Copyright (C) 2018-2021 by Marijn Haverbeke <marijn@haverbeke.berlin> and others
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
@@ -0,0 +1,21 @@
|
||||
MIT License
|
||||
|
||||
Copyright (C) 2018-2021 by Marijn Haverbeke <marijn@haverbeke.berlin> and others
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in
|
||||
all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
THE SOFTWARE.
|
||||
@@ -0,0 +1,21 @@
|
||||
MIT License
|
||||
|
||||
Copyright (C) 2018-2021 by Marijn Haverbeke <marijn@haverbeke.berlin> and others
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in
|
||||
all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
THE SOFTWARE.
|
||||
@@ -0,0 +1,21 @@
|
||||
MIT License
|
||||
|
||||
Copyright (C) 2018-2021 by Marijn Haverbeke <marijn@haverbeke.berlin> and others
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in
|
||||
all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
THE SOFTWARE.
|
||||
@@ -0,0 +1,21 @@
|
||||
MIT License
|
||||
|
||||
Copyright (C) 2018-2021 by Marijn Haverbeke <marijn@haverbeke.berlin> and others
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in
|
||||
all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
THE SOFTWARE.
|
||||
@@ -0,0 +1,22 @@
|
||||
Copyright (c) 2014-2024 Chen, Yi-Cyuan
|
||||
|
||||
MIT License
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining
|
||||
a copy of this software and associated documentation files (the
|
||||
"Software"), to deal in the Software without restriction, including
|
||||
without limitation the rights to use, copy, modify, merge, publish,
|
||||
distribute, sublicense, and/or sell copies of the Software, and to
|
||||
permit persons to whom the Software is furnished to do so, subject to
|
||||
the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be
|
||||
included in all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
||||
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
||||
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
||||
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
||||
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
@@ -0,0 +1,21 @@
|
||||
The MIT License (MIT)
|
||||
|
||||
Copyright (c) 2015-present Jeevanandam M., https://myjeeva.com <jeeva@myjeeva.com>
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
||||
@@ -0,0 +1,22 @@
|
||||
Copyright (c) 2013 John Barton
|
||||
|
||||
MIT License
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining
|
||||
a copy of this software and associated documentation files (the
|
||||
"Software"), to deal in the Software without restriction, including
|
||||
without limitation the rights to use, copy, modify, merge, publish,
|
||||
distribute, sublicense, and/or sell copies of the Software, and to
|
||||
permit persons to whom the Software is furnished to do so, subject to
|
||||
the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be
|
||||
included in all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
||||
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
||||
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
||||
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
||||
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
@@ -0,0 +1,9 @@
|
||||
# The MIT License (MIT)
|
||||
|
||||
Copyright (c) Jason Campbell ("Author")
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
+1
-1
@@ -1,6 +1,6 @@
|
||||
MIT License
|
||||
|
||||
Copyright (c) 2019 Chain Zhang
|
||||
Copyright (c) 2024 Anthropic, PBC
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
@@ -0,0 +1,21 @@
|
||||
The MIT License (MIT)
|
||||
|
||||
Copyright (c) 2016 mozillazg
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
||||
@@ -0,0 +1,21 @@
|
||||
The MIT License (MIT)
|
||||
|
||||
Copyright (c) 2016 mozillazg
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
||||
@@ -1,27 +0,0 @@
|
||||
Copyright © 2011-2012, Paul Vorbach.
|
||||
Copyright © 2009, Jeff Mott.
|
||||
|
||||
All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without modification,
|
||||
are permitted provided that the following conditions are met:
|
||||
|
||||
* Redistributions of source code must retain the above copyright notice, this
|
||||
list of conditions and the following disclaimer.
|
||||
* Redistributions in binary form must reproduce the above copyright notice, this
|
||||
list of conditions and the following disclaimer in the documentation and/or
|
||||
other materials provided with the distribution.
|
||||
* Neither the name Crypto-JS nor the names of its contributors may be used to
|
||||
endorse or promote products derived from this software without specific prior
|
||||
written permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
||||
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
|
||||
ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
|
||||
ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
@@ -0,0 +1,201 @@
|
||||
Apache License
|
||||
Version 2.0, January 2004
|
||||
http://www.apache.org/licenses/
|
||||
|
||||
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
|
||||
|
||||
1. Definitions.
|
||||
|
||||
"License" shall mean the terms and conditions for use, reproduction,
|
||||
and distribution as defined by Sections 1 through 9 of this document.
|
||||
|
||||
"Licensor" shall mean the copyright owner or entity authorized by
|
||||
the copyright owner that is granting the License.
|
||||
|
||||
"Legal Entity" shall mean the union of the acting entity and all
|
||||
other entities that control, are controlled by, or are under common
|
||||
control with that entity. For the purposes of this definition,
|
||||
"control" means (i) the power, direct or indirect, to cause the
|
||||
direction or management of such entity, whether by contract or
|
||||
otherwise, or (ii) ownership of fifty percent (50%) or more of the
|
||||
outstanding shares, or (iii) beneficial ownership of such entity.
|
||||
|
||||
"You" (or "Your") shall mean an individual or Legal Entity
|
||||
exercising permissions granted by this License.
|
||||
|
||||
"Source" form shall mean the preferred form for making modifications,
|
||||
including but not limited to software source code, documentation
|
||||
source, and configuration files.
|
||||
|
||||
"Object" form shall mean any form resulting from mechanical
|
||||
transformation or translation of a Source form, including but
|
||||
not limited to compiled object code, generated documentation,
|
||||
and conversions to other media types.
|
||||
|
||||
"Work" shall mean the work of authorship, whether in Source or
|
||||
Object form, made available under the License, as indicated by a
|
||||
copyright notice that is included in or attached to the work
|
||||
(an example is provided in the Appendix below).
|
||||
|
||||
"Derivative Works" shall mean any work, whether in Source or Object
|
||||
form, that is based on (or derived from) the Work and for which the
|
||||
editorial revisions, annotations, elaborations, or other modifications
|
||||
represent, as a whole, an original work of authorship. For the purposes
|
||||
of this License, Derivative Works shall not include works that remain
|
||||
separable from, or merely link (or bind by name) to the interfaces of,
|
||||
the Work and Derivative Works thereof.
|
||||
|
||||
"Contribution" shall mean any work of authorship, including
|
||||
the original version of the Work and any modifications or additions
|
||||
to that Work or Derivative Works thereof, that is intentionally
|
||||
submitted to Licensor for inclusion in the Work by the copyright owner
|
||||
or by an individual or Legal Entity authorized to submit on behalf of
|
||||
the copyright owner. For the purposes of this definition, "submitted"
|
||||
means any form of electronic, verbal, or written communication sent
|
||||
to the Licensor or its representatives, including but not limited to
|
||||
communication on electronic mailing lists, source code control systems,
|
||||
and issue tracking systems that are managed by, or on behalf of, the
|
||||
Licensor for the purpose of discussing and improving the Work, but
|
||||
excluding communication that is conspicuously marked or otherwise
|
||||
designated in writing by the copyright owner as "Not a Contribution."
|
||||
|
||||
"Contributor" shall mean Licensor and any individual or Legal Entity
|
||||
on behalf of whom a Contribution has been received by Licensor and
|
||||
subsequently incorporated within the Work.
|
||||
|
||||
2. Grant of Copyright License. Subject to the terms and conditions of
|
||||
this License, each Contributor hereby grants to You a perpetual,
|
||||
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
||||
copyright license to reproduce, prepare Derivative Works of,
|
||||
publicly display, publicly perform, sublicense, and distribute the
|
||||
Work and such Derivative Works in Source or Object form.
|
||||
|
||||
3. Grant of Patent License. Subject to the terms and conditions of
|
||||
this License, each Contributor hereby grants to You a perpetual,
|
||||
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
||||
(except as stated in this section) patent license to make, have made,
|
||||
use, offer to sell, sell, import, and otherwise transfer the Work,
|
||||
where such license applies only to those patent claims licensable
|
||||
by such Contributor that are necessarily infringed by their
|
||||
Contribution(s) alone or by combination of their Contribution(s)
|
||||
with the Work to which such Contribution(s) was submitted. If You
|
||||
institute patent litigation against any entity (including a
|
||||
cross-claim or counterclaim in a lawsuit) alleging that the Work
|
||||
or a Contribution incorporated within the Work constitutes direct
|
||||
or contributory patent infringement, then any patent licenses
|
||||
granted to You under this License for that Work shall terminate
|
||||
as of the date such litigation is filed.
|
||||
|
||||
4. Redistribution. You may reproduce and distribute copies of the
|
||||
Work or Derivative Works thereof in any medium, with or without
|
||||
modifications, and in Source or Object form, provided that You
|
||||
meet the following conditions:
|
||||
|
||||
(a) You must give any other recipients of the Work or
|
||||
Derivative Works a copy of this License; and
|
||||
|
||||
(b) You must cause any modified files to carry prominent notices
|
||||
stating that You changed the files; and
|
||||
|
||||
(c) You must retain, in the Source form of any Derivative Works
|
||||
that You distribute, all copyright, patent, trademark, and
|
||||
attribution notices from the Source form of the Work,
|
||||
excluding those notices that do not pertain to any part of
|
||||
the Derivative Works; and
|
||||
|
||||
(d) If the Work includes a "NOTICE" text file as part of its
|
||||
distribution, then any Derivative Works that You distribute must
|
||||
include a readable copy of the attribution notices contained
|
||||
within such NOTICE file, excluding those notices that do not
|
||||
pertain to any part of the Derivative Works, in at least one
|
||||
of the following places: within a NOTICE text file distributed
|
||||
as part of the Derivative Works; within the Source form or
|
||||
documentation, if provided along with the Derivative Works; or,
|
||||
within a display generated by the Derivative Works, if and
|
||||
wherever such third-party notices normally appear. The contents
|
||||
of the NOTICE file are for informational purposes only and
|
||||
do not modify the License. You may add Your own attribution
|
||||
notices within Derivative Works that You distribute, alongside
|
||||
or as an addendum to the NOTICE text from the Work, provided
|
||||
that such additional attribution notices cannot be construed
|
||||
as modifying the License.
|
||||
|
||||
You may add Your own copyright statement to Your modifications and
|
||||
may provide additional or different license terms and conditions
|
||||
for use, reproduction, or distribution of Your modifications, or
|
||||
for any such Derivative Works as a whole, provided Your use,
|
||||
reproduction, and distribution of the Work otherwise complies with
|
||||
the conditions stated in this License.
|
||||
|
||||
5. Submission of Contributions. Unless You explicitly state otherwise,
|
||||
any Contribution intentionally submitted for inclusion in the Work
|
||||
by You to the Licensor shall be under the terms and conditions of
|
||||
this License, without any additional terms or conditions.
|
||||
Notwithstanding the above, nothing herein shall supersede or modify
|
||||
the terms of any separate license agreement you may have executed
|
||||
with Licensor regarding such Contributions.
|
||||
|
||||
6. Trademarks. This License does not grant permission to use the trade
|
||||
names, trademarks, service marks, or product names of the Licensor,
|
||||
except as required for reasonable and customary use in describing the
|
||||
origin of the Work and reproducing the content of the NOTICE file.
|
||||
|
||||
7. Disclaimer of Warranty. Unless required by applicable law or
|
||||
agreed to in writing, Licensor provides the Work (and each
|
||||
Contributor provides its Contributions) on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
|
||||
implied, including, without limitation, any warranties or conditions
|
||||
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
|
||||
PARTICULAR PURPOSE. You are solely responsible for determining the
|
||||
appropriateness of using or redistributing the Work and assume any
|
||||
risks associated with Your exercise of permissions under this License.
|
||||
|
||||
8. Limitation of Liability. In no event and under no legal theory,
|
||||
whether in tort (including negligence), contract, or otherwise,
|
||||
unless required by applicable law (such as deliberate and grossly
|
||||
negligent acts) or agreed to in writing, shall any Contributor be
|
||||
liable to You for damages, including any direct, indirect, special,
|
||||
incidental, or consequential damages of any character arising as a
|
||||
result of this License or out of the use or inability to use the
|
||||
Work (including but not limited to damages for loss of goodwill,
|
||||
work stoppage, computer failure or malfunction, or any and all
|
||||
other commercial damages or losses), even if such Contributor
|
||||
has been advised of the possibility of such damages.
|
||||
|
||||
9. Accepting Warranty or Additional Liability. While redistributing
|
||||
the Work or Derivative Works thereof, You may choose to offer,
|
||||
and charge a fee for, acceptance of support, warranty, indemnity,
|
||||
or other liability obligations and/or rights consistent with this
|
||||
License. However, in accepting such obligations, You may act only
|
||||
on Your own behalf and on Your sole responsibility, not on behalf
|
||||
of any other Contributor, and only if You agree to indemnify,
|
||||
defend, and hold each Contributor harmless for any liability
|
||||
incurred by, or claims asserted against, such Contributor by reason
|
||||
of your accepting any such warranty or additional liability.
|
||||
|
||||
END OF TERMS AND CONDITIONS
|
||||
|
||||
APPENDIX: How to apply the Apache License to your work.
|
||||
|
||||
To apply the Apache License to your work, attach the following
|
||||
boilerplate notice, with the fields enclosed by brackets "[]"
|
||||
replaced with your own identifying information. (Don't include
|
||||
the brackets!) The text should be enclosed in the appropriate
|
||||
comment syntax for the file format. We also recommend that a
|
||||
file or class name and description of purpose be included on the
|
||||
same "printed page" as the copyright notice for easier
|
||||
identification within third-party archives.
|
||||
|
||||
Copyright [yyyy] [name of copyright owner]
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
@@ -0,0 +1,9 @@
|
||||
The MIT License (MIT)
|
||||
|
||||
Copyright (c) 2010-2020 Robert Kieffer and other contributors
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
+3863
-412
File diff suppressed because it is too large
Load Diff
+2422
-270
File diff suppressed because it is too large
Load Diff
@@ -15,160 +15,178 @@
|
||||
// specific language governing permissions and limitations
|
||||
// under the License.
|
||||
|
||||
module github.com/apache/incubator-answer
|
||||
module github.com/apache/answer
|
||||
|
||||
go 1.18
|
||||
go 1.25.0
|
||||
|
||||
require (
|
||||
github.com/Chain-Zhang/pinyin v0.1.3
|
||||
github.com/Machiel/slugify v1.0.1
|
||||
github.com/Masterminds/semver/v3 v3.1.1
|
||||
github.com/Masterminds/semver/v3 v3.3.0
|
||||
github.com/anargu/gin-brotli v0.0.0-20220116052358-12bf532d5267
|
||||
github.com/asaskevich/govalidator v0.0.0-20210307081110-f21760c49a8d
|
||||
github.com/asaskevich/govalidator v0.0.0-20230301143203-a9d515a09cc2
|
||||
github.com/bwmarrin/snowflake v0.3.0
|
||||
github.com/disintegration/imaging v1.6.2
|
||||
github.com/gin-gonic/gin v1.9.1
|
||||
github.com/gin-gonic/gin v1.10.0
|
||||
github.com/go-playground/locales v0.14.1
|
||||
github.com/go-playground/universal-translator v0.18.1
|
||||
github.com/go-playground/validator/v10 v10.14.0
|
||||
github.com/go-sql-driver/mysql v1.6.0
|
||||
github.com/goccy/go-json v0.10.2
|
||||
github.com/golang/mock v1.6.0
|
||||
github.com/google/uuid v1.3.0
|
||||
github.com/go-playground/validator/v10 v10.22.1
|
||||
github.com/go-resty/resty/v2 v2.17.1
|
||||
github.com/go-sql-driver/mysql v1.8.1
|
||||
github.com/goccy/go-json v0.10.3
|
||||
github.com/google/uuid v1.6.0
|
||||
github.com/google/wire v0.5.0
|
||||
github.com/grokify/html-strip-tags-go v0.0.1
|
||||
github.com/jinzhu/copier v0.3.5
|
||||
github.com/grokify/html-strip-tags-go v0.1.0
|
||||
github.com/jinzhu/copier v0.4.0
|
||||
github.com/jinzhu/now v1.1.5
|
||||
github.com/lib/pq v1.10.7
|
||||
github.com/microcosm-cc/bluemonday v1.0.21
|
||||
github.com/mojocn/base64Captcha v1.3.5
|
||||
github.com/ory/dockertest/v3 v3.10.0
|
||||
github.com/joho/godotenv v1.5.1
|
||||
github.com/lib/pq v1.10.9
|
||||
github.com/mark3labs/mcp-go v0.43.2
|
||||
github.com/microcosm-cc/bluemonday v1.0.27
|
||||
github.com/mozillazg/go-pinyin v0.20.0
|
||||
github.com/mozillazg/go-unidecode v0.2.0
|
||||
github.com/ory/dockertest/v3 v3.11.0
|
||||
github.com/robfig/cron/v3 v3.0.1
|
||||
github.com/sashabaranov/go-openai v1.41.2
|
||||
github.com/scottleedavis/go-exif-remove v0.0.0-20230314195146-7e059d593405
|
||||
github.com/segmentfault/pacman v1.0.5-0.20230822083413-c0075a2d401f
|
||||
github.com/segmentfault/pacman/contrib/cache/memory v0.0.0-20230822083413-c0075a2d401f
|
||||
github.com/segmentfault/pacman/contrib/conf/viper v0.0.0-20221018072427-a15dd1434e05
|
||||
github.com/segmentfault/pacman/contrib/i18n v0.0.0-20230516093754-b76aef1c1150
|
||||
github.com/segmentfault/pacman/contrib/log/zap v0.0.0-20221018072427-a15dd1434e05
|
||||
github.com/segmentfault/pacman/contrib/server/http v0.0.0-20221018072427-a15dd1434e05
|
||||
github.com/spf13/cobra v1.6.1
|
||||
github.com/stretchr/testify v1.8.4
|
||||
github.com/swaggo/files v1.0.0
|
||||
github.com/swaggo/gin-swagger v1.5.3
|
||||
github.com/swaggo/swag v1.16.1
|
||||
github.com/tidwall/gjson v1.14.4
|
||||
github.com/yuin/goldmark v1.4.13
|
||||
golang.org/x/crypto v0.13.0
|
||||
golang.org/x/image v0.1.0
|
||||
golang.org/x/net v0.15.0
|
||||
github.com/segmentfault/pacman/contrib/conf/viper v0.0.0-20230822083413-c0075a2d401f
|
||||
github.com/segmentfault/pacman/contrib/i18n v0.0.0-20230822083413-c0075a2d401f
|
||||
github.com/segmentfault/pacman/contrib/log/zap v0.0.0-20230822083413-c0075a2d401f
|
||||
github.com/segmentfault/pacman/contrib/server/http v0.0.0-20230822083413-c0075a2d401f
|
||||
github.com/spf13/cobra v1.8.1
|
||||
github.com/stretchr/testify v1.9.0
|
||||
github.com/swaggo/files v1.0.1
|
||||
github.com/swaggo/gin-swagger v1.6.0
|
||||
github.com/swaggo/swag v1.16.3
|
||||
github.com/tidwall/gjson v1.17.3
|
||||
github.com/yuin/goldmark v1.7.4
|
||||
go.uber.org/mock v0.6.0
|
||||
golang.org/x/crypto v0.53.0
|
||||
golang.org/x/image v0.20.0
|
||||
golang.org/x/term v0.44.0
|
||||
golang.org/x/text v0.39.0
|
||||
gopkg.in/gomail.v2 v2.0.0-20160411212932-81ebce5c23df
|
||||
gopkg.in/yaml.v3 v3.0.1
|
||||
modernc.org/sqlite v1.24.0
|
||||
xorm.io/builder v0.3.12
|
||||
modernc.org/sqlite v1.33.0
|
||||
xorm.io/builder v0.3.13
|
||||
xorm.io/xorm v1.3.2
|
||||
)
|
||||
|
||||
require (
|
||||
dario.cat/mergo v1.0.1 // indirect
|
||||
filippo.io/edwards25519 v1.1.0 // indirect
|
||||
github.com/Azure/go-ansiterm v0.0.0-20230124172434-306776ec8161 // indirect
|
||||
github.com/KyleBanks/depth v1.2.1 // indirect
|
||||
github.com/LinkinStars/go-i18n/v2 v2.2.2 // indirect
|
||||
github.com/Microsoft/go-winio v0.6.1 // indirect
|
||||
github.com/Microsoft/go-winio v0.6.2 // indirect
|
||||
github.com/Nvveen/Gotty v0.0.0-20120604004816-cd527374f1e5 // indirect
|
||||
github.com/andybalholm/brotli v1.0.4 // indirect
|
||||
github.com/andybalholm/brotli v1.1.0 // indirect
|
||||
github.com/aymerick/douceur v0.2.0 // indirect
|
||||
github.com/bytedance/sonic v1.9.1 // indirect
|
||||
github.com/cenkalti/backoff/v4 v4.2.1 // indirect
|
||||
github.com/chenzhuoyu/base64x v0.0.0-20221115062448-fe3a3abad311 // indirect
|
||||
github.com/containerd/continuity v0.4.2 // indirect
|
||||
github.com/davecgh/go-spew v1.1.1 // indirect
|
||||
github.com/docker/cli v24.0.6+incompatible // indirect
|
||||
github.com/docker/docker v24.0.6+incompatible // indirect
|
||||
github.com/docker/go-connections v0.4.0 // indirect
|
||||
github.com/bahlo/generic-list-go v0.2.0 // indirect
|
||||
github.com/buger/jsonparser v1.1.1 // indirect
|
||||
github.com/bytedance/sonic v1.12.2 // indirect
|
||||
github.com/bytedance/sonic/loader v0.2.0 // indirect
|
||||
github.com/cenkalti/backoff/v4 v4.3.0 // indirect
|
||||
github.com/cloudwego/base64x v0.1.4 // indirect
|
||||
github.com/cloudwego/iasm v0.2.0 // indirect
|
||||
github.com/containerd/continuity v0.4.3 // indirect
|
||||
github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect
|
||||
github.com/docker/cli v27.2.1+incompatible // indirect
|
||||
github.com/docker/docker v27.2.1+incompatible // indirect
|
||||
github.com/docker/go-connections v0.5.0 // indirect
|
||||
github.com/docker/go-units v0.5.0 // indirect
|
||||
github.com/dsoprea/go-exif v0.0.0-20190901173045-3ce78807c90f // indirect
|
||||
github.com/dsoprea/go-jpeg-image-structure v0.0.0-20190422055009-d6f9ba25cf48 // indirect
|
||||
github.com/dsoprea/go-logging v0.0.0-20190624164917-c4f10aab7696 // indirect
|
||||
github.com/dsoprea/go-png-image-structure v0.0.0-20190624104353-c9b28dcdc5c8 // indirect
|
||||
github.com/dsoprea/go-exif v0.0.0-20230826092837-6579e82b732d // indirect
|
||||
github.com/dsoprea/go-exif/v2 v2.0.0-20230826092837-6579e82b732d // indirect
|
||||
github.com/dsoprea/go-iptc v0.0.0-20200610044640-bc9ca208b413 // indirect
|
||||
github.com/dsoprea/go-jpeg-image-structure v0.0.0-20221012074422-4f3f7e934102 // indirect
|
||||
github.com/dsoprea/go-logging v0.0.0-20200710184922-b02d349568dd // indirect
|
||||
github.com/dsoprea/go-photoshop-info-format v0.0.0-20200610045659-121dd752914d // indirect
|
||||
github.com/dsoprea/go-png-image-structure v0.0.0-20210512210324-29b889a6093d // indirect
|
||||
github.com/dsoprea/go-utility v0.0.0-20221003172846-a3e1774ef349 // indirect
|
||||
github.com/dustin/go-humanize v1.0.1 // indirect
|
||||
github.com/fsnotify/fsnotify v1.6.0 // indirect
|
||||
github.com/gabriel-vasile/mimetype v1.4.2 // indirect
|
||||
github.com/fsnotify/fsnotify v1.7.0 // indirect
|
||||
github.com/gabriel-vasile/mimetype v1.4.5 // indirect
|
||||
github.com/gin-contrib/sse v0.1.0 // indirect
|
||||
github.com/go-errors/errors v1.0.1 // indirect
|
||||
github.com/go-openapi/jsonpointer v0.20.0 // indirect
|
||||
github.com/go-openapi/jsonreference v0.20.2 // indirect
|
||||
github.com/go-openapi/spec v0.20.9 // indirect
|
||||
github.com/go-openapi/swag v0.22.4 // indirect
|
||||
github.com/go-errors/errors v1.5.1 // indirect
|
||||
github.com/go-openapi/jsonpointer v0.21.0 // indirect
|
||||
github.com/go-openapi/jsonreference v0.21.0 // indirect
|
||||
github.com/go-openapi/spec v0.21.0 // indirect
|
||||
github.com/go-openapi/swag v0.23.0 // indirect
|
||||
github.com/go-viper/mapstructure/v2 v2.1.0 // indirect
|
||||
github.com/go-xmlfmt/xmlfmt v1.1.2 // indirect
|
||||
github.com/gogo/protobuf v1.3.2 // indirect
|
||||
github.com/golang/freetype v0.0.0-20170609003504-e2365dfdc4a0 // indirect
|
||||
github.com/golang/geo v0.0.0-20190812012225-f41920e961ce // indirect
|
||||
github.com/golang/geo v0.0.0-20230421003525-6adc56603217 // indirect
|
||||
github.com/golang/snappy v0.0.4 // indirect
|
||||
github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510 // indirect
|
||||
github.com/gorilla/css v1.0.0 // indirect
|
||||
github.com/gorilla/css v1.0.1 // indirect
|
||||
github.com/hashicorp/golang-lru/v2 v2.0.7 // indirect
|
||||
github.com/hashicorp/hcl v1.0.0 // indirect
|
||||
github.com/imdario/mergo v0.3.16 // indirect
|
||||
github.com/inconshreveable/mousetrap v1.0.1 // indirect
|
||||
github.com/inconshreveable/mousetrap v1.1.0 // indirect
|
||||
github.com/invopop/jsonschema v0.13.0 // indirect
|
||||
github.com/josharian/intern v1.0.0 // indirect
|
||||
github.com/json-iterator/go v1.1.12 // indirect
|
||||
github.com/kballard/go-shellquote v0.0.0-20180428030007-95032a82bc51 // indirect
|
||||
github.com/klauspost/cpuid/v2 v2.2.4 // indirect
|
||||
github.com/leodido/go-urn v1.2.4 // indirect
|
||||
github.com/klauspost/cpuid/v2 v2.2.8 // indirect
|
||||
github.com/leodido/go-urn v1.4.0 // indirect
|
||||
github.com/lestrrat-go/file-rotatelogs v2.4.0+incompatible // indirect
|
||||
github.com/lestrrat-go/strftime v1.0.6 // indirect
|
||||
github.com/magiconair/properties v1.8.6 // indirect
|
||||
github.com/lestrrat-go/strftime v1.1.0 // indirect
|
||||
github.com/magiconair/properties v1.8.7 // indirect
|
||||
github.com/mailru/easyjson v0.7.7 // indirect
|
||||
github.com/mattn/go-isatty v0.0.19 // indirect
|
||||
github.com/mattn/go-isatty v0.0.20 // indirect
|
||||
github.com/mitchellh/mapstructure v1.5.0 // indirect
|
||||
github.com/moby/docker-image-spec v1.3.1 // indirect
|
||||
github.com/moby/term v0.5.0 // indirect
|
||||
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect
|
||||
github.com/modern-go/reflect2 v1.0.2 // indirect
|
||||
github.com/ncruces/go-strftime v0.1.9 // indirect
|
||||
github.com/opencontainers/go-digest v1.0.0 // indirect
|
||||
github.com/opencontainers/image-spec v1.0.2 // indirect
|
||||
github.com/opencontainers/runc v1.1.9 // indirect
|
||||
github.com/opencontainers/image-spec v1.1.0 // indirect
|
||||
github.com/opencontainers/runc v1.1.14 // indirect
|
||||
github.com/patrickmn/go-cache v2.1.0+incompatible // indirect
|
||||
github.com/pelletier/go-toml v1.9.5 // indirect
|
||||
github.com/pelletier/go-toml/v2 v2.0.8 // indirect
|
||||
github.com/pelletier/go-toml/v2 v2.2.3 // indirect
|
||||
github.com/pkg/errors v0.9.1 // indirect
|
||||
github.com/pmezard/go-difflib v1.0.0 // indirect
|
||||
github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect
|
||||
github.com/remyoudompheng/bigfft v0.0.0-20230129092748-24d4a6f8daec // indirect
|
||||
github.com/sagikazarmark/locafero v0.6.0 // indirect
|
||||
github.com/sagikazarmark/slog-shim v0.1.0 // indirect
|
||||
github.com/sirupsen/logrus v1.9.3 // indirect
|
||||
github.com/spf13/afero v1.9.2 // indirect
|
||||
github.com/spf13/cast v1.5.0 // indirect
|
||||
github.com/spf13/jwalterweatherman v1.1.0 // indirect
|
||||
github.com/sourcegraph/conc v0.3.0 // indirect
|
||||
github.com/spf13/afero v1.11.0 // indirect
|
||||
github.com/spf13/cast v1.7.1 // indirect
|
||||
github.com/spf13/pflag v1.0.5 // indirect
|
||||
github.com/spf13/viper v1.13.0 // indirect
|
||||
github.com/subosito/gotenv v1.4.1 // indirect
|
||||
github.com/spf13/viper v1.19.0 // indirect
|
||||
github.com/subosito/gotenv v1.6.0 // indirect
|
||||
github.com/syndtr/goleveldb v1.0.0 // indirect
|
||||
github.com/tidwall/match v1.1.1 // indirect
|
||||
github.com/tidwall/pretty v1.2.0 // indirect
|
||||
github.com/tidwall/pretty v1.2.1 // indirect
|
||||
github.com/twitchyliquid64/golang-asm v0.15.1 // indirect
|
||||
github.com/ugorji/go/codec v1.2.11 // indirect
|
||||
github.com/ugorji/go/codec v1.2.12 // indirect
|
||||
github.com/wk8/go-ordered-map/v2 v2.1.8 // indirect
|
||||
github.com/xeipuuv/gojsonpointer v0.0.0-20190905194746-02993c407bfb // indirect
|
||||
github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415 // indirect
|
||||
github.com/xeipuuv/gojsonschema v1.2.0 // indirect
|
||||
go.uber.org/atomic v1.10.0 // indirect
|
||||
go.uber.org/multierr v1.8.0 // indirect
|
||||
go.uber.org/zap v1.23.0 // indirect
|
||||
golang.org/x/arch v0.3.0 // indirect
|
||||
golang.org/x/mod v0.12.0 // indirect
|
||||
golang.org/x/sys v0.12.0 // indirect
|
||||
golang.org/x/text v0.13.0 // indirect
|
||||
golang.org/x/tools v0.13.0 // indirect
|
||||
google.golang.org/protobuf v1.30.0 // indirect
|
||||
github.com/yosida95/uritemplate/v3 v3.0.2 // indirect
|
||||
go.uber.org/multierr v1.11.0 // indirect
|
||||
go.uber.org/zap v1.27.0 // indirect
|
||||
golang.org/x/arch v0.10.0 // indirect
|
||||
golang.org/x/exp v0.0.0-20240909161429-701f63a606c0 // indirect
|
||||
golang.org/x/net v0.56.0 // indirect
|
||||
golang.org/x/sys v0.46.0 // indirect
|
||||
golang.org/x/tools v0.47.0 // indirect
|
||||
google.golang.org/protobuf v1.34.2 // indirect
|
||||
gopkg.in/alexcesaro/quotedprintable.v3 v3.0.0-20150716171945-2caba252f4dc // indirect
|
||||
gopkg.in/ini.v1 v1.67.0 // indirect
|
||||
gopkg.in/yaml.v2 v2.4.0 // indirect
|
||||
lukechampine.com/uint128 v1.2.0 // indirect
|
||||
modernc.org/cc/v3 v3.40.0 // indirect
|
||||
modernc.org/ccgo/v3 v3.16.13 // indirect
|
||||
modernc.org/libc v1.22.5 // indirect
|
||||
modernc.org/mathutil v1.5.0 // indirect
|
||||
modernc.org/memory v1.5.0 // indirect
|
||||
modernc.org/opt v0.1.3 // indirect
|
||||
modernc.org/strutil v1.1.3 // indirect
|
||||
modernc.org/token v1.0.1 // indirect
|
||||
sigs.k8s.io/yaml v1.3.0 // indirect
|
||||
modernc.org/gc/v3 v3.0.0-20240801135723-a856999a2e4a // indirect
|
||||
modernc.org/mathutil v1.6.0 // indirect
|
||||
modernc.org/memory v1.8.0 // indirect
|
||||
modernc.org/strutil v1.2.0 // indirect
|
||||
modernc.org/token v1.1.0 // indirect
|
||||
sigs.k8s.io/yaml v1.4.0 // indirect
|
||||
)
|
||||
|
||||
replace lukechampine.com/uint128 v1.1.1 => github.com/aichy126/uint128 v1.1.1
|
||||
|
||||
replace modernc.org/cc/v3 v3.40.0 => gitlab.com/cznic/cc/v3 v3.40.0
|
||||
|
||||
replace github.com/lyft/protoc-gen-validate v0.0.13 => github.com/LinkinStars/protoc-gen-validate v0.0.0-20251030022322-3fddbbe5a0e6
|
||||
|
||||
+15
-14
@@ -619,7 +619,8 @@ ui:
|
||||
label: Name
|
||||
msg:
|
||||
empty: Name cannot be empty.
|
||||
range: Name up to 30 characters.
|
||||
range: Name must be between 2 to 30 characters in length.
|
||||
character: 'Must use the character set "a-z", "A-Z", "0-9", " - . _"'
|
||||
email:
|
||||
label: Email
|
||||
msg:
|
||||
@@ -677,13 +678,13 @@ ui:
|
||||
display_name:
|
||||
label: Display Name
|
||||
msg: Display name cannot be empty.
|
||||
msg_range: Display name up to 30 characters.
|
||||
msg_range: Display name must be 2-30 characters in length.
|
||||
username:
|
||||
label: Username
|
||||
caption: People can mention you as "@username".
|
||||
msg: Username cannot be empty.
|
||||
msg_range: Username up to 30 characters.
|
||||
character: 'Must use the character set "a-z", "0-9", " - . _"'
|
||||
msg_range: Username must be 2-30 characters in length.
|
||||
character: 'Must use the character set "a-z", "0-9", "- . _"'
|
||||
avatar:
|
||||
label: Profile Image
|
||||
gravatar: Gravatar
|
||||
@@ -715,7 +716,9 @@ ui:
|
||||
We've sent an email to that address. Please follow the confirmation instructions.
|
||||
email:
|
||||
label: Email
|
||||
msg: Email cannot be empty.
|
||||
new_email:
|
||||
label: New email
|
||||
msg: New email cannot be empty.
|
||||
password_title: Password
|
||||
current_pass:
|
||||
label: Current Password
|
||||
@@ -811,7 +814,7 @@ ui:
|
||||
more: More
|
||||
tips:
|
||||
title: Advanced Search Tips
|
||||
tag: "<1>[tag]</1> search withing a tag"
|
||||
tag: "<1>[tag]</1> search with a tag"
|
||||
user: "<1>user:username</1> search by author"
|
||||
answer: "<1>answers:0</1> unanswered questions"
|
||||
score: "<1>score:3</1> posts with a 3+ score"
|
||||
@@ -824,7 +827,7 @@ ui:
|
||||
via: Share post via...
|
||||
copied: Copied
|
||||
facebook: Share to Facebook
|
||||
twitter: Share to Twitter
|
||||
twitter: Share to X
|
||||
cannot_vote_for_self: You can't vote for your own post
|
||||
modal_confirm:
|
||||
title: Error...
|
||||
@@ -855,7 +858,7 @@ ui:
|
||||
answers: Answers
|
||||
newest: Newest
|
||||
active: Active
|
||||
frequent: Frequent
|
||||
hot: Hot
|
||||
score: Score
|
||||
unanswered: Unanswered
|
||||
modified: modified
|
||||
@@ -899,7 +902,7 @@ ui:
|
||||
x_answers: answers
|
||||
x_questions: questions
|
||||
install:
|
||||
title: Answer
|
||||
title: Installation
|
||||
next: Next
|
||||
done: Done
|
||||
config_yaml_error: Can't create the config.yaml file.
|
||||
@@ -964,7 +967,7 @@ ui:
|
||||
msg:
|
||||
empty: Email cannot be empty.
|
||||
incorrect: Email incorrect format.
|
||||
ready_title: Your Answer is Ready!
|
||||
ready_title: Your site is ready
|
||||
ready_desc: >-
|
||||
If you ever feel like changing more settings, visit <1>admin section</1>; find it in the site menu.
|
||||
good_luck: "Have fun, and good luck!"
|
||||
@@ -1017,7 +1020,7 @@ ui:
|
||||
title: Admin
|
||||
dashboard:
|
||||
title: Dashboard
|
||||
welcome: Welcome to Answer Admin!
|
||||
welcome: Welcome to Admin!
|
||||
site_statistics: Site Statistics
|
||||
questions: "Questions:"
|
||||
answers: "Answers:"
|
||||
@@ -1133,7 +1136,7 @@ ui:
|
||||
fields:
|
||||
display_name:
|
||||
label: Display Name
|
||||
msg: Display Name must be at 4-30 characters in length.
|
||||
msg: Display name must be 2-30 characters in length.
|
||||
email:
|
||||
label: Email
|
||||
msg: Email is not valid.
|
||||
@@ -1379,5 +1382,3 @@ ui:
|
||||
staffs: Our community staff
|
||||
reputation: reputation
|
||||
votes: votes
|
||||
|
||||
|
||||
|
||||
+15
-14
@@ -619,7 +619,8 @@ ui:
|
||||
label: Name
|
||||
msg:
|
||||
empty: Name cannot be empty.
|
||||
range: Name up to 30 characters.
|
||||
range: Name must be between 2 to 30 characters in length.
|
||||
character: 'Must use the character set "a-z", "A-Z", "0-9", " - . _"'
|
||||
email:
|
||||
label: Email
|
||||
msg:
|
||||
@@ -677,13 +678,13 @@ ui:
|
||||
display_name:
|
||||
label: Display Name
|
||||
msg: Display name cannot be empty.
|
||||
msg_range: Display name up to 30 characters.
|
||||
msg_range: Display name must be 2-30 characters in length.
|
||||
username:
|
||||
label: Username
|
||||
caption: People can mention you as "@username".
|
||||
msg: Username cannot be empty.
|
||||
msg_range: Username up to 30 characters.
|
||||
character: 'Must use the character set "a-z", "0-9", " - . _"'
|
||||
msg_range: Username must be 2-30 characters in length.
|
||||
character: 'Must use the character set "a-z", "0-9", "- . _"'
|
||||
avatar:
|
||||
label: Profile Image
|
||||
gravatar: Gravatar
|
||||
@@ -715,7 +716,9 @@ ui:
|
||||
We've sent an email to that address. Please follow the confirmation instructions.
|
||||
email:
|
||||
label: Email
|
||||
msg: Email cannot be empty.
|
||||
new_email:
|
||||
label: New email
|
||||
msg: New email cannot be empty.
|
||||
password_title: Password
|
||||
current_pass:
|
||||
label: Current Password
|
||||
@@ -811,7 +814,7 @@ ui:
|
||||
more: More
|
||||
tips:
|
||||
title: Advanced Search Tips
|
||||
tag: "<1>[tag]</1> search withing a tag"
|
||||
tag: "<1>[tag]</1> search with a tag"
|
||||
user: "<1>user:username</1> search by author"
|
||||
answer: "<1>answers:0</1> unanswered questions"
|
||||
score: "<1>score:3</1> posts with a 3+ score"
|
||||
@@ -824,7 +827,7 @@ ui:
|
||||
via: Share post via...
|
||||
copied: Copied
|
||||
facebook: Share to Facebook
|
||||
twitter: Share to Twitter
|
||||
twitter: Share to X
|
||||
cannot_vote_for_self: You can't vote for your own post
|
||||
modal_confirm:
|
||||
title: Error...
|
||||
@@ -855,7 +858,7 @@ ui:
|
||||
answers: Answers
|
||||
newest: Newest
|
||||
active: Active
|
||||
frequent: Frequent
|
||||
hot: Hot
|
||||
score: Score
|
||||
unanswered: Unanswered
|
||||
modified: modified
|
||||
@@ -899,7 +902,7 @@ ui:
|
||||
x_answers: answers
|
||||
x_questions: questions
|
||||
install:
|
||||
title: Answer
|
||||
title: Installation
|
||||
next: Next
|
||||
done: Done
|
||||
config_yaml_error: Can't create the config.yaml file.
|
||||
@@ -964,7 +967,7 @@ ui:
|
||||
msg:
|
||||
empty: Email cannot be empty.
|
||||
incorrect: Email incorrect format.
|
||||
ready_title: Your Answer is Ready!
|
||||
ready_title: Your site is ready
|
||||
ready_desc: >-
|
||||
If you ever feel like changing more settings, visit <1>admin section</1>; find it in the site menu.
|
||||
good_luck: "Have fun, and good luck!"
|
||||
@@ -1017,7 +1020,7 @@ ui:
|
||||
title: Admin
|
||||
dashboard:
|
||||
title: Dashboard
|
||||
welcome: Welcome to Answer Admin!
|
||||
welcome: Welcome to Admin!
|
||||
site_statistics: Site Statistics
|
||||
questions: "Questions:"
|
||||
answers: "Answers:"
|
||||
@@ -1133,7 +1136,7 @@ ui:
|
||||
fields:
|
||||
display_name:
|
||||
label: Display Name
|
||||
msg: Display Name must be at 4-30 characters in length.
|
||||
msg: Display name must be 2-30 characters in length.
|
||||
email:
|
||||
label: Email
|
||||
msg: Email is not valid.
|
||||
@@ -1379,5 +1382,3 @@ ui:
|
||||
staffs: Our community staff
|
||||
reputation: reputation
|
||||
votes: votes
|
||||
|
||||
|
||||
|
||||
+13
-12
@@ -612,7 +612,8 @@ ui:
|
||||
label: Name
|
||||
msg:
|
||||
empty: Name cannot be empty.
|
||||
range: Name up to 30 characters.
|
||||
range: Name must be between 2 to 30 characters in length.
|
||||
character: 'Must use the character set "a-z", "A-Z", "0-9", " - . _"'
|
||||
email:
|
||||
label: Email
|
||||
msg:
|
||||
@@ -676,7 +677,7 @@ ui:
|
||||
caption: People can mention you as "@username".
|
||||
msg: Username cannot be empty.
|
||||
msg_range: Username up to 30 characters
|
||||
character: 'Must use the character set "a-z", "0-9", " - . _"'
|
||||
character: 'Must use the character set "a-z", "0-9", "- . _"'
|
||||
avatar:
|
||||
label: Profile Image
|
||||
gravatar: Gravatar
|
||||
@@ -708,7 +709,9 @@ ui:
|
||||
We've sent an email to that address. Please follow the confirmation instructions.
|
||||
email:
|
||||
label: Email
|
||||
msg: Email cannot be empty.
|
||||
new_email:
|
||||
label: New email
|
||||
msg: New email cannot be empty.
|
||||
password_title: Password
|
||||
current_pass:
|
||||
label: Current Password
|
||||
@@ -803,7 +806,7 @@ ui:
|
||||
more: More
|
||||
tips:
|
||||
title: Advanced Search Tips
|
||||
tag: "<1>[tag]</1> search withing a tag"
|
||||
tag: "<1>[tag]</1> search with a tag"
|
||||
user: "<1>user:username</1> search by author"
|
||||
answer: "<1>answers:0</1> unanswered questions"
|
||||
score: "<1>score:3</1> posts with a 3+ score"
|
||||
@@ -816,7 +819,7 @@ ui:
|
||||
via: Share post via...
|
||||
copied: Copied
|
||||
facebook: Share to Facebook
|
||||
twitter: Share to Twitter
|
||||
twitter: Share to X
|
||||
cannot_vote_for_self: You can't vote for your own post
|
||||
modal_confirm:
|
||||
title: Error...
|
||||
@@ -847,7 +850,7 @@ ui:
|
||||
answers: Answers
|
||||
newest: Newest
|
||||
active: Active
|
||||
frequent: Frequent
|
||||
hot: Hot
|
||||
score: Score
|
||||
unanswered: Unanswered
|
||||
modified: modified
|
||||
@@ -891,7 +894,7 @@ ui:
|
||||
x_answers: answers
|
||||
x_questions: questions
|
||||
install:
|
||||
title: Answer
|
||||
title: Installation
|
||||
next: Next
|
||||
done: Done
|
||||
config_yaml_error: Can't create the config.yaml file.
|
||||
@@ -956,7 +959,7 @@ ui:
|
||||
msg:
|
||||
empty: Email cannot be empty.
|
||||
incorrect: Email incorrect format.
|
||||
ready_title: Your Answer is Ready!
|
||||
ready_title: Your site is ready
|
||||
ready_desc: >-
|
||||
If you ever feel like changing more settings, visit <1>admin section</1>; find it in the site menu.
|
||||
good_luck: "Have fun, and good luck!"
|
||||
@@ -1004,7 +1007,7 @@ ui:
|
||||
title: Admin
|
||||
dashboard:
|
||||
title: Dashboard
|
||||
welcome: Welcome to Answer Admin!
|
||||
welcome: Welcome to Admin!
|
||||
site_statistics: Site Statistics
|
||||
questions: "Questions:"
|
||||
answers: "Answers:"
|
||||
@@ -1120,7 +1123,7 @@ ui:
|
||||
fields:
|
||||
display_name:
|
||||
label: Display Name
|
||||
msg: display_name must be at 4 - 30 characters in length.
|
||||
msg: display_name must be at 2 - 30 characters in length.
|
||||
email:
|
||||
label: Email
|
||||
msg: Email is not valid.
|
||||
@@ -1366,5 +1369,3 @@ ui:
|
||||
staffs: Our community staff
|
||||
reputation: reputation
|
||||
votes: votes
|
||||
|
||||
|
||||
|
||||
+13
-12
@@ -612,7 +612,8 @@ ui:
|
||||
label: Name
|
||||
msg:
|
||||
empty: Name cannot be empty.
|
||||
range: Name up to 30 characters.
|
||||
range: Name must be between 2 to 30 characters in length.
|
||||
character: 'Must use the character set "a-z", "A-Z", "0-9", " - . _"'
|
||||
email:
|
||||
label: Email
|
||||
msg:
|
||||
@@ -676,7 +677,7 @@ ui:
|
||||
caption: People can mention you as "@username".
|
||||
msg: Username cannot be empty.
|
||||
msg_range: Username up to 30 characters
|
||||
character: 'Must use the character set "a-z", "0-9", " - . _"'
|
||||
character: 'Must use the character set "a-z", "0-9", "- . _"'
|
||||
avatar:
|
||||
label: Profile Image
|
||||
gravatar: Gravatar
|
||||
@@ -708,7 +709,9 @@ ui:
|
||||
We've sent an email to that address. Please follow the confirmation instructions.
|
||||
email:
|
||||
label: Email
|
||||
msg: Email cannot be empty.
|
||||
new_email:
|
||||
label: New email
|
||||
msg: New email cannot be empty.
|
||||
password_title: Password
|
||||
current_pass:
|
||||
label: Current Password
|
||||
@@ -803,7 +806,7 @@ ui:
|
||||
more: More
|
||||
tips:
|
||||
title: Advanced Search Tips
|
||||
tag: "<1>[tag]</1> search withing a tag"
|
||||
tag: "<1>[tag]</1> search with a tag"
|
||||
user: "<1>user:username</1> search by author"
|
||||
answer: "<1>answers:0</1> unanswered questions"
|
||||
score: "<1>score:3</1> posts with a 3+ score"
|
||||
@@ -816,7 +819,7 @@ ui:
|
||||
via: Share post via...
|
||||
copied: Copied
|
||||
facebook: Share to Facebook
|
||||
twitter: Share to Twitter
|
||||
twitter: Share to X
|
||||
cannot_vote_for_self: You can't vote for your own post
|
||||
modal_confirm:
|
||||
title: Error...
|
||||
@@ -847,7 +850,7 @@ ui:
|
||||
answers: Answers
|
||||
newest: Newest
|
||||
active: Active
|
||||
frequent: Frequent
|
||||
hot: Hot
|
||||
score: Score
|
||||
unanswered: Unanswered
|
||||
modified: modified
|
||||
@@ -891,7 +894,7 @@ ui:
|
||||
x_answers: answers
|
||||
x_questions: questions
|
||||
install:
|
||||
title: Answer
|
||||
title: Installation
|
||||
next: Next
|
||||
done: Done
|
||||
config_yaml_error: Can't create the config.yaml file.
|
||||
@@ -956,7 +959,7 @@ ui:
|
||||
msg:
|
||||
empty: Email cannot be empty.
|
||||
incorrect: Email incorrect format.
|
||||
ready_title: Your Answer is Ready!
|
||||
ready_title: Your site is ready
|
||||
ready_desc: >-
|
||||
If you ever feel like changing more settings, visit <1>admin section</1>; find it in the site menu.
|
||||
good_luck: "Have fun, and good luck!"
|
||||
@@ -1004,7 +1007,7 @@ ui:
|
||||
title: Admin
|
||||
dashboard:
|
||||
title: Dashboard
|
||||
welcome: Welcome to Answer Admin!
|
||||
welcome: Welcome to Admin!
|
||||
site_statistics: Site Statistics
|
||||
questions: "Questions:"
|
||||
answers: "Answers:"
|
||||
@@ -1120,7 +1123,7 @@ ui:
|
||||
fields:
|
||||
display_name:
|
||||
label: Display Name
|
||||
msg: display_name must be at 4 - 30 characters in length.
|
||||
msg: display_name must be at 2 - 30 characters in length.
|
||||
email:
|
||||
label: Email
|
||||
msg: Email is not valid.
|
||||
@@ -1366,5 +1369,3 @@ ui:
|
||||
staffs: Our community staff
|
||||
reputation: reputation
|
||||
votes: votes
|
||||
|
||||
|
||||
|
||||
+13
-12
@@ -612,7 +612,8 @@ ui:
|
||||
label: Name
|
||||
msg:
|
||||
empty: Name cannot be empty.
|
||||
range: Name up to 30 characters.
|
||||
range: Name must be between 2 to 30 characters in length.
|
||||
character: 'Must use the character set "a-z", "A-Z", "0-9", " - . _"'
|
||||
email:
|
||||
label: Email
|
||||
msg:
|
||||
@@ -676,7 +677,7 @@ ui:
|
||||
caption: People can mention you as "@username".
|
||||
msg: Username cannot be empty.
|
||||
msg_range: Username up to 30 characters
|
||||
character: 'Must use the character set "a-z", "0-9", " - . _"'
|
||||
character: 'Must use the character set "a-z", "0-9", "- . _"'
|
||||
avatar:
|
||||
label: Profile Image
|
||||
gravatar: Gravatar
|
||||
@@ -708,7 +709,9 @@ ui:
|
||||
We've sent an email to that address. Please follow the confirmation instructions.
|
||||
email:
|
||||
label: Email
|
||||
msg: Email cannot be empty.
|
||||
new_email:
|
||||
label: New email
|
||||
msg: New email cannot be empty.
|
||||
password_title: Password
|
||||
current_pass:
|
||||
label: Current Password
|
||||
@@ -803,7 +806,7 @@ ui:
|
||||
more: More
|
||||
tips:
|
||||
title: Advanced Search Tips
|
||||
tag: "<1>[tag]</1> search withing a tag"
|
||||
tag: "<1>[tag]</1> search with a tag"
|
||||
user: "<1>user:username</1> search by author"
|
||||
answer: "<1>answers:0</1> unanswered questions"
|
||||
score: "<1>score:3</1> posts with a 3+ score"
|
||||
@@ -816,7 +819,7 @@ ui:
|
||||
via: Share post via...
|
||||
copied: Copied
|
||||
facebook: Share to Facebook
|
||||
twitter: Share to Twitter
|
||||
twitter: Share to X
|
||||
cannot_vote_for_self: You can't vote for your own post
|
||||
modal_confirm:
|
||||
title: Error...
|
||||
@@ -847,7 +850,7 @@ ui:
|
||||
answers: Answers
|
||||
newest: Newest
|
||||
active: Active
|
||||
frequent: Frequent
|
||||
hot: Hot
|
||||
score: Score
|
||||
unanswered: Unanswered
|
||||
modified: modified
|
||||
@@ -891,7 +894,7 @@ ui:
|
||||
x_answers: answers
|
||||
x_questions: questions
|
||||
install:
|
||||
title: Answer
|
||||
title: Installation
|
||||
next: Next
|
||||
done: Done
|
||||
config_yaml_error: Can't create the config.yaml file.
|
||||
@@ -956,7 +959,7 @@ ui:
|
||||
msg:
|
||||
empty: Email cannot be empty.
|
||||
incorrect: Email incorrect format.
|
||||
ready_title: Your Answer is Ready!
|
||||
ready_title: Your site is ready
|
||||
ready_desc: >-
|
||||
If you ever feel like changing more settings, visit <1>admin section</1>; find it in the site menu.
|
||||
good_luck: "Have fun, and good luck!"
|
||||
@@ -1004,7 +1007,7 @@ ui:
|
||||
title: Admin
|
||||
dashboard:
|
||||
title: Dashboard
|
||||
welcome: Welcome to Answer Admin!
|
||||
welcome: Welcome to Admin!
|
||||
site_statistics: Site Statistics
|
||||
questions: "Questions:"
|
||||
answers: "Answers:"
|
||||
@@ -1120,7 +1123,7 @@ ui:
|
||||
fields:
|
||||
display_name:
|
||||
label: Display Name
|
||||
msg: display_name must be at 4 - 30 characters in length.
|
||||
msg: display_name must be at 2 - 30 characters in length.
|
||||
email:
|
||||
label: Email
|
||||
msg: Email is not valid.
|
||||
@@ -1366,5 +1369,3 @@ ui:
|
||||
staffs: Our community staff
|
||||
reputation: reputation
|
||||
votes: votes
|
||||
|
||||
|
||||
|
||||
+13
-12
@@ -612,7 +612,8 @@ ui:
|
||||
label: Name
|
||||
msg:
|
||||
empty: Name cannot be empty.
|
||||
range: Name up to 30 characters.
|
||||
range: Name must be between 2 to 30 characters in length.
|
||||
character: 'Must use the character set "a-z", "A-Z", "0-9", " - . _"'
|
||||
email:
|
||||
label: Email
|
||||
msg:
|
||||
@@ -676,7 +677,7 @@ ui:
|
||||
caption: People can mention you as "@username".
|
||||
msg: Username cannot be empty.
|
||||
msg_range: Username up to 30 characters
|
||||
character: 'Must use the character set "a-z", "0-9", " - . _"'
|
||||
character: 'Must use the character set "a-z", "0-9", "- . _"'
|
||||
avatar:
|
||||
label: Profile Image
|
||||
gravatar: Gravatar
|
||||
@@ -708,7 +709,9 @@ ui:
|
||||
We've sent an email to that address. Please follow the confirmation instructions.
|
||||
email:
|
||||
label: Email
|
||||
msg: Email cannot be empty.
|
||||
new_email:
|
||||
label: New email
|
||||
msg: New email cannot be empty.
|
||||
password_title: Password
|
||||
current_pass:
|
||||
label: Current Password
|
||||
@@ -803,7 +806,7 @@ ui:
|
||||
more: More
|
||||
tips:
|
||||
title: Advanced Search Tips
|
||||
tag: "<1>[tag]</1> search withing a tag"
|
||||
tag: "<1>[tag]</1> search with a tag"
|
||||
user: "<1>user:username</1> search by author"
|
||||
answer: "<1>answers:0</1> unanswered questions"
|
||||
score: "<1>score:3</1> posts with a 3+ score"
|
||||
@@ -816,7 +819,7 @@ ui:
|
||||
via: Share post via...
|
||||
copied: Copied
|
||||
facebook: Share to Facebook
|
||||
twitter: Share to Twitter
|
||||
twitter: Share to X
|
||||
cannot_vote_for_self: You can't vote for your own post
|
||||
modal_confirm:
|
||||
title: Error...
|
||||
@@ -847,7 +850,7 @@ ui:
|
||||
answers: Answers
|
||||
newest: Newest
|
||||
active: Active
|
||||
frequent: Frequent
|
||||
hot: Hot
|
||||
score: Score
|
||||
unanswered: Unanswered
|
||||
modified: modified
|
||||
@@ -891,7 +894,7 @@ ui:
|
||||
x_answers: answers
|
||||
x_questions: questions
|
||||
install:
|
||||
title: Answer
|
||||
title: Installation
|
||||
next: Next
|
||||
done: Done
|
||||
config_yaml_error: Can't create the config.yaml file.
|
||||
@@ -956,7 +959,7 @@ ui:
|
||||
msg:
|
||||
empty: Email cannot be empty.
|
||||
incorrect: Email incorrect format.
|
||||
ready_title: Your Answer is Ready!
|
||||
ready_title: Your site is ready
|
||||
ready_desc: >-
|
||||
If you ever feel like changing more settings, visit <1>admin section</1>; find it in the site menu.
|
||||
good_luck: "Have fun, and good luck!"
|
||||
@@ -1004,7 +1007,7 @@ ui:
|
||||
title: Admin
|
||||
dashboard:
|
||||
title: Dashboard
|
||||
welcome: Welcome to Answer Admin!
|
||||
welcome: Welcome to Admin!
|
||||
site_statistics: Site Statistics
|
||||
questions: "Questions:"
|
||||
answers: "Answers:"
|
||||
@@ -1120,7 +1123,7 @@ ui:
|
||||
fields:
|
||||
display_name:
|
||||
label: Display Name
|
||||
msg: display_name must be at 4 - 30 characters in length.
|
||||
msg: display_name must be at 2 - 30 characters in length.
|
||||
email:
|
||||
label: Email
|
||||
msg: Email is not valid.
|
||||
@@ -1366,5 +1369,3 @@ ui:
|
||||
staffs: Our community staff
|
||||
reputation: reputation
|
||||
votes: votes
|
||||
|
||||
|
||||
|
||||
+13
-12
@@ -612,7 +612,8 @@ ui:
|
||||
label: Name
|
||||
msg:
|
||||
empty: Name cannot be empty.
|
||||
range: Name up to 30 characters.
|
||||
range: Name must be between 2 to 30 characters in length.
|
||||
character: 'Must use the character set "a-z", "A-Z", "0-9", " - . _"'
|
||||
email:
|
||||
label: Email
|
||||
msg:
|
||||
@@ -676,7 +677,7 @@ ui:
|
||||
caption: People can mention you as "@username".
|
||||
msg: Username cannot be empty.
|
||||
msg_range: Username up to 30 characters
|
||||
character: 'Must use the character set "a-z", "0-9", " - . _"'
|
||||
character: 'Must use the character set "a-z", "0-9", "- . _"'
|
||||
avatar:
|
||||
label: Profile Image
|
||||
gravatar: Gravatar
|
||||
@@ -708,7 +709,9 @@ ui:
|
||||
We've sent an email to that address. Please follow the confirmation instructions.
|
||||
email:
|
||||
label: Email
|
||||
msg: Email cannot be empty.
|
||||
new_email:
|
||||
label: New email
|
||||
msg: New email cannot be empty.
|
||||
password_title: Password
|
||||
current_pass:
|
||||
label: Current Password
|
||||
@@ -803,7 +806,7 @@ ui:
|
||||
more: More
|
||||
tips:
|
||||
title: Advanced Search Tips
|
||||
tag: "<1>[tag]</1> search withing a tag"
|
||||
tag: "<1>[tag]</1> search with a tag"
|
||||
user: "<1>user:username</1> search by author"
|
||||
answer: "<1>answers:0</1> unanswered questions"
|
||||
score: "<1>score:3</1> posts with a 3+ score"
|
||||
@@ -816,7 +819,7 @@ ui:
|
||||
via: Share post via...
|
||||
copied: Copied
|
||||
facebook: Share to Facebook
|
||||
twitter: Share to Twitter
|
||||
twitter: Share to X
|
||||
cannot_vote_for_self: You can't vote for your own post
|
||||
modal_confirm:
|
||||
title: Error...
|
||||
@@ -847,7 +850,7 @@ ui:
|
||||
answers: Answers
|
||||
newest: Newest
|
||||
active: Active
|
||||
frequent: Frequent
|
||||
hot: Hot
|
||||
score: Score
|
||||
unanswered: Unanswered
|
||||
modified: modified
|
||||
@@ -891,7 +894,7 @@ ui:
|
||||
x_answers: answers
|
||||
x_questions: questions
|
||||
install:
|
||||
title: Answer
|
||||
title: Installation
|
||||
next: Next
|
||||
done: Done
|
||||
config_yaml_error: Can't create the config.yaml file.
|
||||
@@ -956,7 +959,7 @@ ui:
|
||||
msg:
|
||||
empty: Email cannot be empty.
|
||||
incorrect: Email incorrect format.
|
||||
ready_title: Your Answer is Ready!
|
||||
ready_title: Your site is ready
|
||||
ready_desc: >-
|
||||
If you ever feel like changing more settings, visit <1>admin section</1>; find it in the site menu.
|
||||
good_luck: "Have fun, and good luck!"
|
||||
@@ -1004,7 +1007,7 @@ ui:
|
||||
title: Admin
|
||||
dashboard:
|
||||
title: Dashboard
|
||||
welcome: Welcome to Answer Admin!
|
||||
welcome: Welcome to Admin!
|
||||
site_statistics: Site Statistics
|
||||
questions: "Questions:"
|
||||
answers: "Answers:"
|
||||
@@ -1120,7 +1123,7 @@ ui:
|
||||
fields:
|
||||
display_name:
|
||||
label: Display Name
|
||||
msg: display_name must be at 4 - 30 characters in length.
|
||||
msg: display_name must be at 2 - 30 characters in length.
|
||||
email:
|
||||
label: Email
|
||||
msg: Email is not valid.
|
||||
@@ -1366,5 +1369,3 @@ ui:
|
||||
staffs: Our community staff
|
||||
reputation: reputation
|
||||
votes: votes
|
||||
|
||||
|
||||
|
||||
+15
-14
@@ -619,7 +619,8 @@ ui:
|
||||
label: Name
|
||||
msg:
|
||||
empty: Name cannot be empty.
|
||||
range: Name up to 30 characters.
|
||||
range: Name must be between 2 to 30 characters in length.
|
||||
character: 'Must use the character set "a-z", "A-Z", "0-9", " - . _"'
|
||||
email:
|
||||
label: Email
|
||||
msg:
|
||||
@@ -677,13 +678,13 @@ ui:
|
||||
display_name:
|
||||
label: Display Name
|
||||
msg: Display name cannot be empty.
|
||||
msg_range: Display name up to 30 characters.
|
||||
msg_range: Display name must be 2-30 characters in length.
|
||||
username:
|
||||
label: Username
|
||||
caption: People can mention you as "@username".
|
||||
msg: Username cannot be empty.
|
||||
msg_range: Username up to 30 characters.
|
||||
character: 'Must use the character set "a-z", "0-9", " - . _"'
|
||||
msg_range: Username must be 2-30 characters in length.
|
||||
character: 'Must use the character set "a-z", "0-9", "- . _"'
|
||||
avatar:
|
||||
label: Profile Image
|
||||
gravatar: Gravatar
|
||||
@@ -715,7 +716,9 @@ ui:
|
||||
We've sent an email to that address. Please follow the confirmation instructions.
|
||||
email:
|
||||
label: Email
|
||||
msg: Email cannot be empty.
|
||||
new_email:
|
||||
label: New email
|
||||
msg: New email cannot be empty.
|
||||
password_title: Password
|
||||
current_pass:
|
||||
label: Current Password
|
||||
@@ -811,7 +814,7 @@ ui:
|
||||
more: More
|
||||
tips:
|
||||
title: Advanced Search Tips
|
||||
tag: "<1>[tag]</1> search withing a tag"
|
||||
tag: "<1>[tag]</1> search with a tag"
|
||||
user: "<1>user:username</1> search by author"
|
||||
answer: "<1>answers:0</1> unanswered questions"
|
||||
score: "<1>score:3</1> posts with a 3+ score"
|
||||
@@ -824,7 +827,7 @@ ui:
|
||||
via: Share post via...
|
||||
copied: Copied
|
||||
facebook: Share to Facebook
|
||||
twitter: Share to Twitter
|
||||
twitter: Share to X
|
||||
cannot_vote_for_self: You can't vote for your own post
|
||||
modal_confirm:
|
||||
title: Error...
|
||||
@@ -855,7 +858,7 @@ ui:
|
||||
answers: Answers
|
||||
newest: Newest
|
||||
active: Active
|
||||
frequent: Frequent
|
||||
hot: Hot
|
||||
score: Score
|
||||
unanswered: Unanswered
|
||||
modified: modified
|
||||
@@ -899,7 +902,7 @@ ui:
|
||||
x_answers: answers
|
||||
x_questions: questions
|
||||
install:
|
||||
title: Answer
|
||||
title: Installation
|
||||
next: Next
|
||||
done: Done
|
||||
config_yaml_error: Can't create the config.yaml file.
|
||||
@@ -964,7 +967,7 @@ ui:
|
||||
msg:
|
||||
empty: Email cannot be empty.
|
||||
incorrect: Email incorrect format.
|
||||
ready_title: Your Answer is Ready!
|
||||
ready_title: Your site is ready
|
||||
ready_desc: >-
|
||||
If you ever feel like changing more settings, visit <1>admin section</1>; find it in the site menu.
|
||||
good_luck: "Have fun, and good luck!"
|
||||
@@ -1017,7 +1020,7 @@ ui:
|
||||
title: Admin
|
||||
dashboard:
|
||||
title: Dashboard
|
||||
welcome: Welcome to Answer Admin!
|
||||
welcome: Welcome to Admin!
|
||||
site_statistics: Site Statistics
|
||||
questions: "Questions:"
|
||||
answers: "Answers:"
|
||||
@@ -1133,7 +1136,7 @@ ui:
|
||||
fields:
|
||||
display_name:
|
||||
label: Display Name
|
||||
msg: Display Name must be at 4-30 characters in length.
|
||||
msg: Display name must be 2-30 characters in length.
|
||||
email:
|
||||
label: Email
|
||||
msg: Email is not valid.
|
||||
@@ -1379,5 +1382,3 @@ ui:
|
||||
staffs: Our community staff
|
||||
reputation: reputation
|
||||
votes: votes
|
||||
|
||||
|
||||
|
||||
+874
-228
File diff suppressed because it is too large
Load Diff
+703
-57
File diff suppressed because it is too large
Load Diff
+1791
-1145
File diff suppressed because it is too large
Load Diff
+839
-193
File diff suppressed because it is too large
Load Diff
+15
-14
@@ -619,7 +619,8 @@ ui:
|
||||
label: Name
|
||||
msg:
|
||||
empty: Name cannot be empty.
|
||||
range: Name up to 30 characters.
|
||||
range: Name must be between 2 to 30 characters in length.
|
||||
character: 'Must use the character set "a-z", "A-Z", "0-9", " - . _"'
|
||||
email:
|
||||
label: Email
|
||||
msg:
|
||||
@@ -677,13 +678,13 @@ ui:
|
||||
display_name:
|
||||
label: Display Name
|
||||
msg: Display name cannot be empty.
|
||||
msg_range: Display name up to 30 characters.
|
||||
msg_range: Display name must be 2-30 characters in length.
|
||||
username:
|
||||
label: Username
|
||||
caption: People can mention you as "@username".
|
||||
msg: Username cannot be empty.
|
||||
msg_range: Username up to 30 characters.
|
||||
character: 'Must use the character set "a-z", "0-9", " - . _"'
|
||||
msg_range: Username must be 2-30 characters in length.
|
||||
character: 'Must use the character set "a-z", "0-9", "- . _"'
|
||||
avatar:
|
||||
label: Profile Image
|
||||
gravatar: Gravatar
|
||||
@@ -715,7 +716,9 @@ ui:
|
||||
We've sent an email to that address. Please follow the confirmation instructions.
|
||||
email:
|
||||
label: Email
|
||||
msg: Email cannot be empty.
|
||||
new_email:
|
||||
label: New email
|
||||
msg: New email cannot be empty.
|
||||
password_title: Password
|
||||
current_pass:
|
||||
label: Current Password
|
||||
@@ -811,7 +814,7 @@ ui:
|
||||
more: More
|
||||
tips:
|
||||
title: Advanced Search Tips
|
||||
tag: "<1>[tag]</1> search withing a tag"
|
||||
tag: "<1>[tag]</1> search with a tag"
|
||||
user: "<1>user:username</1> search by author"
|
||||
answer: "<1>answers:0</1> unanswered questions"
|
||||
score: "<1>score:3</1> posts with a 3+ score"
|
||||
@@ -824,7 +827,7 @@ ui:
|
||||
via: Share post via...
|
||||
copied: Copied
|
||||
facebook: Share to Facebook
|
||||
twitter: Share to Twitter
|
||||
twitter: Share to X
|
||||
cannot_vote_for_self: You can't vote for your own post
|
||||
modal_confirm:
|
||||
title: Error...
|
||||
@@ -855,7 +858,7 @@ ui:
|
||||
answers: Answers
|
||||
newest: Newest
|
||||
active: Active
|
||||
frequent: Frequent
|
||||
hot: Hot
|
||||
score: Score
|
||||
unanswered: Unanswered
|
||||
modified: modified
|
||||
@@ -899,7 +902,7 @@ ui:
|
||||
x_answers: answers
|
||||
x_questions: questions
|
||||
install:
|
||||
title: Answer
|
||||
title: Installation
|
||||
next: Next
|
||||
done: Done
|
||||
config_yaml_error: Can't create the config.yaml file.
|
||||
@@ -964,7 +967,7 @@ ui:
|
||||
msg:
|
||||
empty: Email cannot be empty.
|
||||
incorrect: Email incorrect format.
|
||||
ready_title: Your Answer is Ready!
|
||||
ready_title: Your site is ready
|
||||
ready_desc: >-
|
||||
If you ever feel like changing more settings, visit <1>admin section</1>; find it in the site menu.
|
||||
good_luck: "Have fun, and good luck!"
|
||||
@@ -1017,7 +1020,7 @@ ui:
|
||||
title: Admin
|
||||
dashboard:
|
||||
title: Dashboard
|
||||
welcome: Welcome to Answer Admin!
|
||||
welcome: Welcome to Admin!
|
||||
site_statistics: Site Statistics
|
||||
questions: "Questions:"
|
||||
answers: "Answers:"
|
||||
@@ -1133,7 +1136,7 @@ ui:
|
||||
fields:
|
||||
display_name:
|
||||
label: Display Name
|
||||
msg: Display Name must be at 4-30 characters in length.
|
||||
msg: Display name must be 2-30 characters in length.
|
||||
email:
|
||||
label: Email
|
||||
msg: Email is not valid.
|
||||
@@ -1379,5 +1382,3 @@ ui:
|
||||
staffs: Our community staff
|
||||
reputation: reputation
|
||||
votes: votes
|
||||
|
||||
|
||||
|
||||
+713
-70
File diff suppressed because it is too large
Load Diff
+722
-76
File diff suppressed because it is too large
Load Diff
+802
-156
File diff suppressed because it is too large
Load Diff
+15
-14
@@ -619,7 +619,8 @@ ui:
|
||||
label: Name
|
||||
msg:
|
||||
empty: Name cannot be empty.
|
||||
range: Name up to 30 characters.
|
||||
range: Name must be between 2 to 30 characters in length.
|
||||
character: 'Must use the character set "a-z", "A-Z", "0-9", " - . _"'
|
||||
email:
|
||||
label: Email
|
||||
msg:
|
||||
@@ -677,13 +678,13 @@ ui:
|
||||
display_name:
|
||||
label: Display Name
|
||||
msg: Display name cannot be empty.
|
||||
msg_range: Display name up to 30 characters.
|
||||
msg_range: Display name must be 2-30 characters in length.
|
||||
username:
|
||||
label: Username
|
||||
caption: People can mention you as "@username".
|
||||
msg: Username cannot be empty.
|
||||
msg_range: Username up to 30 characters.
|
||||
character: 'Must use the character set "a-z", "0-9", " - . _"'
|
||||
msg_range: Username must be 2-30 characters in length.
|
||||
character: 'Must use the character set "a-z", "0-9", "- . _"'
|
||||
avatar:
|
||||
label: Profile Image
|
||||
gravatar: Gravatar
|
||||
@@ -715,7 +716,9 @@ ui:
|
||||
We've sent an email to that address. Please follow the confirmation instructions.
|
||||
email:
|
||||
label: Email
|
||||
msg: Email cannot be empty.
|
||||
new_email:
|
||||
label: New email
|
||||
msg: New email cannot be empty.
|
||||
password_title: Password
|
||||
current_pass:
|
||||
label: Current Password
|
||||
@@ -811,7 +814,7 @@ ui:
|
||||
more: More
|
||||
tips:
|
||||
title: Advanced Search Tips
|
||||
tag: "<1>[tag]</1> search withing a tag"
|
||||
tag: "<1>[tag]</1> search with a tag"
|
||||
user: "<1>user:username</1> search by author"
|
||||
answer: "<1>answers:0</1> unanswered questions"
|
||||
score: "<1>score:3</1> posts with a 3+ score"
|
||||
@@ -824,7 +827,7 @@ ui:
|
||||
via: Share post via...
|
||||
copied: Copied
|
||||
facebook: Share to Facebook
|
||||
twitter: Share to Twitter
|
||||
twitter: Share to X
|
||||
cannot_vote_for_self: You can't vote for your own post
|
||||
modal_confirm:
|
||||
title: Error...
|
||||
@@ -855,7 +858,7 @@ ui:
|
||||
answers: Answers
|
||||
newest: Newest
|
||||
active: Active
|
||||
frequent: Frequent
|
||||
hot: Hot
|
||||
score: Score
|
||||
unanswered: Unanswered
|
||||
modified: modified
|
||||
@@ -899,7 +902,7 @@ ui:
|
||||
x_answers: answers
|
||||
x_questions: questions
|
||||
install:
|
||||
title: Answer
|
||||
title: Installation
|
||||
next: Next
|
||||
done: Done
|
||||
config_yaml_error: Can't create the config.yaml file.
|
||||
@@ -964,7 +967,7 @@ ui:
|
||||
msg:
|
||||
empty: Email cannot be empty.
|
||||
incorrect: Email incorrect format.
|
||||
ready_title: Your Answer is Ready!
|
||||
ready_title: Your site is ready
|
||||
ready_desc: >-
|
||||
If you ever feel like changing more settings, visit <1>admin section</1>; find it in the site menu.
|
||||
good_luck: "Have fun, and good luck!"
|
||||
@@ -1017,7 +1020,7 @@ ui:
|
||||
title: Admin
|
||||
dashboard:
|
||||
title: Dashboard
|
||||
welcome: Welcome to Answer Admin!
|
||||
welcome: Welcome to Admin!
|
||||
site_statistics: Site Statistics
|
||||
questions: "Questions:"
|
||||
answers: "Answers:"
|
||||
@@ -1133,7 +1136,7 @@ ui:
|
||||
fields:
|
||||
display_name:
|
||||
label: Display Name
|
||||
msg: Display Name must be at 4-30 characters in length.
|
||||
msg: Display name must be 2-30 characters in length.
|
||||
email:
|
||||
label: Email
|
||||
msg: Email is not valid.
|
||||
@@ -1379,5 +1382,3 @@ ui:
|
||||
staffs: Our community staff
|
||||
reputation: reputation
|
||||
votes: votes
|
||||
|
||||
|
||||
|
||||
+775
-129
File diff suppressed because it is too large
Load Diff
+15
-14
@@ -619,7 +619,8 @@ ui:
|
||||
label: Name
|
||||
msg:
|
||||
empty: Name cannot be empty.
|
||||
range: Name up to 30 characters.
|
||||
range: Name must be between 2 to 30 characters in length.
|
||||
character: 'Must use the character set "a-z", "A-Z", "0-9", " - . _"'
|
||||
email:
|
||||
label: Email
|
||||
msg:
|
||||
@@ -677,13 +678,13 @@ ui:
|
||||
display_name:
|
||||
label: Display Name
|
||||
msg: Display name cannot be empty.
|
||||
msg_range: Display name up to 30 characters.
|
||||
msg_range: Display name must be 2-30 characters in length.
|
||||
username:
|
||||
label: Username
|
||||
caption: People can mention you as "@username".
|
||||
msg: Username cannot be empty.
|
||||
msg_range: Username up to 30 characters.
|
||||
character: 'Must use the character set "a-z", "0-9", " - . _"'
|
||||
msg_range: Username must be 2-30 characters in length.
|
||||
character: 'Must use the character set "a-z", "0-9", "- . _"'
|
||||
avatar:
|
||||
label: Profile Image
|
||||
gravatar: Gravatar
|
||||
@@ -715,7 +716,9 @@ ui:
|
||||
We've sent an email to that address. Please follow the confirmation instructions.
|
||||
email:
|
||||
label: Email
|
||||
msg: Email cannot be empty.
|
||||
new_email:
|
||||
label: New email
|
||||
msg: New email cannot be empty.
|
||||
password_title: Password
|
||||
current_pass:
|
||||
label: Current Password
|
||||
@@ -811,7 +814,7 @@ ui:
|
||||
more: More
|
||||
tips:
|
||||
title: Advanced Search Tips
|
||||
tag: "<1>[tag]</1> search withing a tag"
|
||||
tag: "<1>[tag]</1> search with a tag"
|
||||
user: "<1>user:username</1> search by author"
|
||||
answer: "<1>answers:0</1> unanswered questions"
|
||||
score: "<1>score:3</1> posts with a 3+ score"
|
||||
@@ -824,7 +827,7 @@ ui:
|
||||
via: Share post via...
|
||||
copied: Copied
|
||||
facebook: Share to Facebook
|
||||
twitter: Share to Twitter
|
||||
twitter: Share to X
|
||||
cannot_vote_for_self: You can't vote for your own post
|
||||
modal_confirm:
|
||||
title: Error...
|
||||
@@ -855,7 +858,7 @@ ui:
|
||||
answers: Answers
|
||||
newest: Newest
|
||||
active: Active
|
||||
frequent: Frequent
|
||||
hot: Hot
|
||||
score: Score
|
||||
unanswered: Unanswered
|
||||
modified: modified
|
||||
@@ -899,7 +902,7 @@ ui:
|
||||
x_answers: answers
|
||||
x_questions: questions
|
||||
install:
|
||||
title: Answer
|
||||
title: Installation
|
||||
next: Next
|
||||
done: Done
|
||||
config_yaml_error: Can't create the config.yaml file.
|
||||
@@ -964,7 +967,7 @@ ui:
|
||||
msg:
|
||||
empty: Email cannot be empty.
|
||||
incorrect: Email incorrect format.
|
||||
ready_title: Your Answer is Ready!
|
||||
ready_title: Your site is ready
|
||||
ready_desc: >-
|
||||
If you ever feel like changing more settings, visit <1>admin section</1>; find it in the site menu.
|
||||
good_luck: "Have fun, and good luck!"
|
||||
@@ -1017,7 +1020,7 @@ ui:
|
||||
title: Admin
|
||||
dashboard:
|
||||
title: Dashboard
|
||||
welcome: Welcome to Answer Admin!
|
||||
welcome: Welcome to Admin!
|
||||
site_statistics: Site Statistics
|
||||
questions: "Questions:"
|
||||
answers: "Answers:"
|
||||
@@ -1133,7 +1136,7 @@ ui:
|
||||
fields:
|
||||
display_name:
|
||||
label: Display Name
|
||||
msg: Display Name must be at 4-30 characters in length.
|
||||
msg: Display name must be 2-30 characters in length.
|
||||
email:
|
||||
label: Email
|
||||
msg: Email is not valid.
|
||||
@@ -1379,5 +1382,3 @@ ui:
|
||||
staffs: Our community staff
|
||||
reputation: reputation
|
||||
votes: votes
|
||||
|
||||
|
||||
|
||||
+2450
File diff suppressed because it is too large
Load Diff
+15
-14
@@ -619,7 +619,8 @@ ui:
|
||||
label: Name
|
||||
msg:
|
||||
empty: Name cannot be empty.
|
||||
range: Name up to 30 characters.
|
||||
range: Name must be between 2 to 30 characters in length.
|
||||
character: 'Must use the character set "a-z", "A-Z", "0-9", " - . _"'
|
||||
email:
|
||||
label: Email
|
||||
msg:
|
||||
@@ -677,13 +678,13 @@ ui:
|
||||
display_name:
|
||||
label: Display Name
|
||||
msg: Display name cannot be empty.
|
||||
msg_range: Display name up to 30 characters.
|
||||
msg_range: Display name must be 2-30 characters in length.
|
||||
username:
|
||||
label: Username
|
||||
caption: People can mention you as "@username".
|
||||
msg: Username cannot be empty.
|
||||
msg_range: Username up to 30 characters.
|
||||
character: 'Must use the character set "a-z", "0-9", " - . _"'
|
||||
msg_range: Username must be 2-30 characters in length.
|
||||
character: 'Must use the character set "a-z", "0-9", "- . _"'
|
||||
avatar:
|
||||
label: Profile Image
|
||||
gravatar: Gravatar
|
||||
@@ -715,7 +716,9 @@ ui:
|
||||
We've sent an email to that address. Please follow the confirmation instructions.
|
||||
email:
|
||||
label: Email
|
||||
msg: Email cannot be empty.
|
||||
new_email:
|
||||
label: New email
|
||||
msg: New email cannot be empty.
|
||||
password_title: Password
|
||||
current_pass:
|
||||
label: Current Password
|
||||
@@ -811,7 +814,7 @@ ui:
|
||||
more: More
|
||||
tips:
|
||||
title: Advanced Search Tips
|
||||
tag: "<1>[tag]</1> search withing a tag"
|
||||
tag: "<1>[tag]</1> search with a tag"
|
||||
user: "<1>user:username</1> search by author"
|
||||
answer: "<1>answers:0</1> unanswered questions"
|
||||
score: "<1>score:3</1> posts with a 3+ score"
|
||||
@@ -824,7 +827,7 @@ ui:
|
||||
via: Share post via...
|
||||
copied: Copied
|
||||
facebook: Share to Facebook
|
||||
twitter: Share to Twitter
|
||||
twitter: Share to X
|
||||
cannot_vote_for_self: You can't vote for your own post
|
||||
modal_confirm:
|
||||
title: Error...
|
||||
@@ -855,7 +858,7 @@ ui:
|
||||
answers: Answers
|
||||
newest: Newest
|
||||
active: Active
|
||||
frequent: Frequent
|
||||
hot: Hot
|
||||
score: Score
|
||||
unanswered: Unanswered
|
||||
modified: modified
|
||||
@@ -899,7 +902,7 @@ ui:
|
||||
x_answers: answers
|
||||
x_questions: questions
|
||||
install:
|
||||
title: Answer
|
||||
title: Installation
|
||||
next: Next
|
||||
done: Done
|
||||
config_yaml_error: Can't create the config.yaml file.
|
||||
@@ -964,7 +967,7 @@ ui:
|
||||
msg:
|
||||
empty: Email cannot be empty.
|
||||
incorrect: Email incorrect format.
|
||||
ready_title: Your Answer is Ready!
|
||||
ready_title: Your site is ready
|
||||
ready_desc: >-
|
||||
If you ever feel like changing more settings, visit <1>admin section</1>; find it in the site menu.
|
||||
good_luck: "Have fun, and good luck!"
|
||||
@@ -1017,7 +1020,7 @@ ui:
|
||||
title: Admin
|
||||
dashboard:
|
||||
title: Dashboard
|
||||
welcome: Welcome to Answer Admin!
|
||||
welcome: Welcome to Admin!
|
||||
site_statistics: Site Statistics
|
||||
questions: "Questions:"
|
||||
answers: "Answers:"
|
||||
@@ -1133,7 +1136,7 @@ ui:
|
||||
fields:
|
||||
display_name:
|
||||
label: Display Name
|
||||
msg: Display Name must be at 4-30 characters in length.
|
||||
msg: Display name must be 2-30 characters in length.
|
||||
email:
|
||||
label: Email
|
||||
msg: Email is not valid.
|
||||
@@ -1379,5 +1382,3 @@ ui:
|
||||
staffs: Our community staff
|
||||
reputation: reputation
|
||||
votes: votes
|
||||
|
||||
|
||||
|
||||
+13
-12
@@ -612,7 +612,8 @@ ui:
|
||||
label: Name
|
||||
msg:
|
||||
empty: Name cannot be empty.
|
||||
range: Name up to 30 characters.
|
||||
range: Name must be between 2 to 30 characters in length.
|
||||
character: 'Must use the character set "a-z", "A-Z", "0-9", " - . _"'
|
||||
email:
|
||||
label: Email
|
||||
msg:
|
||||
@@ -676,7 +677,7 @@ ui:
|
||||
caption: People can mention you as "@username".
|
||||
msg: Username cannot be empty.
|
||||
msg_range: Username up to 30 characters
|
||||
character: 'Must use the character set "a-z", "0-9", " - . _"'
|
||||
character: 'Must use the character set "a-z", "0-9", "- . _"'
|
||||
avatar:
|
||||
label: Profile Image
|
||||
gravatar: Gravatar
|
||||
@@ -708,7 +709,9 @@ ui:
|
||||
We've sent an email to that address. Please follow the confirmation instructions.
|
||||
email:
|
||||
label: Email
|
||||
msg: Email cannot be empty.
|
||||
new_email:
|
||||
label: New email
|
||||
msg: New email cannot be empty.
|
||||
password_title: Password
|
||||
current_pass:
|
||||
label: Current Password
|
||||
@@ -803,7 +806,7 @@ ui:
|
||||
more: More
|
||||
tips:
|
||||
title: Advanced Search Tips
|
||||
tag: "<1>[tag]</1> search withing a tag"
|
||||
tag: "<1>[tag]</1> search with a tag"
|
||||
user: "<1>user:username</1> search by author"
|
||||
answer: "<1>answers:0</1> unanswered questions"
|
||||
score: "<1>score:3</1> posts with a 3+ score"
|
||||
@@ -816,7 +819,7 @@ ui:
|
||||
via: Share post via...
|
||||
copied: Copied
|
||||
facebook: Share to Facebook
|
||||
twitter: Share to Twitter
|
||||
twitter: Share to X
|
||||
cannot_vote_for_self: You can't vote for your own post
|
||||
modal_confirm:
|
||||
title: Error...
|
||||
@@ -847,7 +850,7 @@ ui:
|
||||
answers: Answers
|
||||
newest: Newest
|
||||
active: Active
|
||||
frequent: Frequent
|
||||
hot: Hot
|
||||
score: Score
|
||||
unanswered: Unanswered
|
||||
modified: modified
|
||||
@@ -891,7 +894,7 @@ ui:
|
||||
x_answers: answers
|
||||
x_questions: questions
|
||||
install:
|
||||
title: Answer
|
||||
title: Installation
|
||||
next: Next
|
||||
done: Done
|
||||
config_yaml_error: Can't create the config.yaml file.
|
||||
@@ -956,7 +959,7 @@ ui:
|
||||
msg:
|
||||
empty: Email cannot be empty.
|
||||
incorrect: Email incorrect format.
|
||||
ready_title: Your Answer is Ready!
|
||||
ready_title: Your site is ready
|
||||
ready_desc: >-
|
||||
If you ever feel like changing more settings, visit <1>admin section</1>; find it in the site menu.
|
||||
good_luck: "Have fun, and good luck!"
|
||||
@@ -1004,7 +1007,7 @@ ui:
|
||||
title: Admin
|
||||
dashboard:
|
||||
title: Dashboard
|
||||
welcome: Welcome to Answer Admin!
|
||||
welcome: Welcome to Admin!
|
||||
site_statistics: Site Statistics
|
||||
questions: "Questions:"
|
||||
answers: "Answers:"
|
||||
@@ -1120,7 +1123,7 @@ ui:
|
||||
fields:
|
||||
display_name:
|
||||
label: Display Name
|
||||
msg: display_name must be at 4 - 30 characters in length.
|
||||
msg: display_name must be at 2 - 30 characters in length.
|
||||
email:
|
||||
label: Email
|
||||
msg: Email is not valid.
|
||||
@@ -1366,5 +1369,3 @@ ui:
|
||||
staffs: Our community staff
|
||||
reputation: reputation
|
||||
votes: votes
|
||||
|
||||
|
||||
|
||||
+15
-12
@@ -22,40 +22,43 @@ language_options:
|
||||
progress: 100
|
||||
- label: "Español"
|
||||
value: "es_ES"
|
||||
progress: 64
|
||||
progress: 96
|
||||
- label: "Português(BR)"
|
||||
value: "pt_BR"
|
||||
progress: 12
|
||||
progress: 96
|
||||
- label: "Português"
|
||||
value: "pt_PT"
|
||||
progress: 12
|
||||
progress: 96
|
||||
- label: "Deutsch"
|
||||
value: "de_DE"
|
||||
progress: 69
|
||||
progress: 96
|
||||
- label: "Français"
|
||||
value: "fr_FR"
|
||||
progress: 70
|
||||
progress: 96
|
||||
- label: "日本語"
|
||||
value: "ja_JP"
|
||||
progress: 12
|
||||
progress: 96
|
||||
- label: "Italiano"
|
||||
value: "it_IT"
|
||||
progress: 9
|
||||
progress: 96
|
||||
- label: "Русский"
|
||||
value: "ru_RU"
|
||||
progress: 20
|
||||
progress: 80
|
||||
- label: "简体中文"
|
||||
value: "zh_CN"
|
||||
progress: 100
|
||||
- label: "繁體中文"
|
||||
value: "zh_TW"
|
||||
progress: 64
|
||||
progress: 47
|
||||
- label: "한국어"
|
||||
value: "ko_KR"
|
||||
progress: 0
|
||||
progress: 73
|
||||
- label: "Tiếng Việt"
|
||||
value: "vi_VN"
|
||||
progress: 0
|
||||
progress: 96
|
||||
- label: "Slovak"
|
||||
value: "sk_SK"
|
||||
progress: 62
|
||||
progress: 45
|
||||
- label: "فارسی"
|
||||
value: "fa_IR"
|
||||
progress: 69
|
||||
|
||||
+730
-84
File diff suppressed because it is too large
Load Diff
+1738
-1092
File diff suppressed because it is too large
Load Diff
+1524
-877
File diff suppressed because it is too large
Load Diff
+1827
-1181
File diff suppressed because it is too large
Load Diff
+2450
File diff suppressed because it is too large
Load Diff
+15
-14
@@ -619,7 +619,8 @@ ui:
|
||||
label: Name
|
||||
msg:
|
||||
empty: Name cannot be empty.
|
||||
range: Name up to 30 characters.
|
||||
range: Name must be between 2 to 30 characters in length.
|
||||
character: 'Must use the character set "a-z", "A-Z", "0-9", " - . _"'
|
||||
email:
|
||||
label: Email
|
||||
msg:
|
||||
@@ -677,13 +678,13 @@ ui:
|
||||
display_name:
|
||||
label: Display Name
|
||||
msg: Display name cannot be empty.
|
||||
msg_range: Display name up to 30 characters.
|
||||
msg_range: Display name must be 2-30 characters in length.
|
||||
username:
|
||||
label: Username
|
||||
caption: People can mention you as "@username".
|
||||
msg: Username cannot be empty.
|
||||
msg_range: Username up to 30 characters.
|
||||
character: 'Must use the character set "a-z", "0-9", " - . _"'
|
||||
msg_range: Username must be 2-30 characters in length.
|
||||
character: 'Must use the character set "a-z", "0-9", "- . _"'
|
||||
avatar:
|
||||
label: Profile Image
|
||||
gravatar: Gravatar
|
||||
@@ -715,7 +716,9 @@ ui:
|
||||
We've sent an email to that address. Please follow the confirmation instructions.
|
||||
email:
|
||||
label: Email
|
||||
msg: Email cannot be empty.
|
||||
new_email:
|
||||
label: New email
|
||||
msg: New email cannot be empty.
|
||||
password_title: Password
|
||||
current_pass:
|
||||
label: Current Password
|
||||
@@ -811,7 +814,7 @@ ui:
|
||||
more: More
|
||||
tips:
|
||||
title: Advanced Search Tips
|
||||
tag: "<1>[tag]</1> search withing a tag"
|
||||
tag: "<1>[tag]</1> search with a tag"
|
||||
user: "<1>user:username</1> search by author"
|
||||
answer: "<1>answers:0</1> unanswered questions"
|
||||
score: "<1>score:3</1> posts with a 3+ score"
|
||||
@@ -824,7 +827,7 @@ ui:
|
||||
via: Share post via...
|
||||
copied: Copied
|
||||
facebook: Share to Facebook
|
||||
twitter: Share to Twitter
|
||||
twitter: Share to X
|
||||
cannot_vote_for_self: You can't vote for your own post
|
||||
modal_confirm:
|
||||
title: Error...
|
||||
@@ -855,7 +858,7 @@ ui:
|
||||
answers: Answers
|
||||
newest: Newest
|
||||
active: Active
|
||||
frequent: Frequent
|
||||
hot: Hot
|
||||
score: Score
|
||||
unanswered: Unanswered
|
||||
modified: modified
|
||||
@@ -899,7 +902,7 @@ ui:
|
||||
x_answers: answers
|
||||
x_questions: questions
|
||||
install:
|
||||
title: Answer
|
||||
title: Installation
|
||||
next: Next
|
||||
done: Done
|
||||
config_yaml_error: Can't create the config.yaml file.
|
||||
@@ -964,7 +967,7 @@ ui:
|
||||
msg:
|
||||
empty: Email cannot be empty.
|
||||
incorrect: Email incorrect format.
|
||||
ready_title: Your Answer is Ready!
|
||||
ready_title: Your site is ready
|
||||
ready_desc: >-
|
||||
If you ever feel like changing more settings, visit <1>admin section</1>; find it in the site menu.
|
||||
good_luck: "Have fun, and good luck!"
|
||||
@@ -1017,7 +1020,7 @@ ui:
|
||||
title: Admin
|
||||
dashboard:
|
||||
title: Dashboard
|
||||
welcome: Welcome to Answer Admin!
|
||||
welcome: Welcome to Admin!
|
||||
site_statistics: Site Statistics
|
||||
questions: "Questions:"
|
||||
answers: "Answers:"
|
||||
@@ -1133,7 +1136,7 @@ ui:
|
||||
fields:
|
||||
display_name:
|
||||
label: Display Name
|
||||
msg: Display Name must be at 4-30 characters in length.
|
||||
msg: Display name must be 2-30 characters in length.
|
||||
email:
|
||||
label: Email
|
||||
msg: Email is not valid.
|
||||
@@ -1379,5 +1382,3 @@ ui:
|
||||
staffs: Our community staff
|
||||
reputation: reputation
|
||||
votes: votes
|
||||
|
||||
|
||||
|
||||
+16
-14
@@ -619,7 +619,8 @@ ui:
|
||||
label: Name
|
||||
msg:
|
||||
empty: Name cannot be empty.
|
||||
range: Name up to 30 characters.
|
||||
range: Name must be between 2 to 30 characters in length.
|
||||
character: 'Must use the character set "a-z", "A-Z", "0-9", " - . _"'
|
||||
email:
|
||||
label: Email
|
||||
msg:
|
||||
@@ -677,13 +678,13 @@ ui:
|
||||
display_name:
|
||||
label: Display Name
|
||||
msg: Display name cannot be empty.
|
||||
msg_range: Display name up to 30 characters.
|
||||
msg_range: Display name must be 2-30 characters in length.
|
||||
username:
|
||||
label: Username
|
||||
caption: People can mention you as "@username".
|
||||
msg: Username cannot be empty.
|
||||
msg_range: Username up to 30 characters.
|
||||
character: 'Must use the character set "a-z", "0-9", " - . _"'
|
||||
msg_range: Username must be 2-30 characters in length.
|
||||
character: 'Must use the character set "a-z", "0-9", "- . _"'
|
||||
avatar:
|
||||
label: Profile Image
|
||||
gravatar: Gravatar
|
||||
@@ -715,7 +716,9 @@ ui:
|
||||
We've sent an email to that address. Please follow the confirmation instructions.
|
||||
email:
|
||||
label: Email
|
||||
msg: Email cannot be empty.
|
||||
new_email:
|
||||
label: New email
|
||||
msg: New email cannot be empty.
|
||||
password_title: Password
|
||||
current_pass:
|
||||
label: Current Password
|
||||
@@ -811,7 +814,7 @@ ui:
|
||||
more: More
|
||||
tips:
|
||||
title: Advanced Search Tips
|
||||
tag: "<1>[tag]</1> search withing a tag"
|
||||
tag: "<1>[tag]</1> search with a tag"
|
||||
user: "<1>user:username</1> search by author"
|
||||
answer: "<1>answers:0</1> unanswered questions"
|
||||
score: "<1>score:3</1> posts with a 3+ score"
|
||||
@@ -824,7 +827,7 @@ ui:
|
||||
via: Share post via...
|
||||
copied: Copied
|
||||
facebook: Share to Facebook
|
||||
twitter: Share to Twitter
|
||||
twitter: Share to X
|
||||
cannot_vote_for_self: You can't vote for your own post
|
||||
modal_confirm:
|
||||
title: Error...
|
||||
@@ -855,7 +858,8 @@ ui:
|
||||
answers: Answers
|
||||
newest: Newest
|
||||
active: Active
|
||||
frequent: Frequent
|
||||
hot: Hot
|
||||
recommend: Recommend
|
||||
score: Score
|
||||
unanswered: Unanswered
|
||||
modified: modified
|
||||
@@ -899,7 +903,7 @@ ui:
|
||||
x_answers: answers
|
||||
x_questions: questions
|
||||
install:
|
||||
title: Answer
|
||||
title: Installation
|
||||
next: Next
|
||||
done: Done
|
||||
config_yaml_error: Can't create the config.yaml file.
|
||||
@@ -964,7 +968,7 @@ ui:
|
||||
msg:
|
||||
empty: Email cannot be empty.
|
||||
incorrect: Email incorrect format.
|
||||
ready_title: Your Answer is Ready!
|
||||
ready_title: Your site is ready
|
||||
ready_desc: >-
|
||||
If you ever feel like changing more settings, visit <1>admin section</1>; find it in the site menu.
|
||||
good_luck: "Have fun, and good luck!"
|
||||
@@ -1017,7 +1021,7 @@ ui:
|
||||
title: Admin
|
||||
dashboard:
|
||||
title: Dashboard
|
||||
welcome: Welcome to Answer Admin!
|
||||
welcome: Welcome to Admin!
|
||||
site_statistics: Site Statistics
|
||||
questions: "Questions:"
|
||||
answers: "Answers:"
|
||||
@@ -1133,7 +1137,7 @@ ui:
|
||||
fields:
|
||||
display_name:
|
||||
label: Display Name
|
||||
msg: Display Name must be at 4-30 characters in length.
|
||||
msg: Display name must be 2-30 characters in length.
|
||||
email:
|
||||
label: Email
|
||||
msg: Email is not valid.
|
||||
@@ -1379,5 +1383,3 @@ ui:
|
||||
staffs: Our community staff
|
||||
reputation: reputation
|
||||
votes: votes
|
||||
|
||||
|
||||
|
||||
+731
-85
File diff suppressed because it is too large
Load Diff
+130
-132
@@ -288,7 +288,7 @@ ui:
|
||||
change_email: Modificar e-mail
|
||||
install: Instalação do Resposta
|
||||
upgrade: Atualização do Resposta
|
||||
maintenance: Manutençã do Website
|
||||
maintenance: Manutenção do Website
|
||||
users: Usuários
|
||||
notifications:
|
||||
title: Notificações
|
||||
@@ -327,7 +327,7 @@ ui:
|
||||
empty: Código não pode ser vazio.
|
||||
language:
|
||||
label: Idioma (opcional)
|
||||
placeholder: Tetecção automática
|
||||
placeholder: Detecção automática
|
||||
btn_cancel: Cancelar
|
||||
btn_confirm: Adicionar
|
||||
formula:
|
||||
@@ -351,7 +351,7 @@ ui:
|
||||
image:
|
||||
text: Imagem
|
||||
add_image: Adicionar imagem
|
||||
tab_image: Enviar image,
|
||||
tab_image: Enviar imagem
|
||||
form_image:
|
||||
fields:
|
||||
file:
|
||||
@@ -380,7 +380,7 @@ ui:
|
||||
outdent:
|
||||
text: Não identado
|
||||
italic:
|
||||
text: Emphase
|
||||
text: Ênfase
|
||||
link:
|
||||
text: Superlink (Hyperlink)
|
||||
add_link: Adicionar superlink (hyperlink)
|
||||
@@ -537,7 +537,7 @@ ui:
|
||||
title: Adicionar Pergunta
|
||||
edit_title: Editar Pergunta
|
||||
default_reason: Editar pergunta
|
||||
similar_questions: Similar perguntas
|
||||
similar_questions: Perguntas similares
|
||||
form:
|
||||
fields:
|
||||
revision:
|
||||
@@ -564,10 +564,10 @@ ui:
|
||||
label: Resumo da edição
|
||||
placeholder: >-
|
||||
Explique resumidamente suas alterações (ortografia corrigida, gramática corrigida, formatação aprimorada)
|
||||
btn_post_question: Publicação a sua pergunta
|
||||
btn_post_question: Publicar a sua pergunta
|
||||
btn_save_edits: Salvar edições
|
||||
answer_question: Responda a sua própria pergunta
|
||||
post_question&answer: Publicação a sua pergunta e resposta
|
||||
post_question&answer: Publicar a sua pergunta e resposta
|
||||
tag_selector:
|
||||
add_btn: Adicionar marcador
|
||||
create_btn: Criar novo marcador
|
||||
@@ -589,7 +589,7 @@ ui:
|
||||
placeholder: Procurar
|
||||
footer:
|
||||
build_on: >-
|
||||
Built on <1> Answer </1>- the open-source software that powers Q&A communities.<br />Made with love © {{cc}}.
|
||||
Desenvolvido com base no <1> Answer </1> — o software de código aberto que alimenta comunidades de perguntas e respostas.<br />Feito com amor © {{cc}}.
|
||||
upload_img:
|
||||
name: Mudar
|
||||
loading: carregando...
|
||||
@@ -604,13 +604,13 @@ ui:
|
||||
info: "Se não chegar, verifique sua pasta de spam."
|
||||
another: >-
|
||||
Enviamos outro e-mail de ativação para você em <bold>{{mail}}</bold>. Pode levar alguns minutos para chegar; certifique-se de verificar sua pasta de spam.
|
||||
btn_name: Resend activation email
|
||||
btn_name: Reenviar e-mail de ativação
|
||||
change_btn_name: Mudar email
|
||||
msg:
|
||||
empty: Não pode ser vazio.
|
||||
login:
|
||||
page_title: Bem vindo ao {{site_name}}
|
||||
login_to_continue: Entre para continue
|
||||
login_to_continue: Entre para continuar
|
||||
info_sign: Não possui uma conta? <1>Cadastrar-se</1>
|
||||
info_login: Já possui uma conta? <1>Entre</1>
|
||||
agreements: Ao se registrar, você concorda com as <1>políticas de privacidades</1> e os <3>termos de serviços</3>.
|
||||
@@ -683,7 +683,7 @@ ui:
|
||||
caption: As pessoas poderão mensionar você com "@usuário".
|
||||
msg: Nome de usuário não pode ser vazio.
|
||||
msg_range: Nome de usuário até 30 caracteres.
|
||||
character: 'Deve usar o conjunto de caracteres "a-z", "0-9", " - . _"'
|
||||
character: 'Deve usar o conjunto de caracteres "a-z", "0-9", "- . _"'
|
||||
avatar:
|
||||
label: Perfil Imagem
|
||||
gravatar: Gravatar
|
||||
@@ -776,9 +776,9 @@ ui:
|
||||
delete:
|
||||
title: Excluir esta postagem
|
||||
question: >-
|
||||
Nós não recomendamos <strong>excluindo perguntas com respostas</strong> porque isso priva os futuros leitores desse conhecimento.</p><p>Repeated deletion of answered questions can result in a sua account being blocked from asking. Você tem certeza que deseja deletar?
|
||||
Nós não recomendamos <strong> excluir perguntas com respostas</strong> porque isso priva os futuros leitores desse conhecimento.</p><p>A exclusão repetida de perguntas respondidas pode resultar no bloqueio de perguntas de sua conta. Você tem certeza que deseja excluir?
|
||||
answer_accepted: >-
|
||||
<p>Nós não recomendamos <strong>deleting accepted answer</strong> porque isso priva os futuros leitores desse conhecimento. </p> Repeated deletion of accepted answers can result in a sua account being blocked from answering. Você tem certeza que deseja deletar?
|
||||
<p>Não recomendamos <strong>excluir resposta aceita</strong> porque isso priva os futuros leitores desse conhecimento. </p> A exclusão repetida de respostas aceitas pode resultar no bloqueio de respostas de uma conta sua. Você tem certeza que deseja excluir?
|
||||
other: Você tem certeza que deseja deletar?
|
||||
tip_question_deleted: Esta postagem foi deletada
|
||||
tip_answer_deleted: Esta resposta foi deletada
|
||||
@@ -824,7 +824,7 @@ ui:
|
||||
via: Compartilhar postagem via...
|
||||
copied: Copiado
|
||||
facebook: Compartilhar no Facebook
|
||||
twitter: Compartilhar no Twitter
|
||||
twitter: Compartilhar no X
|
||||
cannot_vote_for_self: Você não pode votar na sua própria postagem
|
||||
modal_confirm:
|
||||
title: Erro...
|
||||
@@ -834,7 +834,7 @@ ui:
|
||||
link: Continuar para a página inicial.
|
||||
invalid: >-
|
||||
Desculpe, este link de confirmação não é mais válido. Talvez a sua já está ativa.
|
||||
confirm_new_email: Your email has been updated.
|
||||
confirm_new_email: Seu e-mail foi atualizado.
|
||||
confirm_new_email_invalid: >-
|
||||
Desculpe, este link de confirmação não é mais válido. Talvez o seu e-mail já tenha sido alterado.
|
||||
unsubscribe:
|
||||
@@ -846,7 +846,7 @@ ui:
|
||||
following_tags: Seguindo Marcadores
|
||||
edit: Editar
|
||||
save: Salvar
|
||||
follow_tag_tip: Seguir tags to curate a sua lista de perguntas.
|
||||
follow_tag_tip: Siga as tags para selecionar sua lista de perguntas.
|
||||
hot_questions: Perguntas quentes
|
||||
all_questions: Todas Perguntas
|
||||
x_questions: "{{ count }} perguntas"
|
||||
@@ -855,7 +855,7 @@ ui:
|
||||
answers: Respostas
|
||||
newest: Mais recente
|
||||
active: Ativo
|
||||
frequent: Frequente
|
||||
hot: Hot
|
||||
score: Pontuação
|
||||
unanswered: Não Respondido
|
||||
modified: modificado
|
||||
@@ -878,7 +878,7 @@ ui:
|
||||
score: Pontuação
|
||||
edit_profile: Editar Perfil
|
||||
visited_x_days: "Visitado {{ count }} dias"
|
||||
viewed: Viewed
|
||||
viewed: Visualizado
|
||||
joined: Ingressou
|
||||
last_login: Visto
|
||||
about_me: Sobre mim
|
||||
@@ -899,14 +899,14 @@ ui:
|
||||
x_answers: respostas
|
||||
x_questions: perguntas
|
||||
install:
|
||||
title: Resposta
|
||||
next: Proximo
|
||||
title: Instalação
|
||||
next: Próximo
|
||||
done: Completo
|
||||
config_yaml_error: Não é possível criar o arquivo config.yaml.
|
||||
lang:
|
||||
label: Por favor Escolha um Idioma
|
||||
db_type:
|
||||
label: Database Engine
|
||||
label: Mecanismo de banco de dados
|
||||
db_username:
|
||||
label: Nome de usuário
|
||||
placeholder: root
|
||||
@@ -916,68 +916,68 @@ ui:
|
||||
placeholder: root
|
||||
msg: Senha não pode ser vazio.
|
||||
db_host:
|
||||
label: Database Host
|
||||
label: Host do banco de dados
|
||||
placeholder: "db:3306"
|
||||
msg: Database Host não pode ser vazio.
|
||||
msg: Host de banco de dados não pode ficar vazio.
|
||||
db_name:
|
||||
label: Database Nome
|
||||
label: Nome do banco de dados
|
||||
placeholder: answer
|
||||
msg: Database Nome não pode ser vazio.
|
||||
msg: O nome do banco de dados não pode ficar vazio.
|
||||
db_file:
|
||||
label: Database File
|
||||
label: Arquivo de banco de dados
|
||||
placeholder: /data/answer.db
|
||||
msg: Database File não pode ser vazio.
|
||||
msg: O arquivo de banco de dados não pode ficar vazio.
|
||||
config_yaml:
|
||||
title: Create config.yaml
|
||||
label: The config.yaml file created.
|
||||
title: Criar config.yaml
|
||||
label: O arquivo config.yaml foi criado.
|
||||
desc: >-
|
||||
You can create the <1>config.yaml</1> file manually in the <1>/var/wwww/xxx/</1> directory and paste the following text into it.
|
||||
info: After you've done that, click "Next" button.
|
||||
site_information: Site Information
|
||||
Você pode criar o arquivo <1>config.yaml</1> manualmente no diretório <1>/var/www/xxx/</1> e colar o seguinte texto nele.
|
||||
info: Depois de fazer isso, clique no botão "Avançar".
|
||||
site_information: Informações do site
|
||||
admin_account: Administrador Conta
|
||||
site_name:
|
||||
label: Site Nome
|
||||
msg: Site Nome não pode ser vazio.
|
||||
site_url:
|
||||
label: Site URL
|
||||
text: The address of a sua site.
|
||||
text: O endereço do seu site.
|
||||
msg:
|
||||
empty: Site URL não pode ser vazio.
|
||||
incorrect: Site URL incorrect format.
|
||||
incorrect: Formato incorreto da URL do site.
|
||||
contact_email:
|
||||
label: E-mail par contato
|
||||
text: Email address of key contact responsible for this site.
|
||||
label: E-mail para contato
|
||||
text: Endereço de e-mail do contato principal responsável por este site.
|
||||
msg:
|
||||
empty: E-mail par contato não pode ser vazio.
|
||||
incorrect: E-mail par contato incorrect format.
|
||||
empty: E-mail para contato não pode ser vazio.
|
||||
incorrect: E-mail para contato em formato incorreto.
|
||||
admin_name:
|
||||
label: Nome
|
||||
msg: Nome não pode ser vazio.
|
||||
admin_password:
|
||||
label: Senha
|
||||
text: >-
|
||||
You will need this password to log in. Por favor store it in a secure location.
|
||||
msg: Senha não pode ser vazio.
|
||||
Você precisará dessa senha para efetuar login. Por favor, guarde-a em um local seguro.
|
||||
msg: Senha não pode ser vazia.
|
||||
admin_email:
|
||||
label: Email
|
||||
text: You will need this email to log in.
|
||||
text: Você precisará deste e-mail para fazer login.
|
||||
msg:
|
||||
empty: Email não pode ser vazio.
|
||||
incorrect: Email incorrect format.
|
||||
ready_title: Your Resposta is Ready!
|
||||
incorrect: Formato de e-mail incorreto.
|
||||
ready_title: Sua resposta está pronta!
|
||||
ready_desc: >-
|
||||
If you ever feel like changing more settings, visit <1>admin section</1>; find it in the site menu.
|
||||
good_luck: "Have fun, and good luck!"
|
||||
warn_title: Warning
|
||||
Se você quiser alterar mais configurações, visite a <1>seção de administração</1>; encontre-a no menu do site.
|
||||
good_luck: "Divirta-se e boa sorte!"
|
||||
warn_title: Aviso
|
||||
warn_desc: >-
|
||||
The file <1>config.yaml</1> already exists. If you need to reset any of the configuration items in this file, please delete it first.
|
||||
install_now: You may try <1>installing now</1>.
|
||||
installed: Already installed
|
||||
O arquivo <1>config.yaml</1> já existe. Se precisar redefinir algum item de configuração neste arquivo, exclua-o primeiro.
|
||||
install_now: Você pode tentar <1>instalar agora</1>.
|
||||
installed: Já instalado
|
||||
installed_desc: >-
|
||||
You appear to have already installed. To reinstall please clear a sua old database tables first.
|
||||
db_failed: Database connection failed
|
||||
Parece que você já instalou. Para reinstalar, limpe primeiro as tabelas antigas do seu banco de dados.
|
||||
db_failed: Falha na conexão do banco de dados
|
||||
db_failed_desc: >-
|
||||
This either means that the database information in a sua <1>config.yaml</1> file is incorrect or that contact with the database server could not be established. This could mean a sua host's database server is down.
|
||||
Isso significa que as informações do banco de dados em um arquivo <1>config.yaml</1> do SUA estão incorretas ou que o contato com o servidor do banco de dados não pôde ser estabelecido. Isso pode significar que o servidor de banco de dados de um host SUA está inativo.
|
||||
counts:
|
||||
views: visualizações
|
||||
Votos: votos
|
||||
@@ -987,7 +987,7 @@ ui:
|
||||
desc: "Infelizmente, esta postagem não existe mais."
|
||||
back_home: Voltar para a página inicial
|
||||
page_50X:
|
||||
desc: O servidor encontrou um erro e não pôde concluir uma solicitação sua.
|
||||
desc: O servidor encontrou um erro e não pôde concluir sua solicitação.
|
||||
back_home: Voltar para a página inicial
|
||||
page_maintenance:
|
||||
desc: "Estamos em manutenção, voltaremos em breve."
|
||||
@@ -1017,7 +1017,7 @@ ui:
|
||||
title: Administrador
|
||||
dashboard:
|
||||
title: Painel
|
||||
welcome: Bem vindo ao Answer Administrador!
|
||||
welcome: Bem vindo ao Administrador!
|
||||
site_statistics: Estatísticas do Site
|
||||
questions: "Perguntas:"
|
||||
answers: "Respostas:"
|
||||
@@ -1037,7 +1037,7 @@ ui:
|
||||
answer_links: Links das Respostas
|
||||
documents: Documentos
|
||||
feedback: Opinião
|
||||
support: Supporte
|
||||
support: Suporte
|
||||
review: Revisar
|
||||
config: Configurações
|
||||
update_to: Atualizar ao
|
||||
@@ -1133,7 +1133,7 @@ ui:
|
||||
fields:
|
||||
display_name:
|
||||
label: Nome de exibição
|
||||
msg: Nome de exibição deve ser 4-30 caracteres em comprimento.
|
||||
msg: Nome de exibição deve ser 2-30 caracteres em comprimento.
|
||||
email:
|
||||
label: Email
|
||||
msg: Email não é válido.
|
||||
@@ -1233,7 +1233,7 @@ ui:
|
||||
smtp_port:
|
||||
label: SMTP Port
|
||||
msg: SMTP port must be number 1 ~ 65535.
|
||||
text: The port to a sua mail server.
|
||||
text: A porta para seu servidor de e-mail.
|
||||
smtp_username:
|
||||
label: SMTP Nome de usuário
|
||||
msg: SMTP username não pode ser vazio.
|
||||
@@ -1241,9 +1241,9 @@ ui:
|
||||
label: SMTP Senha
|
||||
msg: SMTP password não pode ser vazio.
|
||||
test_email_recipient:
|
||||
label: Test Email Recipients
|
||||
text: Provide email address that will receive test sends.
|
||||
msg: Test email recipients is invalid
|
||||
label: Destinatários de e-mail de teste
|
||||
text: Forneça o endereço de e-mail que receberá os envios de testes.
|
||||
msg: Os destinatários do e-mail de teste são inválidos
|
||||
smtp_authentication:
|
||||
label: Enable authentication
|
||||
title: SMTP Authentication
|
||||
@@ -1255,129 +1255,127 @@ ui:
|
||||
logo:
|
||||
label: Logo (opcional)
|
||||
msg: Logo não pode ser vazio.
|
||||
text: The logo image at the top left of a sua site. Use a wide rectangular image with a height of 56 and an aspect ratio greater than 3:1. If left blank, the site title text will be shown.
|
||||
text: A imagem do logotipo no canto superior esquerdo do seu site. Use uma imagem retangular larga com altura de 56 e proporção maior que 3:1. Se deixada em branco, o texto do título do site será exibido.
|
||||
mobile_logo:
|
||||
label: Mobile Logo (opcional)
|
||||
text: The logo used on mobile version of a sua site. Use a wide rectangular image with a height of 56. If left blank, the image from the "logo" setting will be used.
|
||||
text: O logotipo usado na versão mobile do seu site. Use uma imagem retangular larga com altura de 56. Se deixado em branco, a imagem da configuração "logotipo" será usada.
|
||||
square_icon:
|
||||
label: Square Icon (opcional)
|
||||
msg: Square icon não pode ser vazio.
|
||||
text: Imagem used as the base for metadata icons. Should ideally be larger than 512x512.
|
||||
text: Imagem usada como base para ícones de metadados. Idealmente, deve ser maior que 512x512.
|
||||
favicon:
|
||||
label: Favicon (opcional)
|
||||
text: A favicon for a sua site. To work correctly over a CDN it must be a png. Will be resized to 32x32. If left blank, "square icon" will be used.
|
||||
text: Um favicon para o seu site. Para funcionar corretamente em uma CDN, ele deve ser um png. Será redimensionado para 32x32. Se deixado em branco, o "ícone quadrado" será usado.
|
||||
legal:
|
||||
page_title: Legal
|
||||
terms_of_service:
|
||||
label: Terms of Service
|
||||
text: "You can add terms of service content here. If you already have a document hosted elsewhere, provide the full URL here."
|
||||
label: Termos de Serviço
|
||||
text: "Você pode adicionar conteúdo dos termos de serviço aqui. Se você já possui um documento hospedado em outro lugar, informe o URL completo aqui."
|
||||
privacy_policy:
|
||||
label: Privacy Policy
|
||||
text: "You can add privacy policy content here. If you already have a document hosted elsewhere, provide the full URL here."
|
||||
label: Política de Privacidade
|
||||
text: "Você pode adicionar o conteúdo da política de privacidade aqui. Se você já possui um documento hospedado em outro lugar, informe o URL completo aqui."
|
||||
write:
|
||||
page_title: Write
|
||||
page_title: Escrever
|
||||
recommend_tags:
|
||||
label: Recommend Marcadores
|
||||
text: "Por favor input tag slug above, one tag per line."
|
||||
label: Recomendar Marcadores
|
||||
text: "Por favor, insira o slug da tag acima, uma tag por linha."
|
||||
required_tag:
|
||||
title: Required Tag
|
||||
label: Set recommend tag as requirido
|
||||
text: "Every new question must have ao menos one recommend tag."
|
||||
title: Tag necessária
|
||||
label: Definir tag recomendada como necessária
|
||||
text: "Cada nova pergunta deve ter pelo menos uma tag de recomendação."
|
||||
reserved_tags:
|
||||
label: Reserved Marcadores
|
||||
text: "Reserved tags can only be added to a post by moderator."
|
||||
label: Marcadores Reservados
|
||||
text: "Tags reservadas só podem ser adicionadas a uma postagem pelo moderador."
|
||||
seo:
|
||||
page_title: SEO
|
||||
permalink:
|
||||
label: Permalink
|
||||
text: Custom URL structures can improve the usability, and forward-compatibility of a sua links.
|
||||
text: Estruturas de URL personalizadas podem melhorar a usabilidade e a compatibilidade futura de seus links.
|
||||
robots:
|
||||
label: robots.txt
|
||||
text: This will permanently override any related site settings.
|
||||
text: Isso substituirá permanentemente todas as configurações relacionadas do site.
|
||||
Temas:
|
||||
page_title: Temas
|
||||
Temas:
|
||||
label: Temas
|
||||
text: Select an existing Tema.
|
||||
text: Selecione um tema existente.
|
||||
navbar_style:
|
||||
label: Navbar Style
|
||||
text: Select an existing Tema.
|
||||
label: Estilo da barra de navegação
|
||||
text: Selecione um tema existente.
|
||||
primary_color:
|
||||
label: Primary Color
|
||||
text: Modify the colors used by a sua Temas
|
||||
label: Cor primária
|
||||
text: Modifique as cores usadas por seus Temas
|
||||
css_and_html:
|
||||
page_title: CSS and HTML
|
||||
page_title: CSS e HTML
|
||||
custom_css:
|
||||
label: Custom CSS
|
||||
text: This will insert as <link>
|
||||
text: Isto será inserido como <link>
|
||||
head:
|
||||
label: Head
|
||||
text: This will insert before </head>
|
||||
text: Isto será inserido antes de </head>
|
||||
header:
|
||||
label: Header
|
||||
text: This will insert after <body>
|
||||
text: Isto será inserido após <body>
|
||||
footer:
|
||||
label: Footer
|
||||
text: This will insert before </html>.
|
||||
text: Isso será inserido antes de </html>.
|
||||
login:
|
||||
page_title: Login
|
||||
membership:
|
||||
title: Membership
|
||||
label: Allow new registrations
|
||||
text: Turn off to prevent anyone from creating a new account.
|
||||
title: Associação
|
||||
label: Permitir novos registros
|
||||
text: Desative para impedir que alguém crie uma nova conta.
|
||||
private:
|
||||
title: Private
|
||||
title: Privado
|
||||
label: Login requirido
|
||||
text: Only logged in users can access this community.
|
||||
text: Somente usuários logados podem acessar esta comunidade.
|
||||
form:
|
||||
empty: não pode ser vazio
|
||||
invalid: is invalid
|
||||
invalid: é inválido
|
||||
btn_submit: Salvar
|
||||
not_found_props: "Required property {{ key }} not found."
|
||||
not_found_props: "Propriedade necessária {{ key }} não encontrada."
|
||||
page_review:
|
||||
review: Revisar
|
||||
proposed: proposed
|
||||
question_edit: Pergunta edit
|
||||
answer_edit: Resposta edit
|
||||
tag_edit: Tag edit
|
||||
edit_summary: Editar summary
|
||||
edit_question: Editar question
|
||||
edit_answer: Editar answer
|
||||
proposed: proposta
|
||||
question_edit: Editar Pergunta
|
||||
answer_edit: Editar Resposta
|
||||
tag_edit: Editar Tag
|
||||
edit_summary: Editar resumo
|
||||
edit_question: Editar pergunta
|
||||
edit_answer: Editar resposta
|
||||
edit_tag: Editar tag
|
||||
empty: No review tasks left.
|
||||
empty: Não há mais tarefas de revisão.
|
||||
timeline:
|
||||
undeleted: undeleted
|
||||
deleted: deleted
|
||||
downvote: downvote
|
||||
upvote: upvote
|
||||
accept: accept
|
||||
cancelled: cancelled
|
||||
commented: commented
|
||||
undeleted: não excluído
|
||||
deleted: apagado
|
||||
downvote: voto negativo
|
||||
upvote: voto positivo
|
||||
accept: aceitar
|
||||
cancelled: cancelado
|
||||
commented: comentado
|
||||
rollback: rollback
|
||||
edited: edited
|
||||
answered: answered
|
||||
asked: asked
|
||||
closed: closed
|
||||
reopened: reopened
|
||||
created: created
|
||||
title: "Histórico for"
|
||||
tag_title: "Timeline for"
|
||||
show_Votos: "Show Votos"
|
||||
edited: editado
|
||||
answered: respondido
|
||||
asked: perguntado
|
||||
closed: fechado
|
||||
reopened: reaberto
|
||||
created: criado
|
||||
title: "Histórico para"
|
||||
tag_title: "Linha do tempo para"
|
||||
show_Votos: "Mostrar votos"
|
||||
n_or_a: N/A
|
||||
title_for_question: "Timeline for"
|
||||
title_for_answer: "Timeline for answer to {{ title }} by {{ author }}"
|
||||
title_for_tag: "Timeline for tag"
|
||||
title_for_question: "Linha do tempo para"
|
||||
title_for_answer: "Linha do tempo para resposta a {{ title }} por {{ author }}"
|
||||
title_for_tag: "Linha do tempo para tag"
|
||||
datetime: Datetime
|
||||
type: Type
|
||||
by: By
|
||||
comment: Comment
|
||||
no_data: "We couldn't find anything."
|
||||
type: Tipo
|
||||
by: Por
|
||||
comment: Comentário
|
||||
no_data: "Não conseguimos encontrar nada."
|
||||
users:
|
||||
title: Usuários
|
||||
users_with_the_most_reputation: Usuários with the highest reputation scores
|
||||
users_with_the_most_vote: Usuários who voted the most
|
||||
staffs: Our community staff
|
||||
reputation: reputation
|
||||
users_with_the_most_reputation: Usuários com as maiores pontuações de reputação
|
||||
users_with_the_most_vote: Usuários que mais votaram
|
||||
staffs: Nossa equipe comunitária
|
||||
reputation: reputação
|
||||
Votos: Votos
|
||||
|
||||
|
||||
|
||||
+776
-130
File diff suppressed because it is too large
Load Diff
+723
-77
File diff suppressed because it is too large
Load Diff
+952
-306
File diff suppressed because it is too large
Load Diff
+703
-57
File diff suppressed because it is too large
Load Diff
+13
-12
@@ -612,7 +612,8 @@ ui:
|
||||
label: Name
|
||||
msg:
|
||||
empty: Name cannot be empty.
|
||||
range: Name up to 30 characters.
|
||||
range: Name must be between 2 to 30 characters in length.
|
||||
character: 'Must use the character set "a-z", "A-Z", "0-9", " - . _"'
|
||||
email:
|
||||
label: Email
|
||||
msg:
|
||||
@@ -676,7 +677,7 @@ ui:
|
||||
caption: People can mention you as "@username".
|
||||
msg: Username cannot be empty.
|
||||
msg_range: Username up to 30 characters
|
||||
character: 'Must use the character set "a-z", "0-9", " - . _"'
|
||||
character: 'Must use the character set "a-z", "0-9", "- . _"'
|
||||
avatar:
|
||||
label: Profile Image
|
||||
gravatar: Gravatar
|
||||
@@ -708,7 +709,9 @@ ui:
|
||||
We've sent an email to that address. Please follow the confirmation instructions.
|
||||
email:
|
||||
label: Email
|
||||
msg: Email cannot be empty.
|
||||
new_email:
|
||||
label: New email
|
||||
msg: New email cannot be empty.
|
||||
password_title: Password
|
||||
current_pass:
|
||||
label: Current Password
|
||||
@@ -803,7 +806,7 @@ ui:
|
||||
more: More
|
||||
tips:
|
||||
title: Advanced Search Tips
|
||||
tag: "<1>[tag]</1> search withing a tag"
|
||||
tag: "<1>[tag]</1> search with a tag"
|
||||
user: "<1>user:username</1> search by author"
|
||||
answer: "<1>answers:0</1> unanswered questions"
|
||||
score: "<1>score:3</1> posts with a 3+ score"
|
||||
@@ -816,7 +819,7 @@ ui:
|
||||
via: Share post via...
|
||||
copied: Copied
|
||||
facebook: Share to Facebook
|
||||
twitter: Share to Twitter
|
||||
twitter: Share to X
|
||||
cannot_vote_for_self: You can't vote for your own post
|
||||
modal_confirm:
|
||||
title: Error...
|
||||
@@ -847,7 +850,7 @@ ui:
|
||||
answers: Answers
|
||||
newest: Newest
|
||||
active: Active
|
||||
frequent: Frequent
|
||||
hot: Hot
|
||||
score: Score
|
||||
unanswered: Unanswered
|
||||
modified: modified
|
||||
@@ -891,7 +894,7 @@ ui:
|
||||
x_answers: answers
|
||||
x_questions: questions
|
||||
install:
|
||||
title: Answer
|
||||
title: Installation
|
||||
next: Next
|
||||
done: Done
|
||||
config_yaml_error: Can't create the config.yaml file.
|
||||
@@ -956,7 +959,7 @@ ui:
|
||||
msg:
|
||||
empty: Email cannot be empty.
|
||||
incorrect: Email incorrect format.
|
||||
ready_title: Your Answer is Ready!
|
||||
ready_title: Your site is ready
|
||||
ready_desc: >-
|
||||
If you ever feel like changing more settings, visit <1>admin section</1>; find it in the site menu.
|
||||
good_luck: "Have fun, and good luck!"
|
||||
@@ -1004,7 +1007,7 @@ ui:
|
||||
title: Admin
|
||||
dashboard:
|
||||
title: Dashboard
|
||||
welcome: Welcome to Answer Admin!
|
||||
welcome: Welcome to Admin!
|
||||
site_statistics: Site Statistics
|
||||
questions: "Questions:"
|
||||
answers: "Answers:"
|
||||
@@ -1120,7 +1123,7 @@ ui:
|
||||
fields:
|
||||
display_name:
|
||||
label: Display Name
|
||||
msg: display_name must be at 4 - 30 characters in length.
|
||||
msg: display_name must be at 2 - 30 characters in length.
|
||||
email:
|
||||
label: Email
|
||||
msg: Email is not valid.
|
||||
@@ -1366,5 +1369,3 @@ ui:
|
||||
staffs: Our community staff
|
||||
reputation: reputation
|
||||
votes: votes
|
||||
|
||||
|
||||
|
||||
+15
-14
@@ -619,7 +619,8 @@ ui:
|
||||
label: Name
|
||||
msg:
|
||||
empty: Name cannot be empty.
|
||||
range: Name up to 30 characters.
|
||||
range: Name must be between 2 to 30 characters in length.
|
||||
character: 'Must use the character set "a-z", "A-Z", "0-9", " - . _"'
|
||||
email:
|
||||
label: Email
|
||||
msg:
|
||||
@@ -677,13 +678,13 @@ ui:
|
||||
display_name:
|
||||
label: Display Name
|
||||
msg: Display name cannot be empty.
|
||||
msg_range: Display name up to 30 characters.
|
||||
msg_range: Display name must be 2-30 characters in length.
|
||||
username:
|
||||
label: Username
|
||||
caption: People can mention you as "@username".
|
||||
msg: Username cannot be empty.
|
||||
msg_range: Username up to 30 characters.
|
||||
character: 'Must use the character set "a-z", "0-9", " - . _"'
|
||||
msg_range: Username must be 2-30 characters in length.
|
||||
character: 'Must use the character set "a-z", "0-9", "- . _"'
|
||||
avatar:
|
||||
label: Profile Image
|
||||
gravatar: Gravatar
|
||||
@@ -715,7 +716,9 @@ ui:
|
||||
We've sent an email to that address. Please follow the confirmation instructions.
|
||||
email:
|
||||
label: Email
|
||||
msg: Email cannot be empty.
|
||||
new_email:
|
||||
label: New email
|
||||
msg: New email cannot be empty.
|
||||
password_title: Password
|
||||
current_pass:
|
||||
label: Current Password
|
||||
@@ -811,7 +814,7 @@ ui:
|
||||
more: More
|
||||
tips:
|
||||
title: Advanced Search Tips
|
||||
tag: "<1>[tag]</1> search withing a tag"
|
||||
tag: "<1>[tag]</1> search with a tag"
|
||||
user: "<1>user:username</1> search by author"
|
||||
answer: "<1>answers:0</1> unanswered questions"
|
||||
score: "<1>score:3</1> posts with a 3+ score"
|
||||
@@ -824,7 +827,7 @@ ui:
|
||||
via: Share post via...
|
||||
copied: Copied
|
||||
facebook: Share to Facebook
|
||||
twitter: Share to Twitter
|
||||
twitter: Share to X
|
||||
cannot_vote_for_self: You can't vote for your own post
|
||||
modal_confirm:
|
||||
title: Error...
|
||||
@@ -855,7 +858,7 @@ ui:
|
||||
answers: Answers
|
||||
newest: Newest
|
||||
active: Active
|
||||
frequent: Frequent
|
||||
hot: Hot
|
||||
score: Score
|
||||
unanswered: Unanswered
|
||||
modified: modified
|
||||
@@ -899,7 +902,7 @@ ui:
|
||||
x_answers: answers
|
||||
x_questions: questions
|
||||
install:
|
||||
title: Answer
|
||||
title: Installation
|
||||
next: Next
|
||||
done: Done
|
||||
config_yaml_error: Can't create the config.yaml file.
|
||||
@@ -964,7 +967,7 @@ ui:
|
||||
msg:
|
||||
empty: Email cannot be empty.
|
||||
incorrect: Email incorrect format.
|
||||
ready_title: Your Answer is Ready!
|
||||
ready_title: Your site is ready
|
||||
ready_desc: >-
|
||||
If you ever feel like changing more settings, visit <1>admin section</1>; find it in the site menu.
|
||||
good_luck: "Have fun, and good luck!"
|
||||
@@ -1017,7 +1020,7 @@ ui:
|
||||
title: Admin
|
||||
dashboard:
|
||||
title: Dashboard
|
||||
welcome: Welcome to Answer Admin!
|
||||
welcome: Welcome to Admin!
|
||||
site_statistics: Site Statistics
|
||||
questions: "Questions:"
|
||||
answers: "Answers:"
|
||||
@@ -1133,7 +1136,7 @@ ui:
|
||||
fields:
|
||||
display_name:
|
||||
label: Display Name
|
||||
msg: Display Name must be at 4-30 characters in length.
|
||||
msg: Display name must be 2-30 characters in length.
|
||||
email:
|
||||
label: Email
|
||||
msg: Email is not valid.
|
||||
@@ -1379,5 +1382,3 @@ ui:
|
||||
staffs: Our community staff
|
||||
reputation: reputation
|
||||
votes: votes
|
||||
|
||||
|
||||
|
||||
+807
-161
File diff suppressed because it is too large
Load Diff
+2450
File diff suppressed because it is too large
Load Diff
+1792
-1146
File diff suppressed because it is too large
Load Diff
+1880
-1234
File diff suppressed because it is too large
Load Diff
+1846
-1200
File diff suppressed because it is too large
Load Diff
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user