diff --git a/resources/desktop/rssguard.metainfo.xml.in b/resources/desktop/rssguard.metainfo.xml.in
index 2fe4206f0..df6d10df8 100644
--- a/resources/desktop/rssguard.metainfo.xml.in
+++ b/resources/desktop/rssguard.metainfo.xml.in
@@ -47,7 +47,7 @@
https://github.com/martinrotter/rssguard
https://github.com/martinrotter/rssguard/issues
https://github.com/sponsors/martinrotter
- https://explore.transifex.com/martinrotter/rssguard
+ https://crowdin.com/project/rssguard
ATOM
JSON
diff --git a/resources/docs/Documentation.md b/resources/docs/Documentation.md
index 78b4ebc3f..5e7af9667 100644
--- a/resources/docs/Documentation.md
+++ b/resources/docs/Documentation.md
@@ -638,13 +638,9 @@ After starting RSS Guard this way, reproduce your issue and attach the log file
For broader questions and general ideas, use the [Discussions page](https://github.com/martinrotter/rssguard/discussions).
### Localization
-RSS Guard supports localization to [many languages](https://app.transifex.com/martinrotter/rssguard).
+RSS Guard supports localization to [many languages](https://crowdin.com/project/rssguard).
-If you are interested in translating RSS Guard, then do this:
-
-1. Go [to RSS Guard's page on Transifex](https://app.transifex.com/martinrotter/rssguard) and check status of currently supported localizations.
-
-2. [Create a Transifex account](http://www.transifex.com/signin) (you can use social networks to login), and work on existing translations. If no translation team for your country/language exists, then ask to create the "localization team" via the website.
+If you are interested in translating RSS Guard, then go to [RSS Guard page on Crowdin](https://crowdin.com/project/rssguard) and check status of currently supported localizations.
**All translators commit themselves to keep their translations up-to-date. If translation is not updated by the author regularly, and only a small number of strings is translated, then those translations along with their teams will eventually be REMOVED from the project!!! At least 50% of strings must be translated for translation to be added to project.**
diff --git a/resources/scripts/transka b/resources/scripts/transka
deleted file mode 160000
index 0636cd797..000000000
--- a/resources/scripts/transka
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit 0636cd797a056e120e34641375b0244f33c82709
diff --git a/resources/scripts/update-localizations.py b/resources/scripts/update-localizations.py
deleted file mode 100755
index 3d3a78219..000000000
--- a/resources/scripts/update-localizations.py
+++ /dev/null
@@ -1,45 +0,0 @@
-# Setup parameters.
-#RESOURCE = "./localization/rssguard_en.ts"
-#CODES = "cs da de en_GB en_US es fi fr gl he id it ja lt nl pl pt_BR pt_PT ru sv uk zh_CN zh_TW"
-#TRANSLATION = './localization/rssguard_$CODE.ts'
-
-
-import sys
-import os
-import urllib
-
-from transifex.api import transifex_api
-from pprint import pprint
-
-# Read API token.
-api_token = sys.argv[1]
-
-print("API token: {}".format(api_token))
-
-transifex_api.setup(auth = api_token)
-
-# Constants.
-org_slug = "martinrotter"
-proj_slug = "rssguard"
-translation_file = os.path.normpath("./localization/rssguard_{}.ts")
-
-# Organization/project.
-organization = transifex_api.Organization.get(slug = org_slug)
-project = organization.fetch('projects').get(slug = proj_slug)
-resource = project.fetch('resources').get(slug = proj_slug)
-languages = project.fetch('languages')
-
-# Upload resource file.
-with open(translation_file.format("en"), "r", encoding = "utf-8") as file:
- print("Uploading resource...")
-
- resource_data = file.read()
- transifex_api.ResourceStringsAsyncUpload.upload(resource_data, resource = resource)
-
-# Download translations.
-for lang in languages:
- print("Downloading {} translation...".format(lang.code))
-
- url = transifex_api.ResourceTranslationsAsyncDownload.download(resource = resource, language = lang)
- target_path = translation_file.format(lang.code)
- urllib.request.urlretrieve(url, target_path)
\ No newline at end of file