|
| 1 | +import os |
| 2 | +from pathlib import Path |
| 3 | +from transifex.api import transifex_api |
| 4 | + |
| 5 | +# Transifex API Authentication |
| 6 | +TRANSIFEX_AUTH_TOKEN = os.getenv("TRANSIFEX_API_TOKEN") |
| 7 | +if not TRANSIFEX_AUTH_TOKEN: |
| 8 | + raise ValueError("TRANSIFEX_API_TOKEN environment variable not set.") |
| 9 | +transifex_api.setup(auth=TRANSIFEX_AUTH_TOKEN) |
| 10 | + |
| 11 | +# Language and Project Configuration |
| 12 | +LANG = "fa" |
| 13 | +ORGANISATION_ID = "o:python-doc" |
| 14 | +PROJECT_ID = "o:python-doc:p:python-newest" |
| 15 | +LANGUAGE_ID = f"l:{LANG}" |
| 16 | + |
| 17 | +try: |
| 18 | + ORGANISATION = transifex_api.Organization.get(id=ORGANISATION_ID) |
| 19 | + PROJECT = transifex_api.Project.get(id=PROJECT_ID) |
| 20 | + LANGUAGE = transifex_api.Language.get(id=LANGUAGE_ID) |
| 21 | +except Exception as e: |
| 22 | + print(f"Error initializing Transifex API objects: {e}") |
| 23 | + raise |
| 24 | + |
| 25 | +# Calculate the project root (assuming config.py is in scripts/transifex/) |
| 26 | +SCRIPT_DIR = Path(__file__).resolve().parent |
| 27 | +PROJECT_ROOT = SCRIPT_DIR.parent.parent |
| 28 | + |
| 29 | +# Resource Mapping |
| 30 | +RESOURCE_NAME_MAP = {"glossary_": "glossary"} |
| 31 | + |
| 32 | +# Output file paths |
| 33 | +TX_CONFIG_PATH = PROJECT_ROOT / ".tx/config" |
| 34 | +RESOURCE_STATS_MD_PATH = PROJECT_ROOT / "RESOURCE.md" |
| 35 | +TEAM_STATS_MD_PATH = PROJECT_ROOT / "TEAM.md" |
| 36 | +CONTRIBUTOR_CHART_DIR = PROJECT_ROOT / "reports" |
| 37 | +CONTRIBUTOR_CHART_FILENAME_PREFIX = "contributor_stats_" |
| 38 | + |
| 39 | +# README Update Configuration |
| 40 | +README_PATH = PROJECT_ROOT / "README.md" |
| 41 | +README_STATS_START_MARKER = "<!-- STATS_START -->" |
| 42 | +README_STATS_END_MARKER = "<!-- STATS_END -->" |
| 43 | +README_CONTRIBUTORS_HEADER = "مشارکتهای کاربران" |
| 44 | +README_PROGRESS_HEADER = "پیشرفت کلی ترجمه" |
| 45 | +README_UPDATED_ON = "بهروزرسانی" |
| 46 | + |
| 47 | +CHART_PASTEL_COLORS = [ |
| 48 | + "#A6C7E8", # Pastel blue |
| 49 | + "#B5EAD7", # Pastel green |
| 50 | + "#FFDFD3", # Pastel pink |
| 51 | + "#FFF1AC", # Pastel yellow |
| 52 | + "#E2D1F9", # Pastel lavender |
| 53 | + "#FFD7BA", # Pastel orange |
| 54 | + "#FFABAB", # Pastel coral |
| 55 | + "#C7F0DB", # Pastel mint |
| 56 | + "#FFDAC1", # Pastel peach |
| 57 | + "#C7CEEA", # Pastel sky blue |
| 58 | +] |
| 59 | + |
| 60 | +REPORT_HEADERS = { |
| 61 | + "resource_stats": { |
| 62 | + "file": "File", |
| 63 | + "translated": "Translated", |
| 64 | + "reviewed": "Reviewed", |
| 65 | + "proofread": "Proofread", |
| 66 | + "alignment": "|:-----|:-----------:|:-----------:|:-----------:|\n", |
| 67 | + }, |
| 68 | + "team_stats": { |
| 69 | + "user": "User", |
| 70 | + "role": "Role", |
| 71 | + "translated_count": "Translated Count", |
| 72 | + "reviewed_count": "Reviewed Count", |
| 73 | + "proofread_count": "Proofread Count", |
| 74 | + "alignment": "|:-----|:------:|:------------------:|:-------------------:|:----------------------:|\n", |
| 75 | + }, |
| 76 | + "contributor_chart": { |
| 77 | + "title_base": "User Contributions", |
| 78 | + "title_top_n_suffix": " (Top {top_n})", |
| 79 | + "xlabel_username": "Username", |
| 80 | + "ylabel_total_contributions": "Total Contributions", |
| 81 | + }, |
| 82 | +} |
0 commit comments