Skip to content

Conversation

yurtpage
Copy link

@yurtpage yurtpage commented Sep 14, 2025

Purpose / Description

Fix F-Droid app descriptions and migrate to Fastlane structure

Fixes

Approach

Move existing marketingdescription.txt files to fastlane folder.

Transifex also needs to be reconfigured.

It also should be fixed scripts:

  • oldVersionJustToCompareWith.txt needs to be moved to somewhere
  • script that uses marketingdescription

Here is a script draft:

Subject: [PATCH] Migrate marketdescription to fastlane full_description.txt
---
Index: tools/localization/src/update.ts
<+>UTF-8
===================================================================
diff --git a/tools/localization/src/update.ts b/tools/localization/src/update.ts
--- a/tools/localization/src/update.ts	(revision 9cb8b271d0d93008ed8dc91bdfa3968a62d6e625)
+++ b/tools/localization/src/update.ts	(date 1757881459068)
@@ -79,7 +79,7 @@
  * @returns extension string
  */
 function fileExtFor(f: string): string {
-    if (f == "14-marketdescription") return ".txt";
+    if (f == "14-full_description") return ".txt";
     else return ".xml";
 }
 
@@ -117,7 +117,7 @@
     }
 
     // These are pulled into a special file
-    if (f == "14-marketdescription") {
+    if (f == "14-full_description") {
         const newfile = path.join(MARKET_DESC_LANG + language + fileExt);
 
         fs.writeFileSync(newfile, translatedContent);
@@ -134,7 +134,7 @@
 
         fs.unlinkSync(newfile);
         console.log(
-            "File marketdescription is not translated into language " + language,
+            "File full_description is not translated into language " + language,
         );
         return true;
     }
Index: tools/localization/src/constants.ts
<+>UTF-8
===================================================================
diff --git a/tools/localization/src/constants.ts b/tools/localization/src/constants.ts
--- a/tools/localization/src/constants.ts	(revision 9cb8b271d0d93008ed8dc91bdfa3968a62d6e625)
+++ b/tools/localization/src/constants.ts	(date 1757881357457)
@@ -24,7 +24,7 @@
 export const PROJECT_ID = 720;
 
 const RES_DIR = "../../../AnkiDroid/src/main/res";
-const DOCS_MARKET_DIR = "../../../docs/marketing/localized_description";
+const DOCS_MARKET_DIR = "../../../fastlane/metadata/android";
 
 export const TEMP_DIR = path.join(__dirname, "../temp_dir");
 createDirIfNotExisting(TEMP_DIR);
@@ -34,7 +34,7 @@
 export const MARKET_DESC_FILE = path.join(
     __dirname,
     DOCS_MARKET_DIR,
-    "marketdescription.txt",
+    "full_description.txt",
 );
 export const OLD_VER_MARKET_DESC_FILE = path.join(
     __dirname,
@@ -44,7 +44,7 @@
 export const MARKET_DESC_LANG = path.join(
     __dirname,
     DOCS_MARKET_DIR,
-    "marketdescription-",
+    "full_description.txt",
 );
 
 export const I18N_FILES = [
@@ -60,7 +60,7 @@
     "10-preferences",
     "11-arrays",
     "12-dont-translate",
-    "14-marketdescription",
+    "14-full_description",
     "16-multimedia-editor",
     "17-model-manager",
     "18-standard-models",
Index: tools/localization/src/upload.ts
<+>UTF-8
===================================================================
diff --git a/tools/localization/src/upload.ts b/tools/localization/src/upload.ts
--- a/tools/localization/src/upload.ts	(revision 9cb8b271d0d93008ed8dc91bdfa3968a62d6e625)
+++ b/tools/localization/src/upload.ts	(date 1757881459076)
@@ -36,8 +36,8 @@
             let I18N_FILE_SOURCE_NAME = `${I18N_FILES_DIR}${I18N_FILE_TARGET_NAME}`;
 
             // special case, the market description is a txt file from different location
-            if (file == "14-marketdescription") {
-                I18N_FILE_TARGET_NAME = "14-marketdescription.txt";
+            if (file == "14-full_description") {
+                I18N_FILE_TARGET_NAME = "14-full_description.txt";
                 I18N_FILE_SOURCE_NAME = MARKET_DESC_FILE;
             }
 
Index: .github/workflows/sync_translations.yml
<+>UTF-8
===================================================================
diff --git a/.github/workflows/sync_translations.yml b/.github/workflows/sync_translations.yml
--- a/.github/workflows/sync_translations.yml	(revision 9cb8b271d0d93008ed8dc91bdfa3968a62d6e625)
+++ b/.github/workflows/sync_translations.yml	(date 1757880607273)
@@ -64,7 +64,7 @@
         
       - name: Commit changes
         run: |
-          git add docs/marketing/localized_description AnkiDroid/src/main/res
+          git add fastlane/metadata/android AnkiDroid/src/main/res
           git commit -am 'Updated strings from Crowdin'
           git push --set-upstream origin +i18n_sync
           echo "The results of the sync are on the i18n_sync branch, PR them from there for merge."
Index: lint-rules/src/main/java/com/ichi2/anki/lint/rules/TranslationTypo.kt
<+>UTF-8
===================================================================
diff --git a/lint-rules/src/main/java/com/ichi2/anki/lint/rules/TranslationTypo.kt b/lint-rules/src/main/java/com/ichi2/anki/lint/rules/TranslationTypo.kt
--- a/lint-rules/src/main/java/com/ichi2/anki/lint/rules/TranslationTypo.kt	(revision 9cb8b271d0d93008ed8dc91bdfa3968a62d6e625)
+++ b/lint-rules/src/main/java/com/ichi2/anki/lint/rules/TranslationTypo.kt	(date 1757881459072)
@@ -62,7 +62,7 @@
             )
 
         // copied from tools/localization/src/constants.ts
-        // excludes marketdescription as it is .txt
+        // excludes full_description as it is .txt
         private val I18N_FILES =
             listOf(
                 "01-core",
Index: .github/workflows/label.yml
<+>UTF-8
===================================================================
diff --git a/.github/workflows/label.yml b/.github/workflows/label.yml
--- a/.github/workflows/label.yml	(revision 9cb8b271d0d93008ed8dc91bdfa3968a62d6e625)
+++ b/.github/workflows/label.yml	(date 1757881357453)
@@ -97,7 +97,7 @@
                 "17-model-manager",
                 "18-standard-models",
                 "20-search-preference",
-                "marketdescription",
+                "full_description",
             ];
 
             let stringsLabel = "Strings";
Index: tools/google-play.py
<+>UTF-8
===================================================================
diff --git a/tools/google-play.py b/tools/google-play.py
--- a/tools/google-play.py	(revision 9cb8b271d0d93008ed8dc91bdfa3968a62d6e625)
+++ b/tools/google-play.py	(date 1757880607277)
@@ -31,7 +31,7 @@
     '294046724212-r3bef6kl46pb9gk0h1pl5rcjmpfrdpjl@developer.gserviceaccount.com')
 PACKAGE = 'com.ichi2.anki'
 IMAGES_DIR = './docs/marketing/screenshots/'
-LISTINGS_DIR = './docs/marketing/localized_description/'
+LISTINGS_DIR = './fastlane/metadata/android/'
 LANGS = ['uk', 'pt-PT', 'zh-CN', 'th', 'sl', 'ar', 'de-DE', 'ru-RU', 'hu-HU', 'zh-TW', 'fi-FI', 'el-GR', 'ja-JP', 'pt-BR', 'nl-NL', 'no-NO', 'es-ES', 'it-IT', 'id', 'pl-PL', 'cs-CZ', 'ca', 'sr', 'fr-FR', 'ro', 'en-US', 'ko-KR', 'bg', 'tr-TR', 'fa', 'sv-SE']
 IMAGE_TYPES = {'phone':'phoneScreenshots', 'sevenInch':'sevenInchScreenshots', 'tenInch':'tenInchScreenshots'}
 
diff --git a/docs/marketing/localized_description/oldVersionJustToCompareWith.txt b/fastlane/metadata/android/en-US/oldVersionJustToCompareWith.txt
rename from docs/marketing/localized_description/oldVersionJustToCompareWith.txt
rename to fastlane/metadata/android/en-US/oldVersionJustToCompareWith.txt

Learning

https://f-droid.org/docs/All_About_Descriptions_Graphics_and_Screenshots/

Checklist

Please, go through these checks before submitting the PR.

  • You have a descriptive commit message with a short title (first line, max 50 chars).
  • You have commented your code, particularly in hard-to-understand areas
  • You have performed a self-review of your own code
  • UI changes: include screenshots of all affected screens (in particular showing any new or changed strings)
  • UI Changes: You have tested your change using the Google Accessibility Scanner

Copy link

welcome bot commented Sep 14, 2025

First PR! 🚀 We sincerely appreciate that you have taken the time to propose a change to AnkiDroid! Please have patience with us as we are all volunteers - we will get to this as soon as possible.

Copy link
Contributor

Important

Maintainers: This PR contains Strings changes

  1. Sync Translations before merging this PR and wait for the action to complete
  2. Review and merge the auto-generated PR in order to sync all user-submitted translations
  3. Sync Translations again and merge the PR so the huge automated string changes caused by merging this PR are by themselves and easy to review

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Move PlayStore description to Fastlane
1 participant