diff --git a/config/locales/en_CA.yml b/config/locales/en_CA.yml index a38b021535..75497933d8 100644 --- a/config/locales/en_CA.yml +++ b/config/locales/en_CA.yml @@ -246,6 +246,9 @@ en_CA: disconnect_failure: "Failed to disconnecct Stripe." success_code: disconnected: "Stripe account disconnected." + taler: + order_status: + claimed: "The payment request expired. Please try again." activemodel: errors: messages: @@ -3358,6 +3361,8 @@ en_CA: payment_processing_failed: "Payment could not be processed, please check the details you entered." payment_method_not_supported: "That payment method is unsupported. Please choose another one." payment_updated: "Payment Updated" + payment_method_taler: + order_summary: "Open Food Network order" cannot_perform_operation: "Could not update the payment" action_required: "Action required" tag_rules: "Tag Rules" @@ -4171,6 +4176,7 @@ en_CA: alt_text: "Alternative Text" thumbnail: "Thumbnail" back_to_images_list: "Back to Images List" + backend_url: "Backend URL" api_key: "API key" email: Email account_updated: "Account updated!" @@ -4490,6 +4496,7 @@ en_CA: check: "Cash/EFT/Bank Transfer etc. (payments for which automatic validation is not required)" paypalexpress: "PayPal Express" stripesca: "Stripe SCA" + taler: "Taler" payments: source_forms: stripe: diff --git a/config/locales/en_GB.yml b/config/locales/en_GB.yml index 851c5f2961..0da524688a 100644 --- a/config/locales/en_GB.yml +++ b/config/locales/en_GB.yml @@ -115,6 +115,67 @@ en_GB: blank: "can't be blank" too_short: "is too short (minimum is %{count} characters)" errors: + messages: + content_type_invalid: + one: "has an invalid content type (authorised content type is %{authorized_human_content_types})" + other: "has an invalid content type (authorised content types are\n%{authorized_human_content_types})" + content_type_spoofed: + one: "has a content type that is not equivalent to the one that is detected through its content (authorised content type is %{authorized_human_content_types})" + other: "has a content type that is not equivalent to the one that is detected through its content (authorised content types are %{authorized_human_content_types})" + file_size_not_less_than: "file size must be less than %{max} (current size is %{file_size})" + file_size_not_less_than_or_equal_to: "file size must be less than or equal to %{max} (current size is %{file_size})" + file_size_not_greater_than: "file size must be greater than %{min} (current size is %{file_size})" + file_size_not_greater_than_or_equal_to: "file size must be greater than or equal to %{min} (current size is %{file_size})" + file_size_not_between: "file size must be between %{min} and %{max} (current size is %{file_size})" + file_size_not_equal_to: "file size must be equal to %{exact} (current size is %{file_size})" + total_file_size_not_less_than: "total file size must be less than %{max} (current size is %{total_file_size})" + total_file_size_not_less_than_or_equal_to: "total file size must be less than or equal to %{max} (current size is %{total_file_size})" + total_file_size_not_greater_than: "total file size must be greater than %{min} (current size is %{total_file_size})" + total_file_size_not_greater_than_or_equal_to: "total file size must be greater than or equal to %{min} (current size is %{total_file_size})" + total_file_size_not_between: "total file size must be between %{min} and %{max} (current size is %{total_file_size})" + total_file_size_not_equal_to: "total file size must be equal to %{exact} (current size is %{total_file_size})" + duration_not_less_than: "duration must be less than %{max} (current duration is %{duration})" + duration_not_less_than_or_equal_to: "duration must be less than or equal to %{max} (current duration is %{duration})" + duration_not_greater_than: "duration must be greater than %{min} (current duration is %{duration})" + duration_not_greater_than_or_equal_to: "duration must be greater than or equal to %{min} (current duration is %{duration})" + duration_not_between: "duration must be between %{min} and %{max} (current duration is %{duration})" + duration_not_equal_to: "duration must be equal to %{exact} (current duration is %{duration})" + limit_out_of_range: + zero: "no files attached (must have between %{min} and %{max}files)" + one: "only 1 file attached (must have between %{min} and %{max}files)" + other: "total number of files must be between %{min} and %{max} files (there are %{count}files attached)" + limit_min_not_reached: + zero: "no files attached (must have at least %{min} files)" + one: "only 1 file attached (must have at least %{min} files)" + other: "%{count} files attached (must have at least %{min} files)" + limit_max_exceeded: + zero: "no files attached (maximum is %{max} files)" + one: "too many files attached (maximum is %{max} files, got %{count})" + other: "too many files attached (maximum is %{max} files, got %{count})" + attachment_missing: "is missing its attachment" + media_metadata_missing: "is not a valid media file" + dimension_min_not_included_in: "must be greater than or equal to %{width} x %{height} pixels" + dimension_max_not_included_in: "must be less than or equal to %{width} x %{height} pixels" + dimension_width_not_included_in: "width is not included between %{min} and %{max} pixels" + dimension_height_not_included_in: "height is not included between %{min} and %{max} pixels" + dimension_width_not_greater_than_or_equal_to: "width must be greater than or equal to %{length} pixels" + dimension_height_not_greater_than_or_equal_to: "height must be greater than or equal to %{length} pixels" + dimension_width_not_less_than_or_equal_to: "width must be less than or equal to %{length} pixels" + dimension_height_not_less_than_or_equal_to: "height must be less than or equal to %{length} pixels" + dimension_width_not_equal_to: "width must be equal to %{length} pixels" + dimension_height_not_equal_to: "height must be equal to %{length} pixels" + aspect_ratio_not_square: "must be square (current file is %{width}x%{height}px)" + aspect_ratio_not_portrait: "must be portrait (current file is %{width}x%{height}px)" + aspect_ratio_not_landscape: "must be landscape (current file is %{width}x%{height}px)" + aspect_ratio_not_x_y: "must be %{authorized_aspect_ratios} (current file is %{width}x%{height}px)" + aspect_ratio_invalid: "has an invalid aspect ratio (valid aspect ratios are %{authorized_aspect_ratios})" + file_not_processable: "is not identified as a valid media file" + pages_not_less_than: "page count must be less than %{max} (current page count is %{pages})" + pages_not_less_than_or_equal_to: "page count must be less than or equal to %{max} (current page count is %{pages})" + pages_not_greater_than: "page count must be greater than %{min} (current page count is %{pages})" + pages_not_greater_than_or_equal_to: "page count must be greater than or equal to %{min} (current page count is %{pages})" + pages_not_between: "page count must be between %{min} and %{max} (current page count is %{pages})" + pages_not_equal_to: "page count must be equal to %{exact} (current page count is %{pages})" not_found: title: "The page you were looking for doesn't exist (404)" message_html: "Please try again

This might be a temporary problem. Please click the back button to return to the previous screen or go back to Home and try again.

Contact support

If the problem persists or is urgent, please tell us about it. Find our contact details from the global Open Food Network Local page.

It really helps us if you can give as much detail as possible about what the missing page is about.

" @@ -185,6 +246,9 @@ en_GB: disconnect_failure: "Failed to disconnect Stripe." success_code: disconnected: "Stripe account disconnected." + taler: + order_status: + claimed: "The payment request expired. Please try again." activemodel: errors: messages: @@ -520,6 +584,7 @@ en_GB: errors: vine_api: "There was an error communicating with the API, please try again later." invalid_voucher: "The voucher is not valid" + expired: "The voucher has expired" not_found_voucher: "Sorry, we couldn't find that voucher, please check the code." vine_voucher_redeemer_service: errors: @@ -934,6 +999,10 @@ en_GB: clone: success: Successfully cloned the product error: Unable to clone the product + tag_rules: + rules_per_tag: + one: "%{tag} has 1 rule" + other: "%{tag} has %{count} rules" product_import: title: Product Import file_not_found: File not found or could not be opened @@ -2374,9 +2443,9 @@ en_GB: order_includes_tax: (includes tax) order_payment_paypal_successful: Your payment via PayPal has been processed successfully. order_hub_info: Hub info - order_back_to_store: Back To Store - order_back_to_cart: Back To Cart - order_back_to_website: Back To Website + order_back_to_store: Back to shop + order_back_to_cart: Back to cart + order_back_to_website: Back to website checkout_details_title: Checkout Details checkout_payment_title: Checkout Payment checkout_summary_title: Checkout Summary @@ -3292,11 +3361,13 @@ en_GB: payment_processing_failed: "Payment could not be processed, please check the details you entered" payment_method_not_supported: "That payment method is unsupported. Please choose another one." payment_updated: "Payment Updated" + payment_method_taler: + order_summary: "Open Food Network order" cannot_perform_operation: "Could not update the payment" action_required: "Action required" tag_rules: "Tag Rules" enterprise_fee_whole_order: Whole order - enterprise_fee_by_name: "%{name} fee by %{role}%{enterprise_name}" + enterprise_fee_by_name: "%{name} fee by %{role} %{enterprise_name}" validation_msg_relationship_already_established: "^That relationship is already established." validation_msg_at_least_one_hub: "^At least one hub must be selected" validation_msg_tax_category_cant_be_blank: "^Tax Category can't be blank" @@ -3337,6 +3408,7 @@ en_GB: order_cycles_no_permission_to_coordinate_error: "None of your enterprises have permission to coordinate an order cycle" order_cycles_no_permission_to_create_error: "You don't have permission to create an order cycle coordinated by that enterprise" order_cycle_closed: "The order cycle you've selected has just closed." + order_cycle_closed_next_steps: "The order cycle you've selected has just closed. Please contact us to complete your order #\n%{order_number}!" back_to_orders_list: "Back To Orders List" no_orders_found: "No Orders Found" order_information: "Order Information" @@ -3911,6 +3983,8 @@ en_GB: destroy: success: Webhook endpoint successfully deleted error: Webhook endpoint failed to delete + test: + success: Some test data will be sent to the webhook url spree: order_updated: "Order Updated" cannot_perform_operation: "Can not perform this operation" @@ -4017,6 +4091,7 @@ en_GB: logourl: "Logo url" are_you_sure_delete: "Are you sure you want to delete this record?" confirm_delete: "Confirm Deletion" + tag_rule: "Tag Rule" voucher: "Voucher" configurations: "Configurations" general_settings: "General Settings" @@ -4108,6 +4183,7 @@ en_GB: alt_text: "Alternative Text" thumbnail: "Thumbnail" back_to_images_list: "Back To Images List" + backend_url: "Backend URL" api_key: "API key" email: Email account_updated: "Account updated!" @@ -4427,6 +4503,7 @@ en_GB: check: "Cash/EFT/etc. (payments for which automatic validation is not required)" paypalexpress: "PayPal Express" stripesca: "Stripe SCA " + taler: "Taler" payments: source_forms: stripe: @@ -4883,6 +4960,7 @@ en_GB: order_cycle_tagged_bottom: "are:" inventory_tagged_top: "Inventory variants tagged" inventory_tagged_bottom: "are:" + variant_tagged_top: "Variants tagged" variant_tagged_bottom: "are:" visible: VISIBLE not_visible: NOT VISIBLE @@ -4898,6 +4976,8 @@ en_GB: create_placeholder: Enter the URL of the remote webhook endpoint event_types: order_cycle_opened: Order Cycle Opened + payment_status_changed: Post webhook on Payment status change + test_endpoint: Test webhook endpoint invisible_captcha: sentence_for_humans: "Please leave empty" timestamp_error_message: "Please try again after 5 seconds." diff --git a/config/locales/fi.yml b/config/locales/fi.yml index ef51cf4202..e1d19e03d3 100644 --- a/config/locales/fi.yml +++ b/config/locales/fi.yml @@ -18,7 +18,7 @@ fi: phone: "Puhelinnumero" firstname: "Etunimi" lastname: "Sukunimi" - zipcode: "Toimituspostinumero" + zipcode: "Toimitusosoitteen postinumero" spree/order/bill_address: address1: "Laskutusosoite (Katu ja talonumero)" zipcode: "Laskutuspostinumero" @@ -115,6 +115,67 @@ fi: blank: "ei voi olla tyhjä" too_short: "on liian lyhyt (vähintään %{count} merkkiä)" errors: + messages: + content_type_invalid: + one: "sisältää virheellisen sisältötyypin (valtuutettu sisältötyyppi on %{authorized_human_content_types} )" + other: "sisältää virheellisen sisältötyypin (valtuutetut sisältötyypit ovat %{authorized_human_content_types} )" + content_type_spoofed: + one: "sisältötyyppi ei vastaa sisällöstä havaittua tyyppiä (valtuutettu sisältötyyppi on %{authorized_human_content_types} )" + other: "sisältötyyppi ei vastaa sisällöstä havaittua tyyppiä (valtuutetut sisältötyypit ovat %{authorized_human_content_types} )" + file_size_not_less_than: "tiedoston koko on oltava pienempi kuin %{max} (nykyinen koko on %{file_size} )" + file_size_not_less_than_or_equal_to: "tiedoston koko on oltava pienempi tai yhtä suuri kuin %{max} (nykyinen koko on %{file_size} )" + file_size_not_greater_than: "tiedoston koko on oltava suurempi kuin %{min} (nykyinen koko on %{file_size} )" + file_size_not_greater_than_or_equal_to: "tiedoston koko on oltava suurempi tai yhtä suuri kuin %{min} (nykyinen koko on %{file_size} )" + file_size_not_between: "koko on oltava %{min} ja %{max} välillä (nykyinen koko on %{file_size} )" + file_size_not_equal_to: "tiedoston koko on oltava yhtä suuri kuin %{exact} (nykyinen koko on %{file_size} )" + total_file_size_not_less_than: "yhteensä tiedoston koko on oltava pienempi kuin %{max} (nykyinen koko on %{total_file_size} )" + total_file_size_not_less_than_or_equal_to: "yhteensä tiedoston koko on oltava pienempi tai yhtä suuri kuin %{max} (nykyinen koko on %{total_file_size} )" + total_file_size_not_greater_than: "yhteensä tiedoston koko on oltava suurempi kuin %{min} (nykyinen koko on %{total_file_size} )" + total_file_size_not_greater_than_or_equal_to: "yhteensä tiedoston koko on oltava suurempi tai yhtä suuri kuin %{min} (nykyinen koko on %{total_file_size} )" + total_file_size_not_between: "yhteensä tiedoston koko on oltava %{min} ja %{max} välillä (nykyinen koko on %{total_file_size} )" + total_file_size_not_equal_to: "yhteensä tiedoston koko on oltava yhtä suuri kuin %{exact} (nykyinen koko on %{total_file_size} )" + duration_not_less_than: "keston on oltava pienempi kuin %{max} (nykyinen kesto on %{duration} )" + duration_not_less_than_or_equal_to: "keston on oltava pienempi tai yhtä suuri kuin %{max} (nykyinen kesto on %{duration} )" + duration_not_greater_than: "keston on oltava suurempi kuin %{min} (nykyinen kesto on %{duration} )" + duration_not_greater_than_or_equal_to: "keston on oltava suurempi tai yhtä suuri kuin %{min} (nykyinen kesto on %{duration} )" + duration_not_between: "keston on oltava välillä %{min} ja %{max} (nykyinen kesto on %{duration} )" + duration_not_equal_to: "keston on oltava yhtä suuri kuin %{exact} (nykyinen kesto on %{duration} )" + limit_out_of_range: + zero: "ei liitettyjä tiedostoja (tiedostojen on oltava %{min} ja %{max} välillä)" + one: "vain yksi liitetty tiedosto (tiedostojen on oltava %{min} ja %{max} välillä)" + other: "Tiedostojen yhteensä on oltava %{min} ja %{max} välillä (liitteenä on %{count} tiedostot)" + limit_min_not_reached: + zero: "ei liitettyjä tiedostoja (tiedostoissa on oltava vähintään %{min} )" + one: "vain yksi tiedosto liitettynä (tiedostojen on oltava vähintään %{min} )" + other: "%{count} tiedostot liitteenä (vähintään %{min} tiedostoja on oltava)" + limit_max_exceeded: + zero: "ei liitettyjä tiedostoja (enintään %{max} tiedostoja)" + one: "liian monta tiedostoa liitettynä (suurin sallittu määrä on %{max} , sain tulokseksi %{count} )" + other: "liian monta tiedostoa liitettynä (suurin sallittu määrä on %{max} , sain tulokseksi %{count} )" + attachment_missing: "puuttuu sen liite" + media_metadata_missing: "ei ole kelvollinen mediatiedosto" + dimension_min_not_included_in: "on oltava suurempi tai yhtä suuri kuin %{width} x %{height} pikseliä" + dimension_max_not_included_in: "on oltava pienempi tai yhtä suuri kuin %{width} x %{height} pikseliä" + dimension_width_not_included_in: "Leveys ei sisälly %{min} ja %{max} pikselien väliin" + dimension_height_not_included_in: "Korkeutta ei ole %{min} ja %{max} pikselien välillä." + dimension_width_not_greater_than_or_equal_to: "leveyden on oltava suurempi tai yhtä suuri kuin %{length} pikseliä" + dimension_height_not_greater_than_or_equal_to: "korkeuden on oltava suurempi tai yhtä suuri kuin %{length} pikseliä" + dimension_width_not_less_than_or_equal_to: "leveyden on oltava pienempi tai yhtä suuri kuin %{length} pikseliä" + dimension_height_not_less_than_or_equal_to: "korkeuden on oltava pienempi tai yhtä suuri kuin %{length} pikseliä" + dimension_width_not_equal_to: "leveyden on oltava yhtä suuri kuin %{length} pikseliä" + dimension_height_not_equal_to: "korkeuden on oltava yhtä suuri kuin %{length} pikselit" + aspect_ratio_not_square: "on oltava neliön muotoinen (nykyinen tiedosto on %{width} x %{height} px)" + aspect_ratio_not_portrait: "tiedoston on oltava pystysuuntainen (nykyinen tiedosto on %{width} x %{height} px)" + aspect_ratio_not_landscape: "tiedoston on oltava vaakasuuntainen (nykyinen tiedosto on %{width} x %{height} px)" + aspect_ratio_not_x_y: "tiedoston on oltava %{authorized_aspect_ratios} (nykyinen tiedosto on %{width} x %{height} px)" + aspect_ratio_invalid: "kuvasuhde on virheellinen (kelvolliset kuvasuhteet ovat %{authorized_aspect_ratios} )" + file_not_processable: "ei ole tunnistettu kelvolliseksi mediatiedostoksi" + pages_not_less_than: "sivumäärän on oltava pienempi kuin %{max} (nykyinen sivumäärä on %{pages} )" + pages_not_less_than_or_equal_to: "sivumäärän on oltava pienempi tai yhtä suuri kuin %{max} (nykyinen sivumäärä on %{pages} )" + pages_not_greater_than: "sivumäärän on oltava suurempi kuin %{min} (nykyinen sivumäärä on %{pages} )" + pages_not_greater_than_or_equal_to: "sivumäärän on oltava suurempi tai yhtä suuri kuin %{min} (nykyinen sivumäärä on %{pages} )" + pages_not_between: "sivumäärän on oltava välillä %{min} ja %{max} (nykyinen sivumäärä on %{pages} )" + pages_not_equal_to: "sivumäärän on oltava yhtä suuri kuin %{exact} (nykyinen sivumäärä on %{pages} )" not_found: title: "Etsimääsi sivua ei löytynyt (404)" message_html: "Yritä uudelleen

Tämä voi olla tilapäinen ongelma. Palaa edelliselle sivulle tai etusivulle ja yritä uudelleen.

Ota yhteyttä tukeen

Jos ongelma jatkuu tai on kiireellinen, kerro siitä meille. Löydä yhteystiedot globaalilta Open Food Network Local -sivulta.

Autat meitä paljon, jos annat mahdollisimman paljon yksityiskohtia puuttuvasta sivusta.

" @@ -185,6 +246,9 @@ fi: disconnect_failure: "Stripe-tilin irrottaminen epäonnistui." success_code: disconnected: "Stripe-tili irrotettu." + taler: + order_status: + claimed: "Maksupyyntö vanheni. Yritä uudelleen." activemodel: errors: messages: @@ -518,6 +582,7 @@ fi: errors: vine_api: "API-yhteydessä tapahtui virhe, yritä myöhemmin uudelleen." invalid_voucher: "Alennuskuponki ei ole kelvollinen" + expired: "Kuponki on vanhentunut" not_found_voucher: "Anteeksi, emme löytäneet tätä alennuskuponkia, tarkista koodi." vine_voucher_redeemer_service: errors: @@ -932,6 +997,10 @@ fi: clone: success: Tuote kloonattiin onnistuneesti error: Tuotteen kloonaaminen epäonnistui + tag_rules: + rules_per_tag: + one: "%{tag} llä on 1 sääntö" + other: "%{tag} llä on %{count} säännöt." product_import: title: Tuontituotteet file_not_found: Tiedostoa ei löytynyt tai sitä ei voitu avata @@ -1326,6 +1395,9 @@ fi: add_new_button: '+ Lisää uusi oletussääntö' no_tags_yet: Tähän yritykseen ei vielä liity tägejä add_new_tag: '+ Lisää uusi tägi' + show_hide_variants: 'Näytä tai Piilota variantit myymälästäni' + show_hide_shipping: 'Näytä tai piilota toimitustavat kassalla' + show_hide_payment: 'Näytä tai Piilota maksutavat kassalla' show_hide_order_cycles: 'Näytä tai piilota tilausjaksot verkkokaupassani' users: legend: "Käyttäjät" @@ -1479,6 +1551,10 @@ fi: invite_manager: user_already_exists: "Käyttäjä on jo olemassa" error: "Jotain meni pieleen" + tag_rules: + not_supported_type: tägi -sääntötyyppiä ei tueta + confirm_delete: Haluatko varmasti poistaa tämän säännön? + destroy_error: tägi -säännön poistamisessa oli ongelma. order_cycles: loading_flash: loading_order_cycles: LADATAAN TILAUSJAKSOJA @@ -1702,6 +1778,8 @@ fi: not_visible: "%{enterprise} ei ole näkyvissä, joten sitä ei löydy kartalta tai hauista" reports: none: ei yhtään + metadata: + report_title: Ilmianna otsikko deprecated: "Tämä raportti on vanhentunut ja se poistetaan tulevasta julkaisusta." hidden_field: "< Piilotettu >" unitsize: YKSIKKÖKOKO @@ -1804,6 +1882,7 @@ fi: display: Näyttö summary_row: Yhteenvetorivi header_row: Otsikkorivi + metadata_rows: Metadata-rivit raw_data: Raakadata formatted_data: Muotoiltu data packing: @@ -2379,8 +2458,15 @@ fi: email_confirmed: "Kiitos sähköpostiosoitteesi vahvistamisesta." email_confirmation_activate_account: "Ennen kuin voimme aktivoida uuden tilisi, meidän on vahvistettava sähköpostiosoitteesi." email_confirmation_greeting: "Hei, %{contact} !" + email_confirmation_profile_created: > + Profiili käyttäjälle %{name} on luotu onnistuneesti! Profiilisi aktivoimiseksi + meidän on vahvistettava tämä sähköpostiosoite. email_confirmation_click_link: "Vahvista sähköpostiosoitteesi ja jatka profiilisi luomista napsauttamalla alla olevaa linkkiä." email_confirmation_link_label: "Vahvista tämä sähköpostiosoite »" + email_confirmation_help_html: > + Kun olet vahvistanut sähköpostiosoitteesi, voit käyttää ylläpitäjän tiliäsi + tässä yrityksessä. Katso %{link} saadaksesi about %{sitename} :n ominaisuuksista + ja aloittaaksesi profiilisi tai verkkokauppasi käytön. email_confirmation_notice_unexpected: "Sait tämän viestin, koska rekisteröidyit palvelussa %{sitename} tai joku luultavasti tuntemasi henkilö kutsui sinut rekisteröitymään. Jos et ymmärrä, miksi saat tämän sähköpostin, kirjoita osoitteeseen %{contact} ." email_social: "Ota yhteyttä:" email_contact: "Lähetä meille sähköpostia:" @@ -3276,6 +3362,8 @@ fi: payment_processing_failed: "Payment could not be processed, please check the details you entered" payment_method_not_supported: "Maksutapaa ei tueta. Valitse toinen." payment_updated: "Maksu päivitetty" + payment_method_taler: + order_summary: "Open Food Network tilaus" cannot_perform_operation: "Maksua ei voitu päivittää" action_required: "Toimenpide vaaditaan" tag_rules: "Tägisäännöt" @@ -3321,6 +3409,7 @@ fi: order_cycles_no_permission_to_coordinate_error: "Yhdelläkään yritykselläsi ei ole lupaa koordinoida tilauskiertoa." order_cycles_no_permission_to_create_error: "Sinulla ei ole oikeutta luoda kyseisen yrityksen koordinoimaa tilausjaksoa." order_cycle_closed: "Valitsemasi tilausjakso on juuri päättynyt. Yritä uudelleen!" + order_cycle_closed_next_steps: "Valitsemasi tilausjakso on juuri sulkeutunut. Ota meihin yhteyttä täydentääksesi tilaustasi# %{order_number} !" back_to_orders_list: "Takaisin tilauslistaan" no_orders_found: "Ei tilaukset löytynyt" order_information: "Tilaustiedot" @@ -3888,6 +3977,8 @@ fi: destroy: success: Webhook-päätepiste poistettu onnistuneesti error: Webhook-päätepisteen poistaminen epäonnistui + test: + success: Joitakin testitietoja lähetetään webhookin URL-osoitteeseen spree: order_updated: "Tilaus päivitetty" cannot_perform_operation: "Tätä toimintoa ei voida suorittaa" @@ -3994,6 +4085,7 @@ fi: logourl: "Logourl" are_you_sure_delete: "Haluatko varmasti poistaa tämän tietueen?" confirm_delete: "Vahvista poisto" + tag_rule: "tägi Rule" voucher: "Alennuskuponki" configurations: "Asetukset" general_settings: "Yleiset asetukset" @@ -4085,6 +4177,8 @@ fi: alt_text: "Vaihtoehtoinen teksti" thumbnail: "Pienoiskuva" back_to_images_list: "Takaisin kuvaluetteloon" + backend_url: "Taustapalvelun URL-osoite" + api_key: "API-avain" email: Sähköposti account_updated: "Tili päivitetty!" email_updated: "Tili päivitetään, kun uusi sähköpostiosoite on vahvistettu." @@ -4403,6 +4497,7 @@ fi: check: "Käteinen/sähköinen maksu/jne. (maksut, joille ei vaadita automaattista vahvistusta)" paypalexpress: "PayPal Express" stripesca: "Stripe SCA" + taler: "Taleri" payments: source_forms: stripe: @@ -4579,8 +4674,8 @@ fi: or_enter_new_card: "Tai anna uuden kortin tiedot:" remember_this_card: Muistatko tämän kortin? date_picker: - flatpickr_date_format: "d.m.Y" - flatpickr_datetime_format: "d.m.Y H:i" + flatpickr_date_format: "Vuosi" + flatpickr_datetime_format: "Vuosi H:i" today: "Tänään" now: "Nyt" close: "Sulje" @@ -4852,13 +4947,31 @@ fi: tag_rule_form: tag_rules: shipping_method_tagged_top: "Toimitustavat merkitty tägillä" + shipping_method_tagged_bottom: "ovat:" payment_method_tagged_top: "Maksutavat merkitty tägillä" + payment_method_tagged_bottom: "ovat:" order_cycle_tagged_top: "Tilausjaksot merkitty tägillä" + order_cycle_tagged_bottom: "ovat:" inventory_tagged_top: "Tägätyt varastomuunnelmat" + inventory_tagged_bottom: "ovat:" + variant_tagged_top: "Variantit -tunnisteella" + variant_tagged_bottom: "ovat:" + visible: NÄKYVÄ + not_visible: EI NÄKYVÄ tag_rule_group_form: for_customers_tagged: 'Asiakkaille, jotka on tägätty:' add_new_rule: '+ Lisää uusi sääntö' no_rules_yet: Tähän tägiin ei vielä sovelleta sääntöjä + add_tag_rule_modal: + select_rule_type: "Valitse säännön tyyppi:" + add_rule: "lisää sääntö" + webhook_endpoint_form: + url: + create_placeholder: Anna etäwebhook-päätepisteen URL-osoite + event_types: + order_cycle_opened: Tilausjakso avattu + payment_status_changed: Lähetä webhook maksun tilan muutoksesta + test_endpoint: Testaa webhookin päätepiste invisible_captcha: sentence_for_humans: "Jätä tyhjäksi" timestamp_error_message: "Yritä uudelleen 5 sekunnin kuluttua." diff --git a/config/locales/fr.yml b/config/locales/fr.yml index 074fe71a47..c3ec8fef5f 100644 --- a/config/locales/fr.yml +++ b/config/locales/fr.yml @@ -2945,7 +2945,7 @@ fr: shipping_method_destroy_error: "Cette méthode de livraison ne peut pas être supprimée car elle est référencée dans une commande : %{number}." fees: "Frais" fee_name: "Nom de la marge/commission" - fee_owner: "Propriétaire des droits" + fee_owner: "Propriétaire de la marge/commission" item_cost: "Coût du produit" bulk: "Vrac" shop_variant_quantity_min: "min" diff --git a/config/locales/fr_CA.yml b/config/locales/fr_CA.yml index d72b6b0ea8..6c53308828 100644 --- a/config/locales/fr_CA.yml +++ b/config/locales/fr_CA.yml @@ -115,6 +115,69 @@ fr_CA: blank: "Champ obligatoire" too_short: "est trop court (minimum %{count} caractère)" errors: + messages: + content_type_invalid: + one: "a un contenu invalide (le type de contenu autorisé est %{authorized_human_content_types})" + many: "a un contenu invalide (les types de contenus autorisés sont %{authorized_human_content_types})" + other: "a un contenu invalide (les types de contenus autorisés sont %{authorized_human_content_types})" + content_type_spoofed: + one: "a un type de contenu qui n'est pas équivalent avec celui détecté (le type de contenu autorisé est %{authorized_human_content_types})" + many: "a un type de contenu qui n'est pas équivalent avec celui détecté (les types de contenus autorisés sont %{authorized_human_content_types})" + other: "a un type de contenu qui n'est pas équivalent avec celui détecté (les types de contenus autorisés sont %{authorized_human_content_types})" + file_size_not_less_than: "la taille du fichier doit être inférieure à %{max} (la taille actuelle est %{file_size})" + file_size_not_less_than_or_equal_to: "la taille du fichier doit être inférieure ou égale à %{max} (la taille actuelle est %{file_size})" + file_size_not_greater_than: "la taille du fichier doit être supérieure à %{min} (la taille actuelle est%{file_size})" + file_size_not_greater_than_or_equal_to: "la taille du fichier doit être supérieure ou égale à %{min} (la taille actuelle est %{file_size})" + file_size_not_between: "la taille du fichier doit être comprise entre%{min} et %{max} (la taille actuelle est %{file_size})" + file_size_not_equal_to: "la taille du fichier doit être égale à %{exact} (la taille actuelle est %{file_size})" + total_file_size_not_less_than: "La taille totale du fichier doit être inférieure à %{max} (la taille actuelle est%{total_file_size})" + total_file_size_not_less_than_or_equal_to: "La taille totale du fichier doit être inférieure ou égale à %{max} (la taille actuelle est %{total_file_size})" + total_file_size_not_greater_than: "La taille totale du fichier doit être supérieure à %{min} (la taille actuelle est%{total_file_size})" + total_file_size_not_greater_than_or_equal_to: "La taille totale du fichier doit être supérieure ou égale à %{min} (la taille actuelle est %{total_file_size})" + total_file_size_not_between: "La taille totale du fichier doit être comprise entre %{min} et %{max} (la taille actuelle est %{total_file_size})" + total_file_size_not_equal_to: "La taille totale du fichier doit être égale à %{exact} (la taille actuelle est%{total_file_size})" + duration_not_less_than: "La durée doit être inférieure à %{max} (la durée actuelle est %{duration})" + duration_not_less_than_or_equal_to: "La durée doit être inférieure ou égale à %{max} (la durée actuelle est%{duration})" + duration_not_greater_than: "La durée doit être supérieure à %{min} (la durée actuelle est %{duration})" + duration_not_greater_than_or_equal_to: "La durée doit être supérieure ou égale à %{min} (la durée actuelle est%{duration})" + duration_not_between: "La durée doit être comprise entre %{min} et %{max} (la durée actuelle est %{duration})" + duration_not_equal_to: "La durée doit être égale à %{exact} (la durée actuelle est %{duration})" + limit_out_of_range: + zero: "Aucun fichier joint (doit contenir entre %{min} et %{max} fichiers)" + one: "Seulement 1 fichier joint (doit contenir entre%{min} et %{max} fichiers)" + other: "Le nombre total de fichiers doit être compris entre %{min} et %{max} fichiers (il y a %{count} fichiers joints)" + limit_min_not_reached: + zero: "Aucun fichier joint (doit contenir au moins %{min} fichiers)" + one: "Seulement 1 fichier joint (doit contenir au moins %{min} fichiers)" + other: "%{count} Aucun fichier joint (doit contenir au moins %{min} fichiers)" + limit_max_exceeded: + zero: "Aucun fichier joint (au maximum %{max} fichiers)" + one: "Trop de fichiers joints (le maximum est %{max} fichiers, il y en a %{count})" + other: "Trop de fichiers joints (le maximum est %{max} fichiers, il y en a%{count})" + attachment_missing: "une pièce jointe est manquante" + media_metadata_missing: "n'est pas un fichier multimédia valide" + dimension_min_not_included_in: "doit être plus grand ou égal à %{width} x %{height} pixels" + dimension_max_not_included_in: "doit être plus petit ou égal à %{width} x %{height} pixels" + dimension_width_not_included_in: "la largeur n'est pas comprise entre %{min} et %{max} pixels" + dimension_height_not_included_in: "la hauteur n'est pas comprise entre %{min} et %{max} pixels" + dimension_width_not_greater_than_or_equal_to: "la largeur doit être supérieure ou égale à %{length} pixels" + dimension_height_not_greater_than_or_equal_to: "la hauteur doit être supérieure ou égale à %{length} pixels" + dimension_width_not_less_than_or_equal_to: "la largeur doit être inférieure ou égale à %{length} pixels" + dimension_height_not_less_than_or_equal_to: "la hauteur doit être inférieure ou égale à %{length} pixels" + dimension_width_not_equal_to: "la largeur doit être égale à %{length} pixels" + dimension_height_not_equal_to: "La hauteur doit être égale à %{length} pixels" + aspect_ratio_not_square: "doit être carré (le fichier actuel est %{width}x%{height}px)" + aspect_ratio_not_portrait: "doit être au format portrait (le fichier actuel mesure %{width}x%{height}px)" + aspect_ratio_not_landscape: "doit être au format paysage (le fichier actuel mesure %{width}x%{height}px)" + aspect_ratio_not_x_y: "doit être %{authorized_aspect_ratios} (le fichier actuel est %{width}x%{height}px)" + aspect_ratio_invalid: "possède un ratio d'image invalide (les ratios d'image valides sont %{authorized_aspect_ratios})" + file_not_processable: "n'est pas identifié comme un fichier multimédia valide" + pages_not_less_than: "La durée doit être inférieure à %{max} (la durée actuelle est %{pages})" + pages_not_less_than_or_equal_to: "La durée doit être inférieure ou égale à %{max} (la durée actuelle est %{pages})" + pages_not_greater_than: "La durée doit être supérieure à %{min}(la durée actuelle est %{pages})" + pages_not_greater_than_or_equal_to: "La durée doit être supérieure ou égale à %{min} (la durée actuelle %{pages})" + pages_not_between: "La durée doit être comprise entre %{min} et %{max} (la durée actuelle est %{pages})" + pages_not_equal_to: "La durée doit être égale à %{exact} (la durée actuelle est %{pages})" not_found: title: "La page que vous recherchez n'existe pas (erreur 404)" message_html: "Veuillez essayer à nouveau

Il s'agit peut-être d'un problème temporaire. Veuillez cliquer sur le bouton retour de votre navigateur ou retourner à l' Accueil et recommencez. Contacter notre support 

Si le problème persiste ou si c'est urgent, veuillez nous contacter.

" @@ -185,6 +248,9 @@ fr_CA: disconnect_failure: "Déconnecter Stripe a échoué." success_code: disconnected: "Le compte Stripe est déconnecté." + taler: + order_status: + claimed: "La demande de paiement a expiré. Merci d'essayer à nouveau." activemodel: errors: messages: @@ -520,6 +586,7 @@ fr_CA: errors: vine_api: "There was an error communicating with the API, please try again later." invalid_voucher: "The voucher is not valid" + expired: "Le bon de réduction a expiré." not_found_voucher: "Désolé, nous n'avons pas trouvé ce bon de réduction. Merci de vérifier le code qui vous a été transmis." vine_voucher_redeemer_service: errors: @@ -3305,6 +3372,8 @@ fr_CA: payment_processing_failed: "Le paiement n'a pas pu être traité, veuillez vérifier les informations saisies" payment_method_not_supported: "Cette méthode de paiement n'est pas maintenue. Veuillez en sélectionner une autre." payment_updated: "Paiement mis à jour" + payment_method_taler: + order_summary: "Commande Open Food Network" cannot_perform_operation: "Le paiement n'a pas pu être mis à jour." action_required: "Une action est requise" tag_rules: "Règles de tag" @@ -3965,6 +4034,8 @@ fr_CA: destroy: success: Le webhook a bien été supprimé. error: Le webhook n'a pas pu être supprimé. + test: + success: Des données test vont être envoyées à l'URL du webhook spree: order_updated: "La commande a été mise à jour" cannot_perform_operation: "Cette opération ne peut pas être réalisée" @@ -4071,6 +4142,7 @@ fr_CA: logourl: "URL du logo" are_you_sure_delete: "Etes-vous certain de vouloir supprimer cet élément ?" confirm_delete: "Confirmer la suppression" + tag_rule: "Règle de tag" voucher: "Bon de réduction" configurations: "Configurations" general_settings: "Configurations générales" @@ -4162,6 +4234,7 @@ fr_CA: alt_text: "Texte alternatif" thumbnail: "Miniature" back_to_images_list: "Retour à la liste des images" + backend_url: "URL du backend" api_key: "Clé API" email: Email account_updated: "Compte mis à jour!" @@ -4481,6 +4554,7 @@ fr_CA: check: "Espèces / chèques / virements / autres " paypalexpress: "PayPal Express" stripesca: "Stripe SCA" + taler: "Taler" payments: source_forms: stripe: @@ -4967,6 +5041,8 @@ fr_CA: create_placeholder: Entrez l'URL du point de terminaison du webhook event_types: order_cycle_opened: Cycle de vente ouvert + payment_status_changed: Poster webhook sur le changement du statut de paiement + test_endpoint: Tester le point de terminaison du webhook invisible_captcha: sentence_for_humans: "Merci de laisser ce champ libre" timestamp_error_message: "S'il vous plaît réessayez après 5 secondes."