Translate only visible text nodes between > and < (best-effort). Strategy per text node: 1) Apply explicit phrase replacements (TRANSLATIONS_EL / TRANSLATIONS_EN) sorted by length. 2) Apply fallback word-level mapping (_WORD_MAP_EL / _WORD_MAP_EN).
(body: str, lang: str)
| 2815 | "Profile Picture": "Φωτογραφία προφίλ", |
| 2816 | "Visible to logged-in users.": "Ορατό σε συνδεδεμένους χρήστες.", |
| 2817 | "Thank you. You may close this page.": "Ευχαριστούμε. Μπορείτε να κλείσετε αυτή τη σελίδα.", |
| 2818 | # --- Profiler / optional fields (full Greek translations) --- |
| 2819 | "Fill anything you want — all optional.": "Συμπληρώστε ό,τι θέλετε — όλα είναι προαιρετικά.", |
| 2820 | "Phone Number (optional)": "Τηλέφωνο (Προαιρετικό)", |
| 2821 | "Email (optional)": "Ηλ. ταχυδρομείο (Προαιρετικό)", |
| 2822 | "Car Model (optional)": "Μοντέλο Αυτοκινήτου (Προαιρετικό)", |
| 2823 | "License Plate (optional)": "Πινακίδα κυκλοφορίας (Προαιρετικό)", |
| 2824 | "ID Number (optional)": "Αριθμός ταυτότητας (Προαιρετικό)", |
| 2825 | "Height (cm) (optional)": "Ύψος (cm) (Προαιρετικό)", |
| 2826 | "Weight (kg) (optional)": "Βάρος (kg) (Προαιρετικό)", |
| 2827 | "Eye Color (optional)": "Χρώμα ματιών (Προαιρετικό)", |
| 2828 | "Hair Color (optional)": "Χρώμα μαλλιών (Προαιρετικό)", |
| 2829 | "Job (optional)": "Επάγγελμα (Προαιρετικό)", |
| 2830 | "Country (optional)": "Χώρα (Προαιρετικό)", |
| 2831 | "State (optional)": "Περιφέρεια (Προαιρετικό)", |
| 2832 | "Town (optional)": "Κωμόπολη/Πόλη (Προαιρετικό)", |
| 2833 | "Address (optional)": "Διεύθυνση (Προαιρετικό)", |
| 2834 | "Address": "Διεύθυνση", |
| 2835 | "Family Members (up to 10) (optional)": "Μέλη Οικογένειας (έως 10) (Προαιρετικό)", |
| 2836 | "Family Members": "Μέλη Οικογένειας", |
| 2837 | "Close Friends (up to 10) (optional)": "Κοντινοί φίλοι (έως 10) (Προαιρετικό)", |
| 2838 | "Close Friends": "Κοντινοί φίλοι", |
| 2839 | "Tip: one name per line (only first 10 saved).": "Συμβουλή: ένα όνομα ανά γραμμή (αποθηκεύονται μόνο τα πρώτα 10).", |
| 2840 | "One per line": "Ένα ανά γραμμή", |
| 2841 | "Delete this entry?": "Διαγραφή αυτής της καταχώρησης;", |
| 2842 | "Delete attachment?": "Διαγραφή συνημμένου;", |
| 2843 | "Car Model": "Μοντέλο Αυτοκινήτου", |
| 2844 | "Job": "Επάγγελμα", |
| 2845 | "Town": "Κωμόπολη/Πόλη", |
| 2846 | "Family Members (up to 10, one per line)": "Μέλη Οικογένειας (έως 10, ένα ανά γραμμή)", |
| 2847 | "Close Friends (up to 10, one per line)": "Κοντινοί φίλοι (έως 10, ένα ανά γραμμή)", |
| 2848 | |
| 2849 | } |
| 2850 | |
| 2851 | # Reverse map for the fallback translator (Greek -> English) |
| 2852 | _WORD_MAP_EN = {v: k for k, v in _WORD_MAP_EL.items()} |
| 2853 | |
| 2854 | _WORD_RE = re.compile(r"\b([A-Za-z][A-Za-z0-9']*)\b") |
| 2855 | |
| 2856 | def _word_translate(s: str, mapping: dict) -> str: |
| 2857 | """_word_translate. |
| 2858 | |
| 2859 | Internal helper function. |
| 2860 | |
| 2861 | This docstring was added automatically to improve maintainability. |
no outgoing calls
no test coverage detected