Translate the interface into 12 languages
Add full lang/ translations for fr, de, it, nl, pl, el, ja, ko, zh, ru,
tr, and ar — all 23 base files each, with identical key trees to lang/en,
preserved :placeholders and plural forms, and native product terminology.
2026-07-03 18:38:40 +00:00
< ? php
return [
'title' => 'Δημοσιεύσεις' ,
'search' => 'Αναζήτηση δημοσιεύσεων...' ,
'all_posts' => 'Όλες ο ι δημοσιεύσεις' ,
'new_post' => 'Νέα δημοσίευση' ,
'no_posts' => 'Δεν βρέθηκαν δημοσιεύσεις' ,
'no_search_results' => 'Καμία δημοσίευση δεν ταιριάζει με την αναζήτησή σας' ,
'try_different_search' => 'Δοκιμάστε διαφορετική λέξη-κλειδί ή καθαρίστε την αναζήτηση.' ,
'start_creating' => 'Ξεκινήστε δημιουργώντας την πρώτη σας δημοσίευση.' ,
'filter_by_label' => 'Φιλτράρισμα ανά ετικέτα' ,
'label_search_placeholder' => 'Αναζήτηση ετικετών...' ,
'no_labels' => 'Δεν βρέθηκαν ετικέτες.' ,
'clear_label_filter' => 'Καθαρισμός φίλτρου ετικετών' ,
'table' => [
'post' => 'Δημοσίευση' ,
'status' => 'Κατάσταση' ,
'content' => 'Περιεχόμενο' ,
'platforms' => 'Πλατφόρμες' ,
'labels' => 'Ετικέτες' ,
'scheduled_at' => 'Ημερομηνία' ,
'actions' => '' ,
],
'manage_posts' => 'Διαχειριστείτε όλες τις δημοσιεύσεις σας' ,
'delete_confirm' => 'Είστε βέβαιοι ότι θέλετε ν α διαγράψετε αυτή τη δημοσίευση;' ,
'by' => 'από' ,
'actions' => [
'view' => 'Προβολή δημοσίευσης' ,
'delete' => 'Διαγραφή' ,
'duplicate' => 'Αντιγραφή' ,
'copy_id' => 'Αντιγραφή ID' ,
'copied' => 'Τ ο ID αντιγράφηκε στο πρόχειρο' ,
],
'form' => [
'post_type' => 'Τύπος δημοσίευσης' ,
'board' => 'Πίνακας' ,
'select_board' => 'Επιλέξτε έναν πίνακα' ,
'search_board' => 'Αναζήτηση πίνακα...' ,
'no_board_found' => 'Δεν βρέθηκε πίνακας' ,
'media' => 'Πολυμέσα' ,
'min' => 'Ελάχ.' ,
'uploading' => 'Μεταφόρτωση...' ,
'drop_to_upload' => 'Αποθέστε γ ι α μεταφόρτωση' ,
'drag_and_drop' => 'Σύρετε και αποθέστε ή κάντε κλικ γ ι α μεταφόρτωση' ,
'photos_and_videos' => 'Φωτογραφίες και βίντεο' ,
'photos_only' => 'Μόνο φωτογραφίες' ,
'videos_only' => 'Μόνο βίντεο' ,
'drag_to_reorder' => 'Σύρετε γ ι α αναδιάταξη' ,
'caption' => 'Λεζάντα' ,
'write_caption' => 'Γράψτε τη λεζάντα σας...' ,
'content_exceeds_platform' => ':platform: υπερβαίνει κατά :over χαρακτήρες (μέγ. :limit).' ,
'tiktok' => [
'settings' => 'Ρυθμίσεις TikTok' ,
'variant_label' => 'Τύπος δημοσίευσης' ,
'variant' => [
'video' => 'Βίντεο' ,
'photo' => 'Carousel φωτογραφιών' ,
],
'posting_to' => 'Δημοσίευση σε' ,
'privacy_level' => 'Ποιος μπορεί ν α δει αυτό το βίντεο;' ,
'privacy_placeholder' => 'Επιλέξτε ποιος μπορεί ν α δει αυτή τη δημοσίευση' ,
'privacy' => [
'public' => 'Δημόσιο γ ι α όλους' ,
'friends' => 'Αμοιβαίοι φίλοι που ακολουθείτε' ,
'followers' => 'Ακόλουθοι' ,
'private' => 'Μόνο εγώ' ,
'private_disabled_branded' => 'Η ορατότητα του χορηγούμενου περιεχομένου δεν μπορεί ν α οριστεί ως ιδιωτική.' ,
],
'privacy_hint' => 'Ο ι διαθέσιμες επιλογές εξαρτώνται από τις ρυθμίσεις του λογαριασμού σας TikTok.' ,
'auto_add_music' => 'Αυτόματη προσθήκη μουσικής' ,
'auto_add_music_hint' => 'Αυτή η λειτουργία είναι διαθέσιμη μόνο γ ι α φωτογραφίες. Θα προσθέσει μια προεπιλεγμένη μουσική που μπορείτε ν α αλλάξετε αργότερα.' ,
'yes' => 'Ν α ι ' ,
'no' => 'Όχι' ,
'allow_users' => 'Επιτρέψτε στους χρήστες ν α :' ,
'comments' => 'Σχολιάζουν' ,
'duet' => 'Duet' ,
'stitch' => 'Stitch' ,
'is_aigc' => 'Βίντεο φτιαγμένο με AI' ,
'disclose' => 'Γνωστοποίηση περιεχομένου βίντεο' ,
'disclose_hint' => 'Ενεργοποιήστε το γ ι α ν α γνωστοποιήσετε ότι αυτό το βίντεο προωθεί αγαθά ή υπηρεσίες με αντάλλαγμα κάτι αξίας. Τ ο βίντεό σας μπορεί ν α προωθεί εσάς, ένα τρίτο μέρος ή και τα δύο.' ,
'promotional_organic_title' => 'Η φωτογραφία/βίντεό σας θα επισημανθεί ως «Προωθητικό περιεχόμενο».' ,
'promotional_paid_title' => 'Η φωτογραφία/βίντεό σας θα επισημανθεί ως «Πληρωμένη συνεργασία».' ,
'promotional_description' => 'Αυτό δεν μπορεί ν α αλλάξει μόλις δημοσιευτεί το βίντεό σας.' ,
'compliance_incomplete' => 'Πρέπει ν α υποδείξετε α ν το περιεχόμενό σας προωθεί εσάς, ένα τρίτο μέρος ή και τα δύο.' ,
'privacy_required' => 'Τ ο επίπεδο απορρήτου του TikTok είναι υποχρεωτικό κατά τη δημοσίευση.' ,
'branded_cleared_private' => 'Τ ο απόρρητο καθαρίστηκε επειδή το χορηγούμενο περιεχόμενο δεν μπορεί ν α είναι ιδιωτικό.' ,
'interaction_disabled_by_creator' => 'Απενεργοποιημένο στις ρυθμίσεις του λογαριασμού σας TikTok' ,
'max_duration_exceeded' => 'Τ ο βίντεο διαρκεί :duration δευτ., αλλά αυτός ο λογαριασμός μπορεί ν α δημοσιεύσει βίντεο έως :max δευτ.' ,
'processing_hint' => 'Μετά τη δημοσίευση, μπορεί ν α χρειαστούν λίγα λεπτά γ ι α ν α επεξεργαστεί το περιεχόμενο και ν α εμφανιστεί στο προφίλ σας TikTok.' ,
'brand_organic' => 'Η μάρκα σας' ,
'brand_organic_hint' => 'Προωθείτε τον εαυτό σας ή τη δική σας μάρκα. Αυτό το βίντεο θα ταξινομηθεί ως Brand Organic.' ,
'brand_content' => 'Χορηγούμενο περιεχόμενο' ,
'brand_content_hint' => 'Προωθείτε μια άλλη μάρκα ή ένα τρίτο μέρος. Αυτό το βίντεο θα ταξινομηθεί ως Branded Content.' ,
'compliance' => [
'agree' => 'Δημοσιεύοντας, συμφωνείτε με την' ,
'music_usage' => 'Επιβεβαίωση χρήσης μουσικής' ,
'and' => 'και' ,
'branded_policy' => 'Πολιτική χορηγούμενου περιεχομένου' ,
],
],
'instagram' => [
'settings' => 'Ρυθμίσεις Instagram' ,
'posting_to' => 'Δημοσίευση σε' ,
'variant_label' => 'Τύπος δημοσίευσης' ,
'variant' => [
'feed' => 'Δημοσίευση feed' ,
'reel' => 'Reel' ,
'story' => 'Story' ,
],
'aspect_label' => 'Αναλογία διαστάσεων' ,
'aspect' => [
'square' => 'Τετράγωνο (1:1)' ,
'portrait' => 'Κατακόρυφο (4:5)' ,
'landscape' => 'Οριζόντιο (16:9)' ,
'original' => 'Πρωτότυπο' ,
],
],
'facebook' => [
'settings' => 'Ρυθμίσεις Facebook' ,
'posting_to' => 'Δημοσίευση σε' ,
'variant_label' => 'Τύπος δημοσίευσης' ,
'variant' => [
'post' => 'Δημοσίευση' ,
'reel' => 'Reel' ,
'story' => 'Story' ,
],
'aspect_label' => 'Αναλογία διαστάσεων' ,
'aspect' => [
'square' => 'Τετράγωνο (1:1)' ,
'portrait' => 'Κατακόρυφο (4:5)' ,
'landscape' => 'Οριζόντιο (16:9)' ,
'original' => 'Πρωτότυπο' ,
],
],
'linkedin' => [
'settings' => 'Ρυθμίσεις LinkedIn' ,
'settings_page' => 'Ρυθμίσεις σελίδας LinkedIn' ,
'posting_to' => 'Δημοσίευση σε' ,
'document_title' => 'Τίτλος εγγράφου' ,
'document_title_placeholder' => 'Εμφανίζεται στη δημοσίευση εγγράφου PDF σας' ,
],
'pinterest' => [
'settings' => 'Ρυθμίσεις Pinterest' ,
'posting_to' => 'Δημοσίευση σε' ,
'variant_label' => 'Τύπος pin' ,
'variant' => [
'pin' => 'Pin' ,
'video_pin' => 'Video Pin' ,
'carousel' => 'Carousel' ,
],
'board' => 'Πίνακας' ,
'select_board' => 'Επιλέξτε έναν πίνακα' ,
'no_boards' => 'Δεν βρέθηκαν πίνακες Pinterest. Δημιουργήστε πρώτα έναν στον λογαριασμό σας Pinterest.' ,
2026-07-25 02:02:40 +00:00
'boards_truncated' => 'Ορισμένοι πίνακες δεν φορτώθηκαν. Α ν λείπει ο δικός σας, ανοίξτε το Pinterest και δοκιμάστε ξανά.' ,
Translate the interface into 12 languages
Add full lang/ translations for fr, de, it, nl, pl, el, ja, ko, zh, ru,
tr, and ar — all 23 base files each, with identical key trees to lang/en,
preserved :placeholders and plural forms, and native product terminology.
2026-07-03 18:38:40 +00:00
'search_board' => 'Αναζήτηση πινάκων...' ,
'no_board_found' => 'Κανένας πίνακας δεν ταιριάζει με την αναζήτησή σας.' ,
'board_required' => 'Επιλέξτε έναν πίνακα Pinterest γ ι α ν α δημοσιεύσετε αυτή τη δημοσίευση.' ,
Add optional Pinterest pin title and destination link (#232)
* Add optional Pinterest pin title, description, and link.
Expose title/description/link across web, API, and MCP; seed description from caption into meta on save, and publish description only from meta.
Co-authored-by: Cursor <cursoragent@cursor.com>
* Expand Pinterest title/description/link test coverage.
Cover web draft persistence and validation bounds, API/MCP update merge and seed, and publisher payload fields on video and carousel pins.
Co-authored-by: Cursor <cursoragent@cursor.com>
* Simplify Pinterest: description is post content again.
Keep optional title and link in meta/settings only. Remove the separate description textarea, seed logic, and meta.description path so Pinterest follows the shared caption pattern.
Co-authored-by: Cursor <cursoragent@cursor.com>
* Refactor Pinterest meta handling and validation.
- Update CreatePost and UpdatePost actions to filter out null values from meta fields.
- Introduce a new method in PinterestPublisher to resolve board IDs, ensuring required fields are validated.
- Enhance PinterestSettings component to manage title and link inputs, including validation for HTTP URLs.
- Update PostPlatformMetaRules to enforce URL validation for Pinterest links.
- Add tests for clearing Pinterest title and link, and for rejecting invalid links during scheduling.
This refactor improves the handling of Pinterest metadata and enhances user experience by ensuring proper validation and error handling.
* Add validation messages and attributes for Pinterest meta fields
- Introduced custom validation messages and friendly attribute names for Pinterest link and title fields in PostPlatformMetaRules.
- Updated StorePostRequest, UpdatePostRequest, and related tools to utilize these new messages and attributes.
- Enhanced tests to assert correct error messages for invalid Pinterest links and title length constraints.
This update improves user feedback during post creation and editing, ensuring clarity in validation errors.
* Remove click.prevent directive from Pinterest link in PinterestPreview component.
This change simplifies the link behavior, allowing default click actions to occur, which may enhance user interaction with the Pinterest link.
* Update validation error messages for Pinterest meta fields in tests
- Refined the assertions in PostApiPlatformMetaTest to include localized validation messages for Pinterest title and link fields.
- Ensured that error messages reflect the updated validation rules, enhancing clarity for users during post creation and editing.
---------
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-05 21:15:50 +00:00
'title' => 'Τίτλος' ,
'title_placeholder' => 'Προαιρετικός τίτλος pin' ,
'link' => 'Σύνδεσμος προορισμού' ,
'link_placeholder' => 'https://example.com' ,
'link_invalid' => 'Εισαγάγετε έναν έγκυρο σύνδεσμο προορισμού (http ή https).' ,
'title_max' => 'Ο τίτλος δεν μπορεί ν α υπερβαίνει τους 100 χαρακτήρες.' ,
'link_max' => 'Ο σύνδεσμος προορισμού δεν μπορεί ν α υπερβαίνει τους 2048 χαρακτήρες.' ,
Translate the interface into 12 languages
Add full lang/ translations for fr, de, it, nl, pl, el, ja, ko, zh, ru,
tr, and ar — all 23 base files each, with identical key trees to lang/en,
preserved :placeholders and plural forms, and native product terminology.
2026-07-03 18:38:40 +00:00
],
'discord' => [
'settings' => 'Ρυθμίσεις Discord' ,
'posting_to' => 'Δημοσίευση σε' ,
'channel' => 'Κανάλι' ,
'select_channel' => 'Επιλέξτε ένα κανάλι' ,
'loading_channels' => 'Φόρτωση καναλιών…' ,
'search_channel' => 'Αναζήτηση καναλιών…' ,
'no_channels' => 'Δεν βρέθηκαν κανάλια.' ,
'channel_required' => 'Επιλέξτε ένα κανάλι Discord γ ι α ν α δημοσιεύσετε αυτή τη δημοσίευση.' ,
'mentions' => 'Αναφορές' ,
'search_mention' => 'Αναφέρετε έναν ρόλο ή μέλος…' ,
'embeds' => 'Embeds' ,
'embed' => 'Embed' ,
'add_embed' => 'Προσθήκη embed' ,
'embed_title' => 'Τίτλος embed' ,
'embed_description' => 'Περιγραφή embed' ,
'embed_url' => 'URL embed' ,
'embed_image' => 'URL εικόνας' ,
'embed_color' => 'Χρώμα' ,
],
'warnings' => [
'no_variant' => 'Επιλέξτε έναν τύπο δημοσίευσης γ ι α ν α συνεχίσετε.' ,
'requires_media' => 'Αυτός ο τύπος δημοσίευσης απαιτεί τουλάχιστον μία εικόνα ή βίντεο.' ,
'max_files_exceeded' => 'Αυτός ο τύπος δημοσίευσης δέχεται έως :max αρχεία πολυμέσων (έχετε :current).' ,
'min_files_required' => 'Αυτός ο τύπος δημοσίευσης απαιτεί τουλάχιστον :min αρχεία πολυμέσων (έχετε :current).' ,
'no_video_allowed' => 'Αυτός ο τύπος δημοσίευσης δεν δέχεται βίντεο.' ,
'no_image_allowed' => 'Αυτός ο τύπος δημοσίευσης δέχεται μόνο βίντεο.' ,
'no_document_allowed' => 'Αυτός ο τύπος δημοσίευσης δεν δέχεται έγγραφα PDF.' ,
'no_mixed_media' => 'Ο ι εικόνες και ένα βίντεο δεν μπορούν ν α συνδυαστούν στην ίδια δημοσίευση.' ,
'document_not_alone' => 'Ένα PDF πρέπει ν α δημοσιεύεται μόνο του, χωρίς άλλες εικόνες ή βίντεο.' ,
'gif_not_allowed' => 'Αυτή η πλατφόρμα δεν δέχεται GIF. Αφαιρέστε το GIF ή επιλέξτε διαφορετικό δίκτυο.' ,
'image_too_large' => 'Η εικόνα υπερβαίνει το όριο :max γ ι α αυτόν τον τύπο δημοσίευσης (η δική σας είναι :current).' ,
'video_too_large' => 'Τ ο βίντεο υπερβαίνει το όριο :max γ ι α αυτόν τον τύπο δημοσίευσης (το δικό σας είναι :current).' ,
'document_too_large' => 'Τ ο PDF υπερβαίνει το όριο :max γ ι α αυτόν τον τύπο δημοσίευσης (το δικό σας είναι :current).' ,
'video_too_long' => 'Τ ο βίντεο διαρκεί :current, αλλά αυτός ο τύπος δημοσίευσης επιτρέπει έως :max.' ,
'aspect_ratio_too_narrow' => 'Η αναλογία διαστάσεων :current είναι πολύ ψηλή γ ι α αυτόν τον τύπο δημοσίευσης (ελάχ. :min).' ,
'aspect_ratio_too_wide' => 'Η αναλογία διαστάσεων :current είναι πολύ πλατιά γ ι α αυτόν τον τύπο δημοσίευσης (μέγ. :max).' ,
],
],
'status' => [
'pending' => 'Σε εκκρεμότητα' ,
'draft' => 'Πρόχειρο' ,
'scheduled' => 'Προγραμματισμένη' ,
'publishing' => 'Δημοσιεύεται' ,
'retrying' => 'Επανάληψη' ,
'published' => 'Δημοσιεύτηκε' ,
'partially_published' => 'Δημοσιεύτηκε εν μέρει' ,
'failed' => 'Απέτυχε' ,
],
'descriptions' => [
'draft' => 'Δημοσιεύσεις που αναμένουν προγραμματισμό' ,
'scheduled' => 'Δημοσιεύσεις προγραμματισμένες γ ι α δημοσίευση' ,
'published' => 'Δημοσιεύσεις που έχουν ήδη δημοσιευτεί' ,
],
'ai' => [
'generate' => [
'button_tooltip' => 'Δημιουργία με AI' ,
'title' => 'Δημιουργία δημοσίευσης με AI' ,
'description' => 'Περιγράψτε ποιο πρέπει ν α είναι το θέμα της δημοσίευσης. Τ ο AI θα χρησιμοποιήσει το πλαίσιο της μάρκας σας γ ι α ν α τη γράψει.' ,
'prompt_label' => 'Ποιο είναι το θέμα αυτής της δημοσίευσης;' ,
'prompt_placeholder' => 'π.χ. Ανακοινώστε τη νέα μας λειτουργία δημιουργίας εικόνων γ ι α carousels' ,
'preview_label' => 'Προεπισκόπηση' ,
'start' => 'Δημιουργία' ,
'apply' => 'Χρήση αυτού του περιεχομένου' ,
'retry' => 'Δοκιμάστε ξανά' ,
'cancel' => 'Ακύρωση' ,
fix: subscribe to AI generation channel before dispatching the job (#269)
* fix: subscribe to AI generation channel before dispatching the job
AiGenerateDialog posted the generate request and only subscribed to the
broadcast channel once the response came back. Reverb's plain Channel
(vendor/laravel/reverb/.../Channels/Channel.php) delivers broadcasts by
iterating the in-memory connection list at send time only — no history,
no replay. If the queued job started streaming text_delta/stream_end
events before the private-channel subscribe handshake finished, those
events were gone for good and the dialog hung on 'streaming' forever.
Generate the generation_id client-side, await channel subscription
confirmation (Echo's channel.subscribed(), backed by
pusher:subscription_succeeded) before sending the generate request, and
have the backend use the client-supplied id instead of minting its own.
Related to #218.
* fix: handle subscribe failure, dialog-close race, and i18n hardcoded strings
Code review on the previous commit surfaced real gaps:
- useAiStream only handled the subscribe-success path (.subscribed()).
A definitive pusher:subscription_error (expired session, CSRF
mismatch) fell through to the 5s timeout and was treated as success,
reproducing the exact #218 hang via a different trigger. subscribe()
now returns a boolean: true on confirm-or-ambiguous-timeout (proceed
optimistically), false only on an explicit error (don't dispatch work
nothing will ever hear).
- AiGenerateDialog now bails without dispatching if the dialog is
closed while awaiting subscription confirmation (up to 5s), and
unsubscribes on a post-subscribe dispatch failure so stale listeners
can't flip status to 'completed' after an error was already shown.
- Extracted aiGenerationChannel() so the frontend has one place to
update if the channel format changes, and cross-referenced the two
remaining backend copies (PostAiGenerateController, StreamPostContent).
- Replaced the two hardcoded English fallback error strings with i18n
keys (posts.ai.generate.errors.*) across all 16 locales — this app
only ships translated copy.
- Simplified subscribe(): dropped a redundant "already settled" guard
and the clearTimeout bookkeeping — Promise.resolve() already no-ops
after the first call, so there was nothing to guard.
* fix: subscribe before dispatch in AI post creation and image regeneration flows
Extracts subscribePrivateChannel as a shared helper and applies the same
subscribe-before-dispatch fix from the post edit flow (issue #218) to the
other two flows that stream over private channels.
Post creation wizard moves the StreamPostCreation dispatch out of
AiPostWizard.vue and into Loading.vue, so the channel is subscribed before
the job that broadcasts on it is dispatched — previously a full page
navigation happened between dispatch and subscribe with no timeout
fallback, so a lost event hung the page forever.
* refactor: trim explanatory comments added in the subscribe-before-dispatch fix
Rationale lives in the commit history, not scattered inline comments.
* refactor: trim remaining explanatory comments from the subscribe-before-dispatch fix
Same cleanup as the previous commit, applied to the files from the
original post-edit-flow fix.
* fix: dedup post-creation dispatch, surface field-level AI errors, harden edge cases
Uses ShouldBeUnique on StreamPostCreation (scoped per-user) instead of an
ad-hoc cache guard, matching the pattern already used by
PublishToSocialPlatform and VerifyUpcomingPostConnections.
Field-level validation errors (prompt/instruction) now render inline via
InputError, matching how every other form in the app surfaces them, instead
of a generic status banner. Also fixes a 422 response missing the `errors`
key that Inertia's client silently swallows, adds error handling around the
wizard's navigation to the loading page, and extracts the duplicated
error-message parsing into a shared helper.
2026-08-10 19:06:37 +00:00
'errors' => [
'start_failed' => 'Δεν ήταν δυνατή η έναρξη της δημιουργίας.' ,
'generation_failed' => 'Η δημιουργία με AI απέτυχε.' ,
],
Translate the interface into 12 languages
Add full lang/ translations for fr, de, it, nl, pl, el, ja, ko, zh, ru,
tr, and ar — all 23 base files each, with identical key trees to lang/en,
preserved :placeholders and plural forms, and native product terminology.
2026-07-03 18:38:40 +00:00
],
'review' => [
'button_tooltip' => 'Έλεγχος με AI' ,
'title' => 'Έλεγχος δημοσίευσης με AI' ,
'description' => 'Τ ο AI ελέγχει γ ι α γραμματική, ορθογραφία και σαφήνεια. Εφαρμόστε τις προτάσεις με τις οποίες συμφωνείτε.' ,
'loading' => 'Έλεγχος του κειμένου σας...' ,
'no_issues' => 'Δεν βρέθηκαν προβλήματα. Φαίνεται καλό.' ,
'original' => 'Πρωτότυπο' ,
'suggestion' => 'Πρόταση' ,
'apply' => 'Εφαρμογή' ,
'apply_all' => 'Εφαρμογή όλων' ,
'applied' => 'Εφαρμόστηκε' ,
'cancel' => 'Ακύρωση' ,
],
'image_regenerate' => [
'button' => 'Προσαρμογή' ,
'title' => 'Προσαρμογή εικόνας AI' ,
'description' => 'Περιγράψτε τη διόρθωση. Η νέα εικόνα αντικαθιστά την τρέχουσα και διατηρεί τη θέση της στο carousel.' ,
'instruction_label' => 'Οδηγία' ,
'instruction_placeholder' => 'π.χ. Διορθώστε το ορθογραφικό λάθος στον τίτλο και κάντε το φόντο πιο φωτεινό.' ,
'processing' => 'Αναδημιουργία εικόνας... αυτό μπορεί ν α πάρει λίγα δευτερόλεπτα.' ,
'submit' => 'Αναδημιουργία εικόνας' ,
'cancel' => 'Ακύρωση' ,
'success' => 'Η εικόνα ενημερώθηκε. Η νέα έκδοση αντικατέστησε την προηγούμενη στη δημοσίευσή σας.' ,
'fallback_title' => 'Βελτιώστε αυτό το κείμενο εικόνας' ,
'errors' => [
'required' => 'Η οδηγία είναι υποχρεωτική.' ,
'start_failed' => 'Η έναρξη της αναδημιουργίας απέτυχε.' ,
'unavailable' => 'Δεν είναι δυνατή η αναδημιουργία αυτής της εικόνας αυτή τη στιγμή.' ,
'timeout' => 'Η αναδημιουργία διαρκεί περισσότερο από το αναμενόμενο. Δοκιμάστε ξανά σε λίγο.' ,
'media_not_found' => 'Τ ο στοιχείο πολυμέσων δεν βρέθηκε.' ,
'not_ai_media' => 'Μόνο πολυμέσα που δημιουργούνται από AI μπορούν ν α αναδημιουργηθούν.' ,
],
],
'templates' => [
'image_card' => [
'name' => 'Δημοσίευση εικόνας' ,
'description' => 'Εικόνα AI με τίτλο και λεζάντα.' ,
],
'carousel' => [
'name' => 'Carousel' ,
'description' => 'Carousel πολλαπλών slides με λεζάντα.' ,
],
'tweet_card' => [
'name' => 'Κάρτα tweet' ,
'description' => 'Η δημοσίευσή σας σε στυλ δημοσίευσης X/Twitter.' ,
],
'tweet_card_image' => [
'name' => 'Κάρτα tweet με φωτογραφία' ,
'description' => 'Η δημοσίευσή σας ως κάρτα X/Twitter πάνω σε θολή φωτογραφία.' ,
],
],
],
'show' => [
'title' => 'Λεπτομέρειες δημοσίευσης' ,
'edit' => 'Επεξεργασία' ,
'back' => 'Πίσω' ,
'no_content' => 'Χωρίς λεζάντα' ,
'platforms' => 'Πλατφόρμες' ,
'no_platforms' => 'Δεν επιλέχθηκαν πλατφόρμες.' ,
'view_on_platform' => 'Προβολή στην πλατφόρμα' ,
'published_on' => 'Δημοσιεύτηκε στις :date' ,
'scheduled_for' => 'Προγραμματισμένη γ ι α :date' ,
'draft' => 'Πρόχειρο' ,
'status_pending' => 'Σε εκκρεμότητα' ,
'metrics' => 'Μετρήσεις' ,
'metrics_loading' => 'Φόρτωση μετρήσεων…' ,
'metrics_unavailable' => 'Ο ι μετρήσεις δεν είναι ακόμη διαθέσιμες γ ι α αυτή την πλατφόρμα.' ,
'metrics_empty' => 'Δεν επιστράφηκαν μετρήσεις.' ,
],
'edit' => [
'title' => 'Επεξεργασία δημοσίευσης' ,
'view_title' => 'Προβολή δημοσίευσης' ,
'labels' => 'Ετικέτες' ,
'no_labels' => 'Δεν έχουν δημιουργηθεί ετικέτες ακόμη' ,
'schedule' => 'Χρονοδιάγραμμα' ,
'pick_time' => 'Επιλέξτε ώρα' ,
'pick_time_past' => 'Επιλέξτε μελλοντική ημερομηνία και ώρα.' ,
'post_now' => 'Δημοσίευση τώρα' ,
'time' => 'Ώρα' ,
'cancel' => 'Ακύρωση' ,
'delete' => 'Διαγραφή' ,
'schedule_for' => 'Προγραμματισμός γ ι α ' ,
'schedule_date' => 'Ημερομηνία προγραμματισμού' ,
'unschedule' => 'Αναίρεση προγραμματισμού' ,
'saving' => 'Αποθήκευση...' ,
'saved' => 'Αποθηκεύτηκε' ,
'draft' => 'Πρόχειρο' ,
'media' => 'Πολυμέσα' ,
'add_media' => 'Προσθήκη πολυμέσων' ,
'caption' => 'Λεζάντα' ,
'caption_placeholder' => 'Γράψτε τη λεζάντα σας...' ,
'compose_title' => 'Δημιουργήστε μια δημοσίευση' ,
'compose_subtitle' => 'Συνθέστε το μήνυμά σας και προσθέστε πολυμέσα' ,
'preview_empty' => [
'title' => 'Δεν επιλέχθηκε πλατφόρμα' ,
'description' => 'Επιλέξτε μια πλατφόρμα γ ι α δημοσίευση γ ι α ν α δείτε την προεπισκόπηση.' ,
],
'drop_zone_title' => 'Προσθήκη πολυμέσων' ,
'drop_zone_subtitle' => 'Σύρετε και αποθέστε αρχεία ή κάντε κλικ γ ι α αναζήτηση' ,
'add' => 'Προσθήκη' ,
'publish_to' => 'Δημοσίευση σε' ,
'organize' => 'Οργάνωση' ,
'signatures' => 'Υπογραφές' ,
'view_on_platform' => 'Προβολή στην πλατφόρμα' ,
'platform_status' => 'Κατάσταση πλατφόρμας' ,
'compliance_incomplete' => 'Ορισμένες ρυθμίσεις πλατφόρμας είναι ελλιπείς ή ασύμβατες με τα συνημμένα πολυμέσα.' ,
'compliance' => [
'requires_content_or_media' => 'Προσθέστε κείμενο ή πολυμέσα γ ι α δημοσίευση.' ,
'requires_media' => 'Προσθέστε μια εικόνα ή βίντεο γ ι α δημοσίευση εδώ.' ,
'too_many_files' => 'Επιτρέπονται μόνο :max αρχεία γ ι α αυτή τη μορφή.' ,
'too_few_files' => 'Προσθέστε τουλάχιστον :min αρχεία γ ι α αυτή τη μορφή.' ,
'no_videos' => 'Επιτρέπονται μόνο εικόνες γ ι α αυτή τη μορφή.' ,
'no_images' => 'Επιτρέπονται μόνο βίντεο γ ι α αυτή τη μορφή.' ,
'no_mixed_media' => 'Ο ι εικόνες και τα βίντεο δεν μπορούν ν α συνδυαστούν στην ίδια δημοσίευση.' ,
'no_gifs' => 'Τ α GIF δεν υποστηρίζονται εδώ.' ,
'no_documents' => 'Τ α έγγραφα PDF δεν υποστηρίζονται από αυτή τη μορφή.' ,
'document_not_alone' => 'Ένα PDF πρέπει ν α δημοσιεύεται μόνο του, χωρίς άλλες εικόνες ή βίντεο.' ,
'video_too_large' => 'Τ ο βίντεο υπερβαίνει το όριο μεγέθους γ ι α αυτή την πλατφόρμα.' ,
'video_too_long' => 'Τ ο βίντεο πρέπει ν α είναι κάτω από :seconds δευτερόλεπτα γ ι α αυτή τη μορφή.' ,
'image_too_large' => 'Η εικόνα υπερβαίνει το όριο μεγέθους γ ι α αυτή την πλατφόρμα.' ,
'document_too_large' => 'Τ ο PDF υπερβαίνει το όριο μεγέθους γ ι α αυτή την πλατφόρμα.' ,
'aspect_ratio_invalid' => 'Η αναλογία διαστάσεων δεν υποστηρίζεται από αυτή τη μορφή.' ,
'no_content_type' => 'Επιλέξτε έναν τύπο περιεχομένου γ ι α αυτή την πλατφόρμα.' ,
'requires_text' => 'Προσθέστε κείμενο — αυτή η μορφή χρειάζεται τίτλο.' ,
],
'publishing' => 'Δημοσίευση...' ,
'publishing_overlay_title' => 'Η δημοσίευσή σας δημοσιεύεται' ,
'publishing_overlay_subtitle' => 'Αυτό μπορεί ν α πάρει λίγες στιγμές. Μπορείτε με ασφάλεια ν α φύγετε από αυτή τη σελίδα.' ,
'scheduled_overlay_title' => 'Αυτή η δημοσίευση είναι προγραμματισμένη' ,
'scheduled_overlay_subtitle' => 'Προγραμματισμένη γ ι α :date. Αναιρέστε πρώτα τον προγραμματισμό της γ ι α ν α κάνετε αλλαγές.' ,
'unschedule_cta' => 'Αναίρεση προγραμματισμού γ ι α επεξεργασία' ,
'tabs' => [
2026-07-17 21:38:20 +00:00
'compose' => 'Σύνταξη' ,
Translate the interface into 12 languages
Add full lang/ translations for fr, de, it, nl, pl, el, ja, ko, zh, ru,
tr, and ar — all 23 base files each, with identical key trees to lang/en,
preserved :placeholders and plural forms, and native product terminology.
2026-07-03 18:38:40 +00:00
'preview' => 'Προεπισκόπηση' ,
'channels' => 'Κανάλια' ,
'comments' => 'Σχόλια' ,
'comments_empty' => 'Δεν υπάρχουν σχόλια ακόμη.' ,
],
'media_picker' => [
'title' => 'Επιλογή από τη συλλογή' ,
'search' => 'Αναζήτηση πολυμέσων...' ,
'empty' => 'Δεν υπάρχουν πολυμέσα στη συλλογή σας ακόμη' ,
'cancel' => 'Ακύρωση' ,
'add' => 'Προσθήκη' ,
'add_count' => 'Προσθήκη :count' ,
],
2026-07-11 12:45:52 +00:00
'alt_text' => [
'label' => 'Εναλλακτικό κείμενο' ,
'edit' => 'Επεξεργασία εναλλακτικού κειμένου' ,
'placeholder' => 'Περιγράψτε αυτήν την εικόνα γ ι α άτομα που χρησιμοποιούν προγράμματα ανάγνωσης οθόνης' ,
'hint' => 'Δημοσιεύεται σε πλατφόρμες που υποστηρίζουν περιγραφές εικόνων.' ,
'save' => 'Αποθήκευση' ,
],
Translate the interface into 12 languages
Add full lang/ translations for fr, de, it, nl, pl, el, ja, ko, zh, ru,
tr, and ar — all 23 base files each, with identical key trees to lang/en,
preserved :placeholders and plural forms, and native product terminology.
2026-07-03 18:38:40 +00:00
'emoji_picker' => [
'search' => 'Αναζήτηση emoji' ,
'empty' => 'Δεν βρέθηκαν emoji' ,
'recent' => 'Συχνά χρησιμοποιούμενα' ,
'smileys' => 'Φατσούλες και συναισθήματα' ,
'people' => 'Άτομα και σώμα' ,
'nature' => 'Ζώα και φύση' ,
'food' => 'Φαγητό και ποτό' ,
'activities' => 'Δραστηριότητες' ,
'travel' => 'Ταξίδια και τοποθεσίες' ,
'objects' => 'Αντικείμενα' ,
'symbols' => 'Σύμβολα' ,
'flags' => 'Σημαίες' ,
],
'status' => [
'pending' => 'Σε εκκρεμότητα' ,
'scheduled' => 'Προγραμματισμένη' ,
'published' => 'Δημοσιεύτηκε' ,
'publishing' => 'Δημοσίευση...' ,
'retrying' => 'Επανάληψη...' ,
'failed' => 'Απέτυχε' ,
],
'delete_modal' => [
'title' => 'Διαγραφή δημοσίευσης' ,
'description' => 'Είστε βέβαιοι ότι θέλετε ν α διαγράψετε αυτή τη δημοσίευση; Αυτή η ενέργεια δεν μπορεί ν α αναιρεθεί.' ,
'action' => 'Διαγραφή' ,
'cancel' => 'Ακύρωση' ,
],
'sync_enable' => [
'title' => 'Ενεργοποίηση συγχρονισμού;' ,
'description' => 'Όλες ο ι πλατφόρμες θα μοιράζονται το ίδιο περιεχόμενο. Οποιεσδήποτε προσαρμοσμένες αλλαγές έγιναν σε μεμονωμένες πλατφόρμες θα αντικατασταθούν με το τρέχον περιεχόμενο.' ,
'cancel' => 'Ακύρωση' ,
'action' => 'Ενεργοποίηση συγχρονισμού' ,
],
'sync_disable' => [
'title' => 'Απενεργοποίηση συγχρονισμού;' ,
'description' => 'Κάθε πλατφόρμα θα διατηρήσει το τρέχον περιεχόμενό της, αλλά ο ι μελλοντικές αλλαγές θα εφαρμόζονται μόνο στην πλατφόρμα που επεξεργάζεστε.' ,
'customize_note' => 'Θα μπορείτε ν α προσαρμόζετε το περιεχόμενο γ ι α κάθε πλατφόρμα ξεχωριστά.' ,
'cancel' => 'Ακύρωση' ,
'action' => 'Απενεργοποίηση συγχρονισμού' ,
],
'platforms_dialog' => [
'title' => 'Επιλογή πλατφορμών' ,
'description' => 'Επιλέξτε σε ποιες πλατφόρμες θα δημοσιευτεί αυτή η δημοσίευση.' ,
],
'signatures_modal' => [
'search' => 'Αναζήτηση υπογραφών...' ,
'no_results' => 'Δεν βρέθηκαν υπογραφές.' ,
],
'validation' => [
'select_board' => 'Επιλέξτε έναν πίνακα' ,
'images_not_supported' => 'Ο ι εικόνες δεν υποστηρίζονται' ,
'videos_not_supported' => 'Τ α βίντεο δεν υποστηρίζονται' ,
'max_images' => 'Μέγ. :count εικόνες' ,
'requires_media' => 'Απαιτεί πολυμέσα' ,
'requires_content' => 'Απαιτείται περιεχόμενο κειμένου' ,
'exceeded' => ':count υπέρβαση' ,
'does_not_support_images' => 'Τ ο :platform δεν υποστηρίζει εικόνες' ,
'supports_up_to_images' => 'Τ ο :platform υποστηρίζει έως :count εικόνες' ,
'does_not_support_videos' => 'Τ ο :platform δεν υποστηρίζει βίντεο' ,
],
],
'content_types' => [
'instagram_feed' => [
'label' => 'Δημοσίευση feed' ,
'description' => 'Εμφανίζεται στο feed και το προφίλ σας' ,
],
'instagram_reel' => [
'label' => 'Reel' ,
2026-07-25 00:21:39 +00:00
'description' => 'Σύντομο βίντεο έως 15 λεπτά' ,
Translate the interface into 12 languages
Add full lang/ translations for fr, de, it, nl, pl, el, ja, ko, zh, ru,
tr, and ar — all 23 base files each, with identical key trees to lang/en,
preserved :placeholders and plural forms, and native product terminology.
2026-07-03 18:38:40 +00:00
],
'instagram_story' => [
'label' => 'Story' ,
'description' => 'Εξαφανίζεται μετά από 24 ώρες' ,
],
'linkedin_post' => [
'label' => 'Δημοσίευση' ,
'description' => 'Τυπική δημοσίευση — μία εικόνα, πολλές εικόνες, βίντεο ή PDF' ,
],
'linkedin_page_post' => [
'label' => 'Δημοσίευση' ,
'description' => 'Τυπική δημοσίευση — μία εικόνα, πολλές εικόνες, βίντεο ή PDF' ,
],
'facebook_post' => [
'label' => 'Δημοσίευση' ,
'description' => 'Τυπική δημοσίευση στη σελίδα σας' ,
],
'facebook_reel' => [
'label' => 'Reel' ,
'description' => 'Σύντομο βίντεο έως 90 δευτερόλεπτα' ,
],
'facebook_story' => [
'label' => 'Story' ,
'description' => 'Κατακόρυφο story βίντεο, έως 60 δευτερόλεπτα' ,
],
'tiktok_video' => [
'label' => 'Βίντεο' ,
'description' => 'Περιεχόμενο βίντεο σύντομης μορφής' ,
],
'tiktok_photo' => [
'label' => 'Carousel φωτογραφιών' ,
'description' => 'Έως 35 φωτογραφίες ως carousel με ολίσθηση' ,
],
'youtube_short' => [
'label' => 'Short' ,
2026-07-23 15:06:15 +00:00
'description' => 'Κατακόρυφο βίντεο έως 3 λεπτά' ,
Translate the interface into 12 languages
Add full lang/ translations for fr, de, it, nl, pl, el, ja, ko, zh, ru,
tr, and ar — all 23 base files each, with identical key trees to lang/en,
preserved :placeholders and plural forms, and native product terminology.
2026-07-03 18:38:40 +00:00
],
'x_post' => [
'label' => 'Δημοσίευση' ,
'description' => 'Tweet με κείμενο και πολυμέσα' ,
],
'threads_post' => [
'label' => 'Δημοσίευση' ,
'description' => 'Δημοσίευση κειμένου με προαιρετικά πολυμέσα' ,
],
'pinterest_pin' => [
'label' => 'Pin' ,
'description' => 'Τυπικό pin εικόνας' ,
],
'pinterest_video_pin' => [
'label' => 'Video Pin' ,
'description' => 'Video pin (4δ - 15λ)' ,
],
'pinterest_carousel' => [
'label' => 'Carousel' ,
'description' => 'Carousel πολλαπλών εικόνων (2-5 εικόνες)' ,
],
'bluesky_post' => [
'label' => 'Δημοσίευση' ,
'description' => 'Δημοσίευση κειμένου με προαιρετικές εικόνες' ,
],
'mastodon_post' => [
'label' => 'Δημοσίευση' ,
'description' => 'Δημοσίευση κειμένου με προαιρετικά πολυμέσα' ,
],
'telegram_post' => [
'label' => 'Δημοσίευση' ,
'description' => 'Δημοσίευση κειμένου με προαιρετικά πολυμέσα' ,
],
'discord_message' => [
'label' => 'Μήνυμα' ,
'description' => 'Μήνυμα σε κανάλι Discord με προαιρετικά πολυμέσα και embeds' ,
],
],
'platforms' => [
'linkedin' => 'LinkedIn' ,
'linkedin-page' => 'Σελίδα LinkedIn' ,
'x' => 'X' ,
'tiktok' => 'TikTok' ,
'youtube' => 'YouTube Shorts' ,
'facebook' => 'Σελίδα Facebook' ,
'instagram' => 'Instagram' ,
'threads' => 'Threads' ,
'pinterest' => 'Pinterest' ,
'bluesky' => 'Bluesky' ,
'mastodon' => 'Mastodon' ,
],
'flash' => [
'scheduled' => 'Η δημοσίευση προγραμματίστηκε με επιτυχία!' ,
'deleted' => 'Η δημοσίευση διαγράφηκε με επιτυχία!' ,
'duplicated' => 'Η δημοσίευση αντιγράφηκε ως πρόχειρο.' ,
'cannot_edit_finalized' => 'Αυτή η δημοσίευση έχει ήδη επεξεργαστεί και δεν μπορεί ν α δημοσιευτεί ξανά. Αντιγράψτε την γ ι α ν α δοκιμάσετε ξανά.' ,
'cannot_delete_published' => 'Ο ι δημοσιευμένες δημοσιεύσεις δεν μπορούν ν α διαγραφούν.' ,
'connect_first' => 'Συνδέστε τουλάχιστον ένα κοινωνικό δίκτυο πριν δημιουργήσετε μια δημοσίευση.' ,
],
'errors' => [
'account_disconnected' => 'Ο λογαριασμός κοινωνικού δικτύου έχει αποσυνδεθεί' ,
'account_inactive' => 'Ο λογαριασμός κοινωνικού δικτύου έχει απενεργοποιηθεί' ,
'account_token_expired' => 'Η συνεδρία του λογαριασμού κοινωνικού δικτύου έληξε — επανασυνδεθείτε' ,
fix: Pinterest video processing timeout — longer poll + retry (#246)
* fix: give Pinterest video processing more time and retry on timeout
A valid ~54s video pin failed after ~90s of polling while Pinterest was
still processing. Extend the poll window to ~5 minutes and treat timeout
as platform unavailable so PublishToSocialPlatform reschedules instead of
failing the post on the first attempt.
Co-authored-by: Cursor <cursoragent@cursor.com>
* refactor: use Laravel Sleep for Pinterest media processing polls
Co-authored-by: Cursor <cursoragent@cursor.com>
* refactor: inline Pinterest video processing poll constants
Co-authored-by: Cursor <cursoragent@cursor.com>
* refactor: map Pinterest media upload statuses to an enum
Use the official MediaUploadStatus values (registered, processing,
succeeded, failed) instead of comparing raw strings in the publisher.
Co-authored-by: Cursor <cursoragent@cursor.com>
* refactor: trim Pinterest media processing docblock
* fix: cap platform-unavailable retries and recover stuck retrying posts
Stop infinite reschedules after 6 attempts with a user-safe failure
message, keep technical detail in error_context, recover Retrying
platforms in social:recover-stuck-posts, and drop unused isTerminal().
Co-authored-by: Cursor <cursoragent@cursor.com>
* refactor: remove unused failedCount in RecoverStuckPosts
Co-authored-by: Cursor <cursoragent@cursor.com>
* fix: skip final Pinterest poll sleep and localize recover timeout
Co-authored-by: Cursor <cursoragent@cursor.com>
* fix: raise publish job timeout headroom and ignore already-failed platforms
Give social publish jobs 15 minutes so Pinterest media polling fits under
the worker limit, bump Horizon/redis retry_after above that timeout, and
skip handle/failed when the platform is already Failed so delayed jobs
cannot revive posts recovered by social:recover-stuck-posts.
Co-authored-by: Cursor <cursoragent@cursor.com>
* fix: restore social-publishing and ai-assistant horizon supervisors
Co-authored-by: Cursor <cursoragent@cursor.com>
* fix: harden Pinterest 401 handling, unique publish jobs, and recover JSON
Treat media-status 401 as TokenExpired, make PublishToSocialPlatform
unique per platform+attempt so retries still queue, and persist recover
error_context via Eloquent casts instead of manual json_encode.
Co-authored-by: Cursor <cursoragent@cursor.com>
* refactor: mass-update stuck post platforms without per-row each
Eloquent query updates already bind JSON arrays correctly here, so one
UPDATE is enough — no manual json_encode and no N model writes.
Co-authored-by: Cursor <cursoragent@cursor.com>
* refactor: simplify Pinterest media processing poll loop
Co-authored-by: Cursor <cursoragent@cursor.com>
* refactor: simplify publish job retry and terminal status checks
Co-authored-by: Cursor <cursoragent@cursor.com>
* fix: do not finalize posts while platforms are still retrying
Co-authored-by: Cursor <cursoragent@cursor.com>
* test: cover Pinterest timeout, unique jobs, and recover edge cases
Co-authored-by: Cursor <cursoragent@cursor.com>
* fix: retry Pinterest media poll on connection errors and tighten tests
Co-authored-by: Cursor <cursoragent@cursor.com>
* fix: remove ineffective TypeError import that breaks CI
Co-authored-by: Cursor <cursoragent@cursor.com>
---------
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-06 23:49:37 +00:00
'platform_unavailable' => 'Η πλατφόρμα είναι προσωρινά μη διαθέσιμη. Θα δοκιμάσουμε ξανά σύντομα.' ,
'platform_unavailable_exhausted' => 'Η πλατφόρμα παρέμεινε μη διαθέσιμη μετά από αρκετές προσπάθειες. Δοκιμάστε ξανά αργότερα.' ,
'publishing_timed_out' => 'Η δημοσίευση έληξε. Δοκιμάστε ξανά.' ,
Translate the interface into 12 languages
Add full lang/ translations for fr, de, it, nl, pl, el, ja, ko, zh, ru,
tr, and ar — all 23 base files each, with identical key trees to lang/en,
preserved :placeholders and plural forms, and native product terminology.
2026-07-03 18:38:40 +00:00
],
'delete' => [
'title' => 'Διαγραφή δημοσίευσης;' ,
'description' => 'Αυτή η ενέργεια δεν μπορεί ν α αναιρεθεί. Η δημοσίευση και όλα τα πολυμέσα της θα αφαιρεθούν οριστικά.' ,
'confirm' => 'Ν α ι , διαγραφή' ,
'cancel' => 'Ακύρωση' ,
],
'create' => [
'title' => 'Δημιουργία νέας δημοσίευσης' ,
'description' => 'Επιλέξτε πώς θέλετε ν α ξεκινήσετε.' ,
'scratch_title' => 'Ξεκινήστε από την αρχή' ,
'scratch_description' => 'Ανοίξτε μια κενή δημοσίευση και γράψτε τα πάντα μόνοι σας.' ,
'ai_title' => 'Δημιουργία με AI' ,
'ai_description' => 'Περιγράψτε τι θέλετε και το AI δημιουργεί το περιεχόμενο γ ι α εσάς.' ,
'ai_configure_description' => 'Επιλέξτε μια μορφή και περιγράψτε τη δημοσίευση που θέλετε ν α δημιουργήσετε.' ,
'ai_pick_template_description' => 'Επιλέξτε ένα στυλ γ ι α τη δημοσίευσή σας που δημιουργείται από AI.' ,
'coming_soon' => 'Έρχεται σύντομα' ,
'preview' => [
'image_title' => 'Τίτλος εικόνας' ,
'image_body' => 'Σώμα εικόνας' ,
],
'steps' => [
'template_picker_title' => 'Επιλέξτε ένα στυλ' ,
'format_title' => 'Επιλέξτε μια μορφή' ,
'format_description' => 'Επιλέξτε τον τύπο δημοσίευσης που θέλετε ν α δημιουργήσετε.' ,
'account_title' => 'Επιλέξτε έναν λογαριασμό' ,
'account_description' => 'Επιλέξτε τον λογαριασμό κοινωνικού δικτύου γ ι α δημοσίευση.' ,
'media_title' => 'Επιλογές πολυμέσων' ,
'media_carousel' => 'Πόσα slides;' ,
'media_optional' => 'Ν α συμπεριληφθούν εικόνες;' ,
'media_optional_label' => 'Πόσες εικόνες;' ,
'media_none' => 'Καμία' ,
'media_count_label' => 'Αριθμός εικόνων' ,
2026-07-18 18:12:26 +00:00
'brand_colors_label' => 'Χρώματα επωνυμίας' ,
'brand_colors_description' => 'Εφάρμοσε την παλέτα της επωνυμίας σ ο υ στις εικόνες που δημιουργούνται. Απενεργοποίησέ το γ ι α ν α επιλέξει το AI χρώματα που ταιριάζουν στο περιεχόμενο.' ,
Translate the interface into 12 languages
Add full lang/ translations for fr, de, it, nl, pl, el, ja, ko, zh, ru,
tr, and ar — all 23 base files each, with identical key trees to lang/en,
preserved :placeholders and plural forms, and native product terminology.
2026-07-03 18:38:40 +00:00
'prompt_title' => 'Περιγράψτε τη δημοσίευσή σας' ,
'prompt_label' => 'Ποιο είναι το θέμα αυτής της δημοσίευσης;' ,
'prompt_placeholder' => 'π.χ. Ανακοινώστε τη νέα μας λειτουργία carousel γ ι α το Instagram' ,
'preview_error' => 'Κάτι πήγε στραβά. Παρακαλούμε δοκιμάστε ξανά.' ,
'loading_page_title' => 'Δημιουργία της δημοσίευσής σας' ,
'loading_eta' => 'Εκτιμώμενος χρόνος: περίπου :minutes.' ,
'loading_eta_minute_one' => '1 λεπτό' ,
'loading_eta_minute_other' => ':count λεπτά' ,
'loading_leave_title' => 'Μπορείτε ν α συνεχίσετε ν α εργάζεστε.' ,
'loading_leave_body' => 'Θα σας ειδοποιήσουμε όταν η δημοσίευση είναι έτοιμη.' ,
'loading_leave_cta' => 'Μετάβαση στο ημερολόγιο' ,
'loading_create_another_cta' => 'Δημιουργία άλλης δημοσίευσης' ,
'loading_tip_credits' => 'Κάθε εικόνα AI χρησιμοποιεί περίπου 15 credits.' ,
'loading_tip_edit' => 'Θα μπορείτε ν α επεξεργαστείτε τα πάντα μόλις η δημοσίευση είναι έτοιμη.' ,
'loading_tip_draft' => 'Ο ι δημιουργημένες δημοσιεύσεις καταλήγουν στα πρόχειρά σας.' ,
'loading_tip_brand' => 'Προσαρμόστε τις ρυθμίσεις της μάρκας σας γ ι α ν α επηρεάσετε μελλοντικές δημοσιεύσεις.' ,
'loading_tip_carousel' => 'Τ α carousels παρέχουν ένα slide ανά μεταφορτωμένη εικόνα.' ,
'loading_tip_quality' => 'Η ποιότητα εικόνας ρυθμίζεται γ ι α ισορροπία ταχύτητας και κόστους.' ,
'create' => 'Δημιουργία δημοσίευσης' ,
'back' => 'Πίσω' ,
'next' => 'Συνέχεια' ,
'cancel' => 'Ακύρωση' ,
'discard' => 'Απόρριψη' ,
'retry' => 'Δοκιμάστε ξανά' ,
'no_platforms' => 'Δεν υπάρχουν συνδεδεμένοι λογαριασμοί' ,
'connect_first' => 'Συνδέστε τουλάχιστον έναν λογαριασμό κοινωνικού δικτύου γ ι α ν α χρησιμοποιήσετε τη δημιουργία με AI.' ,
'no_account_for_template' => 'Συνδέστε έναν συμβατό λογαριασμό γ ι α ν α χρησιμοποιήσετε αυτό το πρότυπο.' ,
'format' => [
'instagram_feed' => 'Δημοσίευση feed Instagram' ,
'instagram_carousel' => 'Carousel Instagram' ,
'linkedin_post' => 'Δημοσίευση LinkedIn' ,
'linkedin_page_post' => 'Δημοσίευση σελίδας LinkedIn' ,
'x_post' => 'Δημοσίευση X' ,
'bluesky_post' => 'Δημοσίευση Bluesky' ,
'threads_post' => 'Δημοσίευση Threads' ,
'mastodon_post' => 'Δημοσίευση Mastodon' ,
'telegram_post' => 'Δημοσίευση Telegram' ,
'discord_message' => 'Μήνυμα Discord' ,
'facebook_post' => 'Δημοσίευση Facebook' ,
'pinterest_pin' => 'Pin Pinterest' ,
'instagram_story' => 'Story Instagram' ,
'facebook_story' => 'Story Facebook' ,
],
],
],
];