From 1ee879a5ad095d23e844c1f849729705ede2c720 Mon Sep 17 00:00:00 2001 From: Soapbox Bot Date: Fri, 20 Oct 2023 00:07:16 +0000 Subject: [PATCH 01/23] Update Node.js to v21 --- .gitlab-ci.yml | 2 +- Dockerfile | 2 +- Dockerfile.dev | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index dbc2c6b3a..a70cded64 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -1,4 +1,4 @@ -image: node:20 +image: node:21 variables: NODE_ENV: test diff --git a/Dockerfile b/Dockerfile index 2765f2053..fa790e7ad 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,4 @@ -FROM node:20 as build +FROM node:21 as build WORKDIR /app COPY package.json . COPY yarn.lock . diff --git a/Dockerfile.dev b/Dockerfile.dev index 1e6056945..bb15e6d86 100644 --- a/Dockerfile.dev +++ b/Dockerfile.dev @@ -1,4 +1,4 @@ -FROM node:20 +FROM node:21 RUN apt-get update &&\ apt-get install -y inotify-tools &&\ From dd9a4dc6c4c024175d3a3dd7e32c5ef6f66e0fe3 Mon Sep 17 00:00:00 2001 From: Soapbox Bot Date: Fri, 27 Oct 2023 03:05:20 +0000 Subject: [PATCH 02/23] Update docker Docker tag to v24.0.7 --- .gitlab-ci.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index dbc2c6b3a..87389f7c4 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -111,9 +111,9 @@ pages: docker: stage: deploy - image: docker:24.0.6 + image: docker:24.0.7 services: - - docker:24.0.6-dind + - docker:24.0.7-dind tags: - dind # https://medium.com/devops-with-valentine/how-to-build-a-docker-image-and-push-it-to-the-gitlab-container-registry-from-a-gitlab-ci-pipeline-acac0d1f26df From 3b63e4380a0723329810508d564186c0a0930ca0 Mon Sep 17 00:00:00 2001 From: Soapbox Bot Date: Tue, 5 Dec 2023 02:01:35 +0000 Subject: [PATCH 03/23] Update dependency jsdom to v23 --- package.json | 2 +- yarn.lock | 180 +++++++++++++++++++++++---------------------------- 2 files changed, 83 insertions(+), 99 deletions(-) diff --git a/package.json b/package.json index c60e9e1c0..41b5e8c81 100644 --- a/package.json +++ b/package.json @@ -202,7 +202,7 @@ "eslint-plugin-tailwindcss": "^3.13.0", "fake-indexeddb": "^5.0.0", "husky": "^8.0.0", - "jsdom": "^22.1.0", + "jsdom": "^23.0.0", "lint-staged": ">=10", "react-intl-translations-manager": "^5.0.3", "react-refresh": "^0.14.0", diff --git a/yarn.lock b/yarn.lock index d73e3e974..e6041c720 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2240,11 +2240,6 @@ resolved "https://registry.yarnpkg.com/@testing-library/user-event/-/user-event-14.5.1.tgz#27337d72046d5236b32fd977edee3f74c71d332f" integrity sha512-UCcUKrUYGj7ClomOo2SpNVvx4/fkd/2BbIHDCle8A0ax+P3bU7yJwDBDrS6ZwdTMARWTGODX1hEsCcO+7beJjg== -"@tootallnate/once@2": - version "2.0.0" - resolved "https://registry.yarnpkg.com/@tootallnate/once/-/once-2.0.0.tgz#f544a148d3ab35801c1f633a7441fd87c2e484bf" - integrity sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A== - "@trysound/sax@0.2.0": version "0.2.0" resolved "https://registry.yarnpkg.com/@trysound/sax/-/sax-0.2.0.tgz#cccaab758af56761eb7bf37af6f03f326dd798ad" @@ -2864,11 +2859,6 @@ resolved "https://registry.yarnpkg.com/@xtuc/long/-/long-4.2.2.tgz#d291c6a4e97989b5c61d9acf396ae4fe133a718d" integrity sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ== -abab@^2.0.6: - version "2.0.6" - resolved "https://registry.yarnpkg.com/abab/-/abab-2.0.6.tgz#41b80f2c871d19686216b82309231cfd3cb3d291" - integrity sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA== - acorn-import-assertions@^1.9.0: version "1.9.0" resolved "https://registry.yarnpkg.com/acorn-import-assertions/-/acorn-import-assertions-1.9.0.tgz#507276249d684797c84e0734ef84860334cfb1ac" @@ -2889,12 +2879,12 @@ acorn@^8.10.0, acorn@^8.7.1, acorn@^8.8.2, acorn@^8.9.0: resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.10.0.tgz#8be5b3907a67221a81ab23c7889c4c5526b62ec5" integrity sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw== -agent-base@6: - version "6.0.2" - resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-6.0.2.tgz#49fff58577cfee3f37176feab4c22e00f86d7f77" - integrity sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ== +agent-base@^7.0.2, agent-base@^7.1.0: + version "7.1.0" + resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-7.1.0.tgz#536802b76bc0b34aa50195eb2442276d613e3434" + integrity sha512-o/zjMZRhJxny7OyEF+Op8X+efiELC7k7yOjMzgfzVqOzXqkBkWI79YoTdOtsuWd5BWhAGAuOY/Xa6xpiaWXiNg== dependencies: - debug "4" + debug "^4.3.4" aggregate-error@^3.0.0: version "3.1.0" @@ -3860,14 +3850,13 @@ damerau-levenshtein@^1.0.8: resolved "https://registry.yarnpkg.com/damerau-levenshtein/-/damerau-levenshtein-1.0.8.tgz#b43d286ccbd36bc5b2f7ed41caf2d0aba1f8a6e7" integrity sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA== -data-urls@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/data-urls/-/data-urls-4.0.0.tgz#333a454eca6f9a5b7b0f1013ff89074c3f522dd4" - integrity sha512-/mMTei/JXPqvFqQtfyTowxmJVwr2PVAeCcDxyFf6LhoOu/09TX2OX3kb2wzi4DMXcfj4OItwDOnhl5oziPnT6g== +data-urls@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/data-urls/-/data-urls-5.0.0.tgz#2f76906bce1824429ffecb6920f45a0b30f00dde" + integrity sha512-ZYP5VBHshaDAiVZxjbRVcFJpc+4xGgT0bK3vzy1HLN8jTO975HEbuYzZJcHoQEY5K1a0z8YayJkyVETa08eNTg== dependencies: - abab "^2.0.6" - whatwg-mimetype "^3.0.0" - whatwg-url "^12.0.0" + whatwg-mimetype "^4.0.0" + whatwg-url "^14.0.0" date-fns@^2.0.1, date-fns@^2.24.0: version "2.28.0" @@ -4071,13 +4060,6 @@ domelementtype@^2.0.1, domelementtype@^2.2.0, domelementtype@^2.3.0: resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-2.3.0.tgz#5c45e8e869952626331d7aab326d01daf65d589d" integrity sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw== -domexception@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/domexception/-/domexception-4.0.0.tgz#4ad1be56ccadc86fc76d033353999a8037d03673" - integrity sha512-A2is4PLG+eeSfoTMA95/s4pvAoSo2mKtiM5jlHkAVewmiO8ISFTFKZjH7UAM1Atli/OT/7JHOrJRJiMKUZKYBw== - dependencies: - webidl-conversions "^7.0.0" - domhandler@5.0.3, domhandler@^5.0.2, domhandler@^5.0.3: version "5.0.3" resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-5.0.3.tgz#cc385f7f751f1d1fc650c21374804254538c7d31" @@ -5149,12 +5131,12 @@ html-dom-parser@4.0.0: domhandler "5.0.3" htmlparser2 "9.0.0" -html-encoding-sniffer@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/html-encoding-sniffer/-/html-encoding-sniffer-3.0.0.tgz#2cb1a8cf0db52414776e5b2a7a04d5dd98158de9" - integrity sha512-oWv4T4yJ52iKrufjnyZPkrN0CH3QnrUqdB6In1g5Fe1mia8GmF36gnfNySxoZtxD5+NmYw1EElVXiBk93UeskA== +html-encoding-sniffer@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/html-encoding-sniffer/-/html-encoding-sniffer-4.0.0.tgz#696df529a7cfd82446369dc5193e590a3735b448" + integrity sha512-Y22oTqIU4uuPgEemfz7NDJz6OeKf12Lsu+QC+s3BVpda64lTiMYCyGwg5ki4vFxkMwQdeZDl2adZoqUgdFuTgQ== dependencies: - whatwg-encoding "^2.0.0" + whatwg-encoding "^3.1.1" html-minifier-terser@^6.1.0: version "6.1.0" @@ -5204,14 +5186,13 @@ http-link-header@^1.0.2: resolved "https://registry.yarnpkg.com/http-link-header/-/http-link-header-1.0.3.tgz#abbc2cdc5e06dd7e196a4983adac08a2d085ec90" integrity sha512-nARK1wSKoBBrtcoESlHBx36c1Ln/gnbNQi1eB6MeTUefJIT3NvUOsV15bClga0k38f0q/kN5xxrGSDS3EFnm9w== -http-proxy-agent@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz#5129800203520d434f142bc78ff3c170800f2b43" - integrity sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w== +http-proxy-agent@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/http-proxy-agent/-/http-proxy-agent-7.0.0.tgz#e9096c5afd071a3fce56e6252bb321583c124673" + integrity sha512-+ZT+iBxVUQ1asugqnD6oWoRiS25AkjNfG085dKJGtGxkdwLQrMKU5wJr2bOOFAXzKcTuqq+7fZlTMgG3SRfIYQ== dependencies: - "@tootallnate/once" "2" - agent-base "6" - debug "4" + agent-base "^7.1.0" + debug "^4.3.4" http2-wrapper@^1.0.0-beta.5.2: version "1.0.3" @@ -5221,12 +5202,12 @@ http2-wrapper@^1.0.0-beta.5.2: quick-lru "^5.1.1" resolve-alpn "^1.0.0" -https-proxy-agent@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz#c59ef224a04fe8b754f3db0063a25ea30d0005d6" - integrity sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA== +https-proxy-agent@^7.0.2: + version "7.0.2" + resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-7.0.2.tgz#e2645b846b90e96c6e6f347fb5b2e41f1590b09b" + integrity sha512-NmLNjm6ucYwtcUmL7JQC1ZQ57LmHP4lT15FQ8D61nak1rO6DH+fz5qNK2Ap5UN4ZapYICE3/0KodcLYSPsPbaA== dependencies: - agent-base "6" + agent-base "^7.0.2" debug "4" human-signals@^2.1.0: @@ -5712,34 +5693,32 @@ jsdoc-type-pratt-parser@~4.0.0: resolved "https://registry.yarnpkg.com/jsdoc-type-pratt-parser/-/jsdoc-type-pratt-parser-4.0.0.tgz#136f0571a99c184d84ec84662c45c29ceff71114" integrity sha512-YtOli5Cmzy3q4dP26GraSOeAhqecewG04hoO8DY56CH4KJ9Fvv5qKWUCCo3HZob7esJQHCv6/+bnTy72xZZaVQ== -jsdom@^22.1.0: - version "22.1.0" - resolved "https://registry.yarnpkg.com/jsdom/-/jsdom-22.1.0.tgz#0fca6d1a37fbeb7f4aac93d1090d782c56b611c8" - integrity sha512-/9AVW7xNbsBv6GfWho4TTNjEo9fe6Zhf9O7s0Fhhr3u+awPwAJMKwAMXnkk5vBxflqLW9hTHX/0cs+P3gW+cQw== +jsdom@^23.0.0: + version "23.0.1" + resolved "https://registry.yarnpkg.com/jsdom/-/jsdom-23.0.1.tgz#ede7ff76e89ca035b11178d200710d8982ebfee0" + integrity sha512-2i27vgvlUsGEBO9+/kJQRbtqtm+191b5zAZrU/UezVmnC2dlDAFLgDYJvAEi94T4kjsRKkezEtLQTgsNEsW2lQ== dependencies: - abab "^2.0.6" cssstyle "^3.0.0" - data-urls "^4.0.0" + data-urls "^5.0.0" decimal.js "^10.4.3" - domexception "^4.0.0" form-data "^4.0.0" - html-encoding-sniffer "^3.0.0" - http-proxy-agent "^5.0.0" - https-proxy-agent "^5.0.1" + html-encoding-sniffer "^4.0.0" + http-proxy-agent "^7.0.0" + https-proxy-agent "^7.0.2" is-potential-custom-element-name "^1.0.1" - nwsapi "^2.2.4" + nwsapi "^2.2.7" parse5 "^7.1.2" rrweb-cssom "^0.6.0" saxes "^6.0.0" symbol-tree "^3.2.4" - tough-cookie "^4.1.2" - w3c-xmlserializer "^4.0.0" + tough-cookie "^4.1.3" + w3c-xmlserializer "^5.0.0" webidl-conversions "^7.0.0" - whatwg-encoding "^2.0.0" - whatwg-mimetype "^3.0.0" - whatwg-url "^12.0.1" - ws "^8.13.0" - xml-name-validator "^4.0.0" + whatwg-encoding "^3.1.1" + whatwg-mimetype "^4.0.0" + whatwg-url "^14.0.0" + ws "^8.14.2" + xml-name-validator "^5.0.0" jsesc@^2.5.1: version "2.5.2" @@ -6481,7 +6460,7 @@ nth-check@^2.0.1: dependencies: boolbase "^1.0.0" -nwsapi@^2.2.4: +nwsapi@^2.2.7: version "2.2.7" resolved "https://registry.yarnpkg.com/nwsapi/-/nwsapi-2.2.7.tgz#738e0707d3128cb750dddcfe90e4610482df0f30" integrity sha512-ub5E4+FBPKwAZx0UwIQOjYWGHTEq5sPqHQNRN8Z9e4A7u3Tj1weLJsL59yH9vmvqEtBHaOmT6cYQKIZOxp35FQ== @@ -7150,11 +7129,16 @@ pump@^3.0.0: end-of-stream "^1.1.0" once "^1.3.1" -punycode@^2.1.0, punycode@^2.1.1, punycode@^2.3.0: +punycode@^2.1.0, punycode@^2.1.1: version "2.3.0" resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.3.0.tgz#f67fa67c94da8f4d0cfff981aee4118064199b8f" integrity sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA== +punycode@^2.3.1: + version "2.3.1" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.3.1.tgz#027422e2faec0b25e1549c3e1bd8309b9133b6e5" + integrity sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg== + qrcode.react@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/qrcode.react/-/qrcode.react-3.1.0.tgz#5c91ddc0340f768316fbdb8fff2765134c2aecd8" @@ -8578,7 +8562,7 @@ to-regex-range@^5.0.1: dependencies: is-number "^7.0.0" -tough-cookie@^4.1.2: +tough-cookie@^4.1.3: version "4.1.3" resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-4.1.3.tgz#97b9adb0728b42280aa3d814b6b999b2ff0318bf" integrity sha512-aX/y5pVRkfRnfmuX+OdbSdXvPe6ieKX/G2s7e98f4poJHnqH3281gDPm/metm6E/WRamfx7WC4HUqkWHfQHprw== @@ -8595,12 +8579,12 @@ tr46@^1.0.1: dependencies: punycode "^2.1.0" -tr46@^4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/tr46/-/tr46-4.1.1.tgz#281a758dcc82aeb4fe38c7dfe4d11a395aac8469" - integrity sha512-2lv/66T7e5yNyhAAC4NaKe5nVavzuGJQVVtRYLyQ2OI8tsJ61PMLlelehb0wi2Hx6+hT/OJUWZcw8MjlSRnxvw== +tr46@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/tr46/-/tr46-5.0.0.tgz#3b46d583613ec7283020d79019f1335723801cec" + integrity sha512-tk2G5R2KRwBd+ZN0zaEXpmzdKyOYksXwywulIX95MBODjSzMIuQnQ3m8JxgbhnL1LeVo7lqQKsYa1O3Htl7K5g== dependencies: - punycode "^2.3.0" + punycode "^2.3.1" trim-newlines@^4.0.2: version "4.1.1" @@ -9078,12 +9062,12 @@ vue-template-es2015-compiler@^1.9.0: resolved "https://registry.yarnpkg.com/vue-template-es2015-compiler/-/vue-template-es2015-compiler-1.9.1.tgz#1ee3bc9a16ecbf5118be334bb15f9c46f82f5825" integrity sha512-4gDntzrifFnCEvyoO8PqyJDmguXgVPxKiIxrBKjIowvL9l+N66196+72XVYR8BBf1Uv1Fgt3bGevJ+sEmxfZzw== -w3c-xmlserializer@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/w3c-xmlserializer/-/w3c-xmlserializer-4.0.0.tgz#aebdc84920d806222936e3cdce408e32488a3073" - integrity sha512-d+BFHzbiCx6zGfz0HyQ6Rg69w9k19nviJspaj4yNscGjrHu94sVP+aRm75yEbCh+r2/yR+7q6hux9LVtbuTGBw== +w3c-xmlserializer@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/w3c-xmlserializer/-/w3c-xmlserializer-5.0.0.tgz#f925ba26855158594d907313cedd1476c5967f6c" + integrity sha512-o8qghlI8NZHU1lLPrpi2+Uq7abh4GGPpYANlalzWxyWteJOCsr/P+oPBA49TOLu5FTZO4d3F9MnWJfiMo4BkmA== dependencies: - xml-name-validator "^4.0.0" + xml-name-validator "^5.0.0" warning@^3.0.0: version "3.0.0" @@ -9152,24 +9136,24 @@ webpack-sources@^3.2.3: watchpack "^2.4.0" webpack-sources "^3.2.3" -whatwg-encoding@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/whatwg-encoding/-/whatwg-encoding-2.0.0.tgz#e7635f597fd87020858626805a2729fa7698ac53" - integrity sha512-p41ogyeMUrw3jWclHWTQg1k05DSVXPLcVxRTYsXUk+ZooOCZLcoYgPZ/HL/D/N+uQPOtcp1me1WhBEaX02mhWg== +whatwg-encoding@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/whatwg-encoding/-/whatwg-encoding-3.1.1.tgz#d0f4ef769905d426e1688f3e34381a99b60b76e5" + integrity sha512-6qN4hJdMwfYBtE3YBTTHhoeuUrDBPZmbQaxWAqSALV/MeEnR5z1xd8UKud2RAkFoPkmB+hli1TZSnyi84xz1vQ== dependencies: iconv-lite "0.6.3" -whatwg-mimetype@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/whatwg-mimetype/-/whatwg-mimetype-3.0.0.tgz#5fa1a7623867ff1af6ca3dc72ad6b8a4208beba7" - integrity sha512-nt+N2dzIutVRxARx1nghPKGv1xHikU7HKdfafKkLNLindmPU/ch3U31NOCGGA/dmPcmb1VlofO0vnKAcsm0o/Q== +whatwg-mimetype@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/whatwg-mimetype/-/whatwg-mimetype-4.0.0.tgz#bc1bf94a985dc50388d54a9258ac405c3ca2fc0a" + integrity sha512-QaKxh0eNIi2mE9p2vEdzfagOKHCcj1pJ56EEHGQOVxp8r9/iszLUUV7v89x9O1p/T+NlTM5W7jW6+cz4Fq1YVg== -whatwg-url@^12.0.0, whatwg-url@^12.0.1: - version "12.0.1" - resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-12.0.1.tgz#fd7bcc71192e7c3a2a97b9a8d6b094853ed8773c" - integrity sha512-Ed/LrqB8EPlGxjS+TrsXcpUond1mhccS3pchLhzSgPCnTimUCKj3IZE75pAs5m6heB2U2TMerKFUXheyHY+VDQ== +whatwg-url@^14.0.0: + version "14.0.0" + resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-14.0.0.tgz#00baaa7fd198744910c4b1ef68378f2200e4ceb6" + integrity sha512-1lfMEm2IEr7RIV+f4lUNPOqfFL+pO+Xw3fJSqmjX9AbXcXcYOkCe1P6+9VBZB6n94af16NfZf+sSk0JCBZC9aw== dependencies: - tr46 "^4.1.1" + tr46 "^5.0.0" webidl-conversions "^7.0.0" whatwg-url@^7.0.0: @@ -9447,20 +9431,20 @@ write-file-atomic@^5.0.1: imurmurhash "^0.1.4" signal-exit "^4.0.1" -ws@^8.13.0: - version "8.14.1" - resolved "https://registry.yarnpkg.com/ws/-/ws-8.14.1.tgz#4b9586b4f70f9e6534c7bb1d3dc0baa8b8cf01e0" - integrity sha512-4OOseMUq8AzRBI/7SLMUwO+FEDnguetSk7KMb1sHwvF2w2Wv5Hoj0nlifx8vtGsftE/jWHojPy8sMMzYLJ2G/A== +ws@^8.14.2: + version "8.14.2" + resolved "https://registry.yarnpkg.com/ws/-/ws-8.14.2.tgz#6c249a806eb2db7a20d26d51e7709eab7b2e6c7f" + integrity sha512-wEBG1ftX4jcglPxgFCMJmZ2PLtSbJ2Peg6TmpJFTbe9GZYOQCDPdMYu/Tm0/bGZkw8paZnJY45J4K2PZrLYq8g== xcase@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/xcase/-/xcase-2.0.1.tgz#c7fa72caa0f440db78fd5673432038ac984450b9" integrity sha512-UmFXIPU+9Eg3E9m/728Bii0lAIuoc+6nbrNUKaRPJOFp91ih44qqGlWtxMB6kXFrRD6po+86ksHM5XHCfk6iPw== -xml-name-validator@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/xml-name-validator/-/xml-name-validator-4.0.0.tgz#79a006e2e63149a8600f15430f0a4725d1524835" - integrity sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw== +xml-name-validator@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/xml-name-validator/-/xml-name-validator-5.0.0.tgz#82be9b957f7afdacf961e5980f1bf227c0bf7673" + integrity sha512-EvGK8EJ3DhaHfbRlETOWAS5pO9MZITeauHKJyb8wyajUfQUenkIg2MvLDTZ4T/TgIcm3HU0TFBgWWboAZ30UHg== xmlchars@^2.2.0: version "2.2.0" From 7c397ae895038c638d2205476a9d56b50858a36c Mon Sep 17 00:00:00 2001 From: Soapbox Bot Date: Tue, 5 Dec 2023 03:04:40 +0000 Subject: [PATCH 04/23] Update dependency react-redux to v9 --- package.json | 2 +- yarn.lock | 12 ++++-------- 2 files changed, 5 insertions(+), 9 deletions(-) diff --git a/package.json b/package.json index c60e9e1c0..fea83dd14 100644 --- a/package.json +++ b/package.json @@ -145,7 +145,7 @@ "react-motion": "^0.5.2", "react-overlays": "^0.9.0", "react-popper": "^2.3.0", - "react-redux": "^8.0.0", + "react-redux": "^9.0.0", "react-router-dom": "^5.3.0", "react-router-dom-v5-compat": "^6.6.2", "react-router-scroll-4": "^1.0.0-beta.2", diff --git a/yarn.lock b/yarn.lock index d73e3e974..12551290d 100644 --- a/yarn.lock +++ b/yarn.lock @@ -7397,16 +7397,12 @@ react-property@2.0.0: resolved "https://registry.yarnpkg.com/react-property/-/react-property-2.0.0.tgz#2156ba9d85fa4741faf1918b38efc1eae3c6a136" integrity sha512-kzmNjIgU32mO4mmH5+iUyrqlpFQhF8K2k7eZ4fdLSOPFrD1XgEuSBv9LDEgxRXTMBqMd8ppT0x6TIzqE5pdGdw== -react-redux@^8.0.0: - version "8.0.5" - resolved "https://registry.yarnpkg.com/react-redux/-/react-redux-8.0.5.tgz#e5fb8331993a019b8aaf2e167a93d10af469c7bd" - integrity sha512-Q2f6fCKxPFpkXt1qNRZdEDLlScsDWyrgSj0mliK59qU6W5gvBiKkdMEG2lJzhd1rCctf0hb6EtePPLZ2e0m1uw== +react-redux@^9.0.0: + version "9.0.1" + resolved "https://registry.yarnpkg.com/react-redux/-/react-redux-9.0.1.tgz#bbdbdd55d5c3b0e996975269b7d6101b80487139" + integrity sha512-d+S89OqyChnY2J0O8wv8boRgnGo0tjvxkMLV78wx7h2ZyJvyeOQcBg4yrm7IxY36gxc63iOCfjjQAyhohKWJbA== dependencies: - "@babel/runtime" "^7.12.1" - "@types/hoist-non-react-statics" "^3.3.1" "@types/use-sync-external-store" "^0.0.3" - hoist-non-react-statics "^3.3.2" - react-is "^18.0.0" use-sync-external-store "^1.0.0" react-refresh@^0.14.0: From 76445f6db15cfecef4ede62463f18f9f8aaa7771 Mon Sep 17 00:00:00 2001 From: Alex Gleason Date: Wed, 6 Dec 2023 14:51:14 -0600 Subject: [PATCH 05/23] Sentry: decrease tracesSampleRate to .1 --- src/sentry.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/sentry.ts b/src/sentry.ts index ac2e6fe90..89f1495f9 100644 --- a/src/sentry.ts +++ b/src/sentry.ts @@ -39,7 +39,7 @@ async function startSentry(dsn: string): Promise { /^moz-extension:\/\//i, ], - tracesSampleRate: 1.0, + tracesSampleRate: .1, }); Sentry.setContext('soapbox', sourceCode); From c2baf98420811b963386eef7f10aee57f10ec41d Mon Sep 17 00:00:00 2001 From: Rizal Sambayu Date: Sun, 10 Dec 2023 14:50:12 +0000 Subject: [PATCH 06/23] Translated using Weblate (Indonesian) Currently translated at 100.0% (1526 of 1526 strings) Translation: Soapbox/Soapbox Translate-URL: https://hosted.weblate.org/projects/soapbox-pub/soapbox/id/ --- src/locales/id.json | 664 +++++++++++++++++++++++++++++++++++++------- 1 file changed, 559 insertions(+), 105 deletions(-) diff --git a/src/locales/id.json b/src/locales/id.json index 5e16c1df9..b766bd50f 100644 --- a/src/locales/id.json +++ b/src/locales/id.json @@ -1,137 +1,162 @@ { - "about.also_available": "Available in:", - "accordion.collapse": "Collapse", - "accordion.expand": "Expand", + "about.also_available": "Tersedia di:", + "accordion.collapse": "Runtuh", + "accordion.expand": "Memperluas", "account.add_or_remove_from_list": "Tambah atau Hapus dari daftar", "account.badges.bot": "Bot", - "account.birthday": "Born {date}", - "account.birthday_today": "Birthday is today!", + "account.birthday": "Lahir {date}", + "account.birthday_today": "Hari ini adalah hari ulang tahun!", "account.block": "Blokir @{name}", "account.block_domain": "Sembunyikan segalanya dari {domain}", "account.blocked": "Terblokir", - "account.chat": "Chat with @{name}", - "account.deactivated": "Deactivated", - "account.direct": "Direct Message @{name}", - "account.domain_blocked": "Domain hidden", - "account.edit_profile": "Ubah profil", + "account.chat": "Ngobrol dengan @{name}", + "account.copy": "Salin tautan ke profil", + "account.deactivated": "Dinonaktifkan", + "account.direct": "Pesan Langsung @{name}", + "account.domain_blocked": "Domain tersembunyi", + "account.edit_profile": "Sunting profil", "account.endorse": "Tampilkan di profil", - "account.endorse.success": "You are now featuring @{acct} on your profile", - "account.familiar_followers": "Followed by {accounts}", - "account.familiar_followers.empty": "No one you know follows {name}.", - "account.familiar_followers.more": "{count} {count, plural, one {other} other {others}} you follow", + "account.endorse.success": "Anda sekarang menampilkan @{acct} di profil Anda", + "account.familiar_followers": "Diikuti oleh {accounts}", + "account.familiar_followers.empty": "Tidak ada orang yang Anda kenal yang mengikuti {name}.", + "account.familiar_followers.more": "{count} {count, plural, satu {other} lainnya {others}} mengikuti anda", "account.follow": "Ikuti", "account.followers": "Pengikut", "account.followers.empty": "Tidak ada satupun yang mengkuti pengguna ini saat ini.", "account.follows": "Mengikuti", "account.follows.empty": "Pengguna ini belum mengikuti siapapun.", "account.follows_you": "Mengikuti anda", - "account.header.alt": "Profile header", + "account.header.alt": "Header profil", "account.hide_reblogs": "Sembunyikan boosts dari @{name}", - "account.last_status": "Last active", + "account.last_status": "Terakhir aktif", "account.link_verified_on": "Kepemilikan tautan ini telah dicek pada {date}", "account.locked_info": "Status privasi akun ini disetel untuk dikunci. Pemilik secara manual meninjau siapa yang dapat mengikuti mereka.", - "account.login": "Log in", + "account.login": "Masuk", "account.media": "Media", - "account.member_since": "Joined {date}", + "account.member_since": "Bergabung {date}", "account.mention": "Balasan", "account.mute": "Bisukan @{name}", - "account.muted": "Muted", - "account.never_active": "Never", - "account.posts": "Posts", - "account.posts_with_replies": "Postingan dengan balasan", - "account.profile": "Profile", - "account.profile_external": "View profile on {domain}", - "account.register": "Sign up", - "account.remote_follow": "Remote follow", - "account.remove_from_followers": "Remove this follower", + "account.muted": "Membisukan", + "account.never_active": "Tidak pernah", + "account.patron": "Patron", + "account.posts": "Postingan", + "account.posts_with_replies": "Postingan & balasan", + "account.profile": "Profil", + "account.profile_external": "Lihat profil di {domain}", + "account.register": "Mendaftar", + "account.remote_follow": "Ikuti jarak jauh", + "account.remove_from_followers": "Hapus pengikut ini", "account.report": "Laporkan @{name}", "account.requested": "Menunggu persetujuan. Klik untuk membatalkan permintaan", - "account.requested_small": "Awaiting approval", - "account.search": "Search from @{name}", - "account.search_self": "Search your posts", + "account.requested_small": "Menunggu persetujuan", + "account.rss_feed": "Subscribe to RSS feed", + "account.search": "Cari dari @{name}", + "account.search_self": "Telusuri postingan Anda", "account.share": "Bagikan profil @{name}", - "account.show_reblogs": "Tampilkan repost dari @{name}", - "account.subscribe": "Subscribe to notifications from @{name}", - "account.subscribe.failure": "An error occurred trying to subscribe to this account.", - "account.subscribe.success": "You have subscribed to this account.", - "account.unblock": "Hapus blokir @{name}", + "account.show_reblogs": "Tampilkan postingan ulang dari @{name}", + "account.subscribe": "Berlangganan notifikasi dari @{name}", + "account.subscribe.failure": "Terjadi kesalahan saat mencoba berlangganan akun ini.", + "account.subscribe.success": "Anda telah berlangganan akun ini.", + "account.unblock": "Buka blokir @{name}", "account.unblock_domain": "Tampilkan {domain}", "account.unendorse": "Jangan tampilkan di profil", - "account.unendorse.success": "You are no longer featuring @{acct}", + "account.unendorse.success": "Anda tidak lagi tampil @{acct}", "account.unfollow": "Berhenti mengikuti", "account.unmute": "Berhenti membisukan @{name}", - "account.unsubscribe": "Unsubscribe to notifications from @{name}", - "account.unsubscribe.failure": "An error occurred trying to unsubscribe to this account.", - "account.unsubscribe.success": "You have unsubscribed from this account.", - "account.verified": "Verified Account", - "account_gallery.none": "No media to show.", - "account_moderation_modal.admin_fe": "Open in AdminFE", - "account_moderation_modal.fields.account_role": "Staff level", - "account_moderation_modal.fields.badges": "Custom badges", - "account_moderation_modal.fields.deactivate": "Deactivate account", - "account_moderation_modal.fields.delete": "Delete account", - "account_moderation_modal.fields.suggested": "Suggested in people to follow", - "account_moderation_modal.fields.verified": "Verified account", + "account.unsubscribe": "Berhenti berlangganan notifikasi dari @{name}", + "account.unsubscribe.failure": "Terjadi kesalahan saat mencoba berhenti berlangganan akun ini.", + "account.unsubscribe.success": "Anda telah berhenti berlangganan akun ini.", + "account.verified": "Akun terverifikasi", + "account_gallery.none": "Tidak ada media untuk ditampilkan.", + "account_moderation_modal.admin_fe": "Buka di AdminFE", + "account_moderation_modal.fields.account_role": "Tingkat staf", + "account_moderation_modal.fields.badges": "Lencana khusus", + "account_moderation_modal.fields.deactivate": "Nonaktifkan akun", + "account_moderation_modal.fields.delete": "Hapus akun", + "account_moderation_modal.fields.suggested": "Disarankan pada orang untuk diikuti", + "account_moderation_modal.fields.verified": "Akun terverifikasi", "account_moderation_modal.info.id": "ID: {id}", "account_moderation_modal.roles.admin": "Admin", "account_moderation_modal.roles.moderator": "Moderator", - "account_moderation_modal.roles.user": "User", + "account_moderation_modal.roles.user": "Pengguna", "account_moderation_modal.title": "Moderate @{acct}", - "account_note.placeholder": "Click to add a note", - "account_search.placeholder": "Search for an account", - "actualStatus.edited": "Edited {date}", - "actualStatuses.quote_tombstone": "Post is unavailable.", - "admin.awaiting_approval.empty_message": "There is nobody waiting for approval. When a new user signs up, you can review them here.", - "admin.dashboard.registration_mode.approval_hint": "Users can sign up, but their account only gets activated when an admin approves it.", - "admin.dashboard.registration_mode.approval_label": "Approval Required", - "admin.dashboard.registration_mode.closed_hint": "Nobody can sign up. You can still invite people.", - "admin.dashboard.registration_mode.closed_label": "Closed", - "admin.dashboard.registration_mode.open_hint": "Anyone can join.", - "admin.dashboard.registration_mode.open_label": "Open", - "admin.dashboard.registration_mode_label": "Registrations", - "admin.dashboard.settings_saved": "Settings saved!", + "account_note.header": "Catatan", + "account_note.placeholder": "Klik untuk menambahkan catatan", + "account_search.placeholder": "Cari akun", + "actualStatus.edited": "Diedit {date}", + "actualStatuses.quote_tombstone": "Postingan tidak tersedia.", + "admin.announcements.action": "Buat pengumuman", + "admin.announcements.all_day": "Sepanjang hari", + "admin.announcements.delete": "Hapus", + "admin.announcements.edit": "Edit", + "admin.announcements.ends_at": "Berakhir pada:", + "admin.announcements.starts_at": "Dimulai pada:", + "admin.awaiting_approval.empty_message": "Tidak ada yang menunggu persetujuan. Saat pengguna baru mendaftar, Anda dapat meninjaunya di sini.", + "admin.dashboard.registration_mode.approval_hint": "Pengguna dapat mendaftar, namun akun mereka hanya diaktifkan ketika admin menyetujuinya.", + "admin.dashboard.registration_mode.approval_label": "Diperlukan Persetujuan", + "admin.dashboard.registration_mode.closed_hint": "Tidak ada yang bisa mendaftar. Anda masih dapat mengundang orang.", + "admin.dashboard.registration_mode.closed_label": "Ditutup", + "admin.dashboard.registration_mode.open_hint": "Siapapun bisa bergabung.", + "admin.dashboard.registration_mode.open_label": "Buka", + "admin.dashboard.registration_mode_label": "Pendaftaran", + "admin.dashboard.settings_saved": "Pengaturan disimpan!", "admin.dashcounters.domain_count_label": "peers", - "admin.dashcounters.mau_label": "monthly active users", - "admin.dashcounters.retention_label": "user retention", - "admin.dashcounters.status_count_label": "posts", - "admin.dashcounters.user_count_label": "total users", - "admin.dashwidgets.email_list_header": "Email list", - "admin.dashwidgets.software_header": "Software", - "admin.latest_accounts_panel.more": "Click to see {count} {count, plural, one {account} other {accounts}}", - "admin.latest_accounts_panel.title": "Latest Accounts", - "admin.moderation_log.empty_message": "You have not performed any moderation actions yet. When you do, a history will be shown here.", - "admin.reports.actions.close": "Close", - "admin.reports.actions.view_status": "View post", - "admin.reports.empty_message": "There are no open reports. If a user gets reported, they will show up here.", - "admin.reports.report_closed_message": "Report on @{name} was closed", - "admin.reports.report_title": "Report on {acct}", - "admin.statuses.actions.delete_status": "Delete post", - "admin.statuses.actions.mark_status_not_sensitive": "Mark post not sensitive", - "admin.statuses.actions.mark_status_sensitive": "Mark post sensitive", - "admin.statuses.status_deleted_message": "Post by @{acct} was deleted", - "admin.statuses.status_marked_message_not_sensitive": "Post by @{acct} was marked not sensitive", - "admin.statuses.status_marked_message_sensitive": "Post by @{acct} was marked sensitive", - "admin.user_index.empty": "No users found.", - "admin.user_index.search_input_placeholder": "Who are you looking for?", - "admin.users.actions.deactivate_user": "Deactivate @{name}", - "admin.users.actions.delete_user": "Delete @{name}", - "admin.users.actions.demote_to_moderator_message": "@{acct} was demoted to a moderator", - "admin.users.actions.demote_to_user_message": "@{acct} was demoted to a regular user", - "admin.users.actions.promote_to_admin_message": "@{acct} was promoted to an admin", - "admin.users.actions.promote_to_moderator_message": "@{acct} was promoted to a moderator", - "admin.users.badges_saved_message": "Custom badges updated.", - "admin.users.remove_donor_message": "@{acct} was removed as a donor", - "admin.users.set_donor_message": "@{acct} was set as a donor", - "admin.users.user_deactivated_message": "@{acct} was deactivated", - "admin.users.user_deleted_message": "@{acct} was deleted", - "admin.users.user_suggested_message": "@{acct} was suggested", - "admin.users.user_unsuggested_message": "@{acct} was unsuggested", - "admin.users.user_unverified_message": "@{acct} was unverified", - "admin.users.user_verified_message": "@{acct} was verified", + "admin.dashcounters.mau_label": "pengguna aktif bulanan", + "admin.dashcounters.retention_label": "retensi pengguna", + "admin.dashcounters.status_count_label": "postsingan", + "admin.dashcounters.user_count_label": "Keseluruhan pengguna", + "admin.dashwidgets.email_list_header": "Daftar email", + "admin.dashwidgets.software_header": "Perangkat lunak", + "admin.edit_announcement.created": "Pengumuman dibuat", + "admin.edit_announcement.deleted": "Pengumuman dihapus", + "admin.edit_announcement.fields.all_day_hint": "Jika dicentang, hanya tanggal dalam rentang waktu yang akan ditampilkan", + "admin.edit_announcement.fields.all_day_label": "Acara sepanjang hari", + "admin.edit_announcement.fields.content_label": "Konten", + "admin.edit_announcement.fields.content_placeholder": "Konten pengumuman", + "admin.edit_announcement.fields.end_time_label": "Tanggal berakhir", + "admin.edit_announcement.fields.end_time_placeholder": "Pengumuman berakhir pada:", + "admin.edit_announcement.fields.start_time_label": "Tanggal mulai", + "admin.edit_announcement.fields.start_time_placeholder": "Pengumuman dimulai pada:", + "admin.edit_announcement.save": "Simpan", + "admin.edit_announcement.updated": "Pengumuman diedit", + "admin.latest_accounts_panel.more": "Klik untuk melihat {count} {count, plural, one {account} lainya {accounts}}", + "admin.latest_accounts_panel.title": "Akun Terbaru", + "admin.moderation_log.empty_message": "Anda belum melakukan tindakan moderasi apa pun. Ketika Anda melakukannya, riwayat akan ditampilkan di sini.", + "admin.reports.actions.close": "Keluar", + "admin.reports.actions.view_status": "Lihat postingan", + "admin.reports.empty_message": "Tidak ada laporan terbuka. Jika pengguna dilaporkan, mereka akan muncul di sini.", + "admin.reports.report_closed_message": "Laporan pada @{name} telah ditutup", + "admin.reports.report_title": "Melaporkan {acct}", + "admin.software.backend": "Backend", + "admin.software.frontend": "Frontend", + "admin.statuses.actions.delete_status": "Hapus postingan", + "admin.statuses.actions.mark_status_not_sensitive": "Tandai postingan tidak sensitif", + "admin.statuses.actions.mark_status_sensitive": "Tandai postingan sensitif", + "admin.statuses.status_deleted_message": "Postingan oleh @{acct} telah dihapus", + "admin.statuses.status_marked_message_not_sensitive": "Postingan oleh @{acct} ditandai tidak sensitif", + "admin.statuses.status_marked_message_sensitive": "Postingan oleh @{acct} ditandai sensitif", + "admin.theme.title": "Tema", + "admin.user_index.empty": "Tidak ada pengguna yang ditemukan.", + "admin.user_index.search_input_placeholder": "Siapa yang kamu cari?", + "admin.users.actions.deactivate_user": "Nonaktifkan @{name}", + "admin.users.actions.delete_user": "Hapus @{name}", + "admin.users.actions.demote_to_moderator_message": "@{acct} diturunkan menjadi moderator", + "admin.users.actions.demote_to_user_message": "@{acct} diturunkan menjadi pengguna biasa", + "admin.users.actions.promote_to_admin_message": "@{acct} dipromosikan menjadi admin", + "admin.users.actions.promote_to_moderator_message": "@{acct} dipromosikan menjadi moderator", + "admin.users.badges_saved_message": "Custom badges diperbarui.", + "admin.users.remove_donor_message": "@{acct} telah dihapus sebagai donor", + "admin.users.set_donor_message": "@{acct} ditetapkan sebagai donor", + "admin.users.user_deactivated_message": "@{acct} telah dinonaktifkan", + "admin.users.user_deleted_message": "@{acct} telah dihapus", + "admin.users.user_suggested_message": "@{acct} disarankan", + "admin.users.user_unsuggested_message": "@{acct} tidak disarankan", + "admin.users.user_unverified_message": "@{acct} tidak terverifikasi", + "admin.users.user_verified_message": "@{acct} telah diverifikasi", "admin_nav.awaiting_approval": "Awaiting Approval", "admin_nav.dashboard": "Dashboard", "admin_nav.reports": "Reports", - "alert.unexpected.body": "We're sorry for the interruption. If the problem persists, please reach out to our support team. You may also try to {clearCookies} (this will log you out).", + "alert.unexpected.body": "Kami mohon maaf atas gangguan ini. Jika masalah terus berlanjut, harap hubungi tim dukungan kami. Anda juga dapat mencoba {clearCookies} (ini akan mengeluarkan Anda).", "alert.unexpected.browser": "Browser", "alert.unexpected.clear_cookies": "clear cookies and browser data", "alert.unexpected.links.help": "Help Center", @@ -139,6 +164,8 @@ "alert.unexpected.links.support": "Support", "alert.unexpected.message": "Terjadi kesalahan yang tidak terduga.", "alert.unexpected.return_home": "Return Home", + "alert.unexpected.submit_feedback": "Berikan umpan balik", + "alert.unexpected.thanks": "Terima kasih atas tanggapan Anda!", "aliases.account.add": "Create alias", "aliases.account_label": "Old account:", "aliases.aliases_list_delete": "Unlink alias", @@ -158,8 +185,10 @@ "app_create.scopes_placeholder": "e.g. 'read write follow'", "app_create.submit": "Create app", "app_create.website_label": "Website", + "auth.awaiting_approval": "Akun Anda sedang menunggu persetujuan", "auth.invalid_credentials": "Wrong username or password", "auth.logged_out": "Logged out.", + "authorize.success": "Disetujui", "backups.actions.create": "Create backup", "backups.empty_message": "No backups found. {action}", "backups.empty_message.action": "Create one now?", @@ -169,14 +198,99 @@ "birthdays_modal.empty": "None of your friends have birthday today.", "boost_modal.combo": "Anda dapat menekan {combo} untuk melewati ini", "boost_modal.title": "Repost?", + "bundle_column_error.body": "Terjadi masalah saat memuat halaman ini.", + "bundle_column_error.retry": "Coba lagi", + "bundle_column_error.title": "Kesalahan jaringan", "card.back.label": "Back", - "chats.actions.delete": "Delete message", + "chat.actions.send": "Kirim", + "chat.failed_to_send": "Pesan gagal terkirim.", + "chat.input.placeholder": "Ketik pesan", + "chat.new_message.title": "Pesan baru", + "chat.page_settings.accepting_messages.label": "Izinkan pengguna memulai obrolan baru dengan Anda", + "chat.page_settings.play_sounds.label": "Putar suara saat Anda menerima pesan", + "chat.page_settings.preferences": "Preferensi", + "chat.page_settings.privacy": "Privasi", + "chat.page_settings.submit": "Simpan", + "chat.page_settings.title": "Pengaturan Pesan", + "chat.retry": "Mencoba Kembali?", + "chat.welcome.accepting_messages.label": "Izinkan pengguna memulai obrolan baru dengan Anda", + "chat.welcome.notice": "Anda dapat mengubah pengaturan ini nanti.", + "chat.welcome.submit": "Simpan & Lanjutkan", + "chat.welcome.subtitle": "Bertukar pesan langsung dengan pengguna lain.", + "chat.welcome.title": "Selamat datang di {br} Obrolan!", + "chat_composer.unblock": "Buka blokir", + "chat_list_item.blocked_you": "Pengguna ini telah memblokir Anda", + "chat_list_item.blocking": "Anda telah memblokir pengguna ini", + "chat_message_list.blocked": "Anda memblokir pengguna ini", + "chat_message_list.blockedBy": "Anda diblokir oleh", + "chat_message_list.network_failure.action": "Coba lagi", + "chat_message_list.network_failure.subtitle": "Kami mengalami kegagalan jaringan.", + "chat_message_list.network_failure.title": "Ups!", + "chat_message_list_intro.actions.accept": "Menerima", + "chat_message_list_intro.actions.leave_chat": "Tinggalkan obrolan", + "chat_message_list_intro.actions.message_lifespan": "Pesan yang lebih lama dari {hari, jamak, satu {# hari} lainnya {# hari}} akan dihapus.", + "chat_message_list_intro.actions.report": "Laporan", + "chat_message_list_intro.intro": "ingin memulai obrolan dengan Anda", + "chat_message_list_intro.leave_chat.confirm": "Tinggalkan Obrolan", + "chat_message_list_intro.leave_chat.heading": "Tinggalkan Obrolan", + "chat_message_list_intro.leave_chat.message": "Apakah Anda yakin ingin keluar dari obrolan ini? Pesan akan dihapus untuk Anda dan obrolan ini akan dihapus dari kotak masuk Anda.", + "chat_pane.blankslate.action": "Kirim pesan kepada seseorang", + "chat_pane.blankslate.body": "Cari seseorang untuk diajak ngobrol.", + "chat_pane.blankslate.title": "Belum ada pesan", + "chat_search.blankslate.body": "Cari seseorang untuk diajak ngobrol.", + "chat_search.blankslate.title": "Mulai obrolan", + "chat_search.empty_results_blankslate.body": "Coba cari nama lain.", + "chat_search.empty_results_blankslate.title": "Tidak ada kecocokan yang ditemukan", + "chat_search.placeholder": "Ketikkan nama", + "chat_search.title": "Pesan", + "chat_settings.auto_delete.14days": "14 hari", + "chat_settings.auto_delete.2minutes": "2 menit", + "chat_settings.auto_delete.30days": "30 hari", + "chat_settings.auto_delete.7days": "7 hari", + "chat_settings.auto_delete.90days": "90 hari", + "chat_settings.auto_delete.days": "{hari, jamak, satu {# hari} other {# hari}}", + "chat_settings.auto_delete.hint": "Pesan terkirim akan terhapus secara otomatis setelah jangka waktu yang dipilih", + "chat_settings.auto_delete.label": "Hapus pesan secara otomatis", + "chat_settings.block.confirm": "Blokir", + "chat_settings.block.heading": "Blokir @{akun}", + "chat_settings.block.message": "Pemblokiran akan mencegah profil ini mengirim pesan langsung kepada Anda dan melihat konten Anda. Anda dapat membatalkan pemblokiran nanti.", + "chat_settings.leave.confirm": "Tinggalkan Obrolan", + "chat_settings.leave.heading": "Tinggalkan Obrolan", + "chat_settings.leave.message": "Apakah Anda yakin ingin keluar dari obrolan ini? Pesan akan dihapus untuk Anda dan obrolan ini akan dihapus dari kotak masuk Anda.", + "chat_settings.options.block_user": "Blokir @{akun}", + "chat_settings.options.leave_chat": "Tinggalkan Obrolan", + "chat_settings.options.report_user": "Laporkan @{acct}", + "chat_settings.options.unblock_user": "Buka Blokir @{acct}", + "chat_settings.title": "Detail Obrolan", + "chat_settings.unblock.confirm": "Buka Blokir", + "chat_settings.unblock.heading": "Buka Blokir @{acct}", + "chat_settings.unblock.message": "Membuka blokir akan memungkinkan profil ini mengirim pesan langsung kepada Anda dan melihat konten Anda.", + "chat_window.auto_delete_label": "Hapus otomatis setelah {hari, jamak, satu {# hari} lainnya {# hari}}", + "chat_window.auto_delete_tooltip": "Pesan obrolan disetel untuk dihapus secara otomatis setelah {hari, jamak, satu {# hari} lainnya {# hari}} setelah dikirim.", + "chats.actions.copy": "Salin", + "chats.actions.delete": "Hapus untuk keduanya", + "chats.actions.deleteForMe": "Hapus untuk saya", "chats.actions.more": "More", - "chats.actions.report": "Report user", + "chats.actions.report": "Laporkan pengguna", "chats.dividers.today": "Today", + "chats.main.blankslate.new_chat": "Kirim pesan kepada seseorang", + "chats.main.blankslate.subtitle": "Cari seseorang untuk diajak ngobrol", + "chats.main.blankslate.title": "Belum ada pesan", + "chats.main.blankslate_with_chats.subtitle": "Pilih dari salah satu obrolan terbuka Anda atau buat pesan baru.", + "chats.main.blankslate_with_chats.title": "Pilih obrolan", "chats.search_placeholder": "Start a chat with…", + "colum.filters.expiration.1800": "30 menit", + "colum.filters.expiration.21600": "6 jam", + "colum.filters.expiration.3600": "1 jam", + "colum.filters.expiration.43200": "12 jam", + "colum.filters.expiration.604800": "1 minggu", + "colum.filters.expiration.86400": "1 hari", + "colum.filters.expiration.never": "Tidak pernah", + "column.admin.announcements": "Pengumuman", "column.admin.awaiting_approval": "Awaiting Approval", + "column.admin.create_announcement": "Buat pengumuman", "column.admin.dashboard": "Dashboard", + "column.admin.edit_announcement": "Sunting pengumuman", "column.admin.moderation_log": "Moderation Log", "column.admin.reports": "Reports", "column.admin.reports.menu.moderation_log": "Moderation Log", @@ -199,14 +313,19 @@ "column.developers.service_worker": "Service Worker", "column.direct": "Pesan langsung", "column.directory": "Browse profiles", + "column.dislikes": "Tidak suka", "column.domain_blocks": "Topik tersembunyi", "column.edit_profile": "Edit profile", + "column.event_map": "Lokasi acara", + "column.event_participants": "Peserta acara", + "column.events": "Acara", "column.export_data": "Export data", "column.familiar_followers": "People you know following {name}", "column.favourited_statuses": "Liked posts", "column.favourites": "Likes", "column.federation_restrictions": "Federation Restrictions", "column.filters": "Muted words", + "column.filters.accounts": "Akun", "column.filters.add_new": "Add New Filter", "column.filters.conversations": "Conversations", "column.filters.create_error": "Error adding filter", @@ -214,19 +333,30 @@ "column.filters.delete_error": "Error deleting filter", "column.filters.drop_header": "Drop instead of hide", "column.filters.drop_hint": "Filtered posts will disappear irreversibly, even if filter is later removed", + "column.filters.edit": "Sunting Filter", "column.filters.expires": "Expire after", + "column.filters.hide_header": "Sembunyikan sepenuhnya", + "column.filters.hide_hint": "Sembunyikan sepenuhnya konten yang difilter, alih-alih menampilkan peringatan", "column.filters.home_timeline": "Home timeline", "column.filters.keyword": "Keyword or phrase", + "column.filters.keywords": "Kata kunci atau frase", "column.filters.notifications": "Notifications", "column.filters.public_timeline": "Public timeline", "column.filters.subheading_add_new": "Add New Filter", + "column.filters.title": "Judul", + "column.filters.whole_word": "Seluruh kata", "column.follow_requests": "Permintaan mengikuti", + "column.followed_tags": "Hashtag yang diikuti", "column.followers": "Followers", "column.following": "Following", + "column.group_blocked_members": "Anggota yang Dibanned", + "column.group_pending_requests": "Permintaan tertunda", + "column.groups": "Grup", "column.home": "Beranda", "column.import_data": "Import data", "column.info": "Server information", "column.lists": "List", + "column.manage_group": "Kelola Grup", "column.mentions": "Mentions", "column.mfa": "Multi-Factor Authentication", "column.mfa_cancel": "Cancel", @@ -239,8 +369,10 @@ "column.pins": "Pinned posts", "column.preferences": "Preferences", "column.public": "Linimasa gabungan", + "column.quotes": "Posting quotes", "column.reactions": "Reactions", "column.reblogs": "Reposts", + "column.registration": "Mendaftar", "column.scheduled_statuses": "Scheduled Posts", "column.search": "Search", "column.settings_store": "Settings store", @@ -253,8 +385,34 @@ "compose.character_counter.title": "Used {chars} out of {maxChars} characters", "compose.edit_success": "Your post was edited", "compose.invalid_schedule": "You must schedule a post at least 5 minutes out.", + "compose.reply_group_indicator.message": "Memposting ke {groupLink}", "compose.submit_success": "Your post was sent", + "compose_event.create": "Membuat", + "compose_event.edit_success": "Acara Anda telah diedit", + "compose_event.fields.approval_required": "Saya ingin menyetujui permintaan partisipasi secara manual", + "compose_event.fields.banner_label": "Spanduk acara", + "compose_event.fields.description_label": "Deskripsi acara", + "compose_event.fields.description_placeholder": "Keterangan", + "compose_event.fields.end_time_label": "Tanggal akhir acara", + "compose_event.fields.end_time_placeholder": "Acara berakhir pada…", + "compose_event.fields.has_end_time": "Acara ini memiliki tanggal berakhir", + "compose_event.fields.location_label": "Lokasi Acara", + "compose_event.fields.name_label": "Nama acara", + "compose_event.fields.name_placeholder": "Nama", + "compose_event.fields.start_time_label": "Tanggal mulai acara", + "compose_event.fields.start_time_placeholder": "Acara dimulai pada…", + "compose_event.participation_requests.authorize": "Mengizinkan", + "compose_event.participation_requests.authorize_success": "Pengguna diterima", + "compose_event.participation_requests.reject": "Menolak", + "compose_event.participation_requests.reject_success": "Pengguna ditolak", + "compose_event.reset_location": "Setel ulang lokasi", + "compose_event.submit_success": "Acara Anda telah dibuat", + "compose_event.tabs.edit": "Sunting detailnya", + "compose_event.tabs.pending": "Kelola permintaan", + "compose_event.update": "Memperbarui", + "compose_event.upload_banner": "Unggah spanduk acara", "compose_form.direct_message_warning": "This toot will only be visible to all the mentioned users.", + "compose_form.event_placeholder": "Posting ke acara ini", "compose_form.hashtag_warning": "Toot ini tidak akan ada dalam daftar tagar manapun karena telah di set sebagai tidak terdaftar. Hanya postingan publik yang bisa dicari dengan tagar.", "compose_form.lock_disclaimer": "Akun anda tidak {locked}. Semua orang dapat mengikuti anda untuk melihat postingan khusus untuk pengikut anda.", "compose_form.lock_disclaimer.lock": "terkunci", @@ -271,7 +429,7 @@ "compose_form.poll.remove_option": "Hapus opsi ini", "compose_form.poll.switch_to_multiple": "Change poll to allow multiple choices", "compose_form.poll.switch_to_single": "Change poll to allow for a single choice", - "compose_form.poll_placeholder": "Add a poll topic...", + "compose_form.poll_placeholder": "Tambahkan topik jajak pendapat…", "compose_form.publish": "Publish", "compose_form.publish_loud": "{publish}!", "compose_form.save_changes": "Save changes", @@ -283,10 +441,14 @@ "compose_form.spoiler_placeholder": "Peringatan konten", "compose_form.spoiler_remove": "Remove sensitive", "compose_form.spoiler_title": "Sensitive content", + "compose_group.share_to_followers": "Bagikan dengan pengikut saya", "confirmation_modal.cancel": "Batal", "confirmations.admin.deactivate_user.confirm": "Deactivate @{name}", "confirmations.admin.deactivate_user.heading": "Deactivate @{acct}", "confirmations.admin.deactivate_user.message": "You are about to deactivate @{acct}. Deactivating a user is a reversible action.", + "confirmations.admin.delete_announcement.confirm": "Hapus", + "confirmations.admin.delete_announcement.heading": "Menghapus pengumuman", + "confirmations.admin.delete_announcement.message": "Apakah Anda yakin ingin menghapus pengumuman tersebut?", "confirmations.admin.delete_local_user.checkbox": "I understand that I am about to delete a local user.", "confirmations.admin.delete_status.confirm": "Delete post", "confirmations.admin.delete_status.heading": "Delete post", @@ -307,21 +469,46 @@ "confirmations.block.confirm": "Blokir", "confirmations.block.heading": "Block @{name}", "confirmations.block.message": "Apa anda yakin ingin memblokir {name}?", + "confirmations.block_from_group.confirm": "Blokir", + "confirmations.block_from_group.heading": "Larangan Dari Grup", + "confirmations.block_from_group.message": "Apakah Anda yakin ingin mencekal @{name} dari grup?", + "confirmations.cancel.confirm": "Membuang", + "confirmations.cancel.heading": "Buang postingan", + "confirmations.cancel.message": "Apakah Anda yakin ingin membatalkan pembuatan postingan ini?", "confirmations.cancel_editing.confirm": "Cancel editing", "confirmations.cancel_editing.heading": "Cancel post editing", "confirmations.cancel_editing.message": "Are you sure you want to cancel editing this post? All changes will be lost.", + "confirmations.cancel_event_editing.heading": "Batalkan pengeditan acara", + "confirmations.cancel_event_editing.message": "Apakah Anda yakin ingin membatalkan pengeditan acara ini? Semua perubahan akan hilang.", "confirmations.delete.confirm": "Hapus", "confirmations.delete.heading": "Delete post", "confirmations.delete.message": "Apa anda yakin untuk menghapus status ini?", + "confirmations.delete_event.confirm": "Hapus", + "confirmations.delete_event.heading": "Hapus Acara", + "confirmations.delete_event.message": "Apakah Anda yakin ingin menghapus acara ini?", + "confirmations.delete_from_group.message": "Apakah Anda yakin ingin menghapus postingan @{name}?", + "confirmations.delete_group.confirm": "Hapus", + "confirmations.delete_group.heading": "Hapus Group", + "confirmations.delete_group.message": "Apakah Anda yakin ingin menghapus grup ini? Ini adalah tindakan permanen yang tidak dapat dibatalkan.", "confirmations.delete_list.confirm": "Hapus", "confirmations.delete_list.heading": "Delete list", "confirmations.delete_list.message": "Apakah anda yakin untuk menghapus daftar ini secara permanen?", "confirmations.domain_block.confirm": "Sembunyikan keseluruhan domain", "confirmations.domain_block.heading": "Block {domain}", "confirmations.domain_block.message": "Apakah anda benar benar yakin untuk memblokir keseluruhan {domain}? Dalam kasus tertentu beberapa pemblokiran atau penyembunyian lebih baik.", + "confirmations.kick_from_group.confirm": "Menendang", + "confirmations.kick_from_group.message": "Apakah Anda yakin ingin mengeluarkan @{name} dari grup ini?", + "confirmations.leave_event.confirm": "Tinggalkan acara", + "confirmations.leave_event.message": "Jika Anda ingin bergabung kembali ke acara tersebut, permintaan akan ditinjau kembali secara manual. Apakah Anda yakin ingin melanjutkan?", + "confirmations.leave_group.confirm": "Tinggalkan", + "confirmations.leave_group.heading": "Tinggalkan grup", + "confirmations.leave_group.message": "Anda akan keluar dari grup. Apakah Anda ingin melanjutkan?", "confirmations.mute.confirm": "Bisukan", "confirmations.mute.heading": "Mute @{name}", "confirmations.mute.message": "Apa anda yakin ingin membisukan {name}?", + "confirmations.mute_group.confirm": "Bisu", + "confirmations.mute_group.heading": "Bisukan Grup", + "confirmations.mute_group.message": "Anda akan membisukan grup. Apakah Anda ingin melanjutkan?", "confirmations.redraft.confirm": "Hapus dan konsep ulang", "confirmations.redraft.heading": "Delete & redraft", "confirmations.redraft.message": "Are you sure you want to delete this status and re-draft it? You will lose all replies, boosts and favourites to it.", @@ -340,6 +527,7 @@ "confirmations.scheduled_status_delete.heading": "Cancel scheduled post", "confirmations.scheduled_status_delete.message": "Are you sure you want to cancel this scheduled post?", "confirmations.unfollow.confirm": "Berhenti mengikuti", + "copy.success": "Disalin ke papan klip!", "crypto_donate.explanation_box.message": "{siteTitle} accepts cryptocurrency donations. You may send a donation to any of the addresses below. Thank you for your support!", "crypto_donate.explanation_box.title": "Sending cryptocurrency donations", "crypto_donate_panel.actions.view": "Click to see {count} {count, plural, one {wallet} other {wallets}}", @@ -366,6 +554,7 @@ "developers.navigation.network_error_label": "Network error", "developers.navigation.service_worker_label": "Service Worker", "developers.navigation.settings_store_label": "Settings store", + "developers.navigation.show_toast": "Pemicu Toast", "developers.navigation.test_timeline_label": "Test timeline", "developers.settings_store.advanced": "Advanced settings", "developers.settings_store.hint": "It is possible to directly edit your user settings here. BE CAREFUL! Editing this section can break your account, and you will only be able to recover through the API.", @@ -417,6 +606,7 @@ "email_confirmation.success": "Your email has been confirmed!", "embed.instructions": "Sematkan status ini di website anda dengan menyalin kode di bawah ini.", "emoji_button.activity": "Aktivitas", + "emoji_button.add_custom": "Tambahkan custom emoji", "emoji_button.custom": "Kustom", "emoji_button.flags": "Bendera", "emoji_button.food": "Makanan & Minuman", @@ -424,28 +614,45 @@ "emoji_button.nature": "Alam", "emoji_button.not_found": "Katakan tidak pada emoji!! (╯°□°)╯︵ ┻━┻", "emoji_button.objects": "Benda-benda", + "emoji_button.oh_no": "Oh tidak!", "emoji_button.people": "Orang", + "emoji_button.pick": "Pilih emoji…", "emoji_button.recent": "Yang sering digunakan", "emoji_button.search": "Cari...", "emoji_button.search_results": "Hasil pencarian", + "emoji_button.skins_1": "Bawaan", + "emoji_button.skins_2": "Cahaya", + "emoji_button.skins_3": "Sedang-Ringan", + "emoji_button.skins_4": "Sedang", + "emoji_button.skins_5": "Sedang-Gelap", + "emoji_button.skins_6": "Gelap", + "emoji_button.skins_choose": "Memilih tampilan warna bawaan", "emoji_button.symbols": "Simbol", "emoji_button.travel": "Tempat Wisata", "empty_column.account_blocked": "You are blocked by @{accountUsername}.", "empty_column.account_favourited_statuses": "This user doesn't have any liked posts yet.", "empty_column.account_timeline": "Tidak ada toot di sini!", "empty_column.account_unavailable": "Profil tidak tersedia", + "empty_column.admin.announcements": "Belum ada pengumuman.", "empty_column.aliases": "You haven't created any account alias yet.", "empty_column.aliases.suggestions": "There are no account suggestions available for the provided term.", "empty_column.blocks": "Anda belum memblokir siapapun.", "empty_column.bookmarks": "You don't have any bookmarks yet. When you add one, it will show up here.", "empty_column.community": "Linimasa lokal masih kosong. Tulis sesuatu secara publik dan buat roda berputar!", "empty_column.direct": "Anda belum memiliki pesan langsung. Ketika Anda mengirim atau menerimanya, maka akan muncul di sini.", + "empty_column.dislikes": "Belum ada yang menyukai postingan ini. Ketika seseorang melakukannya, mereka akan muncul di sini.", "empty_column.domain_blocks": "Tidak ada topik tersembunyi.", + "empty_column.event_participant_requests": "Tidak ada permintaan partisipasi acara yang tertunda.", + "empty_column.event_participants": "Belum ada yang bergabung dalam acara ini. Ketika seseorang melakukannya, mereka akan muncul di sini.", "empty_column.favourited_statuses": "Anda belum memiliki toot favorit. Ketika Anda mengirim atau menerimanya, maka akan muncul di sini.", "empty_column.favourites": "Tidak ada seorangpun yang memfavoritkan toot ini. Ketika seseorang melakukannya, maka akan muncul disini.", "empty_column.filters": "You haven't created any muted words yet.", "empty_column.follow_recommendations": "Looks like no suggestions could be generated for you. You can try using search to look for people you might know or explore trending hashtags.", "empty_column.follow_requests": "Anda belum memiliki permintaan mengikuti. Ketika Anda menerimanya, maka akan muncul disini.", + "empty_column.followed_tags": "Anda belum mengikuti hashtag apa pun.", + "empty_column.group": "Belum ada postingan di grup ini.", + "empty_column.group_blocks": "Grup ini belum melarang pengguna mana pun.", + "empty_column.group_membership_requests": "Tidak ada permintaan keanggotaan yang tertunda untuk grup ini.", "empty_column.hashtag": "Tidak ada apapun dalam hashtag ini.", "empty_column.home": "Linimasa anda kosong! Kunjungi {public} atau gunakan pencarian untuk memulai dan bertemu pengguna lain.", "empty_column.home.local_tab": "the {site_title} tab", @@ -457,12 +664,39 @@ "empty_column.notifications": "Anda tidak memiliki notifikasi apapun. Berinteraksi dengan orang lain untuk memulai percakapan.", "empty_column.notifications_filtered": "You don't have any notifications of this type yet.", "empty_column.public": "Tidak ada apapun disini! Tulis sesuatu, atau ikuti pengguna lain dari server lain untuk mengisi ini", + "empty_column.quotes": "Postingan ini belum dikutip.", "empty_column.remote": "There is nothing here! Manually follow users from {instance} to fill it up.", "empty_column.scheduled_statuses": "You don't have any scheduled statuses yet. When you add one, it will show up here.", "empty_column.search.accounts": "There are no people results for \"{term}\"", "empty_column.search.hashtags": "There are no hashtags results for \"{term}\"", "empty_column.search.statuses": "There are no posts results for \"{term}\"", "empty_column.test": "The test timeline is empty.", + "event.banner": "Spanduk acara", + "event.copy": "Salin tautan ke acara", + "event.date": "Tanggal", + "event.description": "Keterangan", + "event.discussion.empty": "Belum ada yang mengomentari acara ini. Ketika seseorang melakukannya, mereka akan muncul di sini.", + "event.export_ics": "Ekspor ke kalender Anda", + "event.external": "Lihat acara di {domain}", + "event.join_state.accept": "Pergi", + "event.join_state.empty": "Ikut", + "event.join_state.pending": "Tertunda", + "event.join_state.rejected": "Pergi", + "event.location": "Lokasi", + "event.manage": "Mengelola", + "event.organized_by": "Diselenggarakan oleh {name}", + "event.participants": "{count} {rawCount, jamak, satu {orang} lainnya {orang}} hadir", + "event.quote": "Quote acara", + "event.reblog": "Posting ulang acara", + "event.show_on_map": "Tampilkan di peta", + "event.unreblog": "Batalkan pengeposan ulang acara", + "event.website": "Tautan eksternal", + "event_map.navigate": "Navigasi", + "events.create_event": "Membuat acara", + "events.joined_events": "Acara yang bergabung", + "events.joined_events.empty": "Anda belum bergabung dengan acara apa pun.", + "events.recent_events": "Acara terkini", + "events.recent_events.empty": "Belum ada acara publik.", "export_data.actions.export": "Export", "export_data.actions.export_blocks": "Export blocks", "export_data.actions.export_follows": "Export follows", @@ -493,9 +727,14 @@ "filters.added": "Filter added.", "filters.context_header": "Filter contexts", "filters.context_hint": "One or multiple contexts where the filter should apply", + "filters.create_filter": "Buat filter", "filters.filters_list_context_label": "Filter contexts:", "filters.filters_list_drop": "Drop", + "filters.filters_list_expired": "Kedaluwarsa", "filters.filters_list_hide": "Hide", + "filters.filters_list_hide_completely": "Sembunyikan konten", + "filters.filters_list_phrases_label": "Kata kunci atau frase:", + "filters.filters_list_warn": "Tampilkan peringatan", "filters.removed": "Filter deleted.", "followRecommendations.heading": "Suggested Profiles", "follow_request.authorize": "Izinkan", @@ -504,7 +743,109 @@ "gdpr.learn_more": "Learn more", "gdpr.message": "{siteTitle} uses session cookies, which are essential to the website's functioning.", "gdpr.title": "{siteTitle} uses cookies", + "generic.saved": "Disimpan", "getting_started.open_source_notice": "{code_name} adalah perangkat lunak yang bersifat terbuka. Anda dapat berkontribusi atau melaporkan permasalahan/bug di Gitlab {code_link} (v{code_version}).", + "group.banned.message": "Anda dilarang dari {group}", + "group.cancel_request": "Batalkan permintaan", + "group.delete.success": "Grup berhasil dihapus", + "group.deleted.message": "Grup ini telah dihapus.", + "group.demote.user.success": "@{name} sekarang menjadi anggota", + "group.group_mod_authorize.fail": "Gagal menyetujui @{name}", + "group.group_mod_block": "Larangan dari grup", + "group.group_mod_block.success": "@{name} dilarang", + "group.group_mod_demote": "Hapus peran {role}", + "group.group_mod_kick": "Keluarkan @{name} dari grup", + "group.group_mod_kick.success": "Keluarkan @{name} dari grup", + "group.group_mod_promote_mod": "Tetapkan peran {role}", + "group.group_mod_reject.fail": "Gagal menolak @{name}", + "group.group_mod_unblock": "Batalkan pelarangan", + "group.group_mod_unblock.success": "Membatalkan pemblokiran @{name} dari grup", + "group.header.alt": "Header grup", + "group.join.private": "Minta Akses", + "group.join.public": "Bergabung ke grup", + "group.join.request_success": "Permintaan dikirim ke pemilik grup", + "group.join.success": "Grup berhasil bergabung!", + "group.leave": "Meninggalkan grup", + "group.leave.label": "Meninggalkan", + "group.leave.success": "Keluar dari grup", + "group.manage": "Kelola Grup", + "group.member.admin.limit.summary": "Anda dapat menugaskan hingga {count, plural, one {admin} other {admins}} untuk grup saat ini.", + "group.member.admin.limit.title": "Batas admin tercapai", + "group.mute.label": "Bisu", + "group.mute.long_label": "Bisukan Grup", + "group.mute.success": "Membungkam grup", + "group.popover.action": "Lihat Grup", + "group.popover.summary": "Anda harus menjadi anggota grup untuk membalas status ini.", + "group.popover.title": "Keanggotaan diperlukan", + "group.privacy.locked": "Pribadi", + "group.privacy.locked.full": "Grup Tertutup", + "group.privacy.locked.info": "Dapat ditemukan. Pengguna dapat bergabung setelah permintaan mereka disetujui.", + "group.privacy.public": "Publik", + "group.privacy.public.full": "Grup Publik", + "group.privacy.public.info": "Dapat ditemukan. Siapapun bisa bergabung.", + "group.private.message": "Konten hanya dapat dilihat oleh anggota grup", + "group.promote.admin.confirmation.message": "Apakah Anda yakin ingin menetapkan peran admin ke @{name}?", + "group.promote.admin.confirmation.title": "Tetapkan Peran Admin", + "group.promote.admin.success": "@{name} sekarang menjadi admin", + "group.report.label": "Laporkan", + "group.role.admin": "Admin", + "group.role.owner": "Pemilik", + "group.share.label": "Bagikan", + "group.tabs.all": "Semua", + "group.tabs.media": "Media", + "group.tabs.members": "Anggota", + "group.tabs.tags": "Topik", + "group.tags.empty": "Belum ada topik di grup ini.", + "group.tags.hidden.success": "Topik ditandai sebagai tersembunyi", + "group.tags.hide": "Sembunyikan topik", + "group.tags.hint": "Tambahkan maksimal 3 kata kunci yang akan dijadikan topik inti diskusi di grup.", + "group.tags.label": "Tagar", + "group.tags.pin": "Sematkan topik", + "group.tags.pin.success": "Disematkan!", + "group.tags.show": "Tampilkan topik", + "group.tags.total": "Keseluruhan Postingan", + "group.tags.unpin": "Lepas sematan topik", + "group.tags.unpin.success": "Sematan dilepaskan!", + "group.tags.visible.success": "Topik ditandai sebagai terlihat", + "group.unmute.label": "Batal membisukan.", + "group.unmute.long_label": "Suarakan Grup", + "group.unmute.success": "Membunyikan grup", + "group.update.success": "Grup berhasil disimpan", + "group.upload_avatar": "Unggah Avatar", + "group.upload_banner": "Mengunggah foto", + "group.upload_banner.title": "Unggah gambar latar belakang", + "groups.discover.popular.empty": "Tidak dapat mengambil grup populer saat ini. Silakan periksa kembali nanti.", + "groups.discover.popular.show_more": "Tampilkan lebih banyak", + "groups.discover.popular.title": "Grup Populer", + "groups.discover.search.error.subtitle": "Silakan coba lagi nanti.", + "groups.discover.search.error.title": "Terjadi kesalahan", + "groups.discover.search.no_results.subtitle": "Coba cari grup lain.", + "groups.discover.search.no_results.title": "Tidak ada kecocokan yang ditemukan", + "groups.discover.search.placeholder": "Pencarian", + "groups.discover.search.recent_searches.blankslate.subtitle": "Cari nama grup, topik atau kata kunci", + "groups.discover.search.recent_searches.blankslate.title": "Tidak ada pencarian terbaru", + "groups.discover.search.recent_searches.clear_all": "Bersihkan semua", + "groups.discover.search.recent_searches.title": "Pencarian terkini", + "groups.discover.search.results.groups": "Grup", + "groups.discover.search.results.member_count": "{anggota, jamak, satu {anggota} other {anggota}}", + "groups.discover.suggested.empty": "Saat ini tidak dapat mengambil grup yang disarankan. Silakan periksa kembali nanti.", + "groups.discover.suggested.show_more": "Tampilkan lebih banyak", + "groups.discover.suggested.title": "Saran Untuk Anda", + "groups.discover.tags.empty": "Tidak dapat mengambil topik populer saat ini. Silakan periksa kembali nanti.", + "groups.discover.tags.show_more": "Tampilkan Lebih Banyak", + "groups.discover.tags.title": "Telusuri Topik", + "groups.discovery.tags.no_of_groups": "Jumlah grup", + "groups.empty.subtitle": "Mulailah menemukan grup untuk bergabung atau membuat grup Anda sendiri.", + "groups.empty.title": "Belum ada Grup", + "groups.pending.count": "{number, plural, one {# permintaan tertunda} other {# permintaan tertunda}}", + "groups.pending.empty.subtitle": "Anda tidak memiliki permintaan yang tertunda saat ini.", + "groups.pending.empty.title": "Tidak ada permintaan yang tertunda", + "groups.pending.label": "Permintaan Tertunda", + "groups.popular.label": "Grup yang Disarankan", + "groups.search.placeholder": "Cari Grup Saya", + "groups.suggested.label": "Grup yang Disarankan", + "groups.tags.title": "Telusuri Topik", + "hashtag.follow": "Ikuti tagar", "header.login.label": "Log in", "header.register.label": "Register", "home.column_settings.show_reblogs": "Tampilkan repost", @@ -530,6 +871,12 @@ "intervals.full.days": "{number, plural, other {# hari}}", "intervals.full.hours": "{number, plural, other {# jam}}", "intervals.full.minutes": "{number, plural, other {# menit}}", + "join_event.hint": "Anda dapat memberi tahu penyelenggara mengapa Anda ingin berpartisipasi dalam acara ini:", + "join_event.join": "Minta bergabung", + "join_event.placeholder": "Pesan untuk penyelenggara", + "join_event.request_success": "Diminta untuk bergabung dalam acara tersebut", + "join_event.success": "Bergabung dengan acara tersebut", + "join_event.title": "Bergabunglah dengan acara", "keyboard_shortcuts.back": "untuk kembali", "keyboard_shortcuts.blocked": "buka daftar pengguna terblokir", "keyboard_shortcuts.boost": "untuk menyebarkan", @@ -561,6 +908,8 @@ "landing_page_modal.download": "Download", "landing_page_modal.helpCenter": "Help Center", "lightbox.close": "Tutup", + "lightbox.expand": "Memperluas", + "lightbox.minimize": "Memperkecil", "lightbox.next": "Selanjutnya", "lightbox.previous": "Sebelumnya", "lightbox.view_context": "Lihat konteks", @@ -578,6 +927,8 @@ "lists.search": "Cari di antara orang yang Anda ikuti", "lists.subheading": "Daftar Anda", "loading_indicator.label": "Tunggu sebentar...", + "location_search.placeholder": "Temukan alamat", + "login.fields.email_label": "Alamat email", "login.fields.instance_label": "Instance", "login.fields.instance_placeholder": "example.com", "login.fields.otp_code_hint": "Enter the two-factor code generated by your phone app or use one of your recovery codes", @@ -592,6 +943,35 @@ "login_external.errors.instance_fail": "The instance returned an error.", "login_external.errors.network_fail": "Connection failed. Is a browser extension blocking it?", "login_form.header": "Sign In", + "manage_group.blocked_members": "Larang Anggota", + "manage_group.confirmation.copy": "Salin tautan", + "manage_group.confirmation.info_1": "Salin tautan Sebagai pemilik grup ini, Anda dapat menugaskan staf, menghapus postingan, dan banyak lagi.", + "manage_group.confirmation.info_2": "Posting postingan pertama grup dan mulailah percakapan.", + "manage_group.confirmation.info_3": "Bagikan grup baru Anda dengan teman, keluarga, dan pengikut untuk mengembangkan keanggotaannya.", + "manage_group.confirmation.share": "Bagikan grup ini", + "manage_group.confirmation.title": "Anda sudah siap!", + "manage_group.create": "Membuat grup", + "manage_group.delete_group": "Hapus Grup", + "manage_group.done": "Selesai", + "manage_group.edit_group": "Sunting Grup", + "manage_group.fields.cannot_change_hint": "Ini tidak dapat diubah setelah grup dibuat.", + "manage_group.fields.description_label": "Keterangan", + "manage_group.fields.description_placeholder": "Keterangan", + "manage_group.fields.hashtag_placeholder": "Tambahkan topik", + "manage_group.fields.name_help": "Ini tidak dapat diubah setelah grup dibuat.", + "manage_group.fields.name_label": "Nama grup (wajib diisi)", + "manage_group.fields.name_label_optional": "Nama grup", + "manage_group.fields.name_placeholder": "Nama grup", + "manage_group.get_started": "Mari kita mulai!", + "manage_group.next": "Berikutnya", + "manage_group.pending_requests": "permintaan tertunda", + "manage_group.privacy.hint": "Pengaturan ini tidak dapat diubah lagi nanti.", + "manage_group.privacy.label": "Pengaturan Privasi", + "manage_group.privacy.private.hint": "Dapat ditemukan. Pengguna dapat bergabung setelah permintaan mereka disetujui.", + "manage_group.privacy.private.label": "Privasi (perlu persetujuan pemilik)", + "manage_group.privacy.public.hint": "Dapat ditemukan. Siapapun bisa bergabung.", + "manage_group.privacy.public.label": "Publik", + "manage_group.tagline": "Grup menghubungkan Anda dengan orang lain berdasarkan minat yang sama.", "media_panel.empty_message": "No media found.", "media_panel.title": "Media", "mfa.confirm.success_message": "MFA confirmed", @@ -634,12 +1014,15 @@ "mute_modal.auto_expire": "Automatically expire mute?", "mute_modal.duration": "Duration", "mute_modal.hide_notifications": "Sembunyikan notifikasi dari pengguna ini?", + "mutes.empty.groups": "Anda belum membisukan grup mana pun.", "navbar.login.action": "Log in", + "navbar.login.email.placeholder": "Alamat email", "navbar.login.forgot_password": "Forgot password?", "navbar.login.password.label": "Password", "navbar.login.username.placeholder": "Email or username", "navigation.chats": "Chats", "navigation.compose": "Compose", + "navigation.compose_group": "Tulis ke Grup", "navigation.dashboard": "Dashboard", "navigation.developers": "Developers", "navigation.direct_messages": "Messages", @@ -652,12 +1035,21 @@ "navigation_bar.compose": "Tulis toot baru", "navigation_bar.compose_direct": "Direct message", "navigation_bar.compose_edit": "Edit post", + "navigation_bar.compose_event": "Kelola acara", + "navigation_bar.compose_group": "Menulis ke grup", + "navigation_bar.compose_group_reply": "Membalas postingan grup", "navigation_bar.compose_quote": "Quote post", "navigation_bar.compose_reply": "Reply to post", + "navigation_bar.create_event": "Buat acara baru", + "navigation_bar.create_group": "Membuat grup", + "navigation_bar.create_group.private": "Buat Grup Pribadi", + "navigation_bar.create_group.public": "Buat Grup Publik", "navigation_bar.domain_blocks": "Domain tersembunyi", + "navigation_bar.edit_group": "Sunting Grup", "navigation_bar.favourites": "Favorit", "navigation_bar.filters": "Kata yang dibisukan", "navigation_bar.follow_requests": "Permintaan mengikuti", + "navigation_bar.followed_tags": "Tagar yang diikuti", "navigation_bar.import_data": "Import data", "navigation_bar.in_reply_to": "In reply to", "navigation_bar.invites": "Invites", @@ -666,16 +1058,27 @@ "navigation_bar.preferences": "Pengaturan", "navigation_bar.profile_directory": "Profile directory", "navigation_bar.soapbox_config": "Soapbox config", + "new_event_panel.action": "Membuat acara", + "new_event_panel.subtitle": "Tidak dapat menemukan apa yang Anda cari? Jadwalkan acara Anda sendiri.", + "new_event_panel.title": "Buat Acara Baru", + "new_group_panel.action": "Membuat grup", + "new_group_panel.subtitle": "Tidak dapat menemukan apa yang Anda cari? Mulai grup pribadi atau publik Anda sendiri.", + "new_group_panel.title": "Membuat grup", "notification.favourite": "{name} menyukai status anda", "notification.follow": "{name} mengikuti anda", "notification.follow_request": "{name} has requested to follow you", + "notification.group_favourite": "{name} menyukai postingan grup Anda", + "notification.group_reblog": "{nama} memposting ulang postingan grup Anda", "notification.mention": "{name} menyebut Anda", "notification.mentioned": "{name} mentioned you", "notification.move": "{name} moved to {targetName}", "notification.name": "{link}{others}", - "notification.others": " + {count} {count, plural, one {other} other {others}}", + "notification.others": "+ {hitung, jamak, satu {# lainnya} lainnya {# lainnya}}", "notification.pleroma:chat_mention": "{name} sent you a message", "notification.pleroma:emoji_reaction": "{name} reacted to your post", + "notification.pleroma:event_reminder": "Acara yang Anda ikuti akan segera dimulai", + "notification.pleroma:participation_accepted": "Anda diterima untuk mengikuti acara tersebut", + "notification.pleroma:participation_request": "{name} ingin bergabung dengan acara Anda", "notification.poll": "Japat yang Anda ikuti telah berakhir", "notification.reblog": "{name} mem-boost status anda", "notification.status": "{name} just posted", @@ -722,6 +1125,7 @@ "onboarding.suggestions.title": "Suggested accounts", "onboarding.view_feed": "View Feed", "password_reset.confirmation": "Check your email for confirmation.", + "password_reset.fields.email_placeholder": "Alamat email", "password_reset.fields.username_placeholder": "Email or username", "password_reset.header": "Reset Password", "password_reset.reset": "Reset password", @@ -748,6 +1152,8 @@ "preferences.fields.content_type_label": "Default post format", "preferences.fields.delete_modal_label": "Show confirmation dialog before deleting a post", "preferences.fields.demetricator_label": "Use Demetricator", + "preferences.fields.demo_hint": "Gunakan logo dan skema warna bawaan Soapbox. Berguna untuk mengambil tangkapan layar.", + "preferences.fields.demo_label": "Mode demo", "preferences.fields.display_media.default": "Hide media marked as sensitive", "preferences.fields.display_media.hide_all": "Always hide media", "preferences.fields.display_media.show_all": "Always show media", @@ -755,6 +1161,7 @@ "preferences.fields.language_label": "Language", "preferences.fields.media_display_label": "Media display", "preferences.fields.missing_description_modal_label": "Show confirmation dialog before sending a post without media descriptions", + "preferences.fields.preserve_spoilers_label": "Pertahankan peringatan konten saat membalas", "preferences.fields.privacy_label": "Default post privacy", "preferences.fields.reduce_motion_label": "Reduce motion in animations", "preferences.fields.system_font_label": "Use system's default font", @@ -805,6 +1212,7 @@ "registration.sign_up": "Sign up", "registration.tos": "Terms of Service", "registration.username_unavailable": "Username is already taken.", + "reject.success": "Ditolak", "relative_time.days": "{number}d", "relative_time.hours": "{number}h", "relative_time.just_now": "now", @@ -818,7 +1226,11 @@ "remote_instance.pin_host": "Pin {host}", "remote_instance.unpin_host": "Unpin {host}", "remote_interaction.account_placeholder": "Enter your username@domain you want to act from", + "remote_interaction.dislike": "Lanjutkan ke tidak suka", + "remote_interaction.dislike_title": "Tidak menyukai postingan dari jarak jauh", "remote_interaction.divider": "or", + "remote_interaction.event_join": "Lanjutkan untuk bergabung", + "remote_interaction.event_join_title": "Bergabunglah dengan acara dari jarak jauh", "remote_interaction.favourite": "Proceed to like", "remote_interaction.favourite_title": "Like a post remotely", "remote_interaction.follow": "Proceed to follow", @@ -840,11 +1252,16 @@ "reply_mentions.reply_empty": "Replying to post", "report.block": "Block {target}", "report.block_hint": "Do you also want to block this account?", + "report.chatMessage.context": "Saat melaporkan pesan pengguna, lima pesan sebelum dan lima pesan setelah pesan yang dipilih akan diteruskan ke tim moderasi kami untuk mengetahui konteksnya.", + "report.chatMessage.title": "Laporkan pesan", "report.confirmation.content": "If we find that this account is violating the {link} we will take further action on the matter.", + "report.confirmation.entity.account": "akun", + "report.confirmation.entity.group": "grup", "report.confirmation.title": "Thanks for submitting your report.", "report.done": "Done", "report.forward": "Forward to {target}", "report.forward_hint": "The account is from another server. Send a copy of the report there as well?", + "report.group.title": "Laporan Grup", "report.next": "Next", "report.otherActions.addAdditional": "Would you like to add additional statuses to this report?", "report.otherActions.addMore": "Add more", @@ -896,13 +1313,17 @@ "security.update_password.fail": "Update password failed.", "security.update_password.success": "Password successfully updated.", "settings.account_migration": "Move Account", + "settings.blocks": "Blokir", "settings.change_email": "Change Email", "settings.change_password": "Change Password", "settings.configure_mfa": "Configure MFA", "settings.delete_account": "Delete Account", "settings.edit_profile": "Edit Profile", + "settings.messages.label": "Izinkan pengguna memulai obrolan baru dengan Anda", + "settings.mutes": "Bisukan", "settings.other": "Other options", "settings.preferences": "Preferences", + "settings.privacy": "Privasi", "settings.profile": "Profile", "settings.save.success": "Your preferences have been saved!", "settings.security": "Security", @@ -925,6 +1346,7 @@ "soapbox_config.feed_injection_hint": "Inject the feed with additional content, such as suggested profiles.", "soapbox_config.feed_injection_label": "Feed injection", "soapbox_config.fields.crypto_addresses_label": "Cryptocurrency addresses", + "soapbox_config.fields.edit_theme_label": "Edit Tema", "soapbox_config.fields.home_footer_fields_label": "Home footer items", "soapbox_config.fields.logo_label": "Logo", "soapbox_config.fields.promo_panel_fields_label": "Promo panel items", @@ -932,6 +1354,7 @@ "soapbox_config.greentext_label": "Enable greentext support", "soapbox_config.headings.advanced": "Advanced", "soapbox_config.headings.cryptocurrency": "Cryptocurrency", + "soapbox_config.headings.events": "Acara", "soapbox_config.headings.navigation": "Navigation", "soapbox_config.headings.options": "Options", "soapbox_config.headings.theme": "Theme", @@ -942,16 +1365,27 @@ "soapbox_config.hints.promo_panel_icons.link": "Soapbox Icons List", "soapbox_config.home_footer.meta_fields.label_placeholder": "Label", "soapbox_config.home_footer.meta_fields.url_placeholder": "URL", + "soapbox_config.media_preview_hint": "Beberapa backend menyediakan versi media yang dioptimalkan untuk ditampilkan di garis waktu. Namun, gambar pratinjau ini mungkin terlalu kecil tanpa konfigurasi tambahan.", + "soapbox_config.media_preview_label": "Lebih memilih media pratinjau untuk thumbnail", "soapbox_config.promo_panel.meta_fields.icon_placeholder": "Icon", "soapbox_config.promo_panel.meta_fields.label_placeholder": "Label", "soapbox_config.promo_panel.meta_fields.url_placeholder": "URL", - "soapbox_config.raw_json_hint": "Edit the settings data directly. Changes made directly to the JSON file will override the form fields above. Click Save to apply your changes.", + "soapbox_config.raw_json_hint": "Edit data pengaturan secara langsung. Perubahan yang dilakukan langsung pada file JSON akan menggantikan kolom formulir di atas. Klik \"Simpan\" untuk menerapkan perubahan Anda.", + "soapbox_config.raw_json_invalid": "tidak valid", "soapbox_config.raw_json_label": "Advanced: Edit raw JSON data", + "soapbox_config.redirect_root_no_login_hint": "Jalur untuk mengalihkan beranda saat pengguna tidak masuk.", + "soapbox_config.redirect_root_no_login_label": "Arahkan ulang beranda", "soapbox_config.save": "Save", "soapbox_config.saved": "Soapbox config saved!", + "soapbox_config.sentry_dsn_hint": "URL DSN untuk pelaporan kesalahan. Bekerja dengan Sentry dan GlitchTip.", + "soapbox_config.sentry_dsn_label": "Sentry DSN", + "soapbox_config.tile_server_attribution_label": "Atribusi ubin peta", + "soapbox_config.tile_server_label": "Map tile server", "soapbox_config.verified_can_edit_name_label": "Allow verified users to edit their own display name.", "status.admin_account": "Open moderation interface for @{name}", "status.admin_status": "Open this post in the moderation interface", + "status.approval.pending": "Menunggu persetujuan", + "status.approval.rejected": "Ditolak", "status.bookmark": "Bookmark", "status.bookmarked": "Bookmark added.", "status.cancel_reblog_private": "Un-repost", @@ -961,12 +1395,18 @@ "status.delete": "Hapus", "status.detailed_status": "Detailed conversation view", "status.direct": "Direct message @{name}", + "status.disabled_replies.group_membership": "Hanya anggota grup yang dapat membalas", + "status.disfavourite": "Tidak Suka", "status.edit": "Edit", "status.embed": "Embed", "status.external": "View post on {domain}", "status.favourite": "Difavoritkan", "status.filtered": "Filtered", + "status.group": "Diposting di {grup}", + "status.group_mod_delete": "Hapus postingan dari grup", + "status.interactions.dislikes": "{count, plural, one {Tidak suka} other {Tidak suka}}", "status.interactions.favourites": "{count, plural, one {Like} other {Likes}}", + "status.interactions.quotes": "{hitungan, jamak, satu {Kutipan} lainnya {Kutipan}}", "status.interactions.reblogs": "{count, plural, one {Repost} other {Reposts}}", "status.load_more": "Tampilkan semua", "status.mention": "Balasan @{name}", @@ -974,6 +1414,8 @@ "status.mute_conversation": "Mute conversation", "status.open": "Tampilkan status ini", "status.pin": "Pin on profile", + "status.pin_to_group": "Sematkan ke Grup", + "status.pin_to_group.success": "Disematkan ke Grup!", "status.pinned": "Pinned post", "status.quote": "Quote post", "status.reactions.cry": "Sad", @@ -987,6 +1429,7 @@ "status.reblog": "Repost", "status.reblog_private": "Repost to original audience", "status.reblogged_by": "di-repost {name}", + "status.reblogged_by_with_group": "{name} mem-posting ulang dari {group}", "status.reblogs.empty": "No one has reposted this post yet. When someone does, they will show up here.", "status.redraft": "Delete & re-draft", "status.remove_account_from_group": "Remove account from group", @@ -997,6 +1440,7 @@ "status.sensitive_warning": "Konten sensitif", "status.sensitive_warning.subtitle": "This content may not be suitable for all audiences.", "status.share": "Share", + "status.show_filter_reason": "Tetap tunjukkan", "status.show_less_all": "Show less for all", "status.show_more_all": "Show more for all", "status.show_original": "Show original", @@ -1008,6 +1452,7 @@ "status.unbookmarked": "Bookmark removed.", "status.unmute_conversation": "Unmute conversation", "status.unpin": "Unpin from profile", + "status.unpin_to_group": "Lepas sematan dari Grup", "status_list.queue_label": "Click to see {count} new {count, plural, one {post} other {posts}}", "statuses.quote_tombstone": "Post is unavailable.", "statuses.tombstone": "One or more posts are unavailable.", @@ -1025,6 +1470,7 @@ "tabs_bar.all": "All", "tabs_bar.dashboard": "Dashboard", "tabs_bar.fediverse": "Fediverse", + "tabs_bar.groups": "Grup", "tabs_bar.home": "Beranda", "tabs_bar.local": "Local", "tabs_bar.more": "More", @@ -1032,6 +1478,14 @@ "tabs_bar.profile": "Profile", "tabs_bar.search": "Search", "tabs_bar.settings": "Settings", + "textarea.counter.label": "{count} karakter tersisa", + "theme_editor.Reset": "Mengatur ulang", + "theme_editor.export": "Ekspor tema", + "theme_editor.import": "Impor tema", + "theme_editor.import_success": "Tema berhasil diimpor!", + "theme_editor.restore": "Kembalikan tema bawaan", + "theme_editor.save": "Simpan tema", + "theme_editor.saved": "Tema diperbarui!", "theme_toggle.dark": "Dark", "theme_toggle.light": "Light", "theme_toggle.system": "System", From a80fd6327d3a38a5bc23d26df5a3432433bc0a1b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?marcin=20miko=C5=82ajczak?= Date: Sun, 10 Dec 2023 09:38:19 +0000 Subject: [PATCH 07/23] Translated using Weblate (Polish) Currently translated at 99.6% (1520 of 1526 strings) Translation: Soapbox/Soapbox Translate-URL: https://hosted.weblate.org/projects/soapbox-pub/soapbox/pl/ --- src/locales/pl.json | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/locales/pl.json b/src/locales/pl.json index cd5f42705..9eda9262a 100644 --- a/src/locales/pl.json +++ b/src/locales/pl.json @@ -198,6 +198,9 @@ "birthdays_modal.empty": "Żaden z Twoich znajomych nie ma dziś urodzin.", "boost_modal.combo": "Naciśnij {combo}, aby pominąć to następnym razem", "boost_modal.title": "Repost?", + "bundle_column_error.body": "Coś poszło nie tak podczas ładowania tej strony.", + "bundle_column_error.retry": "Spróbuj ponownie", + "bundle_column_error.title": "Błąd sieci", "card.back.label": "Wstecz", "chat.actions.send": "Wyślij", "chat.failed_to_send": "Nie udało się wysłać wiadomości.", @@ -1369,6 +1372,8 @@ "soapbox_config.redirect_root_no_login_label": "Przekieruj stronę główną", "soapbox_config.save": "Zapisz", "soapbox_config.saved": "Zapisano konfigurację Soapbox!", + "soapbox_config.sentry_dsn_hint": "Adres URL DSN do zgłaszania błędów. Działa z Sentry i GlitchTip.", + "soapbox_config.sentry_dsn_label": "DSN Sentry", "soapbox_config.tile_server_attribution_label": "Atrybucja kafelków map", "soapbox_config.tile_server_label": "Serwer kafelków map", "soapbox_config.verified_can_edit_name_label": "Pozwól zweryfikowanym użytkownikom na zmianę swojej nazwy wyświetlanej.", From 5cdae8672e166478d6cff4acab861e488fe43fa0 Mon Sep 17 00:00:00 2001 From: Poesty Li Date: Sun, 10 Dec 2023 12:32:05 +0000 Subject: [PATCH 08/23] Translated using Weblate (Chinese (Simplified)) Currently translated at 100.0% (1526 of 1526 strings) Translation: Soapbox/Soapbox Translate-URL: https://hosted.weblate.org/projects/soapbox-pub/soapbox/zh_Hans/ --- src/locales/zh-CN.json | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/locales/zh-CN.json b/src/locales/zh-CN.json index e23e377f5..e2c5d648a 100644 --- a/src/locales/zh-CN.json +++ b/src/locales/zh-CN.json @@ -198,6 +198,9 @@ "birthdays_modal.empty": "今天您的朋友中无人过生日。", "boost_modal.combo": "下次按住 {combo} 即可跳过此提示", "boost_modal.title": "转发?", + "bundle_column_error.body": "载入页面时发生错误。", + "bundle_column_error.retry": "重试", + "bundle_column_error.title": "网络错误", "card.back.label": "返回", "chat.actions.send": "发送", "chat.failed_to_send": "消息发送失败。", From ff209575b4656fc5730bebc336fa04f5aaf6bb5c Mon Sep 17 00:00:00 2001 From: Rizal Sambayu Date: Mon, 11 Dec 2023 18:05:16 +0000 Subject: [PATCH 09/23] Translated using Weblate (Indonesian) Currently translated at 100.0% (1526 of 1526 strings) Translation: Soapbox/Soapbox Translate-URL: https://hosted.weblate.org/projects/soapbox-pub/soapbox/id/ --- src/locales/id.json | 302 ++++++++++++++++++++++---------------------- 1 file changed, 151 insertions(+), 151 deletions(-) diff --git a/src/locales/id.json b/src/locales/id.json index b766bd50f..55b81371e 100644 --- a/src/locales/id.json +++ b/src/locales/id.json @@ -19,7 +19,7 @@ "account.endorse.success": "Anda sekarang menampilkan @{acct} di profil Anda", "account.familiar_followers": "Diikuti oleh {accounts}", "account.familiar_followers.empty": "Tidak ada orang yang Anda kenal yang mengikuti {name}.", - "account.familiar_followers.more": "{count} {count, plural, satu {other} lainnya {others}} mengikuti anda", + "account.familiar_followers.more": "{count, plural, one {# other} lainya {# others}} kamu ikuti", "account.follow": "Ikuti", "account.followers": "Pengikut", "account.followers.empty": "Tidak ada satupun yang mengkuti pengguna ini saat ini.", @@ -27,7 +27,7 @@ "account.follows.empty": "Pengguna ini belum mengikuti siapapun.", "account.follows_you": "Mengikuti anda", "account.header.alt": "Header profil", - "account.hide_reblogs": "Sembunyikan boosts dari @{name}", + "account.hide_reblogs": "Sembunyikan postingan ulang dari @{name}", "account.last_status": "Terakhir aktif", "account.link_verified_on": "Kepemilikan tautan ini telah dicek pada {date}", "account.locked_info": "Status privasi akun ini disetel untuk dikunci. Pemilik secara manual meninjau siapa yang dapat mengikuti mereka.", @@ -49,7 +49,7 @@ "account.report": "Laporkan @{name}", "account.requested": "Menunggu persetujuan. Klik untuk membatalkan permintaan", "account.requested_small": "Menunggu persetujuan", - "account.rss_feed": "Subscribe to RSS feed", + "account.rss_feed": "Berlangganan umpan RSS", "account.search": "Cari dari @{name}", "account.search_self": "Telusuri postingan Anda", "account.share": "Bagikan profil @{name}", @@ -85,12 +85,12 @@ "account_search.placeholder": "Cari akun", "actualStatus.edited": "Diedit {date}", "actualStatuses.quote_tombstone": "Postingan tidak tersedia.", - "admin.announcements.action": "Buat pengumuman", + "admin.announcements.action": "Membuat pengumuman", "admin.announcements.all_day": "Sepanjang hari", "admin.announcements.delete": "Hapus", "admin.announcements.edit": "Edit", - "admin.announcements.ends_at": "Berakhir pada:", - "admin.announcements.starts_at": "Dimulai pada:", + "admin.announcements.ends_at": "Berakhir di:", + "admin.announcements.starts_at": "Dimulai dari:", "admin.awaiting_approval.empty_message": "Tidak ada yang menunggu persetujuan. Saat pengguna baru mendaftar, Anda dapat meninjaunya di sini.", "admin.dashboard.registration_mode.approval_hint": "Pengguna dapat mendaftar, namun akun mereka hanya diaktifkan ketika admin menyetujuinya.", "admin.dashboard.registration_mode.approval_label": "Diperlukan Persetujuan", @@ -109,14 +109,14 @@ "admin.dashwidgets.software_header": "Perangkat lunak", "admin.edit_announcement.created": "Pengumuman dibuat", "admin.edit_announcement.deleted": "Pengumuman dihapus", - "admin.edit_announcement.fields.all_day_hint": "Jika dicentang, hanya tanggal dalam rentang waktu yang akan ditampilkan", + "admin.edit_announcement.fields.all_day_hint": "Apabila dicentang, hanya tanggal dari rentang waktu yang akan ditampilkan", "admin.edit_announcement.fields.all_day_label": "Acara sepanjang hari", "admin.edit_announcement.fields.content_label": "Konten", "admin.edit_announcement.fields.content_placeholder": "Konten pengumuman", - "admin.edit_announcement.fields.end_time_label": "Tanggal berakhir", + "admin.edit_announcement.fields.end_time_label": "Tanggal akhir", "admin.edit_announcement.fields.end_time_placeholder": "Pengumuman berakhir pada:", "admin.edit_announcement.fields.start_time_label": "Tanggal mulai", - "admin.edit_announcement.fields.start_time_placeholder": "Pengumuman dimulai pada:", + "admin.edit_announcement.fields.start_time_placeholder": "Pengumuman dimulai:", "admin.edit_announcement.save": "Simpan", "admin.edit_announcement.updated": "Pengumuman diedit", "admin.latest_accounts_panel.more": "Klik untuk melihat {count} {count, plural, one {account} lainya {accounts}}", @@ -158,25 +158,25 @@ "admin_nav.reports": "Reports", "alert.unexpected.body": "Kami mohon maaf atas gangguan ini. Jika masalah terus berlanjut, harap hubungi tim dukungan kami. Anda juga dapat mencoba {clearCookies} (ini akan mengeluarkan Anda).", "alert.unexpected.browser": "Browser", - "alert.unexpected.clear_cookies": "clear cookies and browser data", - "alert.unexpected.links.help": "Help Center", + "alert.unexpected.clear_cookies": "menghapus cookie dan data browser", + "alert.unexpected.links.help": "Pusat Bantuan", "alert.unexpected.links.status": "Status", "alert.unexpected.links.support": "Support", "alert.unexpected.message": "Terjadi kesalahan yang tidak terduga.", "alert.unexpected.return_home": "Return Home", "alert.unexpected.submit_feedback": "Berikan umpan balik", "alert.unexpected.thanks": "Terima kasih atas tanggapan Anda!", - "aliases.account.add": "Create alias", + "aliases.account.add": "Buat alias", "aliases.account_label": "Old account:", - "aliases.aliases_list_delete": "Unlink alias", - "aliases.search": "Search your old account", - "aliases.success.add": "Account alias created successfully", - "aliases.success.remove": "Account alias removed successfully", - "announcements.title": "Announcements", - "app_create.name_label": "App name", + "aliases.aliases_list_delete": "Batalkan tautan alias", + "aliases.search": "Cari akun lama Anda", + "aliases.success.add": "Alias akun berhasil dibuat", + "aliases.success.remove": "Alias akun berhasil dihapus", + "announcements.title": "Pengumuman", + "app_create.name_label": "Nama aplikasi", "app_create.name_placeholder": "e.g. 'Soapbox'", - "app_create.redirect_uri_label": "Redirect URIs", - "app_create.restart": "Create another", + "app_create.redirect_uri_label": "Mengalihkan URIs", + "app_create.restart": "Buat lainya", "app_create.results.app_label": "App", "app_create.results.explanation_text": "You created a new app and token! Please copy the credentials somewhere; you will not see them again after navigating away from this page.", "app_create.results.explanation_title": "App created successfully", @@ -197,7 +197,7 @@ "birthday_panel.title": "Birthdays", "birthdays_modal.empty": "None of your friends have birthday today.", "boost_modal.combo": "Anda dapat menekan {combo} untuk melewati ini", - "boost_modal.title": "Repost?", + "boost_modal.title": "Posting Ulang?", "bundle_column_error.body": "Terjadi masalah saat memuat halaman ini.", "bundle_column_error.retry": "Coba lagi", "bundle_column_error.title": "Kesalahan jaringan", @@ -205,13 +205,13 @@ "chat.actions.send": "Kirim", "chat.failed_to_send": "Pesan gagal terkirim.", "chat.input.placeholder": "Ketik pesan", - "chat.new_message.title": "Pesan baru", + "chat.new_message.title": "Pesan Baru", "chat.page_settings.accepting_messages.label": "Izinkan pengguna memulai obrolan baru dengan Anda", "chat.page_settings.play_sounds.label": "Putar suara saat Anda menerima pesan", - "chat.page_settings.preferences": "Preferensi", + "chat.page_settings.preferences": "Pengaturan", "chat.page_settings.privacy": "Privasi", "chat.page_settings.submit": "Simpan", - "chat.page_settings.title": "Pengaturan Pesan", + "chat.page_settings.title": "Message Settings", "chat.retry": "Mencoba Kembali?", "chat.welcome.accepting_messages.label": "Izinkan pengguna memulai obrolan baru dengan Anda", "chat.welcome.notice": "Anda dapat mengubah pengaturan ini nanti.", @@ -226,10 +226,10 @@ "chat_message_list.network_failure.action": "Coba lagi", "chat_message_list.network_failure.subtitle": "Kami mengalami kegagalan jaringan.", "chat_message_list.network_failure.title": "Ups!", - "chat_message_list_intro.actions.accept": "Menerima", + "chat_message_list_intro.actions.accept": "Terima", "chat_message_list_intro.actions.leave_chat": "Tinggalkan obrolan", - "chat_message_list_intro.actions.message_lifespan": "Pesan yang lebih lama dari {hari, jamak, satu {# hari} lainnya {# hari}} akan dihapus.", - "chat_message_list_intro.actions.report": "Laporan", + "chat_message_list_intro.actions.message_lifespan": "Pesan yang lebih lama dari {hari, jamak, satu {# day} lainnya {# days}} akan dihapus.", + "chat_message_list_intro.actions.report": "Laporkan", "chat_message_list_intro.intro": "ingin memulai obrolan dengan Anda", "chat_message_list_intro.leave_chat.confirm": "Tinggalkan Obrolan", "chat_message_list_intro.leave_chat.heading": "Tinggalkan Obrolan", @@ -241,23 +241,23 @@ "chat_search.blankslate.title": "Mulai obrolan", "chat_search.empty_results_blankslate.body": "Coba cari nama lain.", "chat_search.empty_results_blankslate.title": "Tidak ada kecocokan yang ditemukan", - "chat_search.placeholder": "Ketikkan nama", + "chat_search.placeholder": "Ketik nama", "chat_search.title": "Pesan", "chat_settings.auto_delete.14days": "14 hari", "chat_settings.auto_delete.2minutes": "2 menit", "chat_settings.auto_delete.30days": "30 hari", "chat_settings.auto_delete.7days": "7 hari", "chat_settings.auto_delete.90days": "90 hari", - "chat_settings.auto_delete.days": "{hari, jamak, satu {# hari} other {# hari}}", + "chat_settings.auto_delete.days": "{day, plural, one {# day} lainya {# days}}", "chat_settings.auto_delete.hint": "Pesan terkirim akan terhapus secara otomatis setelah jangka waktu yang dipilih", "chat_settings.auto_delete.label": "Hapus pesan secara otomatis", "chat_settings.block.confirm": "Blokir", - "chat_settings.block.heading": "Blokir @{akun}", + "chat_settings.block.heading": "Blokir @{acct}", "chat_settings.block.message": "Pemblokiran akan mencegah profil ini mengirim pesan langsung kepada Anda dan melihat konten Anda. Anda dapat membatalkan pemblokiran nanti.", "chat_settings.leave.confirm": "Tinggalkan Obrolan", "chat_settings.leave.heading": "Tinggalkan Obrolan", "chat_settings.leave.message": "Apakah Anda yakin ingin keluar dari obrolan ini? Pesan akan dihapus untuk Anda dan obrolan ini akan dihapus dari kotak masuk Anda.", - "chat_settings.options.block_user": "Blokir @{akun}", + "chat_settings.options.block_user": "Blokir @{acct}", "chat_settings.options.leave_chat": "Tinggalkan Obrolan", "chat_settings.options.report_user": "Laporkan @{acct}", "chat_settings.options.unblock_user": "Buka Blokir @{acct}", @@ -265,13 +265,13 @@ "chat_settings.unblock.confirm": "Buka Blokir", "chat_settings.unblock.heading": "Buka Blokir @{acct}", "chat_settings.unblock.message": "Membuka blokir akan memungkinkan profil ini mengirim pesan langsung kepada Anda dan melihat konten Anda.", - "chat_window.auto_delete_label": "Hapus otomatis setelah {hari, jamak, satu {# hari} lainnya {# hari}}", + "chat_window.auto_delete_label": "Hapus otomatis setelah {day, plural, one {# day} lainya {# days}}", "chat_window.auto_delete_tooltip": "Pesan obrolan disetel untuk dihapus secara otomatis setelah {hari, jamak, satu {# hari} lainnya {# hari}} setelah dikirim.", "chats.actions.copy": "Salin", "chats.actions.delete": "Hapus untuk keduanya", "chats.actions.deleteForMe": "Hapus untuk saya", "chats.actions.more": "More", - "chats.actions.report": "Laporkan pengguna", + "chats.actions.report": "Laporkan", "chats.dividers.today": "Today", "chats.main.blankslate.new_chat": "Kirim pesan kepada seseorang", "chats.main.blankslate.subtitle": "Cari seseorang untuk diajak ngobrol", @@ -288,9 +288,9 @@ "colum.filters.expiration.never": "Tidak pernah", "column.admin.announcements": "Pengumuman", "column.admin.awaiting_approval": "Awaiting Approval", - "column.admin.create_announcement": "Buat pengumuman", + "column.admin.create_announcement": "Membuat pengumuman", "column.admin.dashboard": "Dashboard", - "column.admin.edit_announcement": "Sunting pengumuman", + "column.admin.edit_announcement": "Edit pengumuman", "column.admin.moderation_log": "Moderation Log", "column.admin.reports": "Reports", "column.admin.reports.menu.moderation_log": "Moderation Log", @@ -304,7 +304,7 @@ "column.app_create": "Create app", "column.backups": "Backups", "column.birthdays": "Birthdays", - "column.blocks": "Pengguna diblokir", + "column.blocks": "Blokir", "column.bookmarks": "Bookmarks", "column.chats": "Chats", "column.community": "Linimasa Lokal", @@ -333,30 +333,30 @@ "column.filters.delete_error": "Error deleting filter", "column.filters.drop_header": "Drop instead of hide", "column.filters.drop_hint": "Filtered posts will disappear irreversibly, even if filter is later removed", - "column.filters.edit": "Sunting Filter", + "column.filters.edit": "Edit Filter", "column.filters.expires": "Expire after", "column.filters.hide_header": "Sembunyikan sepenuhnya", - "column.filters.hide_hint": "Sembunyikan sepenuhnya konten yang difilter, alih-alih menampilkan peringatan", + "column.filters.hide_hint": "Menyembunyikan konten yang difilter sepenuhnya, alih-alih menampilkan peringatan", "column.filters.home_timeline": "Home timeline", "column.filters.keyword": "Keyword or phrase", - "column.filters.keywords": "Kata kunci atau frase", + "column.filters.keywords": "Kata kunci atau frasa", "column.filters.notifications": "Notifications", "column.filters.public_timeline": "Public timeline", "column.filters.subheading_add_new": "Add New Filter", "column.filters.title": "Judul", "column.filters.whole_word": "Seluruh kata", "column.follow_requests": "Permintaan mengikuti", - "column.followed_tags": "Hashtag yang diikuti", + "column.followed_tags": "Tagar yang diikuti", "column.followers": "Followers", "column.following": "Following", - "column.group_blocked_members": "Anggota yang Dibanned", - "column.group_pending_requests": "Permintaan tertunda", + "column.group_blocked_members": "Anggota yang diblokir", + "column.group_pending_requests": "Permintaan yang tertunda", "column.groups": "Grup", "column.home": "Beranda", "column.import_data": "Import data", "column.info": "Server information", "column.lists": "List", - "column.manage_group": "Kelola Grup", + "column.manage_group": "Mengelola grup", "column.mentions": "Mentions", "column.mfa": "Multi-Factor Authentication", "column.mfa_cancel": "Cancel", @@ -364,11 +364,11 @@ "column.mfa_disable_button": "Disable", "column.mfa_setup": "Proceed to Setup", "column.migration": "Account migration", - "column.mutes": "Pengguna yang dibisukan", + "column.mutes": "Bisukan", "column.notifications": "Notifikasi", "column.pins": "Pinned posts", "column.preferences": "Preferences", - "column.public": "Linimasa gabungan", + "column.public": "Linimasa Fediverse", "column.quotes": "Posting quotes", "column.reactions": "Reactions", "column.reblogs": "Reposts", @@ -382,7 +382,7 @@ "column_forbidden.title": "Forbidden", "common.cancel": "Cancel", "compare_history_modal.header": "Edit history", - "compose.character_counter.title": "Used {chars} out of {maxChars} characters", + "compose.character_counter.title": "Digunakan {chars} dari {maxChars} {maxChars, plural, one {character} lainya{characters}}", "compose.edit_success": "Your post was edited", "compose.invalid_schedule": "You must schedule a post at least 5 minutes out.", "compose.reply_group_indicator.message": "Memposting ke {groupLink}", @@ -403,11 +403,11 @@ "compose_event.fields.start_time_placeholder": "Acara dimulai pada…", "compose_event.participation_requests.authorize": "Mengizinkan", "compose_event.participation_requests.authorize_success": "Pengguna diterima", - "compose_event.participation_requests.reject": "Menolak", + "compose_event.participation_requests.reject": "Tolak", "compose_event.participation_requests.reject_success": "Pengguna ditolak", "compose_event.reset_location": "Setel ulang lokasi", "compose_event.submit_success": "Acara Anda telah dibuat", - "compose_event.tabs.edit": "Sunting detailnya", + "compose_event.tabs.edit": "Edit detailnya", "compose_event.tabs.pending": "Kelola permintaan", "compose_event.update": "Memperbarui", "compose_event.upload_banner": "Unggah spanduk acara", @@ -472,7 +472,7 @@ "confirmations.block_from_group.confirm": "Blokir", "confirmations.block_from_group.heading": "Larangan Dari Grup", "confirmations.block_from_group.message": "Apakah Anda yakin ingin mencekal @{name} dari grup?", - "confirmations.cancel.confirm": "Membuang", + "confirmations.cancel.confirm": "Buang", "confirmations.cancel.heading": "Buang postingan", "confirmations.cancel.message": "Apakah Anda yakin ingin membatalkan pembuatan postingan ini?", "confirmations.cancel_editing.confirm": "Cancel editing", @@ -486,7 +486,7 @@ "confirmations.delete_event.confirm": "Hapus", "confirmations.delete_event.heading": "Hapus Acara", "confirmations.delete_event.message": "Apakah Anda yakin ingin menghapus acara ini?", - "confirmations.delete_from_group.message": "Apakah Anda yakin ingin menghapus postingan @{name}?", + "confirmations.delete_from_group.message": "Apakah Anda yakin ingin menghapus kiriman @{nama}?", "confirmations.delete_group.confirm": "Hapus", "confirmations.delete_group.heading": "Hapus Group", "confirmations.delete_group.message": "Apakah Anda yakin ingin menghapus grup ini? Ini adalah tindakan permanen yang tidak dapat dibatalkan.", @@ -496,17 +496,17 @@ "confirmations.domain_block.confirm": "Sembunyikan keseluruhan domain", "confirmations.domain_block.heading": "Block {domain}", "confirmations.domain_block.message": "Apakah anda benar benar yakin untuk memblokir keseluruhan {domain}? Dalam kasus tertentu beberapa pemblokiran atau penyembunyian lebih baik.", - "confirmations.kick_from_group.confirm": "Menendang", + "confirmations.kick_from_group.confirm": "Tendangan", "confirmations.kick_from_group.message": "Apakah Anda yakin ingin mengeluarkan @{name} dari grup ini?", "confirmations.leave_event.confirm": "Tinggalkan acara", "confirmations.leave_event.message": "Jika Anda ingin bergabung kembali ke acara tersebut, permintaan akan ditinjau kembali secara manual. Apakah Anda yakin ingin melanjutkan?", "confirmations.leave_group.confirm": "Tinggalkan", "confirmations.leave_group.heading": "Tinggalkan grup", - "confirmations.leave_group.message": "Anda akan keluar dari grup. Apakah Anda ingin melanjutkan?", + "confirmations.leave_group.message": "Anda akan meninggalkan grup. Apakah Anda ingin melanjutkan?", "confirmations.mute.confirm": "Bisukan", "confirmations.mute.heading": "Mute @{name}", "confirmations.mute.message": "Apa anda yakin ingin membisukan {name}?", - "confirmations.mute_group.confirm": "Bisu", + "confirmations.mute_group.confirm": "Bisukan", "confirmations.mute_group.heading": "Bisukan Grup", "confirmations.mute_group.message": "Anda akan membisukan grup. Apakah Anda ingin melanjutkan?", "confirmations.redraft.confirm": "Hapus dan konsep ulang", @@ -523,14 +523,14 @@ "confirmations.revoke_session.confirm": "Revoke", "confirmations.revoke_session.heading": "Revoke current session", "confirmations.revoke_session.message": "You are about to revoke your current session. You will be signed out.", - "confirmations.scheduled_status_delete.confirm": "Cancel", + "confirmations.scheduled_status_delete.confirm": "Discard", "confirmations.scheduled_status_delete.heading": "Cancel scheduled post", "confirmations.scheduled_status_delete.message": "Are you sure you want to cancel this scheduled post?", "confirmations.unfollow.confirm": "Berhenti mengikuti", "copy.success": "Disalin ke papan klip!", "crypto_donate.explanation_box.message": "{siteTitle} accepts cryptocurrency donations. You may send a donation to any of the addresses below. Thank you for your support!", "crypto_donate.explanation_box.title": "Sending cryptocurrency donations", - "crypto_donate_panel.actions.view": "Click to see {count} {count, plural, one {wallet} other {wallets}}", + "crypto_donate_panel.actions.view": "Klik untuk melihat {count} {count, plural, one {wallet} lainya {wallets}}", "crypto_donate_panel.heading": "Donate Cryptocurrency", "crypto_donate_panel.intro.message": "{siteTitle} accepts cryptocurrency donations to fund our service. Thank you for your support!", "datepicker.day": "Day", @@ -554,7 +554,7 @@ "developers.navigation.network_error_label": "Network error", "developers.navigation.service_worker_label": "Service Worker", "developers.navigation.settings_store_label": "Settings store", - "developers.navigation.show_toast": "Pemicu Toast", + "developers.navigation.show_toast": "Pemicu Bersulang", "developers.navigation.test_timeline_label": "Test timeline", "developers.settings_store.advanced": "Advanced settings", "developers.settings_store.hint": "It is possible to directly edit your user settings here. BE CAREFUL! Editing this section can break your account, and you will only be able to recover through the API.", @@ -621,7 +621,7 @@ "emoji_button.search": "Cari...", "emoji_button.search_results": "Hasil pencarian", "emoji_button.skins_1": "Bawaan", - "emoji_button.skins_2": "Cahaya", + "emoji_button.skins_2": "Light", "emoji_button.skins_3": "Sedang-Ringan", "emoji_button.skins_4": "Sedang", "emoji_button.skins_5": "Sedang-Gelap", @@ -649,9 +649,9 @@ "empty_column.filters": "You haven't created any muted words yet.", "empty_column.follow_recommendations": "Looks like no suggestions could be generated for you. You can try using search to look for people you might know or explore trending hashtags.", "empty_column.follow_requests": "Anda belum memiliki permintaan mengikuti. Ketika Anda menerimanya, maka akan muncul disini.", - "empty_column.followed_tags": "Anda belum mengikuti hashtag apa pun.", + "empty_column.followed_tags": "Anda belum mengikuti tagar apa pun.", "empty_column.group": "Belum ada postingan di grup ini.", - "empty_column.group_blocks": "Grup ini belum melarang pengguna mana pun.", + "empty_column.group_blocks": "Grup ini belum mencekal pengguna mana pun.", "empty_column.group_membership_requests": "Tidak ada permintaan keanggotaan yang tertunda untuk grup ini.", "empty_column.hashtag": "Tidak ada apapun dalam hashtag ini.", "empty_column.home": "Linimasa anda kosong! Kunjungi {public} atau gunakan pencarian untuk memulai dan bertemu pengguna lain.", @@ -685,11 +685,11 @@ "event.location": "Lokasi", "event.manage": "Mengelola", "event.organized_by": "Diselenggarakan oleh {name}", - "event.participants": "{count} {rawCount, jamak, satu {orang} lainnya {orang}} hadir", + "event.participants": "{count} {rawCount, plural, one {person} lainya {people}} hadir", "event.quote": "Quote acara", "event.reblog": "Posting ulang acara", "event.show_on_map": "Tampilkan di peta", - "event.unreblog": "Batalkan pengeposan ulang acara", + "event.unreblog": "Batalkan memposting ulang acara", "event.website": "Tautan eksternal", "event_map.navigate": "Navigasi", "events.create_event": "Membuat acara", @@ -727,14 +727,14 @@ "filters.added": "Filter added.", "filters.context_header": "Filter contexts", "filters.context_hint": "One or multiple contexts where the filter should apply", - "filters.create_filter": "Buat filter", + "filters.create_filter": "Membuat filter", "filters.filters_list_context_label": "Filter contexts:", "filters.filters_list_drop": "Drop", - "filters.filters_list_expired": "Kedaluwarsa", + "filters.filters_list_expired": "Kadaluwarsa", "filters.filters_list_hide": "Hide", "filters.filters_list_hide_completely": "Sembunyikan konten", - "filters.filters_list_phrases_label": "Kata kunci atau frase:", - "filters.filters_list_warn": "Tampilkan peringatan", + "filters.filters_list_phrases_label": "Kata kunci atau frasa:", + "filters.filters_list_warn": "Menampilkan peringatan", "filters.removed": "Filter deleted.", "followRecommendations.heading": "Suggested Profiles", "follow_request.authorize": "Izinkan", @@ -745,47 +745,47 @@ "gdpr.title": "{siteTitle} uses cookies", "generic.saved": "Disimpan", "getting_started.open_source_notice": "{code_name} adalah perangkat lunak yang bersifat terbuka. Anda dapat berkontribusi atau melaporkan permasalahan/bug di Gitlab {code_link} (v{code_version}).", - "group.banned.message": "Anda dilarang dari {group}", + "group.banned.message": "Anda dicekal dari {group}", "group.cancel_request": "Batalkan permintaan", "group.delete.success": "Grup berhasil dihapus", "group.deleted.message": "Grup ini telah dihapus.", "group.demote.user.success": "@{name} sekarang menjadi anggota", "group.group_mod_authorize.fail": "Gagal menyetujui @{name}", - "group.group_mod_block": "Larangan dari grup", - "group.group_mod_block.success": "@{name} dilarang", + "group.group_mod_block": "Cekal dari grup", + "group.group_mod_block.success": "@{name} telah dicekal", "group.group_mod_demote": "Hapus peran {role}", - "group.group_mod_kick": "Keluarkan @{name} dari grup", - "group.group_mod_kick.success": "Keluarkan @{name} dari grup", + "group.group_mod_kick": "Tendang @{name} dari grup", + "group.group_mod_kick.success": "Tendang @{name} dari grup", "group.group_mod_promote_mod": "Tetapkan peran {role}", "group.group_mod_reject.fail": "Gagal menolak @{name}", - "group.group_mod_unblock": "Batalkan pelarangan", - "group.group_mod_unblock.success": "Membatalkan pemblokiran @{name} dari grup", - "group.header.alt": "Header grup", + "group.group_mod_unblock": "Batalkan pencekalan", + "group.group_mod_unblock.success": "Batalkan pencekalan @{name} dari grup", + "group.header.alt": "Tajuk grup", "group.join.private": "Minta Akses", - "group.join.public": "Bergabung ke grup", + "group.join.public": "Bergabung dengan Grup", "group.join.request_success": "Permintaan dikirim ke pemilik grup", "group.join.success": "Grup berhasil bergabung!", - "group.leave": "Meninggalkan grup", - "group.leave.label": "Meninggalkan", - "group.leave.success": "Keluar dari grup", - "group.manage": "Kelola Grup", - "group.member.admin.limit.summary": "Anda dapat menugaskan hingga {count, plural, one {admin} other {admins}} untuk grup saat ini.", + "group.leave": "Tinggalkan grup", + "group.leave.label": "Pergi.", + "group.leave.success": "Meninggalkan grup", + "group.manage": "Mengelola grup", + "group.member.admin.limit.summary": "Anda dapat menugaskan hingga {count, plural, one {admin} lainya {admins}} untuk grup saat ini.", "group.member.admin.limit.title": "Batas admin tercapai", - "group.mute.label": "Bisu", + "group.mute.label": "Bisukan", "group.mute.long_label": "Bisukan Grup", - "group.mute.success": "Membungkam grup", + "group.mute.success": "Membisukan grup", "group.popover.action": "Lihat Grup", "group.popover.summary": "Anda harus menjadi anggota grup untuk membalas status ini.", - "group.popover.title": "Keanggotaan diperlukan", + "group.popover.title": "Diperlukan keanggotaan", "group.privacy.locked": "Pribadi", - "group.privacy.locked.full": "Grup Tertutup", + "group.privacy.locked.full": "Grup Pribadi", "group.privacy.locked.info": "Dapat ditemukan. Pengguna dapat bergabung setelah permintaan mereka disetujui.", "group.privacy.public": "Publik", "group.privacy.public.full": "Grup Publik", - "group.privacy.public.info": "Dapat ditemukan. Siapapun bisa bergabung.", + "group.privacy.public.info": "Dapat ditemukan. Siapa pun bisa bergabung.", "group.private.message": "Konten hanya dapat dilihat oleh anggota grup", "group.promote.admin.confirmation.message": "Apakah Anda yakin ingin menetapkan peran admin ke @{name}?", - "group.promote.admin.confirmation.title": "Tetapkan Peran Admin", + "group.promote.admin.confirmation.title": "Menetapkan Peran Admin", "group.promote.admin.success": "@{name} sekarang menjadi admin", "group.report.label": "Laporkan", "group.role.admin": "Admin", @@ -795,56 +795,56 @@ "group.tabs.media": "Media", "group.tabs.members": "Anggota", "group.tabs.tags": "Topik", - "group.tags.empty": "Belum ada topik di grup ini.", + "group.tags.empty": "Belum ada topik dalam grup ini.", "group.tags.hidden.success": "Topik ditandai sebagai tersembunyi", "group.tags.hide": "Sembunyikan topik", - "group.tags.hint": "Tambahkan maksimal 3 kata kunci yang akan dijadikan topik inti diskusi di grup.", + "group.tags.hint": "Tambahkan hingga 3 kata kunci yang akan menjadi topik utama diskusi dalam grup.", "group.tags.label": "Tagar", - "group.tags.pin": "Sematkan topik", + "group.tags.pin": "Pin Topik", "group.tags.pin.success": "Disematkan!", "group.tags.show": "Tampilkan topik", "group.tags.total": "Keseluruhan Postingan", - "group.tags.unpin": "Lepas sematan topik", - "group.tags.unpin.success": "Sematan dilepaskan!", + "group.tags.unpin": "Batalkan pin topik", + "group.tags.unpin.success": "Pin dilepaskan!", "group.tags.visible.success": "Topik ditandai sebagai terlihat", - "group.unmute.label": "Batal membisukan.", - "group.unmute.long_label": "Suarakan Grup", + "group.unmute.label": "Bunyikan", + "group.unmute.long_label": "Batal Membisukan Grup", "group.unmute.success": "Membunyikan grup", "group.update.success": "Grup berhasil disimpan", - "group.upload_avatar": "Unggah Avatar", - "group.upload_banner": "Mengunggah foto", + "group.upload_avatar": "Unggah avatar", + "group.upload_banner": "Unggah foto", "group.upload_banner.title": "Unggah gambar latar belakang", "groups.discover.popular.empty": "Tidak dapat mengambil grup populer saat ini. Silakan periksa kembali nanti.", - "groups.discover.popular.show_more": "Tampilkan lebih banyak", + "groups.discover.popular.show_more": "Tampilkan Lebih Banyak", "groups.discover.popular.title": "Grup Populer", "groups.discover.search.error.subtitle": "Silakan coba lagi nanti.", "groups.discover.search.error.title": "Terjadi kesalahan", "groups.discover.search.no_results.subtitle": "Coba cari grup lain.", - "groups.discover.search.no_results.title": "Tidak ada kecocokan yang ditemukan", + "groups.discover.search.no_results.title": "Tidak ditemukan kecocokan", "groups.discover.search.placeholder": "Pencarian", "groups.discover.search.recent_searches.blankslate.subtitle": "Cari nama grup, topik atau kata kunci", "groups.discover.search.recent_searches.blankslate.title": "Tidak ada pencarian terbaru", - "groups.discover.search.recent_searches.clear_all": "Bersihkan semua", - "groups.discover.search.recent_searches.title": "Pencarian terkini", + "groups.discover.search.recent_searches.clear_all": "Hapus semua", + "groups.discover.search.recent_searches.title": "Pencarian terbaru", "groups.discover.search.results.groups": "Grup", - "groups.discover.search.results.member_count": "{anggota, jamak, satu {anggota} other {anggota}}", - "groups.discover.suggested.empty": "Saat ini tidak dapat mengambil grup yang disarankan. Silakan periksa kembali nanti.", - "groups.discover.suggested.show_more": "Tampilkan lebih banyak", - "groups.discover.suggested.title": "Saran Untuk Anda", + "groups.discover.search.results.member_count": "{members, plural, one {member} lainya {members}}", + "groups.discover.suggested.empty": "Tidak dapat mengambil grup yang disarankan saat ini. Silakan periksa kembali nanti.", + "groups.discover.suggested.show_more": "Tampilkan Lebih Banyak", + "groups.discover.suggested.title": "Disarankan Untuk Anda", "groups.discover.tags.empty": "Tidak dapat mengambil topik populer saat ini. Silakan periksa kembali nanti.", "groups.discover.tags.show_more": "Tampilkan Lebih Banyak", - "groups.discover.tags.title": "Telusuri Topik", + "groups.discover.tags.title": "Jelajahi Topik", "groups.discovery.tags.no_of_groups": "Jumlah grup", - "groups.empty.subtitle": "Mulailah menemukan grup untuk bergabung atau membuat grup Anda sendiri.", + "groups.empty.subtitle": "Mulailah menemukan grup untuk bergabung atau buat grup Anda sendiri.", "groups.empty.title": "Belum ada Grup", - "groups.pending.count": "{number, plural, one {# permintaan tertunda} other {# permintaan tertunda}}", + "groups.pending.count": "{number, plural, one {# pending request} lainya {# pending requests}}", "groups.pending.empty.subtitle": "Anda tidak memiliki permintaan yang tertunda saat ini.", "groups.pending.empty.title": "Tidak ada permintaan yang tertunda", "groups.pending.label": "Permintaan Tertunda", "groups.popular.label": "Grup yang Disarankan", "groups.search.placeholder": "Cari Grup Saya", "groups.suggested.label": "Grup yang Disarankan", - "groups.tags.title": "Telusuri Topik", + "groups.tags.title": "Jelajahi Topik", "hashtag.follow": "Ikuti tagar", "header.login.label": "Log in", "header.register.label": "Register", @@ -880,7 +880,7 @@ "keyboard_shortcuts.back": "untuk kembali", "keyboard_shortcuts.blocked": "buka daftar pengguna terblokir", "keyboard_shortcuts.boost": "untuk menyebarkan", - "keyboard_shortcuts.compose": "untuk fokus ke area penulisan", + "keyboard_shortcuts.compose": "untuk membuka area teks tulis", "keyboard_shortcuts.down": "untuk pindah ke bawah dalam sebuah daftar", "keyboard_shortcuts.enter": "untuk membuka status", "keyboard_shortcuts.favourite": "untuk memfavoritkan", @@ -943,33 +943,33 @@ "login_external.errors.instance_fail": "The instance returned an error.", "login_external.errors.network_fail": "Connection failed. Is a browser extension blocking it?", "login_form.header": "Sign In", - "manage_group.blocked_members": "Larang Anggota", + "manage_group.blocked_members": "Cekal Anggota", "manage_group.confirmation.copy": "Salin tautan", - "manage_group.confirmation.info_1": "Salin tautan Sebagai pemilik grup ini, Anda dapat menugaskan staf, menghapus postingan, dan banyak lagi.", + "manage_group.confirmation.info_1": "Sebagai pemilik grup ini, Anda dapat menugaskan staf, menghapus postingan, dan banyak lagi.", "manage_group.confirmation.info_2": "Posting postingan pertama grup dan mulailah percakapan.", "manage_group.confirmation.info_3": "Bagikan grup baru Anda dengan teman, keluarga, dan pengikut untuk mengembangkan keanggotaannya.", "manage_group.confirmation.share": "Bagikan grup ini", "manage_group.confirmation.title": "Anda sudah siap!", "manage_group.create": "Membuat grup", - "manage_group.delete_group": "Hapus Grup", + "manage_group.delete_group": "Menghapus grup", "manage_group.done": "Selesai", - "manage_group.edit_group": "Sunting Grup", - "manage_group.fields.cannot_change_hint": "Ini tidak dapat diubah setelah grup dibuat.", - "manage_group.fields.description_label": "Keterangan", - "manage_group.fields.description_placeholder": "Keterangan", + "manage_group.edit_group": "Edit grup", + "manage_group.fields.cannot_change_hint": "Hal ini tidak dapat diubah setelah grup dibuat.", + "manage_group.fields.description_label": "Deskripsi", + "manage_group.fields.description_placeholder": "Deskripsi", "manage_group.fields.hashtag_placeholder": "Tambahkan topik", - "manage_group.fields.name_help": "Ini tidak dapat diubah setelah grup dibuat.", + "manage_group.fields.name_help": "Hal ini tidak dapat diubah setelah grup dibuat.", "manage_group.fields.name_label": "Nama grup (wajib diisi)", "manage_group.fields.name_label_optional": "Nama grup", - "manage_group.fields.name_placeholder": "Nama grup", + "manage_group.fields.name_placeholder": "Nama Grup", "manage_group.get_started": "Mari kita mulai!", "manage_group.next": "Berikutnya", - "manage_group.pending_requests": "permintaan tertunda", - "manage_group.privacy.hint": "Pengaturan ini tidak dapat diubah lagi nanti.", - "manage_group.privacy.label": "Pengaturan Privasi", + "manage_group.pending_requests": "Permintaan yang tertunda", + "manage_group.privacy.hint": "Pengaturan ini tidak dapat diubah di kemudian hari.", + "manage_group.privacy.label": "Pengaturan privasi", "manage_group.privacy.private.hint": "Dapat ditemukan. Pengguna dapat bergabung setelah permintaan mereka disetujui.", - "manage_group.privacy.private.label": "Privasi (perlu persetujuan pemilik)", - "manage_group.privacy.public.hint": "Dapat ditemukan. Siapapun bisa bergabung.", + "manage_group.privacy.private.label": "Pribadi (Diperlukan persetujuan pemilik)", + "manage_group.privacy.public.hint": "Dapat ditemukan. Siapa pun bisa bergabung.", "manage_group.privacy.public.label": "Publik", "manage_group.tagline": "Grup menghubungkan Anda dengan orang lain berdasarkan minat yang sama.", "media_panel.empty_message": "No media found.", @@ -1022,7 +1022,7 @@ "navbar.login.username.placeholder": "Email or username", "navigation.chats": "Chats", "navigation.compose": "Compose", - "navigation.compose_group": "Tulis ke Grup", + "navigation.compose_group": "Menulis ke Grup", "navigation.dashboard": "Dashboard", "navigation.developers": "Developers", "navigation.direct_messages": "Messages", @@ -1037,15 +1037,15 @@ "navigation_bar.compose_edit": "Edit post", "navigation_bar.compose_event": "Kelola acara", "navigation_bar.compose_group": "Menulis ke grup", - "navigation_bar.compose_group_reply": "Membalas postingan grup", + "navigation_bar.compose_group_reply": "Membalas kiriman grup", "navigation_bar.compose_quote": "Quote post", "navigation_bar.compose_reply": "Reply to post", "navigation_bar.create_event": "Buat acara baru", - "navigation_bar.create_group": "Membuat grup", - "navigation_bar.create_group.private": "Buat Grup Pribadi", + "navigation_bar.create_group": "Membuat Grup", + "navigation_bar.create_group.private": "Membuat Grup Pribadi", "navigation_bar.create_group.public": "Buat Grup Publik", "navigation_bar.domain_blocks": "Domain tersembunyi", - "navigation_bar.edit_group": "Sunting Grup", + "navigation_bar.edit_group": "Edit Grup", "navigation_bar.favourites": "Favorit", "navigation_bar.filters": "Kata yang dibisukan", "navigation_bar.follow_requests": "Permintaan mengikuti", @@ -1058,16 +1058,16 @@ "navigation_bar.preferences": "Pengaturan", "navigation_bar.profile_directory": "Profile directory", "navigation_bar.soapbox_config": "Soapbox config", - "new_event_panel.action": "Membuat acara", + "new_event_panel.action": "Buat acara", "new_event_panel.subtitle": "Tidak dapat menemukan apa yang Anda cari? Jadwalkan acara Anda sendiri.", "new_event_panel.title": "Buat Acara Baru", - "new_group_panel.action": "Membuat grup", + "new_group_panel.action": "Buat grup", "new_group_panel.subtitle": "Tidak dapat menemukan apa yang Anda cari? Mulai grup pribadi atau publik Anda sendiri.", - "new_group_panel.title": "Membuat grup", + "new_group_panel.title": "Buat grup", "notification.favourite": "{name} menyukai status anda", "notification.follow": "{name} mengikuti anda", "notification.follow_request": "{name} has requested to follow you", - "notification.group_favourite": "{name} menyukai postingan grup Anda", + "notification.group_favourite": "{nama} menyukai kiriman grup Anda", "notification.group_reblog": "{nama} memposting ulang postingan grup Anda", "notification.mention": "{name} menyebut Anda", "notification.mentioned": "{name} mentioned you", @@ -1092,7 +1092,7 @@ "notifications.filter.mentions": "Sebutan", "notifications.filter.polls": "Hasil japat", "notifications.filter.statuses": "Updates from people you follow", - "notifications.group": "{count} notifikasi", + "notifications.group": "{count, plural, one {# notification} lainya {# notifications}}", "notifications.queue_label": "Click to see {count} new {count, plural, one {notification} other {notifications}}", "oauth_consumer.tooltip": "Sign in with {provider}", "oauth_consumers.title": "Other ways to sign in", @@ -1152,7 +1152,7 @@ "preferences.fields.content_type_label": "Default post format", "preferences.fields.delete_modal_label": "Show confirmation dialog before deleting a post", "preferences.fields.demetricator_label": "Use Demetricator", - "preferences.fields.demo_hint": "Gunakan logo dan skema warna bawaan Soapbox. Berguna untuk mengambil tangkapan layar.", + "preferences.fields.demo_hint": "Gunakan logo Soapbox default dan skema warna. Berguna untuk mengambil tangkapan layar.", "preferences.fields.demo_label": "Mode demo", "preferences.fields.display_media.default": "Hide media marked as sensitive", "preferences.fields.display_media.hide_all": "Always hide media", @@ -1161,7 +1161,7 @@ "preferences.fields.language_label": "Language", "preferences.fields.media_display_label": "Media display", "preferences.fields.missing_description_modal_label": "Show confirmation dialog before sending a post without media descriptions", - "preferences.fields.preserve_spoilers_label": "Pertahankan peringatan konten saat membalas", + "preferences.fields.preserve_spoilers_label": "Mempertahankan peringatan konten saat membalas", "preferences.fields.privacy_label": "Default post privacy", "preferences.fields.reduce_motion_label": "Reduce motion in animations", "preferences.fields.system_font_label": "Use system's default font", @@ -1229,7 +1229,7 @@ "remote_interaction.dislike": "Lanjutkan ke tidak suka", "remote_interaction.dislike_title": "Tidak menyukai postingan dari jarak jauh", "remote_interaction.divider": "or", - "remote_interaction.event_join": "Lanjutkan untuk bergabung", + "remote_interaction.event_join": "Proses untuk bergabung", "remote_interaction.event_join_title": "Bergabunglah dengan acara dari jarak jauh", "remote_interaction.favourite": "Proceed to like", "remote_interaction.favourite_title": "Like a post remotely", @@ -1346,7 +1346,7 @@ "soapbox_config.feed_injection_hint": "Inject the feed with additional content, such as suggested profiles.", "soapbox_config.feed_injection_label": "Feed injection", "soapbox_config.fields.crypto_addresses_label": "Cryptocurrency addresses", - "soapbox_config.fields.edit_theme_label": "Edit Tema", + "soapbox_config.fields.edit_theme_label": "Edit tema", "soapbox_config.fields.home_footer_fields_label": "Home footer items", "soapbox_config.fields.logo_label": "Logo", "soapbox_config.fields.promo_panel_fields_label": "Promo panel items", @@ -1365,7 +1365,7 @@ "soapbox_config.hints.promo_panel_icons.link": "Soapbox Icons List", "soapbox_config.home_footer.meta_fields.label_placeholder": "Label", "soapbox_config.home_footer.meta_fields.url_placeholder": "URL", - "soapbox_config.media_preview_hint": "Beberapa backend menyediakan versi media yang dioptimalkan untuk ditampilkan di garis waktu. Namun, gambar pratinjau ini mungkin terlalu kecil tanpa konfigurasi tambahan.", + "soapbox_config.media_preview_hint": "Sebagian backend menyediakan versi media yang dioptimalkan untuk ditampilkan dalam lini masa. Namun demikian, gambar pratinjau ini mungkin terlalu kecil tanpa konfigurasi tambahan.", "soapbox_config.media_preview_label": "Lebih memilih media pratinjau untuk thumbnail", "soapbox_config.promo_panel.meta_fields.icon_placeholder": "Icon", "soapbox_config.promo_panel.meta_fields.label_placeholder": "Label", @@ -1373,13 +1373,13 @@ "soapbox_config.raw_json_hint": "Edit data pengaturan secara langsung. Perubahan yang dilakukan langsung pada file JSON akan menggantikan kolom formulir di atas. Klik \"Simpan\" untuk menerapkan perubahan Anda.", "soapbox_config.raw_json_invalid": "tidak valid", "soapbox_config.raw_json_label": "Advanced: Edit raw JSON data", - "soapbox_config.redirect_root_no_login_hint": "Jalur untuk mengalihkan beranda saat pengguna tidak masuk.", - "soapbox_config.redirect_root_no_login_label": "Arahkan ulang beranda", + "soapbox_config.redirect_root_no_login_hint": "Jalur untuk mengarahkan beranda ketika pengguna tidak masuk.", + "soapbox_config.redirect_root_no_login_label": "Mengalihkan beranda", "soapbox_config.save": "Save", "soapbox_config.saved": "Soapbox config saved!", "soapbox_config.sentry_dsn_hint": "URL DSN untuk pelaporan kesalahan. Bekerja dengan Sentry dan GlitchTip.", "soapbox_config.sentry_dsn_label": "Sentry DSN", - "soapbox_config.tile_server_attribution_label": "Atribusi ubin peta", + "soapbox_config.tile_server_attribution_label": "Map tiles attribution", "soapbox_config.tile_server_label": "Map tile server", "soapbox_config.verified_can_edit_name_label": "Allow verified users to edit their own display name.", "status.admin_account": "Open moderation interface for @{name}", @@ -1391,7 +1391,7 @@ "status.cancel_reblog_private": "Un-repost", "status.cannot_reblog": "This post cannot be reposted", "status.chat": "Chat with @{name}", - "status.copy": "Copy link to post", + "status.copy": "Salin Tautan ke Posting", "status.delete": "Hapus", "status.detailed_status": "Detailed conversation view", "status.direct": "Direct message @{name}", @@ -1403,16 +1403,16 @@ "status.favourite": "Difavoritkan", "status.filtered": "Filtered", "status.group": "Diposting di {grup}", - "status.group_mod_delete": "Hapus postingan dari grup", - "status.interactions.dislikes": "{count, plural, one {Tidak suka} other {Tidak suka}}", + "status.group_mod_delete": "Menghapus postingan dari grup", + "status.interactions.dislikes": "{count, plural, one {Dislike} lainya {Dislikes}}", "status.interactions.favourites": "{count, plural, one {Like} other {Likes}}", - "status.interactions.quotes": "{hitungan, jamak, satu {Kutipan} lainnya {Kutipan}}", + "status.interactions.quotes": "{count, plural, one {Quote} lainya {Quotes}}", "status.interactions.reblogs": "{count, plural, one {Repost} other {Reposts}}", "status.load_more": "Tampilkan semua", "status.mention": "Balasan @{name}", "status.more": "More", "status.mute_conversation": "Mute conversation", - "status.open": "Tampilkan status ini", + "status.open": "Tampilkan Detail Kiriman", "status.pin": "Pin on profile", "status.pin_to_group": "Sematkan ke Grup", "status.pin_to_group.success": "Disematkan ke Grup!", @@ -1440,11 +1440,11 @@ "status.sensitive_warning": "Konten sensitif", "status.sensitive_warning.subtitle": "This content may not be suitable for all audiences.", "status.share": "Share", - "status.show_filter_reason": "Tetap tunjukkan", + "status.show_filter_reason": "Tunjukkan saja.", "status.show_less_all": "Show less for all", "status.show_more_all": "Show more for all", "status.show_original": "Show original", - "status.title": "Post", + "status.title": "Detail Kiriman", "status.title_direct": "Direct message", "status.translate": "Translate", "status.translated_from_with": "Translated from {lang} using {provider}", @@ -1452,7 +1452,7 @@ "status.unbookmarked": "Bookmark removed.", "status.unmute_conversation": "Unmute conversation", "status.unpin": "Unpin from profile", - "status.unpin_to_group": "Lepas sematan dari Grup", + "status.unpin_to_group": "Lepas pin dari Grup", "status_list.queue_label": "Click to see {count} new {count, plural, one {post} other {posts}}", "statuses.quote_tombstone": "Post is unavailable.", "statuses.tombstone": "One or more posts are unavailable.", @@ -1478,12 +1478,12 @@ "tabs_bar.profile": "Profile", "tabs_bar.search": "Search", "tabs_bar.settings": "Settings", - "textarea.counter.label": "{count} karakter tersisa", - "theme_editor.Reset": "Mengatur ulang", + "textarea.counter.label": "{count} karakter yang tersisa", + "theme_editor.Reset": "Atur ulang", "theme_editor.export": "Ekspor tema", "theme_editor.import": "Impor tema", "theme_editor.import_success": "Tema berhasil diimpor!", - "theme_editor.restore": "Kembalikan tema bawaan", + "theme_editor.restore": "Kembalikan tema default", "theme_editor.save": "Simpan tema", "theme_editor.saved": "Tema diperbarui!", "theme_toggle.dark": "Dark", @@ -1508,7 +1508,7 @@ "upload_error.image_size_limit": "Image exceeds the current file size limit ({limit})", "upload_error.limit": "File upload limit exceeded.", "upload_error.poll": "File upload not allowed with polls.", - "upload_error.video_duration_limit": "Video exceeds the current duration limit ({limit} seconds)", + "upload_error.video_duration_limit": "Video melebihi batas durasi saat ini ({limit, plural, one {# second} lainya {# seconds}})", "upload_error.video_size_limit": "Video exceeds the current file size limit ({limit})", "upload_form.description": "Deskripsikan untuk mereka yang tidak bisa melihat dengan jelas", "upload_form.preview": "Preview", From d43f5b50224b29bfc8dfbf76d645a9924f2207c9 Mon Sep 17 00:00:00 2001 From: LibreTranslate Date: Mon, 11 Dec 2023 16:00:54 +0000 Subject: [PATCH 10/23] Translated using Weblate (Indonesian) Currently translated at 100.0% (1526 of 1526 strings) Translation: Soapbox/Soapbox Translate-URL: https://hosted.weblate.org/projects/soapbox-pub/soapbox/id/ --- src/locales/id.json | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/locales/id.json b/src/locales/id.json index 55b81371e..7b7b8ae9c 100644 --- a/src/locales/id.json +++ b/src/locales/id.json @@ -164,8 +164,8 @@ "alert.unexpected.links.support": "Support", "alert.unexpected.message": "Terjadi kesalahan yang tidak terduga.", "alert.unexpected.return_home": "Return Home", - "alert.unexpected.submit_feedback": "Berikan umpan balik", - "alert.unexpected.thanks": "Terima kasih atas tanggapan Anda!", + "alert.unexpected.submit_feedback": "Kirim Umpan balik", + "alert.unexpected.thanks": "Terima kasih atas umpan balik Anda!", "aliases.account.add": "Buat alias", "aliases.account_label": "Old account:", "aliases.aliases_list_delete": "Batalkan tautan alias", @@ -429,7 +429,7 @@ "compose_form.poll.remove_option": "Hapus opsi ini", "compose_form.poll.switch_to_multiple": "Change poll to allow multiple choices", "compose_form.poll.switch_to_single": "Change poll to allow for a single choice", - "compose_form.poll_placeholder": "Tambahkan topik jajak pendapat…", + "compose_form.poll_placeholder": "Tambahkan topik poll..", "compose_form.publish": "Publish", "compose_form.publish_loud": "{publish}!", "compose_form.save_changes": "Save changes", @@ -1377,7 +1377,7 @@ "soapbox_config.redirect_root_no_login_label": "Mengalihkan beranda", "soapbox_config.save": "Save", "soapbox_config.saved": "Soapbox config saved!", - "soapbox_config.sentry_dsn_hint": "URL DSN untuk pelaporan kesalahan. Bekerja dengan Sentry dan GlitchTip.", + "soapbox_config.sentry_dsn_hint": "URL DSN untuk pelaporan kesalahan. Sentry dan GlitchTip.", "soapbox_config.sentry_dsn_label": "Sentry DSN", "soapbox_config.tile_server_attribution_label": "Map tiles attribution", "soapbox_config.tile_server_label": "Map tile server", From 0b06f04271f04926abc44e150643df5f89b3a3b2 Mon Sep 17 00:00:00 2001 From: Alex Gleason Date: Wed, 20 Dec 2023 19:36:18 -0600 Subject: [PATCH 11/23] Upgrade tailwindcss to v3.4.0 --- package.json | 6 +++--- yarn.lock | 40 ++++++++++++++++++++-------------------- 2 files changed, 23 insertions(+), 23 deletions(-) diff --git a/package.json b/package.json index c60e9e1c0..de40cfe6a 100644 --- a/package.json +++ b/package.json @@ -68,8 +68,8 @@ "@soapbox.pub/wasmboy": "^0.8.0", "@tabler/icons": "^2.0.0", "@tailwindcss/aspect-ratio": "^0.4.2", - "@tailwindcss/forms": "^0.5.3", - "@tailwindcss/typography": "^0.5.9", + "@tailwindcss/forms": "^0.5.7", + "@tailwindcss/typography": "^0.5.10", "@tanstack/react-query": "^5.0.0", "@types/escape-html": "^1.0.1", "@types/http-link-header": "^1.0.3", @@ -209,7 +209,7 @@ "rollup-plugin-visualizer": "^5.9.2", "stylelint": "^15.10.3", "stylelint-config-standard-scss": "^11.0.0", - "tailwindcss": "^3.3.3", + "tailwindcss": "^3.4.0", "vite-plugin-checker": "^0.6.2", "vite-plugin-pwa": "^0.17.0", "vitest": "^0.34.4" diff --git a/yarn.lock b/yarn.lock index d73e3e974..11f033b0b 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2161,17 +2161,17 @@ resolved "https://registry.yarnpkg.com/@tailwindcss/aspect-ratio/-/aspect-ratio-0.4.2.tgz#9ffd52fee8e3c8b20623ff0dcb29e5c21fb0a9ba" integrity sha512-8QPrypskfBa7QIMuKHg2TA7BqES6vhBrDLOv8Unb6FcFyd3TjKbc6lcmb9UPQHxfl24sXoJ41ux/H7qQQvfaSQ== -"@tailwindcss/forms@^0.5.3": - version "0.5.3" - resolved "https://registry.yarnpkg.com/@tailwindcss/forms/-/forms-0.5.3.tgz#e4d7989686cbcaf416c53f1523df5225332a86e7" - integrity sha512-y5mb86JUoiUgBjY/o6FJSFZSEttfb3Q5gllE4xoKjAAD+vBrnIhE4dViwUuow3va8mpH4s9jyUbUbrRGoRdc2Q== +"@tailwindcss/forms@^0.5.7": + version "0.5.7" + resolved "https://registry.yarnpkg.com/@tailwindcss/forms/-/forms-0.5.7.tgz#db5421f062a757b5f828bc9286ba626c6685e821" + integrity sha512-QE7X69iQI+ZXwldE+rzasvbJiyV/ju1FGHH0Qn2W3FKbuYtqp8LKcy6iSw79fVUT5/Vvf+0XgLCeYVG+UV6hOw== dependencies: mini-svg-data-uri "^1.2.3" -"@tailwindcss/typography@^0.5.9": - version "0.5.9" - resolved "https://registry.yarnpkg.com/@tailwindcss/typography/-/typography-0.5.9.tgz#027e4b0674929daaf7c921c900beee80dbad93e8" - integrity sha512-t8Sg3DyynFysV9f4JDOVISGsjazNb48AeIYQwcL+Bsq5uf4RYL75C1giZ43KISjeDGBaTN3Kxh7Xj/vRSMJUUg== +"@tailwindcss/typography@^0.5.10": + version "0.5.10" + resolved "https://registry.yarnpkg.com/@tailwindcss/typography/-/typography-0.5.10.tgz#2abde4c6d5c797ab49cf47610830a301de4c1e0a" + integrity sha512-Pe8BuPJQJd3FfRnm6H0ulKIGoMEQS+Vq01R6M5aCrFB/ccR/shT+0kXLjouGC1gFLm9hopTFN+DMP0pfwRWzPw== dependencies: lodash.castarray "^4.4.0" lodash.isplainobject "^4.0.6" @@ -4671,7 +4671,7 @@ fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== -fast-glob@^3.2.11, fast-glob@^3.2.12, fast-glob@^3.2.5, fast-glob@^3.2.7, fast-glob@^3.2.9, fast-glob@^3.3.1: +fast-glob@^3.2.11, fast-glob@^3.2.5, fast-glob@^3.2.7, fast-glob@^3.2.9, fast-glob@^3.3.1: version "3.3.1" resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.3.1.tgz#784b4e897340f3dbbef17413b3f11acf03c874c4" integrity sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg== @@ -4682,7 +4682,7 @@ fast-glob@^3.2.11, fast-glob@^3.2.12, fast-glob@^3.2.5, fast-glob@^3.2.7, fast-g merge2 "^1.3.0" micromatch "^4.0.4" -fast-glob@^3.3.2: +fast-glob@^3.3.0, fast-glob@^3.3.2: version "3.3.2" resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.3.2.tgz#a904501e57cfdd2ffcded45e99a54fef55e46129" integrity sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow== @@ -5685,10 +5685,10 @@ jest-worker@^27.4.5: merge-stream "^2.0.0" supports-color "^8.0.0" -jiti@^1.18.2: - version "1.20.0" - resolved "https://registry.yarnpkg.com/jiti/-/jiti-1.20.0.tgz#2d823b5852ee8963585c8dd8b7992ffc1ae83b42" - integrity sha512-3TV69ZbrvV6U5DfQimop50jE9Dl6J8O1ja1dvBbMba/sZ3YBEQqJ2VZRoQPVnhlzjNtU1vaXRZVrVjU4qtm8yA== +jiti@^1.19.1: + version "1.21.0" + resolved "https://registry.yarnpkg.com/jiti/-/jiti-1.21.0.tgz#7c97f8fe045724e136a397f7340475244156105d" + integrity sha512-gFqAIbuKyyso/3G2qhiO2OM6shY6EPP/R0+mkDbyspxKazh8BXDC5FiFsUjlczgdNz/vfra0da2y+aHrusLG/Q== js-base64@^3.6.0: version "3.7.5" @@ -8433,20 +8433,20 @@ table@^6.8.1: string-width "^4.2.3" strip-ansi "^6.0.1" -tailwindcss@^3.3.3: - version "3.3.3" - resolved "https://registry.yarnpkg.com/tailwindcss/-/tailwindcss-3.3.3.tgz#90da807393a2859189e48e9e7000e6880a736daf" - integrity sha512-A0KgSkef7eE4Mf+nKJ83i75TMyq8HqY3qmFIJSWy8bNt0v1lG7jUcpGpoTFxAwYcWOphcTBLPPJg+bDfhDf52w== +tailwindcss@^3.4.0: + version "3.4.0" + resolved "https://registry.yarnpkg.com/tailwindcss/-/tailwindcss-3.4.0.tgz#045a9c474e6885ebd0436354e611a76af1c76839" + integrity sha512-VigzymniH77knD1dryXbyxR+ePHihHociZbXnLZHUyzf2MMs2ZVqlUrZ3FvpXP8pno9JzmILt1sZPD19M3IxtA== dependencies: "@alloc/quick-lru" "^5.2.0" arg "^5.0.2" chokidar "^3.5.3" didyoumean "^1.2.2" dlv "^1.1.3" - fast-glob "^3.2.12" + fast-glob "^3.3.0" glob-parent "^6.0.2" is-glob "^4.0.3" - jiti "^1.18.2" + jiti "^1.19.1" lilconfig "^2.1.0" micromatch "^4.0.5" normalize-path "^3.0.0" From 154fa0c0ed62fafeb1f5e5d2c2837dc642163342 Mon Sep 17 00:00:00 2001 From: Alex Gleason Date: Wed, 20 Dec 2023 20:34:09 -0600 Subject: [PATCH 12/23] Convert Tailwind config to TypeScript --- .eslintrc.cjs | 4 +- tailwind.config.cjs => tailwind.config.ts | 18 +++++--- tailwind/colors.cjs | 46 -------------------- tailwind/{colors.test.js => colors.test.ts} | 11 +++-- tailwind/colors.ts | 47 +++++++++++++++++++++ 5 files changed, 66 insertions(+), 60 deletions(-) rename tailwind.config.cjs => tailwind.config.ts (89%) delete mode 100644 tailwind/colors.cjs rename tailwind/{colors.test.js => colors.test.ts} (74%) create mode 100644 tailwind/colors.ts diff --git a/.eslintrc.cjs b/.eslintrc.cjs index 29a8d474a..d3089ab4a 100644 --- a/.eslintrc.cjs +++ b/.eslintrc.cjs @@ -61,7 +61,7 @@ module.exports = { 'URLSearchParams', // core-js ], tailwindcss: { - config: 'tailwind.config.cjs', + config: 'tailwind.config.ts', }, }, @@ -268,7 +268,7 @@ module.exports = { 'error', { classRegex: '^(base|container|icon|item|list|outer|wrapper)?[c|C]lass(Name)?$', - config: 'tailwind.config.cjs', + config: 'tailwind.config.ts', }, ], 'tailwindcss/migration-from-tailwind-2': 'error', diff --git a/tailwind.config.cjs b/tailwind.config.ts similarity index 89% rename from tailwind.config.cjs rename to tailwind.config.ts index 2e30e6d29..b108490cf 100644 --- a/tailwind.config.cjs +++ b/tailwind.config.ts @@ -1,7 +1,11 @@ -const { parseColorMatrix } = require('./tailwind/colors.cjs'); +import aspectRatioPlugin from '@tailwindcss/aspect-ratio'; +import formsPlugin from '@tailwindcss/forms'; +import typographyPlugin from '@tailwindcss/typography'; +import { type Config } from 'tailwindcss'; -/** @type {import('tailwindcss').Config} */ -module.exports = { +import { parseColorMatrix } from './tailwind/colors'; + +const config: Config = { content: ['./src/**/*.{html,js,ts,tsx}', './custom/instance/**/*.html', './index.html'], darkMode: 'class', theme: { @@ -98,8 +102,10 @@ module.exports = { }, }, plugins: [ - require('@tailwindcss/forms'), - require('@tailwindcss/typography'), - require('@tailwindcss/aspect-ratio'), + aspectRatioPlugin, + formsPlugin, + typographyPlugin, ], }; + +export default config; \ No newline at end of file diff --git a/tailwind/colors.cjs b/tailwind/colors.cjs deleted file mode 100644 index 412de7d3f..000000000 --- a/tailwind/colors.cjs +++ /dev/null @@ -1,46 +0,0 @@ -// https://tailwindcss.com/docs/customizing-colors#using-css-variables -function withOpacityValue(variable) { - return ({ opacityValue }) => { - if (opacityValue === undefined) { - return `rgb(var(${variable}))`; - } - return `rgb(var(${variable}) / ${opacityValue})`; - }; -} - -// Parse a single color as a CSS variable -const toColorVariable = (colorName, tint = null) => { - const suffix = tint ? `-${tint}` : ''; - const variable = `--color-${colorName}${suffix}`; - - return withOpacityValue(variable); -}; - -// Parse list of tints into Tailwind function with CSS variables -const parseTints = (colorName, tints) => { - return tints.reduce((colorObj, tint) => { - colorObj[tint] = toColorVariable(colorName, tint); - return colorObj; - }, {}); -}; - -// Parse color matrix into Tailwind color palette -const parseColorMatrix = colorMatrix => { - return Object.entries(colorMatrix).reduce((palette, colorData) => { - const [colorName, tints] = colorData; - - // Conditionally parse array or single-tint colors - if (Array.isArray(tints)) { - palette[colorName] = parseTints(colorName, tints); - } else if (tints === true) { - palette[colorName] = toColorVariable(colorName); - } - - return palette; - }, {}); -}; - -module.exports = { - withOpacityValue, - parseColorMatrix, -}; diff --git a/tailwind/colors.test.js b/tailwind/colors.test.ts similarity index 74% rename from tailwind/colors.test.js rename to tailwind/colors.test.ts index 90ac55fd4..426de1db2 100644 --- a/tailwind/colors.test.js +++ b/tailwind/colors.test.ts @@ -1,7 +1,7 @@ import { withOpacityValue, parseColorMatrix, -} from './colors.cjs'; +} from './colors'; describe('withOpacityValue()', () => { it('returns a Tailwind color function with alpha support', () => { @@ -11,8 +11,7 @@ describe('withOpacityValue()', () => { expect(typeof result).toBe('function'); // Test calling the function - expect(result({})).toBe('rgb(var(--color-primary-500))'); - expect(result({ opacityValue: .5 })).toBe('rgb(var(--color-primary-500) / 0.5)'); + expect(result).toBe('rgb(var(--color-primary-500) / )'); }); }); @@ -29,8 +28,8 @@ describe('parseColorMatrix()', () => { const result = parseColorMatrix(colorMatrix); // Colors are mapped to functions which return CSS values - expect(result.primary[500]({})).toEqual('rgb(var(--color-primary-500))'); - expect(result.accent[300]({ opacityValue: .3 })).toEqual('rgb(var(--color-accent-300) / 0.3)'); + // @ts-ignore + expect(result.accent['300']).toEqual('rgb(var(--color-accent-300) / )'); }); it('parses single-tint values', () => { @@ -46,6 +45,6 @@ describe('parseColorMatrix()', () => { const result = parseColorMatrix(colorMatrix); - expect(result['gradient-start']({ opacityValue: .7 })).toEqual('rgb(var(--color-gradient-start) / 0.7)'); + expect(result['gradient-start']).toEqual('rgb(var(--color-gradient-start) / )'); }); }); diff --git a/tailwind/colors.ts b/tailwind/colors.ts new file mode 100644 index 000000000..089d29844 --- /dev/null +++ b/tailwind/colors.ts @@ -0,0 +1,47 @@ +import { type RecursiveKeyValuePair } from 'tailwindcss/types/config'; + +/** https://tailwindcss.com/docs/customizing-colors#using-css-variables */ +function withOpacityValue(variable: string): string { + return `rgb(var(${variable}) / )`; +} + +/** Parse a single color as a CSS variable. */ +const toColorVariable = (colorName: string, tint: number | null = null): string => { + const suffix = tint ? `-${tint}` : ''; + const variable = `--color-${colorName}${suffix}`; + + return withOpacityValue(variable); +}; + +/** Parse list of tints into Tailwind function with CSS variables. */ +const parseTints = (colorName: string, tints: number[]): RecursiveKeyValuePair => { + return tints.reduce>((colorObj, tint) => { + colorObj[tint] = toColorVariable(colorName, tint); + return colorObj; + }, {}); +}; + +interface ColorMatrix { + [colorName: string]: number[] | boolean; +} + +/** Parse color matrix into Tailwind color palette. */ +const parseColorMatrix = (colorMatrix: ColorMatrix): RecursiveKeyValuePair => { + return Object.entries(colorMatrix).reduce((palette, colorData) => { + const [colorName, tints] = colorData; + + // Conditionally parse array or single-tint colors + if (Array.isArray(tints)) { + palette[colorName] = parseTints(colorName, tints); + } else if (tints === true) { + palette[colorName] = toColorVariable(colorName); + } + + return palette; + }, {}); +}; + +export { + withOpacityValue, + parseColorMatrix, +}; From 8108ac2a679a496cddff53bb1e0d3990131bd4af Mon Sep 17 00:00:00 2001 From: Alex Gleason Date: Wed, 20 Dec 2023 21:17:33 -0600 Subject: [PATCH 13/23] yarn lint:js --fix --- src/components/big-card.tsx | 2 +- src/components/gdpr-banner.tsx | 2 +- src/components/site-error-boundary.tsx | 2 +- src/components/ui/select/select.tsx | 2 +- src/components/ui/tag-input/tag-input.tsx | 2 +- src/components/ui/textarea/textarea.tsx | 2 +- src/features/account/components/header.tsx | 4 ++-- src/features/aliases/components/search.tsx | 2 +- src/features/auth-login/components/consumers-list.tsx | 2 +- src/features/chats/components/chat-page/chat-page.tsx | 4 ++-- .../components/chat-page/components/chat-page-main.tsx | 2 +- .../chats/components/chat-page/components/chat-page-new.tsx | 2 +- .../components/chat-page/components/chat-page-settings.tsx | 2 +- src/features/chats/components/chat-textarea.tsx | 6 +++--- src/features/edit-profile/components/header-picker.tsx | 2 +- src/features/event/components/event-header.tsx | 4 ++-- src/features/feed-suggestions/feed-suggestions.tsx | 2 +- src/features/group/components/group-header.tsx | 6 +++--- src/features/onboarding/steps/fediverse-step.tsx | 2 +- .../placeholder/components/placeholder-notification.tsx | 2 +- .../modals/compose-event-modal/compose-event-modal.tsx | 4 ++-- .../modals/manage-group-modal/steps/confirmation-step.tsx | 2 +- src/features/ui/components/navbar.tsx | 4 ++-- src/features/ui/index.tsx | 2 +- src/pages/home-page.tsx | 2 +- src/pages/landing-page.tsx | 2 +- 26 files changed, 35 insertions(+), 35 deletions(-) diff --git a/src/components/big-card.tsx b/src/components/big-card.tsx index 895ac1298..f71c86480 100644 --- a/src/components/big-card.tsx +++ b/src/components/big-card.tsx @@ -12,7 +12,7 @@ const BigCard: React.FC = ({ title, subtitle, children }) => { return ( -
+
{title} {subtitle && {subtitle}} diff --git a/src/components/gdpr-banner.tsx b/src/components/gdpr-banner.tsx index 288a5e421..75bc16bad 100644 --- a/src/components/gdpr-banner.tsx +++ b/src/components/gdpr-banner.tsx @@ -28,7 +28,7 @@ const GdprBanner: React.FC = () => { return ( -
+
diff --git a/src/components/site-error-boundary.tsx b/src/components/site-error-boundary.tsx index 3f39efc25..19a22a0c8 100644 --- a/src/components/site-error-boundary.tsx +++ b/src/components/site-error-boundary.tsx @@ -84,7 +84,7 @@ const SiteErrorBoundary: React.FC = ({ children }) => {
-

+

diff --git a/src/components/ui/select/select.tsx b/src/components/ui/select/select.tsx index 888868a58..4c4c6c2c1 100644 --- a/src/components/ui/select/select.tsx +++ b/src/components/ui/select/select.tsx @@ -13,7 +13,7 @@ const Select = React.forwardRef((props, ref) => { = () => { if (providers.length > 0) { return ( - + diff --git a/src/features/chats/components/chat-page/chat-page.tsx b/src/features/chats/components/chat-page/chat-page.tsx index 16b5e2d0b..344b7a90a 100644 --- a/src/features/chats/components/chat-page/chat-page.tsx +++ b/src/features/chats/components/chat-page/chat-page.tsx @@ -60,7 +60,7 @@ const ChatPage: React.FC = ({ chatId }) => {

{isOnboarded ? (
= ({ chatId }) => { data-testid='chat-page' > diff --git a/src/features/chats/components/chat-page/components/chat-page-main.tsx b/src/features/chats/components/chat-page/components/chat-page-main.tsx index 89371c4da..6a9acd1e2 100644 --- a/src/features/chats/components/chat-page/components/chat-page-main.tsx +++ b/src/features/chats/components/chat-page/components/chat-page-main.tsx @@ -121,7 +121,7 @@ const ChatPageMain = () => { history.push('/chats')} /> diff --git a/src/features/chats/components/chat-page/components/chat-page-new.tsx b/src/features/chats/components/chat-page/components/chat-page-new.tsx index 0a60c56b4..ed9535efd 100644 --- a/src/features/chats/components/chat-page/components/chat-page-new.tsx +++ b/src/features/chats/components/chat-page/components/chat-page-new.tsx @@ -24,7 +24,7 @@ const ChatPageNew: React.FC = () => { history.push('/chats')} /> diff --git a/src/features/chats/components/chat-page/components/chat-page-settings.tsx b/src/features/chats/components/chat-page/components/chat-page-settings.tsx index cb637a36e..d042b75ac 100644 --- a/src/features/chats/components/chat-page/components/chat-page-settings.tsx +++ b/src/features/chats/components/chat-page/components/chat-page-settings.tsx @@ -51,7 +51,7 @@ const ChatPageSettings = () => { history.push('/chats')} /> diff --git a/src/features/chats/components/chat-textarea.tsx b/src/features/chats/components/chat-textarea.tsx index a8269b0c0..f85d897d5 100644 --- a/src/features/chats/components/chat-textarea.tsx +++ b/src/features/chats/components/chat-textarea.tsx @@ -39,9 +39,9 @@ const ChatTextarea: React.FC = React.forwardRef(({ bg-white text-gray-900 shadow-sm placeholder:text-gray-600 focus-within:border-primary-500 - focus-within:ring-1 focus-within:ring-primary-500 dark:border-gray-800 dark:bg-gray-800 - dark:text-gray-100 dark:ring-1 dark:ring-gray-800 dark:placeholder:text-gray-600 dark:focus-within:border-primary-500 - dark:focus-within:ring-primary-500 sm:text-sm + focus-within:ring-1 focus-within:ring-primary-500 sm:text-sm dark:border-gray-800 + dark:bg-gray-800 dark:text-gray-100 dark:ring-1 dark:ring-gray-800 dark:placeholder:text-gray-600 + dark:focus-within:border-primary-500 dark:focus-within:ring-primary-500 `} > {(!!attachments?.length || isUploading) && ( diff --git a/src/features/edit-profile/components/header-picker.tsx b/src/features/edit-profile/components/header-picker.tsx index 13f555844..3176876c6 100644 --- a/src/features/edit-profile/components/header-picker.tsx +++ b/src/features/edit-profile/components/header-picker.tsx @@ -36,7 +36,7 @@ const HeaderPicker = React.forwardRef(({ src, onC